0

我想构建自己的 Debian 软件包,类似于http://nightly.openerp.com/提供的软件包,但来自我自己的分支。我看到 openobject-server 有一个 debian/ 目录,但这似乎并不那么简单:

~/openobject-server$ dpkg-buildpackage -us -uc
changing mode of /Network/Servers/xserve.macprofessionals.lan/Volumes/Data/Users/pfrost/openobject-server/7.0/debian/openerp/usr/bin/openerp-server to 755
   dh_install
   dh_installdocs
   dh_installchangelogs
install: omitting directory `./history'
dh_installchangelogs: install -o 0 -g 0 -p -m644 ./history debian/openerp/usr/share/doc/openerp/changelog returned exit code 1
make: *** [binary] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2

如果我删除 ./history,那么我可以构建一个包,并且我认为有更好的方法可以告诉 dh_installchangelogs 真正的变更日志在哪里,这样 ./history/ 就不会混淆它。

即便如此,像这样的打包不包括 openobject-addons 和 openerp-web 项目,它们没有被 debianized,但 openerp.com 每晚构建确实包括在内。有没有更简单的方法来复制该包装,或者我只需从头开始重新包装所有东西?

编辑:

由于似乎没有人知道 OpenERP 是如何构建他们的包的(我怀疑它不是公开的),有没有关于如何从提供的二进制包中提取有用的打包位并在我自己的情况下重新使用它们的想法?我发现的几个包反汇编指令只涉及源包。

4

2 回答 2

1

根据dh_installchangelogs手册页,您可以使用-Xor--exclude标志排除上游变更日志:

-X item, --exclude =item
不安装文件名中任何位置包含项目的上游变更日志文件。

如果这确实是您构建的唯一问题,只需将其添加到以下dh_insallchangelogsdebian/rules

    dh_installchangelogs -X./history
于 2013-01-01T09:39:04.590 回答
1

OpenERP SA 用于夜间构建的代码位于启动板上,作为openerp-tools包的一部分。具体来说,这里是7.0 的明显相关文件。它有效地做到了这一点:

bzr 导出 lp:~openerp/openobject-server/7.0 服务器
bzr 导出 lp:~openerp/openobject-addons/7.0 插件
bzr 导出 lp:~openerp/openerp-web/7.0 web
mv 插件/* 服务器/openerp/插件/
mv web/addons/* 服务器/openerp/addons
光盘服务器
dpkg-buildpackage

感谢 Antony Lesuisse 在这个有用的邮件列表帖子中提供此信息。

我发现了一些对适当构建所需的包装的修复。我已经修复了构建依赖项,以便包将在一个干净的环境中构建,比如 pbuilder。我还合并了 Flimzy 建议的修复程序。此外,我还解决了一些 lintian 警告。我还为openobject-serveropenobject-addonsopenerp-web 开发了单独打包的打包,虽然我认为这个打包非常笨拙,这反映了我非常基础的知识。欢迎改进。

所有这些更改,以及我为本地版本所做的一些功能调整,都已合并到我在启动板上的食谱中,内置在此 PPA中。

于 2013-01-04T11:45:47.903 回答