Update of /cvsroot/fink/web/xml/packaging
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3558/packaging

Modified Files:
        packaging.ja.xml packaging.zh.xml 
Log Message:
= packaging.en.xml 1.82

Index: packaging.zh.xml
===================================================================
RCS file: /cvsroot/fink/web/xml/packaging/packaging.zh.xml,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- packaging.zh.xml    27 Jun 2005 12:58:43 -0000      1.21
+++ packaging.zh.xml    18 Sep 2005 21:16:57 -0000      1.22
@@ -51,7 +51,7 @@
 <section name="ident"><title>识别一个软件包</title>
 <p>
 
一个软件包由三个字串来标识:软件包名,版本号和修订版号。
-他们均由小写字母(a-z),数字(0-9),减号(-),加号(+)以及句点(.)组成。不允许使用其它的字符。
+他们均由小写字母(a-z),数字(0-9),减号(-; note: not 
allowed in the 
revision),加号(+)以及句点(.)组成。不允许使用其它的字符。
 特别地,不能使用大写字母和下划线。
 </p>
 <p>
@@ -220,7 +220,7 @@
 <itemd>
 <p>
 
要打包的全套文件将被构建于的目标(<em>d</em>estination)目录,例如:
-<filename>/sw/src/root-gimp-1.2.1-1</filename>。
+<filename>/sw/src/fink.build/root-gimp-1.2.1-1</filename>。
 这个临时目录在编译过程的安装阶段将作为根目录位置。
 你不应该假设 <filename>root-%f</filename> 会在 
<filename>%p/src</filename> 中,因为用户可以通过 
<filename>/sw/etc/fink.conf</filename> 文件中的 <code>Buildpath</code> 
字段来改变它的位置。
 </p>
@@ -257,7 +257,7 @@
 <item><itemt>%b</itemt>
 <itemd>
 <p>
-构建(<em>b</em>uild)过程所在的目录,例如:<filename>/sw/src/gimp-1.2.1-1/gimp-1.2.1</filename>。
+构建(<em>b</em>uild)过程所在的目录,例如:<filename>/sw/src/fink.build/gimp-1.2.1-1/gimp-1.2.1</filename>。
 你不应该假设 <filename>%f</filename> 一定在 
<filename>%p/src</filename> 中,因为用户可以通过 
<filename>/sw/etc/fink.conf</filename> 文件中的 <code>Buildpath</code> 
字段来改变它。
 最内部的目录根据 <code>Source</code> 文件名来命名,或是 
<code>SourceDirectory</code> 字段(如果存在的话)的值,或在 
<code>NoSourceDirectory</code> 为 <code>true</code> 的时候不使用它。
 </p>
@@ -311,10 +311,10 @@
 <item><itemt>%{default_script}</itemt>
 <itemd>
 <p>
-Valid only in <code>*Script</code> fields, the default contents of
+Valid only in <code>PatchScript</code>, <code>CompileScript</code>, and 
<code>InstallScript</code> fields, the default contents of
 that type of field. The value is often dependent on
 the <code>Type</code> field, and is always defined (though it may be
-blank). When used in a <code>SplitOff: InstallScript</code>, this
+blank). When used in the <code>InstallScript</code> of a <code>SplitOff</code> 
(or <code>SplitOff<em>N</em></code>), this
 expansion will yield the <em>parent's</em> default, even though the
 default for <code>InstallScript</code> in a <code>SplitOff</code>
 package is blank. (Introduced in fink-0.20.6)
@@ -704,7 +704,7 @@
 通常除了纯粹的 perl 子程序外,还包括编译好的 C 
代码。有很多办法可以识别这个情况,包括存在带有 
<code>.bundle</code> 后缀的文件等。
 </p><p>
 版本相关的 perl 模块必须使用标明版本号的 perl 
程序来编译,比方说 
<code>perl5.6.0</code>,而且必须把它的文件标准 perl 
目录下面的一个标明版本号的子目录中,例如
-<filename>/sw/lib/perl5/5.6.0</filename> 和 
<filename>/sw/lib/perl5/5.6.0/darwin</filename>。习惯上,使用后缀 
<code>-pm560</code> 的命名约定来代表针对 5.6.0 的 perl 
模块。类似的存储和命名约定也会用于其它版本的 
perl,包括 perl 5.6.1 (仅用于 10.2 代码树)和 perl 5.8.0,perl 5.8.1 
和 perl 5.8.4(即将使用)。  
+<filename>/sw/lib/perl5/5.6.0</filename> 和 
<filename>/sw/lib/perl5/5.6.0/darwin</filename>。习惯上,使用后缀 
<code>-pm560</code> 的命名约定来代表针对 5.6.0 的 perl 
模块。类似的存储和命名约定也会用于其它版本的 
perl,包括 perl 5.6.1 (仅用于 10.2 代码树), perl 5.8.0 (仅用于 10.3 
代码树), perl 5.8.1, perl 5.8.4, 和 perl 5.8.6。
 </p><p>
 <code>Type: perl 5.6.0</code> 指令会自动使用相应标定版本的 perl 
程序,并把文件存储在正确的子目录中。
 (这个指令从 fink 0.13.0 版本开始提供)。</p>
@@ -722,6 +722,111 @@
 (This list was slightly different in fink 0.20.1: package maintainers are
 encouraged to check to be sure that they are assuming the correct list.)
 </p>
