[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: binary NMUs and version numbers



Andreas Barth <aba@not.so.argh.org> writes:

> * GOTO Masanori (gotom@debian.or.jp) [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).
>
>
> Cheers,
> Andi

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)

Native package:
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
missing).

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#)

MfG
        Goswin



Reply to: