Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 189720 - revdep-rebuild tries to remerge wrong slot when SLOT=0
Summary: revdep-rebuild tries to remerge wrong slot when SLOT=0
Status: RESOLVED TEST-REQUEST
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal
Assignee: Portage Tools Team
URL:
Whiteboard:
Keywords:
: 190972 (view as bug list)
Depends on:
Blocks:
 
Reported: 2007-08-21 15:46 UTC by Gokdeniz Karadag
Modified: 2008-11-29 04:24 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Gokdeniz Karadag 2007-08-21 15:46:43 UTC
After upgrading to dev-libs/expat-2.0.1 revdep-rebuild showed dev-libs/apr-util to be broken. I reemerged it, then completely upgraded my system, them remerged it again, but it is still shown broken. Reason was about slots.

I have two slots of apr-util installed, their versions are 0.9.12 and 1.2.8. 
The revdep-rebuild output states 
"broken /usr/lib/libaprutil-0.so.0.9.12 (requires  libexpat.so.0)"

But the package that is to be emerged is "All prepared. Starting rebuild...
emerge --oneshot -p =dev-libs/apr-util-1.2.8"

I guess revdep-rebuild misses the slot. I have not manually remerged the correct version in case we need further tests.

Here is equery output. 
$ equery belongs /usr/lib/libaprutil-0.so.0.9.12
dev-libs/apr-util-0.9.12 (/usr/lib/libaprutil-0.so.0.9.12)

$ equery list apr-util
[I--] [  ] dev-libs/apr-util-0.9.12 (0)
[I--] [  ] dev-libs/apr-util-1.2.8 (1)


Here is ldd output, and apr-util-0.9.12 is indeed broken, whereas apr-util-1.2.8 is not.

$ ldd /usr/lib/libaprutil-1.so.0.2.8
        linux-gate.so.1 =>  (0xffffe000)
        libldap-2.3.so.0 => /usr/lib/libldap-2.3.so.0 (0xb7f5f000)
        liblber-2.3.so.0 => /usr/lib/liblber-2.3.so.0 (0xb7f53000)
        libgdbm.so.3 => /usr/lib/libgdbm.so.3 (0xb7f4d000)
        libdb-4.3.so => /usr/lib/libdb-4.3.so (0xb7e70000)
        libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0xb7e14000)
    ===>libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb7df5000)
        libapr-1.so.0 => /usr/lib/libapr-1.so.0 (0xb7dd3000)
        libuuid.so.1 => /lib/libuuid.so.1 (0xb7dd0000)
        librt.so.1 => /lib/librt.so.1 (0xb7dc7000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0xb7d99000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb7d82000)
        libdl.so.2 => /lib/libdl.so.2 (0xb7d7e000)
        libc.so.6 => /lib/libc.so.6 (0xb7c5d000)
        libresolv.so.2 => /lib/libresolv.so.2 (0xb7c4b000)
        libssl.so.0.9.8 => /usr/lib/libssl.so.0.9.8 (0xb7c0e000)
        libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8 (0xb7ae2000)
        /lib/ld-linux.so.2 (0x80000000)

$ ldd /usr/lib/libaprutil-0.so.0.9.12
        linux-gate.so.1 =>  (0xffffe000)
        libldap-2.3.so.0 => /usr/lib/libldap-2.3.so.0 (0xb7eac000)
        liblber-2.3.so.0 => /usr/lib/liblber-2.3.so.0 (0xb7ea0000)
        libgdbm.so.3 => /usr/lib/libgdbm.so.3 (0xb7e9a000)
        libdb-4.3.so => /usr/lib/libdb-4.3.so (0xb7dbd000)
    ===>libexpat.so.0 => not found
        libapr-0.so.0 => /usr/lib/libapr-0.so.0 (0xb7d9d000)
        librt.so.1 => /lib/librt.so.1 (0xb7d94000)
        libm.so.6 => /lib/libm.so.6 (0xb7d70000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0xb7d42000)
        libnsl.so.1 => /lib/libnsl.so.1 (0xb7d2d000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb7d16000)
        libdl.so.2 => /lib/libdl.so.2 (0xb7d12000)
        libc.so.6 => /lib/libc.so.6 (0xb7bf1000)
        libresolv.so.2 => /lib/libresolv.so.2 (0xb7bdf000)
        libssl.so.0.9.8 => /usr/lib/libssl.so.0.9.8 (0xb7ba2000)
        libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8 (0xb7a76000)
        /lib/ld-linux.so.2 (0x80000000)


Reproducible: Always

Steps to Reproduce:
1. upgrade expat to 2.0.1 which breaks ABI
2. run revdep-rebuild
3. run revdep-rebuild again

Actual Results:  
dev-libs/apr-util-1.2.8 is tried to be built again and again

