Update of /cvsroot/fink/scripts/installer/dmg/doc/packaging
In directory 
sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7107/scripts/installer/dmg/doc/packaging

Modified Files:
        packaging.en.html packaging.fr.html packaging.ja.html 
        packaging.zh.html 
Log Message:
Updating to English v. 1.58

Index: packaging.ja.html
===================================================================
RCS file: /cvsroot/fink/scripts/installer/dmg/doc/packaging/packaging.ja.html,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- packaging.ja.html   9 Jun 2005 21:46:31 -0000       1.20
+++ packaging.ja.html   24 Jun 2005 14:58:36 -0000      1.21
@@ -26,7 +26,7 @@
                        <a 
href="http://fink.sourceforge.net/pdb/nomaintainer.php";>現在メンテナのいないパッケージ</a>
                        のメンテナンスをお願いいたします.
                </p>
-       <h2>Contents</h2><ul><li><a href="#intro"><b>1 
始めに</b></a><ul><li><a href="#intro.def1">1.1 
パッケージとは何か?</a></li><li><a href="#intro.ident">1.2 
パッケージの区別</a></li></ul></li><li><a href="#format"><b>2 
パッケージ記述</b></a><ul><li><a href="#format.trees">2.1 
ツリーレイアウト</a></li><li><a href="#format.format">2.2 
ファイル形式</a></li><li><a href="#format.percent">2.3 
パーセント展開</a></li></ul></li><li><a href="#policy"><b>3 
パッケージ化ポリシー</b></a><ul><li><a href="#policy.licenses">3.1 
パッケージのライセンス</a></li><li><a href="#policy.openssl">3.2 GPL 
と OpenSSL</a></li><li><a href="#policy.prefix">3.3 
基盤システムへの干渉問題</a></li><li><a 
href="#policy.sharedlibs">3.4 共有ライブラリ</a></li><li><a 
href="#policy.perlmods">3.5 Perl モジュール</a></li><li><a 
href="#policy.emacs">3.6 Emacs ポリシー</a></li></ul></li><li><a 
href="#fslayout"><b>4 ファイ
 ルシステムのレイアウト</b></a><ul><li><a href="#fslayout.fhs">4.1 
ファイルシステム構造標準 (Filesystem Hierarchy 
Standard)</a></li><li><a href="#fslayout.dirs">4.2 
ディレクトリ</a></li><li><a href="#fslayout.avoid">4.3 
避けるべきこと</a></li></ul></li><li><a href="#reference"><b>5 
リファレンスマニュアル</b></a><ul><li><a href="#reference.build">5.1 
ビルドプロセス</a></li><li><a href="#reference.fields">5.2 
フィールド</a></li><li><a href="#reference.splitoffs">5.3 
スプリットオフ (SplitOff)</a></li><li><a href="#reference.scripts">5.4 
スクリプト</a></li><li><a href="#reference.patches">5.5 
パッチ</a></li><li><a href="#reference.profile.d">5.6 Profile.d 
スクリプト</a></li></ul></li></ul><h2><a name="intro">1 始めに</a></h2>
+       <h2>Contents</h2><ul><li><a href="#intro"><b>1 
始めに</b></a><ul><li><a href="#intro.def1">1.1 
パッケージとは何か?</a></li><li><a href="#intro.ident">1.2 
パッケージの区別</a></li></ul></li><li><a href="#format"><b>2 
パッケージ記述</b></a><ul><li><a href="#format.trees">2.1 
ツリーレイアウト</a></li><li><a href="#format.format">2.2 
ファイル形式</a></li><li><a href="#format.percent">2.3 
パーセント展開</a></li></ul></li><li><a href="#policy"><b>3 
パッケージ化ポリシー</b></a><ul><li><a href="#policy.licenses">3.1 
パッケージのライセンス</a></li><li><a href="#policy.openssl">3.2 GPL 
と OpenSSL</a></li><li><a href="#policy.prefix">3.3 
基盤システムへの干渉問題</a></li><li><a 
href="#policy.sharedlibs">3.4 共有ライブラリ</a></li><li><a 
href="#policy.perlmods">3.5 Perl モジュール</a></li><li><a 
href="#policy.emacs">3.6 Emacs ポリシー</a></li></ul></li><li><a 
href="#fslayout"><b>4 ファイ
 ルシステムのレイアウト</b></a><ul><li><a href="#fslayout.fhs">4.1 
ファイルシステム構造標準 (Filesystem Hierarchy 
Standard)</a></li><li><a href="#fslayout.dirs">4.2 
ディレクトリ</a></li><li><a href="#fslayout.avoid">4.3 
避けるべきこと</a></li></ul></li><li><a href="#compilers"><b>5 
Compilers</b></a><ul><li><a href="#compilers.versions">5.1 Compiler 
Versions</a></li><li><a href="#compilers.abi">5.2 The g++ 
ABI</a></li></ul></li><li><a href="#reference"><b>6 
リファレンスマニュアル</b></a><ul><li><a href="#reference.build">6.1 
ビルドプロセス</a></li><li><a href="#reference.fields">6.2 
フィールド</a></li><li><a href="#reference.splitoffs">6.3 
スプリットオフ (SplitOff)</a></li><li><a href="#reference.scripts">6.4 
スクリプト</a></li><li><a href="#reference.patches">6.5 
パッチ</a></li><li><a href="#reference.profile.d">6.6 Profile.d 
スクリプト</a></li></ul></li></ul><h2><a name="intro">1 始めに</a></h2
 >
                
                
                <h3><a name="intro.def1">1.1 
パッケージとは何か?</a></h3>
@@ -1049,10 +1049,85 @@
                                <tt style="white-space: 
nowrap;">/sw/libexec</tt>, <tt style="white-space: nowrap;">/sw/lib/locale</tt>
                        </p>
                
