Re: binary NMUs and version numbers
Andreas Barth <email@example.com> writes:
> * GOTO Masanori (firstname.lastname@example.org) [041125 15:30]:
>> I think this suffix epoch works as the current (prefix) epoch, is it
>> correct? (Thus, we shouldn't recognize "1.2-3^1.1" and "1.2-3^1a").
> Technically: Yes. But I would like to keep usage as lightweight as
> possible (and, not allow the suffix epoch for source versions of course,
> but _only_ for binary ones).
I think he ment that the suffix epoch should be a small integer
greater than 0, i.e. 1.2-3^1, and a missing suffix epoch counts as ^0.
Dpkg probably wouldn't complain about 1.2-3^1foobar.2 but you both
seem to agree that that shouldn't be allowed.
I like the idea and I would suggest adding even more while we are at it:
(# like ^ is any arbitrary new character, versions below are in order)
1.2 maintainer upload
1.2^1 recompile binary-only upload
1.2-0.0# dummy version for Depends/Build-Depends only
1.2-0.1 source NMU for native package
1.2# dummy version for Depends/Build-Depends only
1.2.1 maintainer upload
1.3~pre1 prerelease, not yet 1.3
Non native package:
1.2-3 maintainer upload
1.2-3^1 recompile binary-only upload
1.2-3.0# dummy version for Depends/Build-Depends only
1.2-3.1 source NMU
1.2-3# dummy version for Depends/Build-Depends only
1.2-4~pre1 prerelease, not yet 1.2-5
1.2-4 maintainer upload
The ^ would be suffix epoch and smaller than any other symbol except ~
(and implies a debian revision of -0 if missing). The # would be
bigger than any other symbol (also implies a debian revision of -0 if
The reason for # is that we have many packages with a
Depends: foobar (= 1.2-3) or
Depends: foobar (>= 1.2-3), foobar (<< 1.2-4)
The problem with (= 1.2-3) is that a recompile binary-only NMU won't
fullfill this anymore and one might have to also upload other packages
unrelated to the bug to get the depends working.
And with the introduction of ~ the (<< 1.2-4) matches 1.2-4~pre1,
which usualy isn't the intention of the above.
If one wants to depend on the same major version of a package:
Depends: foobar (>= 1.2-3), foobar (>= 1.2-3#)
If one wants to depend on the same source of a package (alowing for
recompile NMUs but not source NMUs):
Depends: foobar (>= 1.2-3), foobar (>= 1.2-3.0#)