Re: mock: all log lines doubled?

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

 



On Thursday, March 19, 2020 3:09:14 AM CET Sérgio Basto wrote:
> Now we can't use `config_opts['package_manager'] = 'dnf'` to build on epel 7 ,
> it is working for me , maybe just after add
> config_opts['use_bootstrap_image'] = True on ~/.config/mock.cfg 

Shortly, the `package_manager` option says what is the package manager of the
system you build for;  ie. YUM for epel-7 (el7 isn't DNF system, and you don't
want to set package_manager = dnf).

Longer story.
As package managers evolve, they are not back/forward compatible (YUM is not
compatible with new features in DNF, but even very old DNF may be incompatible
with future versions of itself).  From the other side, modern DNF may calculate
the install transactions for old YUM systems significantly differently
than YUM would.

So, since packages (and inter-dependencies) in buildroots are _customized_ for
proper version of the package manager included _in_ the buildroot - mock tries
to way around the compatibility problems by first installing _proper_ package
manager into bootstrap chroot, and using that package manager eventually install
the requested buildroot.  E.g.

  DNF(on Fedora) ---installs--> YUM(bootstrap el7) ---installs--> epel-7 chroot

When you say `package_manager = dnf` for el7, this happens:

  DNF(on Fedora) ---installs--> DNF(bootstrap el7) ---installs--> epel-7 chroot

.. but it fails, because there's no DNF in el7 by default.  You could set
`package_manager=dnf`, and `use_bootstrap=False`, that would:

  DNF(on Fedora) ---installs--> epel-7 chroot

But that would have the problem that the "installroot" order of
transaction isn't calculated as package maintainers in EL7 expected.

Slightly off topic;  the `use_bootsrap` isn't even enough for EL7 to build
Fedora nowadays.  Because e.g. fedora-33-x86_64 has
`package_manager = dnf`, mock would attempt to

  YUM(on host) ---installs--> DNF(bootstrap F33) --installs--> fedora-33 chroot

but YUM on el7 host can not install packages compressed by ZSTD in
bootstrap F33 chroot.  That's why `use_bootstrap_image` was invented - so
the bootstrap chroot doesn't have to be _installed_, but it is rather
_downloaded_ as podman image.  So this happens:

  podman (on host) --downloads--> DNF chroot ---installs---> F33 chroot

Hope that helps,
Pavel


_______________________________________________
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




[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