[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Packages.txt: 1.205 -> 1.232
Packages.txt: 1.205 -> 1.232 です。ツッコミをお願いします。
対応する原文の差分は
http://cvsweb.NetBSD.org/bsdweb.cgi/pkgsrc/Attic/Packages.txt.diff?r1=1.205&r2=1.232
です。
査読等の便のため、改行位置の調整はしていません。
(調整したうえでcommitします)
--- Packages.txt.orig Thu Dec 22 21:04:35 2005
+++ Packages.txt Thu Dec 22 21:06:25 2005
@@ -1,4 +1,4 @@
-# $NetBSD: Packages.txt,v 1.205 2001/10/24 22:10:43 jlam Exp $
+# $NetBSD: Packages.txt,v 1.232 2002/02/15 09:33:43 skrll Exp $
# $Id: Packages.txt,v 1.23 2005/12/22 12:04:35 kano Exp $
###########################################################################
@@ -125,8 +125,8 @@
======================
コンパイル済みのパッケージは、ftp.netbsd.orgおよびそのミラー上の、匿名FTPア
-クセスのためのディレクトリー/pub/NetBSD/packagesに置かれています。"sysctl
-hw.machine_arch"で表示されるのと同じサブディレクトリーを選択してください。
+クセスのためのディレクトリー/pub/NetBSD/packagesに置かれています。
+"uname -p"で表示されるのと同じサブディレクトリーを選択してください。
このディレクトリーの中には、カテゴリー毎のサブディレクトリーと、「All」サブ
ディレクトリーが存在しています。「All」サブディレクトリーの中には、.tgzファ
イル形式で実際のバイナリーがあります。カテゴリー毎のサブディレクトリーは、
@@ -152,8 +152,8 @@
# pkg_add ftp://ftp.netbsd.org/pub/NetBSD/packages/<OS Ver>/<arch>/All/package.tgz
-ここで <OS Ver> や <arch> がよくわからない場合は、sysctlユーティリティーを
-"sysctl kern.osrelease hw.machine_arch"のように使って調べられます。
+ここで <OS Ver> や <arch> がよくわからない場合は、unameユーティリティーを
+"uname -rp"のように使って調べられます。
また、パッケージを実行するためにあらかじめ必要な他のパッケージがインストー
ルされるかもしれない事にも注意してください。一緒にインストールされる他のパッ
@@ -246,6 +246,11 @@
い場合は、「make fetch-list」を実行すれば、必要なファイルがわかります。それ
らの配布ファイルを/usr/pkgsrc/distfilesに置いてください。
+動的なURLからダウンロードする必要がある場合は、DYNAMIC_MASTER_SITESを設定することができます。
+すると、'make fetch'は、ダウンロードすべき各ファイルを引数としてfiles/getsite.shを呼び出します。
+このスクリプトは、ファイルをダウンロードするディレクトリーのURLを出力することが前提となっています。
+graphics/ns-cult3dが、この使い方の例となっています。
+
2.4 構築とインストール方法
==========================
@@ -361,8 +366,8 @@
BATCH= yes # required for bulk builds
DEPENDS_TARGET?= bulk-install
- PACKAGES?= ${PKGSRCDIR}/packages/${MACHINE_ARCH}
- OBJMACHINE?= 1 # use work.${MACHINE_ARCH}
+ PACKAGES?= ${_PKGSRCDIR}/packages/${MACHINE_ARCH}
+ OBJHOST?= yes # use work.`hostname`
WRKOBJDIR?= /usr/tmp/pkgsrc # build here instead of in pkgsrc
FAILOVER_FETCH= yes # insist on the correct checksum
PKG_DEVELOPER?= yes
@@ -584,6 +589,20 @@
(サブディレクトリー名の後のスラッシュ/に注意してください)廃止された
MASTER_SITE_SUBDIRを使用しても動作しません。
+パッケージに複数のDISTFILESまたは複数のPATCHFILESがあって、
+それらの配布元サイトが異なる場合は、
+SITES_fooを、ファイル"foo"があるURIを列挙したものに設定します。
+"foo"にはサフィックスを含めます。たとえば以下のようにします。
+
+ DISTFILES=${DISTNAME}${EXTRACT_SUFX}
+ DISTFILES+=foo-file.tar.gz
+ SITES_foo-file.tar.gz=http://www.somewhere.com/somehow/ \
+ http://www.somewhereelse.com/mirror/somehow/
+
+なお、通常おこなうような、
+DISTFILESへのファイルの(置換ではなく)追加をする場合は、
+標準的なDISTFILESのデフォルト設定を明示的におこなわなければなりません。
+
現在CATEGORIESの値として以下が使用できます。もし一つ以上にまたがる場合、そ
れらの値はスペースで分けられる必要があります:
@@ -666,7 +685,7 @@
順(シェルによる"patches/patch-*"展開順)で適用されます。つまりpatch-aaは
patch-abより前に適用されます。
-問題を避けるため、patch-??ファイルはdiff -buフォーマットとし、かつ、曖昧さ
+問題を避けるため、patch-??ファイルは"diff -bu"フォーマットとし、かつ、曖昧さ
なしで適用可能であるべきです。(曖昧さがあっても強制的にパッチを適用させるた
め、PATCH_FUZZ_FACTOR=-F2を設定することができます)。なお、将来の変更が難し
くなってしまうので、一つのパッチファイルに、複数のファイルへの変更を入れる
@@ -706,50 +725,40 @@
pkgsrcの「標準の」パッチが適用された後に、このパッチが適用されます。
- 4.4 pkg/*
- =========
-
-このディレクトリーは、バイナリー・パッケージの作成を管理するために使用され
-るいくつかのファイルを含んでいます。このディレクトリー内のファイルはバイナ
-リー・パッケージに含まれ、他のマシンにインストールされます。したがって、あ
-なたが書いたコメントや気のきいた言葉は、あなたが考えるより多くの人々に目に
-ふれる事に注意してください。
-
-
- 4.4.1 必須のファイル
- =====================
+ 4.4 その他の必須のファイル
+ ==========================
- * pkg/DESCR:
+ * DESCR:
ソフトウェアについての複数行の説明。このファイルには適切なクレジットを含
めておいてください。他人があなたのユーモアのセンス(あるいは変わった綴り)
を理解してくれない事、そしてここに書かれたものすべてを他人が読むであろう
という事を念頭においておいてください。
- * pkg/PLIST:
+ * PLIST:
このファイルは、システムにインストールされるファイルを管理します:すべて
のバイナリー、マニュアルページ、その他。ディレクトリーの作成、削除、イン
サートされた(inserted)ファイルの位置を管理するための、他のディレクティブ
もこのファイルに記述されます。
- 4.4.2 オプション・ファイル
- ==========================
+ 4.5 オプション・ファイル
+ ========================
- * pkg/INSTALL:
+ * INSTALL:
このシェル・スクリプトはpkg_add実行中に二度起動されます。最初は、パッケー
ジが展開された後、ファイルが移動される前に、二度目はインストールするファ
イルが移動された後。このファイルは、PLIST内の@execコマンドでは不可能な特
別な処理のために使うことができます。より詳細な情報はpkg_add(1)と
pkg_create(1)を参照してください。
- * pkg/DEINSTALL:
+ * DEINSTALL:
このスクリプトは、ファイルが削除される前後に実行されます。このスクリプト
の責任は、パッケージのインスタレーションにかかわる雑多なものをきれいにす
ることです。なぜなら、pkg_deleteは、オリジナルのディストリビューションで
作成されたファイルをどのように削除するかをすべて知っておかなければならな
いからです。より詳細な情報はpkg_add(1)とpkg_create(1)を参照してください。
- * pkg/MESSAGE:
+ * MESSAGE:
パッケージのインストール後にこのファイルの内容が表示されます。
完全にフリーでないソフトウェアについての法的な通知等に役立ちます。
パッケージのMakefileでMESSAGE_SUBSTを使うことで、変数を簡単に変えられる
@@ -757,37 +766,13 @@
MESSAGE_SUBST+= SOMEVAR="somevalue"
- とすると、pkg/MESSAGE中の
+ とすると、MESSAGE中の
${SOMEVAR}
は、メッセージ表示前に"somevalue"に置換されます。
- 4.5 scripts/*
- =============
-
-このディレクトリーは、ソフトウェア等の設定に必要なファイルを含んでいます。
-もし、以下の名前のスクリプトが存在すれば、構築プロセスの適当な時に実行され
-ます:
-
- pre-fetch post-fetch
- pre-extract post-extract
- pre-patch post-patch
- pre-configure post-configure configure
- pre-build post-build
- pre-install post-install
- pre-package post-package
-
-なお、Makefile内で、scripts/[pre|post]-*にマッチするスクリプトを実行するよ
-うなpre-*ターゲットやpost-*ターゲットを定義しては *いけません* 。bsd.pkg.mk
-は、Makefileに存在する各ターゲットの実行後、scripts/*を探してそれをsh(1)を
-使って実行します。このようなスクリプトをMakefileから実行すると、スクリプト
-を二重に実行することになってしまいます。
-
-構築プロセスについてはセクション7を参照してください。
-
-
4.6 work/*
==========
@@ -801,7 +786,7 @@
めにも使用されます。
- 4.6 files/*
+ 4.7 files/*
===========
また、もしあなたがコンフィギュレーションまたは構築するより前に、パッケージ
@@ -831,8 +816,8 @@
emacs、およびperlのようないくつかのパッケージは、それらが構築されたアー
キテクチャーに関する情報を、インストールするファイルのパス名に埋め込みま
す。このようなケースに対応するため、実際に使われる前に、PLISTに前処理が
- おこなわれます。そして、シンボル「${MACHINE_ARCH}」は、「sysctl -n
- hw.machine_arch」の出力でおきかえられます。${MACHINE_GNU_ARCH}がPLISTの
+ おこなわれます。そして、シンボル「${MACHINE_ARCH}」は、「uname -p」
+ の出力でおきかえられます。${MACHINE_GNU_ARCH}がPLISTの
どこかにうめこまれている場合も同様の事がおこなわれます。これは、GNU
autoconfigureを使用しているパッケージで使われます。
@@ -857,7 +842,7 @@
インストールされます。そうでなければ展開された形式でインストールされます。
PLISTファイルでこれをサポートするために、MANZと MANCOMPRESSEDの設定の有
無に従い、「.gz」サフィックスがマニュアルページに自動的に追加、削除され
- ます。このPLISTファイルに対する変更は、pkg/PLIST自身にたいしてでなく、そ
+ ます。このPLISTファイルに対する変更は、PLIST自身にたいしてでなく、そ
れがコピーされる時におこなわれます。
* PLIST の半自動生成:
@@ -928,7 +913,7 @@
6.2 共有ライブラリー - libtool
==============================
-NetBSDはさまざまな種類のマシンをサポートします。それらはa.outとELFのような
+pkgsrcはさまざまな種類のマシンをサポートします。それらはa.outとELFのような
異なるオブジェクトフォーマットを使い、共有ライブラリー、ダイナミックローディ
ングの有無すらも異なります。これに対応するためにコマンドそのもの、およびオ
プションがコンパイラー、リンカーなどに渡される必要があります。すべてのマシ
@@ -1014,7 +999,7 @@
作られます。USE_LIBTOOL および LTCONFIG_OVERRIDE が定義されている場合、指定
されたltconfigは、パッケージのlibtoolのかわりにpkgsrc/devel/libtoolを使うよ
う上書きされます。新しい(ltconfigを持たない)バージョンのlibtoolの場合は、上
-で説明したもののかわりにUSE_LIBTOOL_OVERRIDE=${WRKSRC}/libtool を使う必要が
+で説明したもののかわりにLIBTOOL_OVERRIDE=${WRKSRC}/libtoolを使う必要が
あるかもしれません。
パッケージが動的共有オブジェクトのロードに、libtool (libltdl)のプラットフォー
@@ -1037,7 +1022,61 @@
マクロLTDL_SET_PRELOADED_SYMBOLSを実行形式にインクルードすべきです。
- 6.4 作者へのフィードバック
+ 6.4 GNU Autoconf/Automake
+ =========================
+
+パッケージが、
+configureスクリプトやmakefileの雛型Makefile.inを再生成するために
+GNU autoconfまたはautomakeを実行する必要がある場合、
+これらの実行はpre-configureターゲットでおこないます。
+autoconfのみを必要とするパッケージでは以下のようになります:
+
+ pre-configure:
+ cd ${WRKSRC}; ${LOCALBASE}/bin/autoconf
+
+また、automakeとautoconfを必要とするパッケージでは以下のようになります:
+
+ pre-configure:
+ cd ${WRKSRC}; \
+ ${LOCALBASE}/bin/aclocal; \
+ ${LOCALBASE}/bin/autoheader; \
+ ${LOCALBASE}/bin/automake -a --foreign -i; \
+ ${LOCALBASE}/bin/autoconf
+
+生成されたファイルに対して、
+configureプロセスがさらに変更を加える時がありますが、
+この時には構築プロセスがautomake sequenceを再実行しようとします。
+configureの段階でさまざまなファイルに手を加えると、この挙動は止められます。
+この挙動が問題が起こす場合は、
+そのパッケージのMakefileでAUTOMAKE_OVERRIDEをNOに設定することができます。
+
+
+ 6.5 パッケージの設定ファイル
+ ============================
+
+パッケージの設定ファイルの場所は、${PKG_SYSCONFDIR}として指示され、
+この値はconfigureおよびbuildのプロセスに渡されます。
+PKG_SYSCONFDIRは、
+他のmake変数のさまざまな設定によってカスタマイズすることができます:
+
+* PKG_SYSCONFBASEは主たる設定ディレクトリーで、
+パッケージ用の設定ファイルすべてがこれ以下に置かれます。
+デフォルトは${PREFIX}/etcですが、/etc/mk.confで上書きすることができます。
+
+* PKG_SYSCONFSUBDIRはPKG_SYSCONFBASEのサブディレクトリーで、
+個々のパッケージ用の設定ファイルはこの下に置かれます。
+たとえば、Apacheの設定ファイルはすべて、${PKG_SYSCONFBASE}のサブディレクトリー
+"httpd"の下に置かれます。
+
+* PKG_SYSCONFDIR.${PKGBASE}は、個々のパッケージについて${PKG_SYSCONFDIR}の値を上書きします。
+これは、パッケージのMakefileで設定するためのものではなく、
+個々のパッケージについてPKG_SYSCONFDIRの設定を上書きしたいユーザー用に予約されているものです。
+
+普通はPKG_SYSCONFBASEを/etcに設定するか、
+デフォルトの場所の${PREFIX}/etcのままにするのがよいでしょう。
+
+
+ 6.6 作者へのフィードバック
==========================
もしパッケージの不具合を発見し動作するように修正した場合、NetBSD上で動作さ
@@ -1136,10 +1175,19 @@
* fetch:
これは、変数DISTFILESとPATCHFILES (パッケージのMakefileで定義された)で指
定されたファイルが、ローカルシステムの/usr/pkgsrc/distfilesに存在するか
- どうかをチェックします。もし、存在しなければ、変数PATCH_SITESで指定され
- たサイトから、ftp(1)を使用し取得します。PATCH_SITESはURLの形式で、
- ftp://-、およびhttp://-が使用できます。これは、ftp(1)が両方の形式を解釈
- できるからです。
+ どうかをチェックします。もし、存在しなければ、
+ そのファイルを以下のようなコマンドを使って取得しようとします。
+
+ ${FETCH_CMD} ${FETCH_BEFORE_ARGS} ${site}${file} ${FETCH_AFTER_ARGS}
+
+ この${site}には、複数の候補が決まった順序で使われます:
+ 最初に${MASTER_SITE_OVERRIDE}を試み、
+ 次に、${SITES_file}が定義されていればそれを、定義されていなければ、
+ ${MASTER_SITES}か${PATCH_SITES}のどちらかを試みます。
+ そして、最後に${MASTER_SITE_BACKUP}の値を試みます。
+ 最初のもの以外の順序は、
+ ${MASTER_SORT_AWK}か${MASTER_SORT_REGEX}を設定して、
+ ユーザーが入れ換えることができます。
* checksum:
distfileを取得した後に、チェックサムを生成し、distinfoファイルに保存され
@@ -1179,10 +1227,6 @@
大抵の場合、スクリプトがソースと一緒に提供され、それを実行することにより
ヘッダーファイルやMakefile等が生成されます。
- プログラムがコンフィギュレーションのためのスクリプトを提供していない場合、
- パッケージのスクリプトディレクトリーにconfigureという名前のスクリプトを
- 置くことができます。そして、それはsh(1)によって実行されます。
-
もし、プログラムのdistfileが専用のconfigureスクリプトを含んでいる場合、
HAS_CONFIGUREを設定することにより、実行することができます。もし、そのス
クリプトがGNUのautoconfスクリプトである場合は、かわりに、GNU_CONFIGUREを
@@ -1232,8 +1276,7 @@
たものです。これらのターゲットは、特別な設定やインストール手順のために、
主ターゲットが実行される前や後に実行されます。例えば、プログラムのコンフィ
ギュレーションスクリプトやインストールターゲットが省略された場合に有用で
- す。これらのターゲットのために、同名のスクリプトをパッケージのスクリプト
- 用のサブディレクトリーに置くことができます。セクション4.5を見て下さい。
+ す。
* do-*:
主なターゲットがおかしな動作をし、それを修正するための変数が存在しない場
@@ -1385,13 +1428,13 @@
* print-PLIST:
パッケージを新規に、または更新のために'make install'した後、'find -newer
work/.extract_done'をもとに新しいPLISTを生成して表示します。PLIST生成は、
- 共有ライブラリーなどに配慮して行われますが、生成した結果をpkg/PLISTに置
+ 共有ライブラリーなどに配慮して行われますが、生成した結果をPLISTに置
く前に再確認するよう*強く*おすすめします。パッケージ更新時には、このコマ
- ンドの出力と、更新前のpkg/PLISTファイルとを比較すると便利でしょう。
+ ンドの出力と、更新前のPLISTファイルとを比較すると便利でしょう。
パッケージが、tar(1)その他のファイルのアクセス時刻を更新しない方法を使っ
てファイルをインストールする場合は、それらのファイルは'find -newer'で検
- 出されないので、手でpkg/PLISTに書き足すよう注意してください!
+ 出されないので、手でPLISTに書き足すよう注意してください!
* bulk-package:
バルクビルドの実行に使われます。適切なバイナリーパッケージがすでに存在す
@@ -1461,7 +1504,7 @@
headers and libraries used by a package may be found in ${BUILDLINK_DIR},
and -I${BUILDLINK_DIR}/include and -L${BUILDLINK_DIR}/lib are already passed
to the compiler, it is no longer necessary to pass -I${LOCALBASE}/include or
--L${LOCABASE}/lib to the compiler. Therefore, those lines should be removed
+-L${LOCALBASE}/lib to the compiler. Therefore, those lines should be removed
from package Makefiles, and where necessary, the package sources should be
patched to do the same. Also, if a package uses X11, then by including
mk/x11.buildlink.mk, -I${BUILDLINK_X11_DIR}/include and
@@ -1509,7 +1552,6 @@
buildlink.mk instead. The following variables may also be replaced with
buildlink.mk files:
- USE_CURSES --> .include "../../devel/ncurses/buildlink.mk"
USE_LIBINTL --> .include "../../devel/gettext-lib/buildlink.mk"
USE_LTDL --> .include "../../devel/libtool/buildlink.mk"
USE_MESA --> .include "../../graphics/Mesa/buildlink.mk"
@@ -1574,7 +1616,7 @@
これには、pkgsrc/pkgtools/url2pkgをインストールしておくことが必要です。
* Makefileに、必要な編集を加えます。
- * pkg/DESCRの内容を書きます
+ * DESCRの内容を書きます
* ``make configure''
* configureの段階でわかった依存関係をすべて、パッケージのMakefileに書き加
えます。
@@ -1595,7 +1637,7 @@
* PLISTを作成します:
# make install
- # make print-PLIST > pkg/PLIST
+ # make print-PLIST > PLIST
# make deinstall
# make install
# make deinstall
@@ -1605,7 +1647,7 @@
# make print-PLIST
- もし、なにかファイルが見つかれば、それらはpkg/PLIST*に不足しているので、
+ もし、なにかファイルが見つかれば、それらはPLISTに不足しているので、
追加してください。
* これでPLISTの修正ができました。パッケージを再度インストールして、バイナ
リーパッケージを作ります:
@@ -1861,8 +1903,8 @@
ご覧ください(このパッケージは、構築の際にjpegのソースがソースの状態で存在す
ることに依存しています)。
- if [ ! -e ${PKGSRCDIR}/graphics/jpeg/${WRKDIR:T}/jpeg-6b ]; then \
- cd ${PKGSRCDIR}/../../graphics/jpeg && ${MAKE} extract; \
+ if [ ! -e ${_PKGSRCDIR}/graphics/jpeg/${WRKDIR:T}/jpeg-6b ]; then \
+ cd ${_PKGSRCDIR}/../../graphics/jpeg && ${MAKE} extract; \
fi
このように、別のパッケージの構築用にソースを展開する場合は、構築するパッケー
@@ -1871,7 +1913,7 @@
追加することです。
pre-clean:
- cd ${PKGSRCDIR}/../../graphics/jpeg && ${MAKE} clean
+ cd ${_PKGSRCDIR}/../../graphics/jpeg && ${MAKE} clean
また、便利に使うことができるBUILD_USES_MSGFMTおよびBUILD_USES_GETTEXT_M4定
義にも注意してください。前者は、基本システムにmsgfmt(1)があるかどうか調べて、
@@ -1945,7 +1987,21 @@
既存のパッケージに修正を加えたときに、PKGNAMEのバージョン番号を変えると便利
な場合があります。元の作者による将来のバージョンと衝突しないようにするため、
-'nb1'を後に付けます(さらにバージョンを上げるときは'nb2'などとします)。
+PKGREVISION=1 (2,. ..)を設定して、
+パッケージのバージョンに'nb1' ('nb2', ...)という接尾辞をつけることができます。
+この"nb"は、pkgツール群からは"."と同様の扱いを受けます。たとえば、
+
+DISTNAME= foo-17.42
+PKGREVISION= 9
+
+とすると、PKGNAMEはfoo-17.42nb9になります。
+
+このパッケージの新しいリリース版が出た際には、
+PKGREVISIONは消してください。
+たとえば、上で例示したパッケージの新しいマイナーリリースに際しては、
+以下のようにします
+
+DISTNAME= foo-17.43
10.18 "Could not find bsd.own.mk" - 何がいけないの?
@@ -2000,41 +2056,7 @@
===============================
パッケージによっては1.4Y以前のNetBSD自身のcursesにはなかった機能を必要とし
-ます。そんな機能を使うパッケージ用の方法が二つあります。USE_CURSES変数を使
-う方法と、そのパッケージのMakefileで../../devel/ncurses/buildlink.mkをイン
-クルードする方法です。
-
-
- 10.20.1 USE_CURSES
- ===================
-
-パッケージのMakefileでUSE_CURSESを設定した場合、そのシステムでのncursesへの
-依存関係の必要性に応じて、自動的にNEED_NCURSESがYESかNOに設定されます。この
-変数を、たとえば、ncursesを使うかどうかをパッケージに知らせるために、
-configureの引数に追加して使うことができます。
-
-さらに、いくつかのファイル名に対してREPLACE_NCURSESを設定することができます。
-パッケージがncursesを必要としない場合は、これが設定された各ファイル中のすべ
-ての'ncurses'が'curses'に置換されます。ncursesがインストールされていて、か
-つパッケージのconfigureスクリプトがncursesを優先して使うようになっている場
-合、この変数を使う必要があるかもしれません。
-
-たとえばpkgsrc/mail/muttでは、関連する部分は以下の各行です:
-
- USE_CURSES= YES
- REPLACE_NCURSES= configure configure.in
- ...
- .include "../../mk/bsd.prefs.mk"
-
- .if defined(NEED_NCURSES) && ${NEED_NCURSES} == "YES"
- CONFIGURE_ARGS+= --with-curses=${LOCALBASE}
- .endif
-
-NEED_NCURSES変数はbsd.prefs.mkで設定されるので、この変数を確認するのは
-bsd.prefs.mkをインクルードした後でなければならないことに注意してください。
-
- 10.20.2 devel/ncurses/buildlink.mk
- ==================================
+ます。
パッケージのMakefileで../../devel/ncurses/buildlink.mkをインクルードすると、
pre-configure時に、cursesライブラリーとncurses機能用のヘッダーが
@@ -2101,8 +2123,52 @@
10.22 パッケージでアカウントを作成する場合の適切な方法は?
=========================================================
-たとえば、pkgsrc/sysutils/amanda-common/{Makefile,pkg/INSTALL}でどのように
-しているかを見てください。
+パッケージ特有のグループやユーザーをpre-install時に作成するよう制御するため、
+二つのmake変数があります。
+一つ目はPKG_GROUPSで、
+group[:groupid]という要素(グループIDはあってもなくてもかまいません)を列挙したものです。
+二つ目はPKG_USERSで、
+以下のような形式の要素を列挙したものです:
+
+ user:group[:[userid][:[description][:[home][:shell]]]]
+
+userとgroupのみが必須であり、それ以外はあってもなくてもかまいません。
+簡単な例は、以下のとおりです:
+
+ PKG_GROUPS= foogroup
+ PKG_USERS= foouser:foogroup
+
+もっと複雑な、二つのグループと二つのユーザーを作成する例は、以下のとおりです:
+
+ PKG_GROUPS= group1 group2:1005
+ PKG_USERS= first:group1::First\\ User \
+ second:group2::Second\\ User:/home/second:${SH}
+
+ユーザーのホームディレクトリーやログインシェルを指定しなかった場合の、
+デフォルトのホームディレクトリーは/nonexistent、
+ログインシェルは/sbin/nologinです。
+
+これらの変数を指定するほか、
+パッケージのMakefileで、bsd.pkg.mkをインクルードする前に
+"../../mk/bsd.pkg.install.mk"をインクルードする必要があります。
+これにより、pre-install時にユーザーとグループが作成されるようになり、
+post-deinstall時にはこのユーザーとグループの削除を管理者に促すようになります。
+
+
+ 10.23 コンパイラーのバグへの対処方法
+ ====================================
+
+ソースファイルのなかには、
+コンパイラーのバージョンとアーキテクチャーの組合せによって、
+また、ほとんどの場合は、最適化を有効にしたことも関係して、
+コンパイラーのバグを発現させるものがあります。
+よくある症状は、gccの内部エラーや、
+ファイルのコンパイルが完了しないというものです。
+
+たいていは、回避策として、MACHINE_ARCHとコンパイラーのバージョンを確認し、
+問題のあるファイル/MACHINE_ARCH/コンパイラーの組合せに対して最適化を無効にし、
+そのことをdoc/HACKSに文書化しておくことが必要となります。
+例についてはdoc/HACKSを参照してください。
11 提出およびコミット
@@ -2156,7 +2222,7 @@
ときにcvsが文句を言います。さらに、この新しいパッケージを、categoryの
Makefileに忘れずに追加してください。
-初回のインポートでは、コミットメッセージにpkg/DESCRファイルの内容を含めてお
+初回のインポートでは、コミットメッセージにDESCRファイルの内容を含めてお
き、どういうパッケージなのかがメーリングリストの読者にわかるようにしてくだ
さい。
@@ -2226,7 +2292,7 @@
.include "../../mk/bsd.pkg.mk"
- 12.1.2 pkg/DESCR
+ 12.1.2 DESCR
================
GNU version of yacc. Can make re-entrant parsers, and numerous other
@@ -2234,7 +2300,7 @@
of the NetBSD source tree is beyond me.
- 12.1.3 pkg/PLIST
+ 12.1.3 PLIST
================
@comment <$>NetBSD<$>
@@ -2262,7 +2328,7 @@
移動し、「pkglint」を実行するだけです。
% pkglint
- OK: checking pkg/DESCR.
+ OK: checking ./DESCR.
OK: checking Makefile.
OK: checking distinfo.
OK: checking patches/patch-aa.
@@ -2284,7 +2350,7 @@
# cd bison
# mkdir patches pkg
-セクション11.1のようにMakefile、pkg/DESCR、およびpkg/PLISTを作り、distfile
+セクション11.1のようにMakefile、DESCRおよびPLISTを作り、distfile
を取得します。
# make fetch
@@ -2513,9 +2579,9 @@
- cd /usr/pkgsrc ; make install ; make package
- /usr/pkgsrc/packages を
ftp://ftp.netbsd.org/pub/NetBSD/packages/\
- `uname -r | sed 's@\.\([0-9]*\)[\._].*@\.\1@'`/`sysctl -n hw.machine_arch`
+ `uname -r | sed 's@\.\([0-9]*\)[\._].*@\.\1@'`/`uname -p`
へアップロードする。
- - 必要ならln -s `sysctl -n hw.machine` `sysctl -n hw.machine_arch`
+ - 必要ならln -s `uname -m` `uname -p`
必要なディスクスペース: 不明