Bug#341963: aptitude: Too low penalty for not honoring user request

2005-12-06 Thread Daniel Burrows
On Sun, Dec 04, 2005 at 02:26:54PM +0100, Mikael Nilsson [EMAIL PROTECTED] 
was heard to say:
 Package: aptitude
 Version: 0.4.0-3
 Severity: normal
 
 
 I'm generally quite happy with the new problem resolver in aptitude, but in
 a few cases I find it less that useful.
 
 Case in point: I was trying to install evolution from experimental. aptitude
 is your friend here, because this is a complex transition involving dbus and
 a lot of gnome stuff.
 
 I did:
 
 aptitude -t experimental install evolution
 
 which I assumed would do the job for me. However, the first 20 or so
 alternatives that it presented as a problem resolution involved either
 removing evolution altogether, or not upgrading it. It was only after a
 looong series of no, no, no... that it found a working solution. See
 below.
 
 I find it a bit strange that it didn't find this earlier. After all, I asked
 for an upgrade of evolution, so that should be priority #1. Removing it
 should probably *never* be an option, nor keeping it. Or at least a last
 resort... The first alternative to show should be what happens if you
 *really* want to do this?. Only when that turns out not to be possibly
 should you consider the other options.
 
 Is there an apt.conf option that increases the penalty for those options?
 Maybe the default value of that penalty should be considerably increased.

  The option in question is Aptitude::ProblemResolver::PreserveManualScore;
I would be interested in hearing whether you have any trouble with that
cranked up to 1000 or so over a period of time.  (the default is 60)  I'm
not terribly interested in adding more ways to throw away solutions entirely,
as the more complicated you make those schemes, the more likely that they'll
eliminate solutions that are actually good.  For instance, saying never
remove packages that are to be upgraded fails when you're upgrading two
packages A and B, where the newer version of A conflicts with B.

  Daniel


signature.asc
Description: Digital signature


Bug#341963: aptitude: Too low penalty for not honoring user request

2005-12-06 Thread Mikael Nilsson
tis 2005-12-06 klockan 10:12 -0800 skrev Daniel Burrows:

  Is there an apt.conf option that increases the penalty for those options?
  Maybe the default value of that penalty should be considerably increased.
 
   The option in question is Aptitude::ProblemResolver::PreserveManualScore;
 I would be interested in hearing whether you have any trouble with that
 cranked up to 1000 or so over a period of time.  (the default is 60)  I'm

Actually, I found it after I sent this report. Unfortunately, it did
*nothing* the change the situation. I set it to 2, I set it to
-1, and nothing changed.

Ehhh, now looking again at
file:///usr/share/doc/aptitude/html/en/ch02s04s05.html

I see:

Option: Aptitude::Problem-Resolver::PreserveManualScore

which is what I used. Well, it seems that should be ProblemResolver
(without the '-')... Thus, I need to try that again :-) Should I file a
doc bug?


 not terribly interested in adding more ways to throw away solutions entirely,
 as the more complicated you make those schemes, the more likely that they'll
 eliminate solutions that are actually good.  For instance, saying never
 remove packages that are to be upgraded fails when you're upgrading two
 packages A and B, where the newer version of A conflicts with B.

I fully understand that. However, I see no reason why solutions that
contradict your orders should ever come *before* options that obey your
orders. I would very much like to know what the potential negative
consequences of a (very) high default value for that option might be?
I'll definitely try it out and report back. Especially now that the
complex C++ allocator transition is ongoing, I have these situations
quite often...

/Mikael

-- 
Plus ça change, plus c'est la même chose




Bug#341963: aptitude: Too low penalty for not honoring user request

2005-12-06 Thread Daniel Burrows
  The option is actually Aptitude::ProblemResolver::PreserveManualScore;
no hyphen.  This is contrary to the documentation, which I've now fixed.
The reason that this is not a very strong imperative is that it forces
the program to try *very hard* to preserve the states of manual packages.
This in turn means that it can be difficult to find any solution at all
(indeed, I was able to quickly guide the search to a solution without
setting this; with this option, it ran out of solutions almost right away).

  You could instead set Aptitude::CmdLine::Request-Strictness to a large
value.  This just tries to preserve the states of packages listed on the
command-line.  It isn't set by default because I feel that the command-line
and the visual interface should have identical behavior.  Even this wasn't
enough to make your preferred option come up first, although it was the
third solution I got.

  Daniel


signature.asc
Description: Digital signature


Bug#341963: aptitude: Too low penalty for not honoring user request

