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

Re: Improving in-place upgrades of Ada packages from Lenny to Squeeze



2010/5/31 Ludovic Brenta <ludovic@ludovic-brenta.org>:
> David Kalnischkies wrote:
>> 2010/5/30 Ludovic Brenta <ludovic@ludovic-brenta.org>:
>>> The consequence is that, despite the fact that these packages are
> broken
>>> (without the need for a Breaks: in their successor packages, BTW),
>>> aptitude prefers to leave them installed rather than remove them; this
>>> in turn blocks upgrades.
>>
>> If aptitude hasn't changed its complete logic recently it will behave as
>> apt and will never allow a user to move from a consistent into an
>> inconsistent state, so either your words are misleading, i don't
>> understand you or both.
>
> I explained in my original post; please re-read it and then you will
> understand.  Hint: removal of gnat-4.3.

The only thing i can see from this "hint" is that dependencies are
missing. Fine, i guess i have talked about nothing else so far.
Whatever causes the removal of gnat-4.3 can e.g. also "Breaks"
all the packages who missed proper dependencies before.


>>> Package: A-doc
>>> Depends: A (=2)
>>
>> I hope not as it would be broken for all binary non-maintainer uploads
> of
>> A…
>
> You are correct; I really meant:
>
> Package: A-doc
> Depends: A (=${binary:Version})

If A gets a binNMU 2+b1 this depends will be broken, as A-doc
will not be rebuilt in a binNMU - that was all i meant.
(Assuming that A-doc is a arch:all package and A arch:any)


> package.  Of course this is a minority of -doc packages.  But my point
> was to disprove your theory that a -doc packages needs to Conflict and
> Replaces with a non-doc packages.  It doesn't.  Now let's drop that
> part of the discussion.

I talked about "Replaces", not about "Conflict". The Replaces is enough
to suggest an upgrade of the replaced package if possible, but okay,
lets drop it as it is relatively unrelated.


>> Thats why i response here, i
>> just want to help you understand what a package manager will do with
>> your dependencies and that is independent from the content of the
> package.
>>
>> In the end you will need to write dependencies even a crappy piece of
>> code can understand and at least for me it would be an indicator if
>> even humanoid dependency solvers can't understand them…
>>
>> (Also, while a policy is free to declare that white is the new black
>> it is a good idea to follow established rules and just say black.)
>
> If you refuse to read the document, how can you judge what it says?

If it requires changes to all package managers to handle upgrades
in a nice way for this subcategory of packages as it was suggested here
i guess i can say that. I btw didn't say that i mean your/ada policy -
i said "a policy", so if ada policy doesn't change the sense of
dependencies (white to black) i can apply common rules (black)
and everything is fine. It just seems that i can't.

> I think I have narrowed down the crux of the problem to this simple
> question that a dpkg expert like yourself ought to be able to explain
> to me:

dpkg is not my cup of tee, APT is. Anyway:

> What is the difference between Conflicts: and Replaces:?

All dependencies relations are defined in the policy [0],
for Replaces see e.g. [1].
In short: A Replaces only indicates that a file in package B
will be overridden - nothing more (and nothing less).

Just because a package overtakes a >file< doesn't automatically
mean i should install it. (see apt vs manpages-pl).
It absolutely doesn't have the sense of indicating package B
replaces package A completely. This is identical to a package
rename and can be handled as such.

Best regards,

David Kalnischkies

[0] http://www.debian.org/doc/debian-policy/ch-relationships.html
[1] http://www.debian.org/doc/debian-policy/ch-relationships.html#s-replaces


Reply to: