Bug#508644: mass bugfiling (against 8 packages) and/or new package default-mta
On Sun, Mar 01, 2009 at 04:55:23PM +0100, Andreas Metzler wrote:
> We could have a exim4 upload implementing in sid this rather quickly
> after receiving a go.
In general I much prefer a virtual package over a real one but I think
we should wait a bit until the following issues are clarified:
On Fri, Feb 27, 2009 at 09:46:15AM +0100, Giacomo A. Catenazzi wrote:
>  policy 7.5 has only a note:
> | If you want to specify which of a set of real packages should be the
> | default to satisfy a particular dependency on a virtual package, you
> | should list the real package as an alternative before the virtual
> | one.
In my opinion it is a way better practise to first update the policy and
then adapt n packages instead of first change them in a way which is
possibly against the policy and expect the policy to be updated
RFC 2119 says:
| 3. SHOULD This word, or the adjective "RECOMMENDED", mean that there
| may exist valid reasons in particular circumstances to ignore
| a particular item, but the full implications must be understood and
| carefully weighed before choosing a different course.
The policy uses "should" in this case, do we understand the full
implications of the proposed step carefully weighed before choosing
a different course? We are probably on a good way to do this but until
now at least I do not fully understand how apt and aptitude would handle
all proposed solutions and what all possible negative side effects are.
Among the problems we try to deal with the proposed solutions is, as
Daniel wrote in <494422E7.email@example.com>, that apt (and/or
aptitude) take the alphabetically first package which provides foo and
installs that to fulfill the relation to the virtual package foo.
Knowing this leads to an possible answer to the following question:
On Fri, Feb 27, 2009 at 11:03:20AM -0800, Steve Langasek wrote:
> On Fri, Feb 27, 2009 at 10:37:19AM +0100, Adam Borowski wrote:
> > Assume that in squeeze, the default changes to exim5. With an
> > actual pseudopackage, someone having both lenny and squeeze (or
> > unstable) in apt's sources will have default-mta either from lenny
> > (->exim4) or from squeeze (->exim5).
> > With mere "provides:" (a virtual package), you'd have a version of
> > both exim4 and exim5 that provides default-mta.
> And what problem do you believe the latter will cause, in practice?
I hope I'm wrong, but I think if apt would try to solve a dependency on
the virtual package default-mta provided by exim4 and exim5 it would,
according to Daniel's explanation and my own experience, choose to
install exim4 in the described case since it is the alphabetically first
package *1. On one of my stable desktops I still have oldstable in the
sources.list because I tried to isolate a bug using some packages from
oldstable, both oldstable and stable are pinned to 500. I obviously
don't want to install a mta from oldstable. A default-mta package would
to the right thing and install the mta from stable instead of the one
from oldstable since real packages work with pinning and have a version
number which ensures that the newest version of two equal-pinned
packages with the same name is installed.
There has been an argument that a real default-mta package would be
suboptimal because this would be equally to what we have now with gcc,
which leads to new packages (gcc-X.Y or eximZ) to be installed. This is
in my opinion wrong as gcc and its dependencies are completely different
to what has been proposed for the default-mta package. If you install
a default-mta package which depends on "exim4|mta" (I hope that has been
proposed, if not it should have been) and exim4 and then you upgrade
your default-mta package which now depends on "exim5|mta", the fact that
exim4 provides mta ensures that the dependencies of the new default-mta
package are satisfied and apt/aptitude would not, unless this part is
really messed up, try to install exim5.
Using virtual packages for now and hope apt/aptitude handle virtual
packages in a better way until exim5 will be the default mta could be
one possible course, but what happens when they do not? Mixing virtual
and real packages does not sound that good.
Unless I'm wrong and the virtual packages support is a lot better than
I think, it looks like main question is whether it is better to use
a real default-mta package or wait for apt and aptitude to be improved.
*1 Or it uses the package from the first sources.list entry, I guess apt
would rather do this when the virtual package can be found in more
than one sources.list entry, but anyway, why apt might choose the
wrong entry is not really important now. Important is that we are
not sure that it would choose exim5 in this example.