+<p>
+Users may have more than one version of perl installed at a time, so
+any perl-versioned module packages must be written to allow more than
+one version of themselves to be installed concurrently. One must use
+care when installing manpages and binary or other script executables
+in these packages in order to prevent installation conflicts due to
+filename collisions. 
+You are not allowed to have any files in a package whose name ends
+with -pm<em>XYZ</em> that would have an identical pathname across
+different <em>XYZ</em>. Using <code>Replaces</code> to allow the
+same-named files to overwrite each other in different perl-versions of
+these perl-module packages is no longer acceptable.
+As a simple solution for manpages, starting in
+March 2005, Fink has defined alternate locations in MANPATH:
+<filename>%p/lib/perl5/X.Y.Z/man</filename> for each perl-X.Y.Z. You
+no longer need to create mutually-exclusive -man or -doc SplitOff
+packages. For
+example, to avoid conflicts between uri-pm581 and uri-pm586, the
+same-named <filename>URI.3pm</filename> manpage is installed
+as <filename>%p/lib/perl5/5.8.1/man/man3/URI.3pm</filename> and
+<filename>%p/lib/perl5/5.8.6/man/man3/URI.3pm</filename>,
+respectively. Note that the default scripts provided by <code>Type:
+perl X.Y.Z</code> have not changed, so you will have to locate the
+manpages here manually in your <code>InstallScript</code>. If you
+don't have a highly customized script, you can still use the default
+one, and then simply move the files manually:
+</p>
+<codeblock>
+%{default_script}
+mv %i/share/man %i/lib/perl5/5.8.1
+</codeblock>
+<p>
+That will move all manpages. If you wish to move only one section of
+manpages (for example, only section 3, the module manpages, not script
+manpages in section 1), a similar approach works:
+</p>
+<codeblock>
+%{default_script}
+mkdir -p %i/lib/perl5/5.8.1/man
+mv %i/share/man/man3 %i/lib/perl5/5.8.1/man
+</codeblock>
+<p>
+If you have executables, for example, demo or utility scripts
+in <filename>%p/bin</filename>, you have several options. One example
+is to put these files (and their associated manpages and/or other
+related files) in a %N-bin splitoff package. Use of
+<code>Conflicts</code> and <code>Replaces</code> fields ensures that
+installation of different perl-version forms of these packages, which
+contain files of the same name, is mutually excluve. The user can
+install many different perl-versions of the runtime modules, and then
+choose whichever one perl-version of the scripts he wants at a given
+time. For example, Tk.pm comes with an
+executable <filename>ptksh</filename>, so the set of tk-pm* packages
+could be constructed as follows:
+</p>
+<codeblock>
+Info2: &lt;&lt;
+Package: tk-pm%type_pkg[perl]
+Type: perl (5.8.1 5.8.4 5.8.6)
+InstallScript: &lt;&lt;
+  %{default_script}
+  mkdir -p %i/lib/perl5/%type_raw[perl]/man
+  mv %i/share/man/man3 %i/lib/perl5/%type_raw[perl]/man
+&lt;&lt;
+SplitOff: &lt;&lt;
+  Package: %N-bin
+  Depends: %N
+  Conflicts: %{Ni}5.8.1, %{Ni}5.8.4, %{Ni}5.8.6
+  Replaces: %{Ni}5.8.1, %{Ni}5.8.4, %{Ni}5.8.6
+  Files: bin share/man/man1
+&lt;&lt;
+&lt;&lt;
+</codeblock>
+<p>
+An alternative arrangement is to rename the scripts and their manpages
+to include perl-version information. This method means there is no
+naming conflict at all, so one does not need the mutually-exclusive
+%N-bin splitoffs:
+</p>
+<codeblock>
+Info2: &lt;&lt;
+Package: tk-pm%type_pkg[perl]
+Type: perl (5.8.1 5.8.4 5.8.6)
+InstallScript: &lt;&lt;
+  %{default_script}
+  mkdir -p %i/lib/perl5/%type_raw[perl]/man
+  mv %i/share/man/man3 %i/lib/perl5/%type_raw[perl]/man
+  mv %i/bin/ptksh %i/bin/ptksh%type_raw[perl]
+  mv %i/share/man/man1/ptksh.1 %i/share/man/man1/ptksh%type_raw[perl].1
+&lt;&lt;
+&lt;&lt;
+</codeblock>
+<p>
+The user accesses ptksh for whichever perl she wants. For convenience,
+one could use <code>update-alternatives</code> to allow users to be
+able to access these by their generic (no perl-version) names as well.
+</p>
+<p>
+Also as of March 2005, the location of manpages and modules installed
+by fink packages for perl itself (packages perlXYZ and perlXYZ-core
+other than the perl-version provided by Apple) has changed. As a
+result of this relocation, other fink packages that supply updated
+versions of core perl modules should not list any perlXYZ or
+perlXYZ-core packages in the <code>Replaces</code> field.
+</p>
 <!-- end translation -->
 
 </section>
@@ -908,12 +1013,26 @@
 <title>Compilers</title>
 <shorttitle>Compilers</shorttitle>
 
+<preface>
+<p>
+Fink uses the gcc family of compilers, as provided by Apple computer
+through the Apple Developer Connection. Different versions of gcc exist,
+and usually more than one is available on a Mac OS X system.
+</p><p>
+This section explains some of the ways Fink deals with these different versions
+of gcc. An email to the Fink mailing list has <link 
+url="http://www.mail-archive.com/fink-devel@lists.sourceforge.net/msg11877.html";
+>more explanation</link>.
+</p>
+</preface>
+
 <section name="versions"><title>Compiler Versions</title>
-<p>Fink uses the gcc family of compilers, as provided by Apple computer
-through the Apple Developer Connection.  As these compilers have evolved,
+<p>
+As GCC has evolved,
 there have been different fink "distributions" to cope with the changes.
