From FedoraProject

Revision as of 16:58, 10 June 2011 by Pgueckel (Talk | contribs)

Jump to: navigation, search

This page contains information on Flash, a proprietary format for delivering audio and video content, primarily over the Internet.


Flash is non-free/proprietary software

Adobe's Flash plugin cannot be included in Fedora because it is not free/libre and open source software. Adobe does release a version of the Flash plugin for Linux, and this can be used in Firefox, Konqueror and other popular Internet browsers. When Adobe releases a newer version of the Linux Flash plugin, it makes packages available for Fedora, but Fedora cannot include Adobe's plugin as long as it is unavailable as free and open source software.

Free alternatives to Adobe Flash
There is a free and open source alternative called Gnash available in Fedora's package repositories. Gnash can play flash videos but the audio portion of Flash is often under the MP3 format which is patent encumbered. Since Gnash uses Gstreamer, you can get additional codecs from other third party repositories but Fedora unfortunately cannot include them. There is also another free and open source alternative called Lightspark. Scroll below for more details on installing Gnash. There are other open alternatives to Flash itself, including the patent unencumbered and free WebM, Ogg Theora video and Ogg Vorbis audio formats. Fedora has complete support for such open formats, and Fedora includes a version of Firefox web browser that plays Ogg and WebM (Firefox 15 onwards) files directly, without any need of third party and proprietary browser plugins.

YouTube and WebM support

Google has recently open sourced the VP8 video format and combined it with Ogg Vorbis audio and an adaptation of the Matroska container, creating a new format for free and open video and audio called WebM. YouTube is switching over to using WebM extensively and Fedora has embraced this format as well.

Updates to the GStreamer multimedia framework in Fedora 13 and Fedora 12 enable users to play many YouTube videos directly without Flash via browsers such as Epiphany and Midori, which use Gstreamer. Fedora 12 users also need the webkitgtk update.

Once you have the updates installed, to enable support for it in YouTube, go to http://youtube.com/html5 and click on "Join the HTML5 Beta" link in the bottom of that page. Note that all videos are not available in WebM format yet, but this is expected to happen over time. Here is a sample video for testing. Fedora 14 and above has more extensive support for WebM by default.

Enabling Flash plugin

Adobe offers several methods to install their 32-/64-bit Flash 10 plugins. In general, the YUM version is preferred, since it allows the plugin to be updated automatically through Fedora's normal update mechanism. The YUM version simply installs the repository configuration files, after which you must install the Flash plugin separately.

To begin, refer to the Adobe site at http://get.adobe.com/flashplayer/. Select YUM for Linux to download, and confirm.

This will download the adobe-release-i386-1.0-1.noarch.rpm file. Installation of the repository file adobe-linux-i386.repo to /etc/yum.repos.d/ can be performed by installing the .rpm file. Issue the following command within the directory where you have downloaded the repository rpm file.

su -c 'rpm -ivh adobe-release-i386-1.0-1.noarch.rpm'

The .rpm file also copies the adobe General Public Key (GPG key) to /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux but does not import it. To import the key, type:

su -c 'rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux'

The system is now ready to fetch rpm packages from adobe using yum. To verify this, take a look at the /etc/yum.repos.d/adobe-linux-i386.repo file that was just created. You should see something similar to the following:

name=Adobe Systems Incorporated

Notice that the file contains the URL where the packages are located, whether or not the repository should be enabled, whether rpm should check downloaded packages from adobe against the GPG key, and the location of the key itself.

If getting the tar.gz version of either the 32-bit or 64-bit plugin, unpack it and copy it to /usr/lib/mozilla/plugins or /usr/lib64/mozilla/plugins. Make sure that its ownership is root:root and that permissions are set to -rwxr-xr-x. The 64-bit alpha is currently only available in a .tar.gz version; see bottom.

Now proceed to either the instructions for 32-bit (i386) platforms or 64-bit (x86_64) platforms.

On 32-bit Fedora

After completing the Adobe repository configuration, run the following command to install the Flash plugin and ensure sound is enabled:

su -c 'yum install nspluginwrapper alsa-plugins-pulseaudio flash-plugin'

You may see messages indicating that some of these packages are already installed. This is not a problem. (In particular, a default graphical install of 32-bit Fedora already includes both nspluginwrapper and alsa-plugins-pulseaudio.)

