In #1003769, Andreas Metzler wrote: > 1. The upload introduces an epoch because the upstream version went from > yyyymmdd to 2.0.yyyymmdd. Given that the new version scheme seems to > have found acceptance in e.g. Fedora /I/ do not see a better way. Could > you ask about the epoch on debian-devel (as per policy > https://www.debian.org/doc/debian-policy/ch-controlfields.html#epochs-should-be-used-sparingly > ) - TIA.
As background, byacc was packaged by Dave Becket in 2005, switching to my ftp area as upstream. In doing that, the versioning of the package changed: from -- LaMont Jones <lam...@debian.org> Fri, 26 Nov 2004 18:49:09 -0700 byacc (1.9.1-1) unstable; urgency=low to -- Dave Beckett <daj...@debian.org> Sun, 14 Aug 2005 10:14:12 +0100 byacc (20050505-1) unstable; urgency=low My (upstream) byacc tarballs have been named according to the patchdate. The program itself identifies with the complete version using "-V" option, which I added a few months before the Debian package change: 2005-05-04 Thomas E. Dickey <dic...@invisible-island.net> * yacc.1: add -V option * main.c: add -V option to print the version. simplify option-parsing by moving the duplicate logic for setting flags into new function setflag(). * skeleton.c: move the actual definition of YYMAJOR and YYMINOR to defs.h (as numbers). add YYPATCH here so it can be tested by applications. * defs.h: add macros to define VERSION in terms of the (numeric) YYMAJOR, YYMINOR and YYPATCH symbols. * lalr.c, lr0.c, mkpar.c, defs.h, closure.c, warshall.c, output.c, symtab.c: reduce externs by making static the procedures that are not referenced outside the module in which they are defined. * makefile.in: the VERSION file holds the patch-date. Define YYPATCH, so this will be compiled into the skeleton. * VERSION: patch-level for byacc The policy cited above says Note that the purpose of epochs is to cope with situations where the upstream version numbering scheme changes and to allow us to leave behind serious mistakes. If you think that increasing the epoch is the right solution, you should consult debian-devel and get consensus before doing so (even in experimental). The version policy here: https://www.debian.org/doc/debian-policy/ch-controlfields.html#version says The version number of a package. The format is: [epoch:]upstream_version[-debian_revision]. epoch This is a single (generally small) unsigned integer. It may be omitted, in which case zero is assumed. Epochs can help when the upstream version numbering scheme changes, but they must be used with care. You should not change the epoch, even in experimental, without getting consensus on debian-devel first. upstream_version This is the main part of the version number. It is usually the version number of the original (“upstream”) package from which the .deb file has been made, if this is applicable. Usually this will be in the same format as that specified by the upstream author(s); however, it may need to be reformatted to fit into the package management system’s format and comparison scheme. The upstream version number (which is displayed using the "-V" option) shows the full version rather than the patchdate used for naming the tar files, e.g., byacc - 2.0 20220114 At the time Becket switched to my version of byacc, that would have printed byacc - 1.9 20050505 Since then, a) Dave Becket stopped maintaining the package (in 2014), and b) I released byacc 2.0 (September 10, 2019), to account for integrating the back-tracking feature beginning in 2014. Having Debian's package so far out of date is a nuisance, and on being reminded of this a few months ago, I decided to update the package. The Debian policy quoted above seems to assume that the Debian package is good, and that some allowance must be made for problems in upstream. However, it isn't that simple. Upstream identified the version in a conventional manner, but not in a manner which the packager noticed or found convenient for packaging. The upstream versioning scheme has not changed -- but the package version does not use upstream's version. Just changing this is also not simple. Adding the full (1.9 or 2.0 version to the Debian package runs into the problem that in Debian, "2.0.20220114" is less than "20140422" because "2" is the part that apt uses for comparison. The Debian-style workaround for this is to add an epoch, which I have done in https://mentors.debian.net/package/byacc/ -- Thomas E. Dickey <dic...@invisible-island.net> https://invisible-island.net ftp://ftp.invisible-island.net
signature.asc
Description: PGP signature