-</p><p>
-Each distribution has had certain default values for the gcc and g++
+</p>
+<p>
+Each Fink distribution has had certain default values for the gcc and g++
 compilers, which any user compiling from source is expected to have
 installed.  You can expect that direct calls to "gcc" and "g++" from
 within your package will use these default values.  If you need to use
@@ -989,14 +1108,14 @@
 <section name="build"><title>构建过程</title>
 
 <p>要理解一些字段的含义,你需要有对 Fink 
所采用的构建过程有些了解。它由五个阶段组成:解压,补丁,编译,安装和构建。下面的示例路径是关于安装在
 <filename>/sw</filename> 的 gimp-1.2.1-1 软件包的。</p>
-<p>在<em>解压阶段</em>,<filename>/sw/src/gimp-1.2.1-1</filename> 
这个目录会被创建,源代码压缩档会被在这里解压。多数情况下,这会创建一个名为
 gimp-1.2.1 
的目录,里面包括源代码;下面的操作步骤会在那个目录里面执行(即
 <filename>/sw/src/gimp-1.2.1-1/gimp-1.2.1</filename>)。我们可以使用 
SourceDirectory,NoSourceDirectory 和 Source<em>N</em>ExtractDir
+<p>在<em>解压阶段</em>,<filename>/sw/src/fink.build/gimp-1.2.1-1</filename>
 
这个目录会被创建,源代码压缩档会被在这里解压。多数情况下,这会创建一个名为
 gimp-1.2.1 
的目录,里面包括源代码;下面的操作步骤会在那个目录里面执行(即
 
<filename>/sw/src/fink.build/gimp-1.2.1-1/gimp-1.2.1</filename>)。我们可以使用
 SourceDirectory,NoSourceDirectory 和 Source<em>N</em>ExtractDir
 这三个字段来控制有关细节。</p>
 <p>在<em>补丁阶段</em>,源代码会被打上补丁,以使得可以在 
Darwin 下面编译。由 UpdateConfigGuess,UpdateLibtool,Patch 和 
PatchScrip 这几个字段所指明的操作将被按照顺序执行。</p>
 
<p>在<em>编译阶段</em>,源代码被配置和编译。通常这会以某些参数来调用
 <code>configure</code> 脚本,然后执行一个 <code>make</code> 命令。
 详细信息请查看 CompileScript 字段的描述。</p>
-<p>在<em>安装阶段</em>,软件包被安装到一个临时目录,<filename>/sw/src/root-gimp-1.2.1-1</filename>
 (= %d)。(注意 &quot;root-&quot; 部分。)
+<p>在<em>安装阶段</em>,软件包被安装到一个临时目录,<filename>/sw/src/fink.build/root-gimp-1.2.1-1</filename>
 (= %d)。(注意 &quot;root-&quot; 部分。)
 所有通常应该安装到 <filename>/sw</filename> 
的文件现在被安装在
-<filename>/sw/src/root-gimp-1.2.1-1/sw</filename> (= %i = %d%p)。 
+<filename>/sw/src/fink.build/root-gimp-1.2.1-1/sw</filename> (= %i = %d%p)。 
 详细信息请查看 InstallScript 字段的描述。</p>
 <p>(<em>从 fink 0.9.9 开始,</em>可以通过 <code>SplitOff</code> 
字段从一个软件包描述文件生成几个软件包。在安装阶段的尾段,会为每个软件包建立一个单独的安装目录,文件会被移到相应的目录中,)</p>
 
<p>在<em>构建阶段</em>,会根据临时文件夹的内容构建一个二进制安装包(.deb)文件。你不能直接影响这个步骤,但软件包描述里面的许多字段会用于生成
 dpkg 的 <filename>control</filename> 文件。</p>
@@ -1072,7 +1191,7 @@
   removing, or renaming splitoff packages or shifting files among
   them. When migrating a package to a new tree (from 10.2 to 10.3, for
   example) involves such changes, you should
-  increase <code>Revision</code> by 10 in the newer tree in order to
+  increase <code>Revision</code> by 10 (or some other large number) in the 
newer tree in order to
   leave space for future updates to the package in the older
   tree.
 </p>
@@ -1086,6 +1205,11 @@
 
这个可选字段可以用来指明软件包关键版本号(如果没有提供,默认值为
 0).更多信息参考<link
 
url="http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Version";>Debian
 规则手册</link>.
+<!-- start translation -->
+Because Fink and some of the underlying Debian tools use
+name-version-revision as the unique identifier of a package, you must
+not create a package that differs from another solely by its epoch.
+<!-- end translation -->
 </p>
 </itemd></item>
 
@@ -1193,10 +1317,22 @@
 本字段允许 fink 
在软件包描述文件中实现后向兼容的语法改变。
 一个给定版本的 fink 被配置为能够处理某个最大的 
&quot;N&quot; 整数值。
 任意在更高的 InfoN 
字段的软件包会被忽略,所以这种机制仅在有需要的时候才使用,否则那些使用较旧版本的用户就会被没有必要地区别出去了。
-本文档其它字段的说明会描述必须使用哪个特定的 InfoN。
 要使用这个机制,把整个软件包描述放到合适的 InfoN 
字段中间。
 参考前面的 &quot;File Format&quot; 部分了解多行字段的语法。
+<!-- start translation -->
+Here are the features added for each InfoN level, along with the
+earliest version of fink that supports it:
 </p>
