Chapter 18. package の名前

package の名前は以下のルールにしたがってつけてください. これは package のディレクトリを見やすくするためで, 無秩序な名前がたくさん並んでいるとユーザが使いづらくなるのではという心配からです (FTP サイトなどにはたくさん package がありますからね).

package の名前は以下のようにしてください. 言語-名前-オプションバージョン.番号

package 名は ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION} というように定義されています. 変数がこの書式と適合していることを確認してください.

  1. FreeBSD はユーザの慣れ親しんだ言語のサポートに力を入れています. 特定の言語のための port の package 名には 言語- に ISO-639 で定義されている言語名の略称を入れてください. たとえば日本語なら ja, ロシア語なら ru, ベトナム語なら vi, 中国語なら zh, 韓国語ならば ko, ドイツ語なら de といった具合です.

    port がある言語地域に特化したものである場合には, さらに二文字の国名コードを付加してください. たとえば合衆国英語圏は en_US となり, スイスのフランス語圏は fr_CH となります.

    言語- 部分は, PKGNAMEPREFIX 変数に 定義されなければなりません.

  2. 名前の部分の最初の文字は 小文字でなければなりません. (名前の残りの部分は大文字を含んでいても構わないため, 大文字を含んだソフトウェア名を変換する際の規則は, あなた自身の裁量に任されています.) Perl 5 のモジュールでは先頭に p5- を付け, 二重コロン (::) のセパレータをハイフン (-) に置きかえる習慣になっています. たとえば Data::Dumperp5-Data-Dumper になります. また, そのソフトウェアの名前として通常使われるものに番号, ハイフン, あるいは下線が入っている場合には, それらを使うことも構いません (kinput2など).

  3. コンパイル時に環境変数や make の引数などでハードコードされたデフォルトを変えてコンパイルできる場合, -compiled.specifics にそのコンパイル時のデフォルトを入れてください (ハイフンはあってもなくてもかまいません). 用紙のサイズ, あるいはフォントの解像度などがこれにあたります.

    compiled.specifics 部分は, PKGNAMESUFFIX 変数に定義されなければなりません.

  4. バージョン番号は数字とアルファベットからなり, ピリオド (.) で区切ります. アルファベットは二文字以上続けてはいけません. ただ一つの例外は「パッチレベル」を意味する pl で, それ以外にバージョン番号がまったくついていない場合にのみ使うことができます. もしソフトウェアのバージョンに "alpha", "beta", "rc" や "pre" といった文字列が含まれる場合には, ピリオドの後に最初の一文字をとってください. これらの後に, さらにバージョン文字列が続く場合には, 一文字のアルファベットの後にピリオドをつけずに番号を続けます.

    この考え方は, バージョン文字列を見て簡単に ports を並べられるようにするためのものです. 特に, バージョン番号の各部分が必ずピリオドで区切られていること, また日付の部分がバージョン文字列の一部となっている場合には yyyy.mm.dd という書式を使っていることを確認してください. dd.mm.yyyy や, 2000 年問題に対応していない yy.mm.dd という書式を使ってはいけません.

では, DISTNAMEを正しい PKGNAME に直す例を見てみましょう:

以下は, ソフトウェアの作者が決めた名前から 適切な package 名に変換する方法を示した (実際の) 例です.

配布名 PKGNAMEPREFIX PORTNAME PKGNAMESUFFIX PORTVERSION 理由
mule-2.2.2 (空) mule (空) 2.2.2 変更の必要はありません
XFree86-3.3.6 (空) XFree86 (空) 3.3.6 変更の必要はありません
EmiClock-1.0.2 (空) emiclock (空) 1.0.2 プログラム一つだけの時は小文字のみ
rdist-1.3alpha (空) rdist (空) 1.3.a alpha のような文字列は使えない
es-0.9-beta1 (空) es (空) 0.9.b1 alpha のような文字列は使えない
mailman-2.0rc3 (空) mailman (空) 2.0.r3 rc のような文字列は使えない
v3.3beta021.src (空) tiff (空) 3.3 なんなんでしょう ;)
tvtwm (空) tvtwm (空) pl11 バージョン番号は必ず必要
piewm (空) piewm (空) 1.0 同上
xvgr-2.10pl1 (空) xvgr (空) 2.10.1 pl が使えるのは, 他にメジャー/マイナーバージョン番号がない場合のみ
gawk-2.15.6 ja- gawk (空) 2.15.6 日本語バージョン
psutils-1.13 (空) psutils -letter 1.13 コンパイル時に用紙のサイズを指定
pkfonts (空) pkfonts 300 1.0 300dpiフォント用の package

オリジナルのソースにまったくバージョン情報が見当たらず, また原作者が新しいバージョンをリリースする可能性が低いときには, バージョン番号として 1.0 を使えばいいでしょう (上記の piewm の例がこれにあたります). そうでない場合には原作者に聞くか, 日付 (yyyy.mm.dd) を使うなどしてください.

FreeBSD ports システムに関する質問は、(英語で) <ports@FreeBSD.org> へ、
この文書の原文に関するお問い合わせは、(英語で) <doc@FreeBSD.org> までお願いします。