[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
pkgsrc/doc/guide/files/build.xml: 1.34 -> 1.35
以下のページの更新をしました。ツッコミをお願いします。
pkgsrc/doc/guide/files/build.xml: 1.34 -> 1.35
> revision 1.35
> date: 2006/09/13 23:23:00; author: wiz; state: Exp; lines: +845 -647
> Improve markup. Describe MASTER_SITE_BACKUP and MASTER_SITE_LOCAL.
> Document NO_INSTALL_MANPAGES. Describe "The package phase".
> Add section about "Cleaning up". Document DEPENDS_TARGET.
> Document the bin-install target. Improve UPDATE_TARGET description.
> Use &rprompt; and &cprompt; instead of <prompt>.</prompt>.
> Document replace and index targets.
>
> Reindent and break lines for 80 characters.
1 月 4 日までに異議がなければ、 commit します。
原文は
http://cvsweb.de.NetBSD.org/cgi-bin/cvsweb.cgi/pkgsrc/doc/guide/files/build.xml?rev=1.35&content-type=text/plain
で、訳文は
http://www.na.rim.or.jp/%7Ekano/tmp/pkgsrc/doc/guide/files/build.xml
に置いてあります。
以下、訳と原文それぞれの、
1.34 から空白類文字を調節したものと 1.35 との差分です。
--- build.xml.orig 2006-12-30 15:25:58.000000000 +0900
+++ build.xml 2006-12-31 01:27:23.000000000 +0900
@@ -1,6 +1,6 @@
-<!-- $NetBSD: build.xml,v 1.34 2006/09/10 19:51:49 wiz Exp $ -->
+<!-- $NetBSD: build.xml,v 1.35 2006/09/13 23:23:00 wiz Exp $ -->
<!-- Based on english version: -->
-<!-- NetBSD: build.xml,v 1.34 2006/09/10 19:51:49 wiz Exp -->
+<!-- NetBSD: build.xml,v 1.35 2006/09/13 23:23:00 wiz Exp -->
<chapter id="build">
<title>構築の手順</title>
@@ -34,7 +34,7 @@
について簡単に記述します。</para>
<para>自動変数<varname>PREFIX</varname>は、最終的にプログラムのすべてのファイルがインストールされる
- 場所をしめします。通常、<varname>LOCALBASE</varname> (<filename>/usr/pkg</filename>)、または<quote>cross</quote>カテゴリーの
+ 場所をしめします。通常、<varname>LOCALBASE</varname> (<filename>/usr/pkg</filename>)、または<filename>cross</filename>カテゴリーの
パッケージのための<varname>CROSSBASE</varname>と同じ場所になっています。
<varname>PREFIX</varname>の値は、プログラムのソース中でこれらのファイルが符号化されるさまざ
まな場所に使用されるべきです。
@@ -291,6 +291,14 @@
${MASTER_SITE_XEMACS}
</programlisting>
+ <para>名前から意味がわかりにくいものについて、説明しておきます。
+ <varname>MASTER_SITE_BACKUP</varname> には、<ulink
+ url="ftp://ftp.NetBSD.org:/pub/NetBSD/packages/distfiles/${DIST_SUBDIR}"
+ /> で保守されている、パッケージのバックアップサイトが含まれます。
+ <varname>MASTER_SITE_LOCAL</varname> には、<ulink
+ url="ftp://ftp.NetBSD.org:/pub/NetBSD/packages/distfiles/LOCAL_PORTS/"
+ /> で保守されている、パッケージのローカルなソース配布物が含まれます。</para>
+
<para>もしこれらの予め定義されたサイトの1つを選んだ場合、そのサイトのサブディレク
トリーを指定することが必要となるかもしれません。これらのマクロは複数の実際
のサイトに展開されるかもしれませんので、サブディレクトリーを指定する場合は、
@@ -310,13 +318,13 @@
<para><emphasis>fetch</emphasis> 相では、distfile
がすべてローカルディレクトリー (<varname>DISTDIR</varname>),
pkgsrc 利用者が設定可能) に存在する状態にします。
- distfile は以下の形式のコマンドを使って取得されます。
+ distfile は以下の形式のコマンドを使って取得されます。</para>
<programlisting>
${FETCH_CMD} ${FETCH_BEFORE_ARGS} ${site}${file} ${FETCH_AFTER_ARGS}
</programlisting>
- この <literal>${site}</literal> には、複数の候補が決まった順序で使われます: 最初に
+ <para>この <literal>${site}</literal> には、複数の候補が決まった順序で使われます: 最初に
<varname>MASTER_SITE_OVERRIDE</varname>を試み、次に、<varname>SITES.file</varname>が定義されていればそれ
を、定義されていなければ、<varname>MASTER_SITES</varname>か<varname>PATCH_SITES</varname>のどちらかを試
みます。そして、最後に<varname>MASTER_SITE_BACKUP</varname>の値を試みます。最初のもの以
@@ -572,7 +580,9 @@
<varname>INSTALL_DIRS</varname> は標準では
<varname>BUILD_DIRS</varname> です。<varname>INSTALL_TARGET</varname>
は標準では <quote>install</quote> ですが、
- <varname>USE_IMAKE</varname> が定義されている場合は <quote>install.man</quote>
+ <varname>USE_IMAKE</varname> が定義されており、かつ
+ <varname>NO_INSTALL_MANPAGES</varname> が定義されていない場合は、
+ <quote>install.man</quote>
が追加されます。</para>
<para><emphasis>install</emphasis> 相では、以下の変数が有用です。
@@ -643,8 +653,28 @@
<sect1 id="build.package">
<title><emphasis>package</emphasis> 相</title>
- <para>[TODO]</para>
+ <para>install 期が完了すると、
+ インストールされたファイルからなるバイナリーパッケージを作ることができます。
+ このようなバイナリーパッケージは、たとえば
+ <command>make bin-install</command> するか、
+ <command>pkg_add</command> を使って、それまでのコンパイルの過程を踏まずに、
+ 迅速にインストールすることができます。</para>
+ <para>標準では、バイナリーパッケージは
+ <filename>${PACKAGES}/All</filename> に作られ、また、
+ <varname>CATEGORIES</varname> 変数に設定されたカテゴリーごとに
+ <filename>${PACKAGES}/<replaceable>category</replaceable></filename>
+ にシンボリックリンクが作られます。<varname>PACKAGES</varname>
+ は標準では <filename>pkgsrc/packages</filename> になります。</para>
+ </sect1>
+
+ <sect1 id="build.clean">
+ <title>掃除をする</title>
+
+ <para>パッケージの作業が終わったら、<command>make clean</command>
+ を実行して作業ディレクトリーを掃除することができます。
+ 依存パッケージの作業ディレクトリーもすべて掃除したい場合は、
+ <command>make clean-depends</command> を使います。</para>
</sect1>
<sect1 id="build.helpful-targets">
@@ -684,6 +714,11 @@
されなかった事に気がついた場合、このターゲットを使い、再びインストールす
る事ができます。この場合、<quote>インストール済み</quote>フラグは無視されます。</para>
+ <para>これは、<varname>DEPENDS_TARGET</varname>
+ の標準の値です。ただし <command>make update</command> および <command>make
+ package</command> の場合は例外であり、これらについてはそれぞれ
+ <quote>package</quote> および <quote>update</quote>
+ が標準の値になります。</para>
</listitem>
</varlistentry>
@@ -720,6 +755,22 @@
</varlistentry>
<varlistentry>
+ <term>bin-install</term>
+
+ <listitem>
+ <para>バイナリーパッケージを、
+ ローカルディスクまたは列挙された FTP サイト
+ (<varname>BINPKG_SITES</varname> 変数を参照)
+ からインストールし、
+ 利用可能なバイナリーパッケージがどこにもない場合には
+ <command>make package</command> をおこないます。
+ <command>pkg_add</command> 用の引数、たとえば饒舌な操作などを
+ <varname>BIN_INSTALL_FLAGS</varname>
+ に設定することができます。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term>update</term>
<listitem>
@@ -757,7 +808,10 @@
トールターゲット。
<command>make update</command>用のデフォルトは、<varname>DEPENDS_TARGET</varname>が
設定されている場合はその値、それ以外の場合は<quote>install</quote>です。
- 例えば、<command>make update UPDATE_TARGET=package</command>のように使用します。</para>
+ これら以外のターゲットのよい例としては <quote>package</quote> や
+ <quote>bin-install</quote> があります。
+ ここで <quote>update</quote> を設定してはいけません
+ (無限ループに陥ってしまいます)。</para>
</listitem>
</varlistentry>
@@ -823,9 +877,9 @@
合、更新しようとしているパッケージをすべて失ってしまいます)</para>
<screen>
-<prompt>#</prompt> <userinput>make clean-update</userinput>
-<prompt>#</prompt> <userinput>make clean CLEANDEPENDS=YES</userinput>
-<prompt>#</prompt> <userinput>make update</userinput>
+&rprompt; <userinput>make clean-update</userinput>
+&rprompt; <userinput>make clean CLEANDEPENDS=YES</userinput>
+&rprompt; <userinput>make update</userinput>
</screen>
<para><command>make
@@ -849,6 +903,29 @@
</varlistentry>
<varlistentry>
+ <term>replace</term>
+
+ <listitem>
+ <para>当該パッケージのインストールを更新します。
+ 依存するパッケージの置き換えをおこなわないという点で
+ update と異なります。
+ このターゲットを動作させるためには、<filename
+ role="pkg">pkgsrc/pkgtools/pkg_tarup</filename>
+ をインストールする必要があります。</para>
+
+ <para><emphasis>このターゲットは注意して使ってください。
+ </emphasis> このターゲットを使って更新した後に、
+ 依存するパッケージが動作するという保証はありません。
+ 特に、ライブラリーのパッケージで、
+ 共有ライブラリーのメジャーバージョンが変わるようなものを
+ <command>make replace</command>
+ した場合は、ほぼ確実に壊れます。
+ このため、このターゲットは公式にはサポートされておらず、
+ 熟練した利用者だけが使うことを推奨します。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term>info</term>
<listitem>
@@ -859,6 +936,34 @@
</varlistentry>
<varlistentry>
+ <term>index</term>
+
+ <listitem>
+ <para>これは最上層用のコマンド、つまり <filename>pkgsrc</filename>
+ ディレクトリーで使うコマンドです。
+ ローカルの pkgsrc ツリー内の全パッケージのデータベースを作成します。
+ このデータベースには、依存性、コメント、メンテナー、
+ その他の有用な情報が含まれます。
+ 個々のパッケージのエントリーは、当該パッケージのディレクトリーで
+ <command>make describe</command> を実行して作成されます。
+ 作成された索引ファイルは
+ <filename>pkgsrc/INDEX</filename> に保存されます。
+ この索引は、<command>make
+ print-index</command> を実行すると、饒舌な形式で表示することができます。
+ <command>make search
+ key=<replaceable>something</replaceable></command>
+ を使って、索引を検索することができます。
+ <command>make show-deps
+ PKG=<replaceable>somepackage</replaceable></command>
+ を実行して、特定のパッケージに依存するパッケージをすべて調べることができます。</para>
+
+ <para>このコマンドの実行には、非常に長い時間がかかります。
+ 速いマシンでも数時間かかるでしょう。</para>
+ </listitem>
+ </varlistentry>
+
+
+ <varlistentry>
<term>readme</term>
<listitem>
@@ -874,6 +979,9 @@
<varname>FTP_PKG_URL_HOST=file://localhost</varname>と<varname>FTP_PKG_URL_DIR=/usr/packages</varname>をセット
してください。<varname>${PACKAGES}</varname>ディレクトリーと、そのサブディレクトリーはすべ
てのバイナリーパッケージで検索されます。</para>
+
+ <para>このターゲットは、最上層またはカテゴリーのディレクトリーで実行することもできます。
+ そうした場合は、配下のパッケージに対して再帰的に実行されます。</para>
</listitem>
</varlistentry>
@@ -881,7 +989,8 @@
<term>readme-all</term>
<listitem>
- <para>このターゲットを使い、<filename>README-all.html</filename>を作成することができます。このファ
+ <para>これは最上層用のコマンドであり、<filename>pkgsrc</filename> で実行します。
+ このターゲットを使い、<filename>README-all.html</filename>を作成することができます。このファ
イルは&os;パッケージコレクションの中の、現在利用可能なすべてのパッケー
ジのリスト、また、それらが属するカテゴリーと簡単な説明を含んでいます。こ
のファイルは<filename>pkgsrc/*/README.html</filename>から作りだされます。したがって、<command>make
--- build.xml.orig 2006-12-30 15:26:08.000000000 +0900
+++ build.xml 2006-12-25 22:35:01.000000000 +0900
@@ -1,4 +1,4 @@
-<!-- $NetBSD: build.xml,v 1.34 2006/09/10 19:51:49 wiz Exp $ -->
+<!-- $NetBSD: build.xml,v 1.35 2006/09/13 23:23:00 wiz Exp $ -->
<chapter id="build">
<title>The build process</title>
@@ -37,7 +37,7 @@
where all files of the final program shall be installed. It is
usually set to <varname>LOCALBASE</varname>
(<filename>/usr/pkg</filename>), or <varname>CROSSBASE</varname>
- for pkgs in the <quote>cross</quote> category. The value of
+ for pkgs in the <filename>cross</filename> category. The value of
<varname>PREFIX</varname> needs to be put
into the various places in the program's source where paths to
these files are encoded. See <xref
@@ -70,7 +70,7 @@
<para><varname>X11BASE</varname> is where the actual X11
distribution (from xsrc, etc.) is installed. When looking for
<emphasis>standard</emphasis> X11 includes (not those
- installed by a pkg), use <quote>${X11BASE}</quote>.</para>
+ installed by a package), use <quote>${X11BASE}</quote>.</para>
</listitem>
<listitem>
@@ -244,7 +244,7 @@
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} additional-files.tar.gz
</programlisting>
- <para>Each of the distfiles is fetched from a list of sites, usually
+ <para>Each distfile is fetched from a list of sites, usually
<varname>MASTER_SITES</varname>. If the package has multiple
<varname>DISTFILES</varname> or multiple
<varname>PATCHFILES</varname> from different sites, you can
@@ -310,6 +310,15 @@
${MASTER_SITE_XEMACS}
</programlisting>
+ <para>Some explanations for the less self-explaining ones:
+ <varname>MASTER_SITE_BACKUP</varname> contains backup sites
+ for packages that are maintained in <ulink
+ url="ftp://ftp.NetBSD.org:/pub/NetBSD/packages/distfiles/${DIST_SUBDIR}"
+ />. <varname>MASTER_SITE_LOCAL</varname> contains local
+ package source distributions that are maintained in <ulink
+ url="ftp://ftp.NetBSD.org:/pub/NetBSD/packages/distfiles/LOCAL_PORTS/"
+ />.</para>
+
<para>If you choose one of these predefined sites, you may
want to specify a subdirectory of that site. Since these
macros may expand to more than one actual site, you
@@ -332,13 +341,13 @@
all the distfiles exist in a local directory
(<varname>DISTDIR</varname>), which can be set by the pkgsrc
user). If the files do not exist, they are fetched using
- commands of the form
+ commands of the form</para>
<programlisting>
${FETCH_CMD} ${FETCH_BEFORE_ARGS} ${site}${file} ${FETCH_AFTER_ARGS}
</programlisting>
- where <literal>${site}</literal> varies through
+ <para>where <literal>${site}</literal> varies through
several possibilities in turn: first,
<varname>MASTER_SITE_OVERRIDE</varname> is tried, then the
sites specified in either <varname>SITES.file</varname> if
@@ -617,6 +626,7 @@
<varname>BUILD_DIRS</varname>. <varname>INSTALL_TARGET</varname>
is <quote>install</quote> by default, plus
<quote>install.man</quote> if <varname>USE_IMAKE</varname> is
+ defined and <varname>NO_INSTALL_MANPAGES</varname> is not
defined.</para>
<para>In the <emphasis>install</emphasis> phase, the following
@@ -698,8 +708,27 @@
<sect1 id="build.package">
<title>The <emphasis>package</emphasis> phase</title>
- <para>[TODO]</para>
+ <para>Once the install stage has completed, a binary package of
+ the installed files can be built. These binary packages can be
+ used for quick installation without previous compilation, e.g. by
+ the <command>make bin-install</command> or by using
+ <command>pkg_add</command>.</para>
+ <para>By default, the binary packages are created in
+ <filename>${PACKAGES}/All</filename> and symlinks are created in
+ <filename>${PACKAGES}/<replaceable>category</replaceable></filename>,
+ one for each category in the <varname>CATEGORIES</varname>
+ variable. <varname>PACKAGES</varname> defaults to
+ <filename>pkgsrc/packages</filename>.</para>
+ </sect1>
+
+ <sect1 id="build.clean">
+ <title>Cleaning up</title>
+
+ <para>Once you're finished with a package, you can clean the work
+ directory by running <command>make clean</command>. If you want
+ to clean the work directories of all dependencies too, use
+ <command>make clean-depends</command>.</para>
</sect1>
<sect1 id="build.helpful-targets">
@@ -745,6 +774,12 @@
can repeat the installation with this target, which will
ignore the <quote>already installed</quote> flag.</para>
+ <para>This is the default value of
+ <varname>DEPENDS_TARGET</varname> except in the case of
+ <command>make update</command> and <command>make
+ package</command>, where the defaults are
+ <quote>package</quote> and <quote>update</quote>,
+ respectively.</para>
</listitem>
</varlistentry>
@@ -786,6 +821,21 @@
</varlistentry>
<varlistentry>
+ <term>bin-install</term>
+
+ <listitem>
+ <para>Install a binary package from local disk and via FTP
+ from a list of sites (see the
+ <varname>BINPKG_SITES</varname> variable), and do a
+ <command>make package</command> if no binary package is
+ available anywhere. The arguments given to
+ <command>pkg_add</command> can be set via
+ <varname>BIN_INSTALL_FLAGS</varname> e.g., to do verbose
+ operation, etc.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term>update</term>
<listitem>
@@ -831,8 +881,11 @@
updated package and the dependent packages.
Defaults to <varname>DEPENDS_TARGET</varname> if
set, <quote>install</quote> otherwise for
- <command>make update</command>.
- e.g. <command>make update UPDATE_TARGET=package</command></para>
+ <command>make update</command>. Other good
+ targets are <quote>package</quote> or
+ <quote>bin-install</quote>. Do not set this to
+ <quote>update</quote> or you will get stuck in an
+ endless loop!</para>
</listitem>
</varlistentry>
@@ -912,9 +965,9 @@
update!):</para>
<screen>
-<prompt>#</prompt> <userinput>make clean-update</userinput>
-<prompt>#</prompt> <userinput>make clean CLEANDEPENDS=YES</userinput>
-<prompt>#</prompt> <userinput>make update</userinput>
+&rprompt; <userinput>make clean-update</userinput>
+&rprompt; <userinput>make clean CLEANDEPENDS=YES</userinput>
+&rprompt; <userinput>make update</userinput>
</screen>
<para>The following variables can be used either on the
@@ -943,6 +996,27 @@
</varlistentry>
<varlistentry>
+ <term>replace</term>
+
+ <listitem>
+ <para>Update the installation of the current package. This
+ differs from update in that it does not replace dependent
+ packages. You will need to install <filename
+ role="pkg">pkgsrc/pkgtools/pkg_tarup</filename> for this
+ target to work.</para>
+
+ <para><emphasis>Be careful when using this
+ target!</emphasis> There are no guarantees that dependent
+ packages will still work, in particular they will most
+ certainly break if you <command>make replace</command> a
+ library package whose shared library major version changed
+ between your installed version and the new one. For this
+ reason, this target is not officially supported and only
+ recommended for advanced users.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term>info</term>
<listitem>
@@ -953,6 +1027,32 @@
</varlistentry>
<varlistentry>
+ <term>index</term>
+
+ <listitem>
+ <para>This is a top-level command, i.e. it should be used in
+ the <filename>pkgsrc</filename> directory. It creates a
+ database of all packages in the local pkgsrc tree, including
+ dependencies, comment, maintainer, and some other useful
+ information. Individual entries are created by running
+ <command>make describe</command> in the packages'
+ directories. This index file is saved as
+ <filename>pkgsrc/INDEX</filename>. It can be displayed in
+ verbose format by running <command>make
+ print-index</command>. You can search in it with
+ <command>make search
+ key=<replaceable>something</replaceable></command>. You can
+ extract a list of all packages that depend on a particular
+ one by running <command>make show-deps
+ PKG=<replaceable>somepackage</replaceable></command>.</para>
+
+ <para>Running this command takes a very long time, some
+ hours even on fast machines!</para>
+ </listitem>
+ </varlistentry>
+
+
+ <varlistentry>
<term>readme</term>
<listitem>
@@ -975,6 +1075,9 @@
<varname>${PACKAGES}</varname> directory and its
subdirectories will be searched for all the binary
packages.</para>
+
+ <para>The target can be run at the toplevel or in category
+ directories, in which case it descends recursively.</para>
</listitem>
</varlistentry>
@@ -982,7 +1085,8 @@
<term>readme-all</term>
<listitem>
- <para>Use this target to create a
+ <para>This is a top-level command, run it in
+ <filename>pkgsrc</filename>. Use this target to create a
file <filename>README-all.html</filename> which contains a
list of all packages currently available in the &os;
Packages Collection, together with the category they belong