As the summery said, I got this: ... checking zlib.h presence... yes checking for zlib.h... yes checking db.h usability... yes checking db.h presence... yes checking for db.h... yes checking for Berkeley libdb 4.2... configure: error: Berkeley libdb 4.2 required See `config.log' for more details. !!! Please attach the following file when filing a report to bugs.gentoo.org: !!! /var/tmp/portage/net-p2p/syrep-0.6/work/syrep-0.6/config.log * * ERROR: net-p2p/syrep-0.6 failed. * Call stack: * ebuild.sh, line 1654: Called dyn_compile * ebuild.sh, line 990: Called qa_call 'src_compile' ... config.log: ... configure:3702: checking for Berkeley libdb 4.2 configure:3723: i686-pc-linux-gnu-gcc -E conftest.c conftest.c:25:2: error: #error "foo" configure:3729: $? = 1 configure: failed program was: | /* confdefs.h. */ | | #define PACKAGE_NAME "syrep" | #define PACKAGE_TARNAME "syrep" | #define PACKAGE_VERSION "0.6" | #define PACKAGE_STRING "syrep 0.6" | #define PACKAGE_BUGREPORT "mzflerc (at) 0pointer (dot) de" | #define PACKAGE "syrep" | #define VERSION "0.6" | #define HAVE_LIBZ 1 | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | /* end confdefs.h. */ | | #include <db.h> | #if (DB_VERSION_MAJOR != 4) || (DB_VERSION_MINOR != 2) | #error "foo" | #endif | configure:3748: error: Berkeley libdb 4.2 required See `config.log' for more details. ... I don't think this is a syrep-only problem. I also got the same problem with python, apache and some others (but on another PC; a recompile of db-4.3.29-r2 solves the problem there). Sadly, on my current PC the problem was not solved by recompiling db-4.3.29-r2. I have currently these two versions of db installed: 4.3.29-r2 and 4.5.20_p2 (both only as dependencies of other packages) The problem is that for some reason all the failing packages get the wrong DB-version (the newer 4.5 one) and they fail then. In this case the configure-skript also checks always for the wrong version (4.2). I have tried to build the ebuild for syrep-0.9 (the current stable syrep). There the configure-script checks for 4.3 or 4.4 but it also doesn't work because it always gets the 4.5. I am not sure if the dependency to 4.2 is realy needed in this case (or in the case of syrep-0.9 the 4.3 or 4.4). In the ebuild there is only the dependency for >=db-4.2 marked. So there are multiple bugs here: - configure checks different dependencies than the ebuild - it gets always the db 4.5 but it should get the <=db-4.4 (or I am not sure, perhaps it also works with db-4.5? I will test this now ...)
Ok, I have added this to the src_compile: sed -e "s/#if (DB_VERSION_MAJOR != 4).*/#if (DB_VERSION_MAJOR != 4)/" configure.ac > configure.ac.new mv configure.ac.new configure.ac autoconf With this modification, the configure-script doesn't break but the build does with this error: ... if i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I.. -O2 -march=nocona -pipe -pipe -Wall -W -Wno-unused-parameter -MT util.o -MD -MP -MF ".deps/util.Tpo" \ -c -o util.o `test -f 'util.c' || echo './'`util.c; \ then mv -f ".deps/util.Tpo" ".deps/util.Po"; \ else rm -f ".deps/util.Tpo"; exit 1; \ fi cache.c: In function 'md_cache_get': cache.c:191: warning: pointer targets in passing argument 3 of 'fdmd5' differ in signedness util.c: In function 'statistics': util.c:53: warning: passing argument 2 of 'db->stat' from incompatible pointer type util.c:53: error: too few arguments to function 'db->stat' make[3]: *** [util.o] Error 1 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory `/var/tmp/portage/net-p2p/syrep-0.6/work/syrep-0.6/src' ... It seems that db-4.5 is realy incompatible to the older ones. So the question is now how to force the ebuild to use <=db-4.4.
I have now unmerged my db-4.5. syrep-0.6 still breaks (it seems that it realy needs 4.2) but syrep-0.9 compiles fine now.
syrep-0.9 also compiles fine with db-4.5. It has the same problems with the configure-script (it only checks for 4.3 and 4.4) but after I removed this problem it compiles fine. I will make a new bugreport with the ebuild for syrep-0.9.
*** Bug 196180 has been marked as a duplicate of this bug. ***
Created attachment 133679 [details] syrep-0.9.ebuild Here is the ebuild for syrep-0.9. It includes also the fix for the wrong check for db in the configure-script.
Don't call autoconf directly in ebuilds; we have eautoreconf from autotools eclass for such things. ;)
Created attachment 133691 [details] syrep-0.9.ebuild updated ebuild with usage of eautoreconf
In CVS, thanks for the ebuild