Chapter 22. よくある質問

この節では、パッケージ作成中に湧くような疑問と回答を掲載します。 あなたがお持ちの疑問に対する答がここにない場合は、 まず、他の節を見てみてください。 それでも答が見つからなければ、 pkgsrc-users メーリングリストで尋ねてください。

22.1. MAKEFLAGS, .MAKEFLAGS, MAKE_FLAGS の各変数の違いは?
22.2. MAKE, GMAKE, MAKE_PROGRAM の各変数の違いは?
22.3. CC, PKG_CC, PKGSRC_COMPILER の各変数の違いは?
22.4. BUILDLINK_LDFLAGS, BUILDLINK_LDADD, BUILDLINK_LIBS の各変数の違いは?
22.5. make show-var VARNAME=BUILDLINK_PREFIX.foo したら、空だといわれるのはなぜ?
22.6. ${MASTER_SITE_SOURCEFORGE:=package/} ってどういうこと? 中身の := がわかりません。
22.7. パッケージ開発者向けの メーリングリストはどれ?
22.8. pkgsrc の資料はどこにある?
22.9. 少し時間があるんだけど、 何をしたらいい?

22.1.

MAKEFLAGS, .MAKEFLAGS, MAKE_FLAGS の各変数の違いは?

MAKEFLAGS は、 pkgsrc 内部で呼び出される make(1) に渡されるフラグであり、 MAKE_FLAGS は、パッケージを構築するときに MAKE_PROGRAM に渡されるフラグです。 [FIXME: What is .MAKEFLAGS for?]

22.2.

MAKE, GMAKE, MAKE_PROGRAM の各変数の違いは?

MAKE は、 pkgsrc の基盤が使う make(1) プログラムへのパスです。GMAKE は、GNU Make へのパスですが、これを使うためには USE_TOOLS+=gmake する必要があります。MAKE_PROGRAM は、 パッケージの構築に使われる Make プログラムへのパスです。

22.3.

CC, PKG_CC, PKGSRC_COMPILER の各変数の違いは?

CC は、本物の C コンパイラーへのパスで、pkgsrc の利用者が設定することができます。 PKG_CC は、コンパイラーのラッパーへのパスです。 PKGSRC_COMPILER は、 コンパイラーへのパスではなく、使われるコンパイラーの種類です。 最後の変数に関するさらなる情報は、 mk/compiler.mk をご覧ください。

22.4.

BUILDLINK_LDFLAGS, BUILDLINK_LDADD, BUILDLINK_LIBS の各変数の違いは?

[FIXME]

22.5.

make show-var VARNAME=BUILDLINK_PREFIX.foo したら、空だといわれるのはなぜ?

最適化のために、一部の変数は wrapper の段階以降でしか使えません。 wrapper の段階をシミュレートするには、 お尋ねのコマンドに PKG_PHASE=wrapper を付け加えます。

22.6.

${MASTER_SITE_SOURCEFORGE:=package/} ってどういうこと? 中身の := がわかりません。

:= は、一見、代入演算子のようですが、 そうではありません。 ${LIST:old_string=new_string} という修飾子が make(1) マニュアルページに書かれており、 ${SRCS:.c=.o} というのを見たことがあるかもしれませんが、 これはこの修飾子の特殊な形です。 この MASTER_SITE_* の事例では、 old_string は空の文字列、 new_stringpackage/ です。このため、 := がくっついているのです。

22.7.

パッケージ開発者向けの メーリングリストはどれ?

tech-pkg

pkgsrc 開発関連の技術的な議論のためのメーリングリストです。 たとえば、pkgsrc の基盤の変更を求めるフィードバック、 新機能の提案、pkgsrc の新しいプラットフォームへの移植に関する質問、 パッケージ保守のための助言、多数のパッケージに影響のあるパッチ、 基盤にバグが見つかったために pkgsrc-users からここに場を移された助けの要請などです。

pkgsrc-bugs

send-pr(1) で送られた "pkg" カテゴリーのバグレポートはすべてここに流れます。 ここへバグの報告を直接しないでください。 バグの報告には、他のいずれかのメーリングリストを使ってください。

22.8.

pkgsrc の資料はどこにある?

pkgsrc に関する資料がある場所は、 たくさんあります。

  • The pkgsrc guide (この文書) は、数多くある pkgsrc の部品について説明した章を集めたものですが、 内容が古くなりがちな章もあります。どの章がそうなのかは、 示しにくいのですが。

  • メーリングリストのアーカイブ (http://mail-index.NetBSD.org/ 参照) では、 ある機能に関する議論、pkgsrc の基盤の新しい部品の告知や、 時にはある機能を廃止することにしたという告知などを見ることができます。 これの便利なところは、各記事に日付がつけられていることです。

  • mk/ ディレクトリーにあるファイルの多くは、冒頭のコメントで、 そのファイルの目的と、 pkgsrc 利用者やパッケージ作者による使用方法を説明しています。 このドキュメンテーションを簡単に見つける方法は、bmake help を実行することです。

  • CVS のログメッセージは豊富な情報源ですが、 かなり省略して書かれる傾向が (特に、頻繁におこなわれる処置に関するログでは) あります。 何が変わったかを詳細に説明したログもありますが、 そのようなものは他の pkgsrc 開発者向けのものであって、 平均的な pkgsrc 利用者向けのものではありません。 ログメッセージは変更点を記録しているだけなので、 変更前のことを知らない場合は、 たいして価値がないかもしれません。

  • pkgsrc の部品のなかには、暗黙の文書化、 つまり、資料はそのコードを書いた開発者の頭の中にあるだけ、 というものもあります。このようなものの情報を入手するには、 cvs annotate コマンドを使ってコードを書いた人を調べて、 後から他の人が見られるように (前の説明参照) tech-pkg メーリングリストで尋ねてください。 担当の開発者がメールを確実に読むようにするため、 その人に CC してもよいでしょう。

22.9.

少し時間があるんだけど、 何をしたらいい?

これは、まだよく尋ねられてはいないのですが、 答えてしまいます。

  • pkg_chk -N (このコマンドは pkgtools/pkg_chk パッケージにあります) を実行します。 こうすると、インストールしているパッケージについて、 もっと新しいバージョンがあるが pkgsrc では更新されていないものを教えてくれます。

  • pkgsrc/doc/TODO を見ます — このファイルには、提案されている新しいパッケージの一覧と、 実現したらよい pkgsrc の整理や拡張の一覧が載っています。

  • pkgsrc-wip review メーリングリストでレビュー依頼が出ているパッケージをレビューします。