如何修改Debian源码包以包括其他可执行脚本?

时间:2019-01-04 01:08:58

标签: debian packaging dpkg debhelper quilt

目标:我想创建一个经过修改的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存档进行修改,但是我想尽可能避免这样做。我只是感到惊讶,这是如此困难...

1 个答案:

答案 0 :(得分:0)

与涉及Debian打包的大多数事情一样,我相信人们很可能会采用几种方法来实现您的目标。因为我仍然是该过程的新手,所以我建议的那个人相当不雅,但是也很容易实现。

Debian Maintainers' Guide告诉我们debian/install文件...

  

每个文件安装一行,名称为   文件(相对于顶层构建目录),然后是空格,然后是   安装目录(相对于安装目录)。一   例如,是否使用了二进制src / bar   已卸载;安装文件可能如下所示:

src/bar usr/bin

     

这意味着在安装此软件包后,   成为可执行命令/ usr / bin / bar。

这使我认为,如果您为被子补丁生成的软件包的新可执行脚本创建了一个debian/install文件,请列出其相对于构建目录根目录和您希望其驻留的bindir的路径,您将按照需要执行该程序包。

另一种方法可能是利用DMM this section中概述的postinst脚本。