2005-12-06 Thread Mikael Nilsson
tis 2005-12-06 klockan 10:47 -0800 skrev Daniel Burrows:
   The option is actually Aptitude::ProblemResolver::PreserveManualScore;
 no hyphen.  This is contrary to the documentation, which I've now fixed.
 The reason that this is not a very strong imperative is that it forces
 the program to try *very hard* to preserve the states of manual packages.
 This in turn means that it can be difficult to find any solution at all
 (indeed, I was able to quickly guide the search to a solution without
 setting this; with this option, it ran out of solutions almost right away).

That's certainly a negative side effect... I wasn't expecting that - I
was expecting more or less a reordering of solutions. Oh well, I guess
it can be hard to predict such algorithms.

Anyway, I do think that stability (= actually finding reasonable
solutions, even though the desired one is not always the first found) is
to prefer over 100% predictability (which is what I wanted :-).


 
   You could instead set Aptitude::CmdLine::Request-Strictness to a large
 value.  This just tries to preserve the states of packages listed on the
 command-line.  It isn't set by default because I feel that the command-line
 and the visual interface should have identical behavior.  Even this wasn't
 enough to make your preferred option come up first, although it was the
 third solution I got.

Seems like something for me to try then. 

Thanks for the analysis!

/Mikael
 
   Daniel
-- 
Plus ça change, plus c'est la même chose




Bug#341963: aptitude: Too low penalty for not honoring user request

2005-12-06 Thread Daniel Burrows
On Tue, Dec 06, 2005 at 07:47:57PM +0100, Mikael Nilsson [EMAIL PROTECTED] 
was heard to say:
 tis 2005-12-06 klockan 10:12 -0800 skrev Daniel Burrows:
  not terribly interested in adding more ways to throw away solutions 
  entirely,
  as the more complicated you make those schemes, the more likely that they'll
  eliminate solutions that are actually good.  For instance, saying never
  remove packages that are to be upgraded fails when you're upgrading two
  packages A and B, where the newer version of A conflicts with B.
 
 I fully understand that. However, I see no reason why solutions that
 contradict your orders should ever come *before* options that obey your
 orders. I would very much like to know what the potential negative
 consequences of a (very) high default value for that option might be?
 I'll definitely try it out and report back. Especially now that the
 complex C++ allocator transition is ongoing, I have these situations
 quite often...

  The main reason this isn't implemented is that I haven't had the time to
analyze it and figure out a good solution.  It might be as simple as tweaking
the score of each non-automatic non-kept package, but I'd want to think about
that and run some tests before making the change.

On Tue, Dec 06, 2005 at 08:36:51PM +0100, Mikael Nilsson [EMAIL PROTECTED] 
was heard to say:
 tis 2005-12-06 klockan 10:47 -0800 skrev Daniel Burrows:
The option is actually Aptitude::ProblemResolver::PreserveManualScore;
  no hyphen.  This is contrary to the documentation, which I've now fixed.
  The reason that this is not a very strong imperative is that it forces
  the program to try *very hard* to preserve the states of manual packages.
  This in turn means that it can be difficult to find any solution at all
  (indeed, I was able to quickly guide the search to a solution without
  setting this; with this option, it ran out of solutions almost right away).
 
 That's certainly a negative side effect... I wasn't expecting that - I
 was expecting more or less a reordering of solutions. Oh well, I guess
 it can be hard to predict such algorithms.

  The thing is that scoring is used to decide where to search.  If every
action makes things worse, you end up looking at the whole search space
before finding a solution.

  Daniel


signature.asc
Description: Digital signature


Bug#341963: aptitude: Too low penalty for not honoring user request

2005-12-04 Thread Mikael Nilsson
Package: aptitude
Version: 0.4.0-3
Severity: normal


I'm generally quite happy with the new problem resolver in aptitude, but in
a few cases I find it less that useful.

Case in point: I was trying to install evolution from experimental. aptitude
is your friend here, because this is a complex transition involving dbus and
a lot of gnome stuff.

I did:

aptitude -t experimental install evolution

which I assumed would do the job for me. However, the first 20 or so
alternatives that it presented as a problem resolution involved either
removing evolution altogether, or not upgrading it. It was only after a
looong series of no, no, no... that it found a working solution. See
below.

I find it a bit strange that it didn't find this earlier. After all, I asked
for an upgrade of evolution, so that should be priority #1. Removing it
should probably *never* be an option, nor keeping it. Or at least a last
resort... The first alternative to show should be what happens if you
*really* want to do this?. Only when that turns out not to be possibly
should you consider the other options.

