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