Re: Improving in-place upgrades of Ada packages from Lenny to Squeeze
2010/5/31 Ludovic Brenta <email@example.com>:
> Option 1: upload a new package "gnat" that Breaks: all -dev packages
> that were present in Lenny but are no longer present in Squeeze.
> This however does not really help apt, or the user, discover the
> new replacement packages.
> Option 2: change each new -dev package so that it Breaks: its
> predecessor. For example, let libgtkada2.14.2-dev Break:
As far as i understand can the old lib-packages not be used with
the new gnat. Right? If so i would say gnat should Break them.
Breaking them in the new-libs will not help as the new-libs still need
to be installed to get the Breaks effect - and they are broken before.
With the break you can force the update of old-libs, which
could depend in their new version on the new-libs.
I don't see another route to install the new-libs, but
1. Is this really needed? If the user needs them they are an
apt-get install (or similar) away. new-lib isn't a drop-in
replacement for old-lib (or?) and (s)he therefore
needs to learn a new way anway…
2. the old-libs will stay installed in at least of the form of a transitional
package in oldlibs as at least apt/lenny has no support for
disappear packages so this trick can't be used (not sure about dpkg,
aptitude uses apt facility in this regard, so also no support).
The other option is to follow one and only Breaks the old-libs away.
This way you get right of the old-libs packages with the expense
that new-libs are not installed automatically.
> Question 2: if I add Breaks: to a -dev package, which ones of
> Conflicts: and Replaces: should I also specify? (currently, both
> are specified; the new packages replace almost all files of the
> old packages).
You want only Breaks or Conflicts. Breaks is in general the nicer Conflict -
in some way they are the negative version of Depends and Pre-Depends:
Conflicts must be satisfied before the package is unpacked - so both
packages can't be in unpack (or higher) at the same time, while
Breaks only says that both can't be in installed at the same time.