FreeBSD ハンドブック : アプリケーションのインストール : ports コレクション : 自分で port を作る : 3分porting
Previous: 自分で port を作る
Next: 本格的なport

4.7.1. 3分porting

この節では, 簡単なportの方法について説明します. 多くの場合これ では不十分ですが, まあうまくいくかどうか試してみて損はないでしょ う.

まず, 元のtarファイルを${DISTDIR}に置きます. デフォルトは/usr/ports/distfilesです.

注: 以下では, ソフトウェアはそのままコンパイルされるとします. つまり, FreeBSDのマシンで動かすために, 変更がまったく必要ない とします. もしなにか変更が必要な場合には次の節も参照する必要 があります.

4.7.1.1. Makefileの作成

最小限の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のお手本の節をご覧ください.

4.7.1.2. Package記述ファイルの作成

どのようなportでも, packageにするしないに関わらず, 3つ の記述ファイルが必要です. pkgサブディレクトリにある, COMMENT, DESCR, それにPLISTです.

COMMENT

これには, そのportについての説明を1行で書きます. Package の名前, バージョン番号等は含めないでください. たとえば, こんな具合です:

A cat chasing a mouse all over the screen

DESCR

これは, そのソフトウェアについての, すこし長い説明を記述 します. その 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

PLIST

このファイルには, この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 のアップグレートのとき, 楽に確認ができ るようになります.

4.7.1.3. チェックサムファイルの作成

ただ, `make makesum' と入力するだけです. bsd.port.mkにルールがあるので, 自動的にfiles/md5が 生成されます.

4.7.1.4. Portのテスト

そのportが正しく動くことを, package化を含めて確認してく ださい. 以下の重要なポイントを確認してください.

推奨されるテストの手順:

  1. make install
  2. make package
  3. make deinstall
  4. pkg_add `make package-name`
  5. make deinstall
  6. make reinstall
  7. make package
package および deinstall の段階で, どんな警告 (warning)も出力されないことを確認してください. ステップ3の 後, 新しいディレクトリが全て正しく消去されているかを確認し てください. また, ステップ4の後にそのソフトウェアを使用して みて, package からインストールされた場合に正しく動作するかを 確認してください.

4.7.1.5. portlint でチェック

portlintを使って, あなたの port が我々のガイドライン そっているかを確認してください. portlint プログラムは ports コレクション に含まれています. 特に, Makefile が正しい形式になっているか, package の名前が正しいか, をチェックするのに良いでしょう.

4.7.1.6. Portの送付

まず, やってよいことといけないこと についての節を読んでください.

さあ, あなたの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' のリストにも載るでしょう. う〜ん, 素晴らし い. :)


FreeBSD ハンドブック : アプリケーションのインストール : ports コレクション : 自分で port を作る : 3分porting
Previous: 自分で port を作る
Next: 本格的なport