aysiu / purebuntu

Generates apt-get commands to remove *buntu-desktop metapackages and dependencies from other *buntu-desktop metapackages
GNU General Public License v3.0
25 stars 3 forks source link

removes to much when used with xubuntu 16.04 #1

Closed stammi closed 8 years ago

stammi commented 8 years ago

I ran the script like this: python purebuntu.py --remove xubuntu-desktop --keep ubuntu-desktop

which produces:

sudo apt-get remove accountsservice-ubuntu-schemas appstream apt apt-offline ark aspell aspell-dictionary aspell-en aspell6a-dictionary blueman brltty-x11 caja-common catfish click dbus-property-service debian-archive-keyring dictionaries-common engrampa engrampa-common espeak exo-utils findutils fontconfig-config fonts-noto-hinted gawk gcc gcc-5 gigolo gir1.2-cheese-3.0 gir1.2-clutter-1.0 gir1.2-gmenu-3.0 gir1.2-gst-plugins-base-1.0 gir1.2-gtkclutter-1.0 gnome-software-common gnome-system-tools gstreamer1.0-audiosink gstreamer1.0-libav gtk-theme-config gtk2-engines-pixbuf gzip hddtemp iamerican ienglish-common indicator-applet indicator-application indicator-messages indicator-network indicator-renderer inxi ispell ispell-dictionary less libaa1 libaccounts-qt5-1 libandroid-properties1 libapparmor1 libasound2-plugins libaspell15 libatkmm-1.6-1v5 libaudit1 libavc1394-0 libavcodec-ffmpeg-extra56 libavcodec-ffmpeg56 libavfilter-ffmpeg5 libavformat-ffmpeg56 libavutil-ffmpeg54 libburn4 libc-dev libc-dev-bin libc6-dev libcaca0 libcaja-extension1 libcanberra-gtk0 libcdparanoia0 libclick-0.4-0 libdbusmenu-gtk3-4 libdv4 libexo-1-0 libfftw3-double3 libfftw3-single3 libflac8 libgarcon-1-0 libglib2.0-bin libgstreamer-plugins-good1.0-0 libgtk2.0-bin libgtkspell0 libgtkspell3-3-0 libido3-0.1-0 libiec61883-0 libindicator3-7 libisofs6 libjack-0.116 libjack-jackd2-0 libkeybinder0 libkf5archive5 libkf5completion5 libkf5configcore5 libkf5configgui5 libkf5configwidgets5 libkf5coreaddons5 libkf5dbusaddons5 libkf5i18n5 libkf5iconthemes5 libkf5jobwidgets5 libkf5kiocore5 libkf5kiofilewidgets5 libkf5kiowidgets5 libkf5parts5 libkf5pty5 libkf5service-bin libkf5service5 libkf5widgetsaddons5 libkf5xmlgui5 libmate-desktop-2-17 libmatemixer0 libmirclient9 liboauth0 libogg0 libonline-accounts-daemon1 liboobs-1-5 libopus0 liborc-0.4-0 libotr5 liboxideqt-qmlplugin libpanel-applet0 libpoppler-glib8 libpurple0 libqt5qml5 libqt5quick5 libqt5quick5-gles libqt5xml5 libraw1394-11 libreoffice-style-elementary libreoffice-style-tango libsamplerate0 libsensors4 libshout3 libsignon-qt5-1 libspeex1 libspeexdsp1 libsystemsettings1 libtag1v5 libtagc0 libtheora0 libthunarx-2-0 libtrust-store2 libtumbler-1-0 libubuntu-download-manager-client1 libubuntuoneauth-2.0-0 libunique-1.0-0 liburl-dispatcher1 libv4l-0 libvisual-0.4-0 libvorbis0a libvorbisenc2 libvpx3 libvte9 libwavpack1 libwebrtc-audio-processing-0 libwnck22 libxfce4panel-2.0-4 libxfce4ui-2-0 libxfce4ui-utils libxfcegui4-4 libxss1 light-locker light-locker-settings lightdm-gtk-greeter lightdm-gtk-greeter-settings linux-libc-dev lm-sensors locate make mate-desktop-common mate-icon-theme mate-media mate-media-common mate-polkit menulibre mesa-utils mlocate mousepad mugshot net-tools obexd-client obexd-server orage p7zip-full packagekit packagekit-backend-aptcc packagekit-tools parole pastebinit pavucontrol pciutils pidgin pidgin-data pidgin-libnotify pidgin-otr pinentry-gtk2 pm-utils powerd pptp-linux python python-argparse python-defusedxml python-lzma python-magic python-psutil python-soappy python-wstools python3-psutil python:any qmenumodel-qml qml-module-qt-labs-folderlistmodel qml-module-qtmultimedia qml-module-qtmultimedia-gles qml-module-qtsysteminfo qml-module-ubuntu-connectivity qml-module-ubuntu-onlineaccounts2 qtdeclarative5-accounts-plugin qtdeclarative5-gsettings1.0 qtdeclarative5-ofono0.2 qtdeclarative5-ubuntu-content1 qtdeclarative5-ubuntu-settings-components qtdeclarative5-ubuntu-ui-toolkit-plugin qtdeclarative5-ubuntu-ui-toolkit-plugin-gles ristretto rtkit signon-ui-service suru-icon-theme system-image-dbus thunar thunar-archive-plugin thunar-media-tags-plugin thunar-volman tumbler tumbler-common ubuntu-keyboard-data ubuntu-snappy-cli ubuntu-system-settings ubuntu-system-settings-online-accounts ubuntu-touch-sounds upstart urfkill usbutils xarchiver xfburn xfce4-appfinder xfce4-cpugraph-plugin xfce4-dict xfce4-indicator-plugin xfce4-mailwatch-plugin xfce4-netload-plugin xfce4-notes xfce4-notes-plugin xfce4-notifyd xfce4-places-plugin xfce4-quicklauncher-plugin xfce4-screenshooter xfce4-session xfce4-settings xfce4-systemload-plugin xfce4-taskmanager xfce4-terminal xfce4-verve-plugin xfce4-volumed xfce4-weather-plugin xfce4-whiskermenu-plugin xfce4-xkb-plugin xfconf xfdesktop4 xfpanel-switch xfwm4 xubuntu-artwork xubuntu-community-wallpapers xubuntu-community-wallpapers-xenial xubuntu-core xubuntu-default-settings xubuntu-desktop xubuntu-docs && sudo apt-get install ubuntu-desktop

This contains packages like apt, less, gcc, python and gzip, none of which I would expect to be removed. Trying to run that command leads to a warning:

