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

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: