Bug 379721

Summary: phonon4qt5-backend-vlc is marked as a dependency of Plasma, so trying to remove VLC removes Plasma and breaks your desktop
Product: [KDE Neon] neon Reporter: Stuart K. Smith <stuartksmith>
Component: generalAssignee: Neon Bugs <neon-bugs>
Status: RESOLVED FIXED    
Severity: critical CC: charles.v.wright, emailmeat, gabriellasarosaleze, greygeek77, jr, nate, neon-bugs, sitter
Priority: VHI    
Version: unspecified   
Target Milestone: ---   
Platform: Neon   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Stuart K. Smith 2017-05-11 11:39:05 UTC
Attempting to remove vlc from KDEneon results in removal of entire plasma desktop. I found the problematic package is "phonon4qt5-backend-vlc" which takes everything else with it.

If, prior to removing vlc, you first install "phonon4qt5-backend-gtreamer" then you can remove vlc and it's depends successfully. 

This requirement to have either phonon4qt5-backend-vlc or -gstreamer is not present in Kubuntu 16.04. Either the dependencies are incorrect or at a minimum, the gstreamer package should be installed as fall-back if one wants to remove vlc.
Comment 1 Jerry L Kreps 2017-05-11 11:52:35 UTC
I am running a fully updated Neon User Edition.
As Oshunluver says:
:~$ apt-cache depends phonon4qt5-backend-vlc 
phonon4qt5-backend-vlc
Depends: vlc
Depends: libc6
Depends: libphonon4qt5-4
Depends: libqt5core5a
Depends: libqt5gui5
Depends: libqt5widgets5
Depends: libstdc++6
Depends: libvlc5
Depends: libvlccore8
Depends: phonon4qt5

:~$ apt-cache rdepends phonon4qt5
phonon4qt5
Reverse Depends:
plasma-workspace
plasma-desktop
phonon4qt5-backend-vlc
phonon4qt5-backend-gstreamer
okular
marble-plugins
libphonon4qt5-dev
libokular5core7
libmarblewidget-qt5-27
libkf5notifyconfig5
libkf5notifications5
libkf5mailcommon5
libkf5khtml5
libkf5compactdisc5
kwordquiz
ktuberling
korganizer
konversation
konversation
konversation
klettres
kio-extras
kalarm
gwenview
dragonplayer
dolphin
calligrastage
calligrastage
calligra-libs
calligra-libs
blinken
libphonon4qt5-dev

And there goes the desktop.
Comment 2 vinnywright 2017-05-11 21:01:51 UTC
confirming @hear

vinny@vinny-Bonobo-Extreme:~$ lsb_release -a
No LSB modules are available.
Distributor ID: neon
Description:    KDE neon LTS User Edition 5.8
Release:        16.04
Codename:       xenial

vinny@vinny-Bonobo-Extreme:~$ sudo apt-get -s remove --purge vlc

<snip>
The following additional packages will be installed:
  gstreamer1.0-pulseaudio libutempter0 phonon-backend-gstreamer phonon-backend-gstreamer-common xterm
Suggested packages:
  gstreamer1.0-plugins-ugly phonon4qt5-backend-gstreamer xfonts-cyrillic
The following packages will be REMOVED:
  bluedevil* dolphin* frameworkintegration* gwenview* kaccounts-providers* kde-cli-tools* kde-config-gtk-style* kde-config-screenlocker*
  kde-spectacle* kdeconnect* kdialog* kgamma5* khotkeys* kinfocenter* kio* kio-extras* kmenuedit* konsole* konsole-kpart* krusader* kscreen*
  ksshaskpass* ksysguard* kwalletmanager* kwin* kwin-addons* kwin-common* kwin-data* kwin-x11* kwrited* libkf5kdelibs4support5*
  libkf5kdelibs4support5-bin* libkf5khtml-bin* libkf5khtml5* libkf5newstuff5* libkf5newstuffcore5* libkf5notifications5* libkf5notifyconfig5*
  libkf5plasma5* libkf5plasmaquick5* libkf5purpose5* libkf5purposewidgets5* libkf5runner5* libkf5wallet-bin* libkf5wallet5* libkscreenlocker5*
  libkwalletbackend5-5* libkwin4-effect-builtins1* libokular5core7* libpowerdevilcore2* libweather-ion7* milou* muon-notifier* muon-updater*
  neon-desktop* okular* phonon-backend-vlc* phonon4qt5* phonon4qt5-backend-vlc* plasma-dataengines-addons* plasma-desktop* plasma-discover*
  plasma-discover-private* plasma-discover-updater* plasma-framework* plasma-integration* plasma-nm* plasma-pa* plasma-runners-addons*
  plasma-wallpapers-addons* plasma-widgets-addons* plasma-workspace* powerdevil* print-manager* qml-module-org-kde-kirigami*
  qml-module-org-kde-newstuff* qml-module-org-kde-purpose* qml-module-org-kde-runnermodel* sddm-theme-breeze* systemsettings* user-manager* vlc*
The following NEW packages will be installed:
  gstreamer1.0-pulseaudio libutempter0 phonon-backend-gstreamer phonon-backend-gstreamer-common xterm
0 upgraded, 5 newly installed, 82 to remove and 0 not upgraded.

<snip>

it seams as though apt will add the missing  phonon-backend-gstreamer ,,,,
But still removes your desktop .

VINNY
Comment 3 Jonathan Riddell 2017-05-23 09:45:29 UTC
Much KDE software depends on Phonon which needs one of its backends installed to function.  If you remove that it's entirely reasonable that apt wants to remove the software that needs it.
Comment 4 Stuart K. Smith 2017-05-23 18:58:57 UTC
(In reply to Jonathan Riddell from comment #3)
> Much KDE software depends on Phonon which needs one of its backends
> installed to function.  If you remove that it's entirely reasonable that apt
> wants to remove the software that needs it.

I completely understand and agree, but I don't see this as the central issue. The problem as I see it is the lack of a fail-back to the gstreamer backend in the event the user wants to remove VLC. As it stands, removing VLC is impossible unless the user knows to install the gstreamer backend prior to attempting the removal. This requirement is not obvious to the uninitiated and is not apparent by the error messages created by the attempt.

IMO, this situation could be easily resolved in one of these ways:

1) The removal of phonon4qt5-backend-vlc triggers the installation of phonon4qt5-backend-gstreamer - and vice-versa, thus preventing the unintentional breakage of the entire system. 

2) Both backends installed by default, thus allowing VLC to be removed without incident.

3) VLC not be installed by default at all, instead having gtreamer be the default backend.

Again, IMO #1 would be the most beneficial as it provides protection from "silly user tricks."

Interesting points to note: 
**Removing the gstreamer backend (whilst the VLC backend is not present) automatically installs the VLC backend. It's only when you attempt the reverse as stated above that the removal of KDE is at risk.
**Even VLC does not have the VLC backend as a dependency. Removing the VLC backend on it's own does not force the removal of VLC.
Comment 5 Christoph Feck 2017-05-27 01:12:45 UTC
Does solution #1 from comment #4 work on a regular Kubuntu installation? This solution seems natural, and it is solved in openSUSE by using a virtual -backend package, that can be satisfied by either -vlc or -streamer backends.
Comment 6 Christoph Feck 2017-06-05 22:19:56 UTC
*** Bug 380513 has been marked as a duplicate of this bug. ***
Comment 7 KDE Neon user 2017-06-13 17:04:10 UTC
Two days ago I was able to remove VLC, and KDE Neon automatically fixed it. Today on a clean install from a fresh downloaded ISO, it attempted to remove Plasma and all default programs as reported in this issue.

The workaround of manually installing phonon4qt5-backend-gstreamer before removing VLC worked.
Comment 8 Nate Graham 2018-03-04 02:16:30 UTC
Not sure this bug should be marked RESOLVED INVALID. It seems that from a normal user perspective, the issue persists.

Can we investigate substituting the gstreamer backend when the phonon backend is requested to be removed? It's really not a great user experience to have your system blown up when you uninstall a common and popular piece of software like VLC.
Comment 9 Harald Sitter 2019-02-07 15:05:03 UTC
It was invalid because vlc's debian packaging was rubbish which is why the package relationships were as awkward as they were. It's now a valid bug because on 18.04 the vlc packaging is better but our backend packaging is rubbish.

Will be fixed in user edition soon and is already fixed in dev editions.