Tag Archives

2 Articles
Firefox menggunakan PepperFlash

Firefox menggunakan PepperFlash

Adobe Flash yang dipasang untuk Mozilla Firefox dan seluruh peramban yang mendukung NPAPI hanya versi 11.2. Untuk versi 14+ hanya dirilis dalam PepperFlash yang hanya didistribusikan di Google Chrome. PepperFlash menggunakan Pepper Plugins API (PPAPI), API yang dikembangkan oleh Google.

Untungnya ada Fresh Player Plugin. Fresh Player Plugin merupakan sebuah ekstensi NPAPI yang menjembatani penggunaan PepperFlash. Pengguna Mozilla jadi bisa menggunakan Adobe Flash terbaru.

Mari kita pasang!

Memasang Fresh Player Plugin

Saya menggunakan cara yang disebutkan oleh (Rinat Ibragimov, 2014). Namun ada beberapa yang saya tambahkan setelah saya melihat isi kode sumber Fresh Player Plugin.

Persiapan

Untuk Debian, Ubuntu, dan turunannya, jangan lupa memasang berkas-berkas pengembangan:

sudo apt-get install cmake pkg-config libasound2-dev liburiparser-dev \
     libglib2.0-dev libconfig-dev libpango1.0-dev libxinerama-dev \
     libegl1-mesa-dev libevent-dev libgtk+2.0-dev libgles2-mesa-dev

Untuk Gentoo, (B)LFS, dan yang lainnya, pastikan saja Mesa dikompilasi dengan OpenGL, EGL, dan GLES2.

Unduh Kode Sumber

Unduh berkas-berkas yang ada di GIT:

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

Atau kalau tidak punya GIT bisa unduh langsung.

wget https://github.com/i-rinat/freshplayerplugin/archive/master.zip
unzip master.zip
cd freshplayerplugin-master

Saya asumsikan berikutnya Anda sudah masuk ke direktori kode sumber.

Mari Kompilasi

Konfigurasikan dan buat:

mkdir bangun && cd bangun
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
make -j3

Sesuaikan “-j3” dengan 2n+1 jumlah prosesormu atau tidak usah pakai parameter tersebut. Parameter “-DCMAKE_BUILD_TYPE=RelWithDebInfo” akan mengompilasi ekstensi ini dengan informasi debug. Saya, sih, tidak pakai. Toh, saya tidak ingin menelusuri penggunaan ekstensi ini.

Pasang

Ekstensi ini cukup dipasang seperti memasang ekstensi Firefox lainnya. Ada dua berkas yang harus dipasang. Kalau mau dipasang di sistem sehingga pengguna lain juga bisa menggunakannya,

cara Debian:

sudo cp libfreshwrapper-nacl.so libfreshwrapper-nacl.so /usr/lib/firefox/plugins

cara Gentoo

sudo cp libfreshwrapper-nacl.so libfreshwrapper-nacl.so /usr/lib/nsplugins/plugins

Atau kalau untuk dipakai kalangan sendiri:

cp libfreshwrapper-nacl.so libfreshwrapper-nacl.so ~/.mozilla/plugins

Konfigurasi

Sebelum bisa menggunakan Pepper Flash, Fresh Player Plugin harus diarahkan ke tempat Pepper Flash berada. Berikut konfigurasi yang dibuat. Gunakan penyunting teks kesukaan Anda, kalau saya langsung di terminal.

cat > freshwrapper.conf << EOF
# Configuration options for FreshPlayerPlugin

# This configuration file is optional. Wrapper will search for it first
# in ~/.config/freshwrapper.conf, then in /etc/freshwrapper.conf.
# If wrapper fails to find configuration, it will use default values

# Audio buffer is used to continuously provide sound adapter with data.
# Values too low may lead to buffer underruns and stuttering. Values
# too high will lead to noticeable latency. Usually plugin selects size
# on its own, but you may override bounds here

# lower bound for audio buffer size, in milliseconds
audio_buffer_min_ms = 20

# higher bound of audio buffer size, in milliseconds
audio_buffer_max_ms = 500

# Xinerama screen used to acquire fullscreen window geometry
xinerama_screen = 0

# Path to the Pepper Flash plugin
pepperflash_path = "/opt/google/chrome/PepperFlash/libpepflashplayer.so"

# "Command-line" arguments for Flash
flash_command_line = "enable_hw_video_decode=1,enable_stagevideo_auto=1"

# experimental: enable 3d and stage 3d
exp_enable_3d = 0
EOF

Isi berkas ada di baris 2 s.d. 29. Berkas ini dapat dipasang,

global:

sudo cp freshwrapper.conf /etc

lokal:

cp freshwrapper.conf ~/.config

Jangan lupa mengganti “pepperflash_path” bila Anda menggunakan plugin yang berbeda. Misalnya pada Gentoo, Anda memasang “chrome-binary-plugins” yang ada di direktori berikut:

pepperflash_path = /usr/lib64/chromium-browser/PepperFlash/libpepflashplayer.so

Atau kalau Anda seperti saya mengambil langsung PepperFlash secara manual, Anda dapat mengubah jadi:

pepperflash_path = /usr/local/lib/PepperFlash/libpepflashplayer.so

Terakhir

Matikan Flash Player yang disediakan untuk Mozilla (11.2). Cukup gunakan versi yang dari Fresh Player Plugin (14.0). Muat ulang Firefox dan silakan bersenang-senang! 🙂

Latar Belakang Masalah Adobe Flash

Salah satu motto saya untuk membuat sistem tidak hancur adalah dengan meniadakan Adobe Flash dari komputer. Bayangkan, masakkan memori 16GB tidaklah cukup dan sering kali sistem berhenti berespons. Namun, ada beberapa alasan untuk mengapa harus menggunakan Flash:

  1. Beberapa situs gagal berfungsi, misalnya Albino Black Sheep.
  2. Banyak video Youtube yang tidak menawarkan resolusi di atas 360p, terutama yutuber Indonesia. Mereka mengunggah tanpa mempersiapkan video HTML5 dengan resolusi tinggi. Padahal, saya menggunakan monitor 44″. Saya harus menggunakan Flash untuk melihat resolusi tinggi.
  3. Kalau saya mau, memang tidak boleh?

Hal ini diperparah dengan Adobe hanya merilis versi 11.2 untuk GNU/Linux. Adobe bilang versi ini hanya akan ditambal bila ada celah keamanan. Jadi, tidak ada tambahan performa atau fitur baru. Kalau mau, harus menggunakan Adobe Pepper Flash. Sayangnya, Pepper Plugins API (PPAPI) yang dipakai Adobe Pepper Flash hanya ada di Chromium dan turunannya.

