removing vlc inside whonix-gateway leading to chaos


as we dont use whonix gateway to watch/download anything from the internet i thought it would be good idea to remove vlc from there , but removing vlc leaded to chaotic state which i dont understand what is the linkage between it and the rest of the process:-

    user@host:~$ sudo apt-get remove vlc
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  acpi-support acpi-support-base acpid anon-apt-sources-list anon-base-files anon-gw-base-files anon-gw-dhcp-conf anon-gw-dns-conf anon-gw-kde-startmenu anon-iceweasel-warning anon-icon-pack anon-shared-helper-scripts anon-shared-packages-recommended apparmor
  apparmor-notify apparmor-profile-anondist apparmor-utils apt-file apt-transport-https apt-transport-tor bc bind9-host bootclockrandomization brltty brltty-speechd brltty-x11 bsdtar command-not-found console-braille control-port-filter-python curl-scripts damngpl
  dasher dasher-data debsums dnsutils espeak espeak-data espeakup faketime festival flashproxy-client flashproxy-common florence geoip-database gir1.2-atspi-2.0 gir1.2-wnck-3.0 gnome-orca gpg-bash-lib gpl-sources-download grub-enable-apparmor gtk2-engines-oxygen
  gtk3-engines-oxygen initramfs-tools inotify-tools ipv4-forward-disable ipv6-disable kde-apper-no-autoupdate kde-baseapps-data kde-common-resolution kde-dolphin-menubar-enable kde-kdm-autologin kde-kgpg-tweaks kde-konsole-unlim-scrollback kde-lowfat
  kde-mouse-doubleclick kde-no-move-max-win kde-privacy kde-sounds-off klibc-utils kmix-disable-autostart knetattach-hide ksysguardd libao-common libao4 libapparmor-perl libapparmor1 libapt-pkg-perl libarchive13 libatk-adaptor libbaloocore4 libbaloofiles4
  libbalooqueryparser4 libbaloowidgets4 libbalooxapian4 libbind9-90 libbluetooth3 libbrlapi0.6 libconfig-file-perl libcupsfilters1 libcupsimage2 libdns100 libdotconf0 libepub0 libespeak1 libestools2.1 libevent-2.0-5 libfaketime libfile-fnmatch-perl libflite1
  libflorence-1.0-1 libgail-common libgail18 libgeoip1 libgmp-dev libgmpxx4ldbl libgnome-speech7 libgnome2-bin libgs9 libgs9-common libharfbuzz-icu0 libidl0 libijs-0.35 libinotifytools0 libisc95 libisccc90 libisccfg90 libjavascriptcoregtk-3.0-0 libjbig2dec0
  libkdecorations4abi2 libkexiv2-11 libkexiv2-data libkfilemetadata4 libklibc libkprintutils4 libkscreen1 libksgrd4 libksignalplotter4 liblist-moreutils-perl liblouis-data liblouis2 liblwres90 liblzo2-2 liborbit2 libpaper1 libperl4-corelibs-perl libpkcs11-helper1
  libpoppler-qt4-4 libpoppler46 libportaudio2 libprocesscore4abi1 libprocessui4a libqimageblitz4 libqjson0 libqmobipocket1 libqt4-help libqt4-scripttools libqt4-test libqtassistantclient4 libregexp-assemble-perl libseccomp2 libsensors4 libsonic0 libspectre1 libspeechd2
  libsysfs2 libwebkitgtk-3.0-0 libwebkitgtk-3.0-common libzip2 lsof menu most msgcollector obfs4proxy obfsproxy open-link-confirmation openvpn os-prober p7zip-full pkg-manager-longer-timeouts pkg-manager-no-autoupdate pm-utils poppler-data power-savings-disable-in-vms
  powermgmt-base poweroff-passwordless pv python-cffi python-characteristic python-crypto python-cryptography python-daemon python-dateutil python-gdbm python-geoip python-gevent python-greenlet python-guimessages python-lockfile python-m2crypto python-openssl
  python-pkg-resources python-ply python-pyasn1 python-pyasn1-modules python-pycparser python-pyptlib python-pysocks python-qt4 python-service-identity python-sip python-six python-stem python-torctl python-twisted python-twisted-bin python-twisted-conch
  python-twisted-core python-twisted-lore python-twisted-mail python-twisted-names python-twisted-news python-twisted-runner python-twisted-web python-twisted-words python-yaml python-zope.interface python3-apparmor python3-brlapi python3-cairo python3-gi                 
  python3-libapparmor python3-louis python3-pyatspi python3-speechd python3-xdg qt-at-spi qubes-whonix-gateway-packages-recommended qubes-whonix-shared-packages-recommended rads rake rsync ruby ruby-all-dev ruby-dev ruby-inline ruby2.1 ruby2.1-dev rubygems-integration    
  scurl sdwdate secure-delete security-misc shared-folder-help speech-dispatcher speech-dispatcher-audio-plugins strace swap-file-creator swappiness-lowest sysfsutils telnet timesanitycheck timezone-utc tor tor-arm tor-ctrl tor-geoipdb torsocks unzip usability-misc uwt   
  vbox-disable-timesync virt-what vrms whonix-base-files whonix-gateway-packages-dependencies-pre whonix-gw-desktop-shortcuts whonix-gw-network-conf whonix-initializer whonix-legacy whonix-repository whonix-setup-wizard whonix-shared-packages-dependencies                 
  whonix-shared-packages-recommended whonix-ws-firewall whonix-ws-network-conf whonixcheck whonixsetup wmctrl xbrlapi zenity zenity-common zip zsh zsh-common                                                                                                                   
