[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Packages.txt: 1.82 -> 1.100
Packages.txt: 1.82 -> 1.100 です。ツッコミをお願いします。
対応する原文の差分は
http://cvsweb.NetBSD.org/bsdweb.cgi/pkgsrc/Attic/Packages.txt.diff?r1=1.82&r2=1.100
です。
査読等の便のため、改行位置の調整はしていません。
(調整したうえでcommitします)
原文の変更の反映のほか、typoとおぼしきものを修正しています。
--- Packages.txt.orig Thu Sep 15 21:09:42 2005
+++ Packages.txt Thu Sep 15 21:19:11 2005
@@ -1,4 +1,4 @@
-# $NetBSD: Packages.txt,v 1.82 2000/02/10 22:39:34 abs Exp $
+# $NetBSD: Packages.txt,v 1.100 2000/07/21 06:56:35 rh Exp $
# $Id: Packages.txt,v 1.11 2005/09/15 12:06:01 kano Exp $
###########################################################################
@@ -226,19 +226,12 @@
LOCALBASE=/usr/local
と設定してください。もちろん、ひとつ例外があります。X11パッケージは伝統的に
-X11ツリーにインストールされます。X11パッケージの場所を決定する環境変数は
-X11BASEです。したがって、X11パッケージを/usr/local/X11R6にインストールする
-場合は、
-
- X11BASE=/usr/local/X11R6
-
-を設定してください。
-
-しかしながら、X11ツリー以外にX11パッケージをインストールした場合、他のソフ
-トウェアによりライブラリーやヘッダーが見つけられなかったり、アプリケーショ
-ンのデフォルトが見つからなかったりして、おかしな事がおこるかもしれません。
-これらの理由により、X11パッケージはX11ツリーに残しておく事をお勧めします。
-現在、これを変更する方法を調査中です。
+X11ツリーにインストールされます。X11ツリーのルートの決定には、
+X11BASEの定義が使われます。
+
+X11パッケージをLOCALBASEツリーにインストールすることもできます。このために
+は、xpkgwedgeパッケージ(pkgsrc/pkgtools/xpkgwedge)をインストールしなければ
+なりません- 詳細はセクション7.1をご覧ください。
いくつかのパッケージは、構築時にいくつかのコンフィギュレーションオプション
を変えるために/etc/mk.confを参照します。設定可能な項目については、
@@ -246,6 +239,11 @@
いった環境変数は、pkgsrc使用時に毎回使えるように/etc/mk.confで設定しておく
こともできます。
+自分で作った(次章参照)または手動でpkgsrc/packagesに置いたバイナリーパッケージを、
+デインストールおよび再インストールしたい場合は、"bin-install"ターゲットを使うことができます。
+このターゲットは、 - もし可能ならば - pkg_addを使ってバイナリーパッケージを
+インストールするほか、"make package"をおこないます。
+
3 コンパイル済みのパッケージを作る
==================================
@@ -319,13 +317,14 @@
現在CATEGORIESの値として以下が使用できます。もし一つ以上にまたがる場合、そ
れらの値はスペースで分けられる必要があります:
- archivers corba graphics meta-pkgs print
- audio cross ham misc security
- benchmarks databases japanese net shells
- biology devel lang news sysutils
- cad editors mail parallel textproc
- comms emulators math pkgtools www
- converters games mbone plan9 x11
+ archivers databases ham net security
+ audio devel japanese news shells
+ benchmarks distfiles lang packages sysutils
+ biology editors mail parallel templates
+ cad emulators math pkglocate textproc
+ comms fonts mbone pkgtools www
+ converters games meta-pkgs plan9 x11
+ cross graphics misc print
全ての利用できるオプション、および変数の記述に関しては、NetBSD packages(7)
マニュアルページを参照してください。
@@ -377,7 +376,7 @@
ださい。
4.2 files/*
- ===========
+ ===========
* files/md5:
最も重要で必須な、パッケージのコンパイルに必要なすべてのdistfileのmd5チェッ
@@ -411,11 +410,9 @@
順(シェルによる"patches/patch-*"展開順)で適用されます。つまりpatch-aaは
patch-abより前に適用されます。
-patch-??ファイルはdiff -buフォーマットであるべきです。これは、FreeBSD Ports
-のtsarがcontext diffよりもこの形式の方が読みやすいことを見つけたからです。
-ですから、もしあなたが同じ流儀でdiffを作れば、あなたのNetBSDパッケージは、
-FreeBSD Portsシステムの一部として受け入れられるチャンスが多くなります。
-
+問題を避けるため、patch-??ファイルはdiff -buフォーマットとし、かつ、曖昧さなしで適用可能であるべきです。
+(/etc/mk.confでPKG_DEVELOPERを設定することで、後者を確実にすることができます
+ - パッチが曖昧さをもって適用されたときのみ、構築は失敗するようになります)。
なお、将来の変更が難しくなってしまうので、一つのパッチファイルに、複数のファ
イルへの変更を入れるのは止めてください。
@@ -423,6 +420,16 @@
すので、パッチファイルにRCS IDを含ませないように注意してください。これを避
けるためには、diffを"-U 2"または"-U 1"オプションで使ってください。
+この 2 段落で述べた問題に気を使いたくない場合は、
+pkgtools/pkgdiffパッケージのpkgdiffを使ってください。
+これはすべてのRCS Idをよきにはからってくれます。
+
+さらに自動化するため、同パッケージのmkpatchesを使ってパッチ一式を作ることをおすすめします。
+あなたがやらねばならないことは、ファイルの編集前に"cp -p filename filename.orig"
+のようにして、元のファイルを"filename.orig"の名前でバックアップしておくだけです。
+この方法でパッケージをアップグレードした場合、patchdiffを使って、
+新しいパッチと既存のパッチを簡単に比較することができます。
+
FreeBSD PortsからNetBSDパッケージシステムに持ってくる場合、NetBSD上でもたい
ていFreeBSD Portsが使用できるでしょう。しかしながら、FreeBSDにソフトウェア
を移植した人が、当てにならない__FreeBSD__ cpp defineを使っていないかどうか
@@ -440,8 +447,8 @@
さい。
- 4.4 pkg/*
- =========
+ 4.4 pkg/*
+ =========
このディレクトリーは、バイナリー・パッケージの作成を管理するために使用され
るいくつかのファイルを含んでいます。このディレクトリー内のファイルはバイナ
@@ -547,7 +554,7 @@
4.7 パッケージのCVSへのインポート
- ===================================
+ =================================
新しく作ったパッケージは、「TNF」のベンダータグと「pkgsrc-base」のリリース
タグでインポートしてください。例えば:
@@ -565,8 +572,8 @@
cvs ci
すべてのパッケージの変更、追加をdoc/pkg-CHANGESに記述してください。このファ
-イルを最新の状態に保つことは非常に重要なことです。なぜなら、このファイルは
-スクリプトによりwww.netbsd.orgのいくつかのページを自動的に更新するために使
+イルを、これまでと同じ形式のまま最新の状態に保つことは非常に重要なことです。なぜなら、このファイルは
+スクリプトによりwww.netbsd.orgのページを自動的に更新するために使
用されているからです。
@@ -627,6 +634,12 @@
ます。このPLISTファイルに対する変更は、pkg/PLIST自身にたいしてでなく、そ
れがコピーされる時におこなわれます。
+ * PLIST の半自動生成:
+ "make print-PLIST"コマンドを使って、
+ パッケージの展開後に新しくできた全ファイルにマッチするPLISTを出力することができます。
+ パッケージが、tar(1)その他のファイルのアクセス時刻を更新しない方法を使ってファイルをインストールする場合は、
+ それらのファイルを手でpkg/PLISTに書き足すよう注意してください!
+
5.2 MD/MI 対 汎用のPLIST
========================
@@ -738,12 +751,7 @@
「libtool」はソースファイルから、静的、動的なライブラリー両方を構築する方法
を知っています。したがって、プラットフォーム独立です。
-「libtool」を使うためには、まずlibtool-pkgへの構築依存性を追加してください。
-それからライブラリー構築時にlibtoolを使用するように、パッケージのソースを変
-更してください。最後に変更の結果をパッチとして、パッケージのpatchesディレク
-トリーにおいてください。
-
-以下に、libtoolをパッケージで使用するための7つの手順を記述します。
+以下に、libtoolをパッケージで使用するための6つの手順を記述します。
1. USE_LIBTOOL=yesをパッケージのMakefileへ追加します。
@@ -753,7 +761,7 @@
PICと非PICのライブラリーオブジェクトを作成します。したがって、共有ライブ
ラリーとそうでないライブラリーの構築規則を別々に記述する必要はありません。
-3. ライブラリーのリンクのための「ar」、「ranlib」、「ld -Bshareble」コマン
+3. ライブラリーのリンクのための「ar」、「ranlib」、「ld -Bshareable」コマン
ドを削除してください。そしてその代わりに以下のコマンドを使用してください。
${LIBTOOL} --mode=link cc -o ${.TARGET:.a=.la} ${OBJS:.o=.lo} -rpath ${PREFIX}/lib -version-info major:minor
@@ -789,23 +797,32 @@
${LIBTOOL} --mode=install ${BSD_INSTALL_DATA} ${SOMELIB:.a=.la} ${PREFIX}/lib
- これは、静的リンクのための.a、共用ライブラリー、必要なsymlinkをインストー
+ これは、静的リンクのための.a、共有ライブラリー、必要なsymlinkをインストー
ルし、「ldconfig」を実行します。
6. PLIST の中に、.a、.la、そしてso.major.minorファイルを追加してください。
- ただし、ELFのsymlinkは追加しないでください。これは自動的に作成されます。
+ ただし、ELFのsymlink(.so.major, .so)は追加しないでください。これは自動的に追加されます。
+
+pkglibtoolは使わないでください! 以前は、パッケージシステムはpkgtoolsによって
+パッケージシステム専用版のlibtoolを使っていました。
+しかし、時間の経過によりこれは時代遅れのものとなり、今では無用のものとなりました。
+既存パッケージのなかには、USE_PKGLIBTOOLを定義して、
+この時代遅れのバージョンのlibtoolをいまだに使うものがあるかもしれません。
+新しいパッケージでは、どうかこの定義は使わないでください!
+
+ 6.3 すでにlibtoolをサポートしているGNUパッケージでlibtoolを使う
+ ===============================================================
-すでにlibtoolをサポートしているGNUパッケージのための注意
パッケージのlibtoolを簡単に回避する方法として、USE_LIBTOOL=yesおよび
LTCONFIG_OVERRIDE=${WRKSRC}/ltconfigをパッケージのMakefileに追加してくださ
い。パッケージのlibtoolは、do-configureターゲットでltconfigスクリプトにより
作られます。USE_LIBTOOL および LTCONFIG_OVERRIDE が定義されている場合、指定
-されたltconfigは、パッケージのlibtoolのかわりにpkgtools/pkglibtoolを使うよ
-う上書きされます。パッケージにpkgtools/pkglibtoolで置き換え可能なオリジナル
+されたltconfigは、パッケージのlibtoolのかわりにdevel/libtoolを使うよ
+う上書きされます。パッケージにdevel/libtoolで置き換え可能なオリジナル
の"libtool"がすでにある場合は、パッケージのMakefileでLIBTOOL_OVERRIDEを定義
する必要があるかもしれません。
- 6.3 FreeBSDポートに関する注意
+ 6.4 FreeBSDポートに関する注意
=============================
Makefileの問題(MANx、CATx、MANCOMPRESSED、ldconfig、RCS ID)については4.1を
@@ -848,7 +865,7 @@
MANCOMPRESSED_IF_MANZにyesを設定してください。
- 6.4 作者へのフィードバック
+ 6.5 作者へのフィードバック
==========================
もしパッケージの不具合を発見し動作するように修正した場合、NetBSD上で動作さ
@@ -903,12 +920,20 @@
す。通常のX11のインクルードファイル(パッケージとしてインストールされてい
ない)をさがす場合、${X11BASE}を使用してください。
- * X11ベースのパッケージは特別です。/etc/mk.confの設定によっては、X11BASE、
- またはLOCALBASEに依存するかもしれません。もし、USE_IMAKEやUSE_MOTIF、
+ * X11ベースのパッケージは特別です。X11BASE、
+ またはLOCALBASEに依存するかもしれません。
+ X11パッケージをLOCALBASEにインストールする方法は、
+ 単にxpkgwedgeパッケージ(pkgsrc/pkgtools/xpkgwedge)をインストールするだけです。
+ もし、USE_IMAKEやUSE_MOTIF、
USE_X11BASEをMakefileで定義したpkgとしてインストールされたインクルードファ
イルやライブラリーをさがす場合、${X11BASE}と${LOCALBASE}の両方を使用する
必要があります。
+ * ${X11BASE}は、インストールされたX11ツリーのルートを指します。
+ X11パッケージのインストール場所を参照する用途には、${X11PREFIX}定義を使ってください
+ (これは、xpkgwedgeがインストールされていない場合は${X11BASE}となり、
+ xpkgwedgeがインストールされている場合は${LOCALBASE}となります)。
+
7.2 主なターゲット
==================
@@ -945,6 +970,12 @@
のパッチファイルは、適用する前に伸張されます。.orig、.rejで終るものは無
視されます。patch(1)のためのいくつかのオプションは、PATCH_DIST_ARGSで指
定する事ができます。詳細に関してはセクション4.3を参照して下さい。
+
+ /etc/mk.confでPKG_DEVELOPERが設定されていると、パッチに曖昧さがあった場
+ 合にはpatchが異常終了するような特別な引数が渡されます。パッチを修正(再作
+ 成) して、きれいに適用できるようにしてください。そうする理由は、パッチが
+ うまく適用できても、実は誤った場所に適用されていて、深刻な問題を起こす可
+ 能性があるからです。
* configure:
ほとんどのソフトウェアは、NetBSDで利用できるヘッダーファイル、システムコー
@@ -966,7 +997,7 @@
もし、プログラムがコンフィギュレーションのためにImakefileを使用するので
あれば、USE_IMAKEをYESに設定することにより、適切な手順が実行されます。
- (もし、$X11BASEにインストールされるパッケージが欲しいだけで、xmkmfを実行
+ (もし、$X11PREFIXにインストールされるパッケージが欲しいだけで、xmkmfを実行
したくない場合、かわりにUSE_X11BASEを使用してください!)
* build:
@@ -990,7 +1021,7 @@
えば「make build」は、以下と同等のことを実行します。
make fetch
- make checksum
+ make checksum
make extract
make patch
make configure
@@ -1016,7 +1047,7 @@
やpost-*ターゲットが実行されなくなってしまいます)。通常、再定義する必要
はありません。
- *reinstall:
+ * reinstall:
もし、「make install」実行後に、いくつかのファイルがきちんとインストール
されなかった事に気がついた場合、このターゲットを使い、再びインストールす
る事ができます。この場合、「インストール済み」フラグは無視されます。
@@ -1072,11 +1103,11 @@
トラブルがおこるかもしれません。
- REINSTALL:
- すべてのパッケージを更新する場合は、${DEPEND_TARGET}でなく「reinstall」
- を使用してください。この変数を使用する時には、「reinstall」ターゲット
- が使用される事を覚えておいてください。
+ インストール(make ${DEPENDS_TARGET})の前に各パッケージをデインストー
+ ルします。これは、"make update"の実行中断後に"clean-update"ターゲット
+ (以下参照)が呼ばれた場合に必要となることがあります。
- *clean-update:
+ * clean-update:
カレントディレクトリーで「make update」が実行された時に更新されるすべて
のパッケージのソースツリーを掃除します。カレントパッケージ(あるいは、依
存パッケージ)がすでに削除されている(例えばmake updateを実行した後)場合に
@@ -1106,7 +1137,7 @@
してください。${PACKAGES}ディレクトリーと、そのサブディレクトリーはすべ
てのバイナリー・パッケージで検索されます。
- * readme-all:
+ * readme-all:
このターゲットを使い、README-all.htmlを作成することができます。このファ
イルはNetBSDパッケージコレクションの中の、現在利用可能なすべてのパッケー
ジのリスト、また、それらが属するカテゴリーと簡単な説明を含んでいます。こ
@@ -1132,6 +1163,18 @@
であり、そのバージョンが削除可能で、最新の物が追加されることを表示するた
めに使用されます。
+ * show-pkgsrc-dir:
+ 当該パッケージの構築とインストールが可能な、パッケージ階層におけるディレクトリーを表示します。
+ このディレクトリーは、そのパッケージがインストールされた際のディレクトリーと同じとは限りません。
+ このターゲットは、単一ホスト上で多数のパッケージの更新をしたい場合に使うためのもので、
+ pkgsrc の最上層のMakefileから"show-host-specific-pkgs"ターゲットで呼び出すことができます。
+
+ * check-shlibs:
+ パッケージのインストール後に、すべてのバイナリーおよび(ELFプラットフォー
+ ムでは) 共有ライブラリーが必要な共有ライブラリーを見つけられるかどうか確
+ 認します。/etc/mk.confでPKG_DEVELOPERが設定されている場合はデフォルトで
+ 実行します。
+
8 デバッグ
==========
@@ -1141,6 +1184,7 @@
は前のセクションで説明したことと同じですが、デバッグを助けるための方法を追
加しています。
+ - PKG_DEVELOPER=1 を /etc/mk.conf に含めるようにしてください
- FreeBSDコレクションからportをさがしてください。
- パッケージのMakefile中のRCS-IDを修正してください。
セクション4.1を参考にしてください。
@@ -1167,6 +1211,7 @@
(又は、LOCALBASEやX11BASEを設定したすべてのディレクトリーを対象として)
- pkg_delete blub
- find /usr/pkg/ /usr/X11R6/ -newer /tmp/bla
+ (または 'make print-PLIST' の出力との diff をとる)
もし、なにかファイルが見つかれば、それらはpkg/PLIST*に不足しているので、
追加してください。
- pkg/PLIST* と /tmp/x を比較し、前者を修正してください。
@@ -1207,6 +1252,10 @@
9.13 他のパッケージとの衝突
9.14 WWWホームページがあるソフトウェア
9.15 '古い'名前のまま更新されたdistfileの取り扱い
+ 9.16 "Don't know how to make /usr/share/tmac/tmac.andoc" ってどういうこと?
+ 9.17 既存パッケージ修正時に、バージョンを上げるにはどうするか
+ 9.18 "Could not find bsd.own.mk" - 何がいけないの?
+ 9.19 制限つきパッケージ
9.1 GNU autoconfigを利用するパッケージ
@@ -1383,15 +1432,23 @@
義を使ってください。たとえば、print/lyxパッケージは、作成のためにxpmライブ
ラリーのバージョン3.4jを使用します。
-DEPENDS+= xpm-3.4j:../../graphics/xpm
+DEPENDS+= xpm-3.4j:../../graphics/xpm
また、パッケージ依存関係にはワイルドカードを使うことができます。
DEPENDS+= xpm-*:../../graphics/xpm
-ワイルドカードは、バイナリー・パッケージを作る時に展開されることに注意して
-ください。したがって、バイナリー・パッケージは、作成時にインストールされて
-いたライブラリーのバージョンに依存します。
+ワイルドカード依存関係は、バイナリー・パッケージを作る時には保持されることに注意して
+ください。依存関係はバイナリーパッケージのインストール時にチェックされ、
+パターンにマッチするパッケージが使われます。
+ワイルドカード依存関係は、注意を払って使うよう気を付けてください。
+簡単な例として、Tkのあるバージョンがインストールされていることが必要なパッケージで、
+正確に注意を払われていないものを考えます。
+
+DEPENDS+= tk-*:../../x11/tk80
+
+という依存関係は、たとえばtk-postgresql-6.5.3にもマッチしますが、これは必要なものではありません。
+*常に*、ワイルドカードがマッチすべきでないものには決してマッチしないようにしてください。
(d) もし、パッケージを実行するために、いくつかの実行可能ファイルが必要なら、
DEPENDS定義を使ってください。print/lyxパッケージを実行する時には、teTexパッ
@@ -1400,6 +1457,7 @@
DEPENDS+= teTex-*:../../print/teTeX
+上述した、ワイルドカード依存関係に関する注意は、ここにも当てはまります。
9.13 他のパッケージとの衝突
===========================
@@ -1425,6 +1483,7 @@
のパッケージと自動的に衝突します。例えば「Xaw3d-1.5」は、古いバージョンの
「Xaw3d-1.3」と衝突するでしょう。
+
9.14 WWWホームページがあるソフトウェア
======================================
@@ -1433,6 +1492,7 @@
MakefileのHOMEPAGE変数に設定するべきです。この変数はMAINTAINER変数のすぐ後
に定義してください。
+
9.15 '古い'名前のまま更新されたdistfileの取り扱い
=================================================
@@ -1446,14 +1506,16 @@
を出して、distfileの更新が意図されたものであって、トロイの木馬などが仕込ま
れたのではないことを確認します。
- 9.16 "Don't know how to make /usr/share/tmap/tmac.andoc" ってどういうこと?
+
+ 9.16 "Don't know how to make /usr/share/tmac/tmac.andoc" ってどういうこと?
==========================================================================
pkgsrc/pkgtools/pkg_installパッケージのコンパイル時に、makeが
-/usr/share/tmap/tmac.andoc の作り方がわからないというエラーを出します。これ
+/usr/share/tmac/tmac.andoc の作り方がわからないというエラーを出します。これ
は、そのマシンに"text"セット(nroffなど)がインストールされていないことを意味
しています。"text"セットをインストールしてください。
+
9.17 既存パッケージ修正時に、バージョンを上げるにはどうするか
=============================================================
@@ -1461,6 +1523,54 @@
な場合があります。元の作者による将来のバージョンと衝突しないようにするため、
'nb1'を後に付けます(さらにバージョンを上げるときは'nb2'などとします)。
+
+ 9.18 "Could not find bsd.own.mk" - 何がいけないの?
+ ==================================================
+
+NetBSDのインストール時にコンパイラー一式comp.tgzをインストールしなかったからです。
+comp.tgzを入手し、/で展開してインストールしてください:
+
+ tar --unlink -pvxf .../comp.tgz
+
+comp.tgzはNetBSDのどのリリースにも含まれていますので、
+あなたがインストールしたリリース("uname -r"で調べられます)
+に合ったものを入手してください。
+
+
+ 9.19 制限つきパッケージ
+ =======================
+
+ライセンスによっては、ソフトウェアの再配布方法に制限があります。
+このような制限を満たすようにするため、パッケージシステムでは以下のような制限を設定できる
+5個のmake変数を定義しています:
+
+ - RESTRICTED:
+ なにか制限がある場合は常に、(制限の種類にかかわらず)この変数を設定すべきです。
+ この変数を、その制限の理由を含む文字列に設定してください。
+
+ - NO_BIN_ON_CDROM:
+ バイナリーをCD-ROMに収録してはいけません。
+ バイナリーパッケージをCD-ROMに含めることができない場合は常に、この変数を${RESTRICTED}に設定してください。
+
+ - NO_BIN_ON_FTP:
+ バイナリーをftpサーバーに置いてはいけません。
+ バイナリーパッケージをインターネット上で公開することができない場合は常に、
+ この変数を${RESTRICTED}に設定してください。
+
+ - NO_SRC_ON_CDROM:
+ distfileをCD-ROMに収録してはいけません。
+ ソースコードやその他のdistfileのCD-ROMによる再配布が許可されていない場合は、
+ この変数を${RESTRICTED}に設定してください。
+
+ - NO_SRC_ON_FTP:
+ distfileをFTPに置いてはいけません。
+ ソースコードやその他のdistfileのインターネット経由での再配布が許可されていない場合は、
+ この変数を${RESTRICTED}に設定してください。
+
+NO_PACKAGE, IGNORE, NO_CDROMなど、制限を意味する上記以外の汎用make変数は使うべきでないことに注意してください。
+これらは、ユーザーのバイナリーパッケージ作成を、無条件にできないようにするからです。
+
+
10 提出
=======
@@ -1501,7 +1611,7 @@
11.1.1 Makefile
- ===============
+ ===============
> # <$>NetBSD<$>
>
@@ -1519,13 +1629,13 @@
11.1.2 pkg/COMMENT
- ==================
+ ==================
> GNU yacc clone.
11.1.3 pkg/DESCR
- ================
+ ================
> GNU version of yacc. Can make re-entrant parsers, and numerous other
> improvements. Why you would want this when Berkeley yacc(1) is part
@@ -1533,7 +1643,7 @@
11.1.4 pkg/PLIST
- ================
+ ================
> @comment <$>NetBSD<$>
> bin/bison