Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 128624 - Trying to run svn-graph.pl subversion branch grapher causes version error feedback.
Summary: Trying to run svn-graph.pl subversion branch grapher causes version error fee...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Paul de Vrieze (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-04-03 05:25 UTC by Simon Kirk
Modified: 2008-01-05 22:20 UTC (History)
0 users

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 Simon Kirk 2006-04-03 05:25:09 UTC
I was looking for an svn graphing tool, and found the perl script here: http://danpat.net/~danpat/svn-graph/

When I tried to run the perl file in that url, it threw an error thus:

myhost ~ # perl svn-graph.pl
Incompatible library version: Version mismatch in 'svn_subr': found 1.2.3, expected 1.3.0 at svn-graph.pl line 10

I have version 1.3 of subversion installed, via keywords to force it to the unstable branch. Here is the relevant line:

myhost ~ # grep subversion /etc/portage/package.keywords
dev-util/subversion ~x86

It would appear that although subversion is at version 1.3, the RA modules are not having their versions updated to 1.3 to match, it seems they are still marked as version 1.2.3. Is this by design, or is it a bug? Here is the output from svn --version:

myhost ~ # svn --version
svn, version 1.3.0 (r17949)
   compiled Apr  3 2006, 12:42:30

Copyright (C) 2000-2005 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_dav : Module for accessing a repository via WebDAV (DeltaV) protocol.
  - handles 'http' scheme
  - handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme

Here is my emerge --info:
pingu ~ # emerge --info
Portage 2.0.54 (default-linux/x86/2005.0, gcc-3.4.5, glibc-2.3.5-r3, 2.6.15-gentoo-r1 i686)
=================================================================
System uname: 2.6.15-gentoo-r1 i686 Intel(R) Pentium(R) 4 CPU 2.66GHz
Gentoo Base System version 1.6.14
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled]
ccache version 2.3 [enabled]
dev-lang/python:     2.3.5-r2, 2.4.2
sys-apps/sandbox:    1.2.12
sys-devel/autoconf:  2.13, 2.59-r7
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1
sys-devel/binutils:  2.16.1
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=pentium4 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/eselect/compiler /etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -march=pentium4 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig ccache distcc distlocks prelink sandbox sfperms strict"
GENTOO_MIRRORS="http://gentoo.blueyonder.co.uk http://www.mirrorservice.org/sites/www.ibiblio.org/gentoo/"
MAKEOPTS="-j7"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 apache2 apm arts audiofile avi berkdb bitmap-fonts bzip2 cgi cli crypt cups dba dri dvi eds emboss encode expat foomaticdb fortran gd gdbm gif gpm gstreamer gtk2 idn imagemagick imlib ipv6 isdnlog ithreads jabber java jpeg lcms libg++ libwww mad maildir mailwrapper mhash mikmod mng motif mp3 mpeg mysql ncurses nls ogg oggvorbis openal opengl oss pam pcre pdf perl php pic png postgres pppd python quicktime readline rss sdl session snmp spell ssl subversion tcpd tetex threads tiff truetype truetype-fonts type1-fonts udev usb vhosts vorbis xml xmms xv zlib userland_GNU kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS
Comment 1 Paul de Vrieze (RETIRED) gentoo-dev 2006-04-03 08:38:09 UTC
Could you use perl-cleaner to see whether there are stale libraries laying around?

What might be worthwile is to first unmerge subversion, and then remerge it.
Comment 2 Simon Kirk 2006-04-04 02:00:33 UTC
Hi. I did an emerge/unmerge, ran the perl cleaner (including cleaning PHs as well as libraries), but I've still got the same error message.
Comment 3 Paul de Vrieze (RETIRED) gentoo-dev 2006-04-04 03:15:24 UTC
Could you give the output of "find /usr/lib/perl5/ -path */SVN/*"?
Comment 4 Simon Kirk 2006-04-04 03:19:17 UTC
Sure, here you go:

