Summary: | kdevelop-3.3.2 fails to compile | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Chuck Wegrzyn <chuck.wegrzyn> |
Component: | [OLD] Development | Assignee: | Gentoo KDE team <kde> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | darkgod, dev-zero, fedux, gentoo-bugs, gentoo.org, herbs, k.epost, rob, valentin.longchamp |
Priority: | High | ||
Version: | 2006.0 | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
Explicitly set db include directory
Fix depend to sys-libs/db-4.1* Failed config.log |
Description
Chuck Wegrzyn
2006-04-05 05:08:30 UTC
Created attachment 84132 [details, diff]
Explicitly set db include directory
This error seems to occur if both db-4.1* and db-4.2* are installed. In which case the 4.2 version headers are detected and used whilst 4.1 is assumed elsewhere in the code. This can be avoided by specifying the db include directory as a configure option. Note that kdevelop already explicity depends on db-4.1*.
Even without the patch you provided, just downgrading to 4.1.25_p2 did it. It sounds like this is a dependency issue in the ebuild. I wonder if I should close this out or leave it open until the fix makes it into the portage? The requirements list explicitly says that the db version must be Berkley DB >= 3.0 and <= 4.1. So it must be a dependency issue. The dep. list: http://kdevelop.org/index.html?filename=3.3/requirements.html in cvs :) The new patch does not work for me. I have db4.2 installed before installing db4.1 which was needed by kdevelop, and get almost exactly the same error messages with the patched ebuild as in the original report (only difference is db_create_4001 instead of db_create_4002, etc.) catalog.cpp:(.text+0x103): undefined reference to `db_create_4001' catalog.cpp:(.text+0x10f): undefined reference to `db_strerror_4001' etc. The cause is '-ldb', which links to libdb. But libdb is linked to libdb-4.2 . There is however an configure option included to change the linked db library: --with-db-lib. Setting this to "db-4.1" solved the error for me. Updated line in ebuild with --with-db-lib: # Explicitly set db include directory (bug 128897) myconf="${myconf} --with-db-includedir=${ROOT}/usr/include/db4.1 --with-db-lib=db-4.1" *** Bug 130725 has been marked as a duplicate of this bug. *** *** Bug 130765 has been marked as a duplicate of this bug. *** Reopen wrt the duplicate bugs. Marc Hulsman's suggestion works for me. Thanks! Um, of course... *** Bug 130904 has been marked as a duplicate of this bug. *** *** Bug 133796 has been marked as a duplicate of this bug. *** The problem persists if you have sys-libs/db-4.2* but you don't have sys-libs/db-4.1* installed. The problem resides in how dependencies are specified. In the ebuild the DEPEND var is =sys-libs/db-4*, which is complied by sys-libs/db-4.2*, but kdevelop still fails to compile. [..] checking for svn libraries... checking for APR... found checking for APR util... found checking for Subversion svn-config... yes checking for Neon... found checking whether to build the vcs compat lib... no checking for Berkeley DB >= 3... configure: error: no - please install Berkeley DB >= 3 and <= 4.1 Created attachment 87070 [details, diff]
Fix depend to sys-libs/db-4.1*
I would like to see the config.log because it's currently linking correctly to 4.2, that's why I changed that dependency. Created attachment 87071 [details]
Failed config.log
Thank you for the quick response. I think I know why I didn't hit the problem, I built KDevelop before the change in versioning. Thanks to Paul, we now have a way to fix this in the good way. I'll make sure that it won't get silly dependencies and it will still build correctly :) I've committed a fix using db-use eclass, that makes it link correctly to the _latest_ db installed so that it will correspond to the db dependency. Note: the error message is misleading and probably broken, KDevelop _does_ support db 4.2 and 4.3, it was _before_ it used not to accept >= 4.1 versions. I forgot to close this bug. |