I've been surprised by a behavior of External Repositories.
I've done two builds of python-six in this copr:
https://copr.fedorainfracloud.org/coprs/churchyard/tmp/
First with:
External Repositories: copr://@python/python3.10 http://kojipkgs.fedoraproject.org/repos/rawhide/latest/$basearch/
And the second with:
External Repositories: http://kojipkgs.fedoraproject.org/repos/rawhide/latest/$basearch/ copr://@python/python3.10
The results suprised me.
The first build installs python 3.9 from koji in the bootstrap chroot and successfully bootstraps only with packages from koji.
Then it creates the default chroot with packages mostly from koji but python-srpm-macros from @python/python3.10 (higher version).
The installation of buildrequires fails with:
Error: Problem 1: package python3-pip-21.0-1.fc34.noarch requires python(abi) = 3.9, but none of the providers can be installed - package python3-devel-3.10.0~a5-1.fc34.x86_64 conflicts with python3 < 3.10.0~a5-1.fc34 provided by python3-3.9.1-5.fc34.x86_64 - package python3-devel-3.10.0~a5-1.fc34.x86_64 conflicts with python3 < 3.10.0~a5-1.fc34 provided by python3-3.9.1-5.fc34.i686 - cannot install the best candidate for the job Problem 2: python3-3.9.1-5.fc34.i686 has inferior architecture - package python3-wheel-1:0.36.2-2.fc34.noarch requires python(abi) = 3.9, but none of the providers can be installed - cannot install both python3-3.10.0~a5-1.fc34.x86_64 and python3-3.9.1-5.fc34.x86_64 - cannot install both python3-3.9.1-5.fc34.x86_64 and python3-3.10.0~a5-1.fc34.x86_64 - package python3-tkinter-3.10.0~a5-1.fc34.x86_64 requires python3 = 3.10.0~a5-1.fc34, but none of the providers can be installed - cannot install the best candidate for the job
The second build installs python 3.10 from @python/python3.10 in the bootstrap chroot and successfully bootstraps with packages from koji + Python packages from @python/python3.10.
Then it creates the default chroot with packages from koji + Python packages from @python/python3.10.
Then it successfully installs Python 3.10 with other buildrequires.
Does the order of external repos defines their priority/cost? Is that a feature or a bug?
On 11. 02. 21 16:35, Miro Hrončok wrote:
I've been surprised by a behavior of External Repositories.
I've done two builds of python-six in this copr:
https://copr.fedorainfracloud.org/coprs/churchyard/tmp/
First with:
External Repositories: copr://@python/python3.10 http://kojipkgs.fedoraproject.org/repos/rawhide/latest/$basearch/
And the second with:
External Repositories: http://kojipkgs.fedoraproject.org/repos/rawhide/latest/$basearch/ copr://@python/python3.10
The results suprised me ...
Does the order of external repos defines their priority/cost? Is that a feature or a bug?
I guess this has to do with either mock or dnf directly:
$ mock -r fedora-rawhide-x86_64 -a 'https://copr-be.cloud.fedoraproject.org/results/@python/python3.10/fedora-ra...' -a 'http://kojipkgs.fedoraproject.org/repos/rawhide/latest/$basearch/' install python3-setuptools
$ mock -r fedora-rawhide-x86_64 -a 'http://kojipkgs.fedoraproject.org/repos/rawhide/latest/$basearch/' -a 'https://copr-be.cloud.fedoraproject.org/results/@python/python3.10/fedora-ra...' install python3-setuptools
They install python3-setuptools from the first -a REPO.
Dne 11. 02. 21 v 16:59 Miro Hrončok napsal(a):
I guess this has to do with either mock or dnf directly:
$ mock -r fedora-rawhide-x86_64 -a 'https://copr-be.cloud.fedoraproject.org/results/@python/python3.10/fedora-ra...' -a 'http://kojipkgs.fedoraproject.org/repos/rawhide/latest/$basearch/' install python3-setuptools
$ mock -r fedora-rawhide-x86_64 -a 'http://kojipkgs.fedoraproject.org/repos/rawhide/latest/$basearch/' -a 'https://copr-be.cloud.fedoraproject.org/results/@python/python3.10/fedora-ra...' install python3-setuptools
Yes, this is what Copr do. And Mock just write it down to .repo file. So it stems down to: does order of repositories matter for DNF?
copr-devel@lists.fedorahosted.org