Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 69625 - Perl installs own MIME::QuotedPrint, does not allow updates
Summary: Perl installs own MIME::QuotedPrint, does not allow updates
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All All
: High major (vote)
Assignee: Gentoo Perl team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 67686
  Show dependency tree
 
Reported: 2004-10-31 08:02 UTC by Doug Goldstein (RETIRED)
Modified: 2005-08-04 03:39 UTC (History)
2 users (show)

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 Doug Goldstein (RETIRED) gentoo-dev 2004-10-31 08:02:26 UTC
I have a package that relies on MIME::QuotedPrint 3.03 which appears to be supplied by the perl package itself. However, perl provides 3.01. Running a quick g-cpan.pl tells you that MIME::QuotedPrint is provided by MIME-Base64 which is at version 3.05. I emerged it and it installed a new copy of MIME::QuotedPrint however, Perl will still pull it's own copy before it pulls the copy from MIME-Base64 which results in me not being able to use the version I want.

qpkg -v -f /usr/lib/perl5/5.8.4/i686-linux/MIME/QuotedPrint.pm
dev-lang/perl-5.8.4-r1 *

>>> /usr/lib/perl5/vendor_perl/5.8.4/i686-linux/MIME/QuotedPrint.pm

is where the newer version gets installed by the MIME-Base64.

I assume this a problem for all Perl provided modules.



