rich deps result in packages being uninstalled from buildroot

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I've been trying to get 'add-determinism' deployed in buildroots. This
has been unsuccessful because of the following issue.

The dependency chain is:
redhat-rpm-config has
  Requires build-reproducibility-srpm-macros
and build-reproducibility-srpm-macros has
  Requires:    (add-determinism if python3-libs else add-determinism-nopython)
  Suggests:    add-determinism-nopython

(The idea is that we install 'add-determinism-nopython' which is self-contained,
but if python3 is installed into the buildroot, we pull in the heavier version
which has a dependency on python3-libs.)

This works well enough when installing packages using dnf on a test system.
But, in koji and mock builds, this results in rpm-build being unistalled (!).

For example, see https://koji.fedoraproject.org/koji/taskinfo?taskID=117684626
and root.log there: first rpm-build is installed along with a bunch of other
packages expected in the buildroot, but then cargo-rpm-macros is requested
(presumably via %generate_buildrequires), which depends on python3 and
python3-libs.

Dnf5 realizes that to satisfy all bounds, it can either:
a) install cargo-rpm-macros, python3, python3-libs, add-determinism, and remove add-determinism-nopython
b) install cargo-rpm-macros, python3, python3-libs, and remove build-reproducibility-srpm-macros,
   rpm-build, fonts-srpm-macros, redhat-rpm-config, and a few other packages.
and picks option b).

Without rpm-build installed, the build immediately faceplants.

(This can be reproduced by calling 'mock -i redhat-rpm-config' and
later 'mock -i cargo-rpm-macros'. It reproduces with both dnf5 and
dnf, so it's not a dnf5-related regresion.)

How to make this not happen, i.e. how to prevent rpm-build and other
packages that were explicitly pulled in via the @buildsys-build group
from being uninstalled? I think this is a general problem, not just
limited to the case described above. We now have hundreds of rich
Requires deps declared in packages, and each one creates the
possibility that dnf might opt to uninstall the package involved in
the rich dep, rather than installing the deps, if there is no
mechanism to prevent previously-explicitly-requested packges from
being removed.

Zbyszek
--
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux