FreeBSD ports send-pr 初體驗


剛好在實驗室有幾個 library 很常用,不外乎 jrtplib, ortp, osip, eXosip。可是 ports 裡的 jrtplib 是 3.1.0,大概是 2004 年的版本,所以我就想來試試看吧,把他送進 ports 之後,要升級或者是移除都方便許多……

所以我先找到 chinsan 長輩在 tw.bbs.comp.386bsd 發表的這篇,也參考了一下 FreeBSD Porter’s Handbook,還有 rafanclsung 長輩的文章。

我的流程大概是這樣:

ports 施工:

# fetch -o /usr/ports/distfiles source-url
# cd /usr/ports/
# cp -r port-name port-name.orig
# vim Makefile
# vim pkg-desc
# make makesum
# 不幸的話,在 files 裡面加入 patch 檔

產生 pkg-plist,你可以參考 Automated package list creation

# mkdir /var/tmp/port-name
# mtree -U -f /etc/mtree/BSD.local.dist -d -e -p /var/tmp/port-name
# make depends PREFIX=/var/tmp/port-name
# make install PREFIX=/var/tmp/port-name
# (cd /var/tmp/port-name && find -d * \! -type d) | sort > pkg-plist

# vim pkg-plist
(不見得他產生的東西都會正確,例如:有時候你會希望用變數取代絕對路徑、有時候你想把某些東西拔掉)

施工完成的測試:

FreeBSD Porter’s Handbook 的建議順序:

1. make install
2. make package
3. make deinstall
4. pkg_add package-name
5. make deinstall
6 .make reinstall
7. make package

除此外,你可以用 devel/portlint 來做測試。

send-pr:

我這邊是偷懶用 devel/porttools 來送。porttools 裝好之後,還是不外乎用 port test 測試看看,port diff 看一下結果,如果都沒有問題的話,就直接用 port sumbit 送出去了。那些欄位的要求,我想 chinsan 長輩的文件寫得很清楚歐 :p

你可以編輯 .porttools 方便你用 devel/porttools 處理 port。

EMAIL=”foo@bar.com”
FULLNAME=”Yi-Huan Chan”
ORGANIZATION=””
BUILDROOT=”/tmp”
ARCHIVE_DIR=””
DIFF_MODE=”.orig”
DIFF_VIEWER=”more”
PORTLINT_FLAGS=”abct”

你可以發現我的 DIFF_MODE 設定為 “.orig”,那也和我一開始取名的方式有關,你可以依照自己的需求改變這個參數。

port submit 之後就等著去信箱領取號碼牌了,像是我之前處理的某兩個……

http://www.freebsd.org/cgi/query-pr.cgi?pr=95461
http://www.freebsd.org/cgi/query-pr.cgi?pr=95534

然後看有沒有好心人幫你送上去,處理完之後,你就可以看到你處理過的 port 出現在 ports tree 裡面了。

特別感謝:廖長輩 剛好在 osdc.tw 學到不少,也感謝他幫我送 jrtplib 進 ports :p


3 responses to “FreeBSD ports send-pr 初體驗”

Leave a Reply

Your email address will not be published. Required fields are marked *