我想构建我自己的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项目,这些项目没有被debian化,但是openerp.com每晚构建都包括。是否有更简单的方法来重现该包装,或者我只需要从头开始重新包装所有内容?
修改
由于似乎没有人知道OpenERP是如何构建他们的软件包的(我怀疑它不公开),有没有关于如何从提供的二进制包中提取有用的包装位并在我自己中重复使用它们的想法?我发现的一些软件包反汇编指令只涉及源包。
答案 0 :(得分:1)
根据dh_installchangelogs
手册页,您可以使用-X
或--exclude
标记来排除上游更改日志:
-X 项目, - 排除 =项目
排除包含其文件名中任何位置的项目的上游更改日志文件。
如果这是您构建的唯一问题,只需将其添加到dh_insallchangelogs
中的debian/rules
行:
dh_installchangelogs -X./history
答案 1 :(得分:1)
OpenERP SA用于夜间构建的代码在启动板上作为openerp-tools包的一部分。具体来说,这是the apparent relevant file for 7.0。它确实有效:
bzr export lp:~openerp/openobject-server/7.0 server bzr export lp:~openerp/openobject-addons/7.0 addons bzr export lp:~openerp/openerp-web/7.0 web mv addons/* server/openerp/addons/ mv web/addons/* server/openerp/addons cd server dpkg-buildpackage
感谢Antony Lesuisse在this useful mailing list post中提供此信息。
我发现了对于propper构建所必需的包装的一些修复。我fixed the build dependencies所以这个包将在一个干净的环境中构建,比如pbuilder。我也是incorporated the fix suggested by Flimzy。此外,我addressed a number of lintian warnings。我还开发了openobject-server,openobject-addons和openerp-web的包装,以便单独包装,但我认为这种包装非常复杂,反映了我的基本知识。欢迎改进。
所有这些更改以及我为本地版本所做的一些功能调整都包含在my recipes on launchpad和built in this PPA中。