Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 83940 - db.eclass: Missing symlinks to db_cxx.h et al
Summary: db.eclass: Missing symlinks to db_cxx.h et al
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Eclasses (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords:
: 123061 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-03-03 05:18 UTC by Andrew Novikov
Modified: 2022-07-27 07:44 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
eclass that creates required symlinks (db.eclass,2.91 KB, text/plain)
2005-03-03 05:20 UTC, Andrew Novikov
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Novikov 2005-03-03 05:18:39 UTC
When I emerge db with C++ support, portage creates symlinks in /usr/include for db.h and db_185.h but not for cxx_common.h, cxx_except.h and db_cxx.h which are required to build programs that use C++ interface.

Reproducible: Always
Steps to Reproduce:
Comment 1 Andrew Novikov 2005-03-03 05:20:55 UTC
Created attachment 52540 [details]
eclass that creates required symlinks
Comment 2 Paul de Vrieze (RETIRED) gentoo-dev 2005-03-04 07:26:03 UTC
These symlinks are basically there to help broken programs. It's probably better to use -I/usr/include/db???, also because the actual contents of that directory do vary and some of the headers have rather generic names.
Comment 3 Andrew Novikov 2005-03-04 08:47:52 UTC
The problem is that there is no agreement among distros on the location of header files for Berkeley DB. For example they rside in /usr/include/db4 on Fedora Core 2 and in /usr/include/db4.x on current gentoo (and FC provides symlinks in question BTW). What I'm currently trying to do is to make ebuild for Ice (http://www.zeroc.com) and its build system assumes that bdb's header files are either accessible on the system's path or live in <bdb_root>/include. And without those symlinks build fails.
Comment 4 Paul de Vrieze (RETIRED) gentoo-dev 2005-03-04 10:11:00 UTC
Had I mentioned that this is a feature I dislike in autoconf. It encourages people to write broken/inflexible configuration scripts. Maybe I need to write a db autoconf macroset sometime and post it upstream. In any case I'll look into solving this. It's a bit more complex though as not all versions provide c++ support (at all, as it is possible to disable it per useflag), and others have varying headers.
Comment 5 Jakub Moc (RETIRED) gentoo-dev 2006-02-16 13:27:41 UTC
*** Bug 123061 has been marked as a duplicate of this bug. ***
Comment 6 Jakub Moc (RETIRED) gentoo-dev 2006-05-17 08:26:23 UTC
*** Bug 133587 has been marked as a duplicate of this bug. ***
Comment 7 Faustus 2007-11-06 17:06:51 UTC
Is it possible to have the symbolic link to db_cxx.h in portage, regardless of the philosophical ramifications of where the files should reside? It is inconsistent now.
Comment 8 Paul de Vrieze (RETIRED) gentoo-dev 2007-11-10 10:44:47 UTC
The reason that there is only a link to the db.h db185.h files is very simple. These links were added to prevent things from breaking when slotting db. At least at the time this was done, there were no packages that depended on the c++ bindings for berkeley db.
Basically, there is little consistency in what the symlinks point to. They are designed to link to the latest version such that -ldb and and inclusion of <db.h> are from the same version. Packages should however use specific versions as supported by those packages. (e.g. by using the db-use eclass) That way the packages will continue to work in a changing environment.
Comment 9 Attila Oláh 2011-05-25 15:39:19 UTC
Sorry for awakening this thread, but what is the final conclusion then for creating ebuilds for sources that directly include the header files for the c++ bindings (for which there are no symlinks)? I'm trying to make an ebuild and my build fails to locate db_cxx.h:

headers.h:10:20: fatal error: db_cxx.h: No such file or directory
Comment 10 Pacho Ramos gentoo-dev 2012-12-16 13:00:44 UTC
This eclass clearly needs a new maintainer (if still needed)
Comment 11 Attila Oláh 2012-12-16 13:19:29 UTC
To be honest, I can't remember which ebuild was the one that needed the db bindings (and clearly I was silly enough not to mention it in this thread). I haven't seen this error lately though, so I assume I'm not using this eclass any more. I'm fine with closing this if nobody else objects.
Comment 12 Pacho Ramos gentoo-dev 2012-12-16 13:22:50 UTC
sys-libs/db is its only customer, I would assign this to base-system and change eclass to point them as eclass maintainers, are you ok?
Comment 13 Attila Oláh 2012-12-16 13:36:24 UTC
Me, absolutely.
Comment 14 Michael Palimaka (kensington) gentoo-dev 2012-12-26 18:30:07 UTC
Assigning to base-system since the commit log indicates that they have been taking care of this eclass, and there has been no objection.