Tag Archive: firefox

Ubuntu 14.04: Pepper Flash Player für fast alle Browser mit Wrapper

Flash Player (c) by Adobe

Pepper Flash Player ist ein von Google bereitgestellter Flash-Player Fork, der im Gegensatz zur offiziellen Version, viele Neuerungen schon im Vorfeld auf das Linux-System portiert.
„freshplayerplugin“ ist weiterhin ein neuer, von Rinat Ibragimov bereitgesteller Wrapper, um auch außerhalb der Chrome(..ium) Landschaft in den Genuss eines nicht-ganz-so-schlechten Flash Players zu kommen.
Üblicherweise arbeiten Browser mit der Netscape Plugin API (NPAPI), wobei Google dieses Interface zu Pepper Plugin API (PPAPI) modifizierte, primär um mehr Sicherheit zu gewährleisten.
Der Wrapper versucht nun als NPAPI Plug-In eine Schnittstelle zum Pepper Flash Player darzustellen.

Aber Vorsicht: Der Wrapper befindet sich in einem sehr frühen Entwicklungsstadium!

Mit einigen Webseiten kommt der Helfer noch nicht zurecht, das betrifft ebenso YouTube. Dieser Umstand ist jedoch zu verkraften, da die Zukunft ohnehin HTML5 gehört.
Google Chrome und Chromium benötigen diesen Wrapper nicht und unterstützen das Plug-In nativ. An diesen Stellen sind logischerweise keine Probleme zu erwarten!

Ich missbrauche diesen Artikel gleichzeitig etwas als Installationsanleitung für die jeweiligen Browser.

Changelog

  • 28. Juni 2014 – Abhängigkeiten erweitert nach Update
  • 03. Juni 2014 – Abhängigkeiten erweitert nach Update
  • 23. Mai 2014 – Abhängigkeiten erweitert nach Update

ChromeGoogle Chrome für Linux benötigt keinen dieser Schritte. Das Plug-In ist bereits im Vorfeld installiert und aktiviert.

Vorbereitung für alle Browser, gleichzeitig Installation für Chromium

Zuerst installiere ich das Plug-In. Hierzu ist kein PPA notwendig, das Paket befindet sich bereits in den offiziellen Paket-Quellen:

sudo apt-get install pepperflashplugin-nonfree

Da der Pepper Flash Player lediglich mit Google Chrome ausgeliefert wird und seine Version von der des Chrome Browsers abhängig ist, bietet das Tool „update-pepperflashplugin-nonfree“ die Möglichkeit, aus den verschiedenen Google Chrome Release Channels das Plug-In zu extrahieren. Ohne Angabe verwendet das Tool (und der Installer) die stabile Version, was zu empfehlen ist. Nur zur Vollständigkeit hierfür die Befehle:

sudo update-pepperflashplugin-nonfree --install
sudo update-pepperflashplugin-nonfree --install --beta --unverified
sudo update-pepperflashplugin-nonfree --install --unstable --unverified

Zur Deinstallation des Plug-Ins (jedoch nicht des Installers selber!):

sudo update-pepperflashplugin-nonfree --uninstall
Die Installation des Plug-Ins erfolgt in das Verzeichnis „/usr/lib/pepperflashplugin-nonfree/libpepflashplayer.so“

Um den Pepper Flash Player stets aktuell zu halten, empfiehlt es sich einen täglichen Cronjob anzulegen:

crontab -e

Am Ende einfügen:

0 0 * * * /usr/sbin/update-pepperflashplugin-nonfree --install

Der Installer arbeitet still, Fehler werden hingegen ausgegeben.

Chromium BrowserDer Installer modifiziert die Datei „/etc/chromium-browser/default“, womit Chromium an dieser Stelle bereits entsprechendes Flag beim Start zum Laden von Pepper Flash mitgegeben wird. Weitere Schritte sind für Chromium nicht notwendig, da dieser nativ mit Pepper Flash arbeiten kann!

Bereitstellung des Wrappers „freshplayerplugin“

Der etwas fummelige Teil; aber kein Sorge, die Schritte sind allesamt auch für unerfahrenere Benutzer zu meistern.
Bevor die Installation beginnt, benötigt Ubuntu einige Abhängigkeiten:

sudo apt-get install build-essential git cmake pkg-config libglib2.0-dev libasound2-dev libx11-dev libgl1-mesa-dev liburiparser-dev libcairo2-dev libpango1.0-dev libconfig-dev libpangocairo-1.0-0 libpangoft2-1.0-0 libfreetype6-dev libgtk2.0-dev libglu1-mesa-dev libegl1-mesa-dev libgles2-mesa-dev libevent-dev libevent-pthreads-*

Sind diese installiert, wird der Wrapper aus dem Git-Repository auf die lokale Festplatte nach „~/build“ geklont:

mkdir ~/build
cd ~/build
git clone https://github.com/i-rinat/freshplayerplugin.git

Eine kleine Änderung an der Datei „src/np_entry.c“ nehme ich vorab vor, um auf den korrekten Pfad des Pepper Flash Plug-Ins zu verweisen:

