Dpkg

創建 pgn-extract 包

  • April 21, 2017

我想創建一個包來安裝最新版本的pgn-extract。我下載pgn-extract.tgz並解壓縮了存檔。但我自己也想不通,因為我對建構包的概念沒有經驗。

最簡單的方法(對於“最簡單”的一些價值)是下載現有的pgn-extract並將其用作基礎:

  1. 下載目前源:
wget ftp://ftp.cs.kent.ac.uk/pub/djb/pgn-extract/pgn-extract.tgz
  1. 提取它:
tar xf pgn-extract.tgz
  1. 確定版本號:
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
  1. 下載源碼包並解壓:
apt-get source pgn-extract
  1. 將現有debian目錄複製到您的pgn-extract源目錄中:
cd pgn-extract
cp -a ../pgn-extract-17.21/debian .
  1. 為您的版本添加更改日誌條目,例如
dch -v 17.38-0.1 "New upstream release."
  1. 建構新包;如果此處出現錯誤,請酌情修復包裝,然後重試:
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
  1. 檢查拒絕Makefile.rej並使用編輯器手動應用它們;使用目前版本pgn-extract,這意味著:

  2. 尋找線# AIX 3.2 Users might like these alternatives

  3. 找到那句話上方的那一行CC=gcc

  4. 在此之上,刪除說 的行,並將上一行末尾的-O3替換為,因此整行結束為\``$(CPPFLAGS)

       -I/usr/local/lib/ansi-include -std=c99 $(CPPFLAGS)
3. 刷新更新檔:

quilt refresh

4. 再次執行建構。


您也可以從提取的 Debian 原始碼包開始,並使用它`uscan`來下載和處理最新的 tarball,但如果您有興趣,我會讓您進行調查。

引用自:https://unix.stackexchange.com/questions/359332