如何制作Debian OpenERP软件包,或对现有软件包进行反向工程?

时间:2013-01-01 05:35:07

标签: debian openerp

我想构建我自己的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是如何构建他们的软件包的(我怀疑它不公开),有没有关于如何从提供的二进制包中提取有用的包装位并在我自己中重复使用它们的想法?我发现的一些软件包反汇编指令只涉及源包。

2 个答案:

答案 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-serveropenobject-addonsopenerp-web的包装,以便单独包装,但我认为这种包装非常复杂,反映了我的基本知识。欢迎改进。

所有这些更改以及我为本地版本所做的一些功能调整都包含在my recipes on launchpadbuilt in this PPA中。