Bug 277881

Summary: apt check deps differently than rpm
Product: [Fedora] Fedora Reporter: Leszek Matok <lam>
Component: aptAssignee: Axel Thimm <axel.thimm>
Status: CLOSED UPSTREAM QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: medium    
Version: 7CC: pmatilai, ville.skytta
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-09-05 16:13:14 UTC 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 Leszek Matok 2007-09-05 07:04:41 UTC
# apt-get dist-upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
Calculating Upgrade... Done
The following packages will be upgraded
   popt (1.10.2-46.fc7 => 1.10.2.1-1.fc7)
   rpm (4.4.2-46.fc7 => 4.4.2.1-1.fc7)
   rpm-build (4.4.2-46.fc7 => 4.4.2.1-1.fc7)
   rpm-devel (4.4.2-46.fc7 => 4.4.2.1-1.fc7)
   rpm-libs (4.4.2-46.fc7 => 4.4.2.1-1.fc7)
   rpm-python (4.4.2-46.fc7 => 4.4.2.1-1.fc7)
The following packages have been kept back
   rpmdevtools (5.4-1.fc7 => 6.1-0.1.fc7)
6 upgraded, 0 newly installed, 0 removed and 1 not upgraded.
Need to get 0B/8615kB of archives.
After unpacking 32,5MB of additional disk space will be used.
Do you want to continue? [Y/n] 
Checking GPG signatures...  ########################################### [100%]
Committing changes...
Preparing...                ########################################### [100%]
        file /usr/lib/rpm/check-rpaths-worker from install of
rpm-build-4.4.2.1-1.fc7 conflicts with file from package rpmdevtools-5.4-1.fc7
E: Error while running transaction
E: Handler silently failed


It's easy to reproduce, all you have to do is have old versions of rpm (4.4.2)
and rpmdevtools (5.4) and disable "Everything" repo, leaving only "Updates".
This way, rpmdevtools can't be upgraded to 6.1 (because repos lack fakeroot), so
apt decides to keep it at 5.4. I guess it could be reproduced with apt-shell,
telling it to keep rpmdevtools, but I can't test that myself.

Expected behavior would be noticing the conflict and simply keeping rpm at 4.4.2
(which I did in order to update rest of the system), just like other dependent
packages are "kept" alongside the one that has to be.

I've also seen this behavior on Rawhide (without messing with the repos!) some
time ago, but forgot to copy apt output. This is the second time I see it and
this time, I'm reporting it.

Comment 1 Panu Matilainen 2007-09-05 07:33:59 UTC
Apt (and yum and probably smartpm too) don't check for implicit file conflicts.
The bug here isn't really in apt but in rpm 4.4.2.1 packaging which should have
had "conflicts: rpmdevtools < 6.1" in rpm-build subpackage to avoid this. This
doesn't normally happen though as rpmdevtools 6.1 requires rpm >= 4.4.2.1 to fix
precisely this issue but like you noticed, in exceptional situations things can
go wrong with the "optimistic" packaging that was done to avoid use of conflicts.

Comment 2 Ville Skyttä 2007-09-05 16:13:14 UTC
Thanks for the comment, Panu.  I don't think there's anything that the Fedora
apt maintainers can do about this and upstream (Panu) obviously is aware of the
issue, so closing UPSTREAM.