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 adequadamente
usando uma plataforma LFS 11.3.
Informação do Pacote
-
Transferência (HTTP):
https://archive.apache.org/dist/subversion/subversion-1.14.2.tar.bz2
-
Transferência (FTP):
-
Soma de verificação MD5 da transferência:
9927b167d1c67d663ca63125907f6f69
-
Tamanho da transferência: 8,3 MB
-
Espaço em disco estimado exigido: 208 MB (adicionar 228 MB
para ligações, 52 MB para documentos e 1,3 GB para os testes)
-
Tempo de construção estimado: 0,5 UPC (Usando paralelismo=4;
adicionar 1,9 UPC para ligações e 35 UPC para os testes)
Dependências do “Subversion”
Exigidas
Apr-Util-1.6.3 e SQLite-3.40.1
Recomendadas
Serf-1.3.9 (para manusear "URLs" "http://" e
"https://")
Opcionais
Apache-2.4.55, Boost-1.81.0, Cyrus
SASL-2.1.28, dbus-1.14.6, Doxygen-1.9.6 (para gerar documentação
"HTML"), gnome-keyring-42.1, libsecret-0.20.5, Py3c-1.4 (para as
ligações "Python" e testes), Python-2.7.18 (com suporte "sqlite" para
os testes), Ruby-3.2.1, SWIG-4.1.1 (para construir ligações "Perl",
"Python" e "Ruby"), LZ4 e UTF8proc
Opcionais (para as ligações “Java”)
Um de OpenJDK-19.0.2, Dante ou Jikes; JUnit 4 (para testar as ligações
"Java") e apache-ant-1.10.13.
Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/subversion
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":
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.9.6" 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.13" 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.11/site-packages/libsvn \
swig_pydir_extra=/usr/lib/python3.11/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.
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.2 &&
cp -v -R doc/* /usr/share/doc/subversion-1.14.2
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.11/site-packages/libsvn \
swig_pydir_extra=/usr/lib/python3.11/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.55" 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".