Bug 2223937

Summary: mock -n reinstalls packages from distro
Product: [Fedora] Fedora Reporter: Zbigniew Jędrzejewski-Szmek <zbyszek>
Component: mockAssignee: Copr Team <copr-team>
Status: NEW --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 38CC: copr-team, msuchy, philip.wyett, praiskup, williams
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Zbigniew Jędrzejewski-Szmek 2023-07-19 10:30:13 UTC
When working on a set of related packages, I'll often build some package locally in mock, install it in the mock, and then build dependent packages with 'mock -n'. I *think* this used to work. But now, mock/dnf/something causes all packages that are available in the distro to be reinstalled with the distro version. This applies to anything listed in BuildRequires or produced via %generate_buildrequires. The package that is already installed can have the same or higher version, it is still reinstalled.

Example:
$ mock -r fedora-rawhide-x86_64 --shell 'rpm -q python3-tables'
python3-tables-3.7.0-9.fc39.x86_64
$ git grep tables *spec
python-dask.spec:BuildRequires:  python3dist(tables)
$ fedpkg srpm && mock -r fedora-rawhide-x86_64 -n $(ls -1tr *.src.rpm |tail -n1)
...
ERROR: Command failed: 
 # /usr/bin/systemd-nspawn -q -M 8154e509100442fda380e1c1e903b8e8 -D /var/lib/mock/fedora-rawhide-x86_64-bootstrap/root -a --capability=cap_ipc_lock --bind=/tmp/mock-resolv.otmy5twh:/etc/resolv.conf --console=pipe --setenv=TERM=vt100 --setenv=SHELL=/bin/bash --setenv=HOME=/var/lib/mock/fedora-rawhide-x86_64/root/installation-homedir --setenv=HOSTNAME=mock --setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin --setenv=PROMPT_COMMAND=printf "\033]0;<mock-chroot>\007" --setenv=PS1=<mock-chroot> \s-\v\$  --setenv=LANG=C.UTF-8 --setenv=LC_MESSAGES=C.UTF-8 --resolv-conf=off /usr/bin/dnf-3 builddep --installroot /var/lib/mock/fedora-rawhide-x86_64/root/ --releasever 39 --setopt=deltarpm=False --allowerasing --disableplugin=local --disableplugin=spacewalk --disableplugin=versionlock /var/lib/mock/fedora-rawhide-x86_64/root//builddir/build/SRPMS/python-dask-2023.4.1-4.fc39~bootstrap.src.rpm
No matches found for the following disable plugin patterns: local, spacewalk, versionlock
fedora                                                                                         23 kB/s |  17 kB     00:00    
Last metadata expiration check: 0:00:01 ago on Wed Jul 19 12:14:58 2023.
Package python3-devel-3.12.0~b4-1.fc39.x86_64 is already installed.
Package python3-fastavro-1.7.4-2.fc39.x86_64 is already installed.
Package python3-graphviz-1:0.20.1-3.fc39.noarch is already installed.
Package python3-h5py-3.8.0-3.fc39.x86_64 is already installed.
Package python3-ipython-8.14.0-4.fc39.noarch is already installed.
Package python3-psutil-5.9.2-3.fc39.x86_64 is already installed.
Package python3-pyarrow-12.0.1-3.fc39.x86_64 is already installed.
Package python3-requests-2.28.2-4.fc39.noarch is already installed.
Package python3-sqlalchemy-1.4.49-1.fc39.x86_64 is already installed.
Package python3-zarr-2.14.2-2.fc39.noarch is already installed.
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
Error: 
 Problem: conflicting requests
  - nothing provides python3.11dist(packaging) needed by python3-tables-3.7.0-7.fc38.x86_64
  - nothing provides python(abi) = 3.11 needed by python3-tables-3.7.0-7.fc38.x86_64
  - nothing provides python3.11dist(numpy) >= 1.19 needed by python3-tables-3.7.0-7.fc38.x86_64
  - nothing provides python3.11dist(numexpr) >= 2.6.2 needed by python3-tables-3.7.0-7.fc38.x86_64

mock-4.1-1.fc38.noarch
rpm-4.18.1-3.fc38.x86_64
dnf-4.16.1-1.fc38.noarch

Dunno, maybe it's some local configuration change, but this behaviour doesn't seem very useful.

Reproducible: Always

Comment 1 Zbigniew Jędrzejewski-Szmek 2023-07-19 10:31:08 UTC
(If I comment out the BuildRequires and %generate_buildrequires sections in python-dask.spec, the package builds fine.)