Date: Sun, 16 Aug 2009 11:32:36 +0200 From: Miroslav Lachman <000.fbsd@quip.cz> To: freebsd-ports@freebsd.org Cc: lev@freebsd.org Subject: Subversion 1.6.4 with new dependency on db42 instead of db41 Message-ID: <4A87D234.6040707@quip.cz>
next in thread | raw e-mail | index | archive | help
Hi, I have upgraded Subversion from 1.6.2 (vulnerable version) to 1.6.4. This new version has dependency on db42, instead of db41, so the new db42 was installed. Now I have both db4 versions installed in the system. root@retezat ~/# pkg_info -E 'db4*' db41-4.1.25_4 db42-4.2.52_5 Subversion was built with following options: _OPTIONS_READ=subversion-1.6.1 WITH_MOD_DAV_SVN=true WITH_APACHE2_APR=true WITHOUT_MOD_DONTDOTHAT=true WITH_NEON=true WITHOUT_SERF=true WITHOUT_SASL=true WITH_BDB=true WITHOUT_ASVN=true WITHOUT_MAINTAINER_DEBUG=true WITHOUT_SVNSERVE_WRAPPER=true WITHOUT_STATIC=true WITHOUT_BOOK=true I tried to track down the reason of this new dependency, but with no luck. It seems needless to have db42 in my case. (see further) My first thought was - it is dependency of apr: root@retezat subversion/# make pretty-print-run-depends-list This port requires package(s) "apr-ipv6-gdbm-db42-1.3.8.1.3.9 db42-4.2.52_5 expat-2.0.1 gdbm-1.8.3_3 gettext-0.17_1 libiconv-1.13.1 neon28-0.28.4 pkg-config-0.23_1 sqlite3-3.6.14.2" to run. root@retezat subversion/# cd /usr/ports/devel/apr root@retezat apr/# make pretty-print-run-depends-list This port requires package(s) "db42-4.2.52_5 expat-2.0.1 gdbm-1.8.3_3 libiconv-1.13.1" to run. But I have no apr installed (bundled from Apache is used) Recorded dependencies shown db42 as direct dependency of Subversion: root@retezat ~/# pkg_info -rR subversion-1.6.4 Information for subversion-1.6.4: Depends on: Dependency: expat-2.0.1 Dependency: perl-5.8.9_3 Dependency: pkg-config-0.23_1 Dependency: pcre-7.9 Dependency: sqlite3-3.6.14.2 Dependency: db42-4.2.52_5 Dependency: db41-4.1.25_4 Dependency: libiconv-1.13.1 Dependency: gettext-0.17_1 Dependency: neon28-0.28.4 Dependency: apache-2.2.11_7 root@retezat ~/# pkg_tree -v subversion-1.6.4 subversion-1.6.4 |\__ expat-2.0.1 |\__ perl-5.8.9_3 |\__ pkg-config-0.23_1 |\__ pcre-7.9 |\__ sqlite3-3.6.14.2 | \__ pkg-config-0.23_1 |\__ db42-4.2.52_5 |\__ db41-4.1.25_4 |\__ libiconv-1.13.1 |\__ gettext-0.17_1 | \__ libiconv-1.13.1 |\__ neon28-0.28.4 | |\__ expat-2.0.1 | |\__ libiconv-1.13.1 | \__ gettext-0.17_1 | \__ libiconv-1.13.1 \__ apache-2.2.11_7 |\__ expat-2.0.1 |\__ perl-5.8.9_3 |\__ pcre-7.9 |\__ db41-4.1.25_4 \__ libiconv-1.13.1 It seems as result of this piece of code in Makefile.common (USE_BDB=42+) # Default us "on" .if !defined(WITHOUT_BDB) USE_BDB= 42+ PLIST_SUB+= BDB="" .else CONFIGURE_ARGS+= --without-berkeley-db PLIST_SUB+= BDB="@comment " .endif In my case, all binaries and libraries of subversion are linked to good old db41: root@retezat ~/# ldd /usr/local/lib/libsvn_*.so | grep db4 libdb41.so.1 => /usr/local/lib/libdb41.so.1 (0x386f7000) libdb41.so.1 => /usr/local/lib/libdb41.so.1 (0x38376000) libdb41.so.1 => /usr/local/lib/libdb41.so.1 (0x38376000) libdb41.so.1 => /usr/local/lib/libdb41.so.1 (0x383d7000) libdb41.so.1 => /usr/local/lib/libdb41.so.1 (0x383ad000) libdb41.so.1 => /usr/local/lib/libdb41.so.1 (0x383a4000) libdb41.so.1 => /usr/local/lib/libdb41.so.1 (0x38376000) libdb41.so.1 => /usr/local/lib/libdb41.so.1 (0x3866b000) libdb41.so.1 => /usr/local/lib/libdb41.so.1 (0x38400000) libdb41.so.1 => /usr/local/lib/libdb41.so.1 (0x38392000) libdb41.so.1 => /usr/local/lib/libdb41.so.1 (0x38392000) libdb41.so.1 => /usr/local/lib/libdb41.so.1 (0x383fc000) libdb41.so.1 => /usr/local/lib/libdb41.so.1 (0x38300000) libdb41.so.1 => /usr/local/lib/libdb41.so.1 (0x383d7000) root@retezat ~/# ldd /usr/local/bin/svn* | grep db4 libdb41.so.1 => /usr/local/lib/libdb41.so.1 (0x382d3000) libdb41.so.1 => /usr/local/lib/libdb41.so.1 (0x381f4000) libdb41.so.1 => /usr/local/lib/libdb41.so.1 (0x381ef000) libdb41.so.1 => /usr/local/lib/libdb41.so.1 (0x381ff000) libdb41.so.1 => /usr/local/lib/libdb41.so.1 (0x38209000) libdb41.so.1 => /usr/local/lib/libdb41.so.1 (0x381aa000) libdb41.so.1 => /usr/local/lib/libdb41.so.1 (0x381bd000) That's why I think the dependency on db42 is useless. And the questions are: 1] Am I doing something wrong, or is something wrong in Subversion port? 2] If new Subversion will be linked to db42, will it cause some troubles with SVN repositories? (on this machine, SVN is used as client - just for updates / checkouts, but I have more machines, where Subversion is used as server and I am nervous to do this problematic upgrade in fear of repository damage. Miroslav Lachman
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4A87D234.6040707>