Re: binary NMUs and version numbers
Scott James Remnant <scott@netsplit.com> writes:
> On Thu, 2004-11-25 at 17:52 +0100, Goswin von Brederlow wrote:
>
>> 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.
>>
> I'd actually go out on a limb and suggest that if we introduce a "less
> than everything but null" operator such as ^, and policy it for
> Binary-Only NMUs, that:
>
> 1) Everything after the operator, including the operator itself be
> stripped and placed as the version in the Source header.
>
> e.g. foo_1.2-1^1 would have Source: foo (1.2-1)
I think that would be perfect. The changes file would be correct
without the need to touch the debian/control file.
> 2) Everything after the operator, including the operator itself be
> stripped during version comparisons.
>
> e.g. 1.2-1^1 == 1.2-1
But 1.2-1 != 1.2-1^1?
What I mean is that a "Depends: foo (= 1.2-1)" should match 1.2-1^1
but a "Depends: foo (= 1.2-1^1)" should not match 1.2-1.
I fear this would create some complex behaviour for version
comparisons.
Is 1.2-1^1 <= 1.2-1? [Depends: foo (<= 1.2-1)]
>> And with the introduction of ~ the (<< 1.2-4) matches 1.2-4~pre1,
>> which usualy isn't the intention of the above.
>>
> Less-than dependencies tend to be a bit silly anyway due to #170825 and
> friends. They look good on paper but don't actually tend to work in the
> situations the user intended them.
Does "Conflicts: foo (>= 1.2-4)" work any better?
> I can't infer from your mail any logic for #, it sorts greater than any
> character currently permitted which is fair enough ... was this a typo?
>
> Depends: foobar (>= 1.2-3), foobar (>= 1.2-3#)
>
> Did you really mean:
>
> Depends: foobar (>= 1.2-3), foobar (<= 1.2-3#)
Yes.
> If so, you can just do:
>
> Depends: foobar (>= 1.2-3), foobar (<< 1.2-4~)
This would require the debian/rules file to predict/calculate the next
version number but I guess it is good enough.
Your idea (2) above would eliminate a lot of cases where a "Depends:
foobar (>= 1.2-3), foobar (<< 1.2-4~)" would now be better instead of
(= 1.2-3).
> to solve the same problem.
>
> Scott
> --
> Have you ever, ever felt like this?
> Had strange things happen? Are you going round the twist?
Reply to: