Received: by mail.netbsd.org (Postfix, from userid 605) id 4801584D9F; Sat, 20 Jun 2020 09:47:57 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by mail.netbsd.org (Postfix) with ESMTP id C49B784D90 for ; Sat, 20 Jun 2020 09:47:56 +0000 (UTC) X-Virus-Scanned: amavisd-new at netbsd.org Received: from mail.netbsd.org ([IPv6:::1]) by localhost (mail.netbsd.org [IPv6:::1]) (amavisd-new, port 10025) with ESMTP id xNc600l6YPOS for ; Sat, 20 Jun 2020 09:47:55 +0000 (UTC) Received: from cvs.NetBSD.org (ivanova.NetBSD.org [IPv6:2001:470:a085:999:28c:faff:fe03:5984]) by mail.netbsd.org (Postfix) with ESMTP id C22B184D22 for ; Sat, 20 Jun 2020 09:47:55 +0000 (UTC) Received: by cvs.NetBSD.org (Postfix, from userid 500) id B943CFB28; Sat, 20 Jun 2020 09:47:55 +0000 (UTC) Content-Transfer-Encoding: 7bit Content-Type: multipart/mixed; boundary="_----------=_1592646475237890" MIME-Version: 1.0 Date: Sat, 20 Jun 2020 09:47:55 +0000 From: "Thomas Klausner" Subject: CVS commit: pkgsrc/doc To: pkgsrc-changes@NetBSD.org Reply-To: wiz@netbsd.org X-Mailer: log_accum Message-Id: <20200620094755.B943CFB28@cvs.NetBSD.org> Sender: pkgsrc-changes-owner@NetBSD.org List-Id: pkgsrc-changes.NetBSD.org Precedence: bulk List-Unsubscribe: This is a multi-part message in MIME format. --_----------=_1592646475237890 Content-Disposition: inline Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII" Module Name: pkgsrc Committed By: wiz Date: Sat Jun 20 09:47:55 UTC 2020 Modified Files: pkgsrc/doc: pkgsrc.html pkgsrc.txt Log Message: doc/pkgsrc.*: regen To generate a diff of this commit: cvs rdiff -u -r1.299 -r1.300 pkgsrc/doc/pkgsrc.html cvs rdiff -u -r1.297 -r1.298 pkgsrc/doc/pkgsrc.txt Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. --_----------=_1592646475237890 Content-Disposition: inline Content-Length: 11735 Content-Transfer-Encoding: binary Content-Type: text/x-diff; charset=utf-8 Modified files: Index: pkgsrc/doc/pkgsrc.html diff -u pkgsrc/doc/pkgsrc.html:1.299 pkgsrc/doc/pkgsrc.html:1.300 --- pkgsrc/doc/pkgsrc.html:1.299 Sat Jun 20 05:32:11 2020 +++ pkgsrc/doc/pkgsrc.html Sat Jun 20 09:47:55 2020 @@ -6219,11 +6219,11 @@ BUILDLINK_TREE+= -tiff added. Several important variables are set in the section:

  • BUILDLINK_API_DEPENDS.pkg - is the actual dependency recorded in the installed + is the dependency version recorded in the installed package; this should always be set using += to ensure that we're appending to any pre-existing list of values. This - variable should be set to the first version of the + variable should be set to the last version of the package that had an backwards-incompatible API change.

  • BUILDLINK_PKGSRCDIR.pkg @@ -6337,39 +6337,53 @@ BUILDLINK_TREE+= -tiff and BUILDLINK_ABI_DEPENDS.pkg in buildlink3.mk files

-

These two variables differ in that one describes source +

Both variables set lower bounds for a version of this package. + The two variables differ in that one describes source compatibility (API) and the other binary compatibility (ABI). The difference is that a change in the API breaks compilation of programs while changes in the ABI stop compiled programs from running.

-

Changes to the +

The + BUILDLINK_API_DEPENDS.pkg + variable in a buildlink3.mk should be + changed very rarely. (One possible scenario: If all packages + using this package need a higher version than defined in the + buildlink3.mk, BUILDLINK_API_DEPENDS.pkg - variable in a buildlink3.mk file happen - very rarely. One possible reason is that all packages depending - on this already need a newer version. In case it is bumped see - the description below.

-

The most common example of an ABI change is that the major - version of a shared library is increased. In this case, + could be updated to that higher version.)

+

On the other hand, changes to BUILDLINK_ABI_DEPENDS.pkg - should be adjusted to require at least the new package version. - Then the packages that depend on this package need their - PKGREVISIONs increased and, if they have - buildlink3.mk files, their + are more common. The variable will need to be updated every + time the major version of one of its shared libraries is changed, + or any other change where a binary built against the previous + version of the package will not run against the new version any + longer.

+

In such a case, the package's BUILDLINK_ABI_DEPENDS.pkg - adjusted, too. This is needed so pkgsrc will require the correct - package dependency and not settle for an older one when building - the source.

-

See Section 21.1.5, “Handling dependencies” for - more information about dependencies on other packages, - including the BUILDLINK_ABI_DEPENDS and - ABI_DEPENDS definitions.

+ must be increased to require the new package version. Then the + PKGREVISION of all packages + foo that depend on this package need + to be increased, and if they have + buildlink3.mk files, + BUILDLINK_ABI_DEPENDS.foo + in their buildlink3.mk files must be + increased to the new version as well. This is required so that a + package will pull in the versions of the packages that use the + new ABI and that the packages' PKGREVISIONs + uniquely identify the packages built against the new ABI. The + pkgtools/revbump package can + help with these updates.

+

See Section 21.1.5, “Handling dependencies” for more information + about dependencies on other packages, including the + BUILDLINK_API_DEPENDS definitions.

