Sat Jun 20 09:47:05 2020 UTC ()
Another try at improving the ABI/API section.


(wiz)
diff -r1.42 -r1.43 pkgsrc/doc/guide/files/buildlink.xml

cvs diff -r1.42 -r1.43 pkgsrc/doc/guide/files/buildlink.xml (expand / switch to unified diff)

--- pkgsrc/doc/guide/files/buildlink.xml 2020/06/18 20:30:12 1.42
+++ pkgsrc/doc/guide/files/buildlink.xml 2020/06/20 09:47:05 1.43
@@ -1,14 +1,15 @@ @@ -1,14 +1,15 @@
1<!-- $NetBSD: buildlink.xml,v 1.42 2020/06/18 20:30:12 wiz Exp $ --> 1<?xml version="1.0" encoding="utf-8"?>
 2<!-- $NetBSD: buildlink.xml,v 1.43 2020/06/20 09:47:05 wiz Exp $ -->
2 3
3<chapter id="buildlink"> 4<chapter id="buildlink">
4 <title>Buildlink methodology</title> 5 <title>Buildlink methodology</title>
5 6
6 <para>Buildlink is a framework in pkgsrc that controls what headers and libraries 7 <para>Buildlink is a framework in pkgsrc that controls what headers and libraries
7 are seen by a package's configure and build processes. This is implemented 8 are seen by a package's configure and build processes. This is implemented
8 in a two step process:</para> 9 in a two step process:</para>
9 10
10 <orderedlist> 11 <orderedlist>
11 <listitem> 12 <listitem>
12 <para>Symlink headers and libraries for dependencies into 13 <para>Symlink headers and libraries for dependencies into
13 <varname>BUILDLINK_DIR</varname>, which by default is a subdirectory 14 <varname>BUILDLINK_DIR</varname>, which by default is a subdirectory
14 of <varname>WRKDIR</varname>.</para> 15 of <varname>WRKDIR</varname>.</para>
@@ -396,37 +397,38 @@ BUILDLINK_TREE+= -tiff @@ -396,37 +397,38 @@ BUILDLINK_TREE+= -tiff
396 could be updated to that higher version.)</para> 397 could be updated to that higher version.)</para>
397 398
398 <para>On the other hand, changes to 399 <para>On the other hand, changes to
399 <varname>BUILDLINK_ABI_DEPENDS.<replaceable>pkg</replaceable></varname> 400 <varname>BUILDLINK_ABI_DEPENDS.<replaceable>pkg</replaceable></varname>
400 are more common. The variable will need to be updated every 401 are more common. The variable will need to be updated every
401 time the major version of one of its shared libraries is changed, 402 time the major version of one of its shared libraries is changed,
402 or any other change where a binary built against the previous 403 or any other change where a binary built against the previous
403 version of the package will not run against the new version any 404 version of the package will not run against the new version any
404 longer.</para> 405 longer.</para>
405 406
406 <para>In such a case, the package's 407 <para>In such a case, the package's
407 <varname>BUILDLINK_ABI_DEPENDS.<replaceable>pkg</replaceable></varname> 408 <varname>BUILDLINK_ABI_DEPENDS.<replaceable>pkg</replaceable></varname>
408 must be increased to require the new package version. Then the 409 must be increased to require the new package version. Then the
409 <varname>PKGREVISION</varname> of all packages that depend on 410 <varname>PKGREVISION</varname> of all packages
410 this package need to be increased, and if they have 411 <replaceable>foo</replaceable> that depend on this package need
411 <filename>buildlink3.mk</filename> files, their 412 to be increased, and if they have
412 <varname>BUILDLINK_ABI_DEPENDS.<replaceable>pkg</replaceable></varname> 413 <filename>buildlink3.mk</filename> files,
413 must be increased to the new version as well. This is required 414 <varname>BUILDLINK_ABI_DEPENDS.<replaceable>foo</replaceable></varname>
414 so that a package will pull in the versions of the packages that 415 in their <filename>buildlink3.mk</filename> files must be
415 use the new ABI and that the packages' 416 increased to the new version as well. This is required so that a
416 <varname>PKGREVISION</varname>s uniquely identify the packages 417 package will pull in the versions of the packages that use the
417 built against the new ABI. The <filename 418 new ABI and that the packages' <varname>PKGREVISION</varname>s
418 role="pkg">pkgtools/revbump</filename> package can help with 419 uniquely identify the packages built against the new ABI. The
419 these updates.</para> 420 <filename role="pkg">pkgtools/revbump</filename> package can
 421 help with these updates.</para>
420 422
421 <para>See <xref linkend="dependencies"/> for more information 423 <para>See <xref linkend="dependencies"/> for more information
422 about dependencies on other packages, including the 424 about dependencies on other packages, including the
423 <varname>BUILDLINK_API_DEPENDS</varname> definitions.</para> 425 <varname>BUILDLINK_API_DEPENDS</varname> definitions.</para>
424 426
425 <para>Please take careful consideration before adjusting 427 <para>Please take careful consideration before adjusting
426 <varname>BUILDLINK_API_DEPENDS.<replaceable>pkg</replaceable></varname> 428 <varname>BUILDLINK_API_DEPENDS.<replaceable>pkg</replaceable></varname>
427 or 429 or
428 <varname>BUILDLINK_ABI_DEPENDS.<replaceable>pkg</replaceable></varname> 430 <varname>BUILDLINK_ABI_DEPENDS.<replaceable>pkg</replaceable></varname>
429 in a <filename>buildlink3.mk</filename> file as we don't want to 431 in a <filename>buildlink3.mk</filename> file as we don't want to
430 cause unneeded package deletions and rebuilds. In many cases, 432 cause unneeded package deletions and rebuilds. In many cases,
431 new versions of packages work just fine with older 433 new versions of packages work just fine with older
432 dependencies.</para> 434 dependencies.</para>