[Aptitude-devel] Bug#322990: aptitude: add a format string escape to display how much space would be freed if this package was purged

Manuel A. Fernandez Montecelo manuel.montezelo at gmail.com
Tue Nov 24 00:48:21 UTC 2015


Control: tags -1 + wontfix


Hi Miernik,

2005-08-13 22:13 Miernik:
>Package: aptitude
>Version: 0.2.15.9-6
>Severity: wishlist
>
>There should be something like
>%Z     Size Change
>but displaying how much space would be freed/used _with_dependencies_ if
>this package was purged/installed. I mean something to be displayed in
>the package list besides each package name, so one could see how much
>space would be freed/used without actually selecting the package for
>installation/removal. Currently this information can be seen for a
>cpackage by selecting it for installation/purge and looking in the upper
>right corner where it says so.
>
>There should also be an option to sort the package list by this value.

I don't think that it's a good idea to implement this, because knowing
the size change of a single package is simple, but knowing the change of
a hierarchy is not, given the wealth of options of apt and aptitude and
the complexity of dependencies, and even if it is, it would probably be
terribly inefficient.


Starting with the last... Currently, with a single distribution (stable,
testing or unstable) and multi-arch disabled, there are ~40k packages.
A field to calculate the current change of size means that needs to
compute the same ~40k elements (not only computing time, but also extra
memory and disk access needed).  But since packages typically pull many
dependencies, it would have to work hard through the hiearchy to
calculate which of the dependencies would not be needed, and then add
the change in size to the total.

This is fine to do with a limited set of packages once one selects
actions to perform (as it is done now), but doing it all of the time in
the view, for every single line to be displayed, would probably have
significant performance implications.


The second issue is that calculating this is not simply having to "visit
more packages" -- the dependencies are not always straightforward and
solving which dependencies would be needed after the action is difficult
-- are Recommends and Suggests to be kept or not?  Is the recommended
package of this dependency also recommended and suggested by other
packages, so therefore to keep even if the current package evaluated is
removed?  There are many corner cases, so it's very easy to get things
wrong or to need a lot of code to calculate this, or to invoke the
resolver to decide what to do, as it would be done "for real" (or
otherwise get complaints that the estimated change in size is buggy and
doesn't correspond with what happens after the action is taken for
real).

The calculation done at the time of the selected actions is on a fixed
set of packages, sometimes after invoking the resolver (which takes its
toll).  Calculating the total change in size is the addition of change
in size of the individual packages according to the current solution.
But doing it for every package in the view means to have to invoke the
resolver to calculate which packages would be changed every single time,
or at least in many cases, due to the complex decision of "what would be
needed after this package is removed/purged/upgraded/installed".


So for all this reasons, and because I don't see anybody implementing it
any time soon, sorry but I am marking as +wontfix.

But this is probably a candiate for closure as well, because after more
than a decade without "seconds" or attempts to implement it, I simply
don't think that it's very useful to keep around.


Cheers.
-- 
Manuel A. Fernandez Montecelo <manuel.montezelo at gmail.com>



More information about the Aptitude-devel mailing list