Please take careful consideration before adjusting BUILDLINK_API_DEPENDS.pkg or BUILDLINK_ABI_DEPENDS.pkg - as we don't want to cause unneeded package deletions and - rebuilds. In many cases, new versions of packages work just - fine with older dependencies.

+ in a buildlink3.mk file as we don't want to + cause unneeded package deletions and rebuilds. In many cases, + new versions of packages work just fine with older + dependencies.

Also it is not needed to set BUILDLINK_ABI_DEPENDS.pkg when it is identical to @@ -6589,6 +6603,11 @@ adding the RCS ID the space should be om

 PRINT_PLIST_AWK+=       /^libdata\/foo/ { next; }
 
+

The PRINT_PLIST_AWK transformations are + evaluated after the file list and directory list are sorted. + EARLY_PRINT_PLIST_AWK is like + PRINT_PLIST_AWK except it operates before the file + list and directory list are sorted.

Index: pkgsrc/doc/pkgsrc.txt diff -u pkgsrc/doc/pkgsrc.txt:1.297 pkgsrc/doc/pkgsrc.txt:1.298 --- pkgsrc/doc/pkgsrc.txt:1.297 Sat Jun 20 05:32:11 2020 +++ pkgsrc/doc/pkgsrc.txt Sat Jun 20 09:47:55 2020 @@ -5197,10 +5197,10 @@ buildlink3.mk files and is used to track The main section is protected from multiple inclusion and controls how the dependency on pkg is added. Several important variables are set in the section: - * BUILDLINK_API_DEPENDS.pkg is the actual dependency recorded in the + * BUILDLINK_API_DEPENDS.pkg is the dependency version recorded in the installed package; this should always be set using += to ensure that we're appending to any pre-existing list of values. This variable should be set - to the first version of the package that had an backwards-incompatible API + to the last version of the package that had an backwards-incompatible API change. * BUILDLINK_PKGSRCDIR.pkg is the location of the pkg pkgsrc directory. @@ -5272,31 +5272,40 @@ included: 18.2.2. Updating BUILDLINK_API_DEPENDS.pkg and BUILDLINK_ABI_DEPENDS.pkg in buildlink3.mk files -These two variables differ in that one describes source compatibility (API) and -the other binary compatibility (ABI). The difference is that a change in the -API breaks compilation of programs while changes in the ABI stop compiled -programs from running. - -Changes to the BUILDLINK_API_DEPENDS.pkg variable in a buildlink3.mk file -happen very rarely. One possible reason is that all packages depending on this -already need a newer version. In case it is bumped see the description below. - -The most common example of an ABI change is that the major version of a shared -library is increased. In this case, BUILDLINK_ABI_DEPENDS.pkg should be -adjusted to require at least the new package version. Then the packages that -depend on this package need their PKGREVISIONs increased and, if they have -buildlink3.mk files, their BUILDLINK_ABI_DEPENDS.pkg adjusted, too. This is -needed so pkgsrc will require the correct package dependency and not settle for -an older one when building the source. +Both variables set lower bounds for a version of this package. The two +variables differ in that one describes source compatibility (API) and the other +binary compatibility (ABI). The difference is that a change in the API breaks +compilation of programs while changes in the ABI stop compiled programs from +running. + +The BUILDLINK_API_DEPENDS.pkg variable in a buildlink3.mk should be changed +very rarely. (One possible scenario: If all packages using this package need a +higher version than defined in the buildlink3.mk, BUILDLINK_API_DEPENDS.pkg +could be updated to that higher version.) + +On the other hand, changes to BUILDLINK_ABI_DEPENDS.pkg are more common. The +variable will need to be updated every time the major version of one of its +shared libraries is changed, or any other change where a binary built against +the previous version of the package will not run against the new version any +longer. + +In such a case, the package's BUILDLINK_ABI_DEPENDS.pkg must be increased to +require the new package version. Then the PKGREVISION of all packages foo that +depend on this package need to be increased, and if they have buildlink3.mk +files, BUILDLINK_ABI_DEPENDS.foo in their buildlink3.mk files must be increased +to the new version as well. This is required so that a package will pull in the +versions of the packages that use the new ABI and that the packages' +PKGREVISIONs uniquely identify the packages built against the new ABI. The +pkgtools/revbump package can help with these updates. See Section 21.1.5, "Handling dependencies" for more information about -dependencies on other packages, including the BUILDLINK_ABI_DEPENDS and -ABI_DEPENDS definitions. +dependencies on other packages, including the BUILDLINK_API_DEPENDS +definitions. Please take careful consideration before adjusting BUILDLINK_API_DEPENDS.pkg or -BUILDLINK_ABI_DEPENDS.pkg as we don't want to cause unneeded package deletions -and rebuilds. In many cases, new versions of packages work just fine with older -dependencies. +BUILDLINK_ABI_DEPENDS.pkg in a buildlink3.mk file as we don't want to cause +unneeded package deletions and rebuilds. In many cases, new versions of +packages work just fine with older dependencies. Also it is not needed to set BUILDLINK_ABI_DEPENDS.pkg when it is identical to BUILDLINK_API_DEPENDS.pkg. @@ -5459,6 +5468,10 @@ resulting PLIST: PRINT_PLIST_AWK+= /^libdata\/foo/ { next; } +The PRINT_PLIST_AWK transformations are evaluated after the file list and +directory list are sorted. EARLY_PRINT_PLIST_AWK is like PRINT_PLIST_AWK except +it operates before the file list and directory list are sorted. + 19.4. Variable substitution in PLIST A number of variables are substituted automatically in PLISTs when a package is --_----------=_1592646475237890--