[草稿] [簡介] 如何製作 xpi-* port
== 基本篇 ==
■ 取得 Makefile.xpi
首先,先更新你的 port tree,
而因為 xpi-* 類型的 port 因為要用到 Makefile.xpi,
所以請把 www/xpi-adblock 複製到你要準備作 port 的地方:
(假設你都在 ~/project 內製作 port 等其他計畫)
% mkdir -p ~/project ; cd ~/project
% cp -r /usr/ports/www/xpi-adblock xpi-adblock
■ 挑選想製作為 port 的 extension
到 http://tinyurl.com/o2g79 選想做的 extension
然後在 "Install Now" 處,按滑鼠右鍵複製該檔的連結
假設該檔檔名為 mr_tech_local_install-5.2-fx+fl+mz+ns+nv+zm+sb+tb.xpi
那麼他的 port 建議取名為
xpi-mr_tech_local_install
接著複製一份 xpi-* 的 port 做為參考範本(假設以 www/xpi-unplug 為範本)
% cp -r /usr/ports/www/xpi-unplug/ xpi-mr_tech_local_install
% cd xpi-mr_tech_local_install
然後修改 Makefile
- 把原本註解以及 PORTNAME 的 xpi-unplug 都改為 xpi-mr_tech_local_install
- 把 $FreeBSD:...那串改為 $FreeBSD$ 就好(因為那是 CVS tag 用)
- 把 Date, Whom, MAINTAINER 改為製造日期及你自己的名字、聯絡方式
- DISTVERSION 的版號,改為上述檔名中的 5.2 版號
- DISTVERSIONSUFFIX 的後面,
改為上述檔名版號後面的 -fx+fl+mz+ns+nv+zm+sb+tb
- COMMENT 處把該 extension 的原文說明貼過來,太長的話請濃縮
這時先存檔離開吧
■ 產生 distinfo
% sudo make makesum
■ xpi-gen 以及 xpi-plist
先查 XPI_ID 以及確認所會安裝的 XPI_FILES 數量多寡
% make xpi-gen
這時把檢查出來的 XPI_ID、XPI_FILES、XPI_DIRS 結果複製到 Makefile 內吧
如果該 extension 會裝很多 XPI_FILES 的話(超過兩行以上),
那就不要把 XPI_FILES 以及 XPI_DIRS 結果貼到 Makefile,
省得自己日後更新麻煩
建議改用 xpi-plist,用法如下:
% make xpi-plist
這樣子就幫你自動產生 pkg-plist ,而不必手動填或複製,因為那太苦了 :p
接著,再稍微修飾一下 pkg-descr 軟體敘述吧
順便把 work 目錄砍了吧
% rm -rf work
最後,自己裝看看能不能正常 work,
若一切都可以的話,就 send-pr 吧!
send-pr 順便 CC 給 sat@FreeBSD.org
若該 extension 有新版的話,他會很好心的幫你自動 update xpi- port...XD
== 進階篇 ==
■ 相依議題:處理 xpi- port 之間的 depend (相依關係)
請看 ww/xpi-adblock 的 Makefile.xpi 檔,內有說明
或找找其他 xpi- port 的作法吧
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
FreeBSD 近期熱門文章
PTT數位生活區 即時熱門文章