pgn-extractのパッケージを作成する

pgn-extractのパッケージを作成する

最新バージョンのインストール用パッケージを作成したいpgn 抽出アーカイブをダウンロードしpgn-extract.tgzて解凍しました。しかし、パッケージを構築するという概念についての経験がないので、それ以上自分で考えることはできません。

答え1

最も簡単な方法(「最も簡単」という値については)は、既存のpgn-extractパッケージそれをベースに使います:

  1. 現在のソースをダウンロード:

    wget ftp://ftp.cs.kent.ac.uk/pub/djb/pgn-extract/pgn-extract.tgz
    
  2. 抽出します:

    tar xf pgn-extract.tgz
    
  3. バージョン番号を確認します。

    grep Version pgn-extract/index.html
    

    (私は「17-38」を取得しましたので、以下の説明ではそれを使用します。より新しいバージョンをお持ちの場合は、「17」と「38」を適切に置き換えてください)

  4. tarball を Debian ビルド ツールが期待する「.orig」tarball にリンクします。

    ln -s pgn-extract.tgz pgn-extract_17.38.orig.tar.gz
    
  5. ソース パッケージをダウンロードして解凍します。

    apt-get source pgn-extract
    
  6. 既存のdebianディレクトリをソース ディレクトリにコピーしますpgn-extract

    cd pgn-extract
    cp -a ../pgn-extract-17.21/debian .
    
  7. あなたのバージョンの変更履歴エントリを追加します。

    dch -v 17.38-0.1 "New upstream release."
    
  8. 新しいパッケージをビルドします。ここでエラーが発生した場合は、パッケージを適切に修正して、もう一度試してください。

    dpkg-buildpackage -us -uc
    

私の場合は、修正する必要がありましたmakefile.patch。これは、ビルドの開始時にコードを修正するときにエラーとして表示されました。

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

これを修正するために、私は次のように進めました。

  1. パッチを強制適用します:

    export QUILT_PATCHES="debian/patches"
    quilt push -f
    
  2. の拒否をチェックアウトしMakefile.rej、エディターを使用して手動で適用します。 の現在のバージョンではpgn-extract、次のようになります。

    1. 線を探す# AIX 3.2 Users might like these alternatives

    2. その言葉のすぐ上の行を見つけてくださいCC=gcc

    3. その上の という行を削除し-O3\前の行の末尾の を に置き換えます$(CPPFLAGS)。行全体は次のようになります。

             -I/usr/local/lib/ansi-include -std=c99 $(CPPFLAGS)
      
  3. パッチを更新します:

    quilt refresh
    
  4. ビルドを再度実行します。

抽出した Debian ソース パッケージから開始して、 を使用し、uscan最新の tarball をダウンロードして処理することもできますが、興味があれば調べてみてください。

関連情報