Introdução ao Subversion
"Subversion" é um sistema de
controle de versão que foi projetado para ser um substituto
atraente para o "CVS" na
comunidade de fonte aberto. Ele amplia e aprimora o conjunto de
recursos do "CVS", enquanto mantém
uma interface semelhante para aqueles(as) já familiarizados(as) com
o "CVS". Estas instruções instalam
o logiciário cliente e servidor usado para manipular um repositório
"Subversion". A criação de um
repositório é abordada em Executando um
Servidor "Subversion".
Esse pacote é conhecido por construir e funcionar corretamente
usando uma plataforma LFS 12.1.
Informação do Pacote
-
Transferência (HTTP):
https://archive.apache.org/dist/subversion/subversion-1.14.3.tar.bz2
-
Transferência (FTP):
-
Soma de verificação MD5 da transferência:
19756a5ceb32a022698a66e48616ef6b
-
Tamanho da transferência: 8,2 MB
-
Espaço em disco estimado exigido: 193 MB (adicionar 189 MB
para ligações, 54 MB para documentos, 1,3 GB para testes)
-
Tempo de construção estimado: 0,5 UPC (Usando paralelismo=4;
adicionar 2,0 UPC para ligações, 30 UPC para testes)
Dependências do Subversion
Exigidas
Apr-Util-1.6.3 e SQLite-3.45.1
Recomendadas
Serf-1.3.10 (para manusear "URLs" "http://" e
"https://")
Opcionais
Apache-2.4.58, Boost-1.84.0, Cyrus
SASL-2.1.28, dbus-1.14.10, Doxygen-1.10.0 (para
gerar documentação HTML), gnome-keyring-42.1, libsecret-0.21.3, Py3c-1.4 (para as
ligações Python e testes), Python-3.12.2 (com suporte sqlite para os
testes), Ruby-3.3.0, SWIG-4.2.0 (para construir ligações Perl,
Python e Ruby), LZ4 e UTF8proc
Opcionais (para as ligações Java)
Um de OpenJDK-21.0.2, Dante ou Jikes; JUnit 4 (para testar as ligações
"Java") e apache-ant-1.10.14.
Instalação do Subversion
Primeiro, adapte alguns "scripts" "Python" para usar "python3":
grep -rl '^#!.*python$' | xargs sed -i '1s/python/&3/'
A seguir, adapte as ligações Ruby para ruby-3.2 e posteriores:
sed -e 's/File.exists?/File.exist?/' \
-i subversion/bindings/swig/ruby/svn/util.rb \
subversion/bindings/swig/ruby/test/test_wc.rb
Instale Subversion executando os
seguintes comandos:
PYTHON=python3 \
./configure --prefix=/usr \
--disable-static \
--with-apache-libexecdir \
--with-lz4=internal \
--with-utf8proc=internal &&
make
Se você tiver "Doxygen-1.10.0" instalado e desejar construir
a documentação da "API", emita:
doxygen doc/doxygen.conf
Se você deseja construir as ligações Java, [então] passe o
parâmetro "--enable-javahl
" para o
comando "configure".
Além disso, se desejar executar a suíte de teste "Java", [então]
você tem de especificar o local do arquivo "JUnit" adicionando "--with-junit=<caminho para o jar junit>
" (por
exemplo "--with-junit=/usr/local/java/lib/junit-4.13.jar
")
para o "configure". O
arquivo "jar" do "JUnit" não mais está incluído em "apache-ant-1.10.14" e precisa ser baixado
separadamente. Para construir as ligações "Java", emita o seguinte
comando:
make -j1 javahl
Se tu desejar compilar ligações "Perl", "Python" ou "Ruby", [então] emita algum dos seguintes
comandos:
make swig-pl # para Perl
make swig-py \
swig_pydir=/usr/lib/python3.12/site-packages/libsvn \
swig_pydir_extra=/usr/lib/python3.12/site-packages/svn # para Python
make swig-rb # para Ruby
Para testar os resultados, emita: make check. Quatro testes nas
suítes commit_tests.py
, prop_tests.py
e update_tests.py
são conhecidos por falharem.
Devido às mudanças no Python-3.12, você pode esperar ver cerca de
200 avisos de sintaxe durante a suíte de teste devido a sequências
inválidas de escape.
Para testar os resultados de quaisquer das ligações "SWIG", você pode usar algum dos seguintes
comandos: "make
check-swig-pl", "make
check-swig-py" ou "make check-swig-rb".
Agora, como o(a) usuário(a) 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
Se você construiu as ligações "Java", [então] emita o seguinte
comando como o(a) usuário(a) "root
"
para instalá-las:
make install-javahl
Se você construiu as ligações "Perl", "Python" ou "Ruby", [então] emita algum dos seguintes
comandos como o(a) usuário(a) "root
" para instalá-las:
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
As ligações "Java" precisam ser instaladas para a finalidade de que
os testes executem, pois os testes tentam procurá-las em
"CLASSPATH". Para testar os resultados da construção de ligações
"Java", emita "LANG=C make
check-javahl".
Explicações do Comando
--disable-static
: Essa
chave impede a instalação das versões estáticas das bibliotecas.
--with-apache-libexecdir
:
Se o "Apache-2.4.58" estiver instalado, [então] os
módulos compartilhados do "Apache"
serão construídos. Essa chave permite ter esses módulos instalados
no diretório configurado de módulo do "Apache" em vez do "/usr/libexec
". Ela não tem efeito se o
"Apache" não estiver instalado.
--with-lz4=internal
--with-utf8proc=internal
:
Remova essas chaves se você tiver instalado as dependências
opcionais.
--enable-javahl
: habilita a compilação
de ligações de alto nível "Java". Executar "make javahl" é necessário para
fazer a compilação.
--with-junit=<local do arquivo "jar" do
"JUnit">
: dá o local do "jar" do "JUnit"; caso contrário,
os testes "javahl" não poderão ser executados.
--disable-gmock
: Não use a estrutura de
testes "Googlemock".