Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 114481 - dev-util/subversion-1.3.0_rc4 dependency check
Summary: dev-util/subversion-1.3.0_rc4 dependency check
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Paul de Vrieze (RETIRED)
URL: http://dev.gentoo.org/~betelgeuse/scr...
Whiteboard:
Keywords:
: 53650 118569 130281 132660 153322 154312 186827 190293 191409 191722 191812 191824 192419 196355 (view as bug list)
Depends on: 116980
Blocks:
  Show dependency tree
 
Reported: 2005-12-04 15:28 UTC by Petteri Räty (RETIRED)
Modified: 2008-05-01 13:19 UTC (History)
14 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Petteri Räty (RETIRED) gentoo-dev 2005-12-04 15:28:18 UTC
http://dev.gentoo.org/~betelgeuse/scripts/checkdeps
Use that to checkdeps:
pena commons-graph # emerge -pv subversion

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild   R   ] dev-util/subversion-1.3.0_rc4  -apache2 +bash-completion -berkdb
-emacs -java -nls -nowebdav -perl -python -ruby +zlib 0 kB

betelgeuse@pena ~/bin $ checkdeps subversion
dev-libs/apr
dev-libs/apr-util
dev-libs/expat
dev-libs/openssl
dev-util/subversion
net-misc/neon
sys-libs/db
sys-libs/gdbm
sys-libs/glibc
sys-libs/zlib

From the list I can see for example the following issues:
1. expat is not listed as a dependency
2. subversion is linked against db althought the berkdb use flag is off
3. openssl dep is missing