~ # find /usr/lib/perl5/ -path */SVN/*
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/SVN/Base.pm
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/SVN/Fs.pm
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/SVN/Ra.pm
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/SVN/Wc.pm
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/SVN/Delta.pm
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/SVN/Client.pm
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/SVN/Core.pm
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/SVN/Repos.pm
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/auto/SVN/_Fs
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/auto/SVN/_Fs/_Fs.bs
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/auto/SVN/_Fs/_Fs.so
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/auto/SVN/_Ra
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/auto/SVN/_Ra/_Ra.bs
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/auto/SVN/_Ra/_Ra.so
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/auto/SVN/_Wc
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/auto/SVN/_Wc/_Wc.bs
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/auto/SVN/_Wc/_Wc.so
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/auto/SVN/_Core
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/auto/SVN/_Core/.packlist
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/auto/SVN/_Core/_Core.bs
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/auto/SVN/_Core/_Core.so
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/auto/SVN/_Delta
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/auto/SVN/_Delta/_Delta.bs
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/auto/SVN/_Delta/_Delta.so
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/auto/SVN/_Repos
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/auto/SVN/_Repos/_Repos.bs
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/auto/SVN/_Repos/_Repos.so
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/auto/SVN/_Client
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/auto/SVN/_Client/_Client.bs
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux-thread-multi/auto/SVN/_Client/_Client.so
Comment 5 Paul de Vrieze (RETIRED) gentoo-dev 2006-04-04 03:31:48 UTC
I'm baffled where the old version comes from. It shouldn't be there. Sure there are no subversion libraries lingering around somewhere.

As an aside, I tried the script on my machine, and it didn't work because of a changed API. You'd have to be with the script maintainer though.

Does subversion by itself work? You could try checking out subversion from its repository.
Comment 6 Simon Kirk 2006-04-04 06:38:03 UTC
It appears that the svn-graph perl script is now included as part of the standard svn distribution. It's here on my machine:

/usr/share/doc/subversion-1.3.0/client-side/svn-graph.pl

Unfortunately it's still breaking in exactly the same as the version from that web page :(

