'emerge jigdo' fails with the following erre (full output will be attached): g++ -o jigdo-file cachefile.o compat.o configfile.o glibc-md5.o jigdo-file-cmd.o jigdo-file.o jigdoconfig. o md5sum.o mkimage.o mkjigdo.o mktemplate.o partialmatch.o recursedir.o rsyncsum.o scan.o util/glibc-getop t.o util/glibc-getopt1.o util/string.o zstream.o util/debug.o -ldb-3 -lz cachefile.o(.text+0x4d): In function `CacheFile::CacheFile[not-in-charge](char const*)': : undefined reference to `db_create_4000' cachefile.o(.text+0x128): In function `CacheFile::CacheFile[not-in-charge](char const*)': : undefined reference to `db_strerror_4000' cachefile.o(.text+0x181): In function `CacheFile::CacheFile[not-in-charge](char const*)': : undefined reference to `db_strerror_4000' cachefile.o(.text+0x1da): In function `CacheFile::CacheFile[not-in-charge](char const*)': : undefined reference to `db_strerror_4000' cachefile.o(.text+0x2cd): In function `CacheFile::CacheFile[in-charge](char const*)': : undefined reference to `db_create_4000' cachefile.o(.text+0x3a8): In function `CacheFile::CacheFile[in-charge](char const*)': : undefined reference to `db_strerror_4000' cachefile.o(.text+0x401): In function `CacheFile::CacheFile[in-charge](char const*)': : undefined reference to `db_strerror_4000' cachefile.o(.text+0x45a): In function `CacheFile::CacheFile[in-charge](char const*)': : undefined reference to `db_strerror_4000' cachefile.o(.text+0x862): In function `CacheFile::expire(long)': : undefined reference to `db_strerror_4000' collect2: ld returned 1 exit status make[1]: *** [jigdo-file] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory `/var/tmp/portage/jigdo-0.7.0/work/jigdo-0.7.0/src' make: *** [all] Error 2 Reproducible: Always Steps to Reproduce: 1. export ACCEPT_KEYWORDS=~x86 2. emerge jigdo Portage 2.0.49-r15 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r1, 2.4.20-gentoo-r7) ================================================================= System uname: 2.4.20-gentoo-r7 i686 AMD Athlon(tm) Processor Gentoo Base System version 1.4.3.10p1 distcc 2.11.1 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] ccache version 2.3 [enabled] ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=athlon-tbird -O2 -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/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-march=athlon-tbird -O2 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="sandbox ccache autoaddcvs" GENTOO_MIRRORS="ftp://ftp.uni-erlangen.de/pub/mirrors/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++ mad mikmod mpeg ncurses nls pdflib png quicktime spell truetype xml2 xmms xv zlib alsa gdbm berkdb slang readline arts tetex svga tcltk java X sdl gpm tcpd pam libwww ssl perl python esd imlib oggvorbis gtk qt kde motif opengl mozilla gphoto2 ldap cdr scanner 3dnow aavm acl acpi acpi4linux apache2 curl dvd dvdr ethereal faad fbcon gd geoip hbci imap ipv6 maildir mmx samba sse tiff usagi usb vim-with-x wmf xinerama xml -gnome video_cards_radeon"
Created attachment 19812 [details] full output
While I tried to get it to work (unsuccessfully), I noticed that the makefile.patch is not needed because that value is already set via --datadir.
Seems to be related to the --withlibdb configure script option. Looking into this more.
Ok, here's the story. jigdo has a cache features which is enabled by default. The cache depends on db-3.x to build. jigdo is finding it here, but the db.h header it's using to compile with is from db-4.x, which causes the build failure. I'm adding robbat2 to the CC as he's one of our resident db package experts. Robbat2, any suggestions?
1. try to sed the build code to do '-ldb' instead of '-ldb-3', this should work. 2. if not, you need to locate their headers, and change: "#include <db.h>" to "#include <db3/db.h>"
Added a patch to change src/cachefile.hh's db.h header to the right location, and added the berkdb useflag. Let me know if it works for you. Thanks :)
Jupp, works.