I would also point out not only is the recursive interpretation of
--install-suggests incorrect, it is internally inconsistent.

apt-get --dry-run remove --purge -o APT::AutoRemove::Suggests-
Important=0 --auto-remove geda geda-utils geda-examples kicad kicad-doc-
en librecad oregano qelectrotech xcircuit gerbv pcb pcb-gtk pcb-common
pcb-rnd pcb2gcode visolate caneda fritzing

Does not appear to recurse.   Neither does substituting "autoremove" for
"purge" or trying to remove suggests on "clang" the same way.

--install-suggests and install-recommends should default to a recursion
level of 1 and allow you to specify a greater level of recursion in the
unlikely event you desire.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to apt in Ubuntu.
https://bugs.launchpad.net/bugs/1828220

Title:
  apt-get --install-suggests applied recursively

Status in apt package in Ubuntu:
  Opinion

Bug description:
  In a blatent violation of the principal of least surprise, --install-
  suggests installs packages that are in the suggested packages for
  packages that are not listed on the command line.  It installs
  suggested packages for other packages deep in the dependency
  hierarchy.

  Do not type this command except on an expendable (virtual) machine:
  sudo apt-get --install-suggests install -y geda geda-utils geda-examples 
kicad kicad-doc-en librecad oregano qelectrotech xcircuit gerbv pcb pcb-gtk 
pcb-common pcb-rnd pcb2gcode visolate caneda fritzing

  
  In this case, something installed clang which depends on clang-6.0.   
clang-6.0 very foolishly suggested gnustep which, since apt inappropriately 
applied --installed-suggests many layers down the dependency tree, then 
installed the entire gnustep suite of applications.   Gnustep, after several 
more layers of inappropriate suggestsions, caused roaraudio to be installed 
which caused errors on every apt-get install command.

  aptitude why roaraudio
  i   clang      Depends  clang-6.0 (>= 6.0~)
  i A clang-6.0  Suggests gnustep            
  i A gnustep    Suggests mpdcon.app         
  i A mpdcon.app Suggests mpd                
  i A mpd        Depends  libroar2           
  i A libroar2   Suggests libmuroar0         
  i A libmuroar0 Suggests roaraudio | muroard

  clang later gets installed explicitly, so I cant trace the specific
  path back to the CAD packages that were installed but clang-6.0 and
  roaraudio are first installed after the listed apt-get command above.
  Which ultimately installs 2675 packages.   Tracing forward with
  debtree --with-suggests also doesn't make it clear why clang was
  installed but debtree doesn't include dependencies of recommended
  packages.

  
  The actual recommends of these packages listed on the apt-get command were 
rather modest:
  Recommends: geda-gsymcheck, geda-gattrib
  Recommends: geda
  Recommends: xsltproc
  Recommends: gnucap
  Recommends: qelectrotech-examples (= 1:0.5-2), qelectrotech-data (= 1:0.5-2), 
qttranslations5-l10n
  Recommends: extra-xdg-menus
  Recommends: extra-xdg-menus

  The following command suggests that a single package, geda, is sufficient to 
reproduce the bug.
  apt-rdepends --follow=Depends,PreDepends,Suggests,Recommends geda | fgrep -i 
clang
  It also shows that adding Suggests blows up the dependency tree from 664 
lines of dependency info to 49965 lines corresponding to 5865 unique packages 
vs 173.

  clang traces back to i18nspector (through python), though it isn't
  clear why that was needed.  It may trace baqck to check-all-the-things
  and from ther to devscripts but for some reason that isn't included in
  the apt-rdepends output. debmake, gem2deb, git-buildpackage,
  javahelper, duck, devscripts-el, svn-buildpackage, and mozzila-
  devscipts all depend on devscripts.   Like many dependencies that
  should not have been followed, check-all-the-things was only a
  suggests.

  i18nspector -> python3-rply -> python3-appdirs -> clang/clang-6.0

  This debacle left me with about 6368 packages installed and about 20GB
  of extra disk space wasted compared to running a fairly similar set of
  many apt-get commands, without selectively including --install-
  recommends on a few, on another machine.  And ultimately, it appears
  will be necessary to completely reinstall this computer from scratch
  to undo the damage.   In total, there were only about 50 packages
  included in "Suggests" without recursion.

  Not only does --install-suggests behave incorrectly but the man page
  fails to document this destructive behavior.

  ProblemType: Bug
  DistroRelease: Ubuntu 18.04
  Package: apt 1.6.10
  ProcVersionSignature: Ubuntu 4.18.0-18.19~18.04.1-generic 4.18.20
  Uname: Linux 4.18.0-18-generic x86_64
  ApportVersion: 2.20.9-0ubuntu7.6
  Architecture: amd64
  CurrentDesktop: ubuntu:GNOME
  Date: Tue May  7 23:11:00 2019
  InstallationDate: Installed on 2019-05-02 (5 days ago)
  InstallationMedia: Ubuntu 18.04.2 LTS "Bionic Beaver" - Release amd64 
(20190210)
  ProcEnviron:
   TERM=xterm-256color
   PATH=(custom, no user)
   XDG_RUNTIME_DIR=<set>
   LANG=en_US.UTF-8
   SHELL=/bin/bash
  SourcePackage: apt
  UpgradeStatus: No upgrade log present (probably fresh install)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1828220/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to