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-10.1
          platform.
        
        
          Package Information
        
        
          
            - 
              
                Download (HTTP): 
                https://archive.apache.org/dist/subversion/subversion-1.14.1.tar.bz2
               
- 
              
                Download MD5 sum: 2eccc2c7451397e01a13682600af9563
               
- 
              
                Download size: 8.1 MB
               
- 
              
                Estimated disk space required: 208 MB (add 228 MB for
                bindings, 52 MB for docs, 1.3 GB for tests)
               
- 
              
                Estimated build time: 0.5 SBU (Using parallelism=4; add 1.9
                SBU for bindings, 35 SBU for tests)
               
 
        
          Subversion Dependencies
        
        
          Required
        
        
          Apr-Util-1.6.1 and SQLite-3.34.1
        
        
          Recommended
        
        
          Serf-1.3.9 (for handling http:// and https://
          URLs)
        
        
          Optional
        
        
          Apache-2.4.46, Boost-1.75.0, Cyrus
          SASL-2.1.27, dbus-1.12.20, Doxygen-1.9.1 (for
          generating HTML documentation), gnome-keyring-3.36.0, libsecret-0.20.4, Py3c-1.3.1 (for
          tests) Python-2.7.18 (with sqlite support for the
          tests), Ruby-3.0.0, SWIG-4.0.2 (for building Perl, Python and
          Ruby bindings), LZ4, and UTF8proc
        
        
          Optional (for the Java Bindings)
        
        
          One of OpenJDK-15.0.2, Dante or Jikes, JUnit 4 (to test the Java bindings)
          and apache-ant-1.10.9.
        
        
          User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/subversion
        
       
      
        
          Installation of Subversion
        
        
          Install Subversion by running the
          following commands:
        
        
PYTHON=python3 ./configure --prefix=/usr             \
            --disable-static          \
            --with-apache-libexecdir  \
            --with-lz4=internal       \
            --with-utf8proc=internal &&
make
        
          If you have Doxygen-1.9.1 installed and you wish to build
          the API documentation, issue:
        
        
doxygen doc/doxygen.conf
        
          If you wish to build the Java bindings pass the --enable-javahl parameter to the configure command. In addition,
          if you want to run the Java test suite, you have to specify the
          location of the JUnit file by
          adding --with-junit=<path to junit
          jar> (for instance --with-junit=/usr/local/java/lib/junit-4.13.jar) to
          configure. The JUnit
          jar file is no longer included in apache-ant-1.10.9
          and must be downloaded seperatly. To build the Java bindings, issue
          the following command:
        
        
make javahl
        
          If you want to compile Perl,
          Python, or Ruby bindings, issue any of the following
          command:
        
        
make swig-pl # for Perl
make swig-py \
     swig_pydir=/usr/lib/python3.9/site-packages/libsvn \
     swig_pydir_extra=/usr/lib/python3.9/site-packages/svn # for Python
make swig-rb # for Ruby
        
          To test the results, issue: make
          check. Four tests in the commit_tests.py, prop_tests.py, and update_tests.py suites are known to fail.
        
        
          To test the results of the Java bindings build, issue LANG=C make check-javahl.
        
        
          To test the results of any of the SWIG bindings, you can use any of the
          following commands: make
          check-swig-pl, make
          check-swig-py, or make check-swig-rb.
        
        
          Now, as the root user:
        
        
make install &&
install -v -m755 -d /usr/share/doc/subversion-1.14.1 &&
cp      -v -R doc/* /usr/share/doc/subversion-1.14.1
        
          If you built the Java bindings, issue the following command as the
          root user to install them:
        
        
make install-javahl
        
          If you built the Perl,
          Python, or Ruby bindings, issue any of the following
          commands as the root user to
          install them:
        
        
make install-swig-pl
make install-swig-py \
      swig_pydir=/usr/lib/python3.9/site-packages/libsvn \
      swig_pydir_extra=/usr/lib/python3.9/site-packages/svn
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.46 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.
        
        
          --with-lz4=internal,
          --with-utf8proc=internal: Remove these switches if you
          have installed the optional dependencies.
        
        
          --enable-javahl: enables compilation of
          Java high level bindings. Running make javahl is necessary to do
          the compilation.
        
        
          --with-junit=<location of the junit jar
          file>: gives the location of the junit jar, otherwise the
          javahl tests cannot be run.
        
        
          --disable-gmock: Do not use the
          Googlemock testing framework.