-       <h2><a name="reference">5 リファレンスマニュアル</a></h2>
+       <h2><a name="compilers">5 Compilers</a></h2>
+
+
+
+<h3><a name="compilers.versions">5.1 Compiler Versions</a></h3>
+<p>Fink uses the gcc family of compilers, as provided by Apple computer
+through the Apple Developer Connection.  As these compilers have 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++
+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
+a different value (for example, during a transition to a new distribution,
+your packages .info file must specify this using the versioned binaries
+provided by Apple.  Exactly how you will do this depends on the build
+system of your software, but for many packages, the <tt style="white-space: 
nowrap;">SetCC</tt>
+and <tt style="white-space: nowrap;">SetCXX</tt> fink fields can be used for 
this puporse.
+For example, you might change the g++ compiler to version 3.3 by the setting
+<tt style="white-space: nowrap;">SetCXX: g++-3.3</tt>.  Examine the output 
when building your
+package to make sure that the correct compiler is being used.
+</p><p>
+The 10.1 distribution assumes that the compiler version is 2.95; the
+10.2 distribution assumes that the compiler version is 3.1; the 10.2-gcc3.3
+and 10.3 distributions assume tha the compiler version is 3.3.   The compiler
+for the 10.4-transitional distribution is complicated: g++-3.3 is being
+used along with gcc-4.0.  This will change again in the 10.4 distribution,
+which will use both gcc-4.0 and g++-4.0.
+</p>
+<p>A new method was introduced for ensuring the correct g++ compiler starting
+with the 10.4-transitional distribution.  During compilation, a directory
+<tt style="white-space: nowrap;">/sw/var/lib/fink/path-prefix-g++-XXX</tt> 
(where XXX is the version
+number) is added to the PATH during compilation.  This directory contains
+shell scripts which ensure that the correct version of g++ is used.
+</p>
+
+
+<h3><a name="compilers.abi">5.2 The g++ ABI</a></h3>
+<p>
+The g++ ABI has changed 3 times during the lifetime of OS X: the ABI is
+different for versions 2.95, 3.1, 3.3 and 4.0.  These different ABIs
+are not compatible with each other, and any libraries which use C++
+code and are linked to by your project must be compiled with the same
+ABI as the one currently being used.
+</p>
+<p>
+Fink keeps track of the g++ ABI by means of the GCC field.  This field
+should be defined for any package which invokes the g++ or c++ compilers.
+(It should NOT be defined for packages which don't invoke those compilers.)
+Whenever an ABI upgrade occurs, all the dependencies of the packages must
+be checked for their own GCC field.  When all of the dependencies have
+been upgraded, the package itself may be upgraded.  The versions of the
+dependencies must be changed to guarantee that users will have the correct,
+updated, dependencies in place before they attempt to build the new version
+of your package.
+</p>
+<p>
+A small group of packages which depend only on each other can be left 
+at the previous version of the ABI when the distribution changes, if they
+are not ready to be upgrade.  When the upgrade is eventually done, they
+must be all upgraded together with the correct versioning on all the
+packages.  For this reason, it is best to upgrade most packages at
+the time the distribution changes.
+</p>
+<p>
+Fink uses the GCC field to ensure that users have the correct version of
+the g++ compiler installed.  If the GCC field is defined by the package,
+fink checks to see if the <tt style="white-space: nowrap;">gcc_select</tt> 
command has been
+set to the correct current value.  (This correct value is 3.3 for the 10.2
+and 10.3 versions of OS X, and 4.0 for the 10.4 version of OS X.  The 
+<tt style="white-space: nowrap;">gcc_select</tt> command was not available 
prior to OS X 10.2.)
+</p>
+
+
+
+<h2><a name="reference">6 リファレンスマニュアル</a></h2>
                
                
-               <h3><a name="reference.build">5.1 ビルドプロセス</a></h3>
+               <h3><a name="reference.build">6.1 ビルドプロセス</a></h3>
                        
                        <p>
                                
各フィールドの意味を理解するには, Fink 
のビルドプロセスに関する知識がある程度必要です.
@@ -1094,7 +1169,7 @@
                                
代わりに,パッケージ記述からの様々な情報を使って dpkg 
用の <tt style="white-space: nowrap;">control</tt> 
ファイルが作成できます.
                        </p>
                
-               <h3><a name="reference.fields">5.2 フィールド</a></h3>
+               <h3><a name="reference.fields">6.2 フィールド</a></h3>
                        
                        <p>
                                フィールドを分類して解説します.
@@ -2133,7 +2208,7 @@
                                                </p>
                                        </td></tr></table>
                
-               <h3><a name="reference.splitoffs">5.3 スプリットオフ 
(SplitOff)</a></h3>
+               <h3><a name="reference.splitoffs">6.3 スプリットオフ 
(SplitOff)</a></h3>
                        
                        <p>
                                Fink 0.9.9 で導入.
@@ -2210,7 +2285,7 @@
                                よって <tt style="white-space: 
nowrap;">DocFiles</tt> を使えば同一のドキュメントを各 splitoff 
パッケージ向けに複数回インストールできます.
                        </p>
                
-               <h3><a name="reference.scripts">5.4 スクリプト</a></h3>
+               <h3><a name="reference.scripts">6.4 スクリプト</a></h3>
                        
                        <p>
                                フィールド PatchScript, CompileScript, 
InstallScript 
には,実行させたいシェルコマンドを記述できる.
@@ -2232,7 +2307,7 @@
                                その場合,フィールド *Script 
の値全体が一時ファイルにダンプされ,実行されます.
                        </p>
                
-               <h3><a name="reference.patches">5.5 パッチ</a></h3>
+               <h3><a name="reference.patches">6.5 パッチ</a></h3>
                        
                        <p>
                                パッケージを Darwin 
でコンパイルするために (または Fink 
と協調して動作するようにするために) 
パッチが必要な場合,
@@ -2269,7 +2344,7 @@
                                パッチが 30KB 
より大きければ,独立にダウンロードする方法を考慮した方がよいでしょう.
                        </p>
                
-               <h3><a name="reference.profile.d">5.6 Profile.d 
スクリプト</a></h3>
+               <h3><a name="reference.profile.d">6.6 Profile.d 
スクリプト</a></h3>
                        
                        <p>
                                
パッケージが実行時に何らかの初期化 
(環境変数の設定など) を必要とするなら, profile.d 
スクリプトを使えばよいでしょう.
@@ -2293,4 +2368,4 @@
 provided the document and this copyright notice remain complete and
 unmodified. Any commercial reproduction and any online publication
 requires the explicit consent of the author.</p><hr>
-<p>Generated from <i>$Fink: packaging.ja.xml,v 1.28 2005/06/09 21:45:18 
babayoshihiko Exp $</i></p></body></html>
+<p>Generated from <i>$Fink: packaging.ja.xml,v 1.29 2005/06/23 20:16:36 dmrrsn 
Exp $</i></p></body></html>

Index: packaging.en.html
===================================================================
RCS file: /cvsroot/fink/scripts/installer/dmg/doc/packaging/packaging.en.html,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -d -r1.63 -r1.64
--- packaging.en.html   19 Jun 2005 23:23:31 -0000      1.63
+++ packaging.en.html   24 Jun 2005 14:58:35 -0000      1.64
@@ -32,7 +32,7 @@
 <a href="http://fink.sourceforge.net/pdb/nomaintainer.php";>package which
 currently has no maintainer.</a>
 </p>
-<h2>Contents</h2><ul><li><a href="#intro"><b>1 Introduction</b></a><ul><li><a 
href="#intro.def1">1.1 What is a Package?</a></li><li><a 
href="#intro.ident">1.2 Identifying a Package</a></li></ul></li><li><a 
href="#format"><b>2 Package Descriptions</b></a><ul><li><a 
href="#format.trees">2.1 Tree Layout</a></li><li><a href="#format.format">2.2 
File Format</a></li><li><a href="#format.percent">2.3 Percent 
Expansion</a></li></ul></li><li><a href="#policy"><b>3 Packaging 
Policy</b></a><ul><li><a href="#policy.licenses">3.1 Package 
Licenses</a></li><li><a href="#policy.openssl">3.2 The GPL and 
OpenSSL</a></li><li><a href="#policy.prefix">3.3 Base System 
Interference</a></li><li><a href="#policy.sharedlibs">3.4 Shared 
Libraries</a></li><li><a href="#policy.perlmods">3.5 Perl 
Modules</a></li><li><a href="#policy.emacs">3.6 Emacs 
Policy</a></li></ul></li><li><a href="#fslayout"><b>4 Filesystem 
Layout</b></a><ul><li><a href="#fslayout.fhs">4.1 The Filesystem Hierarchy 
Standard</a></li>
 <li><a href="#fslayout.dirs">4.2 The Directories</a></li><li><a 
href="#fslayout.avoid">4.3 Things to Avoid</a></li></ul></li><li><a 
href="#reference"><b>5 Reference</b></a><ul><li><a href="#reference.build">5.1 
The Build Process</a></li><li><a href="#reference.fields">5.2 
Fields</a></li><li><a href="#reference.splitoffs">5.3 SplitOffs</a></li><li><a 
href="#reference.scripts">5.4 Scripts</a></li><li><a 
href="#reference.patches">5.5 Patches</a></li><li><a 
href="#reference.profile.d">5.6 Profile.d scripts</a></li></ul></li></ul><h2><a 
name="intro">1 Introduction</a></h2>
+<h2>Contents</h2><ul><li><a href="#intro"><b>1 Introduction</b></a><ul><li><a 
href="#intro.def1">1.1 What is a Package?</a></li><li><a 
href="#intro.ident">1.2 Identifying a Package</a></li></ul></li><li><a 
href="#format"><b>2 Package Descriptions</b></a><ul><li><a 
href="#format.trees">2.1 Tree Layout</a></li><li><a href="#format.format">2.2 
File Format</a></li><li><a href="#format.percent">2.3 Percent 
Expansion</a></li></ul></li><li><a href="#policy"><b>3 Packaging 
Policy</b></a><ul><li><a href="#policy.licenses">3.1 Package 
Licenses</a></li><li><a href="#policy.openssl">3.2 The GPL and 
OpenSSL</a></li><li><a href="#policy.prefix">3.3 Base System 
Interference</a></li><li><a href="#policy.sharedlibs">3.4 Shared 
Libraries</a></li><li><a href="#policy.perlmods">3.5 Perl 
Modules</a></li><li><a href="#policy.emacs">3.6 Emacs 
Policy</a></li></ul></li><li><a href="#fslayout"><b>4 Filesystem 
Layout</b></a><ul><li><a href="#fslayout.fhs">4.1 The Filesystem Hierarchy 
Standard</a></li>
 <li><a href="#fslayout.dirs">4.2 The Directories</a></li><li><a 
href="#fslayout.avoid">4.3 Things to Avoid</a></li></ul></li><li><a 
href="#compilers"><b>5 Compilers</b></a><ul><li><a 
href="#compilers.versions">5.1 Compiler Versions</a></li><li><a 
href="#compilers.abi">5.2 The g++ ABI</a></li></ul></li><li><a 
href="#reference"><b>6 Reference</b></a><ul><li><a href="#reference.build">6.1 
The Build Process</a></li><li><a href="#reference.fields">6.2 
Fields</a></li><li><a href="#reference.splitoffs">6.3 SplitOffs</a></li><li><a 
href="#reference.scripts">6.4 Scripts</a></li><li><a 
href="#reference.patches">6.5 Patches</a></li><li><a 
href="#reference.profile.d">6.6 Profile.d scripts</a></li></ul></li></ul><h2><a 
name="intro">1 Introduction</a></h2>
 
 
 
@@ -1092,12 +1092,87 @@
 
 
 
-<h2><a name="reference">5 Reference</a></h2>
+<h2><a name="compilers">5 Compilers</a></h2>
 
 
 
+<h3><a name="compilers.versions">5.1 Compiler Versions</a></h3>
+<p>Fink uses the gcc family of compilers, as provided by Apple computer
+through the Apple Developer Connection.  As these compilers have 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++
+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
+a different value (for example, during a transition to a new distribution,
+your packages .info file must specify this using the versioned binaries
+provided by Apple.  Exactly how you will do this depends on the build
+system of your software, but for many packages, the <tt style="white-space: 
nowrap;">SetCC</tt>
+and <tt style="white-space: nowrap;">SetCXX</tt> fink fields can be used for 
this puporse.
+For example, you might change the g++ compiler to version 3.3 by the setting
+<tt style="white-space: nowrap;">SetCXX: g++-3.3</tt>.  Examine the output 
when building your
+package to make sure that the correct compiler is being used.
+</p><p>
+The 10.1 distribution assumes that the compiler version is 2.95; the
+10.2 distribution assumes that the compiler version is 3.1; the 10.2-gcc3.3
+and 10.3 distributions assume tha the compiler version is 3.3.   The compiler
+for the 10.4-transitional distribution is complicated: g++-3.3 is being
+used along with gcc-4.0.  This will change again in the 10.4 distribution,
+which will use both gcc-4.0 and g++-4.0.
+</p>
+<p>A new method was introduced for ensuring the correct g++ compiler starting
+with the 10.4-transitional distribution.  During compilation, a directory
+<tt style="white-space: nowrap;">/sw/var/lib/fink/path-prefix-g++-XXX</tt> 
(where XXX is the version
+number) is added to the PATH during compilation.  This directory contains
+shell scripts which ensure that the correct version of g++ is used.
+</p>
 
-<h3><a name="reference.build">5.1 The Build Process</a></h3>
+
+<h3><a name="compilers.abi">5.2 The g++ ABI</a></h3>
+<p>
+The g++ ABI has changed 3 times during the lifetime of OS X: the ABI is
+different for versions 2.95, 3.1, 3.3 and 4.0.  These different ABIs
+are not compatible with each other, and any libraries which use C++
+code and are linked to by your project must be compiled with the same
+ABI as the one currently being used.
+</p>
+<p>
+Fink keeps track of the g++ ABI by means of the GCC field.  This field
+should be defined for any package which invokes the g++ or c++ compilers.
+(It should NOT be defined for packages which don't invoke those compilers.)
+Whenever an ABI upgrade occurs, all the dependencies of the packages must
+be checked for their own GCC field.  When all of the dependencies have
+been upgraded, the package itself may be upgraded.  The versions of the
+dependencies must be changed to guarantee that users will have the correct,
+updated, dependencies in place before they attempt to build the new version
+of your package.
+</p>
+<p>
+A small group of packages which depend only on each other can be left 
+at the previous version of the ABI when the distribution changes, if they
+are not ready to be upgrade.  When the upgrade is eventually done, they
+must be all upgraded together with the correct versioning on all the
+packages.  For this reason, it is best to upgrade most packages at
+the time the distribution changes.
+</p>
+<p>
+Fink uses the GCC field to ensure that users have the correct version of
+the g++ compiler installed.  If the GCC field is defined by the package,
+fink checks to see if the <tt style="white-space: nowrap;">gcc_select</tt> 
command has been
+set to the correct current value.  (This correct value is 3.3 for the 10.2
+and 10.3 versions of OS X, and 4.0 for the 10.4 version of OS X.  The 
+<tt style="white-space: nowrap;">gcc_select</tt> command was not available 
prior to OS X 10.2.)
+</p>
+
+
+
+<h2><a name="reference">6 Reference</a></h2>
+
+
+
+
+<h3><a name="reference.build">6.1 The Build Process</a></h3>
 
 <p>To understand some of the fields, you need some knowledge of the
 build process Fink uses. It consists of five phases: unpack, patch,
@@ -1134,7 +1209,7 @@
 generate a <tt style="white-space: nowrap;">control</tt> file for dpkg.</p>
 
 
-<h3><a name="reference.fields">5.2 Fields</a></h3>
+<h3><a name="reference.fields">6.2 Fields</a></h3>
 
 <p>We have divided the list of fields into several categories.
 The list of fields is not necessarily complete. <tt style="white-space: 
nowrap;">:-)</tt></p>
@@ -2253,7 +2328,7 @@
 </td></tr></table>
 
 
-<h3><a name="reference.splitoffs">5.3 SplitOffs</a></h3>
+<h3><a name="reference.splitoffs">6.3 SplitOffs</a></h3>
 <p>Beginning with fink 0.9.9, a single .info file can be used to build
 multiple packages.  
 The install phase begins as usual, with the execution of the 
@@ -2330,7 +2405,7 @@
 
 
 
-<h3><a name="reference.scripts">5.4 Scripts</a></h3>
+<h3><a name="reference.scripts">6.4 Scripts</a></h3>
 
 <p>The PatchScript, CompileScript and InstallScript fields allow you
 to specify shell commands to be executed. The build directory
@@ -2356,7 +2431,7 @@
 </p>
 
 
-<h3><a name="reference.patches">5.5 Patches</a></h3>
+<h3><a name="reference.patches">6.5 Patches</a></h3>
 
 <p>If your package needs a patch to compile on Darwin (or to work with
 fink), name the patch with the same name as the package description,
@@ -2385,7 +2460,7 @@
 </p>
 
 
-<h3><a name="reference.profile.d">5.6 Profile.d scripts</a></h3>
+<h3><a name="reference.profile.d">6.6 Profile.d scripts</a></h3>
 
 <p>
 If your package needs some run-time initialization  (e.g. to setup environment 
variables), you can use profile.d scripts.
@@ -2405,4 +2480,4 @@
 provided the document and this copyright notice remain complete and
 unmodified. Any commercial reproduction and any online publication
 requires the explicit consent of the author.</p><hr>
-<p>Generated from <i>$Fink: packaging.en.xml,v 1.65 2005/06/19 15:24:36 dmrrsn 
Exp $</i></p></body></html>
+<p>Generated from <i>$Fink: packaging.en.xml,v 1.66 2005/06/23 20:16:35 dmrrsn 
Exp $</i></p></body></html>

Index: packaging.zh.html
===================================================================
RCS file: /cvsroot/fink/scripts/installer/dmg/doc/packaging/packaging.zh.html,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- packaging.zh.html   9 Jun 2005 21:46:31 -0000       1.23
+++ packaging.zh.html   24 Jun 2005 14:58:36 -0000      1.24
@@ -25,7 +25,7 @@
 如果你希望帮助 Fink 
项目,而你在这方面又有专长,你可以考虑选择接受一个
 <a 
href="http://fink.sourceforge.net/pdb/nomaintainer.php";>尚未有维护人员的软件包。</a>
 </p>
-<h2>Contents</h2><ul><li><a href="#intro"><b>1 介绍</b></a><ul><li><a 
href="#intro.def1">1.1 什么是软件包?</a></li><li><a 
href="#intro.ident">1.2 识别一个软件包</a></li></ul></li><li><a 
href="#format"><b>2 软件包描述文件</b></a><ul><li><a 
href="#format.trees">2.1 文件树结构</a></li><li><a 
href="#format.format">2.2 文件格式</a></li><li><a 
href="#format.percent">2.3 百分号展开</a></li></ul></li><li><a 
href="#policy"><b>3 打包相关规则</b></a><ul><li><a 
href="#policy.licenses">3.1 软件包授权协议</a></li><li><a 
href="#policy.openssl">3.2 The GPL and OpenSSL</a></li><li><a 
href="#policy.prefix">3.3 避免干扰基本系统</a></li><li><a 
href="#policy.sharedlibs">3.4 共享函数库</a></li><li><a 
href="#policy.perlmods">3.5 Perl 模块</a></li><li><a href="#policy.emacs">3.6 
Emacs 规则</a></li></ul></li><li><a href="#fslayout"><b>4 
文件系统布局</b></a><ul><li><a href="#fslayout.fhs">4.1 
文件系统层次结构标准</a><
 /li><li><a href="#fslayout.dirs">4.2 目录</a></li><li><a 
href="#fslayout.avoid">4.3 应该避免的事情</a></li></ul></li><li><a 
href="#reference"><b>5 操作手册</b></a><ul><li><a 
href="#reference.build">5.1 构建过程</a></li><li><a 
href="#reference.fields">5.2 字段</a></li><li><a 
href="#reference.splitoffs">5.3 剥离分支(SplitOffs)</a></li><li><a 
href="#reference.scripts">5.4 脚本</a></li><li><a 
href="#reference.patches">5.5 补丁</a></li><li><a 
href="#reference.profile.d">5.6 Profile.d 脚本</a></li></ul></li></ul><h2><a 
name="intro">1 介绍</a></h2>
+<h2>Contents</h2><ul><li><a href="#intro"><b>1 介绍</b></a><ul><li><a 
href="#intro.def1">1.1 什么是软件包?</a></li><li><a 
href="#intro.ident">1.2 识别一个软件包</a></li></ul></li><li><a 
href="#format"><b>2 软件包描述文件</b></a><ul><li><a 
href="#format.trees">2.1 文件树结构</a></li><li><a 
href="#format.format">2.2 文件格式</a></li><li><a 
href="#format.percent">2.3 百分号展开</a></li></ul></li><li><a 
href="#policy"><b>3 打包相关规则</b></a><ul><li><a 
href="#policy.licenses">3.1 软件包授权协议</a></li><li><a 
href="#policy.openssl">3.2 The GPL and OpenSSL</a></li><li><a 
href="#policy.prefix">3.3 避免干扰基本系统</a></li><li><a 
href="#policy.sharedlibs">3.4 共享函数库</a></li><li><a 
href="#policy.perlmods">3.5 Perl 模块</a></li><li><a href="#policy.emacs">3.6 
Emacs 规则</a></li></ul></li><li><a href="#fslayout"><b>4 
文件系统布局</b></a><ul><li><a href="#fslayout.fhs">4.1 
文件系统层次结构标准</a><
 /li><li><a href="#fslayout.dirs">4.2 目录</a></li><li><a 
href="#fslayout.avoid">4.3 应该避免的事情</a></li></ul></li><li><a 
href="#compilers"><b>5 Compilers</b></a><ul><li><a 
href="#compilers.versions">5.1 Compiler Versions</a></li><li><a 
href="#compilers.abi">5.2 The g++ ABI</a></li></ul></li><li><a 
href="#reference"><b>6 操作手册</b></a><ul><li><a 
href="#reference.build">6.1 构建过程</a></li><li><a 
href="#reference.fields">6.2 字段</a></li><li><a 
href="#reference.splitoffs">6.3 剥离分支(SplitOffs)</a></li><li><a 
href="#reference.scripts">6.4 脚本</a></li><li><a 
href="#reference.patches">6.5 补丁</a></li><li><a 
href="#reference.profile.d">6.6 Profile.d 脚本</a></li></ul></li></ul><h2><a 
name="intro">1 介绍</a></h2>
 
 
 
@@ -783,12 +783,87 @@
 
 
 
-<h2><a name="reference">5 操作手册</a></h2>
+<h2><a name="compilers">5 Compilers</a></h2>
 
 
 
+<h3><a name="compilers.versions">5.1 Compiler Versions</a></h3>
+<p>Fink uses the gcc family of compilers, as provided by Apple computer
+through the Apple Developer Connection.  As these compilers have 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++
+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
+a different value (for example, during a transition to a new distribution,
+your packages .info file must specify this using the versioned binaries
+provided by Apple.  Exactly how you will do this depends on the build
+system of your software, but for many packages, the <tt style="white-space: 
nowrap;">SetCC</tt>
+and <tt style="white-space: nowrap;">SetCXX</tt> fink fields can be used for 
this puporse.
+For example, you might change the g++ compiler to version 3.3 by the setting
+<tt style="white-space: nowrap;">SetCXX: g++-3.3</tt>.  Examine the output 
when building your
+package to make sure that the correct compiler is being used.
+</p><p>
+The 10.1 distribution assumes that the compiler version is 2.95; the
+10.2 distribution assumes that the compiler version is 3.1; the 10.2-gcc3.3
+and 10.3 distributions assume tha the compiler version is 3.3.   The compiler
+for the 10.4-transitional distribution is complicated: g++-3.3 is being
+used along with gcc-4.0.  This will change again in the 10.4 distribution,
+which will use both gcc-4.0 and g++-4.0.
+</p>
+<p>A new method was introduced for ensuring the correct g++ compiler starting
+with the 10.4-transitional distribution.  During compilation, a directory
+<tt style="white-space: nowrap;">/sw/var/lib/fink/path-prefix-g++-XXX</tt> 
(where XXX is the version
+number) is added to the PATH during compilation.  This directory contains
+shell scripts which ensure that the correct version of g++ is used.
+</p>
 
-<h3><a name="reference.build">5.1 构建过程</a></h3>
+
+<h3><a name="compilers.abi">5.2 The g++ ABI</a></h3>
+<p>
+The g++ ABI has changed 3 times during the lifetime of OS X: the ABI is
+different for versions 2.95, 3.1, 3.3 and 4.0.  These different ABIs
+are not compatible with each other, and any libraries which use C++
+code and are linked to by your project must be compiled with the same
+ABI as the one currently being used.
+</p>
+<p>
+Fink keeps track of the g++ ABI by means of the GCC field.  This field
+should be defined for any package which invokes the g++ or c++ compilers.
+(It should NOT be defined for packages which don't invoke those compilers.)
+Whenever an ABI upgrade occurs, all the dependencies of the packages must
+be checked for their own GCC field.  When all of the dependencies have
+been upgraded, the package itself may be upgraded.  The versions of the
+dependencies must be changed to guarantee that users will have the correct,
+updated, dependencies in place before they attempt to build the new version
+of your package.
+</p>
+<p>
+A small group of packages which depend only on each other can be left 
+at the previous version of the ABI when the distribution changes, if they
+are not ready to be upgrade.  When the upgrade is eventually done, they
+must be all upgraded together with the correct versioning on all the
+packages.  For this reason, it is best to upgrade most packages at
+the time the distribution changes.
+</p>
+<p>
+Fink uses the GCC field to ensure that users have the correct version of
+the g++ compiler installed.  If the GCC field is defined by the package,
+fink checks to see if the <tt style="white-space: nowrap;">gcc_select</tt> 
command has been
+set to the correct current value.  (This correct value is 3.3 for the 10.2
+and 10.3 versions of OS X, and 4.0 for the 10.4 version of OS X.  The 
+<tt style="white-space: nowrap;">gcc_select</tt> command was not available 
prior to OS X 10.2.)
+</p>
+
+
+
+<h2><a name="reference">6 操作手册</a></h2>
+
+
+
+
+<h3><a name="reference.build">6.1 构建过程</a></h3>
 
 <p>要理解一些字段的含义,你需要有对 Fink 
所采用的构建过程有些了解。它由五个阶段组成:解压,补丁,编译,安装和构建。下面的示例路径是关于安装在
 <tt style="white-space: nowrap;">/sw</tt> 的 gimp-1.2.1-1 软件包的。</p>
 <p>在<b>解压阶段</b>,<tt style="white-space: 
nowrap;">/sw/src/gimp-1.2.1-1</tt> 
这个目录会被创建,源代码压缩档会被在这里解压。多数情况下,这会创建一个名为
 gimp-1.2.1 
的目录,里面包括源代码;下面的操作步骤会在那个目录里面执行(即
 <tt style="white-space: 
nowrap;">/sw/src/gimp-1.2.1-1/gimp-1.2.1</tt>)。我们可以使用 
SourceDirectory,NoSourceDirectory 和 Source<b>N</b>ExtractDir
@@ -804,7 +879,7 @@
 
<p>在<b>构建阶段</b>,会根据临时文件夹的内容构建一个二进制安装包(.deb)文件。你不能直接影响这个步骤,但软件包描述里面的许多字段会用于生成
 dpkg 的 <tt style="white-space: nowrap;">control</tt> 文件。</p>
 
 
-<h3><a name="reference.fields">5.2 字段</a></h3>
+<h3><a name="reference.fields">6.2 字段</a></h3>
 
 
<p>我们在这里把字段分成几类。这里所描述的内容并不一定包括全部的字段。<tt
 style="white-space: nowrap;">:-)</tt></p>
 <p><b>初始化数据:</b></p>
@@ -1689,7 +1764,7 @@
 </td></tr></table>
 
 
-<h3><a name="reference.splitoffs">5.3 剥离分支(SplitOffs)</a></h3>
+<h3><a name="reference.splitoffs">6.3 剥离分支(SplitOffs)</a></h3>
 <p>从 fink 0.9.9 开始,可以用一个单独的 .info 
文件来构建多个软件包。
 安装阶段和正常的类似,执行
 <tt style="white-space: nowrap;">InstallScript</tt> 和 <tt 
style="white-space: nowrap;">DocFiles</tt> 命令。
@@ -1743,7 +1818,7 @@
 
 
 
-<h3><a name="reference.scripts">5.4 脚本</a></h3>
+<h3><a name="reference.scripts">6.4 脚本</a></h3>
 
 <p>PatchScript,CompileScript 和 InstallScript 
字段允许你指定需要执行的 shell 命令。
 构建目录(<tt style="white-space: 
nowrap;">%b</tt>)是脚本执行的当前目录。
@@ -1760,7 +1835,7 @@
 </p>
 
 
-<h3><a name="reference.patches">5.5 补丁</a></h3>
+<h3><a name="reference.patches">6.5 补丁</a></h3>
 
 <p>如果你的软件包需要补丁采可以在 Darwin 上编译(或与 Fink 
配合),
 把补丁命名为与软件包描述文件相同的名字,使用 ".patch" 
来取代 ".info" 作为扩展名,并把它放在和 .info 
文件相同的目录下面。
@@ -1781,7 +1856,7 @@
 </p>
 
 
-<h3><a name="reference.profile.d">5.6 Profile.d 脚本</a></h3>
+<h3><a name="reference.profile.d">6.6 Profile.d 脚本</a></h3>
 
 <p>
 
如果你的软件包需要一些运行时的初始化(例如,设置环境变量),你可以使用
 profile.d 脚本。
@@ -1801,4 +1876,4 @@
 provided the document and this copyright notice remain complete and
 unmodified. Any commercial reproduction and any online publication
 requires the explicit consent of the author.</p><hr>
-<p>Generated from <i>$Fink: packaging.zh.xml,v 1.19 2005/06/09 21:45:18 
babayoshihiko Exp $</i></p></body></html>
+<p>Generated from <i>$Fink: packaging.zh.xml,v 1.20 2005/06/23 20:16:37 dmrrsn 
Exp $</i></p></body></html>

Index: packaging.fr.html
===================================================================
RCS file: /cvsroot/fink/scripts/installer/dmg/doc/packaging/packaging.fr.html,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -d -r1.63 -r1.64
--- packaging.fr.html   19 Jun 2005 23:23:32 -0000      1.63
+++ packaging.fr.html   24 Jun 2005 14:58:35 -0000      1.64
@@ -14,7 +14,7 @@
 <h1 style="text-align: center;">Création de paquets Fink</h1>
 <p>Ce document explique comment créer des descriptions de paquets pour le 
gestionnaire de paquets de Fink. Il fournit aussi des règles et un fil 
conducteur pour la distribution Fink. Le format des fichiers de description et 
les règles de distribution sont en constante évolution. Il faut donc regarder 
en bas de page la ligne "Last changed..." pour détecter les changements. Les 
informations contenues dans ce document correspondent à la description du 
format et des règles utilisées dans les versions de développement 
postérieures à la version 0.9.0 du gestionnaire de paquets fink.</p>
 <p>Si vous créez des paquets pour Fink, vous avez tout intérêt à vous 
abonner à la liste de diffusion <a 
href="http://lists.sourceforge.net/lists/listinfo/fink-devel";>fink-devel</a>. 
Si vous cherchez un moyen d'aider Fink et que vous avez des compétences dans 
ce domaine, vous pouvez aussi adopter un <a 
href="http://fink.sourceforge.net/pdb/nomaintainer.php";>paquet sans 
mainteneur</a>.</p>
-<h2>Contents</h2><ul><li><a href="#intro"><b>1 Introduction</b></a><ul><li><a 
href="#intro.def1">1.1 Qu'est-ce qu'un paquet ?</a></li><li><a 
href="#intro.ident">1.2 Identification d'un paquet</a></li></ul></li><li><a 
href="#format"><b>2 Descriptions de paquets</b></a><ul><li><a 
href="#format.trees">2.1 Arborescence</a></li><li><a href="#format.format">2.2 
Format de fichier</a></li><li><a href="#format.percent">2.3 Raccourcis 
%</a></li></ul></li><li><a href="#policy"><b>3 Règles de distribution des 
paquets</b></a><ul><li><a href="#policy.licenses">3.1 Licences de 
paquets</a></li><li><a href="#policy.openssl">3.2 La licence GPL et 
OpenSSL</a></li><li><a href="#policy.prefix">3.3 Interférence avec le système 
de base</a></li><li><a href="#policy.sharedlibs">3.4 Librairies 
partagées</a></li><li><a href="#policy.perlmods">3.5 Modules 
Perl</a></li><li><a href="#policy.emacs">3.6 Règles 
Emacs</a></li></ul></li><li><a href="#fslayout"><b>4 Organisation des 
fichiers</b></a><ul><l
 i><a href="#fslayout.fhs">4.1 Hiérarchie standard des fichiers</a></li><li><a 
href="#fslayout.dirs">4.2 Répertoires</a></li><li><a 
href="#fslayout.avoid">4.3 À éviter</a></li></ul></li><li><a 
href="#reference"><b>5 Référence</b></a><ul><li><a 
href="#reference.build">5.1 Construction d'un paquet</a></li><li><a 
href="#reference.fields">5.2 Champs</a></li><li><a 
href="#reference.splitoffs">5.3 Paquets multiples</a></li><li><a 
href="#reference.scripts">5.4 Scripts</a></li><li><a 
href="#reference.patches">5.5 Rustines</a></li><li><a 
href="#reference.profile.d">5.6 Scripts profile.d</a></li></ul></li></ul><h2><a 
name="intro">1 Introduction</a></h2>
+<h2>Contents</h2><ul><li><a href="#intro"><b>1 Introduction</b></a><ul><li><a 
href="#intro.def1">1.1 Qu'est-ce qu'un paquet ?</a></li><li><a 
href="#intro.ident">1.2 Identification d'un paquet</a></li></ul></li><li><a 
href="#format"><b>2 Descriptions de paquets</b></a><ul><li><a 
href="#format.trees">2.1 Arborescence</a></li><li><a href="#format.format">2.2 
Format de fichier</a></li><li><a href="#format.percent">2.3 Raccourcis 
%</a></li></ul></li><li><a href="#policy"><b>3 Règles de distribution des 
paquets</b></a><ul><li><a href="#policy.licenses">3.1 Licences de 
paquets</a></li><li><a href="#policy.openssl">3.2 La licence GPL et 
OpenSSL</a></li><li><a href="#policy.prefix">3.3 Interférence avec le système 
de base</a></li><li><a href="#policy.sharedlibs">3.4 Librairies 
partagées</a></li><li><a href="#policy.perlmods">3.5 Modules 
Perl</a></li><li><a href="#policy.emacs">3.6 Règles 
Emacs</a></li></ul></li><li><a href="#fslayout"><b>4 Organisation des 
fichiers</b></a><ul><l
 i><a href="#fslayout.fhs">4.1 Hiérarchie standard des fichiers</a></li><li><a 
href="#fslayout.dirs">4.2 Répertoires</a></li><li><a 
href="#fslayout.avoid">4.3 À éviter</a></li></ul></li><li><a 
href="#compilers"><b>5 Compilateurs</b></a><ul><li><a 
href="#compilers.versions">5.1 Versions du compilateur</a></li><li><a 
href="#compilers.abi">5.2 L'ABI g++</a></li></ul></li><li><a 
href="#reference"><b>6 Référence</b></a><ul><li><a 
href="#reference.build">6.1 Construction d'un paquet</a></li><li><a 
href="#reference.fields">6.2 Champs</a></li><li><a 
href="#reference.splitoffs">6.3 Paquets multiples</a></li><li><a 
href="#reference.scripts">6.4 Scripts</a></li><li><a 
href="#reference.patches">6.5 Rustines</a></li><li><a 
href="#reference.profile.d">6.6 Scripts profile.d</a></li></ul></li></ul><h2><a 
name="intro">1 Introduction</a></h2>
 
 
 <h3><a name="intro.def1">1.1 Qu'est-ce qu'un paquet ?</a></h3>
@@ -30,8 +30,7 @@
 
 
 <h3><a name="format.trees">2.1 Arborescence</a></h3>
-<p>Les descriptions de paquets sont lues à partir des répertoires <tt 
style="white-space: nowrap;">finkinfo</tt>
-situés dans le répertoire <tt style="white-space: 
nowrap;">/sw/fink/dists</tt>. La valeur de la variable "Trees" dans <tt 
style="white-space: nowrap;">/sw/etc/fink.conf</tt> contrôle quels 
répertoires sont lus. Le nom des fichiers de description de paquets doit être 
identique au nom complet du paquet suivi de l'extension ".info". À partir de 
fink 0.13.0, on peut aussi n'utiliser que le nom du paquet suivi de l'extension 
".info", de manière à simplifier les mises à jour.</p>
+<p>Les descriptions de paquets sont lues à partir des répertoires <tt 
style="white-space: nowrap;">finkinfo</tt> situés dans le répertoire <tt 
style="white-space: nowrap;">/sw/fink/dists</tt>. La valeur de la variable 
"Trees" dans <tt style="white-space: nowrap;">/sw/etc/fink.conf</tt> contrôle 
quels répertoires sont lus. Le nom des fichiers de description de paquets doit 
être identique au nom complet du paquet suivi de l'extension ".info". À 
partir de fink 0.13.0, on peut aussi n'utiliser que le nom du paquet suivi de 
l'extension ".info", de manière à simplifier les mises à jour.</p>
 <p>L'arborescence des descriptions de paquets comprend plusieurs niveaux de 
répertoires. En voici la liste de la racine au bas de l'arborescence :</p>
 <ul>
 <li><tt style="white-space: nowrap;">dists</tt> est à la racine.  Le 
répertoire <tt style="white-space: nowrap;">dists</tt> est nécessaire pour 
les outils Debian.</li>
@@ -53,7 +52,7 @@
 install -m 644 COPYING %i/share/doc/%n
 &lt;&lt;</pre>
 <p>Avec ce format, l'indentation est optionnelle, mais vous pouvez l'utiliser 
pour améliorer la lisibilité.</p>
-<p>On peut imbriquer plusieurs "here-document". Cela arrive souvent dans un 
champ <tt style="white-space: nowrap;">SplitOff</tt> ou <tt style="white-space: 
nowrap;">SplitOff<b>N</b></tt>.  Ces champs contiennent d'autres champs (à 
lignes multiples), et cette syntaxe permet aux sous-champs de contenir eux 
mêmes des lignes multiples. Le même code de terminaison <tt 
style="white-space: nowrap;">&lt;&lt;</tt> est utilisé pour les sous-champs 
utilisant la syntaxe "here-document". En voici un exemple :</p>
+<p>On peut imbriquer plusieurs "here-document". Cela arrive souvent dans un 
champ <tt style="white-space: nowrap;">SplitOff</tt> ou <tt style="white-space: 
nowrap;">SplitOff<b>N</b></tt>. Ces champs contiennent d'autres champs (à 
lignes multiples), et cette syntaxe permet aux sous-champs de contenir eux 
mêmes des lignes multiples. Le même code de terminaison <tt 
style="white-space: nowrap;">&lt;&lt;</tt> est utilisé pour les sous-champs 
utilisant la syntaxe "here-document". En voici un exemple :</p>
 <pre>
 SplitOff: &lt;&lt;
   Package: %N-shlibs
@@ -362,10 +361,24 @@
 <h3><a name="fslayout.avoid">4.3 À éviter</a></h3>
 <p>Aucun autre répertoire que ceux mentionnés ci-dessus ne doit être créé 
dans <tt style="white-space: nowrap;">/sw</tt>. En particulier, les 
répertoires suivant ne doivent pas être utilisés : <tt style="white-space: 
nowrap;">/sw/man</tt>, <tt style="white-space: nowrap;">/sw/info</tt>, <tt 
style="white-space: nowrap;">/sw/doc</tt>, <tt style="white-space: 
nowrap;">/sw/libexec</tt> et <tt style="white-space: 
nowrap;">/sw/lib/locale</tt>.</p>
 
-<h2><a name="reference">5 Référence</a></h2>
+<h2><a name="compilers">5 Compilateurs</a></h2>
 
+<h3><a name="compilers.versions">5.1 Versions du compilateur</a></h3>
+<p>Fink utilise la famille des compilateurs gcc, tel qu'ils sont fournis par 
Apple Computer sur le site Apple Developer Connection. Comme ces compilateurs 
évoluent, il y a plusieurs "distributions" de fink différentes pour s'adapter 
à ces changements.</p>
+<p>Chaque distribution comporte certaines valeurs par défaut pour les 
compilateurs gcc et g++, qui correspondent à ceux qu'un utilisateur compilant 
à partir des sources est censé avoir installés. Vous pouvez donc compter sur 
le fait qu'un appel direct à "gcc" ou "g++" à partir d'un paquet utilisera 
ces valeurs par défaut. Si vous avez besoin d'utiliser une valeur différente 
(par exemple, durant la transition vers une nouvelle distribution), le fichier 
.info du paquet doit le spécifier en utilisant les versions binaires fournies 
par Apple. La façon exacte de le faire dépend du système de compilation du 
logiciel, mais pour de nombreux paquets, on peut utiliser les champs fink <tt 
style="white-space: nowrap;">SetCC</tt> et <tt style="white-space: 
nowrap;">SetCXX</tt> à cette fin. Par exemple, vous pouvez passer à la 
version 3.3 du compilateur g++ avec le champ <tt style="white-space: 
nowrap;">SetCXX: g++-3.3</tt>. Vérifiez le résultat lors de la compilation afi
 n de vous assurer que le bon compilateur est utilisé.</p>
+<p>La distribution 10.1 part du principe que la version du compilateur est la 
version 2.95 ; la distribution 10.2 que la version du compilateur est la 
version 3.1 ; les distributions 10.2-gcc3.3 et 10.3 que la version du 
compilateur est la version 3.3. Pour la distribution 10.4-transitional, c'est 
un peu plus compliqué :  g++-3.3 est utilisé avec gcc-4.0. Cela changera de 
nouveau dans la distribution 10.4 où l'on utilisera gcc-4.0 et g++-4.0.</p>
+<p>À partir de la distribution 10.4-transitional, une nouvelle méthode a 
été introduite pour assurer la sélection du bon compilateur g++. Durant la 
compilation, un répertoire <tt style="white-space: 
nowrap;">/sw/var/lib/fink/path-prefix-g++-XXX</tt> (où XXX est le numéro de 
version) est ajouté au PATH. Ce répertoire contient des scripts shell qui se 
charge de sélectionner la bonne version de g++.</p>
 
-<h3><a name="reference.build">5.1 Construction d'un paquet</a></h3>
+<h3><a name="compilers.abi">5.2 L'ABI g++</a></h3>
+<p>L'ABI g++ a changé trois fois depuis la naissance de Mac OS X : elle est 
différente pour les versions 2.95, 3.1, 3.3 et 4.0. Ces différentes ABI ne 
sont pas compatibles entre elles, et toute librairie utilisant du code C++ et 
liée à un projet doit être compilée avec la même ABI que celle en cours 
d'utilisation.</p>
+<p>Fink garde trace de l'ABI g++ à l'aide du champ GCC. Ce champ doit être 
défini par tout paquet qui invoque les compilateurs g++ ou c++. Il NE doit PAS 
être défini pour les paquets qui n'invoque pas ces compilateurs. Quand un 
changement d'ABI intervient, il faut vérifier le champ GCC de toutes les 
dépendances d'un paquet. Quand toutes les dépendances ont été mises à 
jour, le paquet lui-même peut être mis à jour. Les versions des dépendances 
doivent être modifiées pour assurer que les utilisateurs aient bien toutes 
les dépendances correctes mises à jour avant de tenter de compiler la 
nouvelle version d'un paquet.</p>
+<p>Si un petit nombre de paquets dépendent uniquement les uns des autres, on 
peut laisser la version de l'ABI précédente en place, s'ils ne sont pas 
prêts pour la mise à jour. Quand la mise à jour aura lieu, ils seront tous 
mis à jour en même temps avec une version correcte sur tous les paquets. 
C'est pourquoi il est préférable de ne mettre à jour les paquets qu'au 
moment de la distribution.</p>
+<p>Fink utilise le champ GCC pour s'assurer que les utilisateurs ont bien la 
bonne version du compilateur g++ installée sur leur système. Si le champ GCC 
est defini par le paquet, fink vérifie que la commande <tt style="white-space: 
nowrap;">gcc_select</tt> a reçu la valeur en cours. Cette valeur est 3.3 pour 
les versions 10.2 et 10.3 de Mac OS X, et 4.0 pour la version 10.4 de Mac OS X. 
La commande <tt style="white-space: nowrap;">gcc_select</tt> n'était pas 
disponible antérieurement à la version 10.2 de Mac OS X.</p>
+
+<h2><a name="reference">6 Référence</a></h2>
+
+
+<h3><a name="reference.build">6.1 Construction d'un paquet</a></h3>
 <p>Pour comprendre l'utilité de certains des champs, vous devez d'abord 
savoir comment Fink construit un paquet. La construction se déroule en cinq 
phases : décompression, application des rustines, compilation, installation et 
construction proprement dite. L'exemple ci-dessous correspond à une 
installation dans <tt style="white-space: nowrap;">/sw</tt> du paquet 
gimp-1.2.1-1.</p>
 <p>Lors de la <b>phase de décompression</b>, le répertoire <tt 
style="white-space: nowrap;">/sw/src/gimp-1.2.1-1</tt> est créé et l'archive 
tar y est décompressée (il peut y avoir plusieurs archives tar). Dans la 
plupart des cas, un répertoire gimp-1.2.1, contenant le source, sera créé ; 
toutes les étapes suivantes seront exécutées dans ce répertoire (par 
exemple <tt style="white-space: nowrap;">/sw/src/gimp-1.2.1-1/gimp-1.2.1</tt>). 
Les champs SourceDirectory, NoSourceDirectory et Source<b>N</b>ExtractDir 
permettent de contrôler quels sont les répertoires à utiliser.</p>
 <p>Lors de la <b>phase d'application des rustines</b>, le code source est 
modifié par les rustines, pour qu'il compile sous Darwin. Les actions 
dérivées des champs UpdateConfigGuess, UpdateLibtool, Patch et PatchScript 
sont exécutées dans l'ordre d'énumération de ces champs.</p>
@@ -374,7 +387,7 @@
 <p>(<b>À partir de fink 0.9.9.</b>, il est possible de générer plusieurs 
paquets à partir d'une seule description de paquet en utilisant le champ <tt 
style="white-space: nowrap;">SplitOff</tt>. À la fin de la phase 
d'installation, des répertoires d'installation distincts sont créés pour 
chaque paquet à construire et les fichiers sont placés dans le répertoire 
approprié).</p>
 <p>Lors de la <b>phase de construction</b>, un fichier binaire (.deb) est 
construit à partir du répertoire temporaire. On ne peut agir directement sur 
cette étape, néanmoins différentes informations issues de la description du 
paquet sont utilisées afin de générer un fichier de  <tt style="white-space: 
nowrap;">contrôle</tt> pour dpkg.</p>
 
-<h3><a name="reference.fields">5.2 Champs</a></h3><p>Nous avons classé les 
champs en plusieurs catégories. Cette liste n'est pas forcément exhaustive. 
<tt style="white-space: nowrap;">:-)</tt></p>
+<h3><a name="reference.fields">6.2 Champs</a></h3><p>Nous avons classé les 
champs en plusieurs catégories. Cette liste n'est pas forcément exhaustive. 
<tt style="white-space: nowrap;">:-)</tt></p>
 <p><b>Données initiales :</b></p>
 <table border="0" cellpadding="0" cellspacing="10"><tr valign="bottom"><th 
align="left">Champ</th><th align="left">Utilisation</th></tr><tr 
valign="top"><td>Package</td><td>
 <p>Nom du paquet. Peut contenir des minuscules, des nombres ou les caractères 
spéciaux suivants : '.', '+' et '-'. Pas de trait de soulignement ('_'), ni de 
majuscules. Champ obligatoire.</p>
@@ -719,7 +732,7 @@
 </td></tr><tr valign="top"><td>DescPort</td><td>
 <p>Notes spécifiques au portage du paquet sur Darwin. Les éléments du type 
: "config.guess and libtool scripts are updated, -no-cpp-precomp is necessary" 
sont placés dans ce champ. Lignes multiples autorisées.</p>
 </td></tr></table>
-<h3><a name="reference.splitoffs">5.3 Paquets multiples</a></h3>
+<h3><a name="reference.splitoffs">6.3 Paquets multiples</a></h3>
 <p>À partir de la version 0.9.9 de fink, on peut utiliser un seul fichier 
.info pour construire plusieurs paquets. La phase d'installation commence, 
comme pour tout autre type de paquet, par l'exécution des scripts <tt 
style="white-space: nowrap;">InstallScript</tt> et <tt style="white-space: 
nowrap;">DocFiles</tt>. Si un champ <tt style="white-space: 
nowrap;">SplitOff</tt> ou <tt style="white-space: 
nowrap;">SplitOff<b>N</b></tt> est présent, il y a création d'un répertoire 
d'installation supplémentaire. À l'intérieur des champs <tt 
style="white-space: nowrap;">SplitOff</tt> et <tt style="white-space: 
nowrap;">SplitOff<b>N</b></tt>, le nouveau répertoire d'installation est 
désigné par %i, tandis que le répertoire d'installation du paquet parent est 
désigné par %I.</p>
 <p>Chaque champ <tt style="white-space: nowrap;">SplitOff</tt> ou <tt 
style="white-space: nowrap;">SplitOff<b>N</b></tt> doit contenir un certain 
nombre de champs qui lui sont propres. En fait, cela ressemble à une 
description de paquet ordinaire, mais certains champs sont omis. Voici les 
champs qui peuvent y figurer (classés par catégorie) :</p>
 <ul>
@@ -745,12 +758,12 @@
 <p>Lors de la phase de construction du paquet, les scripts pre/post 
install/remove de chacun des paquets sont construits à partir des commandes 
spécifiques de la phase de construction desdits paquets.</p>
 <p>Chaque paquet à construire doit placer les fichiers de licence dans 
%i/share/doc/%n (avec %n ayant une valeur différente pour chaque paquet). 
Notez que <tt style="white-space: nowrap;">DocFiles</tt> copie les fichiers au 
lieu de les déplacer ; il est donc possible d'installer une même copie de la 
documentation dans chacun des paquets en utilisant <tt style="white-space: 
nowrap;">DocFiles</tt> plusieurs fois.</p>
 
-<h3><a name="reference.scripts">5.4 Scripts</a></h3>
+<h3><a name="reference.scripts">6.4 Scripts</a></h3>
 <p>Les champs PatchScript, CompileScript et InstallScript vous permettent 
d'indiquer des commandes shell à exécuter. Le répertoire de construction 
(<tt style="white-space: nowrap;">%b</tt>) est le répertoire en cours lors de 
l'exécution des scripts. Vous devez toujours utiliser des chemins relatifs ou 
des raccourcis pour les fichiers et répertoires de l'arborescence fink, et 
jamais des chemins absolus. Deux formats différents sont possibles pour ces 
champs.</p>
 <p>Le champ peut être constitué d'une simple liste de commandes, un peu 
comme un script shell. Néanmoins, les commandes sont exécutées ligne après 
ligne via system(). Il en résulte que l'assignation de variables ou les 
changements de répertoire n'ont d'effet que pour les commandes résidant sur 
une même ligne. À partir d'une version CVS de fink postérieure à 0.18.2, 
vous pouvez ajuster la longueur des lignes de la même manière que dans les 
scripts shell : une barre oblique inversée (<tt style="white-space: 
nowrap;">\</tt>) à la fin de la ligne indique que la ligne suivante est la 
suite de la ligne précédente.</p>
 <p>Vous pouvez aussi insérer un script complet, en utilisant l'interpréteur 
que vous voulez. Comme avec tout autre script Unix, la première ligne doit 
commencer par <tt style="white-space: nowrap;">#!</tt> suivi du chemin complet 
de l'interpréteur et des options désirées (exemple : <tt style="white-space: 
nowrap;">#!/bin/csh</tt>, <tt style="white-space: nowrap;">#!/bin/bash 
-ev</tt>, etc...). Dans ce cas, la totalité du champ *Script est déversé 
dans un fichier temporaire, qui est alors exécuté.</p>
 
-<h3><a name="reference.patches">5.5 Rustines</a></h3>
+<h3><a name="reference.patches">6.5 Rustines</a></h3>
 <p>Si votre paquet nécessite une rustine pour compiler sous Darwin (ou pour 
fonctionner avec fink), donnez à la rustine le même nom que celui indiqué 
dans la description du paquet, en utilisant l'extension ".patch" au lieu de 
".info", et placez-la dans le même répertoire que le fichier .info. Si vous 
utilisez le nom complet du paquet dans le nom du fichier, indiquez-le dans le 
champ d'une des façons suivantes (elles sont équivalentes) :</p>
 <pre>Patch: %f.patch</pre>
 <pre>PatchScript: patch -p1 &lt;%a/%f.patch</pre>
@@ -762,7 +775,7 @@
 <p>Si vous utilisez emacs pour modifier les fichiers, vous devez ajouter <tt 
style="white-space: nowrap;">-x'*~'</tt> à la commande diff ci-dessus, pour 
exclure les fichiers de sauvegarde générés automatiquement.</p>
 <p>Il faut aussi noter que les très grosses rustines ne doivent pas être 
mises dans cvs. Elles doivent être placées sur un serveur web/ftp et 
référencées en utilisant le champ <tt style="white-space: 
nowrap;">SourceN:</tt>. Si vous n'avez pas de site web, les administrateurs du 
projet fink peuvent mettre le fichier à disposition à partir du site web de 
fink. Si votre rustine fait plus de 30Kb, vous devez la traiter comme un 
téléchargement distinct.</p>
 
-<h3><a name="reference.profile.d">5.6 Scripts profile.d</a></h3>
+<h3><a name="reference.profile.d">6.6 Scripts profile.d</a></h3>
 <p>Si votre paquet nécessite une initialisation à l'exécution (par exemple, 
pour définir des variables d'environnement), vous pouvez utiliser des scripts 
profile.d. Ces scripts sont sourcés par les scripts <tt style="white-space: 
nowrap;">/sw/bin/init.[c]sh</tt>. Normalement, tout utilisateur de fink charge 
ces scripts dans ses fichiers de démarrage de shell (<tt style="white-space: 
nowrap;">.cshrc</tt> et équivalents). Votre paquet doit fournir deux variantes 
de scripts : l'une pour les shells compatibles avec sh (sh, zsh, bash, ksh, 
...), l'autre pour les shells compatibles avec csh (csh, tcsh). Elles doivent 
être installées sous la forme <tt style="white-space: 
nowrap;">/sw/etc/profile.d/%n.[c]sh</tt> (où %n représente le nom du paquet). 
Il faut aussi positionner leurs bits de lecture et d'exécution (c'est-à-dire 
les installer avec -m 755), autrement elles ne seront pas chargées 
correctement.</p>
 <p>Si vous n'avez besoin que d'initialiser certaines variables d'environnement 
(par exemple, définir QTDIR comme '/sw'), vous pouvez utiliser le champ 
RuntimeVars, qui a été conçu exactement pour ce faire.</p>
 
@@ -772,4 +785,4 @@
 provided the document and this copyright notice remain complete and
 unmodified. Any commercial reproduction and any online publication
 requires the explicit consent of the author.</p><hr>
-<p>Generated from <i>$Fink: packaging.fr.xml,v 1.57 2005/06/19 23:14:55 michga 
Exp $</i></p></body></html>
+<p>Generated from <i>$Fink: packaging.fr.xml,v 1.59 2005/06/24 14:45:30 michga 
Exp $</i></p></body></html>



-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
Fink-commits mailing list
Fink-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fink-commits

Reply via email to