WARNING: The following essential packages will be removed. This should NOT be done unless you know exactly what you are doing! apt adduser (due to apt) e2fsprogs libblkid1 (due to e2fsprogs) libuuid1 (due to e2fsprogs) util-linux (due to e2fsprogs) findutils gzip init systemd-sysv (due to init) login libaudit1 (due to login) libpam0g (due to login) libpam-runtime (due to login) libpam-modules (due to login) mount libmount1 (due to mount) libfdisk1 (due to util-linux) 1 upgraded, 6 newly installed, 846 to remove and 9 not upgraded. Need to get 554 kB of archives. After this operation, 3.295 MB disk space will be freed. You are about to do something potentially harmful. To continue type in the phrase 'Yes, do as I say!'

aysiu commented 8 years ago

Thanks. I'll have to do some digging on why apt is coming up in apt-rdepends --follow=Recommends xubuntu-desktop but not apt-rdepends --follow=Recommends ubuntu-desktop

aysiu commented 8 years ago

I think it's this bug: https://bugs.launchpad.net/ubuntu/+source/apt-rdepends/+bug/315567

Even though it says "fix released," I don't think it's actually been fixed.

This is the list of recursive dependencies for ubuntu-desktop:

a11y-profile-manager-indicator a2ps accountsservice acl acpi-support acpid activity-log-manager adduser adwaita-icon-theme adwaita-icon-theme-full aisleriot alsa-base alsa-utils anacron apg app-install-data app-install-data-partner apport apport-gtk apport-symptoms aptdaemon aptdaemon-data apturl at-spi2-core avahi-autoipd avahi-daemon baobab base-files base-passwd bash bc bind9-host binutils bluez bluez-cups bluez-obexd branding-ubuntu brltty bzip2 ca-certificates checkbox-gui cheese cheese-common colord colord-data coreutils cpp cracklib-runtime cron cron-daemon cups cups-bsd cups-client cups-common cups-core-drivers cups-daemon cups-filters cups-filters-core-drivers cups-pk-helper cups-ppdc cups-server-common cupsddk cupsys-client curl dbus dbus-x11 dc dconf-cli dconf-gsettings-backend debconf debconf-2.0 debianutils deja-dup desktop-file-utils dh-python dhcp-client dialog diffstat dirmngr dleyna-server dmidecode dmz-cursor-theme doc-base docbook-xml dpkg efibootmgr enscript eog evince evince-common evolution-data-server evolution-data-server-common evolution-data-server-online-accounts example-content file file-roller firefox fontconfig fonts-dejavu-core fonts-freefont-ttf fonts-guru fonts-guru-extra fonts-kacst fonts-kacst-one fonts-khmeros-core fonts-lao fonts-liberation fonts-lklug-sinhala fonts-lohit-guru fonts-nanum fonts-noto-cjk fonts-opensymbol fonts-sil-abyssinica fonts-sil-padauk fonts-symbola fonts-takao-pgothic fonts-thai-tlwg fonts-tibetan-machine fonts-tlwg-garuda fonts-tlwg-kinnari fonts-tlwg-laksaman fonts-tlwg-loma fonts-tlwg-mono fonts-tlwg-norasi fonts-tlwg-purisa fonts-tlwg-sawasdee fonts-tlwg-typewriter fonts-tlwg-typist fonts-tlwg-typo fonts-tlwg-umpush fonts-tlwg-waree foomatic-db foomatic-db-compressed-ppds foomatic-db-engine foomatic-filters fuse fwupd fwupdate fwupdate-signed gcc-5-base gconf-service gconf2 gcr gdb gdb-minimal gdbserver gedit gedit-common genisoimage gettext gettext-base ghostscript ghostscript-cups ghostscript-x gir1.2-appindicator3-0.1 gir1.2-atspi-2.0 gir1.2-gdkpixbuf-2.0 gir1.2-glib-2.0 gir1.2-gnomekeyring-1.0 gir1.2-gstreamer-1.0 gir1.2-gtk-3.0 gir1.2-gtksource-3.0 gir1.2-gudev-1.0 gir1.2-ibus-1.0 gir1.2-notify-0.7 gir1.2-packagekitglib-1.0 gir1.2-pango-1.0 gir1.2-peas-1.0 gir1.2-rb-3.0 gir1.2-secret-1 gir1.2-totem-1.0 gir1.2-unity-5.0 gir1.2-vte-2.91 gir1.2-wnck-3.0 gkbd-capplet gksu gnome-accessibility-themes gnome-bluetooth gnome-calculator gnome-calendar gnome-control-center gnome-control-center-data gnome-desktop3-data gnome-disk-utility gnome-font-viewer gnome-icon-theme gnome-icon-theme-symbolic gnome-keyring gnome-mahjongg gnome-menus gnome-mines gnome-online-accounts gnome-orca gnome-power-manager gnome-screensaver gnome-screenshot gnome-session-bin gnome-session-canberra gnome-settings-daemon gnome-settings-daemon-schemas gnome-software gnome-sudoku gnome-system-log gnome-system-monitor gnome-terminal gnome-terminal-data gnome-user-guide gnome-user-share gnome-video-effects gnupg gnupg-agent gnupg2 gpgsm gpgv grilo-plugins-0.2-base gsettings-backend gsettings-desktop-schemas gsettings-ubuntu-schemas gsfonts gstreamer1.0-alsa gstreamer1.0-clutter-3.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-good gstreamer1.0-pulseaudio gstreamer1.0-x gucharmap guile-2.0-libs gvfs gvfs-backends gvfs-bin gvfs-common gvfs-daemons gvfs-fuse gvfs-libs hardening-includes hicolor-icon-theme host hpijs-ppds hplip hplip-data hunspell-dictionary hunspell-en-us ibus ibus-gtk ibus-gtk3 ibus-qt4 ibus-table ifupdown im-config imagemagick indicator-bluetooth indicator-datetime indicator-keyboard indicator-power indicator-sound init-system-helpers initramfs-tools inputattach install-info intltool-debian iproute2 isc-dhcp-client isc-dhcp-common iso-codes kde-baseapps-bin kdebase-bin kerneloops-daemon kmod language-selector-gnome laptop-detect liba11y-profile-manager-0.1-0 liba11y-profile-manager-data libabw-0.1-1v5 libaccounts-glib0 libaccountsservice0 libacl1 libappindicator3-1 libappstream-glib8 libapt-inst2.0 libapt-pkg-perl libapt-pkg5.0 libarchive-zip-perl libarchive13 libasound2 libassuan0 libatk-adaptor libatk1.0-0 libatm1 libatspi2.0-0 libautodie-perl libavahi-client3 libavahi-common3 libavahi-core7 libavahi-glib1 libavahi-ui-gtk3-0 libbabeltrace-ctf1 libbabeltrace1 libblkid1 libbluetooth3 libbrlapi0.6 libbz2-1.0 libc-bin libc-dbg libc6 libcairo-gobject2 libcairo-perl libcairo2 libcamel-1.2-54 libcanberra-gtk3-0 libcanberra-pulse libcanberra0 libcap-ng0 libcap2 libcap2-bin libcc1-0 libcdio-cdda1 libcdio-paranoia1 libcdio13 libcheese-gtk25 libcheese8 libclass-accessor-perl libclone-perl libclutter-1.0-0 libclutter-gtk-1.0-0 libcolord-gtk1 libcolord2 libcolorhug2 libcomerr2 libcrack2 libcups2 libcupscgi1 libcupsfilters1 libcupsimage2 libcupsmime1 libcupsppdc1 libcurl3 libcurl3-gnutls libdaemon0 libdata-alias-perl libdb5.3 libdbus-1-3 libdbus-glib-1-2 libdbusmenu-glib4 libdbusmenu-gtk4 libdbusmenu-qt2 libdconf1 libdee-1.0-4 libdfu1 libdigest-sha-perl libdleyna-connector-dbus-1.0-1 libdleyna-core-1.0-3 libdmapsharing-3.0-2 libdns-export162 libdotconf0 libdpkg-perl libdrm2 libe-book-0.1-1 libebackend-1.2-10 libebook-1.2-16 libebook-contacts-1.2-2 libecal-1.2-19 libedata-book-1.2-25 libedata-cal-1.2-28 libedataserver-1.2-21 libedataserverui-1.2-1 libedit2 libefivar0 libegl1-mesa libegl1-x11 libemail-valid-perl libenchant1c2a libept1.5.0 libespeak1 libestr0 libetonyek-0.1-1 libevdocument3-4 libevent-2.0-5 libevview3-3 libexempi3 libexif12 libexpat1 libfcitx-config4 libfcitx-gclient0 libfcitx-utils0 libfile-basedir-perl libfile-desktopentry-perl libfile-mimeinfo-perl libfontconfig1 libfontembed1 libfontenc1 libfreerdp-client1.1 libfreerdp-codec1.1 libfreerdp-common1.1.0 libfreerdp-core1.1 libfreerdp-gdi1.1 libfreerdp-locale1.1 libfreerdp-plugins-standard libfreerdp-utils1.1 libfreetype6 libfuse2 libfwup0 libfwupd1 libgail-common libgail18 libgbm1 libgcc1 libgck-1-0 libgconf-2-4 libgcr-base-3-1 libgcr-ui-3-1 libgcrypt20 libgdata22 libgdk-pixbuf2.0-0 libgee-0.8-2 libgeonames0 libgexiv2-2 libgirepository-1.0-1 libgksu2-0 libgl1 libgl1-mesa-glx libglew1.13 libglib-perl libglib2.0-0 libglibmm-2.4-1v5 libgnome-bluetooth13 libgnome-desktop-3-12 libgnome-menu-3-0 libgnomekbd8 libgnutls30 libgoa-1.0-0b libgoa-backend-1.0-1 libgpg-error0 libgpgme11 libgphoto2-6 libgphoto2-port12 libgpm2 libgpod4 libgrilo-0.2-1 libgs9 libgssapi-krb5-2 libgssdp-1.0-3 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgtk-3-0 libgtk-3-bin libgtk2-perl libgtk2.0-0 libgtkmm-3.0-1v5 libgtksourceview-3.0-1 libgtop-2.0-10 libgucharmap-2-90-7 libgudev-1.0-0 libgupnp-1.0-4 libgupnp-av-1.0-2 libgupnp-dlna-2.0-3 libgusb2 libgutenprint2 libgweather-3-6 libharfbuzz0b libhpmud0 libhunspell-1.3-0 libibus-1.0-5 libibus-qt1 libical1a libice6 libicu55 libidn11 libieee1284-3 libijs-0.35 libimobiledevice6 libinput10 libio-socket-ip-perl libipc-run-perl libipc-system-simple-perl libisc-export160 libiw30 libjbig0 libjpeg8 libjson-c2 libjson-glib-1.0-0 libk5crypto3 libkmod2 libkrb5-3 libksba8 liblcms2-2 liblcms2-utils libldap-2.4-2 liblircclient0 liblist-moreutils-perl liblouis-bin liblouis9 liblouisutdml-bin liblouisutdml6 libltdl7 liblzma5 libmagic1 libmessaging-menu0 libminiupnpc10 libmm-glib0 libmnl0 libmpfr4 libmtdev1 libmtp9 libmwaw-0.3-3 libnatpmp1 libnautilus-extension1a libncurses5 libncursesw5 libnet-dbus-perl libnewt0.52 libnm-glib-vpn1 libnm-glib4 libnm-gtk0 libnm-util2 libnm0 libnma0 libnotify-bin libnotify1 libnotify4 libnpth0 libnss-mdns libodfgen-0.1-1 liborcus-0.10-0v5 libp11-kit-gnome-keyring libpackagekit-glib2-16 libpam-gnome-keyring libpam-modules libpam-runtime libpam-systemd libpam0g libpango-1.0-0 libpango-perl libpangocairo-1.0-0 libpangoft2-1.0-0 libpaper1 libpaps0 libparse-debianchangelog-perl libpcap0.8 libpci3 libpcre3 libpcsclite1 libpeas-1.0-0 libpeas-1.0-0-python3loader libperl5.22 libperlio-gzip-perl libpipeline1 libplist3 libpng12-0 libpolkit-agent-1-0 libpolkit-backend-1-0 libpolkit-gobject-1-0 libpoppler58 libpopt0 libproxy1-plugin-gsettings libproxy1-plugin-networkmanager libproxy1v5 libpulse-mainloop-glib0 libpulse0 libpwquality1 libpython3-stdlib libpython3.5 libqpdf17 libqqwing2v5 libqt4-dbus libqt4-sql libqt4-sql-sqlite libqt5core5a libqt5dbus5 libqt5gui5 libqt5gui5-gles libqt5network5 libqt5svg5 libqt5widgets5 libqtcore4 libqtgui4 librarian0 libraw15 libreadline6 libreoffice-avmedia-backend-gstreamer libreoffice-base-core libreoffice-calc libreoffice-common libreoffice-core libreoffice-draw libreoffice-gnome libreoffice-gtk libreoffice-impress libreoffice-math libreoffice-ogltrans libreoffice-pdfimport libreoffice-style-breeze libreoffice-style-galaxy libreoffice-writer librest-0.7-0 librevenge-0.0-0 librhythmbox-core9 librsvg2-2 librsvg2-common libsane libsane-hpaio libsasl2-modules libsbc1 libsecret-1-0 libselinux1 libsigc++-2.0-0v5 libsignon-glib1 libsignon-plugins-common1 libslang2 libsm6 libsmbclient libsndfile1 libsocket-perl libsoup2.4-1 libspeechd2 libsqlite3-0 libssh-4 libssl1.0.0 libstartup-notification0 libstdc++6 libsub-identify-perl libsystemd0 libtdb1 libtelepathy-glib0 libtext-levenshtein-perl libtimedate-perl libtimezonemap1 libtinfo5 libtotem-plparser18 libtotem0 libudev1 libudisks2-0 libunity-control-center1 libunity-settings-daemon1 libunity9 libupower-glib3 liburi-perl libusb-0.1-4 libusb-1.0-0 libutempter0 libuuid1 libvncclient1 libvorbisfile3 libvte-2.91-0 libwacom2 libwebkit2gtk-4.0-37 libwhoopsie-preferences0 libwhoopsie0 libwinpr-crt0.1 libwinpr-file0.1 libwinpr-handle0.1 libwinpr-interlocked0.1 libwinpr-synch0.1 libwinpr-sysinfo0.1 libwinpr-thread0.1 libwinpr-utils0.1 libwmf0.2-7 libwmf0.2-7-gtk libwnck-3-0 libwpd-0.10-10 libwpg-0.3-3 libwps-0.4-4 libx11-6 libx11-protocol-perl libx11-xcb1 libxapian22v5 libxau6 libxaw7 libxcb-glx0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-render0 libxcb-shape0 libxcb-shm0 libxcb-sync1 libxcb-xfixes0 libxcb-xkb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfce4ui-1-0 libxfce4util7 libxfconf-0-2 libxfixes3 libxft2 libxi6 libxinerama1 libxkbcommon-x11-0 libxkbcommon0 libxkbfile1 libxklavier16 libxml-twig-perl libxml2 libxmu6 libxmuu1 libxpm4 libxrandr2 libxrender1 libxt6 libxtables11 libxtst6 libxv1 libxxf86dga1 libxxf86vm1 libyaml-libyaml-perl libyelp0 libzeitgeist-2.0-0 lightdm lintian locales logrotate lpr lprng lsb-base lsb-release lxpanel man-db media-player-info memtest86+ mobile-broadband-provider-info mousetweaks mpage mscompress multiarch-support myspell-dictionary myspell-en-us nautilus nautilus-sendto nautilus-share netbase network-manager network-manager-gnome network-manager-pptp network-manager-pptp-gnome notification-daemon notify-osd onboard onboard-data openprinting-ppds openssh-client openssl overlay-scrollbar overlay-scrollbar-gtk2 p11-kit packagekit-system-interface paps passwd patchutils pcmciautils perl perl-base perl-modules-5.22 perlapi-5.22.1 pinentry pinentry-curses pinentry-gnome3 plymouth plymouth-label plymouth-theme-ubuntu-logo policykit-1 policykit-1-gnome policykit-desktop-privileges poppler-utils ppp pppconfig pppoe pppoeconf printer-driver-all printer-driver-brlaser printer-driver-c2050 printer-driver-c2esp printer-driver-cjet printer-driver-dymo printer-driver-escpr printer-driver-foo2zjs printer-driver-foo2zjs-common printer-driver-gutenprint printer-driver-hpcups printer-driver-hpijs printer-driver-m2300w printer-driver-min12xxw printer-driver-pnm2ppa printer-driver-postscript-hp printer-driver-ptouch printer-driver-pxljr printer-driver-sag-gdi printer-driver-splix procps psmisc psutils pulseaudio pulseaudio-module-bluetooth pulseaudio-module-x11 pulseaudio-utils python3 python3-apport python3-apt python3-aptdaemon python3-aptdaemon.gtk3widgets python3-aptdaemon.pkcompat python3-brlapi python3-cairo python3-commandnotfound python3-dbus python3-defer python3-gi python3-gi-cairo python3-louis python3-lxml python3-mako python3-minimal python3-pexpect python3-pil python3-pkg-resources python3-pyatspi python3-reportlab python3-requests python3-software-properties python3-speechd python3-systemd python3-xdg python3.5 python3:any qt-at-spi qtbase-abi-5-5-1 rarian-compat realmd remmina remmina-common remmina-plugin-rdp remmina-plugin-vnc rename rfkill rhythmbox rhythmbox-data rhythmbox-plugin-zeitgeist rhythmbox-plugins rlpr rsyslog sane-utils sbsigntool seahorse secureboot-db sed session-migration sessioninstaller shared-mime-info shotwell shotwell-common signon-plugin-password signond simple-scan snapd sni-qt software-properties-common software-properties-gtk sound-theme-freedesktop speech-dispatcher speech-dispatcher-audio-plugins squashfs-tools sudo synaptic system-config-printer-common system-config-printer-gnome system-log-daemon systemd systemd-shim systemd-sysv sysvinit-utils t1utils tar thunderbird thunderbird-gnome-support toshset totem totem-common totem-plugins transmission-common transmission-gtk ttf-ancient-fonts-symbola ttf-ubuntu-font-family ubuntu-artwork ubuntu-core-launcher ubuntu-desktop ubuntu-docs ubuntu-drivers-common ubuntu-mono ubuntu-release-upgrader-gtk ubuntu-session ubuntu-settings ubuntu-software ubuntu-sounds ubuntu-system-service ucf udev udisks2 unity unity-accessibility-profiles unity-asset-pool unity-control-center unity-control-center-faces unity-greeter unity-settings-daemon unity-webapps-common unity-webapps-service uno-libs3 unzip update-inetd update-manager update-manager-gnome update-notifier update-notifier-common upower ure usb-creator-common usb-creator-gtk usb-modeswitch usb-modeswitch-data util-linux vino wamerican wdiff wget whiptail whiptail-provider whoopsie whoopsie-preferences wireless-tools wordlist wpasupplicant x-terminal-emulator x11-common x11-utils x11-xserver-utils xauth xbitmaps xbrlapi xcursor-themes xdg-user-dirs xdg-user-dirs-gtk xdg-utils xdiagnose xfce4-panel xfce4-power-manager xfce4-power-manager-data xfce4-power-manager-plugins xkb-data xml-core xorg xterm xul-ext-ubufox xz-utils yelp yelp-xsl zeitgeist zeitgeist-core zeitgeist-datahub zenity zenity-common zip zlib1g 