+<ul>
+<li>
+<code>Info2</code> (fink>=0.20.0): Ability to use percent-expansions
+in the main <code>Package</code> field of the .info file and the
+ability to use the <code>%type_*</code> percent-expansions in
+the <code>Package</code> field of <code>SplitOff</code>
+(and <code>SplitOff<em>N</em></code>) packages.
+</li>
+</ul>
+<!-- end translation -->
 
 </itemd></item>
 
@@ -1316,6 +1452,19 @@
 </p>
 </itemd></item>
 
+<!-- start translation -->
+<item><itemt>BuildConflicts</itemt>
+<itemd>
+<p>
+A list of packages that must not be installed while this package is
+being compiled. This can be used to prevent <code>./configure</code>
+or the compiler from seeing undesired library headers or to avoid use
+of a version of a tool that is known to be broken (for example, a bug
+in a certain version of sed).
+</p>
+</itemd></item>
+<!-- end translation -->
+
 <item><itemt>Replaces</itemt>
 <itemd>
 <p>
@@ -1654,7 +1803,9 @@
 LDFLAGS: -L%p/lib
 </codeblock>
 <p>
-In addition, starting in fink 0.17.0:
+In addition, starting in fink 0.17.0, the following values are set for
+the 10.4-transitional distribution and earlier (but are not set for
+the 10.4 distribution and later):
 </p>
 <codeblock>
 LD_PREBIND: 1
@@ -1721,14 +1872,20 @@
 The allowed values are:
 <code>2.95.2</code> (or <code>2.95</code>),
  <code>3.1</code>,
-and <code>3.3</code>.
-This last is expected to be the GCC-ABI for gcc 3.3 and all subsequent
-versions of gcc.
-The default values for the various package trees are:
+ <code>3.3</code>,
+and <code>4.0</code>.
+Our understanding is that the GCC authors intend to stabilize the GCC-ABI
+at some point; we can hope that it won't change again.
+</p><p>
+The GCC field does not have a default value, per se, since it is ignored
+if it is not set.  However, for each tree, there is an expected value
+for GCC corresponding to the default g++ compiler for that tree.
+The expected values for the various package trees are:
 <code>2.95</code> in the 10.1 tree, <code>3.1</code> in the 10.2 tree,
-and <code>3.3</code> in the 10.2-gcc3.3, 10.3, and all subsequent trees.
+ <code>3.3</code> in the 10.2-gcc3.3, 10.3, and 10.4-transitional
+trees, and <code>4.0</code> in the (upcoming) 10.4 tree.
 </p><p>
-Note that when the GCC value is different from the default, the compiler
+Note that when the GCC value is different from the expected value, the compiler
 must be specified within the package (typically by setting the CC or CXX
 flags), and a dependency on one of the (virtual) gcc packages should be
 specified.
@@ -2118,6 +2275,24 @@
 <li>额外数据:这会从父软件包继承,但可以通过在 
<code>SplitOff</code> 或 <code>SplitOff<em>N</em></code> 
中声明这些字段而进行修改。</li>
 </ul>
 <p>
+<!-- end translation -->
+Because %n-%v-%r is treated as the unique identifier of a package, you
+must not have the same <code>Package</code> (at the
+same <code>Version</code> and <code>Revision</code>) listed as
+a <code>SplitOff</code> (or <code>SplitOff<em>N</em></code>) of
+multiple packages. If you use variants, remember that each variant is
+considered an independent package, so the following package layout is
+forbidden:
+<!-- start translation -->
+</p>
+<codeblock>
+Package: mime-base64-pm%type_pkg[perl]
+Type: perl (5.8.1 5.8.6)
+SplitOff: %lt;%lt;
+  Package: mime-base64-pm-bin
+%lt;%lt;
+</codeblock>
+<p>
 在安装阶段,父文件包的 <code>InstallScript</code> 和 
 <code>DocFiles</code> 会被首先执行。
 然后处理 <code>SplitOff</code> 和 <code>SplitOff<em>N</em></code> 
字段。对每个这种字段,<code>Files</code> 
命令会导致命令中所列的文件和目录会从父文件包的安装目录
 %I 移到当前的安装目录 %i。然后给定 <code>SplitOff</code> 或 
<code>SplitOff<em>N</em></code> 软件包的 <code>InstallScript</code>

Index: packaging.ja.xml
===================================================================
RCS file: /cvsroot/fink/web/xml/packaging/packaging.ja.xml,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -d -r1.32 -r1.33
--- packaging.ja.xml    28 Jun 2005 00:34:18 -0000      1.32
+++ packaging.ja.xml    18 Sep 2005 21:16:57 -0000      1.33
@@ -53,7 +53,7 @@
                        <p>
                                
パッケージは3つの文字列で区別されます.
                                
すなわち「パッケージ名」,「バージョン」と「版」です.
-                               これらのいずれにも英小文字 (a 
から z),数字 (0 から 9), ダッシュ (-),プラス (+),ドット 
(.) のみが使えます.
+                               これらのいずれにも英小文字 (a 
から z),数字 (0 から 9), ダッシュ (-; 註: 
リビジョン中には使えません),プラス (+),ドット (.) 
のみが使えます.
                                この他の字は使えません.
                                特に,大文字と下線 (_) 
が使えないことに注意して下さい.
                        </p>
@@ -252,7 +252,7 @@
                                        <itemd>
                                                <p>
                                                        
<em>d</em>estination.パッケージ化するツリーのビルド先.
-                                                       
例:<filename>/sw/src/root-gimp-1.2.1-1</filename>
+                                                       
例:<filename>/sw/src/fink.build/root-gimp-1.2.1-1</filename>
                                                        
