Skip to content

unbreq dies at the end: dnf remove returned non-zero exit status 2 #1690

@hroncok

Description

@hroncok

Hi. I tried to build python3.15 from rawhide (actually from a planned update https://src.fedoraproject.org/rpms/python3.15/pull-request/38) with the unbreq plugin:

$ mock -r fedora-rawhide-x86_64 --enable-plugin=unbreq python3.15-3.15.0~a5-1.fc44.src.rpm
...
INFO: enabled unbreq plugin (postdeps)
INFO: unbreq plugin: detected 'relatime' mount option, setting access times of files under /var/lib/mock/fedora-rawhide-x86_64/root to 0
...

It finished the build of Python and dies:

...
Finish: rpmbuild python3.15-3.15.0~a5-1.fc44.src.rpm
Finish: build phase for python3.15-3.15.0~a5-1.fc44.src.rpm
INFO: enabled unbreq plugin (postbuild)
ERROR: Exception(python3.15-3.15.0~a5-1.fc44.src.rpm) Config(fedora-rawhide-x86_64) 91 minutes 46 seconds
INFO: Results and/or logs in: /var/lib/mock/fedora-rawhide-x86_64/result
ERROR: Command '/usr/bin/systemd-nspawn --quiet --pipe -D /var/lib/mock/fedora-rawhide-x86_64-bootstrap/root --bind /var/lib/mock/fedora-rawhide-x86_64/root /usr/bin/dnf --installroot /var/lib/mock/fedora-rawhide-x86_64/root --setopt protected_packages= --assumeno remove' returned non-zero exit status 2.
Traceback (most recent call last):
  File "/usr/libexec/mock/mock", line 1132, in <module>
    exitStatus = main()
  File "/usr/lib/python3.14/site-packages/mockbuild/trace_decorator.py", line 93, in trace
    result = func(*args, **kw)
  File "/usr/libexec/mock/mock", line 884, in main
    result = run_command(options, args, config_opts, commands, buildroot)
  File "/usr/lib/python3.14/site-packages/mockbuild/trace_decorator.py", line 93, in trace
    result = func(*args, **kw)
  File "/usr/libexec/mock/mock", line 1006, in run_command
    mockbuild.rebuild.do_rebuild(config_opts, commands, buildroot, options, srpms)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.14/site-packages/mockbuild/trace_decorator.py", line 93, in trace
    result = func(*args, **kw)
  File "/usr/lib/python3.14/site-packages/mockbuild/rebuild.py", line 85, in do_rebuild
    rebuild_generic(srpms, commands, buildroot, config_opts, cmd=build,
    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                    post=post_build, clean=clean)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.14/site-packages/mockbuild/trace_decorator.py", line 93, in trace
    result = func(*args, **kw)
  File "/usr/lib/python3.14/site-packages/mockbuild/rebuild.py", line 25, in rebuild_generic
    ret = cmd(item)
  File "/usr/lib/python3.14/site-packages/mockbuild/rebuild.py", line 66, in build
    commands.build(srpm, timeout=config_opts['rpmbuild_timeout'],
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                   check=config_opts['check'], spec=options.spec)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.14/site-packages/mockbuild/trace_decorator.py", line 93, in trace
    result = func(*args, **kw)
  File "/usr/lib/python3.14/site-packages/mockbuild/backend.py", line 346, in build
    self.plugins.call_hooks('postbuild')
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/usr/lib/python3.14/site-packages/mockbuild/trace_decorator.py", line 93, in trace
    result = func(*args, **kw)
  File "/usr/lib/python3.14/site-packages/mockbuild/plugin.py", line 81, in call_hooks
    hook(*args, **kwargs)
    ~~~~^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.14/site-packages/mockbuild/plugins/unbreq.py", line 362, in _PostBuildHook
    self.resolve_buildrequires()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/lib/python3.14/site-packages/mockbuild/plugins/unbreq.py", line 226, in resolve_buildrequires
    removed_packages = self.try_remove([v for vs in brs_can_be_removed for v in vs[1]] + providers)
  File "/usr/lib/python3.14/site-packages/mockbuild/plugins/unbreq.py", line 159, in try_remove
    raise subprocess.CalledProcessError(
        process.returncode, " ".join(process.args), process.stdout, process.stderr
    )
subprocess.CalledProcessError: Command '/usr/bin/systemd-nspawn --quiet --pipe -D /var/lib/mock/fedora-rawhide-x86_64-bootstrap/root --bind /var/lib/mock/fedora-rawhide-x86_64/root /usr/bin/dnf --installroot /var/lib/mock/fedora-rawhide-x86_64/root --setopt protected_packages= --assumeno remove' returned non-zero exit status 2.

I don't see the stderr from dnf, but exit code 2 probably means there was no argument for the package to remove:

$ LANG=C dnf remove
Missing positional argument "specs" for command "remove". Add "--help" for more information about the arguments.
$ echo $?
2

Seems like the plugin tries to remove a package, but it does not provide a package to remove :/

mock-6.6-1.fc43.noarch
mock-core-configs-43.3-1.fc43.noarch

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions