Translate: (part 1 of 3) [cvs] web/xml/packaging packaging.en.xml, 1.98, 1.99
"David R. Morrison" <[email protected]> Mon, 9 Jun 2008 09:44:27 -0700
| Newsgroups | gmane.os.apple.fink.i18n |
|---|---|
| Message-ID | <[email protected]> |
--===============0733047687== Content-Type: multipart/alternative; boundary=Apple-Mail-1-646950033 --Apple-Mail-1-646950033 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Begin forwarded message: > From: Daniel Macks <[email protected]> > Date: June 2, 2008 11:45:05 AM PDT > To: [email protected] > Subject: [cvs] web/xml/packaging packaging.en.xml,1.98,1.99 > Reply-To: [email protected] > > Update of /cvsroot/fink/web/xml/packaging > In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv25353 > > Modified Files: > packaging.en.xml > Log Message: > document the private shared library game > > > Index: packaging.en.xml > =================================================================== > RCS file: /cvsroot/fink/web/xml/packaging/packaging.en.xml,v > retrieving revision 1.98 > retrieving revision 1.99 > diff -u -d -r1.98 -r1.99 > --- packaging.en.xml 1 May 2008 19:05:31 -0000 1.98 > +++ packaging.en.xml 2 Jun 2008 18:45:03 -0000 1.99 > @@ -601,7 +601,8 @@ > Fink has a new policy about shared libraries, effective in February > 2002. > This section of the documentation discusses version 4 > of the policy, which coincides with the release of Fink's 0.5.0 > distribution > -(as well as some updates from December, 2006 to handle 64bit > libraries). > +(as well as some updates from December, 2006 to handle 64bit > libraries > +and from January, 2008 to handle private shared libraries). > We begin with a quick summary, and then discuss things in more detail. > </p><p> > Any package which builds shared libraries and is either (1) being > put into > @@ -612,7 +613,7 @@ > 64bit libraries), that > the install_name of each library and > its compatibility and current version numbers are correct </li> > -<li> put the shared libraries in a separate package (except for the > +<li> put the public shared libraries in a separate package > (except for the > links from libfoo.dylib to the install_name), and include > the <code>Shlibs</code> field in that package</li> > <li> put the headers and the final links from libfoo.dylib into a > package > @@ -674,7 +675,7 @@ > are also free to build static libraries as well, if appropriate > for their packages; or they may submit packages containing only static > libraries if they wish.) > -Whenever shared libraries are being built, > +Whenever shared libraries are being built that are expected to be > used by other packages, > <em>two</em> closely related fink packages should be made, named foo > and foo-shlibs. The shared libraries go in foo-shlibs, and the header > files go in foo. These two packages > @@ -684,8 +685,10 @@ > to make more than two packages from the source, and this can be done > using <code>SplitOff2</code>, <code>SplitOff3</code>, etc.) > </p><p> > -Each software package for which shared libraries can be built must > have > -a <em>major version number</em> N. The major version number is > only supposed > +Each software package for which public shared libraries are built > must have > +a <em>major version number</em> N, which is included in the shared > +library's filename (for example, <filename>libbar.N.dylib</ > filename>). > +The major version number is only supposed > to change when a backwards-incompatible change in the library's API > has been > made. Fink uses the following naming convention: if the upstream name > of the package is bar, then the fink packages are called barN and > @@ -864,13 +867,27 @@ > future versions of fink, this warning will be expanded to cover the > case of > a .deb with header files and a static library as well.) > </p> > + > +<p> > + The goal of the Shared Library Policy is to allow assure > + compatibility between libraries supplied by one package and > + libraries or programs that use them in a different package. Some > + packages may have shared libraries that are not designed to be used > + by other packages. Common situations include a suite of programs > + that come with a back-end library of utility functions or a program > + that comes with plugins to handle various features. Because these > + libraries are "private" to the package that has them, they do not > + require being packages with separate -shlibs > + or <code>BuildDependsOnly</code> SplitOffs. > +</p> > <p><em>The Shlibs field</em> > </p><p> > In addition to putting the shared libraries in the correct package, > as of > version 4 of this policy, you must also declare all of the shared > libraries > using the <code>Shlibs</code> field. This field has one line for each > shared library, which contains the <code>-install_name</code> of the > -library, the <code>-compatibility_version</code>, versioned > +library. If the library is public, its <code>Shlibs</code> entry also > +lists the <code>-compatibility_version</code>, versioned > dependency information specifying the Fink package which provides > this library at this compatibility version, and the library > architecture. (The library architecture may either be "32", "64", or > @@ -961,7 +978,7 @@ > </p><p> > <em>Packages containing both binary files and libraries:</em> > </p><p> > -When an upstream package contains both binary files and libraries, > some > +When an upstream package contains both binary files and public > libraries, some > care must be exercised in constructing fink packages. In some cases, > the only binary files will be things like <code>foo-config</code> > which > are presumably only used at build time and never at run time. In > these > @@ -994,6 +1011,25 @@ > such time as the other package maintainers have upgraded their > packages > which depend on <code>foo</code>. > </p> > +<p> > + As of fink-0.28.0 (released in January 2008), the format of > + the <code>Shlibs</code> entry for a "private" shared library has > + changed (see earlier discussion of the difference between a public > + and a private shared library). Note that the Shared Library Policy > + has always required all shared libraries to be listed; the change > + here is only in the syntax of the <code>Shlibs</code> field. > Because > + this type of shared library is not designed to be used by external > + packages, there is no need to document its compatilibity or other > + versioning. Instead, an exclamation-mark is used. For example, > + if <filename>libquux.3.dylib</filename> is > + the <code>install_name</code> of a private shared library, it would > + be listed as follows: > +</p> > +<codeblock> > + Shlibs: << > + !%p/lib/libquux.3.dylib > + << > +</codeblock> > > </section> > > @@ -2930,9 +2966,11 @@ > <em>Introduced in fink 0.11.0.</em> > This field declares the shared libraries which are installed in the > package. There is one line for each > -shared library, which contains three or four items separated by > whitespace: > -the <code>-install_name</code> of the > -library, the <code>-compatibility_version</code>, versioned > +shared library, which contains the <code>-install_name</code> of the > +library and information about its binary compatibility. Shared > +libraries that are "public" (i.e., provided for use by other > packages) > +have, separated by whitespace after the filename, > +the <code>-compatibility_version</code>, versioned package > dependency information specifying the Fink package which provides > this library at this compatibility version, and the > library architecture. (The library architecture may either be "32", > "64", or > @@ -2947,6 +2985,11 @@ > <code>-compatibility_version</code> > of at least this number will always be found in later versions of this > Fink package. > +Shared libraries that are "private" are denoted by an exclamation > mark > +preceeding the filename, and no compatilibity or versioning > +information is given. See the <xref chapter="policy" > +section="sharedlibs">Shared Library Policy</xref> for more > +information. > </p></itemd></item> > > <item><itemt>RuntimeVars</itemt> > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Fink-commits mailing list > [email protected] > http://news.gmane.org/gmane.os.apple.fink.cvs --Apple-Mail-1-646950033 Content-Type: text/html; charset=US-ASCII Content-Transfer-Encoding: quoted-printable <html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = -webkit-line-break: after-white-space; "><br><div><br><div>Begin = forwarded message:</div><br = class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><div><div = style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 0px; "><font face=3D"Helvetica" size=3D"4" color=3D"#000000" = style=3D"font: 14.0px Helvetica; color: #000000"><b>From: = </b></font><font face=3D"Helvetica" size=3D"4" style=3D"font: 14.0px = Helvetica">Daniel Macks <<a = href=3D"mailto:[email protected]">[email protected]<= /a>></font></div><div style=3D"margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 0px; "><font face=3D"Helvetica" = size=3D"4" color=3D"#000000" style=3D"font: 14.0px Helvetica; color: = #000000"><b>Date: </b></font><font face=3D"Helvetica" size=3D"4" = style=3D"font: 14.0px Helvetica">June 2, 2008 11:45:05 AM = PDT</font></div><div style=3D"margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 0px; "><font face=3D"Helvetica" = size=3D"4" color=3D"#000000" style=3D"font: 14.0px Helvetica; color: = #000000"><b>To: </b></font><font face=3D"Helvetica" size=3D"4" = style=3D"font: 14.0px Helvetica"><a = href=3D"mailto:[email protected]">[email protected]= ceforge.net</a></font></div><div style=3D"margin-top: 0px; margin-right: = 0px; margin-bottom: 0px; margin-left: 0px; "><font face=3D"Helvetica" = size=3D"4" color=3D"#000000" style=3D"font: 14.0px Helvetica; color: = #000000"><b>Subject: </b></font><font face=3D"Helvetica" size=3D"4" = style=3D"font: 14.0px Helvetica"><b>[cvs] web/xml/packaging = packaging.en.xml,1.98,1.99</b></font></div><div style=3D"margin-top: = 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font = face=3D"Helvetica" size=3D"4" color=3D"#000000" style=3D"font: 14.0px = Helvetica; color: #000000"><b>Reply-To: </b></font><font = face=3D"Helvetica" size=3D"4" style=3D"font: 14.0px Helvetica"><a = href=3D"mailto:[email protected]">[email protected]= rge.net</a></font></div><div style=3D"margin-top: 0px; margin-right: = 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; = "><br></div> </div><div>Update of /cvsroot/fink/web/xml/packaging<br>In = directory = sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv25353<br><br>Modified = Files:<br><span class=3D"Apple-tab-span" style=3D"white-space:pre"> = </span>packaging.en.xml <br>Log Message:<br>document the private shared = library game<br><br><br>Index: = packaging.en.xml<br>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<b= r>RCS file: = /cvsroot/fink/web/xml/packaging/packaging.en.xml,v<br>retrieving = revision 1.98<br>retrieving revision 1.99<br>diff -u -d -r1.98 = -r1.99<br>--- packaging.en.xml<span class=3D"Apple-tab-span" = style=3D"white-space:pre"> </span>1 May 2008 19:05:31 -0000<span = class=3D"Apple-tab-span" style=3D"white-space:pre"> = </span>1.98<br>+++ packaging.en.xml<span class=3D"Apple-tab-span" = style=3D"white-space:pre"> </span>2 Jun 2008 18:45:03 -0000<span = class=3D"Apple-tab-span" style=3D"white-space:pre"> = </span>1.99<br>@@ -601,7 +601,8 @@<br> Fink has a new policy about = shared libraries, effective in February 2002.<br> This section of the = documentation discusses version 4<br> of the policy, which coincides = with the release of Fink's 0.5.0 distribution<br>-(as well as some = updates from December, 2006 to handle 64bit libraries).<br>+(as well as = some updates from December, 2006 to handle 64bit libraries<br>+and from = January, 2008 to handle private shared libraries).<br> We begin with a = quick summary, and then discuss things in more detail.<br> = </p><p><br> Any package which builds shared libraries and is = either (1) being put into<br>@@ -612,7 +613,7 @@<br> 64bit libraries), = that <br> the install_name of = each library and<br> its = compatibility and current version numbers are correct = </li><br>-<li> put the shared libraries in a separate = package (except for the<br>+<li> put the public shared = libraries in a separate package (except for the<br> = links from libfoo.dylib to the = install_name), and include<br> = the <code>Shlibs</code> = field in that package</li><br> <li> put the headers = and the final links from libfoo.dylib into a package<br>@@ -674,7 +675,7 = @@<br> are also free to build static libraries as well, if = appropriate<br> for their packages; or they may submit packages = containing only static<br> libraries if they wish.)<br>-Whenever shared = libraries are being built,<br>+Whenever shared libraries are being built = that are expected to be used by other packages,<br> <em>two</em> = closely related fink packages should be made, named foo <br> and = foo-shlibs. The shared libraries go in foo-shlibs, and the = header<br> files go in foo. These two packages<br>@@ -684,8 = +685,10 @@<br> to make more than two packages from the source, and this = can be done<br> using <code>SplitOff2</code>, = <code>SplitOff3</code>, etc.)<br> </p><p><br>-Each software = package for which shared libraries can be built must have<br>-a = <em>major version number</em> N. The major version number is = only supposed<br>+Each software package for which public shared = libraries are built must have<br>+a <em>major version number</em> = N, which is included in the shared<br>+library's filename (for example, = <filename>libbar.N.dylib</filename>).<br>+The major version number = is only supposed<br> to change when a backwards-incompatible change in = the library's API has been<br> made. Fink uses the following = naming convention: if the upstream name<br> of the package is bar, then = the fink packages are called barN and <br>@@ -864,13 +867,27 @@<br> = future versions of fink, this warning will be expanded to cover the case = of<br> a .deb with header files and a static library as well.)<br> = </p><br>+<br>+<p><br>+ The goal of the Shared Library Policy = is to allow assure<br>+ compatibility between libraries supplied = by one package and<br>+ libraries or programs that use them in a = different package. Some<br>+ packages may have shared libraries = that are not designed to be used<br>+ by other packages. Common = situations include a suite of programs<br>+ that come with a = back-end library of utility functions or a program<br>+ that comes = with plugins to handle various features. Because these<br>+ = libraries are "private" to the package that has them, they do = not<br>+ require being packages with separate -shlibs<br>+ = or <code>BuildDependsOnly</code> SplitOffs.<br>+</p><br> = <p><em>The Shlibs field</em><br> </p><p><br> In addition = to putting the shared libraries in the correct package, as of<br> = version 4 of this policy, you must also declare all of the shared = libraries<br> using the <code>Shlibs</code> field. This = field has one line for each<br> shared library, which contains the = <code>-install_name</code> of the<br>-library, the = <code>-compatibility_version</code>, versioned <br>+library. If = the library is public, its <code>Shlibs</code> entry = also<br>+lists the <code>-compatibility_version</code>, = versioned<br> dependency information specifying the Fink package which = provides<br> this library at this compatibility version, and the = library<br> architecture. (The library architecture may either be = "32", "64", or<br>@@ -961,7 +978,7 @@<br> </p><p><br> = <em>Packages containing both binary files and libraries:</em><br> = </p><p><br>-When an upstream package contains both binary files = and libraries, some<br>+When an upstream package contains both binary = files and public libraries, some<br> care must be exercised in = constructing fink packages. In some cases,<br> the only binary = files will be things like <code>foo-config</code> which<br> are = presumably only used at build time and never at run time. In = these<br>@@ -994,6 +1011,25 @@<br> such time as the other package = maintainers have upgraded their packages<br> which depend on = <code>foo</code>.<br> </p><br>+<p><br>+ As of = fink-0.28.0 (released in January 2008), the format of<br>+ the = <code>Shlibs</code> entry for a "private" shared library has<br>+ = changed (see earlier discussion of the difference between a = public<br>+ and a private shared library). Note that the Shared = Library Policy<br>+ has always required all shared libraries to be = listed; the change<br>+ here is only in the syntax of the = <code>Shlibs</code> field. Because<br>+ this type of shared = library is not designed to be used by external<br>+ packages, = there is no need to document its compatilibity or other<br>+ = versioning. Instead, an exclamation-mark is used. For = example,<br>+ if <filename>libquux.3.dylib</filename> = is<br>+ the <code>install_name</code> of a private shared = library, it would<br>+ be listed as = follows:<br>+</p><br>+<codeblock><br>+ Shlibs: = &lt;&lt;<br>+ !%p/lib/libquux.3.dylib<br>+ = &lt;&lt;<br>+</codeblock><br><br> = </section><br><br>@@ -2930,9 +2966,11 @@<br> <em>Introduced in = fink 0.11.0.</em><br> This field declares the shared libraries which = are installed in the<br> package. There is one line for = each<br>-shared library, which contains three or four items separated by = whitespace:<br>-the <code>-install_name</code> of the<br>-library, = the <code>-compatibility_version</code>, versioned <br>+shared = library, which contains the <code>-install_name</code> of = the<br>+library and information about its binary compatibility. = Shared<br>+libraries that are "public" (i.e., provided for use by other = packages)<br>+have, separated by whitespace after the filename,<br>+the = <code>-compatibility_version</code>, versioned package<br> = dependency information specifying the Fink package which provides<br> = this library at this compatibility version, and the<br> library = architecture. (The library architecture may either be "32", "64", = or<br>@@ -2947,6 +2985,11 @@<br> = <code>-compatibility_version</code><br> of at least this number = will always be found in later versions of this<br> Fink = package.<br>+Shared libraries that are "private" are denoted by an = exclamation mark<br>+preceeding the filename, and no compatilibity or = versioning<br>+information is given. See the <xref = chapter=3D"policy"<br>+section=3D"sharedlibs">Shared Library = Policy</xref> for more<br>+information.<br> = </p></itemd></item><br><br> = <item><itemt>RuntimeVars</itemt><br><br><br>---------------------= ----------------------------------------------------<br>This SF.net = email is sponsored by: Microsoft<br>Defy all challenges. Microsoft(R) = Visual Studio 2008.<br><a = href=3D"http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/">http://cl= k.atdmt.com/MRT/go/vse0120000070mrt/direct/01/</a><br>____________________= ___________________________<br>Fink-commits mailing = list<br>[email protected]<br>http://news.gmane.org/gmane.= os.apple.fink.cvs<br></div></blockquote></div><br></body></html>= --Apple-Mail-1-646950033-- --===============0733047687== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php --===============0733047687== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ fink-i18n mailing list [email protected] http://news.gmane.org/gmane.os.apple.fink.i18n --===============0733047687==--