この一時ディレクトリはパッケージをコンパイルする際のインストール段階でルートディレクトリの役を果たす.
                                                        
<filename>root-%f</filename> が <filename>%p/src</filename> 
の中にあることを当てにしてはいけない.
                                                        
ユーザが設定ファイル <filename>/sw/etc/fink.conf</filename> 
でフィールド <code>Buildpath</code>
@@ -302,7 +302,7 @@
                                        <itemd>
                                                <p>
                                                        <em>b</em>uild.
-                                                       
ビルドディレクトリ.例: 
<filename>/sw/src/gimp-1.2.1-1/gimp-1.2.1</filename>
+                                                       
ビルドディレクトリ.例: 
<filename>/sw/src/fink.build/gimp-1.2.1-1/gimp-1.2.1</filename>
                                                        <filename>%f</filename> 
が <filename>%p/src</filename> 
の中にあることを当てにしてはいけない.
                                                        
ユーザが設定ファイル <filename>/sw/etc/fink.conf</filename> 
でフィールド <code>Buildpath</code>
                                                        
を指定すればこの場所は変わってしまう.
@@ -375,10 +375,10 @@
                                        <itemt>%{default_script}</itemt>
                                        <itemd>
                                                <p>
-                                                       <code>*Script</code> 
フィールドでのみ有効.
-                                                       <code>*Script</code> 
フィールドでのデフォルトフィールド.
+                                                       
<code>PatchScript</code>, <code>CompileScript</code> および 
<code>InstallScript</code> フィールドでのみ有効で,
+                                                       デフォルトの値.
                                                        値は 
<code>Type</code> 
に依存するが,常に存在する(または空欄).
-                                                       <code>SplitOff: 
InstallScript</code> で使われる場合,
+                                                       <code>SplitOff</code> 
(または <code>SplitOff<em>N</em></code>) 中の <code>InstallScript</code> 
で使われる場合,
                                                        <code>SplitOff</code> 
パッケージの <code>InstallScript</code> 
デフォルトが空欄であっても,
                                                        
この展開は<em>親</em>のデフォルトになる.
                                                        
@@ -962,7 +962,7 @@
                                (<filename>/sw/lib/perl5/5.6.0</filename> や 
<filename>/sw/lib/perl5/5.6.0/darwin</filename> など) 
に格納しなければいけません.
                                命名規約により,バージョン 5.6.0 
に依存する Perl モジュールに <code>-pm560</code> 
を後置します.
                                
格納場所と命名方法に関する同様の規約が他のバージョンの
 Perl に対しても有効で,
-                               perl 5.6.1 (10.2 ツリー) と perl 5.8.0, 
perl 5.8.1, perl 5.8.4 (間もなく) 
でもそのように対応されます.
+                               perl 5.6.1 (10.2 ツリー), perl 5.8.0 (10.3 
ツリー), perl 5.8.1, perl 5.8.4 または perl 5.8.6 
でもそのように対応されます.
                        </p>
                        <p>
                                ディレクティブ <code>Type: perl 
5.6.0</code> は自動的にバージョンの付いた Perl 
の実行可能ファイルを使い,
@@ -993,6 +993,111 @@
                                Fink 0.13.0 
から利用可能になったコマンド <code>fink validate</code> を .deb 
ファイルに適用すると,
                                その Fink パッケージが XS 
モジュールで,バージョンの付かないディレクトリにインストールされるかチェックし,そうなら警告を発します.
                        </p>
