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 <<</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;"><<</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;"><<</tt> est utilisé pour les sous-champs utilisant la syntaxe "here-document". En voici un exemple :</p> <pre> SplitOff: << 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 <%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