I've hit a snag with https://github.com/rpm-software-management/mock/commit/58684e072d7e05563c43d...
I've got a somewhat novel koji setup.
It is a single host that does cross compiles for all my arches: i686, x86_64, aarch64, and ppc64le.
I don't have dedicated hardware for aarch64 or ppc64le, so I'm using `forcearch` and the qemu-static packages to build for these platforms. I have terribly few internal users of these platforms and most of what I build internally is noarch so the performance is sufficient given the cost of physical nodes.
But every so often, I need to build a native binary for these platforms.
Obviously this is an infrequent task as I just ran into behavior from a 2 year old release of mock.
But koji is using a repo that is filtered for my target arch, so my native host x86_64 can't bootstrap. The dnf config in the installroot is pointing to an ppc64le or aarch64 only repository for the target packages and thus can't satisfy any binary dependencies.
The way I read the notes in mock.py suggest that `bootstrap_forcearch` should never be True, so I'm at a loss for how to work around this.
I've looked over: https://github.com/rpm-software-management/mock/pull/1129 https://github.com/rpm-software-management/mock/pull/1172
Pat
Hello Pta, thank you for the question.
On pondělí 13. října 2025 23:25:46, středoevropský letní čas Patrick Riehecky via buildsys wrote:
I've hit a snag with https://github.com/rpm-software-management/mock/commit/58684e072d7e05563c43d...
I've got a somewhat novel koji setup.
It is a single host that does cross compiles for all my arches: i686, x86_64, aarch64, and ppc64le.
I don't have dedicated hardware for aarch64 or ppc64le, so I'm using `forcearch` and the qemu-static packages to build for these platforms. I have terribly few internal users of these platforms and most of what I build internally is noarch so the performance is sufficient given the cost of physical nodes.
But every so often, I need to build a native binary for these platforms.
Obviously this is an infrequent task as I just ran into behavior from a 2 year old release of mock.
/me nods.
But koji is using a repo that is filtered for my target arch, so my native host x86_64 can't bootstrap.
Hm. The reason why "native bootstrap" works is that $basearch is used in baseurl=. Can you maybe teach your Koji instance to use $basearch?
Then, emulated bootstrap was always _painfully_ slow. But if you have to, you still should be able to revert the behavior by `bootstrap_forcearch=True`.
The dnf config in the installroot is pointing to an ppc64le or aarch64 only repository for the target packages and thus can't satisfy any binary dependencies.
The way I read the notes in mock.py suggest that `bootstrap_forcearch` should never be True, so I'm at a loss for how to work around this.
It _should_ never be True, but it still can be. I mean, in the ideal build system configuration you aim at fast bootstrapping.. If you want to rephrase the in-line comment, feel free to open a PR!
Also, please consider using `bootstrap_image_ready` option: https://github.com/rpm-software-management/mock/commit/e7139e1ce10198066b13f...
With that option, the correct (bootstrapped, and native) DNF/RPM tooling is just delivered via an OCI image, and you don't have to care about forcearch configuration, baseurl= format, etc.
Pavel
I've looked over: https://github.com/rpm-software-management/mock/pull/1129 https://github.com/rpm-software-management/mock/pull/1172
Pat
buildsys@lists.fedoraproject.org