emerge info
Portage 2.0.51-r2 (default-x86-2004.2, gcc-3.3.4, glibc-2.3.4.20040808-r1, 2.6.9-gentoo-r1 i686)
=================================================================
System uname: 2.6.9-gentoo-r1 i686 AMD Athlon(tm) XP 2800+
Gentoo Base System version 1.4.16
Autoconf: sys-devel/autoconf-2.59-r5
Automake: sys-devel/automake-1.8.5-r1
Binutils: sys-devel/binutils-2.14.90.0.8-r1
Headers:  sys-kernel/linux26-headers-2.6.8.1
Libtools: sys-devel/libtool-1.5.2-r5
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-O2 -march=i686 -mmmx -msse -fomit-frame-pointer -ffast-math"
CHOST="i686-pc-linux-gnu"
COMPILER=""
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -march=i686 -mmmx -msse -fomit-frame-pointer -ffast-math"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache distlocks sandbox"
GENTOO_MIRRORS="http://open-systems.ufl.edu/mirrors/gentoo/distfiles/ http://gentoo.osuosl.org"
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="alsa apache2 apm avi berkdb bitmap-fonts crypt cups curl encode f77 foomaticdb gd gdbm gif gpm imap imlib innodb ipv6 jpeg kerberos ldap libg++ libwww mad maildir mikmod mpeg mysql ncurses nptl oav oggvorbis opengl oss pam pdflib perl php png python quicktime readline samba sasl sdl session simplexml slang spell ssl svga tcpd tiff truetype virus-scan x86 xml2 xmms xv zlib"
Comment 1 Michael Cummings (RETIRED) gentoo-dev 2004-10-31 11:13:34 UTC
Cardoe: Then block the newer perl module and versions of perl in your package. perl -e 'use MIME::QuotedPrint; print "$MIME::QuotedPrint::VERSION\n"' will say 3.0.3 if you have MIME-Base64-3.05 installed. (Versions for modules contained wihtin a package don't always match versions of said package). Not sure where you think the bug here is - modules you install from dev-perl/ will override modules that were originally supplied by the perl ebuild - its supposed to be that way.
Comment 2 Doug Goldstein (RETIRED) gentoo-dev 2004-11-01 00:34:27 UTC
Says 3.01. MIME-Base64 3.05 provides MIME::QuotedPrint 3.03. I'm well aware of that. I had to physically rename the file that dev-lang/perl provided to get 3.03 to come up.

It might be designed like that, but it's not working. Two boxes now I can confirm this issue.

Modules from dev-perl are NOT overriding the default perl stuff.
Comment 3 Doug Goldstein (RETIRED) gentoo-dev 2004-11-01 23:27:31 UTC
Oddly enough. This was all from 1 binary package. I rebuild Perl and it corrected the @INC path problems... and your script ran from the command line correctly.

However... there's still a slight issue... the reordered @INC patch was applied to dev-lang/perl fairly early on... however the same patch is only in sys-devel/libperl since 5.8.5 which causes a bit of confusion. So mod_perl 2 will have to depend on perl 5.8.5 to fix this issue.
Comment 4 Marshall Roch 2004-11-19 14:16:53 UTC
So what's the status on this?  I just emerged Perl 5.8.4, MIME-tools, and MIME-Base64.  When I started up my software, it said that MIME::Words required MIME::QuotedPrint 3.03 but 3.01 was installed.  I unmerged MIME-Base64 and installed through CPAN and it works fine.
Comment 5 Ryan Roland 2004-12-31 13:52:39 UTC
I'm also appear to be running into this problem.  I have an application which requires MIME::QuotedPrint 3.03 and is complaining about only having version 3.01.  Now, I'm not that familiar with the perl environment setup, but in looking, I'm finding a:

/usr/lib/perl5/5.8.5/i686-linux/MIME/QuotedPrint.pm - v 3.01
and a
/usr/lib/perl5/vendor_perl/5.8.5/i686-linux/MIME/QuotedPrint.pm - v 3.03

I'm not really sure what the difference is.  Which one is actually being used?  Is it possible that the CLI perl is using one and mod_perl is using another?

Not sure what the workaround to this is.

Thanks,

Ryan
Comment 6 Robert Krimen 2005-01-14 10:43:41 UTC
I just want'd to chime that I'm having the exact same problem (two versions of MIME::QuotedPrint). 

I have --sync'd to the latest AND emerged the latest perl and the latest MIME-Base64 to no effect.
Comment 7 Eric Brown 2005-01-31 12:53:35 UTC
updated perl this morning, it broke RT for me via QuotedPrint also (PERL SUCKS).

trying to start apache = 

[error] MIME::QuotedPrint version 3.03 required--this is only version 3.01 at /usr/lib/perl5/vendor_perl/5.8.5/MIME/Words.pm line 86.\nBEGIN failed--compilation aborted at /usr/lib/perl5/vendor_perl/5.8.5/MIME/Words.pm line 86.\nCompilation failed in require at /usr/lib/perl5/vendor_perl/5.8.5/MIME/Head.pm line 123.\nBEGIN failed--compilation aborted at /usr/lib/perl5/vendor_perl/5.8.5/MIME/Head.pm line 123.\nCompilation failed in require at /usr/lib/perl5/vendor_perl/5.8.5/MIME/Entity.pm line 235.\nBEGIN failed--compilation aborted at /usr/lib/perl5/vendor_perl/5.8.5/MIME/Entity.pm line 235.\nCompilation failed in require at /usr/lib/RT/I18N.pm line 44.\nBEGIN failed--compilation aborted at /usr/lib/RT/I18N.pm line 44.\nCompilation failed in require at /usr/lib/RT.pm line 29.\nBEGIN failed--compilation aborted at /usr/lib/RT.pm line 29.\nCompilation failed in require at /usr/bin/webmux.pl line 43.\nBEGIN failed--compilation aborted at /usr/bin/webmux.pl line 43.\nCompilation failed in require at (eval 7) line 1.\n
Syntax error on line 13 of /etc/apache/conf/vhosts/Vhosts.conf:
MIME::QuotedPrint version 3.03 required--this is only version 3.01 at /usr/lib/perl5/vendor_perl/5.8.5/MIME/Words.pm line 86.
BEGIN failed--compilation aborted at /usr/lib/perl5/vendor_perl/5.8.5/MIME/Words.pm line 86.
Compilation failed in require at /usr/lib/perl5/vendor_perl/5.8.5/MIME/Head.pm line 123.
BEGIN failed--compilation aborted at /usr/lib/perl5/vendor_perl/5.8.5/MIME/Head.pm line 123.
Compilation failed in require at /usr/lib/perl5/vendor_perl/5.8.5/MIME/Entity.pm line 235.
BEGIN failed--compilation aborted at /usr/lib/perl5/vendor_perl/5.8.5/MIME/Entity.pm line 235.
Compilation failed in require at /usr/lib/RT/I18N.pm line 44.
BEGIN failed--compilation aborted at /usr/lib/RT/I18N.pm line 44.
Compilation failed in require at /usr/lib/RT.pm line 29.
BEGIN failed--compilation aborted at /usr/lib/RT.pm line 29.
Compilation failed in require at /usr/bin/webmux.pl line 43.
BEGIN failed--compilation aborted at /usr/bin/webmux.pl line 43.
Compilation failed in require at (eval 7) line 1.
Comment 8 Ryan Roland 2005-01-31 13:59:20 UTC
FYI, I submitted a more descript bug report, since it was specific to the application with which I was having problems.  However, if it can be helpful or in any way applicable to this bug, here's the link to it:

http://bugs.gentoo.org/show_bug.cgi?id=76970

Hope it helps,

Ryan
Comment 9 Eric Brown 2005-02-01 05:51:15 UTC
The solution for getting apache to start (with RT) is described here:

http://wiki.bestpractical.com/index.cgi?GentooInstallGuide

"You must have perl at >=5.8.3 and MIME-Base64 >=3.05. 

You then must rm /usr/lib/perl5/5.8.5/i686-linux/MIME/QuotedPrint.pm. 

If you don't delete that file, then when you start Apache it will complain about finding MIME-QuotedPrint 3.01 instead of 3.03. Delting that file gets 3.03 working. "


I can verify that this solution solves my problem and indeed apache starts...  If I ever get time I'll look into why this is happening and see if there's a way to fix it.
Comment 10 Doug Goldstein (RETIRED) gentoo-dev 2005-02-01 06:01:14 UTC
No need to look into it.

It's because of a broken INCLUDE path that mod_perl2 has built in. The Perl devs have corrected the path in the ebuilds for Perl. The fixes have recently gone into the libperl ebuilds. modperl2 uses libperl. However, it looks like the include path to mod_perl2 needs to be fixed in the ebuild itselfs.
Comment 11 Eric Brown 2005-02-01 06:32:59 UTC
I  dont have mod_perl2 I have mod_perl-1.27-r4.

BTW removing that file did not solve the problem, i have issues with MIME-Base64..

Can't locate object method "init" via package "MIME::Decoder::QuotedPrint" at /usr/lib/perl5/vendor_perl/5.8.5/MIME/Decoder.pm 
Comment 12 Michael Cummings (RETIRED) gentoo-dev 2005-08-04 03:39:17 UTC
This can be closed now - all versions of libperl/perl in the tree correctly
incorporate the reverse inc patch, and mod_perl (for example) shows the
correctly reversed @INC now