+<!-- start translation -->
+<p>
+ユーザーは,同時に複数のバージョンの perl 
を持つことができます.
+このため, perl 
バージョン指定されたモジュールは,複数のバージョンが同時に存在できるようにインストールされなければなりません.
+manpage 
やばいなり,その他のスクリプトなど,これらのパッケージでのファイル名の重複を避けるよう,
+注意を払わねばなりません.
+
+You are not allowed to have any files in a package whose name ends
+with -pm<em>XYZ</em> that would have an identical pathname across
+different <em>XYZ</em>. Using <code>Replaces</code> to allow the
+same-named files to overwrite each other in different perl-versions of
+these perl-module packages is no longer acceptable.
+As a simple solution for manpages, starting in
+March 2005, Fink has defined alternate locations in MANPATH:
+<filename>%p/lib/perl5/X.Y.Z/man</filename> for each perl-X.Y.Z. You
+no longer need to create mutually-exclusive -man or -doc SplitOff
+packages. For
+example, to avoid conflicts between uri-pm581 and uri-pm586, the
+same-named <filename>URI.3pm</filename> manpage is installed
+as <filename>%p/lib/perl5/5.8.1/man/man3/URI.3pm</filename> and
+<filename>%p/lib/perl5/5.8.6/man/man3/URI.3pm</filename>,
+respectively. Note that the default scripts provided by <code>Type:
+perl X.Y.Z</code> have not changed, so you will have to locate the
+manpages here manually in your <code>InstallScript</code>. If you
+don't have a highly customized script, you can still use the default
+one, and then simply move the files manually:
+</p>
+<codeblock>
+%{default_script}
+mv %i/share/man %i/lib/perl5/5.8.1
+</codeblock>
+<p>
+That will move all manpages. If you wish to move only one section of
+manpages (for example, only section 3, the module manpages, not script
+manpages in section 1), a similar approach works:
+</p>
+<codeblock>
+%{default_script}
+mkdir -p %i/lib/perl5/5.8.1/man
+mv %i/share/man/man3 %i/lib/perl5/5.8.1/man
+</codeblock>
+<p>
+If you have executables, for example, demo or utility scripts
+in <filename>%p/bin</filename>, you have several options. One example
+is to put these files (and their associated manpages and/or other
+related files) in a %N-bin splitoff package. Use of
+<code>Conflicts</code> and <code>Replaces</code> fields ensures that
+installation of different perl-version forms of these packages, which
+contain files of the same name, is mutually excluve. The user can
+install many different perl-versions of the runtime modules, and then
+choose whichever one perl-version of the scripts he wants at a given
+time. For example, Tk.pm comes with an
+executable <filename>ptksh</filename>, so the set of tk-pm* packages
+could be constructed as follows:
+</p>
+<codeblock>
+Info2: &lt;&lt;
+Package: tk-pm%type_pkg[perl]
+Type: perl (5.8.1 5.8.4 5.8.6)
+InstallScript: &lt;&lt;
+  %{default_script}
+  mkdir -p %i/lib/perl5/%type_raw[perl]/man
+  mv %i/share/man/man3 %i/lib/perl5/%type_raw[perl]/man
+&lt;&lt;
+SplitOff: &lt;&lt;
+  Package: %N-bin
+  Depends: %N
+  Conflicts: %{Ni}5.8.1, %{Ni}5.8.4, %{Ni}5.8.6
+  Replaces: %{Ni}5.8.1, %{Ni}5.8.4, %{Ni}5.8.6
+  Files: bin share/man/man1
+&lt;&lt;
+&lt;&lt;
+</codeblock>
+<p>
+An alternative arrangement is to rename the scripts and their manpages
+to include perl-version information. This method means there is no
+naming conflict at all, so one does not need the mutually-exclusive
+%N-bin splitoffs:
+</p>
+<codeblock>
+Info2: &lt;&lt;
+Package: tk-pm%type_pkg[perl]
+Type: perl (5.8.1 5.8.4 5.8.6)
+InstallScript: &lt;&lt;
+  %{default_script}
+  mkdir -p %i/lib/perl5/%type_raw[perl]/man
+  mv %i/share/man/man3 %i/lib/perl5/%type_raw[perl]/man
+  mv %i/bin/ptksh %i/bin/ptksh%type_raw[perl]
+  mv %i/share/man/man1/ptksh.1 %i/share/man/man1/ptksh%type_raw[perl].1
+&lt;&lt;
+&lt;&lt;
+</codeblock>
+<p>
+The user accesses ptksh for whichever perl she wants. For convenience,
+one could use <code>update-alternatives</code> to allow users to be
+able to access these by their generic (no perl-version) names as well.
+</p>
+<p>
+Also as of March 2005, the location of manpages and modules installed
+by fink packages for perl itself (packages perlXYZ and perlXYZ-core
+other than the perl-version provided by Apple) has changed. As a
+result of this relocation, other fink packages that supply updated
+versions of core perl modules should not list any perlXYZ or
+perlXYZ-core packages in the <code>Replaces</code> field.
+</p>
                </section>
                <section name="emacs">
                        <title>Emacs ポリシー</title>
@@ -1211,14 +1316,25 @@
 <title>コンパイラ</title>
 <shorttitle>コンパイラ</shorttitle>
 
+<preface>
+<p>
+Fink は,Apple Developer Connection 
によってアップルコンピュータから提供される gcc 
コンパイラを使用しています.
+バージョンはいくつかあり, Mac OS X 
システムでも通常は複数のバージョンが存在します.
+</p>
+<p>
+<link 
+url="http://www.mail-archive.com/fink-devel@lists.sourceforge.net/msg11877.html";
+>より詳しい解説</link>がメーリングリスト中にあります.
+</p>
+</preface>
+
 <section name="versions"><title>コンパイラバージョン</title>
 <p>
-gcc ファミリーのコンパイラを使用します.
-これらのコンパイラの発展に伴い,fink は 
&quot;ディストリビューション&quot; をつくって
+GCC の発展に伴い,fink は 
&quot;ディストリビューション&quot; をつくって
 変化に対応してきました.
 </p>
 <p>
-各ディストリビューションには,ソースからコンパイルするユーザー全員がもっていると想定されている
+各 Fink 
ディストリビューションには,ソースからコンパイルするユーザー全員がもっていると想定されている
 既定の gcc と g++ コンパイラがあります.
 パッケージ中で直接 &quot;gcc&quot; や &quot;g++&quot; 
を使用すると,この既定値が使われます. 
 
これと違う値を使用する必要がある場合,(例えば,ディストリビューションの移行中に)
 パッケージ .info ファイルは
@@ -1286,9 +1402,9 @@
                                下記の例では <filename>/sw</filename> 
にパッケージ gimp-1.2.1-1 をインストールするものとします.
                        </p>
                        <p>
-                               
<em>解凍段階</em>では,ディレクトリ 
<filename>/sw/src/gimp-1.2.1-1</filename> が作成されてソースの tar 
ボールがそこに解凍されます.
+                               
<em>解凍段階</em>では,ディレクトリ 
<filename>/sw/src/fink.build/gimp-1.2.1-1</filename> 
が作成されてソースの tar ボールがそこに解凍されます.
                                
大抵,解凍によりソースを含むディレクトリ 
<filename>gimp-1.2.1</filename> が作られます.
-                               
これ以降のステップはすべてこの中 (すなわち 
<filename>/sw/src/gimp-1.2.1-1/gimp-1.2.1</filename>) で行われます.
+                               
これ以降のステップはすべてこの中 (すなわち 
<filename>/sw/src/fink.build/gimp-1.2.1-1/gimp-1.2.1</filename>) 
で行われます.
                                詳細はフィールド SourceDirectory, 