You can use the tool to do further investigation yourself.
Comment 1 Paul de Vrieze (RETIRED) gentoo-dev 2005-12-05 01:16:10 UTC
Well, expat is a dependency of neon, not subversion. berkdb is pulled in
optionally by apr/apr-util, and ssl is also an optional neon dependency.
Comment 2 Paul de Vrieze (RETIRED) gentoo-dev 2005-12-05 01:18:31 UTC
Btw. you forgot about gdbm (from apr/apu). Also the berkdb useflag will disable
building the berkeley db based backend. It will not stop the subversion stuff
being indirectly linked against it.
Comment 3 Petteri Räty (RETIRED) gentoo-dev 2005-12-05 05:35:46 UTC
(In reply to comment #2)
> Btw. you forgot about gdbm (from apr/apu). Also the berkdb useflag will disable
> building the berkeley db based backend. It will not stop the subversion stuff
> being indirectly linked against it.

The script checks for direct linking. Well let's just wait for verify-rdepend
that will come in 2.0.54 then. It should be doing about the same thing as my
script but we shall see.

        berkdb? ( =sys-libs/db-4* )

My point is that with this kind of dependency you imply that subversion will not
link against db with the berkdb use flag off.
Comment 4 Paul de Vrieze (RETIRED) gentoo-dev 2005-12-05 05:42:09 UTC
Welcome to libtool mayhem. Subversion will really only use those libraries based
on the dependencies. ssl is used when neon uses ssl, and not when neon does not
use ssl. The same for the database libs.
Comment 5 Matthew Smith 2005-12-26 12:13:32 UTC
subversion will still try to link to berkdb, and fail to compile, if berkdb is not installed and the berkdb USE flag disabled.


/usr/lib/gcc/i686-pc-linux-gnu/3.4.4/../../../../i686-pc-linux-gnu/bin/ld: cannot find -ldb-4.2
Comment 6 Paul de Vrieze (RETIRED) gentoo-dev 2005-12-26 12:57:40 UTC
What is the output of "apu-config --libs" If -ldb is in there you first need to rebuild apr-util.
Comment 7 Matthew Smith 2005-12-27 03:08:48 UTC
(In reply to comment #6)
> What is the output of "apu-config --libs" If -ldb is in there you first need to
> rebuild apr-util.

-ldb is not there.

Comment 8 Matthew Smith 2005-12-27 15:17:31 UTC
Problem seems to be an issue with subversion-db4.patch, which didn't occur with subversion 1.2.3 (I only tried with 1.2.3 and 1.2.3-r2, not with -r1 or 1.3.0_rc4).

Modifying the ebuild to only apply the patch if the berkdb use flag is set seems to fix the problem.
Comment 9 Paul de Vrieze (RETIRED) gentoo-dev 2005-12-28 06:51:48 UTC
Mathew, that check only changes the db library names the configure script looks for. The point is that it shouldn't look at all. In any case it seems to me that apr-util is broken. It does not respect the -berkdb flag, and just links against db when found. 

Apr-util is built against db if "ldd -r /usr/lib/apr-util-0.so|grep db_create" returns results. Subversion will link against db when it is needed for apr-util, so more than likely always. I'll look what hapens with a fixed apr-util.
Comment 10 Petteri Räty (RETIRED) gentoo-dev 2005-12-28 06:56:02 UTC
Now my script uses scanelf so I get direct deps out of it:
betelgeuse@pena ~/overlays/betelgeuse/net-wireless/ndiswrapper $ checkdeps.rb subversion
dev-libs/apr
dev-libs/apr-util
dev-libs/expat
dev-libs/openssl
dev-util/subversion
net-misc/neon
sys-libs/db || app-office/openoffice-bin
sys-libs/gdbm
sys-libs/glibc
sys-libs/zlib
Comment 11 Petteri Räty (RETIRED) gentoo-dev 2005-12-28 06:56:46 UTC
http://dev.gentoo.org/~betelgeuse/scripts/checkdeps.rb
Comment 12 Paul de Vrieze (RETIRED) gentoo-dev 2005-12-28 07:11:33 UTC
I've just checked with a fixed apr-util (note that apr-util will not properly link against the db library (or any other libs for that matter), but does need symbols from it. As such checking whether it needs the db_create_4002 symbol checks whether it requires db. I just created a fixed apr-util for myself that doesn't link against berkeley. In that case subversion doesn't link against it either.

Petteri: Your script does what it's supposed to do. It checks the libraries that a package builds against. It does not however know which ones come from dependencies. My subversion for example is also linked against openldap by way of apr-util. The apr-util library however does not export its dependencies. It only specifies them in the apr-util script.

ps. The ldd -r check should be "ldd -r /usr/lib/libaprutil-0.so 2>&1 |grep db_create". I forgot the redirect
Comment 13 Petteri Räty (RETIRED) gentoo-dev 2005-12-28 07:14:59 UTC
(In reply to comment #12)
> 
> Petteri: Your script does what it's supposed to do. It checks the libraries
> that a package builds against. It does not however know which ones come from
> dependencies. My subversion for example is also linked against openldap by way
> of apr-util. The apr-util library however does not export its dependencies. It
> only specifies them in the apr-util script.
> 

The problem that the new version fixes is that using ldd lists also dependencies of dependencies.
Comment 14 Paul de Vrieze (RETIRED) gentoo-dev 2005-12-28 07:28:54 UTC
Which leaves the problem that libaprutil-0.so does not properly link against the libraries it uses. Leaving it to users of the library to do so. And apr-util is not the only library to do so. I think this is broken behaviour, but hardly subversions fault. But as such one still cannot say that the new script shows understanding of the packages. Trust me, the subversion sourcecode in no place uses openldap. Still it links against it just because apu-config --libs tells it to.
Comment 15 Paul de Vrieze (RETIRED) gentoo-dev 2006-01-05 13:10:43 UTC
Could you check the berkdb dependency again, with a rebuild apr-util without berkdb deps.
Comment 16 Petteri Räty (RETIRED) gentoo-dev 2006-01-05 16:15:54 UTC
(In reply to comment #15)
> Could you check the berkdb dependency again, with a rebuild apr-util without
> berkdb deps.
> 

Maybe you can use the as-needed feature of ld to fix this stuff on the subversion side?
Comment 17 Paul de Vrieze (RETIRED) gentoo-dev 2006-01-07 07:05:24 UTC
I can't apr-util is "broken", subversion isn't. In any case subversion does not need to directly depend as it's dependencies already do.
Comment 18 Jakub Moc (RETIRED) gentoo-dev 2006-01-10 12:23:11 UTC
*** Bug 118569 has been marked as a duplicate of this bug. ***
Comment 19 Jakub Moc (RETIRED) gentoo-dev 2006-04-17 11:56:18 UTC
*** Bug 130281 has been marked as a duplicate of this bug. ***
Comment 20 Jakub Moc (RETIRED) gentoo-dev 2006-05-08 03:45:00 UTC
*** Bug 132660 has been marked as a duplicate of this bug. ***
Comment 21 Jakub Moc (RETIRED) gentoo-dev 2006-06-05 06:54:10 UTC
*** Bug 53650 has been marked as a duplicate of this bug. ***
Comment 22 Jakub Moc (RETIRED) gentoo-dev 2006-10-29 11:04:18 UTC
*** Bug 153322 has been marked as a duplicate of this bug. ***
Comment 23 Jakub Moc (RETIRED) gentoo-dev 2006-11-07 01:14:51 UTC
*** Bug 154312 has been marked as a duplicate of this bug. ***
Comment 24 Jakub Moc (RETIRED) gentoo-dev 2007-07-27 18:52:48 UTC
*** Bug 186827 has been marked as a duplicate of this bug. ***
Comment 25 Jakub Moc (RETIRED) gentoo-dev 2007-08-26 12:45:56 UTC
*** Bug 190293 has been marked as a duplicate of this bug. ***
Comment 26 Jakub Moc (RETIRED) gentoo-dev 2007-09-05 17:58:01 UTC
*** Bug 191409 has been marked as a duplicate of this bug. ***
Comment 27 Jakub Moc (RETIRED) gentoo-dev 2007-09-08 16:43:39 UTC
*** Bug 191722 has been marked as a duplicate of this bug. ***
Comment 28 Jakub Moc (RETIRED) gentoo-dev 2007-09-09 11:28:35 UTC
*** Bug 191812 has been marked as a duplicate of this bug. ***
Comment 29 Jakub Moc (RETIRED) gentoo-dev 2007-09-09 14:58:34 UTC
*** Bug 191824 has been marked as a duplicate of this bug. ***
Comment 30 Jakub Moc (RETIRED) gentoo-dev 2007-09-13 14:24:46 UTC
*** Bug 192419 has been marked as a duplicate of this bug. ***
Comment 31 Jakub Moc (RETIRED) gentoo-dev 2007-10-19 07:27:01 UTC
*** Bug 196355 has been marked as a duplicate of this bug. ***
Comment 32 Arfrever Frehtes Taifersar Arahesis (RETIRED) gentoo-dev 2008-05-01 13:19:50 UTC
Subversion >=1.5_pre ebuilds use my patch which fixes this bug.