Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 210501 - FEATURES="collision-protect preserve-libs": Libraries should be injected after file collision test
Summary: FEATURES="collision-protect preserve-libs": Libraries should be injected afte...
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core (show other bugs)
Hardware: All All
: High minor with 1 vote (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: InVCS
Depends on:
Blocks: 210077
  Show dependency tree
 
Reported: 2008-02-17 17:46 UTC by Arfrever Frehtes Taifersar Arahesis (RETIRED)
Modified: 2008-03-20 19:25 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 Arfrever Frehtes Taifersar Arahesis (RETIRED) gentoo-dev 2008-02-17 17:46:24 UTC
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
#
Comment 1 Marius Mauch (RETIRED) gentoo-dev 2008-02-18 20:33:24 UTC
But those files don't actually exist on the filesystem, right?
Comment 2 Zac Medico gentoo-dev 2008-02-19 06:10:26 UTC
(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.
Comment 3 Marius Mauch (RETIRED) gentoo-dev 2008-02-19 06:31:25 UTC
(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.
Comment 4 Arfrever Frehtes Taifersar Arahesis (RETIRED) gentoo-dev 2008-02-19 11:44:00 UTC
(In reply to comment #1)
> But those files don't actually exist on the filesystem, right?

They do exist.
Comment 5 Marius Mauch (RETIRED) gentoo-dev 2008-02-19 12:08:17 UTC
right, from the old instance, stupid me. That makes it a bit more complicated.
Comment 6 Marius Mauch (RETIRED) gentoo-dev 2008-03-20 18:14:57 UTC
This is supposed to be fixed in portage-2.2_pre5 or earlier.
Comment 7 Marius Mauch (RETIRED) gentoo-dev 2008-03-20 18:15:43 UTC
This is supposed to be fixed in portage-2.2_pre5 or earlier.