[ports] 溫息 make new port

2006/03/02
By

久沒做 C 寫的 ports,下個月剛好 osdc.tw 舉行,先來溫習一下。

首先,看到 CPAN Serach Site 上有新貨上門了,看到有個叫 Tree-Suffix 的 perl module,手就癢了,因為 p5- 系列的 ports 做太多了,有點懶,加上它支援的 library 似乎還沒放在 ports 裡(這年頭要找到廖長輩沒動過的 software 還真難)。就選了 libstree 來做功課。大部份的方法請看下列的 reference 就可以了。

重要的步驟:

  • 強烈建議一定要有(安裝) porttools

不是很重要的步驟:

  • 先看看應該放在哪一個目錄下: suffix tree 是文字處理的,所以放在 ports/textproc 下
  • 新建目錄,一般來說都是同名的,所以
    % mkdir -p textproc/libstree

不過 new port 送出去之後是由 committer 負責把關(或是依令行事 :p ),所以有沒有放在該有的目錄(如 ports/textproc)下不是很重要,不過名稱(如 libstree )一定要正確就是了。

接著基本上要做四個檔案:Makefile、pkg-descr、pkg-plist、distinfo。其他的有必要再做就好了。

Makefile 的撰寫一般來說還是建議從相近的 ports 裡挖來改,然後 pkg-descr 就隨便寫寫就好了….,pkg-plist 生成方法很多種,有的用 find 加上 -newer 選項、或是再加上 comm 來過濾。我自己是喜歡用 port test 來幫忙生,因為順便可以做檢查:

textproc/libstree>% port test

===> Extra files and directories check
include/libstree.h
include/stree/lst_macros.h
include/stree/lst_stree.h
include/stree/lst_string.h
include/stree/lst_structs.h
include/stree/lst_algorithms.h
include/stree/lst_timestamp.h
lib/libstree.so.0
lib/libstree.so
lib/libstree.la
lib/libstree.a

懶人法就是把上面 "Extra" 的貼到 pkg-plist 去就好了。

distinfo 的生成更簡單了:

textproc/libstree> % port fetch

就搞定了。

    Reference:
  1. FreeBSD Porter’s Handbook
  2. FreeBSD Ports System : Creating Ports

2 Responses to [ports] 溫息 make new port

  1. huaihuai on 2006/03/06 at 1:35 下午

    由于平时都是使用win32系统,所以不了解linux,
    最近因perl关系,需使用linux,
    但不知为何升级到perl5.8.8会出错,
    能帮帮忙吗。

  2. clsung on 2006/03/06 at 4:41 下午

    1. FreeBSD != Linux
    2. 沒有 error msg 我怎麼知道是錯在哪? :)

發表迴響

您的電子郵件位址並不會被公開。 必要欄位標記為 *

*


*