sed -i '/define PPFP_PATH/c\#define PPFP_PATH "/usr/lib/pepperflashplugin-nonfree/libpepflashplayer.so"' ~/build/freshplayerplugin/src/np_entry.c
Ein symbolischer Link des Plug-Ins nach „/opt/google/chrome/PepperFlash/libpepflashplayer.so“ wäre ebenso möglich

Nun zur Umsetzung des Wrappers:

cd ~/build/freshplayerplugin && mkdir build
cd build
cmake ..
make

Im Verzeichnis „~/build/freshplayerplugin/build“ befindet sich nun die Datei „libfreshwrapper.so“ – unser Wrapper.

Installation des Wrappers in andere Browsern

Der soeben erstellte Wrapper, kann nun als gewöhnliches NPAPI Plug-In in anderen Browsern aktiviert werden.

FirefoxBeispielsweise Firefox:
 
 
 

sudo cp ~/build/freshplayerplugin/build/libfreshwrapper.so /usr/lib/mozilla/plugins/

Pepper Flash Player in Firefox
Pepper Flash Player in Firefox

Die Speicherorte für Plug-Ins unterscheiden sich von Browser zu Browser. Hierzu im Notfall Google anstrengen, um den korrekten Pfad herauszufinden.

Script: Aktuellste Firefox Aurora Version installieren

Gerne teile ich mit euch ein Bash-Script, welches die aktuelle Version des Firefox Aurora Browsers in deutscher Sprache ermittelt, herunterlädt und installiert. Aurora ist anzusiedeln zwischen Nightly und Beta.

Changelog

  • 25. Mär – Neueste Version auswählen, wenn mehrere verfügbar sind

Als Zielverzeichnis für die Installation wähle ich „/opt/aurora“, zudem erstellt das Script einen Anwendungsstarter in „/usr/share/applications“. Profile werden wie üblich im Heimverzeichnis des jeweiligen Benutzers via „.mozilla/“ gespeichert.

Aurora
Aurora
Vorab wird die Architektur des Systems ermittelt. Eine alte Installation wird unter Angabe von Datum und Zeit in „/opt“ gesichert.

Installation

Das Script an beliebigem Ort erstellen:

nano aurora_installer.sh

Und folgenden Inhalt einfügen:

#!/bin/bash
if [[ $UID -ne 0 ]]; then
        echo "$0 muss als \"root\" ausgeführt werden!"
        exit 1
fi
ISCURL=`which curl`
if [ -z $ISCURL ]; then
        echo "Bitte \"curl\" installieren!"
        exit 1
else
AURORA_TEMPRDIR='http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora-l10n/?C=M;O=D'
AURORA_RDIR='http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora-l10n/'

arch=$(uname -m)
 
echo -ne "Neueste Version suchen...\t\t\t"
if [ "$arch" == 'x86_64' ]; then
        AURORA_TNAME=`curl -s $AURORA_TEMPRDIR | grep -m1 -o '"firefox.*de\.linux-x86_64\.tar\.bz2"' | tr -d '"'`
else
        AURORA_TNAME=`curl -s $AURORA_TEMPRDIR | grep -m1 -o '"firefox.*de\.linux-i686\.tar\.bz2"' | tr -d '"'`
fi
echo -e "\e[00;32m OK\e[00m"
AURORA_RTARGET=$AURORA_RDIR$AURORA_TNAME
LINK_STATUS=$(curl -s --head -w %{http_code} $AURORA_RTARGET -o /dev/null)
if [ "$LINK_STATUS" == '200' ] && [ ! -z $AURORA_TNAME ]; then
        echo "Herunterladen und entpacken von $AURORA_TNAME..."
        [ ! -d "/opt/aurora/" ] || mv /opt/aurora /opt/aurora_bak_`date +%e%m%y_%H%M`
        cd /tmp/ && curl -# -o- $AURORA_RTARGET | tar xj
        echo -ne "Installieren und aufräumen...\t"
        cat > /usr/share/applications/firefox-aurora.desktop << "EOF"
[Desktop Entry]
Version=1.0
Name=Firefox Aurora
Comment=Browse the World Wide Web
GenericName=Web Browser
Exec=/opt/aurora/firefox -no-remote %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=/opt/aurora/browser/icons/mozicon128.png
Categories=GNOME;GTK;Network;WebBrowser;
StartupWMClass="Navigator","Firefox"
StartupNotify=true
EOF
        cp -r ./firefox /opt/aurora/ && rm -r ./firefox/
        chown -R root:users /opt/aurora
        echo -e "\e[00;32m OK\e[00m"
        echo "Firefox Aurora wurde installiert!"
        echo "Falls der Starter nicht erscheint, bitte \"unity --replace &\" ausführen."
        echo "Falls vorhanden, wurde eine alte Version in \"/opt\" gesichert."
else
        echo "URL ungültig: $AURORA_RTARGET"
fi
fi

Usage: # ./aurora_installer.sh
Vorab als ausführbar markieren: chmod +x aurora_installer.sh