[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
pkgsrc/doc/guide/files/fixes.xml: 1.55 -> 1.56
以下のページの更新をしました。ツッコミをお願いします。
pkgsrc/doc/guide/files/fixes.xml: 1.55 -> 1.56
> revision 1.56
> date: 2006/06/21 08:42:21; author: rillig; state: Exp; lines: +27 -41
> The advice to use CFLAGS+= foo instead of CFLAGS= foo does not belong
> into the developer's part, and has since been moved to the user's part.
> Rewrote the section on "how to pull in variables from mk.conf", since
> the word "problem" in the first sentence had bothered me over and over
> again. Removed the documentation for adding "fetch" to
> INTERACTIVE_STAGE, since we already have FETCH_MESSAGE for that purpose.
> Added "extract" to the valid values for INTERACTIVE_STAGE, since there
> might be password-protected distfiles. Now that "fetch" is excluded from
> INTERACTIVE_STAGE, it is a list of _phases_ (note the misnomer here)
> that are required once for every build of a package. "fetch" only needs
> to be done once at all, so it is good to have these issues separated.
水曜日までに異議がなければ、 commit します。
以下、訳と原文それぞれの新旧の差分です。
--- fixes.xml.orig 2006-11-28 23:51:45.000000000 +0900
+++ fixes.xml 2006-11-28 23:51:45.000000000 +0900
@@ -1,6 +1,6 @@
-<!-- $NetBSD: fixes.xml,v 1.55 2006/06/14 21:20:16 darcy Exp $ -->
+<!-- $NetBSD: fixes.xml,v 1.56 2006/06/21 08:42:21 rillig Exp $ -->
<!-- Based on english version: -->
-<!-- NetBSD: fixes.xml,v 1.55 2006/06/14 21:20:16 darcy Exp -->
+<!-- NetBSD: fixes.xml,v 1.56 2006/06/21 08:42:21 rillig Exp -->
<chapter id="fixes"> <?dbhtml filename="fixes.html"?>
<title>パッケージを動くようにする</title>
@@ -9,39 +9,31 @@
<title>一般的な操作</title>
<sect2 id="pulling-vars-from-etc-mk.conf">
- <title>/etc/mk.confから変数を捕まえる方法</title>
+ <title><filename>mk.conf</filename> から利用者が設定可能な変数を捕まえる方法</title>
- <para><varname>MAKECONF</varname>や<filename>/etc/mk.conf</filename>
- で上書き可能な、パッケージで定義された変数には問題が
- あります。それは、変数は &man.make.1; がそれを使う時に展開されるが、プリプロセッサー
- 風の文(.if、.ifdefそして.ifndef)は読み込み時に評価される事です。したがって、
- .if*文内で変数(<filename>/etc/mk.conf</filename>でセットされる可能性のある)を使う時は、その.if*
- ステートメントの前に<filename>/etc/mk.conf</filename>をインクルードしておかなくていけません。</para>
+ <para>pkgsrc の利用者は、<varname>MAKECONF</varname>
+ によって参照されるファイル (標準では <filename>/etc/mk.conf</filename>)
+ でいくつかの変数を上書きして、pkgsrc の設定をすることができます。
+ このような変数を &man.make.1; のプリプロセッサーディレクティブ
+ (たとえば <literal>.if</literal> や
+ <literal>.for</literal>) の内部で使いたい場合は、
+ 利用者の設定が読み込まれる場所より前で
+ <filename>../../mk/bsd.prefs.mk</filename> をインクルードする必要があります。</para>
+
+ <para>しかし、変数によっては、
+ まだ定義されていない変数への参照を含んでいることがあるために、
+ <filename>../../mk/bsd.prefs.mk</filename>
+ をインクルードした後では完全に定義することができないものがあります。
+ シェルコマンドの場合は、変数の実態はマクロであり、
+ 使われるときにしか展開されないので、このことは問題にはなりません。
+ ただし、前述したプリプロセッサーディレクティブの内部や、
+ 依存性を記した行 (<literal>target: dependencies</literal> のような形式の行)
+ においては、読み込み時に変数が展開されます。</para>
+
+ <note><para>各変数が読み込み時に使用可能か、
+ 実行時にのみ使用可能かを網羅した一覧は、現在のところありませんが、
+ 準備をしているところです。</para></note>
- <para><filename>/etc/mk.conf</filename>や<varname>MAKECONF</varname>が存在したら、それらをインクルードするというad-hocな
- 方法をとらずに、すべてのプリプロセッサー風の.if、.ifdef、または.ifndef文の
- 前で、<filename>pkgsrc/mk/bsd.prefs.mk</filename>をインクルードしてください。</para>
-
-<programlisting>
- .include "../../mk/bsd.prefs.mk"
-
- .if defined(USE_MENUS)
- # ...
- .endif
-</programlisting>
-
- <para><filename>/etc/mk.conf</filename> で <varname>CFLAGS</varname> 変数を設定したい場合は、
- 以下のような形で使うようにしてください。
-
-<programlisting>
- CFLAGS+= -your -flags
-</programlisting>
-
- <varname>CFLAGS=</varname> のようにする (つまり、<quote>+</quote>を付けない) と、
- 独自のフラグを追加する必要があるパッケージで問題を起こすことがあります。
- また、CPUにあわせた最適化に関心がある場合は、
- <filename role="pkg">devel/cpuflags</filename>
- パッケージを見ておくとよいでしょう。</para>
</sect2>
<sect2 id="where-to-install-documentation">
@@ -852,9 +844,9 @@
状況は何通りもありえます:</para>
<itemizedlist>
- <listitem>
- <para>distfileの取得に関する補助</para>
- </listitem>
+ <listitem>
+ <para>distfile の展開時に、パッケージによってはパスワードを要求することがあります。</para>
+ </listitem>
<listitem>
<para>パッケージの構築前の設定の補助</para>
Index: fixes.xml
===================================================================
RCS file: /cvsroot/pkgsrc/doc/guide/files/fixes.xml,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -r1.55 -r1.56
--- fixes.xml 14 Jun 2006 21:20:16 -0000 1.55
+++ fixes.xml 21 Jun 2006 08:42:21 -0000 1.56
@@ -1,4 +1,4 @@
-<!-- $NetBSD: fixes.xml,v 1.55 2006/06/14 21:20:16 darcy Exp $ -->
+<!-- $NetBSD: fixes.xml,v 1.56 2006/06/21 08:42:21 rillig Exp $ -->
<chapter id="fixes"> <?dbhtml filename="fixes.html"?>
<title>Making your package work</title>
@@ -7,45 +7,31 @@
<title>General operation</title>
<sect2 id="pulling-vars-from-etc-mk.conf">
- <title>How to pull in variables from /etc/mk.conf</title>
+ <title>How to pull in user-settable variables from <filename>mk.conf</filename></title>
- <para>The problem with package-defined variables that can be
- overridden via <varname>MAKECONF</varname> or
- <filename>/etc/mk.conf</filename> is that &man.make.1; expands a
- variable as it is used, but evaluates preprocessor-like
- statements (.if, .ifdef and .ifndef) as they are read. So, to
- use any variable (which may be set in
- <filename>/etc/mk.conf</filename>) in one of the .if*
- statements, the file <filename>/etc/mk.conf</filename> must be
- included before that .if* statement.</para>
+ <para>The pkgsrc user can configure pkgsrc by overriding several
+ variables in the file pointed to by <varname>MAKECONF</varname>,
+ which is <filename>/etc/mk.conf</filename> by default. When you
+ want to use those variables in the preprocessor directives of
+ &man.make.1; (for example <literal>.if</literal> or
+ <literal>.for</literal>), you need to include the file
+ <filename>../../mk/bsd.prefs.mk</filename> before, which in turn
+ loads the user preferences.</para>
+
+ <para>But note that some variables may not be completely defined
+ after <filename>../../mk/bsd.prefs.mk</filename> has been
+ included, as they may contain references to variables that are
+ not yet defined. In shell commands this is no problem, since
+ variables are actually macros, which are only expanded when they
+ are used. But in the preprocessor directives mentioned above and
+ in dependency lines (of the form <literal>target:
+ dependencies</literal>) the variables are expanded at load
+ time.</para>
+
+ <note><para>Currently there is no exhaustive list of all
+ variables that tells you whether they can be used at load time
+ or only at run time, but it is in preparation.</para></note>
- <para>Rather than having a number of ad-hoc ways of including
- <filename>/etc/mk.conf</filename>, should it exist, or
- <varname>MAKECONF</varname>, should it exist, include the
- <filename>pkgsrc/mk/bsd.prefs.mk</filename> file in the package
- Makefile before any preprocessor-like .if, .ifdef, or .ifndef
- statements:</para>
-
-<programlisting>
- .include "../../mk/bsd.prefs.mk"
-
- .if defined(USE_MENUS)
- # ...
- .endif
-</programlisting>
-
- <para>If you wish to set the <varname>CFLAGS</varname> variable
- in <filename>/etc/mk.conf</filename>, please make sure to use:
-
-<programlisting>
- CFLAGS+= -your -flags
-</programlisting>
-
- Using <varname>CFLAGS=</varname> (i.e. without the
- <quote>+</quote>) may lead to problems with packages that need
- to add their own flags. Also, you may want to take a look at
- the <filename role="pkg">devel/cpuflags</filename> package if
- you're interested in optimization for the current CPU.</para>
</sect2>
<sect2 id="where-to-install-documentation">
@@ -897,9 +883,9 @@
in a number of ways:</para>
<itemizedlist>
- <listitem>
- <para>help in fetching the distfiles</para>
- </listitem>
+ <listitem>
+ <para>When extracting the distfiles, some packages may ask for passwords.</para>
+ </listitem>
<listitem>
<para>help to configure the package before it is built</para>