Whether by missing dependancy, or a bug in the distribution, the current zsh 4.1.0_pre7 ebuild fails to compile: ... gcc -c -I. -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -DMODULE -march=pentium3 -O3 -pipe -fPIC -o pcre..o pcre.c pcre.c:36:18: pcre.h: No such file or directory pcre.c:38: parse error before '*' token pcre.c:38: warning: data definition has no type or storage class pcre.c:39: parse error before '*' token pcre.c:39: warning: data definition has no type or storage class pcre.c: In function `bin_pcre_compile': pcre.c:48: `PCRE_ANCHORED' undeclared (first use in this function) pcre.c:48: (Each undeclared identifier is reported only once pcre.c:48: for each function it appears in.) pcre.c:49: `PCRE_CASELESS' undeclared (first use in this function) pcre.c:50: `PCRE_MULTILINE' undeclared (first use in this function) pcre.c:51: `PCRE_EXTENDED' undeclared (first use in this function) pcre.c:55: warning: assignment makes pointer from integer without a cast pcre.c: In function `bin_pcre_study': pcre.c:75: warning: assignment makes pointer from integer without a cast pcre.c: In function `bin_pcre_match': pcre.c:108: `PCRE_INFO_CAPTURECOUNT' undeclared (first use in this function) pcre.c:120: `PCRE_ERROR_NOMATCH' undeclared (first use in this function) make[3]: *** [pcre..o] Error 1 make[3]: Leaving directory `/var/tmp/portage/zsh-4.1.0_pre7/work/zsh-4.1.0-dev-7/Src/Modules' make[2]: *** [modules] Error 1 make[2]: Leaving directory `/var/tmp/portage/zsh-4.1.0_pre7/work/zsh-4.1.0-dev-7/Src' make[1]: *** [modules] Error 2 make[1]: Leaving directory `/var/tmp/portage/zsh-4.1.0_pre7/work/zsh-4.1.0-dev-7/Src' make: *** [all] Error 1 !!! ERROR: app-shells/zsh-4.1.0_pre7 failed. !!! Function src_compile, Line 43, Exitcode 2 !!! make failed The previous zsh installed on my system is 4.0.6-r4
Upgrading to libpcre 4.2-r1 fiixes this problem. Please change the dependancies. The zsh 4.1.0_pre7 uses libpcre, but doesn't mention it in either DEPENDS or USES, and libpcre < 4.2-r1 breaks the zsh build.
Hum... I downgraded libpcre to dev-libs/libpcre-3.9-r2 but had no problem with compiling zsh-4.1.0_pre7 and zsh-4.1.1. They are using libpcre so that they should DEPENDs on or USEs libpcre as you described, but I cannot decide the version it should be. Which version of libpcre did you use? And could you attach the output of emerge info, please?
Hmm. I don't remember which libpcre I was using; that's the one bit of info I didn't capture. It may have been a revision or two prior to 4.2-r1. I would think that any ebuild dependancy on libpcre (even an unversioned reference) would be preferable to no dependancy at all. I am /fairly/ sure that I had some libpcre installed when I encountered the error. I seem to remember being perplexed by the error, because it said it couldn't find pcre.h, and yet it existed when I search with 'locate'. Besides, metalog and kde both depend on libpcre, and I have both of those installed. Sorry that I can't tell you which version I had the problem with :-( Here's the output from emerge info: Portage 2.0.48-r1 (default-x86-1.4, gcc-3.2.2, glibc-2.3.1-r4) ================================================================= System uname: 2.5.75 i686 Intel(R) Pentium(R) 4 CPU 1.80GHz GENTOO_MIRRORS="http://www.ibiblio.org/gentoo ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo http://csociety-ftp.ecn.purdue.edu/pub/gentoo/ ftp://csociety-ftp.ecn.purdue.edu/pub/gentoo/ rsync://csociety-ftp.ecn.purdue.edu/pub/gentoo/ ftp://mirror.iawnet.sandia.gov/pub/gentoo/ ftp://ftp.ussg.iu.edu/pub/linux/gentoo" 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/gconf /etc/env.d" PORTDIR="/usr/portage" DISTDIR="/usr/portage/distfiles" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR_OVERLAY="/usr/local/portage" USE="x86 oss apm crypt encode foomaticdb gif libg++ libwww mad mikmod mmx mpeg ncurses nls pdflib quicktime truetype xml2 xmms zlib gtkhtml gdbm berkdb readline arts tcltk java X sdl gpm tcpd ssl esd imlib gtk motif cdr -tetex -lilo -nano -alsa -3dnow -voodoo3 -matrox -scanner -dga -gnome -bonobo -evo -guile -perl -mysql -python -slang -zeo -inndb -cjk -canna -freewnn -mule opengl xv ruby qt qtmt wavelan kamera pda oggvorbis pcmcia spell gphoto2 ggi avi dvd css kde png pam maildir cups jpeg plugins ldap aalib directfb fbcon svga" COMPILER="gcc3" CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium3 -O3 -pipe" CXXFLAGS="-march=pentium3 -O3 -pipe" ACCEPT_KEYWORDS="x86" MAKEOPTS="-j2" AUTOCLEAN="yes" SYNC="rsync://rsync.gentoo.org/gentoo-portage" FEATURES="sandbox ccache" It is possible that my libpcre install was munged. With Gentoo, I find that occasionally some arbitrary file will suddenly get the contents of some other file; maybe this is what happened to my pcre.h, and simply re-installing it (albeit a newer version) fixed it. FWIW, I encountered no dependancy conflicts with upgrading libpcre. IMO, I'd just have zsh depend on libpcre 4.2-r1 or greater, and leave it at that. It has to have /some/ mention of its dependancy on libpcre!
All right, I checked all libpcre in CVS and all of them don't have that problem. I'm not sure but libpcre-4.2.ebuild might have had the problem (it was removed because of another bug). I added DEPEND=">=dev-libs/libpcre-3.9" (the oldest version I tested) to zsh-4.1.1.ebuild (will soon available in CVS). Thank you for your notice.