Package: aptitude
Version: 0.2.15.9-2

I'm doing a update from what is now oldstable to stable, using Aptitude's
interactive mode. There are a number of cases where Aptitude's dependancy
resolution likes to select packages that are unneeded. Sometimes these
selections even cause packages that were not otherwise broken to be put
in a broken state!

1>      It wants to select libwww0. This appears to be from tetex-bin
which depends on libwww0 | libwww-ssl0, however; as libwww-ssl0 is
already selected tetex-bin is non-broken, and as libwww0 and libwww-ssl0
conflict, this moves both of them to a broken state! A further note, an
older version of libwww-ssl0 is already present.

2>      Aptitude wants to install xlibmesa-dev, despite the selection of
libglu1-mesa-dev. libgle-dev_3.0.7-2 is installed, and inventor-dev is
selected, but both of those are satisfied by libglu1-mesa-dev. This could
be due to an older version being installed, but that is slated for
removal, and the installation of both would break both.

3>      Aptitude also really wants exim4/exim4-base/exim4-config. Likely
this comes through one of a zillion things that recommend or depend on
exim4 | mail-transport-agent. Thing is a *lot* of packages provide
mail-transport-agent (and notably nearly all of those have a far superior
security track record). Due to the installation of other packages which
provide mail-transport-agent, selecting those packages merely puts them
in a broken state!

4>      Aptitude's decision to select flex-old due to the recommendation
of bison++. Yet, due to the installation of flex, this selection causes
both to be broken.


This looks like the dependancy resolution code doesn't look far enough
before deciding that a dependancy isn't fulfilled. Notably for #1 I'd
have to guess it is simply finding that the first item in that OR isn't
fulfilled and therefore selecting that without exploring and finding
that the second IS fulfilled.

This seems to suggest that mark-sweep should be used for identifying
broken packages, rather than a graph traversal. This would also take care
of the problem of circular dependancies.


A simple solution would be the one suggested for #149049. I'd tend to
refer to it as Forbidding the installation of a package, but the idea is
the same. As a matter of fact I also agree with the use of '=' for this
purpose and in fact I'd tend to use the "Hold" flag as this also is the
same idea (being held at version zero/"not-installed"). Same issue occurs
with dselect actually. I simply want to tell it DO NOT SELECT THE BLOODY
PACKAGE! I'LL TAKE CARE OF ANY BREAKAGE LATER, AT MY OWN CONVENIENCE!

Sorry about that, because I'm having to take care of this over a number
of sessions it gets annoying after a couple times.


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         [EMAIL PROTECTED] PGP 8881EF59         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
    \___\_|_/82 04 A1 3C C7 B1 37 2A*E3 6E 84 DA 97 4C 40 E6\_|_/___/




-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to