Subversion の概要
Subversion
はバージョン管理システムであり、オープンソースコミュニティにおいて CVS に代わるものとして構築されたものです。 CVS の機能を拡張しつつ、それまでの CVS と同様のインターフェースを提供しています。 ここに示すビルド手順では
Subversion
リポジトリを制御する、サーバー/クライアントソフトウェアをともにインストールします。 リポジトリの生成方法については
Subversion サーバーの起動 において説明しています。
注記
LFS や依存パッケージが本ブックに示す最新安定バージョンでなかった場合には、BLFS
開発版においては、パッケージのビルドや処理実行が適切に行われないことがあります。
パッケージ情報
Subversion の依存パッケージ
必須
Apr-Util-1.6.3, SQLite-3.44.2
Recommended
Serf-1.3.10 (for handling http:// and https://
URLs)
任意
Apache-2.4.58, Boost-1.84.0, Cyrus
SASL-2.1.28, dbus-1.14.10, Doxygen-1.9.8 (for
generating HTML documentation), gnome-keyring-42.1, libsecret-0.21.2, Py3c-1.4 (for the
python bindings, and tests), Python-3.12.1 (with sqlite support for
the tests), Ruby-3.2.2, SWIG-4.1.1 (for building Perl, Python and
Ruby bindings), LZ4, and UTF8proc
任意; (Java バインディングビルド時)
One of OpenJDK-21.0.1, Dante or Jikes, JUnit 4 (to test the Java bindings)
and apache-ant-1.10.14.
Subversion のインストール
First, adapt some Python scripts to use python3:
grep -rl '^#!.*python$' | xargs sed -i '1s/python/&3/'
Next, adapt the Ruby bindings to Ruby-3.2:
sed -e 's/File.exists?/File.exist?/' \
-i subversion/bindings/swig/ruby/svn/util.rb \
subversion/bindings/swig/ruby/test/test_wc.rb
以下のコマンドを実行して Subversion をビルドします。
PYTHON=python3 \
./configure --prefix=/usr \
--disable-static \
--with-apache-libexecdir \
--with-lz4=internal \
--with-utf8proc=internal &&
make
Doxygen-1.9.8 をインストールしていて、API
ドキュメントをインストールする場合は以下を実行します。
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.14
and must be downloaded separately. To build the Java bindings,
issue the following command:
make -j1 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.12/site-packages/libsvn \
swig_pydir_extra=/usr/lib/python3.12/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. Due to
changes in Python-3.12, you can expect to see around 200 Syntax
Warnings during the test suite due to invalid escape sequences.
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.2 &&
cp -v -R doc/* /usr/share/doc/subversion-1.14.2
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.12/site-packages/libsvn \
swig_pydir_extra=/usr/lib/python3.12/site-packages/svn
make install-swig-rb
The java bindings need to be installed in order for the tests to
run, since the tests attempt to look for them in CLASSPATH. To test
the results of the Java bindings build, issue LANG=C make check-javahl.
コマンド説明
--disable-static
:
このスイッチはスタティックライブラリをインストールしないようにします。
--with-apache-libexecdir
:
If Apache-2.4.58 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.