Introduction à Subversion
Subversion est un système de
contrôle de version prévu pour être un superbe remplacement de
CVS dans la communauté du libre.
Il améliore et prend en charge les caractéristiques de CVS tout en conservant une interface identique
pour ceux à l'aise avec CVS. Ces
instructions installent les logiciels client et serveur utilisés
pour manipuler un dépôt Subversion. La création d'un dépôt est
couverte dans Exécuter un serveur
subversion.
This package is known to build and work properly using an LFS 11.3
platform.
Informations sur le paquet
-
Téléchargement (HTTP) :
https://archive.apache.org/dist/subversion/subversion-1.14.2.tar.bz2
-
Téléchargement (FTP) :
-
Somme de contrôle MD5 : 9927b167d1c67d663ca63125907f6f69
-
Taille du téléchargement : 8,3 Mo
-
Estimation de l'espace disque requis : 208 Mo (plus 228
Mo pour les liaisons, 52 Mo pour les docs, 1,3 Go pour les
tests)
-
Estimation du temps de construction : 0,5 SBU (avec
parallélisme = 4 ; plus 1,9 SBU pour les liaisons,
35 SBU pour les tests)
Dépendances de Subversion
Requises
Apr-Util-1.6.3 et SQLite-3.40.1
Recommandées
Serf-1.3.9 (pour prendre en charge les URL http://
et https://)
Facultatives
Apache-2.4.55, Boost-1.81.0, Cyrus
SASL-2.1.28, dbus-1.14.6, Doxygen-1.9.6 (pour générer la
documentation HTML), gnome-keyring-42.1, libsecret-0.20.5, Py3c-1.4 (pour les
liaisons python et les tests), Python-2.7.18 (avec la prise en charge de
sqlite pour les tests), Ruby-3.2.1, SWIG-4.1.1 (pour construire les liaisons
Perl, Python et Ruby), LZ4 et UTF8proc
Facultatives (pour les liaisons Java)
Un parmi OpenJDK-19.0.2, Dante ou Jikes, JUnit 4 (pour tester les liaisons
Java) et apache-ant-1.10.13.
Notes utilisateur : https://wiki.linuxfromscratch.org/blfs/wiki/subversion
Installation de Subversion
Tout d'abord, adaptez certains scripts Python pour qu'ils utilisent
python3 :
grep -rl '^#!.*python$' | xargs sed -i '1s/python/&3/'
Ensuite, adaptez les liaisons Ruby à 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
Installez Subversion en exécutant
les commandes suivantes :
PYTHON=python3 ./configure --prefix=/usr \
--disable-static \
--with-apache-libexecdir \
--with-lz4=internal \
--with-utf8proc=internal &&
make
Si vous avez installé Doxygen-1.9.6 et si vous souhaitez construire
la documentation de l'API, lancez :
doxygen doc/doxygen.conf
Si vous voulez construire les liaisons Java passez le paramètre
--enable-javahl
à la commande
configure. En plus,
si vous voulez lancer la suite de tests Java, vous devez spécifier
l'emplacement du fichier JUnit en
ajoutant --with-junit=<chemin vers le jar
de junit>
(par exemple --with-junit=/usr/local/java/lib/junit-4.13.jar
) à
configure. Le fichier
jar de JUnit n'est plus inclus dans apache-ant-1.10.13
et doit être téléchargé séparément. Pour construire les liaisons
Java, lancez la commande suivante :
make -j1 javahl
Si vous voulez compiler les liaisons Perl, Python,
ou Ruby, tapez les commandes
suivantes :
make swig-pl # pour Perl
make swig-py \
swig_pydir=/usr/lib/python3.11/site-packages/libsvn \
swig_pydir_extra=/usr/lib/python3.11/site-packages/svn # pour Python
make swig-rb # pour Ruby
Pour tester les résultats lancez : make check. Quatre tests dans les
suites commit_tests.py
, prop_tests.py
et update_tests.py
sont connus pour échouer.
Pour tester les résultats de certaines liaisons SWIG, vous pouvez utiliser les commandes
suivantes : make
check-swig-pl, make
check-swig-py, ou make check-swig-rb.
Maintenant, en tant qu'utilisateur root
:
make install &&
install -v -m755 -d /usr/share/doc/subversion-1.14.2 &&
cp -v -R doc/* /usr/share/doc/subversion-1.14.2
Si vous construisez les liaisons Java, tapez les commandes
suivantes en tant qu'utilisateur root
pour les installer :
make install-javahl
Si vous construisez les liaisons Perl, Python,
ou Ruby, tapez une des commandes
suivantes en tant qu'utilisateur root
pour les installer :
make install-swig-pl
make install-swig-py \
swig_pydir=/usr/lib/python3.11/site-packages/libsvn \
swig_pydir_extra=/usr/lib/python3.11/site-packages/svn
make install-swig-rb
Les liaisons Java doivent être installée pour lancer les tests, car
les tests essayent de les trouver dans le CLASSPATH. Pour tester
les résultats de la construction des liaisons Java, lancez
LANG=C make
check-javahl.
Explication des commandes
--disable-static
: Ce
paramètre empêche l'installation des versions statiques des
bibliothèques.
--with-apache-libexecdir
: Si
Apache-2.4.55 est installé, les modules
partagés de Apache sont
construits. Ce paramètre permet d'avoir ces modules installé dans
le répertoire configuré de Apache
au lieu de /usr/libexec
. Il n'a pas
d'effet si Apache n'est pas
installé.
--with-lz4=internal,
--with-utf8proc=internal
: Supprimez-les si vous
avez installé les dépendances facultatives.
--enable-javahl
: active la
compilation des liaisons Java haut-niveau. Il est nécessaire de
lancer make javahl
pour effectuer la compilation.
--with-junit=<location of the junit jar
file>
: donne l'emplacement du jar de junit, sinon
les tests de javahl ne peuvent être lancés.
---disable-gmock
: Ne pas utiliser
l'outil de tests Googlemock.