Debian

使用 git-dpm 來管理 Debian package中的 patch – 新增 Debian 套件

之前管理/ 使用 Debian package 中的 patches 都是直接操作 quilt 為主, 但經由 ChangZhuo 告知, 可使用 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: 解開上一步的壓縮檔並進入資料夾
4: 將目前檔案加到 git 中, 送出 commit 並切換 branch 到 “upstream”

[code language=”bash”]
git add .
git commit -m "Import <PACKAGENAME>_<UPSTREAM VERSION>.orig.tar.gz"
git checkout -b upstream
[/code]

5: 使用 pristine tar 來儲存 tar 相關資料

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

6: 告訴 git-dpm 有關 upstream tarball 的位置

[code language=”bash”]
git-dpm init ../<PACKAGENAME>_<UPSTREAM VERSION>.orig.tar.gz
[/code]

 

7: 設定 git-dpm tag 格式, 以 / 來做分隔符號

編輯 debian/.git-dpm, 在後面加入.

[code language=”bash”]
debianTag="debian/%e%v"
patchedTag="patched/%e%v"
upstreamTag="upstream/%e%u"
[/code]

 

8: 開始設定並編輯 debian/ 目錄相關資料

ex: debian/control, debian/changelog 等等

 

9: 將 debian/ 加入 git 中並送出 commit

[code language=”bash”]
git add debian
git commit -m "Initial packaging"
[/code]

 

10: 使用 checkout-patched 指令切換 branch 並開始修改 upstream 的檔案, 最後送出 commit 並 update patch. 此時 git-dpm 會自動將 git commit 轉成 patch 並存放在 debian/patches 中

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

 

11: 更新 debian/changelog

[code language=”bash”]
dch "fix … (Closes: num)"
git commit –amend -a
[/code]

 

12: 確認 git-dpm status

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

 

13: 確認套件可正常構建

[code language=”bash”]
debuild
[/code]

 

14: 幫 git-dpm 打 tag

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

 

15: 將修改結果 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

 

One thought on “使用 git-dpm 來管理 Debian package中的 patch – 新增 Debian 套件

發表迴響