Install latest version of Adobe Flash for Firefox/IceWeacel in Debian Jessie

How to make Firefox in Linux work with latest Flash Player (more than 11.2)

As you probably know, Adobe Flash Player for Linux exists in two variants:

  • NPAPI – for a long time was used by all of the browsers, but now, development of it stopped.
  • PPAPI – exists for a relatively recent time, and can be used by any browser on Chromium engine.

Adobe stopped development of NPAPI Flash Player from 2012, and, because of that, many of Firefox users on Linux have an old version of Flash, stalled on 11.2

However, right now (2015, October), where is flash Plugin v19, and it’s growing.

Solution was provided by Rinat Ibragimov, programmer from Kazan, Russia. He’s wrote a wrapper between NPAPI (firefox’s plugins system) and PPAPI (Chormium’s plugin system). For Firefox this wrapper looks like usual NPAPI plugin, and for the Adobe Flash plugin itself, wrapper looks like browser, that supports PPAPI (like Google Chrome)

Here is hero’s account on github: https://github.com/i-rinat
And here is wrapper’s repository: https://github.com/i-rinat/freshplayerplugin
Installation steps described in repository, but, as I’ve faced some problems, I’ll write full and detailed instruction, for my own use, and, meybe it’ll help somebody else.

So, what is need to be done, to make FireFox or IceWeasel work with latest Flash Plugin’ом in Debian GNU/Linux:

In my case, I need new Flash Player in IceWeasel v34 (It’s a name of Firefox in Debian, it was renamed because of license restricions applied on Firefox logo and trademark).
If you have Firefox, not the IceWeasel – in fact, nothing is different.

By the way, if you interested, where to get last version of IceWeasel (the same as current Firefox version) – you can use instructions from here: http://mozilla.debian.net/, at that page you should just select your Debian version, and which IceWeasel’s version is needed (usually it’s “release”) – and you’ll be given lines for /etc/apt/sources.list that would allow you to get latest version right from repository.

1. Проверить, какая версия флеша установлена у вас и удалить её.
Для этого в FireFox/IceWeasel открываем адрес about:addons и выбираем вкладку “плагины”.
У меня до начала всех операций там была вот такая картина:
Flash 11.2

Как правило, флэш в Debian устанавливается при помощи пакета flashplugin-nonfree. Поэтому удаляем его:
[bash] # aptitude remove flashplugin-nonfree
[/bash]

2. Раздобыть новый флеш.
Сделать это можно одним из следующих способов:

  • Если у вас дистрибутив новее чем Debian Wheezy (например Debian Jessie) – достаточно установить пакет pepperflashplugin-nonfree
  • Также, если у вас подключен репозиторий wheezy-backports, там тоже есть этот пакет
  • Можно скачать этот пакет прямо вот отсюда: https://packages.debian.org/wheezy-backports/pepperflashplugin-nonfree
  • Можно установить Google Chrome, скачав его с сайта Google (у меня Google Chrome уже был установлен, так что это мой вариант)

Если пакет есть в репозитории (у вас Jessie либо подключен Wheezy-backports), тогда:
[bash] # aptitude install pepperflashplugin-nonfree
[/bash]

Если скачали deb-пакет, то:
[bash] # dpkg -i ./pepperflashplugin-nonfree.deb
[/bash]

3. Скомпилировать обёртку FreshPlayerPlugin

Установим необходимые для сборки пакеты (запуск от рута):
Для Debian Wheezy:
[bash] # aptitude install git cmake pkg-config ragel libasound2-dev \
libglib2.0-dev libconfig-dev libpango1.0-dev libgl1-mesa-dev \
libevent-dev libgtk+2.0-dev libgles2-mesa-dev libxrandr-dev \
libpulse-dev libssl-dev libgtk2.0-dev
[/bash] Для Debian Jessie:
[bash] # aptitude install git cmake pkg-config ragel libasound2-dev \
libglib2.0-dev libconfig-dev libpango1.0-dev libgl1-mesa-dev \
libevent-dev libgtk2.0-dev libgles2-mesa-dev libxrandr-dev \
libpulse-dev libssl-dev libgtk2.0-dev libavcodec-dev \
libavformat-dev libavfilter-dev libv4l-dev libv4l-0 \
libva-dev
[/bash]