And this is the list of (supposedly recursive) dependencies for xubuntu-desktop

a2ps accountsservice accountsservice-ubuntu-schemas acl acpi-support acpid adduser adwaita-icon-theme adwaita-icon-theme-full alsa-base alsa-utils anacron apg app-install-data app-install-data-partner apport apport-gtk apport-symptoms appstream apt apt-offline aptdaemon aptdaemon-data ark aspell aspell-dictionary aspell-en aspell6a-dictionary avahi-autoipd avahi-daemon base-files base-passwd bash bc bind9-host binutils blueman bluez bluez-cups bluez-obexd brltty brltty-x11 bzip2 ca-certificates caja-common catfish click colord colord-data coreutils cpp cracklib-runtime cron cron-daemon cups cups-bsd cups-client cups-common cups-core-drivers cups-daemon cups-filters cups-filters-core-drivers cups-pk-helper cups-ppdc cups-server-common cupsddk cupsys-client curl dbus dbus-property-service dbus-x11 dc dconf-cli dconf-gsettings-backend debconf debconf-2.0 debian-archive-keyring debianutils desktop-file-utils dh-python dhcp-client dialog dictionaries-common diffstat dleyna-server dmidecode dmz-cursor-theme doc-base docbook-xml dpkg efibootmgr engrampa engrampa-common enscript espeak evince evince-common exo-utils file file-roller findutils firefox fontconfig fontconfig-config fonts-dejavu-core fonts-freefont-ttf fonts-guru fonts-guru-extra fonts-kacst fonts-kacst-one fonts-khmeros-core fonts-lao fonts-liberation fonts-lklug-sinhala fonts-lohit-guru fonts-nanum fonts-noto-cjk fonts-noto-hinted fonts-opensymbol fonts-sil-abyssinica fonts-sil-padauk fonts-symbola fonts-takao-pgothic fonts-thai-tlwg fonts-tibetan-machine fonts-tlwg-garuda fonts-tlwg-kinnari fonts-tlwg-laksaman fonts-tlwg-loma fonts-tlwg-mono fonts-tlwg-norasi fonts-tlwg-purisa fonts-tlwg-sawasdee fonts-tlwg-typewriter fonts-tlwg-typist fonts-tlwg-typo fonts-tlwg-umpush fonts-tlwg-waree foomatic-db foomatic-db-compressed-ppds foomatic-db-engine foomatic-filters fuse fwupd fwupdate fwupdate-signed gawk gcc gcc-5 gcc-5-base gconf2 gcr gdb gdb-minimal gdbserver genisoimage gettext gettext-base ghostscript ghostscript-cups ghostscript-x gigolo gir1.2-appindicator3-0.1 gir1.2-atspi-2.0 gir1.2-cheese-3.0 gir1.2-clutter-1.0 gir1.2-gdkpixbuf-2.0 gir1.2-glib-2.0 gir1.2-gmenu-3.0 gir1.2-gnomekeyring-1.0 gir1.2-gst-plugins-base-1.0 gir1.2-gstreamer-1.0 gir1.2-gtk-3.0 gir1.2-gtkclutter-1.0 gir1.2-ibus-1.0 gir1.2-notify-0.7 gir1.2-packagekitglib-1.0 gir1.2-pango-1.0 gir1.2-vte-2.91 gir1.2-wnck-3.0 gkbd-capplet gksu gnome-accessibility-themes gnome-bluetooth gnome-calculator gnome-control-center gnome-control-center-data gnome-desktop3-data gnome-icon-theme gnome-icon-theme-symbolic gnome-keyring gnome-menus gnome-mines gnome-online-accounts gnome-session-bin gnome-settings-daemon gnome-settings-daemon-schemas gnome-software gnome-software-common gnome-sudoku gnome-system-tools gnome-user-guide gnome-user-share gnupg gpgv gsettings-backend gsettings-desktop-schemas gsettings-ubuntu-schemas gsfonts gstreamer1.0-alsa gstreamer1.0-audiosink gstreamer1.0-libav gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-pulseaudio gstreamer1.0-x gtk-theme-config gtk2-engines-pixbuf gucharmap gvfs gvfs-backends gvfs-bin gvfs-common gvfs-daemons gvfs-fuse gvfs-libs gzip hardening-includes hddtemp hicolor-icon-theme host hpijs-ppds hplip hplip-data hunspell-dictionary hunspell-en-us iamerican ibus ibus-gtk ibus-gtk3 ibus-qt4 ienglish-common ifupdown im-config imagemagick indicator-applet indicator-application indicator-bluetooth indicator-datetime indicator-keyboard indicator-messages indicator-network indicator-power indicator-renderer indicator-sound init-system-helpers initramfs-tools inputattach install-info intltool-debian inxi iproute2 isc-dhcp-client isc-dhcp-common iso-codes ispell ispell-dictionary kde-baseapps-bin kdebase-bin kerneloops-daemon kmod language-selector-gnome laptop-detect less libaa1 libabw-0.1-1v5 libaccounts-qt5-1 libaccountsservice0 libacl1 libandroid-properties1 libapparmor1 libappindicator3-1 libappstream-glib8 libapt-inst2.0 libapt-pkg-perl libapt-pkg5.0 libarchive-zip-perl libarchive13 libasound2 libasound2-plugins libaspell15 libassuan0 libatk1.0-0 libatkmm-1.6-1v5 libatm1 libatspi2.0-0 libaudit1 libautodie-perl libavahi-client3 libavahi-common3 libavahi-core7 libavahi-glib1 libavc1394-0 libavcodec-ffmpeg-extra56 libavcodec-ffmpeg56 libavfilter-ffmpeg5 libavformat-ffmpeg56 libavutil-ffmpeg54 libbabeltrace-ctf1 libbabeltrace1 libblkid1 libbluetooth3 libbrlapi0.6 libburn4 libbz2-1.0 libc-bin libc-dbg libc-dev libc-dev-bin libc6 libc6-dev libcaca0 libcairo-gobject2 libcairo-perl libcairo2 libcaja-extension1 libcanberra-gtk0 libcanberra-gtk3-0 libcanberra-pulse libcanberra0 libcap-ng0 libcap2 libcap2-bin libcc1-0 libcdio-cdda1 libcdio-paranoia1 libcdio13 libcdparanoia0 libcheese-gtk25 libcheese8 libclass-accessor-perl libclick-0.4-0 libclone-perl libclutter-1.0-0 libclutter-gtk-1.0-0 libcolord-gtk1 libcolord2 libcolorhug2 libcomerr2 libcrack2 libcups2 libcupscgi1 libcupsfilters1 libcupsimage2 libcupsmime1 libcupsppdc1 libcurl3 libcurl3-gnutls libdaemon0 libdata-alias-perl libdb5.3 libdbus-1-3 libdbus-glib-1-2 libdbusmenu-glib4 libdbusmenu-gtk3-4 libdbusmenu-gtk4 libdconf1 libdfu1 libdigest-sha-perl libdleyna-connector-dbus-1.0-1 libdleyna-core-1.0-3 libdns-export162 libdotconf0 libdpkg-perl libdrm2 libdv4 libe-book-0.1-1 libefivar0 libegl1-mesa libegl1-x11 libemail-valid-perl libept1.5.0 libespeak1 libestr0 libetonyek-0.1-1 libevdocument3-4 libevent-2.0-5 libevview3-3 libexif12 libexo-1-0 libexpat1 libfcitx-config4 libfcitx-gclient0 libfcitx-utils0 libfftw3-double3 libfftw3-single3 libfile-basedir-perl libfile-desktopentry-perl libfile-mimeinfo-perl libflac8 libfontconfig1 libfontembed1 libfontenc1 libfreetype6 libfuse2 libfwup0 libfwupd1 libgarcon-1-0 libgbm1 libgcc1 libgck-1-0 libgcr-base-3-1 libgcrypt20 libgdata22 libgdk-pixbuf2.0-0 libgee-0.8-2 libgeonames0 libgirepository-1.0-1 libgksu2-0 libgl1 libgl1-mesa-glx libglib-perl libglib2.0-0 libglib2.0-bin libglibmm-2.4-1v5 libgnome-bluetooth13 libgnome-desktop-3-12 libgnome-menu-3-0 libgnomekbd8 libgnutls30 libgoa-1.0-0b libgoa-backend-1.0-1 libgpg-error0 libgpgme11 libgphoto2-6 libgphoto2-port12 libgpm2 libgrilo-0.2-1 libgs9 libgssdp-1.0-3 libgstreamer-plugins-base1.0-0 libgstreamer-plugins-good1.0-0 libgstreamer1.0-0 libgtk-3-0 libgtk-3-bin libgtk2-perl libgtk2.0-0 libgtk2.0-bin libgtkmm-3.0-1v5 libgtksourceview-3.0-1 libgtkspell0 libgtkspell3-3-0 libgtop-2.0-10 libgucharmap-2-90-7 libgudev-1.0-0 libgupnp-1.0-4 libgupnp-av-1.0-2 libgupnp-dlna-2.0-3 libgusb2 libgutenprint2 libharfbuzz0b libhpmud0 libhunspell-1.3-0 libibus-1.0-5 libibus-qt1 libical1a libice6 libicu55 libidn11 libido3-0.1-0 libiec61883-0 libieee1284-3 libijs-0.35 libimobiledevice6 libindicator3-7 libinput10 libio-socket-ip-perl libipc-run-perl libipc-system-simple-perl libisc-export160 libisofs6 libiw30 libjack-0.116 libjack-jackd2-0 libjbig0 libjpeg8 libjson-c2 libjson-glib-1.0-0 libk5crypto3 libkeybinder0 libkf5archive5 libkf5completion5 libkf5configcore5 libkf5configgui5 libkf5configwidgets5 libkf5coreaddons5 libkf5dbusaddons5 libkf5i18n5 libkf5iconthemes5 libkf5jobwidgets5 libkf5kiocore5 libkf5kiofilewidgets5 libkf5kiowidgets5 libkf5parts5 libkf5pty5 libkf5service-bin libkf5service5 libkf5widgetsaddons5 libkf5xmlgui5 libkmod2 libkrb5-3 liblcms2-2 liblcms2-utils libldap-2.4-2 liblist-moreutils-perl liblouis-bin liblouis9 liblouisutdml-bin liblouisutdml6 libltdl7 liblzma5 libmagic1 libmate-desktop-2-17 libmatemixer0 libmessaging-menu0 libminiupnpc10 libmirclient9 libmm-glib0 libmnl0 libmpfr4 libmtdev1 libmtp9 libmwaw-0.3-3 libnatpmp1 libnautilus-extension1a libncurses5 libncursesw5 libnet-dbus-perl libnewt0.52 libnm-glib-vpn1 libnm-glib4 libnm-gtk0 libnm-util2 libnm0 libnma0 libnotify-bin libnotify4 libnss-mdns liboauth0 libodfgen-0.1-1 libogg0 libonline-accounts-daemon1 liboobs-1-5 libopus0 liborc-0.4-0 liborcus-0.10-0v5 libotr5 liboxideqt-qmlplugin libp11-kit-gnome-keyring libpackagekit-glib2-16 libpam-gnome-keyring libpam-modules libpam-runtime libpam-systemd libpam0g libpanel-applet0 libpango-1.0-0 libpango-perl libpangocairo-1.0-0 libpangoft2-1.0-0 libpaper1 libpaps0 libparse-debianchangelog-perl libpci3 libpcre3 libperl5.22 libperlio-gzip-perl libpipeline1 libplist3 libpng12-0 libpolkit-agent-1-0 libpolkit-backend-1-0 libpolkit-gobject-1-0 libpoppler-glib8 libpoppler58 libpopt0 libpulse-mainloop-glib0 libpulse0 libpurple0 libpwquality1 libpython3-stdlib libpython3.5 libqpdf17 libqqwing2v5 libqt5core5a libqt5dbus5 libqt5gui5 libqt5gui5-gles libqt5network5 libqt5qml5 libqt5quick5 libqt5quick5-gles libqt5svg5 libqt5widgets5 libqt5xml5 libqtcore4 libqtgui4 librarian0 libraw1394-11 libreadline6 libreoffice-base-core libreoffice-calc libreoffice-common libreoffice-core libreoffice-gtk libreoffice-math libreoffice-style-breeze libreoffice-style-elementary libreoffice-style-galaxy libreoffice-style-tango libreoffice-writer librest-0.7-0 librevenge-0.0-0 librsvg2-2 librsvg2-common libsamplerate0 libsane libsane-hpaio libsasl2-modules libsbc1 libsecret-1-0 libselinux1 libsensors4 libshout3 libsigc++-2.0-0v5 libsignon-qt5-1 libslang2 libsm6 libsmbclient libsndfile1 libsocket-perl libsoup2.4-1 libspeechd2 libspeex1 libspeexdsp1 libsqlite3-0 libssl1.0.0 libstartup-notification0 libstdc++6 libsub-identify-perl libsystemd0 libsystemsettings1 libtag1v5 libtagc0 libtdb1 libtelepathy-glib0 libtext-levenshtein-perl libtheora0 libthunarx-2-0 libtimedate-perl libtimezonemap1 libtinfo5 libtrust-store2 libtumbler-1-0 libubuntu-download-manager-client1 libubuntuoneauth-2.0-0 libudev1 libunique-1.0-0 libunity-control-center1 libunity-settings-daemon1 libunity9 libupower-glib3 liburi-perl liburl-dispatcher1 libusb-0.1-4 libusb-1.0-0 libuuid1 libv4l-0 libvisual-0.4-0 libvorbis0a libvorbisenc2 libvorbisfile3 libvpx3 libvte-2.91-0 libvte9 libwacom2 libwavpack1 libwebkit2gtk-4.0-37 libwebrtc-audio-processing-0 libwhoopsie0 libwnck22 libwpd-0.10-10 libwpg-0.3-3 libwps-0.4-4 libx11-6 libx11-protocol-perl libx11-xcb1 libxapian22v5 libxaw7 libxcb-glx0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-render0 libxcb-shape0 libxcb-shm0 libxcb-sync1 libxcb-xfixes0 libxcb-xkb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfce4panel-2.0-4 libxfce4ui-1-0 libxfce4ui-2-0 libxfce4ui-utils libxfce4util7 libxfcegui4-4 libxfconf-0-2 libxfixes3 libxft2 libxi6 libxinerama1 libxkbcommon-x11-0 libxkbcommon0 libxkbfile1 libxklavier16 libxml-twig-perl libxml2 libxmu6 libxmuu1 libxrandr2 libxrender1 libxss1 libxt6 libxtables11 libxtst6 libxv1 libxxf86dga1 libxxf86vm1 libyaml-libyaml-perl libyelp0 light-locker light-locker-settings lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings lintian linux-libc-dev lm-sensors locate logrotate lpr lprng lsb-base lsb-release lxpanel make man-db mate-desktop-common mate-icon-theme mate-media mate-media-common mate-polkit memtest86+ menulibre mesa-utils mlocate mobile-broadband-provider-info mousepad mousetweaks mpage mscompress mugshot multiarch-support myspell-dictionary myspell-en-us net-tools netbase network-manager network-manager-gnome network-manager-pptp network-manager-pptp-gnome notification-daemon obexd-client obexd-server onboard onboard-data openprinting-ppds openssl orage p11-kit p7zip-full packagekit packagekit-backend-aptcc packagekit-system-interface packagekit-tools paps parole pastebinit patchutils pavucontrol pciutils pcmciautils perl perl-base perl-modules-5.22 perlapi-5.22.1 pidgin pidgin-data pidgin-libnotify pidgin-otr pinentry-gnome3 pinentry-gtk2 pm-utils policykit-1 policykit-1-gnome policykit-desktop-privileges poppler-utils powerd ppp pptp-linux printer-driver-all printer-driver-brlaser printer-driver-c2050 printer-driver-c2esp printer-driver-cjet printer-driver-dymo printer-driver-escpr printer-driver-foo2zjs printer-driver-foo2zjs-common printer-driver-gutenprint printer-driver-hpcups printer-driver-hpijs printer-driver-m2300w printer-driver-min12xxw printer-driver-pnm2ppa printer-driver-postscript-hp printer-driver-ptouch printer-driver-pxljr printer-driver-sag-gdi printer-driver-splix procps psmisc psutils pulseaudio pulseaudio-module-bluetooth pulseaudio-module-x11 pulseaudio-utils python python-argparse python-defusedxml python-lzma python-magic python-psutil python-soappy python-wstools python3 python3-apport python3-apt python3-aptdaemon python3-aptdaemon.gtk3widgets python3-aptdaemon.pkcompat python3-cairo python3-commandnotfound python3-dbus python3-defer python3-gi python3-gi-cairo python3-lxml python3-minimal python3-pexpect python3-pil python3-pkg-resources python3-psutil python3-reportlab python3-requests python3-software-properties python3-systemd python3-xdg python3.5 python3:any python:any qmenumodel-qml qml-module-qt-labs-folderlistmodel qml-module-qtmultimedia qml-module-qtmultimedia-gles qml-module-qtsysteminfo qml-module-ubuntu-connectivity qml-module-ubuntu-onlineaccounts2 qtbase-abi-5-5-1 qtdeclarative5-accounts-plugin qtdeclarative5-gsettings1.0 qtdeclarative5-ofono0.2 qtdeclarative5-ubuntu-content1 qtdeclarative5-ubuntu-settings-components qtdeclarative5-ubuntu-ui-toolkit-plugin qtdeclarative5-ubuntu-ui-toolkit-plugin-gles rarian-compat realmd rename rfkill ristretto rlpr rsyslog rtkit sane-utils sbsigntool secureboot-db sed session-migration sessioninstaller shared-mime-info signon-ui-service simple-scan snapd software-properties-common software-properties-gtk sound-theme-freedesktop speech-dispatcher speech-dispatcher-audio-plugins squashfs-tools sudo suru-icon-theme synaptic system-config-printer-common system-config-printer-gnome system-image-dbus system-log-daemon systemd systemd-shim systemd-sysv sysvinit-utils t1utils tar thunar thunar-archive-plugin thunar-media-tags-plugin thunar-volman thunderbird toshset transmission-common transmission-gtk ttf-ancient-fonts-symbola ttf-ubuntu-font-family tumbler tumbler-common ubuntu-core-launcher ubuntu-drivers-common ubuntu-keyboard-data ubuntu-mono ubuntu-release-upgrader-gtk ubuntu-snappy-cli ubuntu-system-service ubuntu-system-settings ubuntu-system-settings-online-accounts ubuntu-touch-sounds ucf udev unity-control-center unity-control-center-faces unity-settings-daemon uno-libs3 unzip update-inetd update-manager update-manager-gnome update-notifier update-notifier-common upower upstart ure urfkill usb-modeswitch usb-modeswitch-data usbutils util-linux wamerican wdiff wget whiptail whoopsie whoopsie-preferences wireless-tools wordlist wpasupplicant x-terminal-emulator x11-common x11-utils x11-xserver-utils xarchiver xbrlapi xcursor-themes xdg-user-dirs xdg-user-dirs-gtk xdg-utils xfburn xfce4-appfinder xfce4-cpugraph-plugin xfce4-dict xfce4-indicator-plugin xfce4-mailwatch-plugin xfce4-netload-plugin xfce4-notes xfce4-notes-plugin xfce4-notifyd xfce4-panel xfce4-places-plugin xfce4-power-manager xfce4-power-manager-data xfce4-power-manager-plugins xfce4-quicklauncher-plugin xfce4-screenshooter xfce4-session xfce4-settings xfce4-systemload-plugin xfce4-taskmanager xfce4-terminal xfce4-verve-plugin xfce4-volumed xfce4-weather-plugin xfce4-whiskermenu-plugin xfce4-xkb-plugin xfconf xfdesktop4 xfpanel-switch xfwm4 xkb-data xml-core xorg xterm xubuntu-artwork xubuntu-community-wallpapers xubuntu-community-wallpapers-xenial xubuntu-core xubuntu-default-settings xubuntu-desktop xubuntu-docs xul-ext-ubufox xz-utils yelp yelp-xsl zenity zip zlib1g 

