JuangaCovas.info

La página personal de Juan Gabriel Covas

Herramientas de usuario

Herramientas del sitio


linux:howtos:build-svn-from-sources

¡Esta es una revisión vieja del documento!


Build Subversion from sources

– Juan Gabriel Covas - 2019

How to build Subversion / SVN from Sources, on CentOS 7 or Ubuntu 18 or Ubuntu 19, so you can use the latest subversion version. This how-to is based on this blog post: Building Subversion on Ubuntu 12.10

NOTE: This how-to is OK for a subversion client OR updating the binaries of a subversion SERVER that does NOT use Apache or any other stuff. Since I'm only interested in svn+ssh protocol, it's fine for me. Anyway a subversion SERVER requires more setup if you want to use Apache, svn+ssh, etc. which is not the purpose of this document. You can check my notes on setup a subversion server for svn+ssh


CentOS 7 minimal: Compiling and installing SVN from sources

Tested on CentOS 7 (minimal install, NO stock subversion installed)

Subversion build: success as normal user, under /home/user/src

Pre-requisites (and some other tools I like)

yum install net-tools bind-utils nano
yum install net-tools wget nano perl mlocate mailx bind-utils crontabs cronie rsync openssh-server unzip perl-libwww-perl yum-utils deltarpm curl psmisc git cpan colorize colordiff pwgen bc
yum install epel-release
yum install cpan colorize colordiff pwgen perl-LWP-Protocol-https
yum install gcc libevent libevent-devel zlib zlib-devel bzip2-devel gamin-devel lua lua-devel openssl-devel pcre pcre-devel pcre-static libmcrypt libmcrypt-devel
yum install libjpeg-turbo-utils optipng gifsicle
yum install zlib-devel libuuid-devel gcc make git autoconf autogen automake pkgconfig
yum install utf8proc utf8proc-devel apr apr-devel apr-util apr-util-devel libtool

Installing subversion from sources:

cd ~; mkdir src; cd src
wget http://ftp.cixug.es/apache/subversion/subversion-1.12.2.tar.gz
tar xzf subversion-*
cd subversion-*
./get-deps.sh apr serf zlib sqlite
cd apr/; ./buildconf
cd ../apr-util; ./buildconf
cd ../apr-util/xml/expat/; ./buildconf.sh; cd ../../..

Needed for CentOS:

export LIBTOOL_M4=/usr/share/aclocal
export LIBTOOL_CONFIG=/usr/share/libtool/config  

Then autogen will work:

./autogen.sh
./configure --with-lz4=internal
make
make check
sudo make install
# svn --version --quiet
1.12.2


Ubuntu 19 server: Compiling and installing SVN from sources

Tested on Ubuntu 19 Server (minimal install, NO stock subversion previously installed)

Subversion build: success as a normal user, in /home/user/src

Pre-requisites on Ubuntu 18

# apt-get install build-essential git libtool libtool-bin unzip libutf8proc1 libutf8proc-dev

Pre-requisites on Ubuntu 19 (libutf8proc1 is not needed anymore)

# apt-get install build-essential git libtool libtool-bin unzip

More pre-requisites:

  • Enable (uncomment) the lines beginning with deb-src inside the file /etc/apt/sources.list
  • Update the packages now with sudo apt-get update
  • Get dependencies from the stock subversion (lazy & dirty) with sudo apt-get build-dep subversion

Download subversion sources:

# cd ~; mkdir src; cd src
# wget http://ftp.cixug.es/apache/subversion/subversion-1.12.2.tar.gz
# tar xvzf subversion-*
# cd subversion-1.12.2

Going to compile and install subversion from sources on Ubuntu:

# ./get-deps.sh apr serf zlib sqlite
# cd apr/; ./buildconf
# cd ../apr-util; ./buildconf
# cd ../apr-util/xml/expat/; ./buildconf.sh; cd ../../..

Continue:

# ./autogen.sh
# ./configure --with-lz4=internal
# make
# make check
# sudo make install

Everything went OK, make and (sudo) make install, BUT got this error when tried to execute svn command:

# svn
svn: error while loading shared libraries: libsvn_ra_svn-1.so.0: cannot open shared object file: No such file or directory

Fixed forcing ldconfig:

sudo ldconfig

Then it works:

# svn --version --quiet
1.12.2


Note on RE-building subversion from sources

If you RE-build a new version from sources, you should move all files libsvn_* from /usr/local/lib to some “old” directory to avoid the following errors when doing make (this is an example when I re-build svn v1.12 when previously compiled 1.11 on the same box):

../../subversion/libsvn_client/.libs/libsvn_client-1.so: undefined reference to `svn_wc__get_experimental_dir'
../../subversion/libsvn_client/.libs/libsvn_client-1.so: undefined reference to `svn_wc__find_copies_of_repos_path'
collect2: error: ld returned 1 exit status
build-outputs.mk:1194: recipe for target 'subversion/svnmucc/svnmucc' failed
make: *** [subversion/svnmucc/svnmucc] Error 1

After moving the files, make succeeded.

linux/howtos/build-svn-from-sources.1594395512.txt.bz2 · Última modificación: 10/07/2020 17:38 por Juanga Covas