Introduction to Subversion
Subversion is a version control
system that is designed to be a compelling replacement for
CVS in the open source community.
It extends and enhances CVS'
feature set, while maintaining a similar interface for those
already familiar with CVS. These
instructions install the client and server software used to
manipulate a Subversion
repository. Creation of a repository is covered at Running a
Subversion Server.
This package is known to build and work properly using an LFS-7.6
systemd platform.
Package Information
-
Download (HTTP):
http://www.apache.org/dist/subversion/subversion-1.8.10.tar.bz2
-
Download MD5 sum: 3068256761b40863df96128834d6b71b
-
Download size: 6.6 MB
-
Estimated disk space required: 143 MB (284 MB with all
bindings and API documentation built; additional 968 MB for
tests)
-
Estimated build time: 0.9 SBU (2.5 SBU with all bindings and
API documentation built; additional 12.6 SBU for tests)
Subversion Dependencies
Required
Apr-Util-1.5.3 and SQLite-3.8.6
Recommended
OpenSSL-1.0.1i and Serf-1.3.7 (for
handling http:// and https:// URLs)
Optional
Apache-2.4.10, Cyrus
SASL-2.1.26, D-Bus, KDELibs-4.14.1 (for KWallet
support), Python-2.7.8 (with sqlite support for the
tests), Ruby-2.1.2, and SWIG-3.0.2 (for building Perl, Python and
Ruby bindings)
Optional (for the Java Bindings)
One of OpenJDK-1.7.0.65/IcedTea-2.5.2,
Dante or
Jikes,
and JUnit-4.11 (to test the Java bindings)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/subversion
Installation of Subversion
Install Subversion by running the
following commands:
./configure --prefix=/usr \
--disable-static \
--with-apache-libexecdir &&
make
If you have Doxygen-1.8.8 installed and you wish to build
the API documentation, issue: doxygen
doc/doxygen.conf.
If you are using multiple jobs to compile packages, then fix a bug
in the Makefile
will prevent the
Perl bindings from compiling
correctly:
sed -i 's#Makefile.PL.in$#& libsvn_swig_perl#' Makefile.in
If you want to compile Java,
Perl, Python2 or Ruby bindings, issue any of the following
commands:
Note
Make sure that you have passed --enable-javahl
switch to configure before trying to
build the Java bindings.
For Java bindings:
make javahl
For Perl bindings:
make swig-pl
For Python2 bindings:
make swig-py \
swig_pydir=/usr/lib/python2.7/site-packages/libsvn \
swig_pydir_extra=/usr/lib/python2.7/site-packages/svn
For Ruby bindings:
make swig-rb
To test the results, issue: make -k
check. One test (wc-queries-test) is known to fail
with recent versions of SQLite.
To test the results of any of the SWIG bindings, you can use any of the
following commands: make
check-javahl, make
check-swig-pl, make
check-swig-py or make
check-swig-rb. Note you must have the JUnit testing framework installed if running
the Java bindings tests.
Now, as the root
user:
make -j1 install &&
install -v -m755 -d /usr/share/doc/subversion-1.8.10 &&
cp -v -R doc/* \
/usr/share/doc/subversion-1.8.10
If you have built any of the Java,
Perl, Python2 or Ruby bindings, issue any of the following
commands as the root
user to
install them:
For Java bindings:
make install-javahl
For Perl bindings:
make install-swig-pl
For Python2 bindings:
make install-swig-py \
swig_pydir=/usr/lib/python2.7/site-packages/libsvn \
swig_pydir_extra=/usr/lib/python2.7/site-packages/svn
For Ruby bindings:
make install-swig-rb
Command Explanations
--disable-static
: This
switch prevents installation of static versions of the libraries.
--with-apache-libexecdir
:
If Apache-2.4.10 is installed, the shared
Apache modules are built. This
switch allows to have those modules installed to Apache's configured module dir instead of
/usr/libexec
. It has no effect if
Apache is not installed.