FEATURES="collision-protect preserve-libs": Libraries should be injected after file collision test. I was trying to update sys-libs/libcap-1.10-r11 to sys-libs/libcap-2.06 and I accidentally reproduced Bug #210443. strip: i686-pc-linux-gnu-strip --strip-unneeded -R .comment lib/libcap.so.2.06 sbin/setcap sbin/capsh sbin/getpcaps sbin/getcap usr/lib/libcap.a ecompressdir: bzip2 -9 /usr/share/man making executable: lib/libcap.so.2.06 * QA Notice: Package has poor programming practices which may compile * fine but exhibit random runtime failures. * pam_cap.c:298: warning: dereferencing type-punned pointer will break strict-aliasing rules * Please do not file a Gentoo bug and instead report the above QA * issues directly to the upstream developers of this software. * Homepage: http://www.friedhoff.org/posixfilecaps.html injecting /lib/libcap.so.1 into /var/tmp/portage/sys-libs/libcap-2.06/image/ injecting /lib/libcap.so.1.10 into /var/tmp/portage/sys-libs/libcap-2.06/image/ * checking 38 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). Once again, please do NOT file * a bug report unless you have completely understood the above message. * * package sys-libs/libcap-2.06 NOT merged * * Detected file collision(s): * * /usr/share/man/man2/capget.2.bz2 * /usr/share/man/man2/capset.2.bz2 * * Searching all installed packages for file collisions... * * Press Ctrl-C to Stop * ^C Exiting on signal 2 # portageq list_preserved_libs / sys-libs/libcap-2.06 /lib/libcap.so.1 /lib/libcap.so.1.10 # emerge -ptv libcap These are the packages that would be merged, in reverse order: Calculating dependencies... done! [ebuild U ] sys-libs/libcap-2.06 [1.10-r11] USE="pam%* (-python%*)" 0 kB Total: 1 package (1 upgrade), Size of downloads: 0 kB # emerge -ptv @preserved-rebuild These are the packages that would be merged, in reverse order: Calculating dependencies... done! [ebuild R ] app-cdr/cdrkit-1.1.6 USE="unicode -hfs" KERNEL="(linux) (-FreeBSD)" 0 kB [ebuild R ] app-misc/pax-utils-0.1.17 USE="caps" 0 kB [ebuild R ] app-crypt/pinentry-0.7.4-r1 USE="caps gtk ncurses qt3" 0 kB [ebuild U ] sys-libs/libcap-2.06 [1.10-r11] USE="pam%* (-python%*)" 0 kB Total: 4 packages (1 upgrade, 3 reinstalls), Size of downloads: 0 kB #
But those files don't actually exist on the filesystem, right?
(In reply to comment #0) > * Detected file collision(s): > * > * /usr/share/man/man2/capget.2.bz2 > * /usr/share/man/man2/capset.2.bz2 If the collision is with manpages then it seems completely unrelated to the preserve-libs feature. It shouldn't matter whether we copy the libraries before or after because both packages are in the same slot and are therefore exempt from collisions.
(In reply to comment #2) > (In reply to comment #0) > > * Detected file collision(s): > > * > > * /usr/share/man/man2/capget.2.bz2 > > * /usr/share/man/man2/capset.2.bz2 > > If the collision is with manpages then it seems completely unrelated to the > preserve-libs feature. It shouldn't matter whether we copy the libraries > before or after because both packages are in the same slot and are therefore > exempt from collisions. The isue is not the collision, but that the libs were registered. But that should just need another call to pruneNonExisting() somewhere.
(In reply to comment #1) > But those files don't actually exist on the filesystem, right? They do exist.
right, from the old instance, stupid me. That makes it a bit more complicated.
This is supposed to be fixed in portage-2.2_pre5 or earlier.