Criar pacote de extrato pgn

Criar pacote de extrato pgn

Quero criar um pacote para instalação da versão mais recente doextrato pgn. Baixei pgn-extract.tgze descompactei o arquivo. Mas não consigo pensar mais, porque não tenho experiência no conceito de construção de pacotes.

Responder1

A maneira mais fácil (para algum valor de “mais fácil”) de fazer isso é baixar o arquivo existentepgn-extractpacotee use isso como base:

  1. baixe a fonte atual:

    wget ftp://ftp.cs.kent.ac.uk/pub/djb/pgn-extract/pgn-extract.tgz
    
  2. extraia-o:

    tar xf pgn-extract.tgz
    
  3. determine o número da versão:

    grep Version pgn-extract/index.html
    

    (Eu recebo “17-38”, então usarei isso nas instruções a seguir; se você tiver uma versão posterior, substitua “17” e “38” conforme apropriado)

  4. vincule o tarball ao tarball “.orig” que as ferramentas de construção do Debian esperarão:

    ln -s pgn-extract.tgz pgn-extract_17.38.orig.tar.gz
    
  5. baixe o pacote fonte e extraia-o:

    apt-get source pgn-extract
    
  6. copie o diretório existente debianem seu pgn-extractdiretório de origem:

    cd pgn-extract
    cp -a ../pgn-extract-17.21/debian .
    
  7. adicione uma entrada de changelog para sua versão, algo como

    dch -v 17.38-0.1 "New upstream release."
    
  8. construir o novo pacote; se ocorrerem erros aqui, corrija a embalagem conforme apropriado e tente novamente:

    dpkg-buildpackage -us -uc
    

No meu caso, tive que consertar makefile.patch; isso apareceu como um erro ao corrigir o código no início da compilação:

dpkg-source: info: using source format '3.0 (quilt)'
dpkg-source: info: building pgn-extract using existing ./pgn-extract_17.38.orig.tar.gz
patching file Makefile
Hunk #1 FAILED at 37.
Hunk #2 succeeded at 48 (offset 1 line).
1 out of 2 hunks FAILED
dpkg-source: info: the patch has fuzz which is not allowed, or is malformed
dpkg-source: info: if patch 'makefile.patch' is correctly applied by quilt, use 'quilt refresh' to update it
dpkg-source: error: LC_ALL=C patch -t -F 0 -N -p1 -u -V never -E -b -B .pc/makefile.patch/ --reject-file=- < pgn-extract.orig.ltAFev/debian/patches/makefile.patch gave error exit status 1
dpkg-buildpackage: error: dpkg-source -b pgn-extract gave error exit status 2

Para corrigir isso, procedi da seguinte forma:

  1. forçar a aplicação do patch:

    export QUILT_PATCHES="debian/patches"
    quilt push -f
    
  2. confira as rejeições Makefile.reje aplique-as manualmente usando um editor; com a versão atual do pgn-extract, isso significa:

    1. procure a linha# AIX 3.2 Users might like these alternatives

    2. encontre a linha logo acima desse ditadoCC=gcc

    3. acima disso, exclua a linha que diz -O3e substitua o \no final da linha anterior por $(CPPFLAGS), para que toda a linha termine como

             -I/usr/local/lib/ansi-include -std=c99 $(CPPFLAGS)
      
  3. atualize o patch:

    quilt refresh
    
  4. execute a compilação novamente.

Você também pode começar a partir do pacote fonte Debian extraído e usá-lo uscanpara baixar e processar o tarball mais recente, mas deixarei você investigar isso se estiver interessado.

informação relacionada