我已经为我编写的一个软件提供了 Debian 打包。该软件可能过于专业,无法成为 Debian 的一部分。无论如何,目前我还没有计划尝试将其包含在 Debian 中。但是,我想尽可能遵循最佳实践。
目前,Debian 软件包与软件位于同一个 Mercurial 存储库中,位于子目录 debian/ 中。我想知道是否应该将其放在单独的存储库中。此外,目前该软件包正在构建为 Debian 本机软件包,这并不合适。我想我可以添加一个 get-orig-source 目标来构建 orig tarball 规则,但是从本地存储库构建 orig.tar.gz 文件是否可以,或者是否有必要从远程获取它?如果是前者,是否有任何推荐的方法,例如将存储库的位置传递到 get-orig-source 目标?
有人向我建议,也许我可以将 debian 目录放在与实际软件不同的(可能是命名的)分支中,并在构建时将它们合并在一起。这仍然留下了如何使用 .tar.gz 获取 orig.tar.gz 的问题get-orig-source
。
答案1
debian/
正如您所提到的,在单独的分支(不一定是存储库)中是一个很好的做法。如果其他人想要将您的软件打包到另一个发行版或像您一样以其他方式打包,那么如果他们debian/
默认获得您的文件夹,这对他们来说会很烦人。
一般来说get-orig-source
,如果没有可用的上游 tarball 或者您因任何原因(版权、未使用的文件等)需要修改它们,则建议使用。因此,如果您发布软件的 tarball,则不需要get-orig-source
.
由于目标没有通用的解决方案get-orig-source
,我建议您查看现有的解决方案(例如github)。
他们通常使用类似的方法hg archive -X ".hg* ../packagename_$VERSION.orig.tar.gz
来构建 tarball 并dpkg-parsechangelog
从debian/changelog
.
对于包装,我推荐你mercurial-buildpackage
。例如,它的工具允许在单独的分支中维护原始压缩包。