Hi! I’m clsung

Hi! I’m clsung

clsung’s blog site, or you can call me AlanSung

Hi! I’m clsung RSS Feed
 
 
 
 

[ports] 溫息 make new port

久沒做 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
Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • funp
  • Haohao
  • Hemidemi
  • Live
  • MisterWong
  • TwitThis
  • udn

2 Responses to “[ports] 溫息 make new port”

  1. 1
    huaihuai:

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

  2. 2
    clsung:

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

Leave a Reply

噗浪:

  • clsung 想 來買 fuji mini 5 hours 前
  • clsung 正在 累.... 6 hours 前
  • clsung 說 看過 "Vicky Cristina Barcelona(情遇巴塞隆納)" 的還有誰呢? 11 hours 前

分類

Flickr

    clsung. Get yours at bighugelabs.com/flickr
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Taiwan
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Taiwan