On Sun, 15 Mar 2020, Marc Espie wrote:

> On Sun, Mar 15, 2020 at 12:28:25PM +0100, Paco Esteban wrote:
> > oh, that did not occur to me ...  You mean that if port foo/bar gets
> > EPOCH = 0, then all dependent ports should change it's dependencies
> > declarations from foo/bar>=1.1 to foo/bar>=1.1v0 ??
> Yes, that's the main reason that led to introducing PKGSPEC in bsd.port.mk
> and tweaking _print-metadata, so we didn't hav to change every 
> dependent port.
> You still need to bump REVISION in dependent port when you change PKGSPEC
> though.

Thanks Marc, I tried to include that too.
All patches updated and attached again.


Paco Esteban.
Index: bsd.port.mk.5
RCS file: /home/cvs/src/share/man/man5/bsd.port.mk.5,v
retrieving revision 1.528
diff -u -p -r1.528 bsd.port.mk.5
--- bsd.port.mk.5       24 Mar 2020 14:59:52 -0000      1.528
+++ bsd.port.mk.5       25 Mar 2020 20:07:07 -0000
@@ -1650,6 +1650,10 @@ If set to
 will not open changed files in an editor.
 Epoch number of the current package.
+Used when the port version is changed but the new version is not regarded by
+.Xr packages-specs 5
+as being newer.
+Once added, it cannot be removed or go backwards.
 Defaults to empty (no need for numbering changes), then
 numbering starts at 0.
 Gets automatically incorporated into
@@ -1658,6 +1662,12 @@ as
 .Sq v${EPOCH}
 to form a full package-name conforming to
 .Xr packages-specs 7 .
+If there are dependent packages that use a version spec, this has to be
+adjusted for each one or
+changed on the affected package and
+bumped for all the dependencies.
 List of errors found while parsing the port's Makefile.
 Display the errors before making any target, and if any error starts with
Index: packages-specs.7
RCS file: /home/cvs/src/share/man/man7/packages-specs.7,v
retrieving revision 1.25
diff -u -p -r1.25 packages-specs.7
--- packages-specs.7    27 Oct 2014 22:45:30 -0000      1.25
+++ packages-specs.7    15 Mar 2020 11:25:27 -0000
@@ -144,12 +144,46 @@ then normal version, and finally
-In some rare cases, version numbering changes completely upstream.
+In some rare cases, a change to a port would cause the version number to
+compare as older than the previous version.
+This happens if an update is reverted, if upstream's numbering scheme changes
+completely, or if their usual scheme does not align with the one used by
+.Ox .
 A version style marker, of the form
 .Sq v0 ,
 .Sq v1 ...
 can be appended to the version number (after the patch level)
 to denote the new numbering scheme.
+This is added by setting
+in the port Makefile.
+Combined with
+this leaves the version ordering as follows:
+.Bl -dash
+"0.1" is older than "0.1p0"
+"0.1p0" (or
+.Sq p1 ,
+.Sq p2 ... )
+is older than "0.2"
+"0.2" is older than "0.1v0" (or any other version number without
+.Sq v )
+"0.1v0" is older than "0.1p0v0".
+Just as showed in the first point.
+"0.1p0v0" is older than "0.2v0".
+The same as the second point.
+"0.2v0" is older than "0.1v1" (or any other version with a lower
+.Sq v
Index: faq/ports/guide.html
RCS file: /home/cvs/www/faq/ports/guide.html,v
retrieving revision 1.89
diff -u -p -r1.89 guide.html
--- faq/ports/guide.html        28 Sep 2019 21:35:05 -0000      1.89
+++ faq/ports/guide.html        14 Mar 2020 14:39:36 -0000
@@ -1131,6 +1131,8 @@ changes to patches or build flags.
 If the upstream version has not changed, the package name bump is done
 by incrementing <code>REVISION</code> if already present, otherwise adding
 <code>REVISION = 0</code> towards the top of the Makefile.
+This will add <code>p${REVISION}</code> to <code>FULLPKGNAME</code> to form a 
+package-name conforming to packages-specs(7).
 Version numbers always go forward.
@@ -1138,6 +1140,8 @@ If something unexpected happens and you 
 upstream numbering changes completely so that the version number appears
 to go backwards, you must use <code>EPOCH</code> to make sure pkg_add(1) sees
 the package as a newer package.
+This will add <code>v${EPOCH}</code> to <code>FULLPKGNAME</code> to form a full
+package-name conforming to packages-specs(7).
 If the package does not build, no bump is needed: changes to restore a port
@@ -1153,6 +1157,11 @@ The package system uses a signature mech
 is fully identified by its package names, plus the dependencies against
 which it was built, plus the version numbers of all shared libraries it
+The version comparison ordering can be summarized as:
+<code>0.1 &lt; 0.1p0 &lt; 0.2 &lt; 0.1v0 &lt; 0.1p0v0 &lt; 0.2v0 &lt; 
+Check packages-specs(7) for more detailed information.
 Part of the work will happen before the update itself.

Reply via email to