Debian

使用 git-dpm 來管理 Debian package中的 patch – 更新/升級 Debian 套件

前一篇文章介紹了如何透過 git-dpm 來新增 Debian 套件. 這一篇文章則是介紹如何在已存在的 Debian 套件中, 使用 git-dpm 的方式來進行更新/升級的動作.

1: 安裝必要套件

[code language=”bash”] apt-get install -y git git-dpm pristine-tar devscripts [/code]

2: 準備好 upstream 的 tarball檔案

並命名為 <PACKAGENAME>_<UPSTREAM VERSION>.orig.tar.gz

  • PACKAGENAME: 為你要打包的套件名
  • UPSTREAM VERSION: 為上游版本號
3: 更新 upstream file
執行下列指令來更新套件原始碼

[code language=”bash”] git-dpm import-new-upstream –rebase ../<PACKAGENAME>_<UPSTREAM VERSION>.orig.tar.gz [/code]

  • 如果 rebase 中間有錯誤, 請一一解決, 處理完執行下列指令, 直到排除所有衝突

[code language=”bash”] git rebase –continue [/code]

最後執行下列指令來更新

[code language=”bash”] git-dpm update-patches [/code]

4: 更新 debian/changelog

[code language=”bash”] dch −v newupstream−1 "New upstream version"
git commit −−amend −a [/code]

5: 修改 debian/* 其他檔案

[code language=”bash”] git-dpm checkout-patched
vi …
git commit
git-dpm update-patches [/code]

6: 更新 pristine 檔案

[code language=”bash”] pristine-tar commit ../<PACKAGENAME>_<UPSTREAM VERSION>.orig.tar.gz upstream [/code]

7: 確認 git-dpm status

[code language=”bash”] git-dpm status [/code]

8: 確認套件可正常構建後, 幫 git-dpm 打 tag

[code language=”bash”] git-dpm tag [/code]

9: 將修改結果 push 回去

[code language=”bash”]
git push –tags origin upstream:upstream pristine-tar:pristine-tar master
[/code]

ref:

[1]: http://git-dpm.alioth.debian.org/examples.html#newupstream

[2]: https://anonscm.debian.org/git/collab-maint/cppman.git/

[3]: http://git-dpm.alioth.debian.org/git-dpm-debconf13.pdf

發表迴響