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. Debian ビルドツールで予想される ".orig" tarball に 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をダウンロードして処理することもできますが、興味があれば見てみましょう。

おすすめ記事