# New ports collection makefile for: oneko # Date created: 5 December 1994 # Whom: asami # # $FreeBSD$ # PORTNAME= oneko PORTVERSION= 1.1b CATEGORIES= games MASTER_SITES= ftp://ftp.cs.columbia.edu/archives/X11R5/contrib/ MAINTAINER= asami@FreeBSD.org COMMENT= A cat chasing a mouse all over the screen MAN1= oneko.1 MANCOMPRESSED= yes USE_IMAKE= yes .include <bsd.port.mk>
第3章 3 分間 porting
目次
このセクションでは、簡単な port の作り方について説明します。 多くの場合、これだけでは不十分なので、 この文書の続きを読まなければならないでしょう。
まず、元の tar ファイルを DISTDIR
に置きます。この変数の デフォルト値は /usr/ports/distfiles です。
以下の例では、そのソフトウェアが そのままコンパイル可能なものと仮定しています。 つまり、FreeBSD マシンで動かすために、 変更がまったく必要ないという意味です。 もし何か変更が必要な場合には、次のセクションも 参照する必要があるでしょう。 |
3.1. Makefile の作成
最小限の Makefile は 次のようなものになります。
おわかりでしょうか。$FreeBSD$
を 含む行の内容については、気にする必要はありません。 この行は、このファイルが FreeBSD の ports ツリーに 取り込まれる際に、CVS によって自動的に書き込まれます。 もっと詳しい例が見たい場合には、 Makefile のサンプルの セクションをご覧ください。
3.2. package 記述ファイルの作成
package にするしないに関わらず、どのような port でも 2 つの記述ファイルが必要です。それは pkg-descr と pkg-plist です。ファイル名が pkg- で始まっていることで 他のファイルと区別できるようになっています。
3.2.1. pkg-descr
このファイルには、その port についての少し長い説明を書きます。 その port が何をするのかについての、 数段落程度の簡潔な解説があれば充分です。
これはマニュアルでもなければ、使用方法やコンパイル方法に ついての細かい説明書でもありません。 README ファイルや マニュアルを引用するつもりなら注意が必要です。 これらは多くの場合、その port の簡潔な説明になっていなかったり、 扱いにくい形式になっていたりします。 (マニュアルの場合、行を揃えるために空白が調整されていたりします。) このソフトウェアに公式のウェブサイトがあるのなら、 ここに書いてください。その際自動化ツールが正しく動作するように、 ウェブサイトのうちの一つには、 先頭に |
このファイルの最後に、あなたの名前を書くことが推奨されています。 たとえば、こんな具合です。
This is a port of oneko, in which a cat chases a poor mouse all over the screen. : (うんぬん。) WWW: http://www.oneko.org/ - Satoshi asami@cs.berkeley.edu
3.2.2. pkg-plist
このファイルには、その port によってインストールされる すべてのファイルを列挙します。 このファイルは package を作る際のリストとして使われるため、 "パッキングリスト (packing list)" とも呼ばれます。 ここに書くパス名は、インストール時のプレフィックス (通常 /usr/local または /usr/X11R6) からの相対パスです。 MANn
変数を 使用している場合 (使用することが推奨されています)、このリストに マニュアルは入れないようにしてください。
簡単な例を載せておきましょう。
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
パッキングリストの詳細については、 pkg_create(1) のマニュアルを参照してください。
このリストには、すべてのファイルを列挙しなければ なりませんが、ディレクトリそのものは列挙する必要がありません。 また、この port がインストール時に独自のディレクトリを 作成する場合には、この port が削除されるときに そのディレクトリも削除されるよう、 このファイルでは、すべてのファイル名を アルファベット順にソートしておくことを推奨します。 そうすることで、port を更新する際の 変更点の確認が楽になります。 パッキングリストを手作業で作成するのは、 時にとても退屈な作業になります。 その port が非常に多数のファイルをインストールするとしたら、 パッキングリストの 自動生成を行なえば、時間の節約になるかもしれません。 |
3.3. チェックサムファイルの作成
make makesum
と入力するだけで、 (訳注: bsd.port.mk に書かれている) port 生成ルールに従い、 自動的に distinfo ファイルが生成されます。
3.4. port のテスト
package 化も含め、その port が思った通りに 動くことを確認してください。 確認の必要な重要ポイントは以下の通りです。
その port がインストールしないものが pkg-plist に含まれていないこと。
その port がインストールする、すべてのものが pkg-plist に含まれていること。
reinstall
ターゲットを使うことで、その port が 何度でもインストール可能なこと。その port が deintall される際には 後片付けをすること。
Procedure: 推奨されるテストの手順
make install
make package
make deinstall
pkg_add package 名
make deinstall
make reinstall
make package
package
および deinstall
の段階で、 どんな警告 (warning) も出力されないことを確認してください。 ステップ 3 の後、(訳注: その port が作成した) すべての新しい ディレクトリが正しく消去されていることを確認してください。 また、ステップ 4 の後にそのソフトウェアを使用してみて、 package からインストールされた場合にも正しく動作することを 確認してください。
3.6. port の提出
まず、やって良いこと悪いことの セクションを読んでください。
さて、満足のいく port が完成したら、残るは それを FreeBSD のメインの ports ツリーに置いて、 他の人にも使ってもらうだけです。 work ディレクトリや pkgname.tgz といった package は 必要ありませんから、まずこれらを消去してください。 あとは shar find port_dir
の出力を バグレポートに入れ、send-pr(1) プログラムを使用して 送ってください (send-pr(1) についての詳細はバグ報告と一般的な論評を参照してください)。 もし、圧縮していない状態で 20KB 以上あるような port であれば、 それを ひとつの tar ファイルにまとめて圧縮し、 バグレポートに入れる前に uuencode(1) を使用してください (20KB 以下のものを tar ファイルにして送っても良いのですが、 あまり歓迎されません)。 バクレポートの category は必ず ports
, class は change-request
としてください (レポートを confidential
(機密) 指定には しないでください!)。 また、port 化したプログラムの短い説明文を バグレポートの "Description" フィールドに追加して、 "Fix" フィールドには shar したファイル、 もしくは uuencode した tar ファイルを追加するようにしてください。
障害報告の概要 (synopsis) 欄がよく書けていると、 わたしたちが作業しやすくなります。 新しい port を提出するなら "New port: <カテゴリ>/<port 名> <短い port の概要>"、 port の更新なら、 "Update port: <カテゴリ>/<port 名> <短い更新の概要>" のような形が歓迎されます。 この考え方に沿っていれば、 誰かがあなたの障害報告を時間をおかずに見てくれる可能性が高くなります。 |
もう一度、オリジナルのソースファイルや work ディレクトリ、 make package
で作成した package が 含まれていないことを確認してください。
port を提出したら、辛抱強くお待ちください。時には、ある port が FreeBSD に取り込まれるまで、数日しかかかりそうもないの に、数ヶ月かかることもあります。FreeBSD へのコミット待ちの ports の一覧が見られます。
わたしたちがひとたびその port をチェックしたら、必要なら あなたに確認して、それをツリーへ置きます。 あなたの名前はその他の FreeBSD への貢献者の一覧やその他のファイルにも載るでしょう。 う~ん、素晴らしい。:-)
最終更新日: 2021年12月11日 by Sergio Carlavilla Delgado