On Tue, Aug 05, 2025 at 01:51:05AM +0200, Vincent Lefevre wrote: > Package: aptitude > Version: 0.8.13-7 > Severity: wishlist > > The output of "aptitude why" is sometimes confusing and useless. > For instance: > > cventin% aptitude why ncal > i quilt Depends bsdextrautils | bsdmainutils > p bsdmainutils Depends ncal > > while as output, bsdmainutils is not installed, so that this cannot > be the reason why ncal is installed. > > cventin% aptitude why emacs-calfw > i emacs-calfw Suggests emacs-calfw-howm > p emacs-calfw-howm Depends emacs-calfw (= 1.6+git20180118-2) > > This is a circular dependendy, so this is useless. > > The reason in both cases is that the package is manually installed, > and aptitude should output such information.
That's a bit separate from aptitude why's goal. aptitude why doesn't tell you why a package is installed, but the strongest reason why an installed package could lead to the package being installed. The second one I agree is useless, aptitude needs to reject circular reasoning chains. If you are looking for why a package is actually installed, you may find more luck with `apt why` in experimental, which gives you a reasoning trace from the solver [note it just says "X is selected for install" for manual installs, it doesn't yet include the word manual in there, I'm not sure it should and we should pivot to "installed" and "installed as a dependency" instead of "manually installed" and "automatically installed"] Note that `apt why` on the flip side does not work for packages not actually installed because well the solver had no reason to install them :D -- debian developer - deb.li/jak | jak-linux.org - free software dev ubuntu core developer i speak de, en

