Hi, The ebuild tries to do some things which are not required or at least which consistently break the ebuild on my system but I should think quite a few more. The problem lies in line 23 which reads: automake --add-missing || die It should be removed in which case it works. automake is a developers tool to help create a Makefile.in compliant with GNU project standards. Speaking of which ,in lines 21, 22 and 24, the ebuild uses: libtoolize, aclocal, autoconf which are more tools from the same caliber. They are not required. Here is a diff for the file (copy paste sorry): # diff -Naur /usr/portage/dev-libs/cyrus-sasl/cyrus-sasl-1.5.27-r1.ebuild.ORG /usr/portage/dev-libs/cyrus-sasl/cyrus-sasl-1.5.27-r1.ebuild --- /usr/portage/dev-libs/cyrus-sasl/cyrus-sasl-1.5.27-r1.ebuild.ORG Thu May 2 02:21:59 2002 +++ /usr/portage/dev-libs/cyrus-sasl/cyrus-sasl-1.5.27-r1.ebuild Thu May 2 02:22:08 2002 @@ -18,10 +18,6 @@ patch -p1 < ${FILESDIR}/${PN}-saslauthd.patch || die patch -p1 < ${FILESDIR}/${PN}-1.5.24-rpath.patch || die patch -p0 < ${FILESDIR}/${PN}-1.5.27-scram.patch || die - libtoolize --copy --force - aclocal -I cmulocal || die - automake --add-missing || die - autoconf || die } src_compile() { # Thanks!
Look at the patches, then please comment again.
Ok, the patches, I had not read those and yeah the way those are made you'll need to run the tools. Still it doesn't work on my system with the standard ebuild, to get it to work I still need to avoid telling automake to provide it's own files for what it thinks is missing. Below is the diff again but now still running the tools but also effectively building on my system. # diff -Naur dev-libs/cyrus-sasl/cyrus-sasl-1.5.27-r1.ebuild.ORG dev-libs/cyrus-sasl/cyrus-sasl-1.5.27-r1.ebuild --- dev-libs/cyrus-sasl/cyrus-sasl-1.5.27-r1.ebuild.ORG Thu May 2 02:21:59 2002 +++ dev-libs/cyrus-sasl/cyrus-sasl-1.5.27-r1.ebuild Thu May 2 17:38:08 2002 @@ -20,7 +20,7 @@ patch -p0 < ${FILESDIR}/${PN}-1.5.27-scram.patch || die libtoolize --copy --force aclocal -I cmulocal || die - automake --add-missing || die + automake || die autoconf || die } # Thnx!
Hmm, strange. automake --add-missing should just place missing stuff there if they do not exist (config.guess, etc). What version of automake do you have installed (with revision). Also, make sure you do not have $WANT_AUTOMAKE_1_5 exported, or maybe $WANT_AUTOCONF_2_5.
I've got automake 2.53 installed and neither variable is exported.
nosferatu root # epm -q automake autoconf automake-1.5d-r2 autoconf-2.52d-r1 nosferatu root #
nice command, here's what I get # epm -q automake autoconf automake-1.5d-r1 automake-1.5d-r2 autoconf-2.53 autoconf-2.52d autoconf-2.52d-r1 #
Ok, so I corrected these by unmerging automake and autoconf. Now the output is: # epm -q automake autoconf automake-1.5d-r2 autoconf-2.52d-r1 # However when I try to check if that fixes it by compiling the cyrus-sasl ebuild it still bombs out on the following: # ebuild dev-libs/cyrus-sasl/cyrus-sasl-1.5.27-r1.ebuild compile [other stuff snipped] gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I/usr/local/include -Wall -W -mcpu=k6 -march=k6 -O3 -pipe -Wp,-MD,.deps/common.pp -c common.c -fPIC -DPIC -o .libs/common.lo common.c: In function `_sasl_getconfpath': common.c:659: `SASL_CONF_PATH_ENV_VAR' undeclared (first use in this function) common.c:659: (Each undeclared identifier is reported only once common.c:659: for each function it appears in.) common.c:661: `CONFIGDIR' undeclared (first use in this function) make[2]: *** [common.lo] Error 1 make[2]: Leaving directory `/var/tmp/portage/cyrus-sasl-1.5.27-r1/work/cyrus-sasl-1.5.27/lib' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/cyrus-sasl-1.5.27-r1/work/cyrus-sasl-1.5.27' make: *** [all-recursive-am] Error 2 !!! ERROR: The ebuild did not complete successfully. !!! Function src_compile, Line 29, Exitcode 2 !!! compile problem # Which is still fixable by not telling automake to add missing files. Since the project is already set up and we are only trying to make it accept the patches it seems to make most sense not to tell --add-missing because the project is done already. Why add files if they are not provided in the original, why would the project need a file that wasn't provided by the maintainer or patch? Btw, the previous rev. of the ebuild calls automake without --add-missing.
Put it this way .. its more curiosity as to why it works fine this side, but not by you :) Anyhow, ill make the needed changes in a bit, 1am now, and just came back from a night out :)
Neither compiles it here as long as U try to do it @ the console using root account. Once I switched to xterm loging in with su - everything went on ... Greets - Andrew
I'm curious about why it works for you too, if you got more ideas on how to compare setups let me know I'll be happy to help figure it out. In the meanwhile I'd just like to move on so our curiosity doesn't cost some poor ignorant soul a lot of time. For some reason it's configure that munches the config.h after the automake fixes the missing files on my system, some of the vars end up being in acconfig.h Maybe it works for you because it decides it's doesn't need to update your config.h? I don't know it's probably something along that trend, what do you get after compiling the ebuild when you grep for CONFIGDIR in the project root's files? For me I find it missing from the config.h and it doesn't seem acconfig.h is included in the project's files. So in going over the makefile it kind of illustrates it should take the patch input after all without all of those portability tools. It seems to have quite a few instructions for it so I'll try to find out how to get the project to roll-up the patches. In the meanwhile I'd still appreciate it if you can share your findings once you find out why it works for you.
I was having this same problem, when I was running emerge while logged in as root via "su -" (su making the shell a login shell). When I logged in as "su" (not a login shell), the ebuild completed smoothly. Just FYI.
I've now noticed that if I log in as "su" and emerge cyrus-sasl, it succeeds. If I try to emerge it again immediately, it will fail the second time. If I then unmerge it, and merge again, it will succeed again. Weird.
I've noticed this too, I'm looking into it I suspect portage to be behind it now.
This should really be fixed in cyrus-sasl-1.5.27-r4. Reopen if there is still issues.