app-crypt/xca-0.5.1 fails to compile because the gentoo-provided patch "configure-db-4.1.patch" for the xca-0.5.1 ebuild hardcodes "/db4.1" into the subdirs variable. Of course, this subdir is no longer found within /usr/include after upgrading to db-4.2*, which has recently gone stable. I would propose either Change the patch filename to "configure-db-4.patch" Change the added directory to "/db4.?" -or- Change the patch filename to "configure-db.patch" Change the added directory to "/db???" (as suggested in bug #83940) Of course, it would also work for now to add "/db4.2" to the subdir list, but the above suggestions would be more forward-thinking.
(In reply to comment #0) > app-crypt/xca-0.5.1 fails to compile because the gentoo-provided patch "configure-db-4.1.patch" for the xca-0.5.1 ebuild hardcodes "/db4.1" into the subdirs variable. Of course, this subdir is no longer found within /usr/include after upgrading to db-4.2*, which has recently gone stable. I would propose either could not reproduce the bug x11-libs/qt-3.3.4-r3 sys-libs/db-4.2.52_p2 app-crypt/xca-0.5.1
I've just retested: # emerge -avB xca These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild R ] app-crypt/xca-0.5.1 +arts -debug -kdeenablefinal -xinerama 0 kB Total size of downloads: 0 kB Do you want me to merge these packages? [Yes/No] >>> emerge (1 of 1) app-crypt/xca-0.5.1 to / >>> md5 files ;-) xca-0.5.1.ebuild >>> md5 files ;-) files/xca-0.5.1-qt.diff >>> md5 files ;-) files/digest-xca-0.5.1 >>> md5 files ;-) files/configure-db-4.1.patch >>> md5 files ;-) files/Rules.mak-prefix.patch >>> md5 src_uri ;-) xca-0.5.1.tar.gz >>> Unpacking source... >>> Unpacking xca-0.5.1.tar.gz to /var/tmp/portage/xca-0.5.1/work * Applying xca-0.5.1-qt.diff ... [ ok ] * Applying configure-db-4.1.patch ... [ ok ] * Applying Rules.mak-prefix.patch ... [ ok ] >>> Source unpacked. ERROR: The Berkeley DB header files were not found Found: libdb_cxx.so at /usr/lib Found: qobject.h at /usr/qt/3/include Found: libqt.so at /usr/qt/3/lib Found: openssl/opensslv.h at /usr/include Found: libcrypto.so at /usr/lib ERROR: Unable to compile a minimal application look at 'conftest.log' for errors LDFLAGS :-lstdc++ -ldb_cxx -lqt -lcrypto -L/usr/qt/3/lib PREFIX :/usr <SNIP> make[1]: Leaving directory `/var/tmp/portage/xca-0.5.1/work/xca-0.5.1/lib' make[1]: Entering directory `/var/tmp/portage/xca-0.5.1/work/xca-0.5.1/lib' i686-pc-linux-gnu-gcc -I. -I.. -I/usr/qt/3/include -O2 -march=pentium4 -fomit-frame-pointer -fforce-addr -pipe -DPREFIX=\"/usr\" -DETC=\"/etc/xca\" -c db_crl.cpp -o db_crl.o i686-pc-linux-gnu-gcc -I. -I.. -I/usr/qt/3/include -O2 -march=pentium4 -fomit-frame-pointer -fforce-addr -pipe -DPREFIX=\"/usr\" -DETC=\"/etc/xca\" -c moc_ExportKey.cpp -o moc_ExportKey.o In file included from db_key.h:52, from db_x509.h:57, from db_crl.h:52, from db_crl.cpp:53: db_base.h:54:20: db_cxx.h: No such file or directory In file included from db_key.h:52, from db_x509.h:57, from db_crl.h:52, from db_crl.cpp:53: db_base.h:69: error: syntax error before `*' token db_base.h:70: error: syntax error before `*' token db_base.h:73: error: type specifier omitted for parameter `DbTxn' db_base.h:73: error: parse error before `*' token db_base.h:74: error: type specifier omitted for parameter `DbTxn' db_base.h:74: error: parse error before `*' token db_base.h:75: error: type specifier omitted for parameter `DbTxn' db_base.h:75: error: parse error before `*' token <SNIP many more such errors> In file included from MainWindow.h:57, from moc_MainWindow.cpp:11: ../lib/db_key.h:64: error: parse error before `*' token ../lib/db_key.h:71: error: `DbTxn' was not declared in this scope ../lib/db_key.h:71: error: `tid' was not declared in this scope ../lib/db_key.h:71: error: invalid data member initialization ../lib/db_key.h:71: error: variable or field `writeAll' declared void In file included from ../lib/db_x509req.h:53, from MainWindow.h:58, from moc_MainWindow.cpp:11: ../lib/db_x509super.h:65: error: parse error before `*' token In file included from MainWindow.h:58, from moc_MainWindow.cpp:11: ../lib/db_x509req.h:63: error: parse error before `*' token In file included from MainWindow.h:59, from moc_MainWindow.cpp:11: ../lib/db_x509.h:69: error: parse error before `*' token In file included from MainWindow.h:60, from moc_MainWindow.cpp:11: ../lib/db_temp.h:65: error: parse error before `*' token In file included from MainWindow.h:61, from moc_MainWindow.cpp:11: ../lib/db_crl.h:66: error: parse error before `*' token In file included from moc_MainWindow.cpp:11: MainWindow.h:81: error: syntax error before `*' token MainWindow.h:88: error: ISO C++ forbids declaration of `DbEnv' with no type MainWindow.h:88: error: parse error before `*' token make[1]: *** [moc_MainWindow.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory `/var/tmp/portage/xca-0.5.1/work/xca-0.5.1/widgets' make: *** [widgets/target.obj] Error 2 !!! ERROR: app-crypt/xca-0.5.1 failed. !!! Function src_compile, Line 32, Exitcode 2 !!! emake failed !!! If you need support, post the topmost build error, NOT this status message. # emerge info Portage 2.0.51.22-r2 (default-linux/x86/2005.1, gcc-3.3.5-20050130, glibc-2.3.5-r0, 2.6.12-gentoo-r6 i686) ================================================================= System uname: 2.6.12-gentoo-r6 i686 Intel(R) Pentium(R) 4 CPU 2.53GHz Gentoo Base System version 1.6.13 dev-lang/python: 2.3.5 sys-apps/sandbox: 1.2.11 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.5 sys-devel/binutils: 2.15.92.0.2-r10 sys-devel/libtool: 1.5.18-r1 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=pentium4 -fomit-frame-pointer -fforce-addr -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -march=pentium4 -fomit-frame-pointer -fforce-addr -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig buildpkg collision-protect confcache digest distlocks fixpackages sandbox sfperms strict userpriv userpriv_fakeroot usersandbox verify-rdepend" GENTOO_MIRRORS="http://mirror.datapipe.net/gentoo http://mirrors.tds.net/gentoo ftp://linux.thai.net/pub/mirrors/gentoo" LANG="en_US.utf8" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/overlays/nerone" SYNC="rsync://rsync.nerone.org/gentoo-portage" USE="x86 X aac aalib acl acpi alsa apache2 arts audiofile avi bash-completion bitmap-fonts caps cddb cdparanoia cdr crypt cups directfb dts dv dvd dvdr dvdread emboss encode fam fbcon ffmpeg flac flash fortran gd gif glut gpm gstreamer gtk gtk2 hal imagemagick imap imlib ipv6 ithreads jack java jpeg kde libcaca libwww live logitec-mouse lzo mad matroska mcal memlimit mikmod mmap mmx motif mozilla mp3 mpeg ncurses network nls nntp nptl nptlonly offensive ogg oggvorbis opengl pam pcre pdflib perl physfs png python qt quicktime readline real rtc samba sasl sdl speex spell sse sse2 ssl svg theora threads tiff truetype truetype-fonts type1-fonts unicode vcd vorbis win32codecs xine xml xml2 xmms xosd xv xvid zeroconf zlib userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LC_ALL, LDFLAGS, LINGUAS My own related package versions and USE flags: sys-libs/db-4.2.52_p2 -bootstrap -doc +java -nocxx -tcltk 0 kB x11-libs/qt-3.3.4-r3 +cups -debug -doc -examples -firebird +gif -immqt -immqt-bc +ipv6 -mysql -nas -odbc +opengl -postgres -sqlite -xinerama +zlib 0 kB app-crypt/xca-0.5.1 +arts -debug -kdeenablefinal -xinerama 0 kB [1] (<- my own overlay, incidentally) Now, consider the subdirs line in the patch file to which I referred: subdirs="/db4.1 /db /db4 /db3" I don't see how you can possibly have a successful build unless one of those directories exists within /usr/include. They don't on my system - only /usr/include/db4.2 does - and I even just remerged db for kicks. If /usr/include/db4.1 exists on your system, what package owns it? Further support for my position is the fact that this is a known issue, as discussed in bug #83940 - they removed the /usr/include/db4.1 symlink so packages that depend on that hardcoded path will not work. Finally, my own overlay ebuild, which does nothing but implement the second option in my original comment, works perfectly.
Created attachment 65804 [details] db-4.? configure patch I've tested the issue on a brand new system and the good news are, you're right, my system actually have the db4.1 dir and db3 too, if you look at the db ebuild you will notice that the lib is instaled on diferent slots for each version, mu guess is since my primary system is running for a while now i've got all then sitting around and build xca over db-4.1 instead db-4.2, so i'm uploading the patch as you sugested and a modified ebuild too and let's bother some devs till then commit it ;]
Created attachment 65805 [details] xca new ebuild with db-4.? patch
not totally happy with it yet - I think it will always go for the lower version of db.