debhelper弃用了选项--until?

时间:2013-02-26 00:29:30

标签: debian packaging buildbot

在buildbot上构建软件包时,我目前只有一个构建步骤

dpkg-buildpackage ...

这很好用,但所有输出都集中在瀑布中的一个步骤中,这使得很难一眼就看出失败是在配置期间,构建期间还是打包期间。所以我想要一种更精细的构建方式。

碰巧我知道我想用dh构建的所有软件包。这意味着我可以配置,构建,测试和打包构建步骤,每个构建步骤都运行以下命令之一:

dh build --until dh_auto_configure
dh build --until dh_auto_build
dh build --until dh_auto_test
dpkg-buildpackage -nc ...

(我使用dh调用这些,所以它可以在包使用any时进行覆盖。我不希望buildbot必须知道有问题的包是否使用覆盖。)

到目前为止,这么好。问题是,dh不希望我使用--until选项。它说

“dh:不推荐使用--until选项。请改用覆盖目标。”

这让我感到难过......听起来像dh并不期待这个用例。

所以,现在问题:

这些事情应该在哪里讨论?

dh是否实际上以其他方式处理我的用例,我只是错过了备忘录?

1 个答案:

答案 0 :(得分:0)

dh这可能不是一个好工作。它通常只是意味着从debian/rules makefile中使用。 --until方法可能对您来说很成问题,即使它没有被弃用。

但是,通过采用dpkg-buildpackage在您自己的脚本中执行的所有步骤来拆分构建过程(联机帮助页顶部的摘要应该告诉您所有内容)需要)。

但即便如此,也不一定会让您拆分流程的configurebuild部分。 debian/rulesdpkg-buildpackage个文件不是required来分隔这些步骤,也不是让用户这么简单。很多人都这样做,有些则没有。

我的建议是让-nc在每个阶段尽可能地做,以避免弄乱构建环境,依赖性检查,树准备,fakeroot调用等某些细微的东西。只需在第一阶段之后通过dh,以避免清理树并重新开始。 build*足够智能,当阶段重叠时(如binary*set -e # check build deps, clean tree, make source debs dpkg-buildpackage -S -us -uc if grep '^configure:' debian/rules; then debian/rules configure elif grep '^override_dh_auto_configure:' debian/rules; then debian/rules override_dh_auto_configure elif grep '^%:' debian/rules; then dh_auto_configure else : # oh well, it'll get done during the build phase if necessary fi # prepare environment, perform build dpkg-buildpackage -nc -T build # install stuff into temp dir, tar it up, make the deb file dpkg-buildpackage -nc -b -us -uc # remake the changes file, if you care, since right now it only # includes the binaries dpkg-genchanges > ../$whatever.changes ),跳过您已经完成的部分。

您可以使用以下内容获得大多数软件包的正确配置/构建分离:

{{1}}

至少,应该总是制作正确的包裹。