Sunday, June 26, 2011

I hate to say it, but one of the first things you need to do in Debian is remove Gnash

It’s been a long time since I did a new Debian Squeeze installation, and I was just reminded about one essential step needed to make a functional desktop.

I’ve been running my Squeeze LXDE system today, and all of a sudden the CPU was pegged at 100 percent during a Firefox/Iceweasel session.

I opened up a terminal and took a look. Five Gnash processes were doing all of the damage.

Normally I’d enthusiastically support something like Gnash, a free alternative to Flash, but not when it brings my system to its virtual knees.

As before, I methodically killed every Gnash process, brought the machine back to the living and then removed Gnash. Unfortunately (or not) it took some 60 packages with it. Here is the terminal session:

# aptitude remove gnash
The following packages will be REMOVED:
gnash
0 packages upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
Need to get 0 B of archives. After unpacking 512 kB will be freed.
The following packages have unmet dependencies:
browser-plugin-gnash: Depends: gnash (= 0.8.8-5) but it is not going to be installed.
The following actions will resolve these dependencies:

Remove the following packages:
1) browser-plugin-gnash

Accept this solution? [Y/n/q/?] y
The following packages will be REMOVED:
browser-plugin-gnash{a} freepats{u} gnash gnash-common{u}
gstreamer0.10-ffmpeg{u} gstreamer0.10-fluendo-mp3{u}
gstreamer0.10-plugins-bad{u} gstreamer0.10-plugins-base{u} libass4{u}
libavcodec52{u} libavformat52{u} libavutil49{u}
libboost-date-time1.42.0{u} libboost-thread1.42.0{u} libcdaudio1{u}
libcdparanoia0{u} libcelt0-0{u} libdc1394-22{u} libdca0{u}
libdirac-encoder0{u} libdirectfb-1.2-9{u} libdvdnav4{u} libdvdread4{u}
libenca0{u} libexempi3{u} libfaad2{u} libfftw3-3{u} libflac8{u}
libflite1{u} libgif4{u} libgme0{u} libgsm1{u} libgtkglext1{u}
libiptcdata0{u} libjack-jackd2-0{u} libkate1{u} libmimic0{u} libmms0{u}
libmodplug1{u} libmpcdec6{u} libmusicbrainz4c2a{u} libofa0{u}
liboil0.3{u} libopenspc0{u} liborc-0.4-0{u} libpostproc51{u}
libraw1394-11{u} libschroedinger-1.0-0{u} libsdl1.2debian{u}
libsdl1.2debian-alsa{u} libslv2-9{u} libsndfile1{u} libsoundtouch1c2{u}
libspeex1{u} libsvga1{u} libswscale0{u} libtheora0{u} libts-0.0-0{u}
libvisual-0.4-0{u} libvisual-0.4-plugins{u} libvorbisenc2{u} libvpx0{u}
libwildmidi1{u} libzbar0{u} tsconf{u}
0 packages upgraded, 0 newly installed, 65 to remove and 0 not upgraded.
Need to get 0 B of archives. After unpacking 109 MB will be freed.
Do you want to continue? [Y/n/?] y
(Reading database … 67592 files and directories currently installed.)
Removing browser-plugin-gnash …
Removing freepats …
Removing gnash …
Removing gnash-common …
Removing gstreamer0.10-ffmpeg …
Removing gstreamer0.10-fluendo-mp3 …
Removing gstreamer0.10-plugins-bad …
Removing gstreamer0.10-plugins-base …
Removing libass4 …
Removing libavformat52 …
Removing libavcodec52 …
Removing libswscale0 …
Removing libpostproc51 …
Removing libavutil49 …
Removing libboost-date-time1.42.0 …
Removing libboost-thread1.42.0 …
Removing libcdaudio1 …
Removing libcdparanoia0 …
Removing libcelt0-0 …
Removing libdc1394-22 …
Removing libdca0 …
Removing libdirac-encoder0 …
Removing libsdl1.2debian …
Removing libsdl1.2debian-alsa …
Removing libdirectfb-1.2-9 …
Removing libdvdnav4 …
Removing libdvdread4 …
Removing libenca0 …
Removing libexempi3 …
Removing libfaad2 …
Removing libofa0 …
Removing libfftw3-3 …
Removing libsndfile1 …
Removing libflac8 …
Removing libflite1 …
Removing libgif4 …
Removing libgme0 …
Removing libgsm1 …
Removing libgtkglext1 …
Removing libiptcdata0 …
Removing libjack-jackd2-0 …
Removing libkate1 …
Removing libmimic0 …
Removing libmms0 …
Removing libmodplug1 …
Removing libmpcdec6 …
Removing libmusicbrainz4c2a …
Removing liboil0.3 …
Removing libopenspc0 …
Removing libschroedinger-1.0-0 …
Removing liborc-0.4-0 …
Removing libraw1394-11 …
Removing libslv2-9 …
Removing libsoundtouch1c2 …
Removing libspeex1 …
Removing libsvga1 …
Removing libtheora0 …
Removing libts-0.0-0 …
Removing libvisual-0.4-plugins …
Removing libvisual-0.4-0 …
Removing libvorbisenc2 …
Removing libvpx0 …
Removing libwildmidi1 …
Removing libzbar0 …
Removing tsconf …
Processing triggers for man-db …
Processing triggers for shared-mime-info …
Processing triggers for install-info …

#

———————————–

Nice, huh? I haven’t set up any multimedia on this system yet, so I imagine that I’ll bring at least a few of these packages back in the future.

This is one of the cautionary tales of Debian Stable: You can be stuck with a package that doesn’t work well at all yet is included in the default installation. As much as I’d like Gnash to work, it too often spawns a half-dozen processes that never stop and make your machine unusable while giving you little or nothing in return in terms of functionality.

Something like this is OK on an install-it-yourself, experimental basis. But it should in no way be included in the default installation. It’s the antithesis of Stable.

So you see there’s often a dark side to the never-changing aspects of Debian Stable.

Possible solutions for this issue are a newer Gnash from Backports, Sid or Wheezy, using the nonfree Flash plugin (which I usually do), or removing Gnash and not using a Flash equivalent at all (which is where I’m at right now and may stay on this particular machine).