Emerge fails with FEATURES="collision-protect", without collision-protect perllocal.pod is overwritten. :/ Reproducible: Always Steps to Reproduce: 1. cd /usr/lib/perl5/5.8.5/i686-linux/ 2. cp perllocal.pod perllocal.pod.orig 3. FEATURES="-collision-protect" USE="perl" emerge =net-snmp-5.2 4. diff -Nu perllocal.pod.orig perllocal.pod > perllocal.pod.diff Actual Results: perllocal.pod overwritten after emerge Expected Results: perllocal.pod should be appended, NOT overwritten! # emerge info Portage 2.0.51-r15 (default-linux/x86/2004.3, gcc-3.3.5, glibc-2.3.4.20040808-r1, 2.6.9-gentoo-r13 i686) ================================================================= System uname: 2.6.9-gentoo-r13 i686 AMD Athlon(tm) XP 2200+ Gentoo Base System version 1.6.7 Python: dev-lang/python-2.3.4 [2.3.4 (#1, Oct 17 2004, 02:15:56)] dev-lang/python: 2.3.4 sys-devel/autoconf: 2.59-r6, 2.13 sys-devel/automake: 1.7.9-r1, 1.8.5-r3, 1.5, 1.4_p6, 1.6.3, 1.9.4 sys-devel/binutils: 2.15.92.0.2-r1 sys-devel/libtool: 1.5.10-r4 virtual/os-headers: 2.6.8.1-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O3 -march=athlon-xp -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /opt/glftpd/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/bind /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O3 -march=athlon-xp -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache collision-protect distlocks makecheck sandbox sfperms" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 3dnow acpi apache2 apm arts avi berkdb bitmap-fonts crypt encode f77 fbcon firebird font-server foomaticdb fortran gd gd-external gdbm gif gpm gtk2 imap imlib innodb java jpeg junit libg++ libwww mad maildir mikmod mmx motif mpeg mysql ncurses nls nptl odbc oggvorbis opengl oss pam pdflib perl png pnp postgres python quicktime readline sasl sdl slang snmp socks5 spell sse ssl svga tcpd tiff truetype truetype-fonts type1-fonts unicode xml xml2 xmms xv zlib" Unset: ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS
Netmon, Either append the info or find a way to use the perlmodules eclass (which appends the info ;) ). Let me know if you need help adapting it, mike
Well, I'm pretty sure I have the fix but cannot reproduce the collision. Never seen something so odd: $ equery belongs /usr/lib/perl5/5.8.5/i686-linux/perllocal.pod [ Searching for file(s) /usr/lib/perl5/5.8.5/i686-linux/perllocal.pod in *... ] dev-util/subversion-1.1.1-r3 (/usr/lib/perl5/5.8.5/i686-linux/perllocal.pod) net-analyzer/net-snmp-5.2 (/usr/lib/perl5/5.8.5/i686-linux/perllocal.pod) net-im/gaim-1.1.1 (/usr/lib/perl5/5.8.5/i686-linux/perllocal.pod) This is after merging with FEATURES="collision-protect". So because of this, I am unable to test the solution. I am posting the (hopefully) fixed ebuild here in hopes that you'll test it and let me know. To test (I apologize if this is info you know already): 1) mkdir -p ~/overlay/net-analyzer 2) cp -R /usr/portage/net-analyzer/net-snmp ~/overlay/net-analyzer 3) export PORTDIR_OVERYLAY=~/overlay 4) save attached ebuild into ~/overlay/net-analyzer 5) ebuild ~/overlay/net-analyzer/net-snmp/net-snmp-5.2-r3.ebuild digest 6) FEATURES="collision-protect" emerge net-snmp
Created attachment 50115 [details] net-snmp-5.2-r3.ebuild
Thanks Aaron, but I
Thanks Aaron, but I´m afraid I cannot test the collision-protect fix either, because now I have: $ equery belongs /usr/lib/perl5/5.8.5/i686-linux/perllocal.pod dev-perl/mod_perl-1.99.11 (/usr/lib/perl5/5.8.5/i686-linux/perllocal.pod) net-analyzer/net-snmp-5.2 (/usr/lib/perl5/5.8.5/i686-linux/perllocal.pod) So if it correctly appends perllocal.pod and does not overwrite it any more, I would mark this bug fixed as this was the main point of this bug. Perl devs have probably given up on getting collision-protect work with perl-related ebuilds - see Bug 71659.
Fixed. The ebuild now uses perl-module.eclass which, if the perllocal.pod file exists already, will install the pod into /usr/share/perl/gentoo-pods with a package specific file name.
(Realizing this is closed, but wanted to comment) Out (my?) giving up with collision related bugs is related to circumstances where an ebuild of a module (preferably newer :) ) is attempting to replace a module that was provided in the core perl install. A good example of this was the Safe ebuild, which addressed security problems in the Safe module distributed with the old perl <=5.8.0 distributions - a case where you need to overwrite what's already provided. I asked Aaron not to let this one get lumped with that other bug because perllocal.pod overwrites is a different issue (just the same results).
*** Bug 80835 has been marked as a duplicate of this bug. ***