Is there an apt.conf option that increases the penalty for those options?
Maybe the default value of that penalty should be considerably increased.

/Mikael

Solution that works for me:
Remove the following packages:
dbus-1
dbus-glib-1
libebook1.2-3
libedataserverui1.2-4
libhal-storage0
libhal0
libnautilus-burn1

Install the following packages:
dbus [0.50-3 (experimental, now)]
libdbus-1-1 [0.50-3 (experimental, now)]
libdbus-glib-1-1 [0.50-3 (experimental, now)]
libgdl-1-0 [0.6.0-1 (experimental, now)]
libgdl-1-common [0.6.0-1 (experimental)]
libhal-storage1 [0.5.5.1-1 (experimental, now)]
libhal1 [0.5.5.1-1 (experimental, now)]
libnautilus-burn2 [2.12.1-2 (experimental, now)]
libwnck18 [2.12.1-1 (experimental, now)]
libxres1 [6.8.2.dfsg.1-10 (unstable)]

Upgrade the following packages:
dbus-1-utils [0.23.4-7 (unstable, now) - 0.50-3 (experimental)]
evolution-data-server [1.2.3-8 (unstable, now) - 1.4.1.1-1 (experimental)]
evolution-plugins [2.2.3-5 (unstable, now) - 2.4.1-3 (experimental)]
gconf2 [2.10.1-6 (unstable, now) - 2.12.1-4 (experimental)]
gconf2-common [2.10.1-6 (unstable, now) - 2.12.1-4 (experimental)]
gnome-media [2.10.2-1 (unstable, now) - 2.12.0-1 (experimental)]
gnome-volume-manager [1.2.1-1 (unstable, now) - 1.4.0-1 (experimental)]
gnomemeeting [1.2.2-1 (unstable, now) - 1.2.2-1experimental1
(experimental)]
hal [0.4.8-8 (unstable, now) - 0.5.5.1-1 (experimental)]
libedata-book1.2-2 [1.2.3-8 (unstable, now) - 1.4.1.1-1 (experimental)]
libedata-cal1.2-1 [1.2.3-8 (unstable, now) - 1.4.1.1-1 (experimental)]
libedataserver1.2-4 [1.2.3-8 (unstable, now) - 1.4.1.1-1 (experimental)]
libeel2-2 [2.10.1-3 (unstable, now) - 2.12.1-1 (experimental)]
libeel2-data [2.10.1-3 (unstable, now) - 2.12.1-1 (experimental)]
libeel2-dev [2.10.1-3 (unstable, now) - 2.12.1-1 (experimental)]
libgconf2-4 [2.10.1-6 (unstable, now) - 2.12.1-4 (experimental)]
libgconf2-dev [2.10.1-6 (unstable, now) - 2.12.1-4 (experimental)]
libgnomevfs2-0 [2.10.1-5 (unstable, now) - 2.12.1.1-1 (experimental)]
libgnomevfs2-common [2.10.1-5 (unstable, now) - 2.12.1.1-1 (experimental)]
libgnomevfs2-dev [2.10.1-5 (unstable, now) - 2.12.1.1-1 (experimental)]
nautilus-cd-burner [2.10.2-2 (unstable, now) - 2.12.1-2 (experimental)]
pmount [0.8-2 (unstable, now) - 0.9.6-1 (experimental)]
python2.3-gnome2-extras [2.10.2-1 (unstable, now) - 2.12.1-1
(experimental)]
sound-juicer [2.10.1-3 (unstable, now) - 2.12.2-1 (experimental)]

Score is -2197



-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (200, 'experimental')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.14-2-686
Locale: LANG=sv_SE.UTF-8, LC_CTYPE=sv_SE.UTF-8 (charmap=UTF-8)

Versions of packages aptitude depends on:
ii  apt [libapt-pkg-libc6.3-6-3.1 0.6.42.3   Advanced front-end for dpkg
ii  libc6 2.3.5-8.1  GNU C Library: Shared libraries an
ii  libgcc1   1:4.0.2-5  GCC support library
ii  libncursesw5  5.5-1  Shared libraries for terminal hand
ii  libsigc++-2.0-0c2 2.0.16-1   type-safe Signal Framework for C++
ii  libstdc++64.0.2-5The GNU Standard C++ Library v3

Versions of packages aptitude recommends:
ii  aptitude-doc-en [aptitude-doc 0.4.0-5English manual for aptitude, a ter

-- no debconf information


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