Bug 97894 - perl's MakeMaker problem
|
Bug#:
97894
|
Product: Gentoo Linux
|
Version: 2005.0
|
Platform: All
|
|
OS/Version: Linux
|
Status: RESOLVED
|
Severity: normal
|
Priority: P2
|
|
Resolution: FIXED
|
Assigned To: perl@gentoo.org
|
Reported By: gejzer@ibt.com.pl
|
|
Component: Ebuilds
|
|
|
URL:
|
|
Summary: perl's MakeMaker problem
|
|
Keywords:
|
|
Status Whiteboard:
|
|
Opened: 2005-07-04 05:01 0000
|
hi,
i have upgraded my perl to 5.8.6-r5 and noticed that MakeMaker is now not built with perl. this makes many perl-dependant packages fail to build (e.g. digest-base and family).
i tried to emerge ExtUtils-MakeMaker but get following error:
Checking if your kit is complete...
Looks good
Writing Makefile for ExtUtils::MakeMaker
>>> Test phase [not enabled]: perl-core/ExtUtils-MakeMaker-6.20
>>> Install ExtUtils-MakeMaker-6.20 into /var/tmp/portage/ExtUtils-MakeMaker-6.20/image/ category perl-core
make: *** No rule to make target `/usr/lib/perl5/5.8.6/i686-linux/CORE/config.h', needed by `Makefile'. Stop.
!!! ERROR: perl-core/ExtUtils-MakeMaker-6.20 failed.
!!! Function src_install, Line 26, Exitcode 2
and I am stuck now. what is the proper way to migrate from perl-alone version of MakeMaker and external one ?
emerge info:
Portage 2.0.51.19 (default-linux/x86/2005.0, gcc-3.3.5-20050130, glibc-2.3.4.20041102-r1, 2.6.11-gentoo-r11 i686)
=================================================================
System uname: 2.6.11-gentoo-r11 i686 Intel(R) XEON(TM) MP CPU 1.90GHz
Gentoo Base System version 1.6.12
Python: dev-lang/python-2.3.5 [2.3.5 (#1, Apr 28 2005, 10:47:43)]
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
dev-lang/python: 2.3.5
sys-apps/sandbox: [Not Present]
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.5
sys-devel/binutils: 2.15.92.0.2-r10
sys-devel/libtool: 1.5.16
virtual/os-headers: 2.6.8.1-r4
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-O2 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -mcpu=i686 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig ccache collision-protect distlocks sandbox sfperms strict"
GENTOO_MIRRORS="http://ftp.uni-erlangen.de/pub/mirrors/gentoo http://trumpetti.atm.tut.fi/gentoo"
MAKEOPTS="-j9"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://1g.compfort.com.pl/gentoo-portage"
USE="x86 X alsa apm berkdb bitmap-fonts chroot clearpasswd crypt emboss gdbm gpm gtk gtk2 hardened jpeg minimal mmx mp3 ncurses nptl pam perl python readline samba sse ssl symlink tcpd truetype-fonts type1-fonts zlib userland_GNU kernel_linux elibc_glibc"
Unset: ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTDIR_OVERLAY
You have minimal in your keywords. If you didn't want a minimal perl, you
shouldn't have emerged it with the keyword enabled. Minimal perl is for the
core perl interpeter and nothing more.
ive been using minimal keyword since it has appeared in portage with problems
and MakeMaker is so important module that it was included in such ebuild. why
the change?
and since it has been removed from base perl ebuild, then why am i not able to
emerge the 'external' MakeMaker ?
errata='with problems'->'without problems'
The minimal useflag is new to perl land. It is intended for those folks that
need the perl core engine, but not the ability to use/need perl modules.
Everything but the absolute core is stripped out, MakeMaker included. Its ideal
target audiance is the bootstrap folks and the minimal device installs.
i also find another reason to using minimal flag: lots of packages depend on
modules which are not built with 'minimal' perl ebuild and are available
externally, e.g. podparser.
building perl without minimal keyword makes other packages complain about file
collision with perl copies of those.
also, you wrote that minimal build includes MakeMaker, which is not true.
new ebuilds of perl (5.9.7 and 5.9.6-r5) do not include MakeMaker when build as
'minimal' packages.
i dont know if i am clear about this?
Afraid you misread that - everything is stripped out, including Makemaker,
means that makemaker is stripped out. Really, the whole point to a minimal
install isn't so that you can go back and install all of the core modules
again. Its so you have a minimal perl interpreter for a closed environment
where you don't need the cruft of a full install, just something you can pass
some basic perl arguments to.
i am sorry for my misreading and thanks for clarification.
i do fully understand your point about minimal perl ebuild; its that what is
being stripped off is something that worries me.
please elaborate on the other things i mentioned:
1. why MakeMaker was stripped off in new ebuild - it is crucial for
perl-dependand packages
2. why emerging MakeMaker fails
3. what to do with e.g. PodParser, which is dependend upon by e.g. spamassassin
and which is built (among other modules) in regular perl ebuild, leading to
file collision problems
I have a similar problem, although I'm making a fresh 2005.1 stage1 install.
When I do
emerge -e --resume system
I get:
*** Resuming merge...
>>> emerge (1 of 47) perl-core/Storable-2.13 to /
>>> md5 files ;-) Storable-2.07-r1.ebuild
>>> md5 files ;-) Storable-2.13.ebuild
>>> md5 files ;-) files/digest-Storable-2.13
>>> md5 files ;-) files/digest-Storable-2.07-r1
>>> md5 src_uri ;-) Storable-2.13.tar.gz
>>> Unpacking source...
>>> Unpacking Storable-2.13.tar.gz to /var/tmp/portage/Storable-2.13/work
>>> Source unpacked.
* Using ExtUtils::MakeMaker
Can't locate ExtUtils/MakeMaker.pm in @INC (@INC
contains: /etc/perl /usr/lib/perl5/site_perl/5.8.6/i386-linux /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.6/i386-linux /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.6/i386-linux /usr/lib/perl5/5.8.6 /usr/local/lib/site_perl .)
at Makefile.PL line 8.
BEGIN failed--compilation aborted at Makefile.PL line 8.
make: *** No targets specified and no makefile found. Stop.
!!! ERROR: perl-core/Storable-2.13 failed.
!!! Function perl-module_src_compile, Line 119, Exitcode 2
!!! compilation failed
!!! If you need support, post the topmost build error, NOT this status message.
My emerge info:
Gentoo Base System version 1.6.13
Portage 2.0.51.22-r2 (default-linux/x86/2005.1, gcc-3.3.5-20050130,
glibc-2.3.5-r0, 2.6.12-gentoo-r6 i686)
=================================================================
System uname: 2.6.12-gentoo-r6 i686 Pentium III (Coppermine)
dev-lang/python: 2.3.5
sys-apps/sandbox: 1.2.11
sys-devel/autoconf: 2.13, 2.59-r6
sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.5
sys-devel/binutils: 2.15.92.0.2-r10
sys-devel/libtool: 1.5.18-r1
virtual/os-headers: 2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O3 -march=pentium3 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O3 -march=pentium3 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks sandbox sfperms strict"
GENTOO_MIRRORS="http://gentoo.prz.rzeszow.pl http://gentoo.zie.pg.gda.pl"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="x86 X a52 aac acpi alsa apm arts avi bash-completion berkdb bitmap-fonts
blas browserplugin bzip2 cdparanoia cdr clamav crypt cups directfb divx4linux
dri dv dvd dvdr dvdread eds emboss encode ethereal exif fbcon flac foomaticdb
fortran ftp gd gdbm gif gphoto2 gpm gstreamer gtk gtk2 howl icc ieee1394
imagemagick imap imlib innodb ipv6 jabber jack java jpeg kde kerberos lapack
ldap libg++ libwww lm_sensors mad mikmod mime mmx mng mono motif mozilla mp3
mpeg mssql mysql nas ncurses nls nptl ogg oggvorbis opengl oss pam pda pdflib
perl plotutils png posix postgres python qt quicktime radius readline samba
sasl sdl slp snmp sockets spell sse ssl tcpd tetex tiff truetype truetype-fonts
type1-fonts unicode usb vcd vorbis win32codecs xine xml2 xmms xv xvid zlib
userland_GNU kernel_linux elibc_glibc"
Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTDIR_OVERLAY
I guess I could get it done by doing:
emerge ExtUtils-MakeMaker
but that would mean having to emerge the whole system again and is only a not
very nice workaround anyway.
(In reply to comment #8)
> Can't locate ExtUtils/MakeMaker.pm in @INC (@INC
> contains: /etc/perl /usr/lib/perl5/site_perl/5.8.6/i386-linux
/usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.6/i386-linux /usr/lib/perl5/vendor_perl/5.8.6
/usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.6/i386-linux /usr/lib/perl5/5.8.6
/usr/local/lib/site_perl .)
> CBUILD="i686-pc-linux-gnu"
> CFLAGS="-O3 -march=pentium3 -pipe"
> CHOST="i686-pc-linux-gnu"
Your INC reflects that perl was built with the archname of i386, but your chost
and flags are for an i686 - are you trying to switch arch settings? I don't see
minimal in your use flags, but can only assume it was there when you built perl.
I am in the process of placing a warning in the build of perl so that folks
using minimal perl understand that minimal is as the dictionary implies - bare,
minimal. I am closing this bug.
There's never been a 'minimal' in my USE, neither have I player with the arch
setting. Both have been the same since I set them at bootstraping. The problem
must still be there...
did you build perl on that box or did you inherit from a livecd/grp, maybe from
a stage3 intended for i386 folks? (not that any of this has anything to do with
the original bug, which though similar was related to the minimal use flag)
(In reply to comment #11)
I checked.
I thougt perl was built during 'emerge -e system'. But when I looked at the
output of 'emerge -pve system' I found it below perl-core/Storable which means
I never got that far. When I do 'emerge -pv perl' perl is marked as R so
somehow I must have it. I guess it must be from the livecd I'm booting, because
I see no other option and that would explain the 386.
All in all I think this is an error in the way 'emerge -e system' orders
packages. I'm new to Gentoo Bugzilla so please let me know if I should submit a
bug-report about this.
Thanks for your help
One more thing: I'm doing a stage1 install.