创建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,但如果您有兴趣,我会让您研究一下。

相关内容