Клонируем репозиторий с исходными кодами и создаём папку build (все это уже от имени простого пользователя)
[bash] $ cd /tmp
$ git clone https://github.com/i-rinat/freshplayerplugin.git
$ cd freshplayerplugin
$ mkdir build
$ cd build
[/bash]

Скомпилируем плагин-враппер:
[bash] $ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
$ make
[/bash]

После сборки в папке появится файл libfreshwrapper-pepperflash.so который и является плагином для FireFox/IceWeasel и позволяет использовать в них плагин pepperflash.

4. Установим и настроим плагин для FireFox/IceWeasel

Файл libfreshwrapper-pepperflash.so нужно скопировать в папку ~/.mozilla/plugins – она уже должна у вас быть, если FireFox/IceWeasel установлен и хотя-бы раз запущен. Если же нет – можно просто создать её вручную.
Исходя из того, что мы всё еще находимся в папке build:
[bash] $ cp ./libfreshwrapper-pepperflash.so ~/.mozilla/plugins/
[/bash] Также, нужно скопировать конфигурационный файл из папки ../data (там лежит пример) в папку ~/.config
[bash] $ cp ../data/freshwrapper.conf.example ~/.config/freshwrapper.conf
[/bash]

После копирования файла настроек нужно открыть его и проверить параметр pepperflash_path, он должен указывать туда, где лежит ваш плагин pepperflash.

  • Если вы устанавливали google chrome, тогда путь там правильный “/opt/google/chrome/PepperFlash/libpepflashplayer.so”
  • Если вы устанавливали flash с помощью deb-пакета, тогда он должен лежать там же, так как, в соответствии с данной статьёй https://wiki.debian.org/PepperFlashPlayer, пакет просто скачивает стабильную версию Google Chrome, “выковыривает” из неё плагин и кладёт туда, где им сможет пользоваться браузер Chromium (то есть в то же самое место)

Проверьте, действительно ли там если плагин, и если да – всё в порядке.

5. Проверим FireFox/IceWeasel

Поскольку наверняка вы не выключали браузер все это время (инструкцию то как-то надо читать), самое время его перезапустить.
После перезапуска снова открываем about:addons, выбираем там “плагины”, и видим какая версия там написана. В моём случае это аж 15-я версия (возможно это версия не Flash Plugin от Adobe, а версия гугловского плагина, который мог быть как-то допилен командой гугла):
Flash 15

Для проверки откроем какой-нибудь сайт, где требуется Flash Player (но не ютюб, потому что в нём видео будет работать и без Flash, на голом Html5), например vimeo.com, и пробуем открыть какое-нибудь видео.

Комментарии от создателя враппера (и от меня)

  • В плагине в основном работает все, но некоторые функции еще не реализованы (от себя рекомендую время от времени загружать из репозитория очередную версию, компилировать, и заменять ею старую.)
  • Хотя интерфейс PPAPI считается более безопасным за счёт встроенной “песочницы” (именно поэтому в Google Chrome отказались от NPAPI в пользу PPAPI), само API по умолчанию не включает “песочницу”, но позволяет использовать механизмы песочницы при реализации собственных плагинов. Данная реализация никакой песочницы не содержит, так что безопасность тут не выше чем в обычном NPAPI-плагине
  • Все изестные проблемы перечислены на странице https://github.com/i-rinat/freshplayerplugin/blob/master/doc/known-issues.md
  • Для Ubuntu существует PPA (пользовательский репозиторий) содержащий уже собранные пакеты freshplayerplugin, и он поможет устранить этап компиляции плагина вручную. Гуглится он по запросу “Install fresh player plugin in ubuntu via ppa”. Сами deb-пакеты вот http://ppa.launchpad.net/nilarimogard/webupd8/ubuntu/pool/main/f/freshplayerplugin/, я его не пробовал, если хотите – используйте на свой страх и риск.

So, what do you think ?