Notice how much shorter ubuntu-desktop's output doesn't include apt or less, even though they're both generated by the

apt-rdepends --follow=Recommends *buntu-desktop

command?

I have to think about how to solve this. There must be a programmatic way to get back to "pure" *buntu.

aysiu commented 8 years ago

Okay I ran a kind of hack patch to at least prevent the removal of essential packages by essentially explicitly whitelisting them. Not ideal, but it should work, because the end sudo apt-get install desiredbuntu-desktop command at the end should put back anything else non-essential that we removed.

Here is a sample output:

sudo apt-get remove accountsservice-ubuntu-schemas appstream apt-offline ark aspell aspell-dictionary aspell-en aspell6a-dictionary blueman brltty-x11 caja-common catfish click dbus-property-service debian-archive-keyring dictionaries-common engrampa engrampa-common espeak exo-utils fontconfig-config fonts-noto-hinted gawk gcc gcc-5 gigolo gir1.2-cheese-3.0 gir1.2-clutter-1.0 gir1.2-gmenu-3.0 gir1.2-gst-plugins-base-1.0 gir1.2-gtkclutter-1.0 gnome-software-common gnome-system-tools gstreamer1.0-audiosink gstreamer1.0-libav gtk-theme-config gtk2-engines-pixbuf hddtemp iamerican ienglish-common indicator-applet indicator-application indicator-messages indicator-network indicator-renderer inxi ispell ispell-dictionary less libaa1 libaccounts-qt5-1 libandroid-properties1 libapparmor1 libasound2-plugins libaspell15 libatkmm-1.6-1v5 libavc1394-0 libavcodec-ffmpeg-extra56 libavcodec-ffmpeg56 libavfilter-ffmpeg5 libavformat-ffmpeg56 libavutil-ffmpeg54 libburn4 libc-dev libc-dev-bin libc6-dev libcaca0 libcaja-extension1 libcanberra-gtk0 libcdparanoia0 libclick-0.4-0 libdbusmenu-gtk3-4 libdv4 libexo-1-0 libfftw3-double3 libfftw3-single3 libflac8 libgarcon-1-0 libglib2.0-bin libgstreamer-plugins-good1.0-0 libgtk2.0-bin libgtkspell0 libgtkspell3-3-0 libido3-0.1-0 libiec61883-0 libindicator3-7 libisofs6 libjack-0.116 libjack-jackd2-0 libkeybinder0 libkf5archive5 libkf5completion5 libkf5configcore5 libkf5configgui5 libkf5configwidgets5 libkf5coreaddons5 libkf5dbusaddons5 libkf5i18n5 libkf5iconthemes5 libkf5jobwidgets5 libkf5kiocore5 libkf5kiofilewidgets5 libkf5kiowidgets5 libkf5parts5 libkf5pty5 libkf5service-bin libkf5service5 libkf5widgetsaddons5 libkf5xmlgui5 libmate-desktop-2-17 libmatemixer0 libmirclient9 liboauth0 libogg0 libonline-accounts-daemon1 liboobs-1-5 libopus0 liborc-0.4-0 libotr5 liboxideqt-qmlplugin libpanel-applet0 libpoppler-glib8 libpurple0 libqt5qml5 libqt5quick5 libqt5quick5-gles libqt5xml5 libraw1394-11 libreoffice-style-elementary libreoffice-style-tango libsamplerate0 libsensors4 libshout3 libsignon-qt5-1 libspeex1 libspeexdsp1 libsystemsettings1 libtag1v5 libtagc0 libtheora0 libthunarx-2-0 libtrust-store2 libtumbler-1-0 libubuntu-download-manager-client1 libubuntuoneauth-2.0-0 libunique-1.0-0 liburl-dispatcher1 libv4l-0 libvisual-0.4-0 libvorbis0a libvorbisenc2 libvpx3 libvte9 libwavpack1 libwebrtc-audio-processing-0 libwnck22 libxfce4panel-2.0-4 libxfce4ui-2-0 libxfce4ui-utils libxfcegui4-4 libxss1 light-locker light-locker-settings lightdm-gtk-greeter lightdm-gtk-greeter-settings linux-libc-dev lm-sensors locate make mate-desktop-common mate-icon-theme mate-media mate-media-common mate-polkit menulibre mesa-utils mlocate mousepad mugshot net-tools obexd-client obexd-server orage p7zip-full packagekit packagekit-backend-aptcc packagekit-tools parole pastebinit pavucontrol pciutils pidgin pidgin-data pidgin-libnotify pidgin-otr pinentry-gtk2 pm-utils powerd pptp-linux python python-argparse python-defusedxml python-lzma python-magic python-psutil python-soappy python-wstools python3-psutil python:any qmenumodel-qml qml-module-qt-labs-folderlistmodel qml-module-qtmultimedia qml-module-qtmultimedia-gles qml-module-qtsysteminfo qml-module-ubuntu-connectivity qml-module-ubuntu-onlineaccounts2 qtdeclarative5-accounts-plugin qtdeclarative5-gsettings1.0 qtdeclarative5-ofono0.2 qtdeclarative5-ubuntu-content1 qtdeclarative5-ubuntu-settings-components qtdeclarative5-ubuntu-ui-toolkit-plugin qtdeclarative5-ubuntu-ui-toolkit-plugin-gles ristretto rtkit signon-ui-service suru-icon-theme system-image-dbus thunar thunar-archive-plugin thunar-media-tags-plugin thunar-volman tumbler tumbler-common ubuntu-keyboard-data ubuntu-snappy-cli ubuntu-system-settings ubuntu-system-settings-online-accounts ubuntu-touch-sounds upstart urfkill usbutils xarchiver xfburn xfce4-appfinder xfce4-cpugraph-plugin xfce4-dict xfce4-indicator-plugin xfce4-mailwatch-plugin xfce4-netload-plugin xfce4-notes xfce4-notes-plugin xfce4-notifyd xfce4-places-plugin xfce4-quicklauncher-plugin xfce4-screenshooter xfce4-session xfce4-settings xfce4-systemload-plugin xfce4-taskmanager xfce4-terminal xfce4-verve-plugin xfce4-volumed xfce4-weather-plugin xfce4-whiskermenu-plugin xfce4-xkb-plugin xfconf xfdesktop4 xfpanel-switch xfwm4 xubuntu-artwork xubuntu-community-wallpapers xubuntu-community-wallpapers-xenial xubuntu-core xubuntu-default-settings xubuntu-desktop xubuntu-docs && sudo apt-get install ubuntu-desktop
aysiu commented 8 years ago

Do you happen to know how apt determines if a package is "essential" or not? For now I just have hard-coded the list, but ideally it'd be nice to dynamically generate that list, in case package names change. Granted, apt and init and mount have been called those names for decades...

I'm closing this for now. If there are any other things you (or someone else) can offer (i.e., hack patch doesn't work, here's how you dynamically generate the list of essential packages), let me know, and I'll re-open.

aysiu commented 8 years ago

I thought this was resolved with the protected_items list, but the suggested packages will still try to remove those items, presumably because they depend on other things set to be remove.

recommends is too aggressive, so I'm changing it to depends. It won't lead to a totally "pure" list to remove, but it should get the bulk out.

aysiu commented 8 years ago

Considering using apt-cache showpkg *buntu-desktop instead of apt-rdepends http://askubuntu.com/a/80659

Not sure how recursive the removal needs to go, especially if apt-rdepends is being buggy on some metapackages, so that purebuntu wants to remove essential packages. Another bonus would be not having to make the user install an extra package just to find out what packages to remove.

When I have the time, I'll try to rewrite using apt-cache showpkg to see how it is...

aysiu commented 8 years ago

Latest rewrite with apt-cache show *buntu-desktop and regex seems to have fixed the major problems. Need more testers to be absolutely sure.