Paket von pgn-extract erstellen

Paket von pgn-extract erstellen

Ich möchte ein Paket zur Installation der neuesten Version vonpgn-Extrakt. Ich habe pgn-extract.tgzdas Archiv heruntergeladen und entpackt. Aber weiter kann ich mir das nicht vorstellen, da ich keinerlei Erfahrung mit der Konzeption von Paketen habe.

Antwort1

Der einfachste Weg (für einige Werte von „am einfachsten“) besteht darin, die vorhandenepgn-extractPaketund verwenden Sie das als Grundlage:

  1. Laden Sie die aktuelle Quelle herunter:

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

    tar xf pgn-extract.tgz
    
  3. Ermitteln Sie die Versionsnummer:

    grep Version pgn-extract/index.html
    

    (Ich erhalte „17-38“ und werde das in den folgenden Anweisungen verwenden. Wenn Sie eine neuere Version haben, ersetzen Sie „17“ und „38“ entsprechend.)

  4. Verknüpfen Sie das Tarball mit dem „.orig“-Tarball, das die Debian-Build-Tools erwarten:

    ln -s pgn-extract.tgz pgn-extract_17.38.orig.tar.gz
    
  5. Laden Sie das Quellpaket herunter und extrahieren Sie es:

    apt-get source pgn-extract
    
  6. Kopieren Sie das vorhandene debianVerzeichnis in Ihr pgn-extractQuellverzeichnis:

    cd pgn-extract
    cp -a ../pgn-extract-17.21/debian .
    
  7. Fügen Sie einen Changelog-Eintrag für Ihre Version hinzu, etwa wie

    dch -v 17.38-0.1 "New upstream release."
    
  8. Bauen Sie das neue Paket; wenn hierbei Fehler auftreten, beheben Sie die Paketierung entsprechend und versuchen Sie es erneut:

    dpkg-buildpackage -us -uc
    

In meinem Fall musste ich Folgendes beheben makefile.patch; dies zeigte sich als Fehler beim Patchen des Codes zu Beginn des Builds:

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

Um dies zu beheben, bin ich wie folgt vorgegangen:

  1. Erzwingen Sie die Anwendung des Patches:

    export QUILT_PATCHES="debian/patches"
    quilt push -f
    
  2. Auschecken der Ablehnungen in Makefile.rejund manuelles Anwenden mithilfe eines Editors; mit der aktuellen Version von pgn-extractbedeutet das:

    1. Suche nach der Linie# AIX 3.2 Users might like these alternatives

    2. finde die Zeile direkt über diesem SpruchCC=gcc

    3. Löschen Sie darüber die Zeile mit dem Text -O3und ersetzen Sie das \am Ende der vorherigen Zeile durch $(CPPFLAGS), so dass die gesamte Zeile wie folgt endet:

             -I/usr/local/lib/ansi-include -std=c99 $(CPPFLAGS)
      
  3. Aktualisieren Sie den Patch:

    quilt refresh
    
  4. Führen Sie den Build erneut aus.

Sie können auch mit dem extrahierten Debian-Quellpaket beginnen und es verwenden, uscanum das neueste Tarball herunterzuladen und zu verarbeiten. Falls Sie daran interessiert sind, überlasse ich es Ihnen, dies selbst zu untersuchen.

verwandte Informationen