[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
pkgsrc/doc/guide/files/buildlink.xml 1.19
以下のページの翻訳をしました。ツッコミをお願いします。
pkgsrc/doc/guide/files/buildlink.xml 1.19
月曜日までに異議がなければ、 commit します。
原文は
http://cvsweb.NetBSD.org/bsdweb.cgi/%7Echeckout%7E/pkgsrc/doc/guide/files/buildlink.xml?rev=1.19&content-type=text/plain
http://cvsweb.NetBSD.org/bsdweb.cgi/%7Echeckout%7E/htdocs/Documentation/pkgsrc/buildlink.html?rev=1.56&content-type=text/html
で、訳文は
http://www.na.rim.or.jp/%7Ekano/tmp/pkgsrc/doc/guide/files/buildlink.xml
http://www.na.rim.or.jp/%7Ekano/tmp/Documentation/pkgsrc/buildlink.html
に置いてあります。
以下は原文との差分です。
--- buildlink.xml.orig 2006-09-24 16:53:25.000000000 +0900
+++ buildlink.xml 2006-09-30 00:28:34.000000000 +0900
@@ -1,178 +1,182 @@
<!-- $NetBSD: buildlink.xml,v 1.19 2006/09/13 23:23:39 wiz Exp $ -->
+<!-- Based on english version: -->
+<!-- NetBSD: buildlink.xml,v 1.19 2006/09/13 23:23:39 wiz Exp -->
<chapter id="buildlink">
- <title>Buildlink methodology</title>
+ <title>buildlink 方法論</title>
- <para>Buildlink is a framework in pkgsrc that controls what headers and libraries
- are seen by a package's configure and build processes. This is implemented
- in a two step process:</para>
+ <para>buildlink は pkgsrc における枠組のひとつで、パッケージのコンフィギュレーション (configure)
+ および構築 (build) の過程で、どのヘッダーやライブラリーが使われるかを制御するものです。
+ これは以下の二つの手順によって実現されます。</para>
<orderedlist>
<listitem>
- <para>Symlink headers and libraries for dependencies into
- <varname>BUILDLINK_DIR</varname>, which by default is a subdirectory
- of <varname>WRKDIR</varname>.</para>
+ <para><varname>BUILDLINK_DIR</varname> (標準では、
+ <varname>WRKDIR</varname> のサブディレクトリー) 内に、
+ 依存するヘッダーやライブラリーを指すシンボリックリンクを作ります。</para>
</listitem>
<listitem>
- <para>Create wrapper scripts that are used in place of the normal compiler
- tools that translate <option>-I${LOCALBASE}/include</option> and
- <option>-L${LOCALBASE}/lib</option> into references to
- <varname>BUILDLINK_DIR</varname>. The wrapper scripts also make
- native compiler on some operating systems look like GCC, so that
- packages that expect GCC won't require modifications to build with
- those native compilers.</para>
+ <para>通常のコンパイラーツールを置き換えるラッパースクリプトを生成します。
+ これは、<option>-I${LOCALBASE}/include</option> および
+ <option>-L${LOCALBASE}/lib</option> を、
+ <varname>BUILDLINK_DIR</varname> への参照に変換します。
+ また、オペレーティングシステムによっては、このラッパースクリプトは、
+ ネイティブのコンパイラーが GCC に見えるようにし、
+ GCC を要求するパッケージを修正することなく、
+ ネイティブのコンパイラーで構築できるようにします。</para>
</listitem>
</orderedlist>
- <para>This normalizes the environment in which a package is built so that the
- package may be built consistently despite what other software may be
- installed. Please note that the normal system header and library paths,
- e.g. <filename>/usr/include</filename>,
- <filename>/usr/lib</filename>, etc., are always searched -- buildlink3 is
- designed to insulate the package build from non-system-supplied
- software.</para>
+ <para>こうすることで、パッケージ構築環境を正規化して、
+ 他にどのようなソフトウェアがインストールされているかにかかわらず、
+ パッケージを一貫して構築できるようにします。
+ なお、通常のシステムヘッダーおよびライブラリーのパス、
+ たとえば <filename>/usr/include</filename>,
+ <filename>/usr/lib</filename> などは、すでに探索されていることに注意してください
+ -- buildlink3 は、パッケージの構築を、
+ システム非標準のソフトウェアから独立させるために設計されたものなのです。</para>
<sect1 id="converting-to-buildlink3">
- <title>Converting packages to use buildlink3</title>
+ <title>パッケージを変換して buildlink3 を使うようにする</title>
- <para>The process of converting packages to use the buildlink3
- framework (<quote>bl3ifying</quote>) is fairly straightforward.
- The things to keep in mind are:</para>
+ <para>パッケージが buildlink3 の枠組を使うようにする変換の過程
+ (<quote>bl3ifying</quote> - buildlink3 化) は、かなり単純です。
+ 以下のことに注意してください。</para>
<orderedlist>
<listitem>
- <para>Ensure that the build always calls the wrapper scripts
- instead of the actual toolchain. Some packages are tricky,
- and the only way to know for sure is the check
- <filename>${WRKDIR}/.work.log</filename> to see if the
- wrappers are being invoked.</para>
+ <para>構築の際には、常に、
+ toolchain 本体ではなくラッパースクリプトが呼ばれるようにしてください。
+ パッケージによっては巧妙なものがあるので、
+ ラッパーが呼ばれたかどうかを確実に調べる方法は、
+ <filename>${WRKDIR}/.work.log</filename> を確認することだけです。</para>
</listitem>
<listitem>
- <para>Don't override <varname>PREFIX</varname> from within
- the package Makefile, e.g. Java VMs, standalone shells,
- etc., because the code to symlink files into
- <filename>${BUILDLINK_DIR}</filename> looks for files
- relative to <quote>pkg_info -qp <replaceable>pkgname</replaceable></quote>.
+ <para>たとえば Java VM やスタンドアローンのシェルでは、
+ パッケージの Makefile で <varname>PREFIX</varname>
+ を上書きしないでください。<filename>${BUILDLINK_DIR}</filename>
+ からシンボリックリンクするためのコードは、
+ <quote>pkg_info -qp <replaceable>pkgname</replaceable></quote>
+ からの相対位置にあるファイルを探すからです。
</para>
</listitem>
<listitem>
- <para>Remember that <emphasis>only</emphasis> the
- <filename>buildlink3.mk</filename> files that you list in a
- package's Makefile are added as dependencies for that package.
+ <para>パッケージの依存性として追加されるのは、パッケージの Makefile に列挙した
+ <filename>buildlink3.mk</filename> ファイル<emphasis>だけ</emphasis>
+ であることを忘れないでください。
</para>
</listitem>
</orderedlist>
- <para>If a dependency on a particular package is required for its libraries and
- headers, then we replace:</para>
+ <para>あるパッケージのライブラリーやヘッダーに対する依存性が必要な場合は、</para>
<programlisting>
DEPENDS+= foo>=1.1.0:../../category/foo
</programlisting>
- <para>with</para>
+ <para>を、以下のものに置き換えます。</para>
<programlisting>
.include "../../category/foo/buildlink3.mk"
</programlisting>
- <para>The buildlink3.mk files usually define the required dependencies.
- If you need a newer version of the dependency when using buildlink3.mk
- files, then you can define it in your Makefile; for example:</para>
+ <para>通常は、buildlink3.mk ファイルで必要な依存性を定義します。
+ buildlink3.mk ファイルを使う際に、より新しいバージョンへの依存性が必要な場合は、
+ そのことを Makefile で定義することができます。たとえば以下のようにします。</para>
<programlisting>
BUILDLINK_API_DEPENDS.foo+= foo>=1.1.0
.include "../../category/foo/buildlink3.mk"
</programlisting>
- <para>There are several <filename>buildlink3.mk</filename>
- files in <filename>pkgsrc/mk</filename>
- that handle special package issues:</para>
+ <para><filename>pkgsrc/mk</filename> 以下には、
+ 特別なパッケージを扱うための
+ <filename>buildlink3.mk</filename> ファイルがいくつかあります。</para>
<itemizedlist>
<listitem>
- <para><filename>bdb.buildlink3.mk</filename> chooses either
- the native or a pkgsrc Berkeley DB implementation based on
- the values of <varname>BDB_ACCEPTED</varname> and
- <varname>BDB_DEFAULT</varname>.</para>
+ <para><filename>bdb.buildlink3.mk</filename> は、
+ <varname>BDB_ACCEPTED</varname> および
+ <varname>BDB_DEFAULT</varname> の値にもとづき、
+ ネイティブまたは pkgsrc の Berkeley DB の実装のどちらかを選択します。</para>
</listitem>
<listitem>
- <para><filename>curses.buildlink3.mk</filename>: If the system
- comes with neither Curses nor NCurses, this will take care
- to install the <filename
- role="pkg">devel/ncurses</filename> package.</para>
+ <para><filename>curses.buildlink3.mk</filename>: システムに
+ Curses も NCurses も附属しない場合に、<filename
+ role="pkg">devel/ncurses</filename>
+ パッケージをインストールしてくれます。</para>
</listitem>
<listitem>
- <para><filename>krb5.buildlink3.mk</filename> uses the value
- of <varname>KRB5_ACCEPTED</varname> to choose between
- adding a dependency on Heimdal or MIT-krb5 for packages that
- require a Kerberos 5 implementation.</para>
+ <para><filename>krb5.buildlink3.mk</filename> は、
+ <varname>KRB5_ACCEPTED</varname> の値を使って、
+ Kerberos 5 の実装を必要とするパッケージを
+ Heimdal または MIT-krb5 のどちらに依存させるかを選択します。</para>
</listitem>
<listitem>
- <para><filename>motif.buildlink3.mk</filename> checks for a
- system-provided Motif installation or adds a dependency on
- <filename role="pkg">x11/lesstif</filename> or <filename
- role="pkg">x11/openmotif</filename>. The user can set
- <varname>MOTIF_TYPE</varname> to <quote>dt</quote>,
- <quote>lesstif</quote>, or <quote>openmotif</quote> to choose
- which Motif version will be used.</para>
+ <para><filename>motif.buildlink3.mk</filename> は、
+ システム附属の Motif がインストールされているかを確認し、
+ ない場合は、<filename role="pkg">x11/lesstif</filename> または <filename
+ role="pkg">x11/openmotif</filename> への依存性を追加します。
+ 利用者は、<varname>MOTIF_TYPE</varname> を <quote>dt</quote>,
+ <quote>lesstif</quote> または <quote>openmotif</quote> に設定して、
+ どの版の Motif を使うかを選択することができます。</para>
</listitem>
<listitem>
- <para><filename>oss.buildlink3.mk</filename> defines several
- variables that may be used by packages that use the
- Open Sound System (OSS) API.</para>
+ <para><filename>oss.buildlink3.mk</filename> は、
+ Open Sound System (OSS) API
+ を使うパッケージが使うことがある変数をいくつか定義します。</para>
</listitem>
<listitem>
- <para><filename>pgsql.buildlink3.mk</filename> will accept
- either Postgres 7.3 or 7.4, whichever is found installed. See
- the file for more information.</para>
+ <para><filename>pgsql.buildlink3.mk</filename> は、
+ Postgres 7.3 または 7.4 のうち、インストールされているものを受け入れます。
+ さらなる情報は、このファイルの内容をご覧ください。</para>
</listitem>
<listitem>
- <para><filename>pthread.buildlink3.mk</filename> uses the value of
- <varname>PTHREAD_OPTS</varname> and checks for native pthreads or adds
- a dependency on <filename
- role="pkg">devel/pth</filename> as needed.</para>
+ <para><filename>pthread.buildlink3.mk</filename> は、
+ <varname>PTHREAD_OPTS</varname> の値を使うとともに、ネイティブの pthread があるか確認し、
+ ない場合は、必要に応じて <filename
+ role="pkg">devel/pth</filename> への依存性を追加します。</para>
</listitem>
<listitem>
- <para><filename>xaw.buildlink3.mk</filename> uses the value of
- <varname>XAW_TYPE</varname> to choose a particular Athena widgets
- library.</para>
+ <para><filename>xaw.buildlink3.mk</filename> は、
+ <varname>XAW_TYPE</varname> の値を使って、具体的にどの
+ Athena widget ライブラリーを使うかを選択します。</para>
</listitem>
</itemizedlist>
- <para>The comments in those <filename>buildlink3.mk</filename>
- files provide a more complete
- description of how to use them properly.</para>
+ <para>それぞれの <filename>buildlink3.mk</filename>
+ ファイルのコメントに、
+ 適切な使い方に関するより詳しい説明があります。</para>
</sect1>
<sect1 id="creating-buildlink3.mk">
- <title>Writing <filename>buildlink3.mk</filename> files</title>
+ <title><filename>buildlink3.mk</filename> ファイルを書く</title>
- <para>A package's <filename>buildlink3.mk</filename> file is
- included by Makefiles to indicate the need to compile and link
- against header files and libraries provided by the package. A
- <filename>buildlink3.mk</filename> file should always provide
- enough information to add the correct type of dependency
- relationship and include any other
- <filename>buildlink3.mk</filename> files that it needs to find
- headers and libraries that it needs in turn.</para>
+ <para>パッケージの <filename>buildlink3.mk</filename> ファイルは、
+ そのパッケージに附属するヘッダーファイルやライブラリーをコンパイルしたりリンクしたりする必要があることを示すために、
+ Makefile からインクルードされます。
+ <filename>buildlink3.mk</filename> ファイルは、
+ 適切な種類の依存関係を追加したり、
+ さらに必要となるヘッダーやライブラリーを使うために別の
+ <filename>buildlink3.mk</filename> をインクルードしたりするために必要な情報を、
+ いつでも提供できるように作ります。</para>
- <para>To generate an initial <filename>buildlink3.mk</filename>
- file for further editing, Rene Hexel's <filename
+ <para>編集するための元となる <filename>buildlink3.mk</filename>
+ ファイルを作るには、Rene Hexel の <filename
role="pkg">pkgtools/createbuildlink</filename>
- package is highly recommended. For most packages, the following
- command will generate a good starting point for
- <filename>buildlink3.mk</filename> files:</para>
+ パッケージを使うことを強くおすすめします。ほとんどのパッケージに対しては、
+ 以下のコマンドを使うと、<filename>buildlink3.mk</filename>
+ ファイルのよい出発点となるものを作ってくれます。</para>
<screen>
&cprompt; <userinput>cd pkgsrc/<replaceable>category</replaceable>/<replaceable>pkgdir</replaceable>
@@ -180,11 +184,11 @@
</screen>
<sect2 id="anatomy-of-bl3">
- <title>Anatomy of a buildlink3.mk file</title>
+ <title>buildlink3.mk ファイルの分析</title>
- <para>The following real-life example
- <filename>buildlink3.mk</filename> is taken
- from <filename>pkgsrc/graphics/tiff</filename>:</para>
+ <para>以下に掲げるのは、
+ <filename>pkgsrc/graphics/tiff</filename> における
+ <filename>buildlink3.mk</filename> の実例です。</para>
<programlisting>
# $NetBSD: buildlink3.mk,v 1.7 2004/03/18 09:12:12 jlam Exp $
@@ -210,236 +214,235 @@
BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH:S/+$//}
</programlisting>
- <para>The header and footer manipulate
- <varname>BUILDLINK_DEPTH</varname>, which is common across all
- <filename>buildlink3.mk</filename> files and is used to track
- at what depth we are including
- <filename>buildlink3.mk</filename> files.</para>
+ <para>ヘッダーとフッターで、
+ <varname>BUILDLINK_DEPTH</varname> の値を操作しています。
+ この変数は、<filename>buildlink3.mk</filename>
+ を何段階インクルードしているかを追跡するために、
+ すべての <filename>buildlink3.mk</filename> ファイルの間で、
+ 共通に使われます。</para>
- <para>The first section controls if the dependency on
- <replaceable>pkg</replaceable> is added.
- <varname>BUILDLINK_DEPENDS</varname> is the global list of
- packages for which dependencies are added by
- buildlink3.</para>
+ <para>最初の節では、
+ <replaceable>pkg</replaceable>
+ への依存性が追加されるかどうかを制御しています。
+ <varname>BUILDLINK_DEPENDS</varname> は、
+ buildlink3 によって依存性が追加されるパッケージの大域的なリストです。</para>
- <para>The second section advises pkgsrc that the
- <filename>buildlink3.mk</filename> file for
- <replaceable>pkg</replaceable> has been included at some point.
- <varname>BUILDLINK_PACKAGES</varname> is the global list of
- packages for which <filename>buildlink3.mk</filename> files
- have been included. It must <emphasis>always</emphasis> be
- appended to within a <filename>buildlink3.mk</filename>
- file.</para>
+ <para>二つ目の節では、<replaceable>pkg</replaceable> の
+ <filename>buildlink3.mk</filename> ファイルがどこかでインクルードされていることを
+ pkgsrc に教えています。
+ <varname>BUILDLINK_PACKAGES</varname> は、<filename>buildlink3.mk</filename>
+ ファイルがインクルードされているパッケージの大域的なリストです。
+ <filename>buildlink3.mk</filename> ファイルでは、
+ この追加を<emphasis>必ず</emphasis>おこなう必要があります。</para>
- <para>The third section is protected from multiple inclusion
- and controls how the dependency on <replaceable>pkg</replaceable> is
- added. Several important variables are set in the section:</para>
+ <para>三つ目の説では、多重のインクルードを防いだうえで、
+ <replaceable>pkg</replaceable> への依存性をどのように追加するかを制御しています。
+ いくつもの重要な変数がこの節で設定されます。</para>
<itemizedlist>
<listitem>
<para><varname>BUILDLINK_API_DEPENDS.<replaceable>pkg</replaceable></varname>
- is the actual dependency recorded in the installed
- package; this should always be set using
- <command>+=</command> to ensure that
- we're appending to any pre-existing list of values. This
- variable should be set to the first version of the
- package that had an API change.
+ は、インストールされるパッケージに対して、実際に記録される依存性です。
+ この変数の既存のリストを残したまま追加するために、
+ かならず <command>+=</command> を使って設定します。
+ この変数の設定値は、
+ パッケージの API が現行のものになった以降の最初 (最古) のバージョンにします。
</para>
</listitem>
<listitem>
<para><varname>BUILDLINK_PKGSRCDIR.<replaceable>pkg</replaceable></varname>
- is the location of the <replaceable>pkg</replaceable>
- pkgsrc directory.</para>
+ は、pkgsrc における
+ <replaceable>pkg</replaceable> のディレクトリーです。</para>
</listitem>
<listitem>
<para><varname>BUILDLINK_DEPMETHOD.<replaceable>pkg</replaceable></varname>
- (not shown above) controls whether we use
- <varname>BUILD_DEPENDS</varname> or
- <varname>DEPENDS</varname> to add the dependency on
- <replaceable>pkg</replaceable>. The build dependency is
- selected by setting
+ (上の例には出てきません) は、
+ <replaceable>pkg</replaceable> への依存性として
+ <varname>BUILD_DEPENDS</varname> と
+ <varname>DEPENDS</varname> のどちらを使うかを制御します。
<varname>BUILDLINK_DEPMETHOD.<replaceable>pkg</replaceable></varname>
- to <quote>build</quote>. By default, the full dependency is
- used.</para>
+ を <quote>build</quote> にすれば、
+ 構築時の依存性となります。この変数を設定しなかった場合は、
+ 完全な依存性となります。</para>
</listitem>
<listitem>
<para><varname>BUILDLINK_INCDIRS.<replaceable>pkg</replaceable></varname>
- and
+ および
<varname>BUILDLINK_LIBDIRS.<replaceable>pkg</replaceable></varname>
- (not shown above) are lists of subdirectories of
+ (上の例には出てきません) は、ヘッダーおよびライブラリーの検索パスに追加するための、
<filename>${BUILDLINK_PREFIX.<replaceable>pkg</replaceable>}</filename>
- to add to the header and library search paths. These
- default to <quote>include</quote> and <quote>lib</quote>
- respectively.</para>
+ のサブディレクトリーです。設定しなかった場合は、それぞれ
+ <quote>include</quote> および <quote>lib</quote>
+ となります。</para>
</listitem>
<listitem>
<para><varname>BUILDLINK_CPPFLAGS.<replaceable>pkg</replaceable></varname>
- (not shown above) is the list of preprocessor flags to add
- to <varname>CPPFLAGS</varname>, which are passed on to the
- configure and build phases. The <quote>-I</quote> option
- should be avoided and instead be handled using
- <varname>BUILDLINK_INCDIRS.<replaceable>pkg</replaceable></varname> as
- above.</para>
+ (上の例には出てきません) は、<varname>CPPFLAGS</varname>
+ に追加するためのプリプロセッサー用のフラグで、このフラグは
+ configure および build の段階に渡されます。<quote>-I</quote>
+ オプションは使わずに、上述の
+ <varname>BUILDLINK_INCDIRS.<replaceable>pkg</replaceable></varname>
+ を使って処理するようにしてください。</para>
</listitem>
</itemizedlist>
- <para>The following variables are all optionally defined within
- this second section (protected against multiple inclusion) and
- control which package files are symlinked into
- <filename>${BUILDLINK_DIR}</filename> and how their names are
- transformed during the symlinking:</para>
+ <para>以下の各変数はすべて、二つ目の (多重のインクルードを防いでいる) 節において、
+ 任意に定義されるものであり、どのパッケージのファイルを
+ <filename>${BUILDLINK_DIR}</filename> からシンボリックリンクするか、および、
+ シンボリックリンクによってファイル名をどのように変換するか、
+ を制御します。</para>
<itemizedlist>
<listitem>
<para><varname>BUILDLINK_FILES.<replaceable>pkg</replaceable></varname>
- (not shown above) is a shell glob pattern relative to
+ (上の例には出てきません) は、
+ <filename>${BUILDLINK_DIR}</filename>
+ からシンボリックリンクされるリンク先の、
<filename>${BUILDLINK_PREFIX.<replaceable>pkg</replaceable>}</filename>
- to be symlinked into
- <filename>${BUILDLINK_DIR}</filename>,
- e.g. <filename>include/*.h</filename>.</para>
+ からの相対位置のシェルのグロブパターンです。
+ たとえば <filename>include/*.h</filename> のようになります。</para>
</listitem>
<listitem>
<para><varname>BUILDLINK_FILES_CMD.<replaceable>pkg</replaceable></varname>
- (not shown above) is a shell pipeline that
- outputs to stdout a list of files relative to
+ (上の例には出てきません) は、
<filename>${BUILDLINK_PREFIX.<replaceable>pkg</replaceable>}</filename>.
- The resulting files are to be symlinked
- into <filename>${BUILDLINK_DIR}</filename>. By default,
- this takes the <filename>+CONTENTS</filename> of a
- <replaceable>pkg</replaceable> and filters it through
- <varname>${BUILDLINK_CONTENTS_FILTER.<replaceable>pkg</replaceable>}</varname>.</para>
+ からの相対位置でのファイルのリストを標準出力に出力する、シェルのパイプラインです。
+ これにより出力されるファイルは、
+ <filename>${BUILDLINK_DIR}</filename> からシンボリックリンクされます。指定しなかった場合、
+ <replaceable>pkg</replaceable> の
+ <filename>+CONTENTS</filename> を
+ <varname>${BUILDLINK_CONTENTS_FILTER.<replaceable>pkg</replaceable>}</varname>
+ でフィルターした結果が出力されるようになります。</para>
</listitem>
<listitem>
<para><varname>BUILDLINK_CONTENTS_FILTER.<replaceable>pkg</replaceable></varname>
- (not shown above) is a filter command that filters
- <filename>+CONTENTS</filename> input into a list of files
- relative to
+ (上の例には出てきません) は、<filename>+CONTENTS</filename>
+ を入力にとり、
<filename>${BUILDLINK_PREFIX.<replaceable>pkg</replaceable>}</filename>
- on stdout. By default for overwrite packages,
+ からの相対位置でのファイルのリストを標準出力に出力するフィルターコマンドです。
+ 指定しなかった場合、overwrite パッケージでは、
<varname>BUILDLINK_CONTENTS_FILTER.<replaceable>pkg</replaceable></varname>
- outputs the contents of the <filename>include</filename>
- and <filename>lib</filename> directories in the package
- <filename>+CONTENTS</filename>, and for pkgviews packages,
- it outputs any libtool archives in
- <filename>lib</filename> directories.</para>
+ はパッケージの <filename>+CONTENTS</filename> から <filename>include</filename>
+ および <filename>lib</filename> ディレクトリーの内容を出力し、
+ pkgviews パッケージでは、<filename>lib</filename> ディレクトリーにある
+ libtool アーカイブをすべて出力します。</para>
</listitem>
<listitem>
<para><varname>BUILDLINK_TRANSFORM.<replaceable>pkg</replaceable></varname>
- (not shown above) is a list of sed arguments used to
- transform the name of the source filename into a
- destination filename, e.g. <command>-e
- "s|/curses.h|/ncurses.h|g"</command>.</para>
+ (上の例には出てきません) は、元ファイル名から宛先ファイル名への変換用の
+ sed の引数のリストです。たとえば <command>-e
+ "s|/curses.h|/ncurses.h|g"</command> のようになります。</para>
</listitem>
</itemizedlist>
- <para>The last section includes any
- <filename>buildlink3.mk</filename> needed for
- <replaceable>pkg</replaceable>'s library dependencies.
- Including these <filename>buildlink3.mk</filename> files
- means that the headers and libraries for these
- dependencies are also symlinked into
+ <para>最後の節では、
+ <replaceable>pkg</replaceable> のライブラリー依存性として必要な
+ <filename>buildlink3.mk</filename> をすべてインクルードしています。
+ ここで <filename>buildlink3.mk</filename> ファイルをインクルードすると、
+ <replaceable>pkg</replaceable> の
+ <filename>buildlink3.mk</filename> ファイルがインクルードされる場合はいつも、
+ これらへの依存性のためのヘッダーやライブラリーも、
<filename>${BUILDLINK_DIR}</filename>
- whenever the <replaceable>pkg</replaceable>
- <filename>buildlink3.mk</filename>
- file is included.</para>
+ からシンボリックリンクされることになります。</para>
</sect2>
<sect2 id="updating-buildlink-depends">
- <title>Updating <varname>BUILDLINK_API_DEPENDS.<replaceable>pkg</replaceable></varname> in <filename>buildlink3.mk</filename> files</title>
+ <title><filename>buildlink3.mk</filename> ファイルの <varname>BUILDLINK_API_DEPENDS.<replaceable>pkg</replaceable></varname> を更新する</title>
- <para>The situation that requires increasing the dependency listed in
+ <para>パッケージを更新した際に
<varname>BUILDLINK_API_DEPENDS.<replaceable>pkg</replaceable></varname>
- after a package update is when the API or interface to the
- header files change.</para>
+ に列挙されている依存性のバージョンを上げる必要があるのは、
+ その更新で API やヘッダーファイルへのインターフェースが変わった場合です。</para>
- <para>In this case,
+ <para>このような場合は、
<varname>BUILDLINK_API_DEPENDS.<replaceable>pkg</replaceable></varname>
- should be adjusted to require at least the new package
- version. In some cases, the packages that depend on this new
- version may need their <varname>PKGREVISION</varname>s
- increased and, if they have <filename>buildlink3.mk</filename>
- files, their
+ を調節して、最低限、新しいパッケージのバージョンを要するようにします。
+ 場合によっては、新しいバージョンに依存するパッケージの
+ <varname>PKGREVISION</varname> を上げる必要があることがあります。
+ また、依存しているパッケージに <filename>buildlink3.mk</filename>
+ ファイルがある場合は、
<varname>BUILDLINK_API_DEPENDS.<replaceable>pkg</replaceable></varname>
- adjusted, too. This is needed so pkgsrc will require the
- correct package dependency and not settle for an older one
- when building the source.</para>
+ も調節します。これは、pkgsrc が適切なパッケージの依存性を求めるようにして、
+ ソースからの構築時に古いパッケージに依存したりしないようにするために、
+ 必要なことです。</para>
<para><varname>BUILDLINK_ABI_DEPENDS.<replaceable>pkg</replaceable></varname>
- should be increased when the binary interface or sonames
- (major number of the library version) of any installed
- shared libraries change. This is needed so that binary
- packages made using it will require the correct package
- dependency and not settle for an older one which will not
- contain the necessary shared libraries.</para>
+ を上げるのは、バイナリーインターフェースや、
+ インストールされている共有ライブラリーのいずれかの soname
+ (ライブラリーのバージョンのメジャー番号) が変わった場合です。
+ これは、これらを使うバイナリーパッケージが、
+ 適切なパッケージの依存性を求めるようにして、
+ 必要な共有ライブラリーをもたない古いパッケージに依存したりしないようにするために、
+ 必要なことです。</para>
- <para>See <xref linkend="dependencies"/> for
- more information about dependencies on other packages,
- including the <varname>BUILDLINK_ABI_DEPENDS</varname> and
- <varname>ABI_DEPENDS</varname> definitions.</para>
+ <para><varname>BUILDLINK_ABI_DEPENDS</varname> および
+ <varname>ABI_DEPENDS</varname> の定義を含めた、
+ 他のパッケージへの依存性について、さらなる情報は、
+ <xref linkend="dependencies"/>をご覧ください。</para>
- <para>Please take careful consideration before adjusting
+ <para>なお、必要もないのにパッケージを削除したり再構築したりするようなことのないよう、
<varname>BUILDLINK_API_DEPENDS.<replaceable>pkg</replaceable></varname>
- or
+ や
<varname>BUILDLINK_ABI_DEPENDS.<replaceable>pkg</replaceable></varname>
- as we don't want to cause unneeded package deletions and
- rebuilds. In many cases, new versions of packages work just
- fine with older dependencies.</para>
+ の調節は、事前に熟考するようにしてください。
+ 多くの場合、新しいバージョンのパッケージは、
+ 従前の依存性のままでも問題なく動作します。</para>
- <para>Also it is not needed to set
+ <para>また、
<varname>BUILDLINK_ABI_DEPENDS.<replaceable>pkg</replaceable></varname>
- when it is identical to
- <varname>BUILDLINK_API_DEPENDS.<replaceable>pkg</replaceable></varname>. </para>
+ は、
+ <varname>BUILDLINK_API_DEPENDS.<replaceable>pkg</replaceable></varname>
+ と同じ値となる場合には設定する必要はありません。 </para>
</sect2>
</sect1>
<sect1 id="writing-builtin.mk">
- <title>Writing <filename>builtin.mk</filename> files</title>
+ <title><filename>builtin.mk</filename> ファイルを書く</title>
- <para>Some packages in pkgsrc install headers and libraries that
- coincide with headers and libraries present in the base system.
- Aside from a <filename>buildlink3.mk</filename> file, these
- packages should also include a <filename>builtin.mk</filename>
- file that includes the necessary checks to decide whether using
- the built-in software or the pkgsrc software is
- appropriate.</para>
+ <para>pkgsrc のパッケージのなかには、
+ ベースシステムにも存在するようなヘッダーやライブラリーをインストールするものがあります。
+ そのようなパッケージでは、
+ <filename>buildlink3.mk</filename> ファイルとは別に、
+ <filename>builtin.mk</filename> ファイルも含めておきます。
+ このファイルでは、ベースシステム附属のソフトウェアと
+ pkgsrc のソフトウェアのどちらを使うのが適切かを判断するために必要な確認をおこないます。</para>
- <para>The only requirements of a builtin.mk file for
- <replaceable>pkg</replaceable> are:</para>
+ <para><replaceable>pkg</replaceable> 用の
+ builtin.mk ファイルで必要なのは、以下のことだけです。</para>
<orderedlist>
<listitem>
- <para>It should set
+ <para>インクルードされた後に
<varname>USE_BUILTIN.<replaceable>pkg</replaceable></varname>
- to either <quote>yes</quote> or <quote>no</quote>
- after it is included.</para>
+ を <quote>yes</quote> または <quote>no</quote>
+ のどちらかに設定すること。</para>
</listitem>
<listitem>
- <para>It should <emphasis>not</emphasis> override any
+ <para><filename>builtin.mk</filename> ファイルがインクルードされる前から定義されている
<varname>USE_BUILTIN.<replaceable>pkg</replaceable></varname>
- which is already set before the
- <filename>builtin.mk</filename> file is included.</para>
+ を、一切上書き<emphasis>しない</emphasis>こと。</para>
</listitem>
<listitem>
- <para>It should be written to allow multiple inclusion. This
- is <emphasis>very</emphasis> important and takes careful
- attention to <filename>Makefile</filename> coding.</para>
+ <para>複数のインクルードができるように書くこと。
+ これは<emphasis>非常に</emphasis>重要なことであり、
+ <filename>Makefile</filename> のコーディングに対する配慮となります。</para>
</listitem>
</orderedlist>
<sect2 id="anatomy-of-builtin.mk">
- <title>Anatomy of a <filename>builtin.mk</filename> file</title>
+ <title><filename>builtin.mk</filename> ファイルの分析</title>
- <para>The following is the recommended template for builtin.mk
- files:</para>
+ <para>以下に掲げるのは、builtin.mk
+ ファイルの推奨テンプレートです。</para>
<programlisting>
.if !defined(IS_BUILTIN.foo)
@@ -482,87 +485,93 @@
.endif # CHECK_BUILTIN.foo
</programlisting>
- <para>The first section sets
+ <para>最初の節では、<replaceable>pkg</replaceable>
+ がベースシステムに実際に存在するかどうかに応じて、
<varname>IS_BUILTIN.<replaceable>pkg</replaceable></varname>
- depending on if <replaceable>pkg</replaceable> really exists
- in the base system. This should not be a base system software
- with similar functionality to <replaceable>pkg</replaceable>;
- it should only be <quote>yes</quote> if the actual package is
- included as part of the base system. This variable is only
- used internally within the <filename>builtin.mk</filename>
- file.</para>
+ を設定しています。これは、ベースシステムに <replaceable>pkg</replaceable>
+ 相当の機能のソフトウェアが存在するかどうかではありません。
+ この変数を <quote>yes</quote> にするのは、
+ このパッケージそのものがベースシステムの一部として附属する場合だけです。
+ この変数は、<filename>builtin.mk</filename>
+ ファイルの内部でのみ使われます。</para>
- <para>The second section sets
- <varname>BUILTIN_PKG.<replaceable>pkg</replaceable></varname>
- to the version of <replaceable>pkg</replaceable> in the base
- system if it exists (if
+ <para>二つ目の節では、<replaceable>pkg</replaceable>
+ がベースシステムに存在する場合 (つまり
<varname>IS_BUILTIN.<replaceable>pkg</replaceable></varname>
- is <quote>yes</quote>). This variable is only used internally
- within the <filename>builtin.mk</filename> file.</para>
+ が <quote>yes</quote> の場合)、
+ <varname>BUILTIN_PKG.<replaceable>pkg</replaceable></varname>
+ をそのバージョンに設定しています。この変数は、<filename>builtin.mk</filename>
+ ファイルの内部でのみ使われます。</para>
- <para>The third section sets
+ <para>三つ目の節では、
<varname>USE_BUILTIN.<replaceable>pkg</replaceable></varname>
- and is <emphasis>required</emphasis> in all
- <filename>builtin.mk</filename> files. The code in this
- section must make the determination whether the built-in
- software is adequate to satisfy the dependencies listed in
- <varname>BUILDLINK_API_DEPENDS.<replaceable>pkg</replaceable></varname>.
- This is typically done by comparing
+ を設定しており、これはすべての <filename>builtin.mk</filename>
+ ファイルで<emphasis>必須です</emphasis>。
+ この節のコードは、ベースシステム附属のソフトウェアが、
+ <varname>BUILDLINK_API_DEPENDS.<replaceable>pkg</replaceable></varname>
+ で列挙されている依存性を満たすのに十分かどうかを判別する必要があります。
+ この判別は、たいていは、
<varname>BUILTIN_PKG.<replaceable>pkg</replaceable></varname>
- against each of the dependencies in
- <varname>BUILDLINK_API_DEPENDS.<replaceable>pkg</replaceable></varname>.
- <varname>USE_BUILTIN.<replaceable>pkg</replaceable></varname>
- <emphasis>must</emphasis> be set to the correct value by the
- end of the <filename>builtin.mk</filename> file. Note that
+ を、
+ <varname>BUILDLINK_API_DEPENDS.<replaceable>pkg</replaceable></varname>
+ の各依存性と比較することでおこなわれます。
+
<varname>USE_BUILTIN.<replaceable>pkg</replaceable></varname>
- may be <quote>yes</quote> even if
+ は、<filename>builtin.mk</filename> ファイルの終わりまでに、
+ 適切な値に設定する<emphasis>必要があります</emphasis>。なお、たとえ
<varname>IS_BUILTIN.<replaceable>pkg</replaceable></varname>
- is <quote>no</quote> because we may make the determination
- that the built-in version of the software is similar enough to
- be used as a replacement.</para>
+ が <quote>no</quote> であっても、
+ <varname>USE_BUILTIN.<replaceable>pkg</replaceable></varname>
+ は <quote>yes</quote> にすることができます。なぜなら、
+ ベースシステム附属のソフトウェアが依存パッケージに十分似ており、
+ 代替可能であるという判断もできるからです。</para>
- <para>The last section is guarded by
- <varname>CHECK_BUILTIN.<replaceable>pkg</replaceable></varname>,
- and includes code that uses the value of
+ <para>最後の節は
+ <varname>CHECK_BUILTIN.<replaceable>pkg</replaceable></varname>
+ に守られており、前の節で設定された
<varname>USE_BUILTIN.<replaceable>pkg</replaceable></varname>
- set in the previous section. This typically includes, e.g.,
- adding additional dependency restrictions and listing additional
- files to symlink into <filename>${BUILDLINK_DIR}</filename> (via
- <varname>BUILDLINK_FILES.<replaceable>pkg</replaceable></varname>).</para>
+ の値を使うコードをインクルードします。たいていの場合、ここでインクルードするのは、
+ たとえば依存性への制約の追加や、<filename>${BUILDLINK_DIR}</filename>
+ からシンボリックリンクされるファイルのリストの
+ (<varname>BUILDLINK_FILES.<replaceable>pkg</replaceable></varname>
+ を使った) 追加などです。</para>
</sect2>
<sect2 id="native-or-pkgsrc-preference">
- <title>Global preferences for native or pkgsrc software</title>
+ <title>ネイティブおよび pkgsrc のソフトウェアの選択に関する、大域的な設定</title>
- <para>When building packages, it's possible to choose whether to set
- a global preference for using either the built-in (native)
- version or the pkgsrc version of software to satisfy a
- dependency. This is controlled by setting
- <varname>PREFER_PKGSRC</varname> and
- <varname>PREFER_NATIVE</varname>. These variables take values
- of either <quote>yes</quote>, <quote>no</quote>, or a list of
- packages. <varname>PREFER_PKGSRC</varname> tells pkgsrc to
- use the pkgsrc versions of software, while
- <varname>PREFER_NATIVE</varname> tells pkgsrc to use the
- built-in versions. Preferences are determined by the most
- specific instance of the package in either
- <varname>PREFER_PKGSRC</varname> or
- <varname>PREFER_NATIVE</varname>. If a package is specified
- in neither or in both variables, then
- <varname>PREFER_PKGSRC</varname> has precedence over
- <varname>PREFER_NATIVE</varname>. For example, to require
- using pkgsrc versions of software for all but the most basic
- bits on a NetBSD system, you can set:</para>
+ <para>パッケージの構築時に、
+ 依存性を満たすソフトウェアとして組み込み (ネイティブ)
+ のものを使うか pkgsrc のものを使うかを、
+ 大域的な設定に応じて切替えることができます。
+ この制御は、<varname>PREFER_PKGSRC</varname> および
+ <varname>PREFER_NATIVE</varname> を設定することでおこないます。
+ この両変数は、<quote>yes</quote>, <quote>no</quote>
+ またはパッケージのリストを値として持ちます。
+ <varname>PREFER_PKGSRC</varname> は pkgsrc 版のソフトウェアを使うことを、
+ <varname>PREFER_NATIVE</varname> で組み込み版を使うことを、
+ それぞれ指示します。この設定は、
+ 対象パッケージではどちらを使うのがもっとも適当かに応じて、
+ <varname>PREFER_PKGSRC</varname> か
+ <varname>PREFER_NATIVE</varname> のいずれかで指定します。
+ あるパッケージがどちらにも設定されていない場合、
+ または両方で設定されている場合は、
+ <varname>PREFER_PKGSRC</varname> が
+ <varname>PREFER_NATIVE</varname> より優先します。たとえば、
+ NetBSD システムの最も基本的な要素を除き、
+ すべて pkgsrc 版のソフトウェアを使うこととする場合、
+ 以下のように設定することができます。</para>
<programlisting>
PREFER_PKGSRC= yes
PREFER_NATIVE= getopt skey tcp_wrappers
</programlisting>
- <para>A package <emphasis>must</emphasis> have a
+ <para>あるパッケージを <varname>PREFER_NATIVE</varname>
+ のリストに加えるには、そのパッケージに
<filename>builtin.mk</filename>
- file to be listed in <varname>PREFER_NATIVE</varname>,
- otherwise it is simply ignored in that list.</para>
+ ファイルがある<emphasis>必要があります</emphasis>。
+ このファイルがない場合は、リストに加えても単に無視されます。</para>
</sect2>
</sect1>
</chapter>