この節では, 簡単なportの方法について説明します. 多くの場合これ では不十分ですが, まあうまくいくかどうか試してみて損はないでしょ う.
まず, 元のtarファイルを${DISTDIR}
に置きます.
デフォルトは/usr/ports/distfiles
です.
注: 以下では, ソフトウェアはそのままコンパイルされるとします. つまり, FreeBSDのマシンで動かすために, 変更がまったく必要ない とします. もしなにか変更が必要な場合には次の節も参照する必要 があります.
最小限のMakefile
は次のようなものです:
# New ports collection makefile for: oneko
# Version required: 1.1b
# Date created: 5 December 1994
# Whom: asami
#
# $Id$
#
DISTNAME= oneko-1.1b
CATEGORIES= games
MASTER_SITES= ftp://ftp.cs.columbia.edu/archives/X11R5/contrib/
MAINTAINER= asami@FreeBSD.ORG
MAN1= oneko.1
MANCOMPRESSED= yes
USE_IMAKE= yes
.include <bsd.port.mk>
おわかりになりますでしょうか. $Id$
があ
る行の内容については, 気にしないでください. これはこのファイル
がportsツリーに書き込まれるときにCVSによって自動的に書
き込まれます. もっと詳しい例が見たければ,
Makefileのお手本の節をご覧ください.
どのようなportでも, packageにするしないに関わらず, 3つ
の記述ファイルが必要です. pkg
サブディレクトリにある,
COMMENT
, DESCR
, それにPLIST
です.
これには, そのportについての説明を1行で書きます. Package の名前, バージョン番号等は含めないでください. たとえば, こんな具合です:
A cat chasing a mouse all over the screen
これは, そのソフトウェアについての, すこし長い説明を記述
します. その port が何をするのかについての数段落程度の簡潔
な解説があれば十分です. このファイルはマニュアルでもなけれ
ば, 使用方法やコンパイル方法についての細かい説明書でもあり
ません. 特に, README
ファイルや manpage をコ
ピーしようとしてしている場合には注意してください. こ
れらは多くの場合, そのポートの簡潔な説明になっていなかった
り, 扱いにくい形式(manpage の場合, 行を揃えるために空白が
調整されます)になっていたりします. もしこのソフトウエアに
公式の WWW のホームページがあれば, ここに書いて下さい.
このファイルの最後にあなたの名前を書くことが推奨されています. たとえば, こんな具合です.
This is a port of oneko, in which a cat chases a poor mouse all over
the screen.
:
(うんぬん.)
http://www.oneko.org/
- Satoshi
asami@cs.berkeley.edu
このファイルには, このportによってインストールされるファ
イルが列挙されます. このファイルはpackageを作る際のリス
トとして使われるため, `packing list' とも呼ばれます. ここ
に書かれているファイル名は, インストール時のプレフィックス
(普通は /usr/local
か /usr/X11R6
) からの
相対パスです. MANx
変数を使用する場合(使用することが
推奨されています)には, マニュアルはここに入れないでくださ
い.
簡単な例を載せておきましょう:
bin/oneko
lib/X11/app-defaults/Oneko
lib/X11/oneko/cat1.xpm
lib/X11/oneko/cat2.xpm
lib/X11/oneko/mouse.xpm
@dirrm lib/X11/oneko
'Packing list'の詳細については, pkg_create(1)
の
マニュアルを参照してください. すべてファイルを列挙しなければ
なりませんが, ディレクトリ名は必要ありません. また, ports が
インストール時にディレクトリを作成する場合には, @dirrm
の行を加えて, その port が削除されるとき, そのディレクトリ
も削除されるようにしてください.
このファイルには, ファイル名をアルファベット順に並べるよう にしてください. port のアップグレートのとき, 楽に確認ができ るようになります.
ただ, `make makesum
' と入力するだけです.
bsd.port.mk
にルールがあるので, 自動的にfiles/md5
が
生成されます.
そのportが正しく動くことを, package化を含めて確認してく ださい. 以下の重要なポイントを確認してください.
PLIST
にその port がインストールしないものが含
まれていないこと.PLIST
にその port がインストールする全てのもの
が含まれていること.reinstall
ターゲットを使うことによって, 何度でも
インストールが可能こと.推奨されるテストの手順:
make install
make package
make deinstall
pkg_add `make package-name`
make deinstall
make reinstall
make package
package
および deinstall
の段階で, どんな警告
(warning)も出力されないことを確認してください. ステップ3の
後, 新しいディレクトリが全て正しく消去されているかを確認し
てください. また, ステップ4の後にそのソフトウェアを使用して
みて, package からインストールされた場合に正しく動作するかを
確認してください.
portlint
を使って, あなたの port が我々のガイドライン
そっているかを確認してください.
portlint
プログラムは ports コレクション
に含まれています. 特に,
Makefile
が正しい形式になっているか,
package
の名前が正しいか, をチェックするのに良いでしょう.
まず, やってよいことといけないこと についての節を読んでください.
さあ, あなたのportに満足したら, あとはそれをFreeBSDのメイ
ンの ports ツリーに置いて, 皆に使ってもらうだけです.
いまある work/
ディレクトリや pkgname.tgz
パッケージは必要ありませんから, まず消去してください.
あとは, バグレポートの中に `shar `find port_dir`
'
の出力を, send-pr(1)
プログラムを使用して送ってくだ
さい. (send-pr
についての詳細は,
バグ報告と一般的な論評を参照してください.)
もし, 圧縮していない状態で, 20KB以上あるようなポートで
あれば, 圧縮して tar ファイルにして, バグレポートに入れる前に
uuencode(1)
を使用してください. (20KB以下のものでも,
tar ファイルにして送ってもよいですが, あまり歓迎されません).
バクレポートの category は `ports', class は `change-request'
を必ず使用してください. (レポートを `confidential'(内密) に
しないようにしてください!)
もう一度, オリジナルのソースファイル, work/
ディレクトリ, `make package
'で作成したパッケージが
含まれていないことを確認してください.
注: 以前, 新しい port をわれわれの ftp サイト
(ftp.freebsd.org
)にアップロードするようにお願いした
ことがありますが, 現在このサイトの incoming
ディレクトリ
は読み出し不可になっており, いまでは推奨されていません.
沢山の海賊版ソフトウェアがそこに置かれたためです. :<
私たちは, 何か不明な点があったらあなたに確認したのち,
それをツリーへ置きます. あなたの名前は, FreeBSD
ハンドブックやその他のファイルの `Additional FreeBSD
contributors' のリストにも載るでしょう. う〜ん, 素晴らし
い. :)