Use 'apt-get autoremove' to remove them.                                                                                                                                                                                                                                        
The following extra packages will be installed:                                                                                                                                                                                                                                 
  whonix-ws-firewall whonix-ws-network-conf                                                                                                                                                                                                                                     
The following packages will be REMOVED:                                                                                                                                                                                                                                         
  anon-gateway-packages-dependencies anon-gateway-packages-recommended anon-gw-anonymizer-config anon-shared-applications-kde anon-shared-kde-accessibility anon-shared-packages-dependencies ark dolphin jovie kaccessible kde-runtime kdeaccessibility kdebase-runtime        
  kdepasswd kdesudo kfind khelpcenter4 kmag kmousetool kmouth konsole ksysguard ksystemlog kvkbd kwrite libkonq-common libkonq5abi1 libokularcore5 okular phonon phonon-backend-vlc plasma-widget-folderview polkit-kde-1 qubes-whonix qubes-whonix-gateway sdwdate-gui         
  systemsettings vlc vlc-plugin-pulse whonix-gateway-packages-dependencies whonix-gateway-packages-recommended whonix-gateway-shared-packages-shared-meta whonix-gw-firewall whonix-gw-kde-desktop-conf                                                                         
The following NEW packages will be installed:                                                                                                                                                                                                                                   
  whonix-ws-firewall whonix-ws-network-conf                                                                                                                                                                                                                                     
0 upgraded, 2 newly installed, 44 to remove and 0 not upgraded.                                                                                                                                                                                                                 
Need to get 21.3 kB of archives.                                                                                                                                                                                                                                                
After this operation, 39.0 MB disk space will be freed.                                                                                                                                                                                                                         
Do you want to continue? [Y/n]

this is what has been remained from the gw (i installed leafpad manually):-

the bright side of this step is that gw is still giving tor connection to the ws and im browsing TBB like nothing happened. (no lost connection)


Unfortunately, nothing can be done about this. (Besides replacing all KDEish applications. But it was decided against that in this thread: https://forums.whonix.org/t/updating-whonix-from-jessie-to-stretch-migration-to-gnome-shell-port-to-gnome-ish-applications.)

It’s due to Debian package dependencies. It’s explained in this thread:


it doesnt matter which GUI we use , because we need to no-GUI inside qubes.

so rationally KDEish being inside Qubes-whonix really unnecessary. (kmix , kmouth …etc)

yeah now i have remembered (package dependencies).


gui desktop environment package shall be defined as: For example kdm, anon-shared-desktop, xserver-xorg.

gui application shall be defined as: for example dolphin

It’s not about GUI vs CLI-only. Not about gui desktop environment packages

There are no gui desktop environment package in Qubes-Whonix. Only gui applications.

Try these commands by @entr0py in the other thread apt-cache --installed rdepends etc.

We’d have to get rid of all of the following packages.

sudo apt-cache --installed rdepends phonon
Reverse Depends:

So we could get finally get rid of phonon so we can get rid of vlc. (kde-runtime also has loads of reverse depends.)

kmouth is an accessibility tool. Can be removed. See:

Maybe look on it from this perspective:

In essence qubes-whonix-gateway is installed with apt-get --no-install-recommends inside a minimal Qubes Debian template. We can change dependencies in anon-meta-packages debian/control. Suggestions can be made there. But nothing can be done about reverse depends.