精華區beta FreeBSD 關於我們 聯絡資訊
====== 授權方式 ====== 姓名標示-非商業性-相同方式分享 2.5 (Attribution-NonCommercial-ShareAlike 2.5) http://creativecommons.org/licenses/by-nc-sa/2.5/ ====== 前言 ====== 感謝 nung 大長輩在 MSN 上再次提醒了我的欠稿 XD (本來答應要寫份關於 send-pr 的文件,結果寫的蠻簡陋) 如果沒有他的提醒,我可能一直都沒丟出這份文件.. 此外,再次感謝他對我在 LDAP 上的教導 :) ====== send-pr 簡介 ====== /usr/bin/send-pr 這支 shell script在 *BSD 環境中相當好用,怎麼說呢? 它的應用範圍: 就 ports 而言,可以透過 send-pr 將做好的新 port 、送 patch 或是問題狀況回報總部。 當然囉.. www, docs, i386, ia64 等不同領域的問題也都可以透過 send-pr 來完成。 另外,還有其他方式的 send-pr www介面的 send-pr http://www.freebsd.org/send-pr.html 圖形介面的 send-pr sysutils/gtk-send-pr 當然,也可以複製一份 shell script,然後修改成自己想要的方式。 ====== send-pr 使用 ====== send-pr 會先用你的 $EDITOR 進入PR樣本來編輯,通常會有下面這樣 (略過前面一堆東西,先從 header 介紹起) To: [email protected] From: chinsan <somewhere@earth> Reply-To: chinsan <somewhere@earth> 通常發信的 From 跟 Reply-To 都填一樣就好, 前面是名字,後面先加空白,再把 <> 括號內填入可收信的 e-mail (這裡純舉例,不要真的填 chinsan <somewhere@earth> =.=!) Cc: 如果 port 有 maintainer 的話,則順便這邊填上他的 email 也可以用 send-pr -c 該maintainer的 e-mail X-send-pr-version: 3.113 X-GNATS-Notify: (以下開始進入 send-pr 的 body) >Submitter-Id: current-users >Originator: chinsan ^^^^^^^ 填自己名字或全名。 >Organization: <organization of PR author (multiple lines)> 看要不要填『單位』,有填沒填無所謂 也可以設定 $ORGANIZATION 省得每次填 send-pr 要重填一次 另外, 1. 用 <> 括號括起來的文字都是那欄資料的描述文字, 2. 真正要寫的部分,不要寫在 <> 括號內, <> 括號內的字只是說明給自己看而已 3. <> 括號跟裡面的文字都可以砍掉,或不砍都可以 4. 通常可不可以填多行會有註明 (multiple lines) 而 (one line) 就是只能寫一行。 5. 以下所有出現 <> 括號的地方都是該欄的說明文字, 請不要把字填在 <> 括號內。 >Confidential: no ^^ 通常用 no 就可以了,也就是公開的 註: 除非你找到重大漏洞,在該重大漏洞獲得解決前, 有需要用到"保密",以免他人一起遭殃 >Synopsis: <synopsis of the problem (one line)> 這邊就是該問題報告的『標題』, 標題要下得簡潔有力,並且請填 1 行就好。 似乎很多人都會先看這邊寫什麼,如果亂填一通或是文不對題 那就會被人連看都不看就 close 掉。 通常像是 ports 的話,Synopsis 會以類似下面的命名規則: [性質] 分類/該 port 名稱: 簡潔描述本 PR 內容、目的 性質:通常有 [NEW PORT]、[PATCH]、[UPDATE]、[MAINTAINER]等等 分類:該 port 位於 /usr/ports 內的分類目錄名稱, 比如 gcin 位於 /usr/ports/chinese/gcin , 所以就是 chinese >Severity: 請在 non-critical 或 serious 或 critical 三者選一 看問題嚴重性,通常都是 non-critical, 如果不嚴重卻填很緊急(critical),那就蠻 xxoo... >Priority: 請在 low 或 medium 或 high 三者選一 問題的處理態度是否需要優先或普通或不急慢慢來, 通常無關 security 的小 bug、update 填 low 就好。 >Category: 問題有下面這幾種分類: advocacy, alpha, amd64, bin, conf, docs, gnu, i386, ia64, java, kern, misc, ports, powerpc, sparc64, standards, threads, www 通常 ports 的問題就填 ports 就好, www 類的就填 www。kernel 類的填 kern,自己找適合的問題歸類就好 >Class: <[sw-bug|doc-bug|change-request|update|maintainer-updae]> 以 ports 方面的 PR 為例:ports 的安裝問題通常填 sw-bug 升級 update 新增/移除 change-request port maintainer 自己提的就填 maintainer-update >Release: FreeBSD 4.11-STABLE i386 這邊是 send-pr 自動幫你產生的(uname -rsm),不用改 >Environment: System: FreeBSD bbs.ilc.edu.tw 4.11-STABLE FreeBSD 4.11-STABLE #0: Sat Jan 29 這邊也是會自動抓 uname -a 的訊息, 如果要補充使用環境也可以在這邊填(可多行) >Description: 請精準描述問題狀況,把問題講清楚、說明白,並把相關所有出現的訊息附上 >How-To-Repeat: 這邊附上如何讓問題重新產生(操作程序、執行動作),也可把相關疑似有問題 的程式碼貼出來 >Fix: 如果知道怎麼修正的話,就在這邊可填上說明或程式碼。 不知道就請跳過。 如果有 patch 的話,請用 attatchment 附檔方式, 也就是 send-pr -a 你放patch的地方,這樣 send-pr 的 Fix: 這區 就會幫你弄好了 * * * FreBSD PR 的 feedback 期限是 1 個月 maintainer feedback 期限是 2 週 reply,followup 要順便 CC 給 [email protected] * * * 此外如果不太會傳統的 send-pr 或者機器 policy 不開 MTA 也有網頁式介面 http://www.freebsd.org/send-pr.html 不過若用網頁回報方式,它不會認 TAB 跟 spacing 的區別而都弄成 spacing 如果堅持要用 Web 來送 code 的話,那麼建議先壓成檔案,然後附上可取得該檔的 URL 還有,最下方有個防止惡搞機器人的簡易確認機制。 * * * send-pr 之後就會在你填的 Originator 那欄的 Email Address 收到確認信 會有如下資料,告知 GNAT 已經收到了,而你的 PR 編號為 ports/78996 可以透過信中 URL 來察看狀態 來源: [email protected] 收信: chinsan <[email protected]> 日期: Fri, 18 Mar 2005 20:10:02 GMT 標題: Re: ports/78996: [MAINTAINER] chinese/gcin: update to 0.8.9 Thank you very much for your problem report. It has the internal identification `ports/78996'. The individual assigned to look at your report is: freebsd-ports-bugs. You can access the state of your problem report at any time via this link: http://www.freebsd.org/cgi/query-pr.cgi?pr=78996 >Category: ports >Responsible: freebsd-ports-bugs >Synopsis: [MAINTAINER] chinese/gcin: update to 0.8.9 >Arrival-Date: Fri Mar 18 20:10:02 GMT 2005 ====== send-pr 補充事宜 ====== FreBSD PR 的 feedback 期限是 1 個月 maintainer feedback 期限是 2 週 reply,followup 要順便 CC 給 [email protected] ====== send-pr 的另外一種運用方式 : send-pr + ssmtp ====== 如果機器沒反向DNS解析的話...該怎麼辦呢? 因為垃圾郵件太多,FreeBSD 的 mailing list 主機做了些限制: 一定要從可以做反向DNS解析(具 RDNS record)的機器發出的信才接收。 這部分請參考 dryice 的 send-pr + ssmtp 解法: http://www.douzhe.com/docs/jh/5/231360.html ====== patch檔 跟 new port 的 shar 檔 如何產生? ====== - diff/patch 篇: 大致以 "diff -ruN 舊 新"產生 - shar 的時機: 通常是 new port (要新增port)才會用到的 指令類似: shar `find 該port的目錄 -print` > /path/to/your.shar 我自己作法通常都是像這樣: shar `find dokuwiki -print` > ~/dokuwiki.shar send-pr -a ~/dokuwiki.shar -c 長輩的e-mail 關於 diff/patch 以及 shar ,將在日後的 Porter Handbook 中譯有進一步解說 == 以上是我之前 send-pr 的經驗啦 :p 可參考 http://tinyurl.com/6j2kg aka http://www.freebsd.org/doc/en_US.ISO8859-1/articles/ problem-reports/article.html 不知道有沒有其他長輩要補充? :Q -- 靜中見真境,淡中識本然 -- ◢◣ - ● - ◢██◣◢◣ ` Origin: 宜蘭資教.山水蘭陽 telnet://yilan.twbbs.org ~~ ﹌ ~﹌ From : 220-135-110-151.HINET-IP.hinet.net > -------------------------------------------------------------------------- < 發信人: [email protected] (o_O), 看板: FreeBSD 標 題: Re: [文件] send-pr 的基本介紹 發信站: 小鹿鹿 BBS (Sun Dec 4 14:09:44 2005) 轉信站: ptt!ctu-reader!news.nctu!abpe.org ※ 引述《[email protected] (我只是小小新手唷)》之銘言: > ====== patch檔 跟 new port 的 shar 檔 如何產生? ====== > - diff/patch 篇: 大致以 "diff -ruN 舊 新"產生 是 ports 的話,可以用 sysutils/porttools 然後,我通常是 cp -R /usr/ports/ooo/xxx . cd xxx [blahblah] port diff 看一看 port test 測一下 port submit 他會幫你叫 send-pr 順便填過一些東西 然後,可以在 ~/.porttools 放 # FreeBSD Port Tools configuration file - see porttools(5) # vim: ft=sh EMAIL="rafan@foo" FULLNAME="哇啦哇啦" ORGANIZATION="噗拉拉" BUILDROOT="/tmp" ARCHIVE_DIR="" DIFF_MODE="/usr/ports" DIFF_VIEWER="less" PORTLINT_FLAGS="abct" 這樣子有些欄位就不用每次填了 -- ※ Origin: 邪惡小鹿鹿 <Deer.twbbs.org> ◆ From: 140.112.90.75 > -------------------------------------------------------------------------- < 發信人: [email protected] (我只是小小新手唷), 看板: FreeBSD 標 題: Re: [文件] send-pr 的基本介紹 發信站: 山水蘭陽 (Sun Dec 4 23:15:46 2005) 轉信站: ptt!ctu-reader!news.nctu!ilcbbs ※ 引述《[email protected] (o_O)》之銘言: > ※ 引述《[email protected] (我只是小小新手唷)》之銘言: > > - diff/patch 篇: 大致以 "diff -ruN 舊 新"產生 > 是 ports 的話,可以用 sysutils/porttools 喔喔,原來有更簡單的方式... 之前笨笨的,除了有設一些變數之外,都手打 嗯! porttools 是好物。 (._.)_ψ(筆記) 我的作法通常是.. cd /usr/ports/ooo cp -r xxx xxx.orig cd xxx [施工中...施工完畢] portlint -a cd .. ; diff -ruN xxx.orig xxx > ~/xxx.diff send-pr -a ~/xxx.diff -c 長輩的e-mail 然後就去信箱等著領號碼牌 XD > EMAIL="rafan@foo" > FULLNAME="哇啦哇啦" > ORGANIZATION="噗拉拉" 我是用 csh/tcsh ,這些都設在 ~/.tcshrc 所以 send-pr 就會順便帶進場 (當然 ~/.cshrc 也可以,不過 .tcshrc 權限高於 .cshrc) 嗯,rafan 不愧是長輩 m(_ _)m -- 靜中見真境,淡中識本然 -- ◢◣ - ● - ◢██◣◢◣ ` Origin: 宜蘭資教.山水蘭陽 telnet://yilan.twbbs.org ~~ ﹌ ~﹌ From : 220-135-110-151.HINET-IP.hinet.net > -------------------------------------------------------------------------- < 發信人: Cheng-Lung Sung <[email protected]>, 看板: FreeBSD 標 題: Re: [文件] send-pr 的基本介紹 發信站: Computer Science & Information Engineering (Mon Dec 5 09:56:50 2005) 轉信站: ptt!ctu-reader!ctu-peer!news.nctu!netnews.csie.nctu!not-for-mail 之所以推薦用 porttools 還有一個原因,它會測試 install 的檔案與 你寫在 pkg-plist 的一不一樣,而不會真的去碰到 /usr/local/ 下的東西 另外,如果在做 port test 有些變數要 define ,也可以 % port test -- -DXXXXX or % port test -- XXXX=blah 的方式來測試。 又,在測變數時(我不知道前面有沒有寫啦,想到補充一下)可以先用 make -V XXXX 來做,可以知道自己的 Makefile 寫的對不對哦 :p 我只是小小新手唷 <[email protected]> 提到: > ※ 引述《[email protected] (o_O)》之銘言: >> 是 ports 的話,可以用 sysutils/porttools > 喔喔,原來有更簡單的方式... > 之前笨笨的,除了有設一些變數之外,都手打 > 嗯! porttools 是好物。 (._.)_ψ(筆記) > > 我的作法通常是.. > cd /usr/ports/ooo > cp -r xxx xxx.orig > cd xxx > [施工中...施工完畢] > portlint -a > cd .. ; diff -ruN xxx.orig xxx > ~/xxx.diff > send-pr -a ~/xxx.diff -c 長輩的e-mail > 然後就去信箱等著領號碼牌 XD > >> EMAIL="rafan@foo" >> FULLNAME="哇啦哇啦" >> ORGANIZATION="噗拉拉" > 我是用 csh/tcsh ,這些都設在 ~/.tcshrc 所以 send-pr 就會順便帶進場 > (當然 ~/.cshrc 也可以,不過 .tcshrc 權限高於 .cshrc) > > 嗯,rafan 不愧是長輩 m(_ _)m -- IASL, IIS, SINICA Cheng-Lung Sung 宋政隆 > -------------------------------------------------------------------------- < 發信人: [email protected] (悸動), 看板: FreeBSD 標 題: Re: [文件] send-pr 的基本介紹 發信站: 小鹿鹿 BBS (Tue Dec 27 06:19:52 2005) 轉信站: ptt!ctu-reader!news.nctu!abpe.org ※ 引述《[email protected] (我只是小小新手唷)》之銘言: > 以上是我之前 send-pr 的經驗啦 :p > 可參考 http://tinyurl.com/6j2kg > aka http://www.freebsd.org/doc/en_US.ISO8859-1/articles/ > problem-reports/article.html > 不知道有沒有其他長輩要補充? :Q 這篇也很重要,可以知道 committer 怎麼處理的: http://www.freebsd.org/doc/en_US.ISO8859-1/articles/pr-guidelines/article.html -- Resistance is futile. http://blog.gslin.org/ & <[email protected]> -- ※ Origin: 邪惡小鹿鹿 <Deer.twbbs.org> ◆ From: 140.113.22.90 > -------------------------------------------------------------------------- < 發信人: [email protected] (我只是小小新手唷), 看板: FreeBSD 標 題: Re: [文件] send-pr 的基本介紹 發信站: 山水蘭陽 (Tue Dec 27 07:31:33 2005) 轉信站: ptt!ctu-reader!news.nctu!ilcbbs ※ 引述《[email protected] (悸動)》之銘言: > 這篇也很重要,可以知道 committer 怎麼處理的: > http://www.freebsd.org/doc/en_US.ISO8859-1/articles/pr-guidelines/article.html 嗯,我知道 :p 長輩要翻一下這篇嗎? 還是要包 article/* ? @_@ http://opensvn.csie.org/feebsddoc -- 靜中見真境,淡中識本然 -- ◢◣ - ● - ◢██◣◢◣ ` Origin: 宜蘭資教.山水蘭陽 telnet://yilan.twbbs.org ~~ ﹌ ~﹌ From : 61.63.0.123