Subversion-1.14.3

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.

Ce paquet est connu pour pouvoir être construit et fonctionner correctement avec une plateform 12.2.

Informations sur le paquet

  • Téléchargement (HTTP) : https://archive.apache.org/dist/subversion/subversion-1.14.3.tar.bz2

  • Téléchargement (FTP) :

  • Somme de contrôle MD5 du téléchargement : 19756a5ceb32a022698a66e48616ef6b

  • Taille du téléchargement : 8,2 Mo

  • Estimation de l'espace disque requis : 193 Mo (plus 189 Mo pour les liaisons, 54 Mo pour les docs, 1,3 Go pour les tests)

  • Estimation du temps de construction : 0,5 SBU (avec parallélisme = 4 ; plus 2,0 SBU pour les liaisons, 30 SBU pour les tests)

Téléchargements supplémentaires

Dépendances de Subversion

Requises

Apr-Util-1.6.3 et SQLite-3.46.1

Recommandées

Facultatives

Apache-2.4.62, Boost-1.86.0, Cyrus SASL-2.1.28, dbus-1.14.10, Doxygen-1.12.0 (pour générer la documentation HTML), gnome-keyring-46.2, libsecret-0.21.4, Py3c-1.4 (pour les liaisons python et les tests), Python-3.12.5 (avec la prise en charge de sqlite pour les tests), Ruby-3.3.4, SWIG-4.2.1 (pour construire les liaisons Perl, Python et Ruby) et UTF8proc

Facultatives (pour les liaisons Java)

Un parmi OpenJDK-22.0.2, Dante ou Jikes, JUnit 4 (pour tester les liaisons Java) et apache-ant-1.10.14.

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, corrigez la construction de ce paquet avec GCC 14 :

patch -Np1 -i ../subversion-1.14.3-upstream_fixes-1.patch

Après avoir modifié les liaisons SWIG comme nous l'avons fait avec le correctif, le système de construction doit être régénéré pour que les liaisons puissent prendre en compte les changements :

touch build/generator/swig/*.py &&
mv -v build-outputs.mk{,.old}   &&
./autogen.sh --release

Installez Subversion en exécutant les commandes suivantes :

PYTHON=python3                        \
./configure --prefix=/usr             \
            --disable-static          \
            --with-apache-libexecdir  \
            --with-utf8proc=internal &&
make

Si vous avez installé Doxygen-1.12.0 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.14 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.12/site-packages/libsvn \
     swig_pydir_extra=/usr/lib/python3.12/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. À cause de changements dans Python-3.12, vous pouvez vous attendre à voir environ 200 avertissements de syntaxe pendant la suite de tests à cause de séquences d'échappement invalides.

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.3 &&
cp      -v -R doc/* /usr/share/doc/subversion-1.14.3

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.12/site-packages/libsvn \
      swig_pydir_extra=/usr/lib/python3.12/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.62 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-utf8proc=internal : supprimez ce paramètre 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.

Configuration de Subversion

Fichiers de configuration

~/.subversion/config et /etc/subversion/config

Informations sur la configuration

/etc/subversion/config est le fichier de configuration générale du système Subversion. Ce fichier est utilisé pour spécifier des paramètres par défaut pour différentes commandes svn.

~/.subversion/config est le fichier de configuration personnel de l'utilisateur. Il est utilisé pour remplacer les paramètres par défaut globaux réglés dans /etc/subversion/config.

Contenu

Programmes installés: svn, svnadmin, svnbench, svndumpfilter, svnfsfs, svnlook, svnmucc, svnrdump, svnserve, svnsync et svnversion
Bibliothèques installées: libsvn_*-1.so et éventuellement une bibliothèque Java, les modules DSO de Apache HTTP mod_dav_svn.so et mod_authz_svn.so et différents modules Perl, Python et Ruby.
Répertoires installés: /usr/include/subversion-1, /usr/lib/perl5/site_perl/5.40/{,auto/}SVN, /usr/lib/python3.12/site-packages/{libsvn,svn}, /usr/lib/ruby/site_ruby/<x.y.z>/{,<arch-linux>-linux/}svn, /usr/lib/svn-javahl et /usr/share/doc/subversion-1.14.3

Descriptions courtes

svn

est le client en ligne de commandes utilisé pour accéder aux dépôts Subversion

svnadmin

est un outil pour la création, la modification ou la réparation d'un dépôt Subversion

svnbench

est un outil de test

svndumpfilter

est un programme pour le filtrage des streamings de format dumpfile d'un dépôt Subversion

svnfsfs

est l'outil de manipulation de dépôt de FSFS (Système de fichiers au dessus du système de fichier - implémentation du système de fichier de Subversion)

svnlook

est un outil pour examiner un dépôt Subversion

svnmucc

est un client de commande de plusieurs URL pour Subversion

svnrdump

est un outil pour écrire ou charger un dépôt Subversion

svnserve

est un programme de serveur autonome personnalisable capable de se lancer en tant que démon ou invoqué par SSH

svnsync

est un outil de synchronisation de dépôts Subversion

svnversion

est utilisé pour signaler le numéro de version et l'état de la copie d'un dépôt Subversion

libsvn_*-1.so

sont les bibliothèques de support utilisées par les programmes Subversion

mod_authz_svn.so

est un module complémentaire pour le serveur HTTP Apache, utilisé pour authentifier les utilisateurs sur un dépôt Subversion à travers Internet ou un réseau intranet

mod_dav_svn.so

est un module complémentaire pour le serveur HTTP Apache, utilisé pour rendre un dépôt Subversion disponible pour autrui à travers Internet or un réseau intranet