NoSourceDirectory や Source<em>N</em>ExtractDir (Nは数字) 
で変更できます.
                        </p>
                        <p>
@@ -1302,10 +1418,10 @@
                        </p>
                        <p>
                                
<em>インストール段階</em>では,パッケージは仮ディレクトリ
-                               <filename>/sw/src/root-gimp-1.2.1-1</filename> 
(%d と同じ) にインストールされます
+                               
<filename>/sw/src/fink.build/root-gimp-1.2.1-1</filename> (%d と同じ) 
にインストールされます
                                (&quot;root-&quot; 
が付いていることに注意).
                                ディレクトリ <filename>/sw</filename> 
にインストールされる予定のファイルは全て,
-                               
<filename>/sw/src/root-gimp-1.2.1-1/sw</filename> (%i すなわち %d%p 
に同じ) にインストールされます.
+                               
<filename>/sw/src/fink.build/root-gimp-1.2.1-1/sw</filename> (%i すなわち 
%d%p に同じ) にインストールされます.
                                詳細はフィールド InstallScript 
を参照して下さい.
                        </p>
                        <p>
@@ -1390,7 +1506,7 @@
                                                <p>
                                                        Fink 
のポリシーでは,パッケージのバイナリ (コンパイル済み) 
形式 (<filename>.deb</filename> 
ファイル)が変わる<em>いかなる</em>場合でも,<code>Revision</code>
 をあげなければ<em>なりません</em>.
                                                        
例えば,<code>Depends</code> 
や他のパッケージ一覧フィールド, Splitoff 
パッケージの追加・削除・名称変更, Splitoff 
パッケージ間でのファイルの移動など.
-                                                       
パッケージのツリーを統合 (例えば 10.2 から 10.3) 
する場合,新しい方のツリーでは <code>Revision</code> を 10 
あげて古い方のツリーでのパッケージの更新に対応できるようにします.
+                                                       
パッケージのツリーを統合 (例えば 10.2 から 10.3) 
する場合,新しい方のツリーでは <code>Revision</code> を 10 
(など,大きな数字) 
あげて古い方のツリーでのパッケージの更新に対応できるようにします.
                                               </p>
                                        </itemd>
                                </item>
@@ -1403,7 +1519,8 @@
                                                        詳細は
                                                        <link 
url="http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Version";>Debian
 Policy Manual</link>
                                                        を参照.
-                                                       
省略可能フィールド.
+                                                       Fink 
と,元となっている Debian ツールは,name-version-revision 
をパッケージのユニークな識別子としています.
+                                                       epoch 
のみが異なるような複数のパッケージを作ってはいけません.
                                                </p>
                                        </itemd>
                                </item>
@@ -1504,7 +1621,7 @@
 Depends: (%type_raw[-x11] = -x11) x11
 CompileScript:  &lt;&lt;
   #!/bin/bash -ev
-  if [&quot;%type_raw[-x11]&quot; == &quot;-x11&quot;]; then
+  if [ &quot;%type_raw[-x11]&quot; == &quot;-x11&quot; ]; then
     ./configure %c --with-x11
   else
     ./configure %c --without-x11
@@ -1548,15 +1665,22 @@
                                        <itemt>InfoN</itemt>
                                        <itemd>
                                                <p>
-                                                       
このフィールドにより Fink 
はパッケージ記述の構文の非互換な変更に対処できる.
-                                                       
任意のバージョンの Fink には扱える &quot;N&quot; (整数) 
の最大値が設定されている.
-                                                       
それより大きいNを持つフィールド InfoN 
はいずれも無視される.
-                                                       
だからこの機構の利用は必要最低限に止めなければいけない.
-                                                       
そうしないと古いバージョンの Fink 
のユーザが必然性なしに仲間外れにされてしまう.
-                                                       
他のフィールドの解説には,どのバージョンの Fink 
ではどのNの InfoN 
を使わなければいけないか記されているだろう.
-                                                       
この機構を使うには,パッケージ記述全体をフィールド 
InfoN の値に埋め込む.
-                                                       
複数行に渡る値の記述方法については,前述の「ファイル形式」を参照.
+                                                       
このフィールドにより Fink 
はパッケージ記述の構文の非互換な変更に対処できます.
+                                                       
任意のバージョンの Fink には扱える &quot;N&quot; (整数) 
の最大値が設定されています.
+                                                       
それより大きいNを持つフィールド InfoN 
はいずれも無視されます.
+                                                       
だからこの機構の利用は必要最低限に止めなければいけません.
+                                                       
そうでないと,古いバージョンの Fink 
のユーザが必然性なしに仲間外れにされます.
+                                                       
この機構を使うには,パッケージ記述全体をフィールド 
InfoN の値に埋め込んでください.
+                                                       
複数行に渡る値の記述方法については,前述の「ファイル形式」を参照してください.
+                                                       以下は,各 InfoN 
レベルに於いて追加された機能と,最初にサポートされた 
fink のバージョンです.
                                                </p>
+<ul>
+<li>
+<code>Info2</code> (fink>=0.20.0): 
+.info ファイル中のメインの <code>Package</code> 
フィールドでのパーセント展開の使用.
+<code>SplitOff</code> (および <code>SplitOff<em>N</em></code>) での 
<code>%type_*</code> パーセント展開の使用.
+</li>
+</ul>
                                        </itemd>
                                </item>
                        </itemtable>
@@ -1680,21 +1804,28 @@
                                        <itemt>Conflicts</itemt>
                                        <itemd>
                                                <p>
