Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 199518 - dev-lang/perl--5.8.8-r3 - problems with @INC
Summary: dev-lang/perl--5.8.8-r3 - problems with @INC
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: High blocker (vote)
Assignee: solar (RETIRED)
URL:
Whiteboard:
Keywords:
: 199525 199563 199588 199603 199635 (view as bug list)
Depends on:
Blocks: CVE-2007-5116
  Show dependency tree
 
Reported: 2007-11-18 12:21 UTC by Vsevolod Kozlov
Modified: 2007-11-19 13:06 UTC (History)
14 users (show)

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


Attachments
fix install path on amd64 (perl-5.8.8-libbits.patch,3.33 KB, text/plain)
2007-11-18 13:17 UTC, Steven Paine
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Vsevolod Kozlov 2007-11-18 12:21:41 UTC
I had precompiled perl-5.8.8-r2 installed (from some stage) and it worked fine, but I updated to 5.8.8-r3 and now @INC is wrong. It is missing 'perl5' directory.
For example: (@INC contains: /etc/perl /usr/lib64/vendor_perl/5.8.8/x86_64-linux /usr/lib64/vendor_perl/5.8.8 /usr/lib64/vendor_perl /usr/lib64/site_perl/5.8.8/x86_64-linux /usr/lib64/site_perl/5.8.8 /usr/lib64/site_perl /usr/lib64/5.8.8/x86_64-linux /usr/lib64/5.8.8 /usr/local/lib/site_perl .) where it should be /usr/lib64/perl5/*
perl-cleaner all did not do anything,
revdep-rebuild did not help.
What should I do?

Reproducible: Always

Steps to Reproduce:
1. Run a perl script which use;s an external module
2.
3.

Actual Results:  
perl fails, and shows @INC being incorrect

Expected Results:  
the module is use;d normally
Comment 1 Jakub Moc (RETIRED) gentoo-dev 2007-11-18 12:52:39 UTC
Please post your emerge --info. Also, looks just fine here:

$ perl -e "print @INC";
/etc/perl /usr/lib/perl5/vendor_perl/5.8.8/i686-linux /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/site_perl/5.8.8/i686-linux /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/5.8.8/i686-linux /usr/lib/perl5/5.8.8 /usr/local/lib/site_perl .

[ebuild   R   ] dev-lang/perl-5.8.8-r3  USE="berkdb -build -debug -doc gdbm -ithreads -perlsuid" 0 kB 
Comment 2 Vsevolod Kozlov 2007-11-18 12:57:15 UTC
emerge --info:
Portage 2.1.3.19 (default-linux/amd64/2007.0/desktop, gcc-4.1.2, glibc-2.6.1-r0, 2.6.17-gentoo-r8 x86_64)
=================================================================
System uname: 2.6.17-gentoo-r8 x86_64 AMD Athlon(tm) 64 Processor 3000+
Timestamp of tree: Sun, 18 Nov 2007 08:27:01 +0000
ccache version 2.4 [enabled]
app-shells/bash:     3.2_p17
dev-java/java-config: 1.3.7, 2.1.2-r1
dev-lang/python:     2.4.4-r6
dev-python/pycrypto: 2.0.1-r6
dev-util/ccache:     2.4-r7
sys-apps/baselayout: 1.12.9-r2
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.61-r1
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils:  2.18-r1
sys-devel/gcc-config: 1.3.16
sys-devel/libtool:   1.5.24
virtual/os-headers:  2.6.22-r2
ACCEPT_KEYWORDS="amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=athlon64 -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/lib64/mozilla/defaults/pref /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-march=athlon64 -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="ccache distlocks metadata-transfer sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LANG="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage /usr/portage/local/layman/sunrise /home/zaba/devel/gentoo"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X acpi alsa amd64 apache2 arts avi berkdb bitmap-fonts blender-game cairo cdr cli cracklib crypt cups dbus dri dvd dvdr dvdread eds emboss encode esd evo fam firefox fortran gdbm gif gpm gstreamer gtk iconv icq immqt-bc ipv6 irc isdnlog jpeg kde ldap mad midi mikmod mmx mozbranding mp3 mpeg mudflap ncurses nls nptl nptlonly ogg opengl openmp oss pam pcre pdf pdflib perl png ppds pppd python qt3 qt3support qt4 quicktime readline reflection sdl session spell spl sse sse2 ssl svg tcpd tiff truetype truetype-fonts type1-fonts unicode vorbis xml xorg xv zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="nvidia"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, LINGUAS, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
 # perl -e 'print join "\n",@INC'
/etc/perl
/usr/lib64/vendor_perl/5.8.8/x86_64-linux
/usr/lib64/vendor_perl/5.8.8
/usr/lib64/vendor_perl
/usr/lib64/site_perl/5.8.8/x86_64-linux
/usr/lib64/site_perl/5.8.8
/usr/lib64/site_perl
/usr/lib64/5.8.8/x86_64-linux
/usr/lib64/5.8.8
/usr/local/lib/site_perl
.

[ebuild   R   ] dev-lang/perl-5.8.8-r3  USE="berkdb gdbm -build -debug -doc -ithreads -perlsuid" 0 kB 

And I am on 64 bits.
Comment 3 Steven Paine 2007-11-18 13:17:59 UTC
Created attachment 136290 [details]
fix install path on amd64

The patch perl-5.8.8-libbits.patch is broken. It relocates perl to "/usr/lib64/5.8.8" on amd64.
Comment 4 Jakub Moc (RETIRED) gentoo-dev 2007-11-18 13:42:11 UTC
solar, your patch...

  18 Nov 2007; <solar@gentoo.org> -files/perl-5.8.8-lib64.patch,
  +files/perl-5.8.8-libbits.patch, perl-5.8.8-r2.ebuild,
  perl-5.8.8-r3.ebuild:
  - fixed the lib64 patch that was breaking on amd64 32ul.
Comment 5 Jakub Moc (RETIRED) gentoo-dev 2007-11-18 14:29:45 UTC
*** Bug 199525 has been marked as a duplicate of this bug. ***
Comment 6 Tobias Scherbaum (RETIRED) gentoo-dev 2007-11-18 17:15:01 UTC
b0rkage w/ libbits patch confirmed on ppc and x86 - can we please get rid of that patch soonish for now and test a fixed patch in a -r4 testing version? :)
Comment 7 Jakub Moc (RETIRED) gentoo-dev 2007-11-18 17:21:10 UTC
qa (or pretty much anyone) - reverting this patch swiftly would be mostly appreciated, since we don't have any usable perl ATM...
Comment 8 Christian Hartmann (RETIRED) gentoo-dev 2007-11-18 17:32:21 UTC
Hang on a sec.
Comment 9 Jakub Moc (RETIRED) gentoo-dev 2007-11-18 17:37:26 UTC
*** Bug 199563 has been marked as a duplicate of this bug. ***
Comment 10 Christian Hartmann (RETIRED) gentoo-dev 2007-11-18 17:42:47 UTC
Reverted.
Comment 11 Jakub Moc (RETIRED) gentoo-dev 2007-11-18 17:46:15 UTC
Thanks! 

I suppose we'll unfortunaly need a revbump for Bug 198196 and to force consistency as well, messing with things w/o revbump sucks :(
Comment 12 solar (RETIRED) gentoo-dev 2007-11-18 19:45:20 UTC
Mike D,
How did this patch break on amd64?

> (In reply to comment #6)
> b0rkage w/ libbits patch confirmed on ppc and x86 - can we please get rid of
> that patch soonish for now and test a fixed patch in a -r4 testing version? :)

How did this break on x86? "" defaults to "lib"

Comment 13 solar (RETIRED) gentoo-dev 2007-11-18 19:49:03 UTC
(In reply to comment #3)
> Created an attachment (id=136290) [edit]
> fix install path on amd64
> 
> The patch perl-5.8.8-libbits.patch is broken. It relocates perl to
> "/usr/lib64/5.8.8" on amd64.

All I see. Thanks for the patch. I'll merge this one next..

diff -u Configure Configure
--- Configure	2006-02-03 16:25:04.000000000 -0500
+++ Configure	2006-02-03 16:25:04.000000000 -0500
@@ -5958,8 +5958,8 @@
 : Reproduce behavior of 5.005 and earlier, maybe drop that in 5.7.
 case "$installstyle" in
 '')	case "$prefix" in
-		*perl*) dflt='lib32';;
-		*) dflt='lib32/perl5' ;;
+		*perl*) dflt="$lib";;
+		*) dflt="$lib/perl5" ;;
 	esac
 	;;
 *)	dflt="$installstyle" ;;
Comment 14 Jakub Moc (RETIRED) gentoo-dev 2007-11-18 22:04:22 UTC
*** Bug 199588 has been marked as a duplicate of this bug. ***
Comment 15 Jakub Moc (RETIRED) gentoo-dev 2007-11-18 22:20:22 UTC
(In reply to comment #13)
> All I see. Thanks for the patch. I'll merge this one next..

I'd strongly suggest that you check w/ perl people before *ever* touching this ebuild again.
Comment 16 solar (RETIRED) gentoo-dev 2007-11-18 22:57:06 UTC
perl team is dead. releng and amd64 leads both approved and requested I merge this 
to perl. ppc64 confirmed it did not break before anything was merged. 
It is unfortunate that non multilib users ran into problems. I hope all can recover without much effort.
Comment 17 Jakub Moc (RETIRED) gentoo-dev 2007-11-18 22:59:46 UTC
*** Bug 199603 has been marked as a duplicate of this bug. ***
Comment 18 Jakub Moc (RETIRED) gentoo-dev 2007-11-18 23:01:59 UTC
(In reply to comment #16)
> perl team is dead. releng and amd64 leads both approved and requested I merge
> this 
> to perl. ppc64 confirmed it did not break before anything was merged. 
> It is unfortunate that non multilib users ran into problems. I hope all can
> recover without much effort.

This has nothing to do w/ non-multilib, as said on this bug, you killed perl for every single arch out there.

Plus, perl team is not dead, as proved on this bug, a dead team hardly would react faster than someone who's responsible for a completely broken patch.

Comment 19 solar (RETIRED) gentoo-dev 2007-11-18 23:11:46 UTC
Jakub, Please take the argumentative attitude and rude comments elsewhere.
Comment 20 Jakub Moc (RETIRED) gentoo-dev 2007-11-18 23:22:44 UTC
argumentative == screw-up confirmed by everyone out there?
rude comments == asking you to follow the policies and stop touching stable ebuilds (which broke everyone out there, and interfered with release as well)?

*If* anyone tested this, they would have discovered that this totally kills perl. This is an apparent breach of QA and ebuild policies, not to mention common sense. What was the reason to mess w/ dev-lang/perl--5.8.8-r2 as well?

Not really what more to say here, I'd expect that you'd apologize to perl folks at minimum, but that apparently isn't the case. :/
Comment 21 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2007-11-19 07:23:49 UTC
*** Bug 199635 has been marked as a duplicate of this bug. ***
Comment 22 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2007-11-19 07:34:01 UTC
Could this please get a revbump perl to ensure anybody who merged the broken r3 gets a fixed version?
Comment 23 Christian Hartmann (RETIRED) gentoo-dev 2007-11-19 09:57:49 UTC
Revbumped.
Comment 24 Lionel Bouton 2007-11-19 11:57:42 UTC
Modules installed after dev-lang/perl-5.8.8-r3 are borked. For example after upgrading to dev-lang/perl-5.8.8-r4 amavisd-new was still complaining about missing modules for example.

Here's my quick and dirty solution that could help others get their perl back on its feet again:

1/ a one liner based on eix, which is fortunately a quick install if you miss it and don't want to hack around emerge --search (ignore carriage-returns if any):
eix -IAnc* perl |awk '{print $2}'|egrep -v 'virtual|dev-lang|libperl|perl-cleaner'
| for i in `cat -`; do echo -n "$i "; done

to get the list of perl modules in a copy-paste ready list

2/ emerge -1av <pasted_list>

Now amavisd-new works again.

Wow, major borkage, too bad I had a list of perl modules waiting for upgrade when r3 was commited...

If you have lots of modules and can hack a script quickly, parsing /var/log/emerge.log for modules emerged after r3 should do it.