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