Expected Results:  
dev-libs/apr-util-0.9.12 should be built instead
Comment 1 Niklas Närhinen 2007-08-21 16:04:22 UTC
Did you run revdep-rebuild -X or just revdep-rebuild?
Comment 2 Gokdeniz Karadag 2007-08-21 16:17:31 UTC
(In reply to comment #1)
> Did you run revdep-rebuild -X or just revdep-rebuild?
> 

I was in process of upgrading to KDE 3.5.7 and I have been running with -X switch.
Removing the switch tried to remerge correct version.

I think slots should be handled differently in revdep-rebuild, as they are not a regular version change, but two different set of files exist. The man page for -X says "emerge the best packages available" but I believe it should look for the highest version in the current slot. 
Comment 3 Niklas Närhinen 2007-08-21 17:05:44 UTC
Well, if you want to re-emerge some slotted app, you have emerge by version. And -X states clearly, that it emerges by name. And that always emerges the highest slot available.
Comment 4 Jakub Moc (RETIRED) gentoo-dev 2007-08-21 17:29:40 UTC
-X won't work for slotted stuff.
Comment 5 michael@smith-li.com 2007-08-23 20:04:51 UTC
This is a non-issue in the upcoming new release of revdep-rebuild
Comment 6 Jakub Moc (RETIRED) gentoo-dev 2007-09-01 16:50:44 UTC
*** Bug 190972 has been marked as a duplicate of this bug. ***
Comment 7 Bo Ørsted Andresen (RETIRED) gentoo-dev 2007-09-02 00:54:03 UTC
(In reply to comment #4)
> -X won't work for slotted stuff.

It should according to the code. Otherwise I'd *really* love to know why it's moving package.mask around...

(In reply to comment #5)
> This is a non-issue in the upcoming new release of revdep-rebuild

Yep. So this bug can be marked resolved fixed once upcoming releases have been stabilized (or even just 0.2.4_pre5).
Comment 8 Paul Varner (RETIRED) gentoo-dev 2007-09-04 18:42:53 UTC
Reopening for reassignment
Comment 9 Paul Varner (RETIRED) gentoo-dev 2007-09-04 18:46:30 UTC
Actually, it works for every case except when SLOT=0.  I'm still trying to get clarification, but SLOT=0 used to mean that the package was not slottable, which revdep-rebuild uses to try to avoid mucking with /etc/portage/package.mask
Comment 10 Bo Ørsted Andresen (RETIRED) gentoo-dev 2007-09-05 04:10:44 UTC
(In reply to comment #9)
> Actually, it works for every case except when SLOT=0. I'm still trying to
> get clarification, but SLOT=0 used to mean that the package was not
> slottable, which revdep-rebuild uses to try to avoid mucking with
> /etc/portage/package.mask

Below is an exhaustive list of the 44 packages currently in gentoo-x86 that have more than one slot where one of those is SLOT=0. Combined they occupy 101 slots (2.3 slots pr. package on average). For comparison there are currently 259 packages in gentoo-x86 that have more than one slot (including the 44 below). ;)

app-arch/unace
app-crypt/gnupg
app-text/docbook-xml-simple-dtd
dev-cpp/libxmlpp
dev-db/oracle-instantclient-basic
dev-db/oracle-instantclient-jdbc
dev-db/oracle-instantclient-sqlplus
dev-db/sqlite
dev-java/commons-betwixt
dev-java/commons-httpclient
dev-java/commons-lang
dev-java/ehcache
dev-java/gnu-classpath
dev-java/java-config
dev-java/jcommon
dev-java/jfreechart
dev-java/prefuse
dev-java/saxon
dev-lang/gnat
dev-libs/apr
dev-libs/apr-util
dev-libs/libcroco
dev-libs/lzo
dev-ml/pcre-ocaml
dev-python/gst-python
dev-python/psycopg
dev-python/pysqlite
dev-python/sancho
dev-util/cvsweb
dev-util/netbeans
games-rpg/nwn-cep
gnome-extra/libgnomedb
media-libs/libmpd
media-libs/libvisual
media-plugins/libvisual-plugins
net-wireless/ipw2200-firmware
net-zope/plone
net-zope/portaltransforms
net-zope/zodb
sci-geosciences/grass
sys-boot/grub
sys-libs/slang
www-apps/viewcvs
x11-libs/qwt
Comment 11 Marius Mauch (RETIRED) gentoo-dev 2007-09-05 07:29:43 UTC
(In reply to comment #9)
> Actually, it works for every case except when SLOT=0.  I'm still trying to get
> clarification, but SLOT=0 used to mean that the package was not slottable,
> which revdep-rebuild uses to try to avoid mucking with
> /etc/portage/package.mask

If a package isn't slotted it's supposed to use SLOT=0, but SLOT=0 doesn't strictly mean that no other SLOTs may exist (it should be avoided as it can cause confusion, but it's not illegal. SLOT="" however is, but don't ask me why). Not sure why it matters anyway, should be technically no difference if the ebuilds of a package all use SLOT=0 or SLOT=1.
Comment 12 michael@smith-li.com 2008-02-24 23:34:51 UTC
Can someone please test this against revdep-rebuild in app-portage/gentoolkit-0.2.4_rc2?