h2ph fails during post-install on an infinite recursion somewhere with gnome-xml/libxml/ perhaps on the parserInternals.h header Portage 2.0.49-r7 (default-x86-1.4, gcc-3.3.1, glibc-2.3.2-r1, 2.6.0-test5-mm4) ================================================================= System uname: 2.6.0-test5-mm4 i686 Intel(R) Xeon(TM) CPU 2.80GHz ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-O2 -march=pentium4 -funroll-loops -pipe" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/kde/3/share/config /usr/X11R6/lib/X11/xkb /usr/kde/3.1/share/config /usr/share/config" CONFIG_PROTECT_MASK="/etc/afs/C /etc/afs/afsws /etc/gconf /etc/env.d" CXXFLAGS="-O2 -march=pentium4 -funroll-loops -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="sandbox ccache autoaddcvs" GENTOO_MIRRORS="http://gentoo.oregonstate.edu http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 oss apm avi crypt cups encode foomaticdb gif jpeg libg++ libwww mad mikmod mmx mpeg ncurses pdflib png quicktime spell truetype xml2 xmms xv zlib alsa gdbm berkdb slang readline arts aalib svga java ruby postgres X sdl tcpd pam ssl perl python imlib oggvorbis gnome gtk qt kde opengl ldap afs apache2 artswrappersuid bonobo cdr cscope curl dedicated dga dnd dv dvd esd ethereal faad fltk glut gnomedb gphoto2 gstreamer gtk2 gtkhtml guile icc imagemagick imap jack lcms lua maildir mldonkeypango mng mozcalendar mozilla mozp3p mozsvg mpi offensive openal parse-clocks pic sasl skey slp sse tcltk tiff transcode usb videos wmf wxwin wxwindows Xaw3d xface xine xml xosd xvid -gpm -motif -nls"
Noticed the same thing whilst the emerge was chasing its (infinite) tail. Hit ^C when I saw it was going round in loops and ... The package appears to be installed "correctly" - emerge -s perl gives: * dev-lang/perl Latest version available: 5.8.1-r1 Latest version installed: 5.8.1-r1 Size of downloaded files: 11,579 kB Homepage: http://www.perl.org/ Description: Larry Wall's Practical Extraction and Reporting Language
There problem lies between the way gnome-xml C headers are organized : $ ls -l /usr/include/gnome-xml/libxml lrwxrwxrwx 1 root root 22 2003-11-11 19:48 /usr/include/gnome-xml/libxml -> /usr/include/gnome-xml and h2ph which fails to detect it is parsing an already seen directory when following /usr/include/gnome-xml/libxml symlink. I don't know if h2ph failed with my install, but /usr/lib/perl5/site_perl/5.8.1/i686-linux/gnome-xml/ has a huge collection of subdirs made from libxml recursively included. Perl 5.8.2 does not seem affected...
do we need h2ph at all?
> do we need h2ph at all? That's what I wondered yesterday when I saw how long was a perl update because of this full /usr/include h2ph process, I was about to open a bug on this when I've found this one. Two possibilities: - either perl really need some .ph for all headers on the system, but in that case perl is currently broken: when I install/update/remove a package which comes with headers, nothing makes the corresponding changes to .ph files. Also, the .ph set for a perl installed during the initial gentoo system install and the .ph set for the same perl version reinstalled after I've installed all my post-stage3 packages are very different... this is not coherent. If this thing is really required, then portage should updates .ph files whenever he changes some .h files. - or .ph are not required. I tend to think this is the right answer since I've never seen bugs about perl modules that can't build because of .ph files lacks, whereas it obviously often happens that one builds a perl module that uses a just emerged library, whose headers have not been converted. If this conversion is seen as an optimisation because "this .ph may be useful in the futur", I think it is a wrong optimisation. It takes much time whereas it is at 99% useless, and will be completly outdated at some point.
fixed with a sensible alteration to how h2ph is called. h2ph is called because this is the perl (as in tm) recommended installation procedure. Closing this bug unless someone needs it reopened for discussion.
A quick note about this: Yes, the perl INSTALL doc *does* recommend that you run h2ph. I can dig that. However, the docs also recommend that you run THIS command: cd /usr/include; h2ph *.h sys/*.h That is *vastly* different from the command run from the ebuild, which is: cd /usr/include; find ./ -name "*.h" -type f -exec h2ph {} \; The former would convert 696 .h files on my current system. The latter is currently in the process of converting *10375* .h files. That's just crazy. Pleeease change this in the ebuild, I've been waiting for Perl to get done emerging for almost an hour now. (That "find" command is present in at least the 5.8.4, 5.8.4-r1, and 5.8.5 ebuilds currently)