On Thu, May 16, 2024 at 3:10 AM Fabio Valentini <decathorpe@xxxxxxxxx> wrote: > > On Thu, May 16, 2024 at 9:25 AM Zbigniew Jędrzejewski-Szmek > <zbyszek@xxxxxxxxx> wrote: > > > > 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). > > This looks like you're putting the resolver between a rock and a hard > place. :thinking: > I don't think I've ever seen packages being *removed* when installing > BuildRequires on top of the minimal buildroot ... > > Would it be possible to adapt the packages so that add-determinism and > add-determinism-nopython are parallel-installable, and have the macro > fall back to the add-determinism-nopython executable if the > add-determinism executable is not available? > That way BuildRequires are additive and wouldn't force package removal > from the buildroot, and the rich dependency could be simpler - i.e. > `Requires: (add-determinism if python3-libs)`, without Suggests or > else branch. I have the question of why is dnf5 running as if "--allow-erasing" is always passed to it? Older versions of DNF explicitly didn't do that because we get weird behaviors like this. -- 真実はいつも一つ!/ Always, there's only one truth! -- _______________________________________________ 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