To 'wrap' the plugin, as root:

cd /usr/lib/mozilla/plugins mozilla-plugin-config -i

In /usr/lib/mozilla/plugins-wrapped, you should see a wrapped version of the flash plugin.

Next, you should check the plugin.

On 64-bit Fedora

32 bit wrapped version

These instructions will install a 32-bit plugin that will work with the 64-bit browser by being "wrapped" with nspluginwrapper.

After completing the Adobe repository configuration, run the following two commands, in the order indicated, to install the Flash plugin and ensure sound is enabled. The first command will automatically pull in the 32-bit version of libstdc++, which will prevent the Adobe Reader from being pulled in as a dependency when flash-plugin is installed (see this thread for an explanation).

The Adobe repository is only needed when running the second command. If the Adobe repository configuration is completed after running the first command, then omit the --disablerepo option.

For Fedora 10:

su -c 'yum install nspluginwrapper.{x86_64,i386} alsa-plugins-pulseaudio.i386 --disablerepo=adobe-linux-i386'
su -c 'yum install flash-plugin'

For Fedora 11:

su -c 'yum install nspluginwrapper.{x86_64,i586} alsa-plugins-pulseaudio.i586 --disablerepo=adobe-linux-i386'
su -c 'yum install flash-plugin'

For Fedora 12 or later:

su -c 'yum install nspluginwrapper.{x86_64,i686} alsa-plugins-pulseaudio.i686 --disablerepo=adobe-linux-i386'
su -c 'yum install flash-plugin'

You may see messages indicating that some of these packages are already installed. This is not a problem. (In particular, a default graphical install of 64-bit Fedora already includes nspluginwrapper.x86_64.)

Next, you should check the plugin.

64-bit Preview Release

Adobe also has a Preview Release version of a 64-bit plugin.

Warning (medium size).png
64-bit plugin may be subject to security issues
The 64-bit plugin, as a beta, is updated less frequently than the 32-bit plugin, and Adobe does not commit to issuing security updates for it. It may happen, and in several cases already has happened, that there is a known, serious vulnerability in Flash, and an update is issued to fix the 32-bit plugin, but not the 64-bit plugin. If you are going to install the Adobe plugin at all, it is highly recommended to keep a close eye on security alerts, and seriously consider running the 32-bit plugin wrapped (see above) rather than the 64-bit plugin.
No automatic security updates for tarball installs
If the .tar.gz install method is used, you must manually check the Adobe site for new releases.
Broken sound with 64-bit plugin in Fedora 14
There is a known bug in the 64-bit Flash plugin which results in distorted sound when using it on Fedora 14. Please see this common bugs entry for more details. The recommended workaround is to use the 32-bit plugin instead, which is also recommended for security reasons (see above).

To install the Adobe tar.gz file, you will need to do the following:

First, download the .tar.gz version from Adobe: http://labs.adobe.com/downloads/flashplayer10_square.html

Next, use "tar -xvf" to extract libflashplayer.so and put it in either in /usr/lib64/mozilla/plugins/ or ~/.mozilla/plugins/. For example:

tar -xvf flashplayer10_2_p3_64bit_linux_111710.tar.gz

Followed by:

su -c 'mv libflashplayer.so /usr/lib64/mozilla/plugins'

If SELinux is enabled (it is by default), please restore the context with:

su -c 'restorecon /usr/lib64/mozilla/plugins/libflashplayer.so'

You may also have to register the plugin with the nspluginwrapper tool:

/usr/lib64/nspluginwrapper/npconfig -i /usr/lib64/mozilla/plugins/libflashplayer.so

Next, you should check the plugin.

Third Party Repository

Alternately, a third-party yum repository for the 64-bit Adobe Flash plugin is available from community member leigh123linux. The forum thread for this effort is here. To install the yum repository, one would issue:

su -c 'yum localinstall --nogpgcheck http://www.linux-ati-drivers.homecall.co.uk/flashplayer.x86_64/flash-release-1-2.noarch.rpm'

Be sure to check the GPG key fingerprint against a trusted source. It is assumed this repository will post updates as they become available, but as with any repo be aware you are delegating your system security to a third party. To install the flash plugin, remove old versions (especially i586) if necessary, then install from the repository:

su -c 'yum remove flash-plugin'
su -c 'yum install flash-plugin'

Checking the plugin

After the installation, exit all copies of Firefox and start it again to enable the plugin. Then type the following text in the Firefox address bar:


A section similar to the following should appear:


This information tells you that the Adobe Flash plugin has been successfully installed.

Also check the Adobe Flash Player test page

Installing the plugin on Chrome

Follow all of the instructions above. Then:

- create a Chrome plugin folder:

su -c mkdir /opt/google/chrome/plugins

- on 32-bit, create a symbolic link that tells Chrome how to find the 32-bit plugin:

su -c ln -s /usr/lib/mozilla/plugins/libflashplayer.so /opt/google/chrome/plugins/libflashplayer.so

- on 64-bit, create a symbolic link that tells Chrome how to find the 64-bit plugin:

- run Mozilla Firefox once so that it creates /usr/lib64/mozilla/plugins-wrapped/nswrapper_32_64.libflashplayer.so

su -c ln -s /usr/lib64/mozilla/plugins-wrapped/nswrapper_32_64.libflashplayer.so /opt/google/chrome/plugins/nswrapper_32_64.libflashplayer.so

- Exit all Chrome windows and restart Chrome.

- In the Chrome address bar, type "about:plugins" to check whether the plugin loaded. You may have to re-run Chrome with the --enable-plugins command line switch to force Chrome to re-scan its plugins folder.

Installing the plugin on Chromium

Follow all of the instructions in the Enabling Flash Plugin section. Then:

- on 32-bit, create a symbolic link that tells Chromium how to find the 32-bit plugin:

su -c ln -s /usr/lib/mozilla/plugins/libflashplayer.so /usr/lib/chromium-browser/plugins/libflashplayer.so

- on 64-bit, create a symbolic link that tells Chromium how to find the 64-bit plugin:

- run Mozilla Firefox once so that it creates /usr/lib64/mozilla/plugins-wrapped/nswrapper_32_64.libflashplayer.so

su -c ln -s /usr/lib64/mozilla/plugins-wrapped/nswrapper_32_64.libflashplayer.so /usr/lib64/chromium-browser/plugins/nswrapper_32_64.libflashplayer.so

- Exit all Chromium windows and restart Chromium.

- In the Chromium address bar, type "about:plugins" to check whether the plugin loaded. You may have to re-run Chromium with the --enable-plugins command line switch to force Chromium to re-scan its plugins folder.

Troubleshooting and notes

SELinux problems

In some cases, nspluginwrapper produces SELinux AVC errors, some of which may prevent viewing Flash content. Changing the relevant SELinux boolean may resolve this problem, but eliminates a great deal of additional security when using nspluginwrapper. To make the change, run the following command:

su -c 'setsebool -P allow_unconfined_nsplugin_transition=0'

libflashsupport deprecated

The libflashsupport package is no longer needed with Flash 10 and has been removed from Fedora. The Flash plugin now calls the appropriate ALSA functions directly, and in the default configuration ALSA delivers sound to PulseAudio.

Sound distorted in Fedora 14

A recent change to glibc in Fedora 14 has exposed a bug in the 64 bit Flash plugin that causes sound distortion on some videos. Discussion of what to do about it is ongoing as of 2010-11-17. For details and workarounds, see bug 638477.

After Fedora upgrade/preupgrade

To regenerate wrapper previously generated by nspluginwrapper you need to remove the old one:

su -c 'rm /usr/lib64/mozilla/plugins-wrapped/nswrapper_32_64.libflashplayer.so'

Please, restart your browser after this.

Installing Gnash

Fedora includes a free and open source Flash player called Gnash. Gnash is very modular and includes plugins for Mozilla and Konqueror as well as a desktop player. You likely want the Mozilla plugin.

Use PackageKit or run the following as root user

yum remove nspluginwrapper
yum install gnash-plugin

If you use Konqueror as your web browser,

 yum install gnash-klash 

If you would like to have a desktop flash player,

 yum install gnash 

Note that Flash often relies on MP3 for audio and Fedora cannot include support for it since it is a patent encumbered format. Gnash uses the Gstreamer multimedia framework and hence additional multimedia codecs can be installed separately. Third party repositories might provide such codecs.