First Last Prev Next    No search results available      Search page      Enter new bug
Bug#: 83940
Alias:
Product:
Component:
Status: NEW
Resolution:
Assigned To: Paul de Vrieze <pauldv@gentoo.org>
Hardware:
OS:
Version:
Priority:
Severity:
Reporter: Andrew Novikov <as.asaw@gmail.com>
Add CC:
CC:
Remove selected CCs
URL:
Summary:
Status Whiteboard:
Keywords:

Filename Description Type Creator Created Size Actions
db.eclass eclass that creates required symlinks text/plain Andrew Novikov 2005-03-03 05:20 0000 2.91 KB Details
Create a New Attachment (proposed patch, testcase, etc.) View All

Bug 83940 depends on: Show dependency tree
Bug 83940 blocks:
Votes: 0    Show votes for this bug    Vote for this bug

Additional Comments: (this is where you put emerge --info)


Not eligible to see or edit group visibility for this bug.








View Bug Activity   |   Format For Printing   |   XML   |   Clone This Bug


Description:   Opened: 2005-03-03 05:18 0000
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 From Andrew Novikov 2005-03-03 05:20:55 0000 -------
Created an attachment (id=52540) [details]
eclass that creates required symlinks

------- Comment #2 From Paul de Vrieze 2005-03-04 07:26:03 0000 -------
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 From Andrew Novikov 2005-03-04 08:47:52 0000 -------
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 From Paul de Vrieze 2005-03-04 10:11:00 0000 -------
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 From Jakub Moc (RETIRED) 2006-02-16 13:27:41 0000 -------
*** Bug 123061 has been marked as a duplicate of this bug. ***

------- Comment #6 From Jakub Moc (RETIRED) 2006-05-17 08:26:23 0000 -------
*** Bug 133587 has been marked as a duplicate of this bug. ***

------- Comment #7 From Faustus 2007-11-06 17:06:51 0000 -------
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 From Paul de Vrieze 2007-11-10 10:44:47 0000 -------
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.

First Last Prev Next    No search results available      Search page      Enter new bug