Bug 2223937 - mock -n reinstalls packages from distro
Summary: mock -n reinstalls packages from distro
Keywords:
Status: NEW
Alias: None
Product: Fedora
Classification: Fedora
Component: mock
Version: 38
Hardware: Unspecified
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Copr Team
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-07-19 10:30 UTC by Zbigniew Jędrzejewski-Szmek
Modified: 2023-07-19 10:31 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:


Attachments (Terms of Use)

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.)


Note You need to log in before you can comment on or make changes to this bug.