2013-01-01 20 views
0

我想建立自己的Debian包,類似於從http://nightly.openerp.com/可用的包,但來自我自己的分支。我看到openobject服務器有一個debian /目錄,但似乎並不那麼簡單:如何製作Debian OpenERP軟件包或對現有軟件包進行逆向工程?

~/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 nightly builds包含這些項目。有沒有更容易的方法來重現這種包裝,或者我是否必須從頭開始重新包裝所有東西?

編輯:

因爲似乎沒有人知道的OpenERP是如何建設自己的包(我懷疑這是不是公共的),在那裏我可以從所提供的二進制軟件包中提取有用的包裝位的任何想法並重新使用它們在我自己的?我發現的一些反彙編指令只涉及源代碼包。

+0

嘗試安裝'fakeroot'並將'-rfakeroot'添加到命令行? – tripleee

+0

我試圖通過bzr-builder來完成這個,它有自己的問題。請參見[如何將幾個分支嵌套在bzr-builder配方中的同一目錄中?](http://askubuntu.com/questions/235370/how-can-several-branches-be-nested-in-the-same -directory-in-a-bzr-builder-recipe) –

回答

1

是OpenERP的SA使用爲每晚的代碼生成是有關LaunchPad作爲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-addonsopenerp-web分開包裝,雖然我會認爲這個包裝非常kludgy,反映了我的基本知識。改進歡迎。

所有這些更改以及我爲本地版本所做的一些功能調整都已納入my recipes on launchpadbuilt in this PPA

1

按照dh_installchangelogs手冊頁,你可以使用-X--exclude標記來排除上游更新日誌:

-X項目,--exclude =項目
排除上游的changelog文件包含其文件名中任何位置的項目。

如果這是真的與你的構建是唯一的問題,只是添加到dh_insallchangelogsdebian/rules

dh_installchangelogs -X./history 
+0

謝謝,這很有幫助。然而,它不能幫助我重現官方OpenERP軟件包中的所有功能。再看看,我看到它不僅包含了三個項目(服務器,插件和Web模塊),還安裝了init.d腳本,創建用戶以及其他一些內容。我開始懷疑,無論出於何種原因,OpenERP SA都希望保持其包裝方法的祕密。 –

相關問題