zeissoctopus 发表于 2013-02-12 19:25

redports.org 免費服務簡單介紹

本帖最后由 zeissoctopus 于 2013-02-13 07:48 编辑

介紹
redports.org(美國) 提供多種 FreeBSD 沙盒環環,給予註冊使用者作測試他們的 ports 用途。費用全免。

好處

[*]Ports 維護者,完全使用 redports.org 沙盒環境編譯他們的 Ports,免郤用自己的機器測試
[*]非 Ports 維護者可以把自己的補丁放在 redports.org 沙盒環境裡編譯,查看結果。
[*]redports.org 提供:FreeBSD 9.1-RELEASE/amd6, FreeBSD 9.1-RELEASE/i386, FreeBSD 8.3 RELEASE/amd64, FreeBSD 8.3-RELEASE/i386 多種 FreeBSD 沙盒環境


使用 redports.org 的條件

[*]到 redports.org 註冊成為 redports.org 用戶 (2013 年 3 月才重新接受新用戶申請)
[*]安裝 devel/subvision


簡單介紹使用步驟
小弟是 deskutils/rednotebook 的維護者,當 rednotebook 有新版本推出後,小弟在空間時又需要把 ports 升級了。以下是使用 redports 步驟:

1. 到 redports.org 註冊
這步驟不用我解釋吧!但 redports.org 是有人審核你的申請,可能是等數天後才接納的你的申請。而新用戶要等到 2013 年 3 月內才可以申請。

2. 登入 redports.org
你成為合法用戶後,登入系統後便可以使用了。


3. 加入至少一個沙盒環境
登入後,在接近右上角選 --> [ Environments]後,你便可以書右方選單中加入使用那個沙盒。

完成了這步驟後,你可以離開網站。回到你的 console 或 xterm 工作了。

4. 使用 subvision 建立你將要與 reports.org 同步的 ports repository

4.1 在 $HOME 建立在一個 ~/RedPorts 目錄
~% cd
~% mkdir RedPorts
~% cd RedPorts
~/RedPorts%
4.2 先用 subversion checkout 功能,把你的 redports.org 私人 repository 同步於 ~/RedPorts 目錄
~/RedPorts% svn co https://svn.redports.org/你的用戶ID(英文)
必需先完成以上步驟才繼續下一步。

4.3 把我所主理的 rednotebook ports 複制進去這目錄。目錄結構必需與 /usr/ports 之下一模一樣!
~/RedPorts% cd ~/RedPorts/你的用戶ID(英文)
~/RedPorts/你的用戶ID(英文)% mkdir deskutils
cp -pr /usr/ports/deskutils/rednotebook deskutils/
4.4 把 ~/RedPorts/你的用戶ID(英文) 中的 deskutils/rednotebook 登記入你的 reports.org 私人 repository,這一步必需在 ~/RedPorts/你的用戶ID(英文)目錄之下完成
~/RedPorts/你的用戶ID(英文)% svn add deskutils 5. 現在我可以在 ~/RedPorts/你的用戶ID(英文) 中的 deskutils/rednotbook 進行修改 Makefile, distinfo 和 pkg-plist,把 rednotebook 由 1.6.5 升級至 1.6.6
一如以往修改

6. 把 rednotebook 1.6.6 測試的 ports 放進 redports.org 私人 repository
cd ~/RedPorts/你的用戶ID(英文)
~/RedPorts/你的用戶ID(英文)% svn commit -m "First trial for updating rednotebook to 1.6.6"當你把新版的 ports 遞交上 redports.org 後,他便會自動排隊進行編譯。

7. 過一段時間後,再次登入 redports.org查看你的新版編譯結果
登入後,到 https://redports.org/buildqueue 查看。你會見到結果和詳細的編譯記錄。

上圖表示新版本的 rednotebook 在沙盒中成功編譯好了。如果編譯失敗,也會告訴你究竟在那一個階段出錯。然後你可以再修正錯誤,再 commit 補丁再編譯過。

8. 如果你新版本成功通過 redports 沙盒測試,那麼你可以制作正式補丁遞交上官方。
例如我今次升級曾改動過 Makefile, distinfo 和 pkg-plist 三個檔案內容。
8.1 先把 /usr/ports/deskutils/rednotebook 中舊版本複制至 /tmp 每個舊版本加上 .orig 尾綴
~% cd /tmp
~/tmp%cp /usr/ports/deskutils/rednotebook/Makefile ./Makefile.orig
~/tmp%cp /usr/ports/deskutils/rednotebook/distinfo ./distinfo.orig
~/tmp%cp /usr/ports/deskutils/rednotebook/pkg-plist ./pkg-plist.orig8.2 然後把 ~/RedPorts/你的用戶ID(英文) 中的 deskutils/rednotbook 新版 Makefile, distinfo 和 pkg-plist 複制到 /tmp
~% cd /tmp
/tmp% cp $HOME/RedPorts/你的用戶ID(英文)/deskutils/rednotebook/Makefile .
/tmp% cp $HOME/RedPorts/你的用戶ID(英文)/deskutils/rednotebook/distinfo .
/tmp% cp $HOME/RedPorts/你的用戶ID(英文)/deskutils/rednotebook/pkg-plist .現在 /tmp 集齊新舊版 6 個檔案
% ls /tmp
Makefile.orig
Makefile
distinfo.orig
distinfo
pkg-plist.orig
pkg-plist
8.3 利用 diff 產生 補丁
~% cd /tmp
/tmp% diff -u5 Makefile.orig Makefile > rednotebook.1.6.6.patch.txt
/tmp% diff -u5 distinfo.orig distinfo >> rednotebook.1.6.6.patch.txt
/tmp% diff -u5 pkg-plist.orig pkg-plist >> rednotebook.1.6.6.patch.txt
完成後,得到一個完整的 rednotebook.1.6.6.patch.txt 補丁檔案

到 官方網頁出 PR 提交升級補丁
最後完成遞交補丁申請,並得到官方確認升級到 1.6.6
http://www.freebsd.org/cgi/query-pr.cgi?pr=176048
http://www.freshports.org/deskutils/rednotebook/

總結
redports.org 這個沙盒服務大大減省 ports 維護者配置測試環境的大量前期工作。十分值得推廣。

ulovko 发表于 2013-02-12 21:59

赞一个! :emn31:
页: [1]
查看完整版本: redports.org 免費服務簡單介紹