Subversion-1.14.2

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

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".

Configurando o Subversion

Arquivos de Configuração

~/.subversion/config e /etc/subversion/config

Informação de Configuração

/etc/subversion/config é o arquivo de configuração do "Subversion" abrangente ao sistema. Esse arquivo é usado para especificar padrões para diferentes comandos "svn".

~/.subversion/config é o arquivo de configuração pessoal do(a) usuário(a). Ele é usado para substituir os padrões de todo o sistema configurados em "/etc/subversion/config".

Conteúdo

Aplicativos Instalados: svn, svnadmin, svnbench, svndumpfilter, svnfsfs, svnlook, svnmucc, svnrdump, svnserve, svnsync e svnversion
Bibliotecas Instaladas: "libsvn_*-1.so" e, opcionalmente, uma biblioteca "Java"; os módulos "DSO" "mod_dav_svn.so" e "mod_authz_svn.so" do "Apache HTTP" e vários módulos "Perl", "Python" e "Ruby".
Diretórios Instalados: /usr/include/subversion-1, /usr/lib/perl5/site_perl/5.36/{,auto/}SVN, /usr/lib/python3.11/site-packages/{libsvn,svn}, /usr/lib/ruby/site_ruby/<x.y.z>/{,<arch-linux>-linux/}svn, /usr/lib/svn-javahl e /usr/share/doc/subversion-1.14.2

Descrições Curtas

svn

é um aplicativo cliente de linha de comando usado para acessar repositórios do "Subversion"

svnadmin

é uma ferramenta para criar, ajustar ou reparar um repositório "Subversion"

svnbench

é uma ferramenta de avaliação comparativa

svndumpfilter

é um aplicativo para filtrar fluxos de formato de arquivo de despejo do repositório "Subversion"

svnfsfs

é a ferramenta de manipulação de repositório "FSFS" ("FileSystem sobre o FileSystem" - implementação do sistema de arquivos do "Subversion")

svnlook

é uma ferramenta para inspecionar um repositório "Subversion"

svnmucc

é um cliente de comando de múltiplas "URLs" para o "Subversion"

svnrdump

é uma ferramenta para despejar ou carregar um repositório remoto do "Subversion"

svnserve

é um aplicativo servidor independente personalizado, capaz de executar como um processo de segundo plano ou invocado por "SSH"

svnsync

é uma ferramenta de sincronização de repositório "Subversion"

svnversion

é usado para informar o número da versão e o estado de uma cópia funcional do repositório "Subversion"

libsvn_*-1.so

são as bibliotecas de suporte usadas pelos aplicativos do "Subversion"

mod_authz_svn.so

é um módulo "plug-in" para o servidor "HTTP" "Apache", usado para autenticar usuários(as) em um repositório "Subversion" por intermédio da Internet ou na intranet

mod_dav_svn.so

é um módulo "plug-in" para o servidor "HTTP" "Apache", usado para disponibilizar um repositório "Subversion" para outros(as) por intermédio da Internet ou de uma intranet