On Thu, May 16, 2024 at 3:10 AM Fabio Valentini <decatho...@gmail.com> wrote:
>
> On Thu, May 16, 2024 at 9:25 AM Zbigniew Jędrzejewski-Szmek
> <zbys...@in.waw.pl> 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@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
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@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to