-                                                       
そのパッケージと同時にインストールしてはいけない「パッケージ名」のカンマ区切りのリスト.
-                                                       
バーチャルパッケージでは,そのパッケージが提供する「パッケージ名」をここに指定してもよい.
-                                                       
それらは適切に扱われる.
-                                                       
このフィールドはフィールド Depends 
のようにバージョン付きの依存性情報にも対応しているが,
-                                                       
代替パッケージには対応していない (意味をなさない).
-                                                       
あるパッケージがそれ自身のパッケージ記述の Conflicts 
に入っていると, (暗黙のうちに) そこから取り除かれる.
+                                                       
そのパッケージと同時にインストールしてはいけない「パッケージ名」のカンマ区切りの一覧.
+                                                       
バーチャルパッケージでは,そのパッケージが提供する「パッケージ名」をここに指定することができ,適切に扱われます.
+                                                       
このフィールドはフィールド Depends 
のようにバージョン付きの依存性情報にも対応していますが,
+                                                       
代替パッケージには対応していません (意味をなさない).
+                                                       
あるパッケージがそれ自身のパッケージ記述の Conflicts 
に入っていると, (暗黙のうちに) 
そこから取り除かれます.
                                                        (Fink 
のバージョン 0.18.2 CVS 以降で導入)
                                                </p>
                                                <p>
-                                                       <em>注記:</em> 
Fink自身はこのフィールドを無視する.
-                                                       しかしこれは dpkg 
に渡され,そこで適切に扱われる.
-                                                       
要するにこのフィールドが影響するのはビルド時でなく実行時だ.
+                                                       <em>注記:</em> Fink 
自身はこのフィールドを無視します.
+                                                       これは dpkg 
に渡され,そこで適切に扱われます.
+                                                       
要するに,このフィールドが影響するのはビルド時でなく実行時です.
                                                </p>
                                        </itemd>
                                </item>
+<item><itemt>BuildConflicts</itemt>
+<itemd>
+<p>
+当該パッケージがコンパイル中にインストールされてはいけないパッケージの一覧.
+これは, <code>./configure</code> 
やコンパイラが,望ましくないライブラリヘッダを見たり,
+壊れることが分かっているツール 
(例えば,特定のバージョンの sed にあるバグ) 
のバージョンを使用することを避けるために使います.
+</p>
+</itemd></item>
                                <item>
                                        <itemt>Replaces</itemt>
                                        <itemd>
@@ -2111,7 +2242,8 @@
 LDFLAGS: -L%p/lib
 </codeblock>
                                                <p>
-                                                       fink 0.17.0 
からはさらに以下が追加されています:
+fink-0.17.0 より,10.4-transitional 
ディストリビューションまで,以下の値が設定されます
+(が,10.4 以降では設定されません).
                                                </p>
 <codeblock>
 LD_PREBIND: 1
@@ -2170,11 +2302,19 @@
                                                </p><p>
                                                        値としては:
                                                        <code>2.95.2</code> (or 
<code>2.95</code>),
-                                                       <code>3.1</code>,
-                                                       <code>3.3</code>
+                                                       <code>3.1</code>, 
<code>3.3</code> および <code>4.0</code> 
                                                        があります.
-                                                       最後の値は, gcc 
3.1 およびそれ以降の gcc の GCC-ABI です.
-                                               </p><p>
+                                                       
我々の知る限り,GCC の作者は,ある時点で GCC-ABI 
を固定するものと思われます.
+                                                       
これ以上変わらないことを期待しましょう.
+                                               </p>
+<p>
+GCC 
フィールドはそれ自体は既定値を持たず,設定されなければ無視されます.
+しかし,各ツリーには,既定の g++ 
コンパイラが存在し,これに対応する GCC 
の値が想定されています.
+想定値は,10.1 ツリーでは <code>2.95</code>, 10.2 ツリーでは 
<code>3.1</code>,
+10.2-gcc3.3, 10.3, および 10.4-transitional ツリーでは 
<code>3.3</code>,
+(将来の) 10.4 ツリーでは <code>4.0</code> となります.
+</p>
+                                               <p>
                                                        注記: GCC 
値が既定値と異なる場合, (CC や CXX 
フラグを設定するなど) 
パッケージ内でコンパイラを指定する必要があります.
                                                        また, (virtual) gcc 
パッケージへの依存性を指定します.
                                                </p>
@@ -2656,6 +2796,20 @@
                                        <code>SplitOff</code> や 
<code>SplitOff<em>N</em></code> 
の中で宣言して修正することができます.
                                </li>
                        </ul>
+<p>
+%n-%v-%r 
は,パッケージのユニークな識別子として扱われるため,
+<code>SplitOff</code> (あるいは <code>SplitOff<em>N</em></code>)
+を用いて (同じ <code>Version</code> と <code>Revision</code> で) 
<code>Package</code> を作成しては行けません.
+バリアントを使う際は,各バリアントが独立したパッケージとなるようにしてください.
+つまり,以下のようなパッケージレイアウトは禁止されます:
+</p>
+<codeblock>
+Package: mime-base64-pm%type_pkg[perl]
+Type: perl (5.8.1 5.8.6)
+SplitOff: %lt;%lt;
+  Package: mime-base64-pm-bin
+%lt;%lt;
+</codeblock>
                        <p>
                                
インストール段階では,まず親パッケージの 
<code>InstallScript</code> と <code>DocFiles</code> が実行されます.
                                次にフィールド <code>SplitOff</code> や 
<code>SplitOff<em>N</em></code> の処理が行われます.



-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. 
Download it for free - -and be entered to win a 42" plasma tv or your very
own Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
Fink-commits mailing list
Fink-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fink-commits

Reply via email to