Subversion itself is working 100% - I'm using it every day as our company source control system.
Comment 7 Arfrever Frehtes Taifersar Arahesis (RETIRED) gentoo-dev 2007-08-14 05:07:49 UTC
Can you still reproduce this bug?
Comment 8 Simon Kirk 2007-08-14 08:50:18 UTC
(In reply to comment #7)
> Can you still reproduce this bug?
> 

No, these days it's a different error:

pingu ~ # /usr/share/doc/subversion-1.4.4-r2/client-side/svn-graph.pl file:///home//TestRepo/trunk
/usr/bin/perl: symbol lookup error: /usr/lib/libsvn_client-1.so.0: undefined symbol: svn_auth_get_username_provider
Comment 9 Benedikt Böhm (RETIRED) gentoo-dev 2007-12-15 10:20:16 UTC
works for me with 1.4.5 although the subversion ebuild is missing a dev-lang/swig dependency if one of USE="perl python ruby" is enabled ... can you please try the 1.4.5 version (with USE="perl" and swig manually installed before) to see if that works ... i will commit a fixed 1.4.5-r1 then
Comment 10 Arfrever Frehtes Taifersar Arahesis (RETIRED) gentoo-dev 2007-12-21 19:30:13 UTC
(In reply to comment #9)
> the subversion ebuild is missing a dev-lang/swig dependency if one of
> USE="perl python ruby" is enabled ... can you please try the 1.4.5 version
> (with USE="perl" and swig manually installed before) to see if that
> works ... i will commit a fixed 1.4.5-r1 then

No. Normally released versions of Subversion contain prebuilt files generated by SWIG, so they don't require SWIG, unless `make extraclean-swig` is run.
Comment 11 Benedikt Böhm (RETIRED) gentoo-dev 2007-12-28 13:00:23 UTC
(In reply to comment #10)
> No. Normally released versions of Subversion contain prebuilt files generated
> by SWIG, so they don't require SWIG, unless `make extraclean-swig` is run.

but swig is required at runtime:

Can't load '/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/auto/SVN/_Core/_Core.so' for module SVN::_Core: /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/auto/SVN/_Core/_Core.so: undefined symbol: svn_swig_pl_thunk_config_enumerator at /usr/lib64/perl5/5.8.8/x86_64-linux/DynaLoader.pm line 230.

(oddly enough this error does not go away by installing swig after subversion, so it needs to be a build depend nevertheless)

fixed in 1.4.6, please test.
Comment 12 Arfrever Frehtes Taifersar Arahesis (RETIRED) gentoo-dev 2008-01-05 19:15:46 UTC
(In reply to comment #11)
> (In reply to comment #10)
> > No. Normally released versions of Subversion contain prebuilt files
> > generated
> > by SWIG, so they don't require SWIG, unless `make extraclean-swig` is run.
> 
> but swig is required at runtime:
> 
> Can't load
> '/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/auto/SVN/_Core/_Core.so'
> for module SVN::_Core:
> /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/auto/SVN/_Core/_Core.so:
> undefined symbol: svn_swig_pl_thunk_config_enumerator at
> /usr/lib64/perl5/5.8.8/x86_64-linux/DynaLoader.pm line 230.

That symbol comes from Subversion, not SWIG.

$ qlist swig | grep lib
$ qlist swig | grep so
$ 
Comment 13 Arfrever Frehtes Taifersar Arahesis (RETIRED) gentoo-dev 2008-01-05 22:20:07 UTC
(In reply to comment #12)
> (In reply to comment #11)
> > (In reply to comment #10)
> > > No. Normally released versions of Subversion contain prebuilt files
> > > generated
> > > by SWIG, so they don't require SWIG, unless `make extraclean-swig` is run.
> > 
> > but swig is required at runtime:
> > 
> > Can't load
> > '/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/auto/SVN/_Core/_Core.so'
> > for module SVN::_Core:
> > /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/auto/SVN/_Core/_Core.so:
> > undefined symbol: svn_swig_pl_thunk_config_enumerator at
> > /usr/lib64/perl5/5.8.8/x86_64-linux/DynaLoader.pm line 230.
> 
> That symbol comes from Subversion, not SWIG.
> 
> $ qlist swig | grep lib
> $ qlist swig | grep so
> $ 

Also:
$ ldd /usr/lib/perl5/vendor_perl/5.8.8/*/auto/SVN/*/*so | grep -i swig
        libsvn_swig_perl-1.so.0 => /usr/lib/libsvn_swig_perl-1.so.0 (0xb7da8000)
        libsvn_swig_perl-1.so.0 => /usr/lib/libsvn_swig_perl-1.so.0 (0xb7d7f000)
        libsvn_swig_perl-1.so.0 => /usr/lib/libsvn_swig_perl-1.so.0 (0xb7e5b000)
        libsvn_swig_perl-1.so.0 => /usr/lib/libsvn_swig_perl-1.so.0 (0xb7e13000)
        libsvn_swig_perl-1.so.0 => /usr/lib/libsvn_swig_perl-1.so.0 (0xb7db8000)
        libsvn_swig_perl-1.so.0 => /usr/lib/libsvn_swig_perl-1.so.0 (0xb7df5000)
        libsvn_swig_perl-1.so.0 => /usr/lib/libsvn_swig_perl-1.so.0 (0xb7dff000)
$ scanelf -qF "%F: %s" -s svn_swig_pl_thunk_config_enumerator /usr/lib/perl5/vendor_perl/5.8.8/*/auto/SVN/*/*so /usr/lib/libsvn*
/usr/lib/perl5/vendor_perl/5.8.8/i686-linux/auto/SVN/_Core/_Core.so: svn_swig_pl_thunk_config_enumerator
/usr/lib/libsvn_swig_perl-1.so: svn_swig_pl_thunk_config_enumerator
/usr/lib/libsvn_swig_perl-1.so.0: svn_swig_pl_thunk_config_enumerator
/usr/lib/libsvn_swig_perl-1.so.0.0.0: svn_swig_pl_thunk_config_enumerator
$