目标:我想创建一个经过修改的Debian源码包,即官方的rrdtool package +“一些改动”。这些更改之一是添加了可执行脚本。
我有多年使用补丁程序的秘诀:
dget http://bla/bla/bla.dsc
cd bla-1.0
(hack hack hack...)
dpkg-source -b .
如果补丁程序不修改任何文件,但使用引入了可执行文件的补丁程序,则该方法有效,按照上面的配方会产生以下消息:
dpkg-source: warning: executable mode 0755 of 'foobar' will not be represented in diff
可以肯定的是,当我解压缩新的源程序包foobar
时,该程序包是可执行的。
据我了解,被子基于GNU diff + patch处理补丁。 GNU diff + patch不处理文件权限。嗯...
那么如何将可执行脚本引入被子维护的源程序包中?
Googling并没有帮助。似乎其他人已经问过,但没有答复。
我知道我可以简单地对*.orig.tar.gz
存档进行修改,但是我想尽可能避免这样做。我只是感到惊讶,这是如此困难...
答案 0 :(得分:0)
与涉及Debian打包的大多数事情一样,我相信人们很可能会采用几种方法来实现您的目标。因为我仍然是该过程的新手,所以我建议的那个人相当不雅,但是也很容易实现。
Debian Maintainers' Guide告诉我们debian/install
文件...
每个文件安装一行,名称为 文件(相对于顶层构建目录),然后是空格,然后是 安装目录(相对于安装目录)。一 例如,是否使用了二进制src / bar 已卸载;安装文件可能如下所示:
src/bar usr/bin
这意味着在安装此软件包后, 成为可执行命令/ usr / bin / bar。
这使我认为,如果您为被子补丁生成的软件包的新可执行脚本创建了一个debian/install
文件,请列出其相对于构建目录根目录和您希望其驻留的bindir的路径,您将按照需要执行该程序包。
另一种方法可能是利用DMM this section中概述的postinst脚本。