This might make you really really glad you use a linux with a sane package manager!
Thanks to anyone who wrote on solving Error.pm/SVN::Core.pm problem on the internet.
I had one same^H^H^Himilar issue on cygwin and solaris
I want to use git-svn.
cygwin just had one error "Can't locate SVN/Core.pm" (git package was installed).
This solved by installing the additional subversion-perl package.
$ cygcheck.exe -l subversion-perl
solaris (as usual! was more difficult) ... :-E
solaris 10 opensolaris/blastwave doesn't have a git package !? :-o (for intel/amd)
So I have git installed using sunfreeware packages
AND make sure all the dependancies are installed from SFW also, see the minor grief I had below missing expat (not for git itself but for getting perl Alien::SVN to compile so I could get git-svn working)
First error "Can't locate Error.pm" solved easily enough.
$ wget home.comcast.net/~ericblake/Error.pm
And copy to somewhere in $PERLLIB path.
$ cp Error.pm /usr/perl5/vendor_perl/
Next error "Can't locate SVN/Core.pm"
$ perl -MCPAN -e shell
cpan> install Module::Build
cpan> install Alien::SVN
didn't work :( didn't like /usr/sfw/bin/gmake :(
/usr/bin/perl "-Iblib/arch" "-Iblib/lib" Build.PL Build
Too early to specify a build action 'Build'. Do 'Build Build' instead.
gmake: *** [Build] Error 2
/usr/sfw/bin/gmake -- NOT OK
$ cd ~/.cpan/build/Alien-SVN-220.127.116.11
$ perl "-Iblib/arch" "-Iblib/lib" Build.PL
## manually enter /usr/sfw/bin/gmake
incidentally, $(/usr/sfw/bin/gmake --version) == "GNU Make 3.81"
starts building subversion but then argh!
"subversion/libsvn_subr/xml.c", line 34: cannot find include file: <expat.h>
$ pkginfo -l |grep expat
NAME: expat - XML Parser Toolkit
VENDOR: http://expat.sourceforge.net/ packaged for CSW by Damjan Perenic
NAME: libexpat - XML parser library
DESC: libexpat - XML parser library 1.95.7
$ /usr/sbin/pkgchk -l CSWexpat |grep include
NOTE: Couldn't lock the package database.
meh. :-7 mixing packages from CSW and SFW would be a bit messy
get and install SMCexpat (from sunfreeware)
looks better, goes further
... but linking problems
cc: Warning: option -- passed to ld
Oh right. It used sun compiler throughout.
Back to configure.
$ perl Build.pm
Would you like to pass any arguments to configure? [--libdir=/usr/perl5/site_perl/5.8.4/i86pc-solaris-64int/Alien/SVN --prefix=/usr/perl5/5.8.4 ]CC=/usr/sfw/bin/gcc
Undefined first referenced
symbol in file
ld: fatal: Symbol referencing errors. No output written to .libs/svn
collect2: ld returned 1 exit status
gmake: *** [subversion/svn/svn] Error 1
building subversion failed at inc/My/SVN/Builder.pm line 121.
$ vi src/subversion/Makefile
add -lintl to end of BOTH (:-7) of these lines:
SVN_APR_LIBS = /usr/local/lib/libapr-0.la -lsendfile -lrt -lm -lsocket -lnsl -lresolv -lpthread -lintl
SVN_APRUTIL_LIBS = /usr/local/lib/libaprutil-0.la -ldb-4.2 -lexpat -liconv -lintl
$ ./Build install
I bet if I just took the perl files from Cygwin or linux it would have done the same job ... !?
bash$ svn ls https://$MYREPO
ld.so.1: svn: fatal: relocation error: file /usr/local/lib/libsvn_subr-1.so.0: symbol libintl_bindtextdomain: referenced symbol not found
reinstall svn sunfreeware package,
svn okay now but git svn still has lib problems
$ git svn clone https://$MYREPO --trunk=trunk --branches=branches --tags=tags
ld.so.1: git-hash-object: fatal: relocation error: file /usr/local/bin/git-hash-object: symbol deflateBound: referenced symbol not found
Can't use an undefined value as a symbol reference at /usr/local/lib/perl5/site_perl/5.8.8/Git.pm line 421.
HA! deflateBound is in libz
I'm so STUPID! Get zlib from sunfreeware (remember what I said earlier about ALL dependancies!!)
and I'm running with this
$ export LD_LIBRARY_PATH=/usr/local/lib:/usr/sfw/lib:$LD_LIBRARY_PATH
probably don't need that but was picking up libgcc, libiconv from /opt/csw instead of /usr/local
So in conclusion: Alien::SVN (which provides SVN::Core) is quite awkward to build for solaris (gmake, cc vs gcc and lib differences on solaris)