[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