Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 519364 - sys-libs/db: SLOT clash between db-4.8.30 & 5.0.32
Summary: sys-libs/db: SLOT clash between db-4.8.30 & 5.0.32
Status: RESOLVED FIXED
Alias: None
Product: Gentoo/Alt
Classification: Unclassified
Component: Prefix Support (show other bugs)
Hardware: AMD64 OS X
: Normal normal (vote)
Assignee: Gentoo Prefix
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-08-08 00:02 UTC by Stuart Shelton
Modified: 2014-08-08 17:54 UTC (History)
0 users

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 Stuart Shelton 2014-08-08 00:02:09 UTC
Currently, only db-4.x and db-5.0.x can be built directly from tree, due to __atomic_compare_exchange and Interix patch issues.

However, with db-4.8.30 installed, the SLOT setup suggests that 5.0.32 should be able to be installed simultaneously.  However, on src_install, the following error occurs:

>>> Installing (1 of 1) sys-libs/db-5.0.32
 * checking 44 files for package collisions
 * This package will overwrite one or more files that may belong to other
 * packages (see list below). You can use a command such as `portageq
 * owners / <filename>` to identify the installed package that owns a
 * file. If portageq reports that only one package owns a file then do
 * NOT file a bug report. A bug report is only useful if it identifies at
 * least two or more packages that are known to install the same file(s).
 * If a collision occurs and you can not explain where the file came from
 * then you should simply ignore the collision since there is not enough
 * information to determine if a real problem exists. Please do NOT file
 * a bug report at http://bugs.gentoo.org unless you report exactly which
 * two packages install the same file(s). See
 * http://wiki.gentoo.org/wiki/Knowledge_Base:Blockers for tips on how to
 * solve the problem. And once again, please do NOT file a bug report
 * unless you have completely understood the above message.
 * 
 * package sys-libs/db-5.0.32 NOT merged
 * 
 * Detected file collision(s):
 * 
 *      /opt/gentoo/usr/lib/libdb.dylib
 * 
 * Searching all installed packages for file collisions...
 * 
 * Press Ctrl-C to Stop
 * 
 * sys-libs/db-4.8.30:4.8::gentoo_prefix
 *      /opt/gentoo/usr/lib/libdb.dylib
 * 
 * Package 'sys-libs/db-5.0.32' NOT merged due to file collisions. If
 * necessary, refer to your elog messages for the whole content of the
 * above message.
!!! When you file a bug report, please include the following information:
GENTOO_VM=  CLASSPATH="" JAVA_HOME=""
JAVACFLAGS="" COMPILER=""
and of course, the output of emerge --info =db-5.0.32

... as all buildable versions of sys-libs/db appear, on Darwin, to try to install their own version of libdb to ${EPREFIX}/usr/lib/libdb.dylib.

The live filesystem contains:

$ ls -l /opt/gentoo/usr/lib/libdb*
-rw-r--r-- 1 portage portage 2058704 Mar 23 16:28 /opt/gentoo/usr/lib/libdb-4.8.a
-rwxr-xr-x 1 portage portage 1424092 Mar 23 16:28 /opt/gentoo/usr/lib/libdb-4.8.dylib
-rw-r--r-- 1 portage portage     948 Mar 23 16:28 /opt/gentoo/usr/lib/libdb-4.8.la
lrwxr-xr-x 1 portage portage      11 Mar 23 16:28 /opt/gentoo/usr/lib/libdb.a -> libdb-4.8.a
lrwxr-xr-x 1 portage portage      15 Mar 23 16:28 /opt/gentoo/usr/lib/libdb.dylib -> libdb-4.8.dylib
-rw-r--r-- 1 portage portage 2289592 Mar 23 16:28 /opt/gentoo/usr/lib/libdb_cxx-4.8.a
-rwxr-xr-x 1 portage portage 1567852 Mar 23 16:28 /opt/gentoo/usr/lib/libdb_cxx-4.8.dylib
-rw-r--r-- 1 portage portage     976 Mar 23 16:28 /opt/gentoo/usr/lib/libdb_cxx-4.8.la
lrwxr-xr-x 1 portage portage      15 Mar 23 16:28 /opt/gentoo/usr/lib/libdb_cxx.a -> libdb_cxx-4.8.a
lrwxr-xr-x 1 portage portage      19 Mar 23 16:28 /opt/gentoo/usr/lib/libdb_cxx.dylib -> libdb_cxx-4.8.dylib
-rw-r--r-- 1 portage portage 2399128 Mar 23 16:28 /opt/gentoo/usr/lib/libdb_stl-4.8.a
-rwxr-xr-x 1 portage portage 1634800 Mar 23 16:28 /opt/gentoo/usr/lib/libdb_stl-4.8.dylib
-rw-r--r-- 1 portage portage     976 Mar 23 16:28 /opt/gentoo/usr/lib/libdb_stl-4.8.la
lrwxr-xr-x 1 portage portage      15 Mar 23 16:28 /opt/gentoo/usr/lib/libdb_stl.a -> libdb_stl-4.8.a
lrwxr-xr-x 1 portage portage      19 Mar 23 16:28 /opt/gentoo/usr/lib/libdb_stl.dylib -> libdb_stl-4.8.dylib

... so it appears that db-4.8.30 has incorrectly(?) installed unversioned symlinks:

/usr/lib/libdb.a
/usr/lib/libdb.dylib
/usr/lib/libdb_cxx.a
/usr/lib/libdb_cxx.dylib

... which prevent installation of other SLOTs.
Comment 1 Christoph Junghans (RETIRED) gentoo-dev 2014-08-08 15:25:27 UTC
Had the same issue on my amd64-linux system.

However on my amd64 is works, so my guess is there is a bug in db_fix_so in db.eclass.
Comment 2 Christoph Junghans (RETIRED) gentoo-dev 2014-08-08 17:54:54 UTC
Ok, I got it!

db.eclass gx86 -> prefix (pattern inside `find .. -delete`)
'libdb[1._-]*'so -> 'libdb[1._-]*'"$(get_libname)" 
on linux:
'libdb[1._-]*'so -> 'libdb[1._-]*'.so

This doesn't match libdb.so in prefix, while it matches libdb.so on gx86.

changeset:   60239:ade3af14ba84
tag:         tip
user:        Christoph Junghans <ottxor@gentoo.org>
date:        Fri Aug 08 11:54:23 2014 -0600
summary:     db.eclass: fix bug #519364