[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Packages.txt: 1.199 -> 1.200
Packages.txt: 1.199 -> 1.200 です。ツッコミをお願いします。
対応する原文の差分は
http://cvsweb.NetBSD.org/bsdweb.cgi/pkgsrc/Attic/Packages.txt.diff?r1=1.199&r2=1.200
です。
査読等の便のため、改行位置の調整はしていません。
(調整したうえでcommitします)
--- Packages.txt.orig Sun Dec 18 14:24:17 2005
+++ Packages.txt Sun Dec 18 14:27:24 2005
@@ -1,5 +1,5 @@
-# $NetBSD: Packages.txt,v 1.199 2001/10/11 11:11:15 martti Exp $
+# $NetBSD: Packages.txt,v 1.200 2001/10/11 13:21:08 wiz Exp $
# $Id: Packages.txt,v 1.21 2005/12/18 05:24:17 kano Exp $
###########################################################################
==========================
@@ -313,6 +313,7 @@
3 コンパイル済みのパッケージを作る
==================================
+
3.1 単数のパッケージを作成する
==============================
@@ -493,6 +494,7 @@
pkg_add でインストールされるので、無駄な再コンパイルの繰り返しは発生しませ
ん。
+
3.3 CD-ROM複数枚に収めたパッケージコレクションの作成
====================================================
@@ -502,6 +504,7 @@
なツールがあります。`cdpack'は、依存関係が一枚のCD内で完結するように、パッ
ケージを複数枚のCD-ROMに編集してくれます。
+
3.3.1 cdpackの使用例
====================
@@ -531,6 +534,7 @@
こうすると、各イメージのルートディレクトリーに"README", "COPYING"および
"bin/myscript"が含まれるようになります。
+
==============================
第二部: パッケージ構築者ガイド
==============================
@@ -538,10 +542,9 @@
4 パッケージコンポーネント - ファイル、ディレクトリー、およびコンテンツ
=======================================================================
-FreeBSD Portsコレクションからパッケージを用意しても、ゼロからパッケージを用
-意する場合でも、いつも以下のセクションで述べられている多くのファイルが存在
-します。特に、それぞれのファイルがどうFreeBSD Portsと違うのかも説明していき
-ます。
+パッケージを用意する際にはいつも、
+以下のセクションで述べられている多くのファイルが存在
+します。
4.1 Makefile
@@ -596,32 +599,13 @@
全ての利用できるオプション、および変数の記述に関しては、NetBSD packages(7)
マニュアルページを参照してください。
-以下の事柄に気を配ってください。FreeBSD Portsコレクションからパッケージを持っ
-てきた場合は特に気を付けてください:
+以下の事柄に気を配ってください。:
- - パッケージのMakefileから、すべてのMANxとCATxの定義を削除してください。-
- NetBSDではマニュアルページを自動的に取扱います。これらの定義は現在使用さ
- れていません。
- もしパッケージにより(すでにそこにないとしても)マニュアルページが圧縮され
た形式でインストールされる場合、MANCOMPRESSEDを追加してください。
bsd.pkg.mkのコメントを参照。
- すべてのファイルの/usr/localを${PREFIX}に変更してください。(後述のパッチ
を参照)
- - どんなldconfigコマンドも削除してください - もしNetBSDプラットフォームが
- ldconfigをサポートしていれば自動的に実行されますし、ldconfigをサポートし
- ないプラットフォーム(例NetBSD/Alpha)では他の処置がとられるでしょう。
- - もしFreeBSD Portsコレクションからパッケージを持ってきて変更するならば、
- それらのRCS IDを保持してください:FreeBSDのRCS Id中の'$'を削除し、なけれ
- ば'FreeBSD'を挿入してください。そして、<$>NetBSD<$>を追加してください(<>
- は必要ありません。「専門用語」セクションを参照のこと)。すなわち:
-
- 修正前:
- # <$>Id: Makefile,v 1.17 1997/06/16 06:39:51 max Exp <$>
-
- 修正後:
- # <$>NetBSD<$>
- # FreeBSD Id: Makefile,v 1.17 1997/06/16 06:39:51 max Exp
-
- もし、パッケージがinfoファイルをインストールするのであれば、メインのinfo
ディレクトリーファイルにこの事実を反映するために更新する必要があります。
NetBSDではこれを行うためのINFO_FILES定義を持っています。例えば、
@@ -636,16 +620,12 @@
に指定してください。
- もしあなたが将来の更新のために、そのパッケージをメンテナンスするつもりで
あれば、MAINTAINERにあなたのメールアドレスをセットしてください。標準では
- MAINTAINERはpackages@netbsd.orgにセットします。FreeBSDの人々はNetBSDのパッ
- ケージについて関心がないと思われます。
+ MAINTAINERはpackages@netbsd.orgにセットします。
- もし問題のソフトウェアにホームページが存在するのであれば、MAINTAINERの後
ろにHOMEPAGEを追加してください。HOMEPAGEの値はホームページのURLにしてく
ださい。
- パッケージの短い説明をCOMMENT変数に設定してください。
- port2pkg (pkgsrc/pkgtools/port2pkg)は、上述した手順の多くをあなたのかわり
- に行なってくれます--操作は慎重にすべきではありますが。
-
4.2 distinfo
============
@@ -707,22 +687,12 @@
さらに自動化するため、同パッケージのmkpatchesを使ってパッチ一式を作ることを
おすすめします。あなたがやらねばならないことは、ファイルの編集前に"cp -p
-filename filename.orig" のようにして、元のファイルを"filename.orig"の名前で
+filename filename.orig" のように
+するか、あるいはさらに簡単に、同パッケージのpkgviを使って、
+元のファイルを"filename.orig"の名前で
バックアップしておくだけです。この方法でパッケージをアップグレードした場合、
patchdiffを使って、新しいパッチと既存のパッチを簡単に比較することができます。
-FreeBSD PortsからNetBSDパッケージシステムに持ってくる場合、NetBSD上でもたい
-ていFreeBSD Portsが使用できるでしょう。しかしながら、FreeBSDにソフトウェア
-を移植した人が、当てにならない__FreeBSD__ cpp defineを使っていないかどうか
-チェックしてください。これをする簡単な方法は、パッケージディレクトリーで
-
- % grep -i freebsd patches/patch-??
-
-としてください。
-
-また、オリジナルパッケージ中のMakefileの/usr/localを${PREFIX}に変更するパッ
-チを提供するなど、他のFreeBSDイズムにも気をつけてください。
-
パッケージを作り終えたとき、忘れずに"make makepatchsum"コマンドでパッチファ
イルのチェックサムを生成するようにしてください。セクション4.2を参照してくだ
さい。
@@ -746,6 +716,7 @@
なたが書いたコメントや気のきいた言葉は、あなたが考えるより多くの人々に目に
ふれる事に注意してください。
+
4.4.1 必須のファイル
=====================
@@ -761,19 +732,6 @@
サートされた(inserted)ファイルの位置を管理するための、他のディレクティブ
もこのファイルに記述されます。
-もし、NetBSDで動作させるために、FreeBSDパッケージを更新しているのであれば、
-pkg/PLISTの以下のものに細心の注意を払って下さい:
-
- - もし、「@exec ldconfig ...」ステートメント、あるいは「@unexec ldconfig ...」
- があれば、それらを削除して下さい。いくつかのNetBSDのアーキテクチャーは
- ldconfigを持っていないので、NetBSDはldconfigをよぶかどうかを自動的に判断
- します。
- - 不足している@dirrmステートメントの追加
- - パッケージのMakefileの中のMAN定義をすべて削除
-
-また、port2pkgパッケージを調べてみてください(pkgsrc/pkgtools/port2pkg)。こ
-のパッケージは、あなたのかわりにさまざまな退屈な作業をおこなってくれます。
-
4.4.2 オプション・ファイル
==========================
@@ -870,23 +828,6 @@
@comment <$>NetBSD<$>
- * ranlib:
- ranlibコマンドをPLISTファイルに記述しないでください。パッケージが削除さ
- れる時にトラブルをひきおこすかもしれません。構築時にだけranlibが実行され
- ること(通常、実行します)を確認してください。そうすれば特に気にする必要は
- ありません。これはFreeBSDポートを流用する時にいつも問題となります。
-
- * ldconfig:
- ldconfigコマンドをPLISTファイルに記述しないでください。このコマンドは問
- 題をひきおこす可能性があります。NetBSDでは、共有オブジェクトのキャッシン
- グは自動的におこなわれます(あなたが、「"Automatic shared object handling」
- メッセージの出力を見た時におこなわれています)。したがって、これに関して
- は気にする必要はありません。もしパッケージの中に共有オブジェクトが見つか
- れば、自動的に処理されます。必要であれば ldconfig を実行し、そうでなけれ
- ば実行しません。これは FreeBSD ポートを流用する時にいつも問題となります。
- この自動処理が行われないようにするには、パッケージのMakefileで
- SHLIB_HANDLINGをNOに設定してください。
-
* ${MACHINE_ARCH}、${MACHINE_GNU_ARCH}:
emacs、およびperlのようないくつかのパッケージは、それらが構築されたアー
キテクチャーに関する情報を、インストールするファイルのパス名に埋め込みま
@@ -971,11 +912,6 @@
るシステムを判断する必要があります。したがって、Cのプリプロセッサーがシステ
ムを判断できるように、CPPの定義を使います。
-非常に簡単に言うと、多くのFreeBSDポート(NetBSDではパッケージとよばれる)が
-CPPの定義__FreeBSD__に依存しています。この定義はFreeBSD固有の仕様のためにだ
-け使用すべきですが、残念ながら今はそうなっていません。また多くのFreeBSDポー
-トは、CPUがインテルベースのリトルエンディアンという事実に依存しています。
-
4.4 BSDから派生したシステム上で作業しているかどうかをテストするためには、
BSD定義を使用するべきです。これは<sys/param.h>で定義されています。
@@ -990,10 +926,6 @@
どうか注意して__NetBSD__定義を使って下さい。4.4-liteから派生した他のBSDにな
いNetBSD固有の特徴にのみ適用してください。
-美的な観点からすると、__FreeBSD__=1を定義して、単純にFreeBSDポートを使うこ
-とは避けるべきです。
-
-
6.2 共有ライブラリー - libtool
==============================
@@ -1083,6 +1015,10 @@
作られます。USE_LIBTOOL および LTCONFIG_OVERRIDE が定義されている場合、指定
されたltconfigは、パッケージのlibtoolのかわりにpkgsrc/devel/libtoolを使うよ
う上書きされます。
+新しい(ltconfigを持たない)バージョンのlibtoolの場合は、
+上で説明したもののかわりに
+USE_LIBTOOL_OVERRIDE=${WRKSRC}/libtool
+を使う必要があるかもしれません。
パッケージが動的共有オブジェクトのロードに、libtool (libltdl)のプラットフォー
ム独立なライブラリーを使う場合は、MakefileにUSE_LTDL= yesを追記してください。
@@ -1103,48 +1039,8 @@
* ルーチンの初期化を適切に呼ばずにlibltdlを使う。関数lt_dlinit()を呼んで、
マクロLTDL_SET_PRELOADED_SYMBOLSを実行形式にインクルードすべきです。
- 6.4 FreeBSDポートに関する注意
- =============================
-
-Makefileの問題(MANx、CATx、MANCOMPRESSED、ldconfig、RCS ID)については4.1を
-参照してください。FreeBSDのポートからパッチを流用した場合におこなうべき作業
-については4.3を参照してください。
-
-FreeBSDポートの最も大きい問題の1つが、多くのポートが${PREFIX}の設定を無視し
-/usr/localにインストールされると仮定されていることです。これを修正するため
-に、パッケージのMakefileに以下のような行を追加してください。
-
- pre-configure:
- for f in `find ${WRKDIR} -type f -print|xargs grep -l '/usr/local'`; do \
- ${SED} -e 's:/usr/local:'${PREFIX}':g' < $$f > $$f.pdone && ${MV} $$f.pdone $$f; \
- done
-
-これはpkgsrc/sysutils/rttyパッケージで使用している方法です。これがあなたの
-パッケージでも正しく動作することを確認してください。例えば、/usr/localで何
-かを探すことは、実際には意味があるかもしれません。したがって、無条件に
-/usr/localを置き換えてはいけません。
-
-FreeBSDは、パッケージのMakefileにマニュアルページを列挙し、PLISTに対応する
-エントリーを作らないことに決めました。MAN[1-8ln]の定義を削除する前に、これ
-らをPLISTに追加する必要があるでしょう。MLINKSとCAT[1-8ln]エントリーも同様で
-す。
-
-PLISTのマニュアルページについての注意: .gzサフィックスについては特に注意を
-はらう必要はありません。多くのFreeBSDポートは、実際には圧縮せずにマニュアル
-ページをインストールする場合も、PLISTに.gzページをもっていますが、気にしな
-くてもかまいません。我々は、MANZに従い.gzサフィックスを追加します。つまり、
-PLISTのマニュアルページの名前が.gzサフィックスを持っているかどうかは重要で
-はありません。もし、それが必要であれば自動的に追加されるし、不必要な.gzサ
-フィックスがあれば自動的に削除されるでしょう。
-
-いくつかのパッケージは、構築時にbsdスタイルの.mkファイルを使用します。した
-がってMANZが設定されていれば、インストールされるマニュアルページはgzipで圧
-縮されます。もし、MANZが設定されていなければ圧縮しません。もしパッケージが
-bsdスタイルの.mkファイルを使う場合は、Makefileの中で変数
-MANCOMPRESSED_IF_MANZにyesを設定してください。
-
- 6.5 作者へのフィードバック
+ 6.4 作者へのフィードバック
==========================
もしパッケージの不具合を発見し動作するように修正した場合、NetBSD上で動作さ
@@ -1670,58 +1566,51 @@
9 デバッグ
==========
-(FreeBSDのportから、または一から)パッケージを作成する時に落ちいりやすい間違
+パッケージを作成する時に落ちいりやすい間違
いをチェックし、パッケージを動作させるための手順があります。これは基本的に
は前のセクションで説明したことと同じですが、デバッグを助けるための方法を追
加しています。
* PKG_DEVELOPER=1 を /etc/mk.conf に含めるようにしてください
- * FreeBSDコレクションからportをさがしてください。
- * パッケージのMakefile中のRCS-IDを修正してください。
- セクション4.1を参考にしてください。
- * 未変更のFreeBSDのソースをインポートしてください(cvsアクセスが可能な場合
- だけおこなってください。そうでない場合は必要ありません)。(cd
- .../pkgsrc/category/pkgname ; cvs import pkgsrc/category/pkgname \
- FREEBSD FreeBSD-current-yyyy-mm-dd)
- * CVSにインポートしたら、以下の修正が必要かどうか調べて下さい
- (CVSにアクセスできなければ必要ありません)。
+ * 新しいディレクトリーを作り、以下を実行します
+
+ # url2pkg http://www.example.com/path/to/distfile.tar.gz
+
+ これには、pkgsrc/pkgtools/url2pkgをインストールしておくことが必要です。
+ * Makefileに、必要な編集を加えます。
+ * pkg/DESCRの内容を書きます
+ * ``make configure''
+ * configureの段階でわかった依存関係をすべて、パッケージのMakefileに書き加えます。
+ * 以下を繰り返しおこなって、パッケージを作り上げます
+
+ # make
+ # pkgvi ${WRKSRC}/some/file/that/does/not/compile
+ # mkpatches
+ # patchdiff
+ # mv ${WRKDIR}/.newpatches/* patches
+ # make mps
+ # make clean
+ [ mkpatches, patchdiff, pkgviは、pkgsrc/pkgtools/pkgdiffにあります ]
+
+ root以外のユーザーで作業をおこなうと、
+ 改変すべきでないファイルは改変されません。
+ 特に、構築の段階以外では。
* 必要ならMakefileを修正してください。セクション4.1を参考にしてください。
- * パッチが適切かどうか確認してください。
- * すべてのpkg/PLISTの先頭行「@comment <$>NetBSD<$>」という行を追加してくだ
- さい(セクション5を参考にしてください)。
- * make
- * もし何かがうまくいかなければ、修正してください。パッチを作成するために、
- ファイルの修正後にdiffを再生成してください。
- 「diff -bu foo.orig foo > ../../patch-xx」(作業する前に、mv patch-xx
- patch-xx.origしておいてください)もし、前のパッチでfoo.origが作成されない
- 場合でも、必ず、どこかにそのファイルの古いバージョンを持っていて下さい。
- この作業を繰り返してください。:)
- * 構築がすべてOKならtouch /tmp/blaして下さい。
- * パッケージをインストールします:
+ * PLISTを作成します:
+
+ # make install
+ # make print-PLIST > pkg/PLIST
+ # make deinstall
# make install
+ # make deinstall
+
これは通常、rootで実行する必要があります。
- * このパッケージでインストールされた全ファイルを調べます:
-
- # find /usr/pkg/ /usr/X11R6/ -newer /tmp/bla >/tmp/x
-
- /etc/mk.confでLOCALBASEやX11BASEを設定している場合は、(/usr/pkg/や
- /usr/X11R6/の)かわりにその設定値を使ってください。このfindコマンドではな
- く、"make print-PLIST"を実行するという方法もあります。
- * パッケージをデインストールします:
-
- # pkg_delete blub
-
* 残ったままのファイルがないか調べます:
-
- # find /usr/pkg/ /usr/X11R6/ -newer /tmp/bla
+
+ # make print-PLIST
もし、なにかファイルが見つかれば、それらはpkg/PLIST*に不足しているので、
追加してください。
- * pkg/PLIST*と/tmp/xを比較し、前者を修正してください。以下のような手が使え
- ます:
-
- % ( sort /tmp/x >/tmp/x2 ; sort pkg/PLIST >/tmp/P ; sdiff /tmp/x2 /tmp/P )
-
* これでPLISTの修正ができました。パッケージを再度インストールして、バイナ
リーパッケージを作ります:
@@ -1733,24 +1622,19 @@
* 上記のfindコマンドを繰り返します。今度は何も見つからないはずです:
- # find /usr/pkg/ /usr/X11R6/ -type f -newer /tmp/bla
+ # make print-PLIST
* バイナリーパッケージを再インストールします:
- # pkg_add .../blub.tgz
+ # pkg_add ..../blub.tgz
* 遊んでみてください。すべてが機能することを確認してください。
- * pkg_delete(8)を使い、再度デインストールします。今までと同様に、いかなる
- ファイルも残っていてはいけません。もう一度、上記のfind(1)コマンドを実行
- して確認してください。
- * make clean && touch /tmp/bla && make install && make clean && make deinstall
- を繰り返し実行してください。そう、ソフトウェアの作者のなかには、buildター
- ゲットの最中にファイルをインストールするようなMakefileを書く人もいるので
- す。はあ……。そのようなものがあったら、再現させて、PLISTを修正してくだ
- さい。このソフトウェアが、PLISTにないファイルを一切インストールしないよ
- うになるまで、これを繰り返してください。
+ * pkgsrc/pkgtools/pkglintに含まれるpkglintを実行し、報告される問題を修正してください。
+
+ # pkglint
+
* 提出してください(もし cvs アクセス可能であればコミットしてください)。
- セクション 10 が参考になります。
+ セクション 11 が参考になります。
10 FAQとパッケージシステムの特徴
@@ -1927,10 +1811,10 @@
============================
パッケージは他のパッケージに依存するかもしれません。そして、この依存性を定
-義するためのいろいろな方法があります。NetBSDはBUILD_DEPENDS、DEPENDS定義を
-サポートしています(注意: DEPENDS定義はFreeBSDのものと同じではありません。
-NetBSDはFreeBSDのLIB_DEPENDS定義をもはや使用していません。ELF化されたNetBSD
-のプラットフォーム上で問題が発生することがわかりました)。
+義するためのいろいろな方法があります。NetBSDは、
+buildlink.mkを使った依存関係(8 節参照)のほか、
+BUILD_DEPENDS、DEPENDS定義を
+サポートしています。
両定義の基本的な差異は、以下の通りです: DEPENDS定義では、その依存性がバイナ
リーパッケージ内に記録されますが、BUILD_DEPENDS定義では記録されません。
@@ -2269,17 +2153,6 @@
ときにcvsが文句を言います。さらに、この新しいパッケージを、categoryの
Makefileに忘れずに追加してください。
-FreeBSDポートから派生したパッケージは、「FREEBSD」のベンダータグと
-「FreeBSD-current-YYYY-MM-DD」のリリースタグ(YYYY-MM-DDはFreeBSDのツリーか
-らポートのスナップショットをとってきた日付)でインポートします。そして、通常
-のCVSのオペレーションにより必要な変更をおこなってください。例えば:
-
- % cd .../pkgsrc/<category>/<pkgname>
- % cvs import pkgsrc/<category>/<pkgname> FREEBSD FreeBSD-current-1998-04-01
- % cvs rm patches/patch-a
- % cvs add patches/patch-aa
- % cvs ci
-
初回のインポートでは、コミットメッセージにpkg/DESCRファイルの内容を含めてお
き、どういうパッケージなのかがメーリングリストの読者にわかるようにしてくだ
さい。
@@ -2293,7 +2166,7 @@
12 パッケージの簡単な例: bison
==============================
-私は、FreeBSDのポート(ports)にないソフトウェアをさがし、GNU bisonを選びまし
+私は、パッケージコレクションにないソフトウェアをさがし、GNU bisonを選びまし
た。バークレーのyaccがすでにソースツリーに存在するので、bisonを使いたい人は
いないでしょう。しかし、練習という意味では役にたちます。
@@ -2313,7 +2186,7 @@
DISTNAME= bison-1.25
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_GNU}
- > MAINTAINER= thorpej@netbsd.org
+ MAINTAINER= thorpej@netbsd.org
HOMEPAGE= http://www.gnu.org/software/bison/bison.html
COMMENT= GNU yacc clone
@@ -2379,7 +2252,7 @@
# cd /usr/pkgsrc/lang
# mkdir bison
# cd bison
- # mkdir files patches pkg
+ # mkdir patches pkg
セクション11.1のようにMakefile、pkg/DESCR、およびpkg/PLISTを作り、distfile
を取得します。