Mozilla menolak untuk menggunakan PPAPI. Menurut (Robert O'Callahan, 2010), PPAPI adalah sebuah duplikasi API yang sudah ada dalam Web API. Web API adalah standar terbuka yang seharusnya diimplementasi oleh seluruh peramban.

Terkesan seperti NIH Syndrome. Tapi ada alasan bagus mengapa Mozilla masih menolak PPAPI. Salah satunya adalah karena API yang ditawarkan masih berubah-ubah. API yang volatil ini mengakibatkan peramban alternatif harus berusaha mengejar implementasi terbaru.

Bukan Sekedar Firefox

Mungkin untuk gampangnya, saya bisa saja menggunakan Chromium dan turunannya seperti Google Chrome dan Opera Developer saja. Mereka yang didukung oleh Adobe secara resmi. Namun, ada alasan teknis selain filosofis mengapa tetap Firefox.

Kalau secara filosofis, Mozilla sebagai pemegang Firefox berkomitmen terhadap jejaring yang terbuka (open web). Kita tentunya tidak ingin di masa depan konten dan bagaimana konten dapat diakses dimonopoli oleh sekelompok korporasi. Hal ini akan menurunkan derajat kemanusiaan.

Tentu bagi Anda yang pragmatis tentu tidak begitu memperhatikan filosofi ini. Namun, salah satu keunggulan Mozilla Firefox adalah keterbukaan. Dengan keunggulan ini, ia dikompilasi untuk menggunakan pustaka sistem. Dengan demikian, pustakanya akan selalu terjaga dan bagus, tidak menggunakan versi yang lawas.

Saya menggunakan GNU/Linux Gentoo yang selalu terbaharui. Beberapa situs favorit saya menggunakan karakter huruf Asia Timur. Situs seperti Daum Naver dan Nico-nico Douga juga salah satunya. Dan percaya atau tidak, blog-blog berbahasa Mandarin menyediakan informasi jauh lebih lengkap mengenai kompilasi optimal sistem berprosesor MSM7230 misalnya.

Saya juga kebetulan anak baik, saya takkan mengunjungi situs Rusia mengenai Haxx0r. Tapi, Cyrillic sangat dibutuhkan juga untuk mengerti di mana tombol mengunduh plugin OSS4 misalnya. Ya, intinya dukungan Internasionalisasi jauh lebih bagus di Firefox daripada peramban-peramban Chromium.

Seperti yang Anda lihat pada gambar, Google Chrome saya dapat menampilkan Hangul setelah saya:

  1. Memasang fonta Baemuk.
  2. Memasang ekstensi Chrome Advanced Font Settings.
  3. Menyalakan kembali peramban.

Opera Developer belum mendukung internasionalisasi sama sekali. Di gambar ini terlihat Firefox langsung bisa mendukung karakter Hangul. Ini makanya saya lebih memilih menggunakan Firefox.

Daftar Pustaka

Rinat Ibragimov (2014, July 30). ppapi2npapi compatibility layer. GitHub. Retrieved July 08, 2014 from GitHub: https://github.com/i-rinat/freshplayerplugin.^
Robert O'Callahan (2010, April 30). Thoughts on Pepper. mailman at mozilla. Retrieved July 08, 2014 from mailman at mozilla: https://mail.mozilla.org/pipermail/plugin-futures/2010-April/000088.html.^
Adobe Flash untuk Opera 24 GNU/Linux
Opera Developer

Adobe Flash untuk Opera 24 GNU/Linux

Basa-basi

Saya asumsikan Opera 24 dipasang seperti cara sebelum ini. Karena ini versi pengembang, Opera belum bisa menyalakan Adobe Flash. Itu sebabnya, akhir-akhir ini komputer saya stabil.

Saya mau membuang kestabilan itu demi eksperimen. Opera 24 dibangun di atas Chromium. Artinya, secara infrastruktur dia sudah menyediakan fasilitas Adobe Flash versi PPAPI (PepperFlash). Ini versi yang akan selalu diperbaharui oleh Adobe. Dan inilah cara jantan menyalakan PepperFlash Opera 24.

Pemasangan

Ada tiga bagian dalam pemasangan, memasang PepperFlash, membuat skrip pembungkus, dan membuat konfigurasi.

Memasang PepperFlash

PepperFlash didapatkan dari Chromium/Google Chrome. Kalau sudah memasang perangkat lunak tersebut, silakan saja salin direktori PepperFlash beserta isinya. Namun, saya asumsikan Anda belum memasang Chromium/Google Chrome.

Unduh Google Chrome dari saluran Unstable. Mengapa versi itu? Sebagai pengingat saja dan gaya-gayaan.

wget https://dl.google.com/linux/direct/google-chrome-unstable_current_amd64.deb

Ekstraksi PepperFlash ke /usr/local/lib/

ar p google-chrome-unstable_current_amd64.deb data.tar.lzma \
 | sudo tar xvfJ - -C/ ./opt/google/chrome-unstable/PepperFlash --xform='s,\(/opt/google/chrome-unstable/\),/usr/local/lib/,'

Selanjutnya membuat sebuah skrip tambahan.

Membuat Skrip Tambahan

Pada versi awal opera-developer merupakan tautan ke binari Opera. Saat ini saya akan membuat opera-developer sebagai skrip pembungkus. Ubah direktori jika Anda mengubah posisi instalasi.

Gunakan penyunting teks favorit Anda, kalau saya gunakan langsung:

cat > opera-developer << EOF
#!/bin/bash

# Allow the user to override command-line flags, bug #357629.
# This is based on Debian's opera-developer-browser package, and is intended
# to be consistent with Debian.
for f in /etc/opera-developer/*; do
    [[ -f ${f} ]] && source "${f}"
done

# Prefer user defined OPERA_USER_FLAGS (from env) over system
# default OPERA_FLAGS (from /etc/opera-developer/default).
OPERA_FLAGS=${OPERA_USER_FLAGS:-"$OPERA_FLAGS"}

if [[ ${EUID} == 0 && -O ${XDG_CONFIG_HOME:-${HOME}} ]]; then
    # Running as root with HOME owned by root.
    # Pass --user-data-dir to work around upstream failsafe.
    OPERA_FLAGS="--user-data-dir=${XDG_CONFIG_HOME:-${HOME}/.config}/opera-developer
        ${OPERA_FLAGS}"
fi

# Set the .desktop file name
export OPERA_DESKTOP="opera-developer.desktop"

exec -a "opera-developer" "/usr/local/lib/x86_64-linux-gnu/opera-developer/opera" --extra-plugin-dir=/usr/lib64/nsbrowser/plugins ${OPERA_FLAGS} "$@"
EOF

Ini skrip diambil dari skrip Chromium dan diubah secara barbar. Untuk saat ini, NPAPI (plugin-plugin Firefox) tidak lagi didukung oleh Chromium. Jadi, sepertinya menambah direktori NPAPI tidak perlu. Tapi saya terlalu malas untuk menghapusnya.

Mari pindahkan dan buat supaya bisa dieksekusi.

chmod +x opera-developer
sudo cp opera-developer /usr/local/bin

Nah, sekarang kita perlu mengatur OPERA_FLAGS.

Membuat Konfigurasi Tambahan

Saatnya membuat konfigurasi tambahan. Gunakan penyunting teks kesayangan atau seperti saya langsung dari terminal.

cat > default << EOF
# Default settings for chromium. This file is sourced by /usr/local/bin/opera-developer

# Options to pass to opera-developer
OPERA_FLAGS=" --ppapi-flash-path=/usr/local/lib/PepperFlash/libpepflashplayer.so --ppapi-flash-version=14.0.0.125"
EOF

Mari buat direktori /etc/opera-developer untuk berkas konfigurasi tersebut. Lalu, pindahkan ke sana.

sudo mkdir -p /etc/opera-developer
sudo cp default /etc/opera-developer/default

Selesai.

Kata Terakhir

Jalankan Opera dan akhirnya Adobe Flash pun berjalan. Sistem pun kembali tak stabil. FTW!