Crear paquete de pgn-extract

Crear paquete de pgn-extract

Quiero crear un paquete para la instalación de la última versión deextracto-pgn. Descargué pgn-extract.tgzy descomprimí el archivo. Pero yo no puedo pensar más porque no tengo experiencia en el concepto de construcción de paquetes.

Respuesta1

La forma más fácil (por algún valor de "más fácil") de hacerlo es descargar el archivo existentepgn-extractpaquetey úsalo como base:

  1. descargar la fuente actual:

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

    tar xf pgn-extract.tgz
    
  3. determinar el número de versión:

    grep Version pgn-extract/index.html
    

    (Me sale "17-38", así que lo usaré en las siguientes instrucciones; si tiene una versión posterior, reemplace "17" y "38" según corresponda)

  4. vincule el tarball al tarball “.orig” que esperarán las herramientas de compilación de Debian:

    ln -s pgn-extract.tgz pgn-extract_17.38.orig.tar.gz
    
  5. descargue el paquete fuente y extráigalo:

    apt-get source pgn-extract
    
  6. copie el directorio existente debianen su pgn-extractdirectorio de origen:

    cd pgn-extract
    cp -a ../pgn-extract-17.21/debian .
    
  7. agregue una entrada de registro de cambios para su versión, algo como

    dch -v 17.38-0.1 "New upstream release."
    
  8. construir el nuevo paquete; Si se producen errores aquí, arregle el embalaje según corresponda y vuelva a intentarlo:

    dpkg-buildpackage -us -uc
    

En mi caso, tuve que arreglarlo makefile.patch; Esto apareció como un error al parchear el código al inicio de la compilación:

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 solucionar este problema, procedí de la siguiente manera:

  1. aplicar el parche a la fuerza:

    export QUILT_PATCHES="debian/patches"
    quilt push -f
    
  2. verifique los rechazos Makefile.rejy aplíquelos manualmente usando un editor; con la versión actual de pgn-extract, eso significa:

    1. busca la linea# AIX 3.2 Users might like these alternatives

    2. Encuentra la línea justo encima de ese dicho.CC=gcc

    3. encima de eso, elimine la línea que dice -O3y reemplace \al final de la línea anterior con $(CPPFLAGS), para que toda la línea termine como

             -I/usr/local/lib/ansi-include -std=c99 $(CPPFLAGS)
      
  3. actualizar el parche:

    quilt refresh
    
  4. ejecute la compilación nuevamente.

También puedes comenzar desde el paquete fuente de Debian extraído y usarlo uscanpara descargar y procesar el archivo tar más reciente, pero te dejaré investigar eso si estás interesado.

información relacionada