Description of problem: This trick: https://www.redhat.com/archives/fedora-devel-list/2007-October/msg02171.html is confusing APT-RPM (even on non-multilib systems), at least the version in F7. I just tested this hack (on an i686 system) with a dummy package: I have installed a package called multilib-obsoletes-test Version: 1, Release: 1, then put 1-2 into a test repo (created just for this purpose), with a -libs subpackage which obsoletes multilib-obsoletes-test < 1-2. This confuses apt-get dist-upgrade, which reacts the following way: The following packages have been kept back multilib-obsoletes-test (1-1 => 1-2) In other words, it gets confused by the hack, and it won't update the package at all! (Synaptic reacts the same way.) Doing apt-get install multilib-obsoletes-test or apt-get install multilib-obsoletes-test-libs by hand will do the right thing (the former of course only if multilib-obsoletes-test-1-2 Requires: multilib-obsoletes-test-libs, otherwise the libs package won't be pulled in), but the dist-upgrade should work. Version-Release number of selected component (if applicable): apt-0.5.15lorg3.2-12.fc7 How reproducible: Always Steps to Reproduce: 1. Create and install multilib-obsoletes-test-1-1 2. Create multilib-obsoletes-test-1-2 and multilib-obsoletes-test-libs-1-2 where multilib-obsoletes-test-libs-1-2 Obsoletes: multilib-obsoletes-test < 1-2 and multilib-obsoletes-test-1-2 Requires: multilib-obsoletes-test-libs. 3. Put those into a testing repo. 4. Enter the repo into /etc/apt/sources.list. 5. apt-get update 6. apt-get dist-upgrade Actual results: The following packages have been kept back multilib-obsoletes-test (1-1 => 1-2) Expected results: The following packages will be upgraded multilib-obsoletes-test (1-1 => 1-2) The following NEW packages will be installed: multilib-obsoletes-test-libs (1-2) Additional info: See the mailing list thread.
Care to provide the specs for those test-packages? An existing, easily reproducable test-case is always nicer than having to invent one :) As for the bug itself, I'll have a look. Most likely it's a corner case that apt doesn't even try to handle due to such a construct probably not making any sense at all in Debian...
Created attachment 238711 [details] Unsplit version
Created attachment 238721 [details] Split version with the problematic Obsoletes
Any progress on this? Panu, can you reproduce the problem with those specs?
I haven't had a chance to look at this at all yet.
Heh, this appears to trigger some silly off-by-one type issue somewhere. I can reproduce your test case easily enough: [root@localhost cmdline]# ./apt-get dist-upgrade Reading Package Lists... Done Building Dependency Tree... Done Calculating Upgrade... Done The following packages have been kept back multilib-obsoletes-test (1-1 => 1-2) multilib-obsoletes-test.32bit (1-1 => 1-2) But bumping the split package release to 3 (and no other changes), something I happened to test accidentally: [root@localhost cmdline]# ./apt-get dist-upgrade Reading Package Lists... Done Building Dependency Tree... Done Calculating Upgrade... Done The following packages will be upgraded multilib-obsoletes-test (1-1 => 1-3) multilib-obsoletes-test.32bit (1-1 => 1-3) The following NEW packages will be installed: multilib-obsoletes-test-libs (1-3) Now off to figure what the heck's going on... :)
Some hackery applied to rawhide apt, building atm (apt-0.5.15lorg3.93-3.fc9). Seems to work for me now both on multilib and non-multilib case, and doesn't seem to break horribly for anything else either but knock wood, the apt upgrade algorithm is .. um .. "interesting". I'd appreciate if you can test it in real world situations, this kludgery has only been tested in lab conditions with the provided multilib-obsoletes-test specs.
apt-0.5.15lorg3.93-4.fc8 has been pushed to the Fedora 8 testing repository. If problems still persist, please make note of it in this bug report. If you want to test the update, you can install it with su -c 'yum --enablerepo=updates-testing update apt'
apt-0.5.15lorg3.93-4.fc8 has been pushed to the Fedora 8 stable repository. If problems still persist, please make note of it in this bug report.