sabato 22 dicembre 2012

Utilizzare 'Pepper' Flash Player con Chromium su Fedora

Ispirandomi a questo PKGBUILD per Archlinux ho scritto un file spec per Fedora con la stessa finalità, ovvero creare un pacchetto per utilizzare la nuova generazione di flash player 'Pepper' con Chromium.
Il file spec è aggiornato con le ultime release stabili di Chrome e Chromium disponibili per Fedora alla data in cui sto scrivendo (21/12/12)

Innanzitutto, se non lo avete ancora fatto, occorre abilitare i repo stabili per Chromium, come spiegato in questa pagina del wiki di Fedora.

Fatto questo, copiate&incollate il seguente testo in nuovo file che chiamerete chromium-pepper-flash.spec

%ifarch i686
%define _carch i386
%endif
%ifarch x86_64
%define _carch x86_64
%endif
%define _build 23.0.1271.97-171054

Summary: Google Chrome's Pepper Flash plugin for Chromium
Name:  chromium-pepper-flash
Version: 11.5.31.5
Release: 1%{?dist}
URL:  http://www.google.com/chrome
Source0: http://dl.google.com/linux/chrome/rpm/stable/%{_carch}/google-chrome-stable-%{_build}.%{_carch}.rpm
License: Multiple, see http://chrome.google.com/
Requires: chromium

%description
Google Chrome's Pepper Flash plugin for Chromium

%prep
rpm2cpio %{SOURCE0} | cpio -idmv

%build

%install
mkdir -p %{buildroot}%{_libdir}/PepperFlash
install -m644 opt/google/chrome/PepperFlash/* %{buildroot}%{_libdir}/PepperFlash
mkdir -p %{buildroot}%{_sysconfdir}/profile.d
echo "export CHROMIUM_USER_FLAGS=\"--ppapi-flash-path=%{_libdir}/PepperFlash/libpepflashplayer.so --ppapi-flash-version=%{version}\"" >> %{buildroot}%{_sysconfdir}/profile.d/%{name}.sh

%files
%{_libdir}/PepperFlash/*
%{_sysconfdir}/profile.d/%{name}.sh

%changelog                                                                                                                                              
* Thu Dec 21 2012 Simone Sclavi <darkhado@gmail.com> - 11.5.31.5-1
- Initial build

Per compilare il pacchetto vi consiglio di utilizzare mach, che è l'equivalente del "makepkg -s" di Archlinux (in realtà mach è più completo come strumento)
Se non è presente sulla vostra macchina, installatelo con:
# yum install mach
Dopodichè aggiunte il vostro utente al gruppo mach, con:
# usermod --append -G mach <utente>
Avviate la compilazione con:
$ mach build chromium-pepper-flash.spec
La prima esecuzione di questo comando potrà richiedere un po' di tempo, dal momento che mach ( il cui significato è  "make a chroot" ) creerà inizialmente un ambiente separato e "pulito" all'interno del quale verrà poi eseguita la compilazione.
Al termine, se tutto è andato per il verso giusto, mach vi indicherà la directory contenete gli rpm appena costruiti. Nel mio caso, ad esempio:

2 packages and 0 specfiles checked; 0 errors, 5 warnings.
Results: /var/tmp/mach/fedora-17-i386-updates/chromium-pepper-flash-11.5.31.5-1.fc17
Build done.
Attenzione: di default mach crea pacchetti 32 bit anche se state utilizzando una versione di Fedora a 64 bit!
Per cambiare questo comportamento aprite il file /etc/mach/conf e modificate il defaultroot correggendo i386 in x86_64; ad esempio con Fedora 18 troverete fedora-18-i386-updates che dovrà quindi diventare fedora-18-x86_64-updates ]
Spostatevi quindi nella directory indicata ed installate il relativo pacchetto rpm (non il src.rpm). Su un sistema 32 bit, ad esempio, darete:
# yum install chromium-pepper-flash-11.5.31.5-1.fc17.i686.rpm

Purtroppo, a differenza della versione "vanilla" di Chromium, in Fedora il file  /etc/chromium-browser/default non sembra in grado di esportare le variabili d'ambiente necessarie all'abilitazione del plugin; ho quindi inserito tali istruzioni in un file all'intero della directory /etc/profile.d.
Lo svantaggio rispetto al pacchetto per Archlinux è che dovrete chiudere la vostra sessione corrente di lavoro e ripetere il login per fare in modo che le variabili di ambiente vengano esportate correttamente.

Una volta fatto tutto questo, lanciate Chromium e nella barra degli indirizzi, digitate:
  chrome://plugins
 Controllate in questa pagina che il plugin Pepper sia stato riconosciuto e caricato; se sulla vostra macchina è installato anche il "vecchio" flash player NPAPI assicuratevi di disabilitarlo.

Come ultimo test, collegatevi a questa pagina

Potete trovare la versione più recente del file spec qui


Aggiornamento 08/05/13: costruzione alternativa del pacchetto con spectool (RACCOMANDATA!)

Quando all'epoca scrissi questa guida non conoscevo ancora il comando spectool, una comoda utility in grado di scaricare automaticamente i file "source" specificati all'interno di un file spec. Grazie a spectool possiamo fare a meno di mach evitando quindi tutta la fase di preparazione della chroot, con un grande guadagno in termini di tempo!
In un terminale diamo in successione i seguenti comandi:

$ rpmdev-setuptree
$ wget https://dl.dropboxusercontent.com/u/7141888/chromium-pepper-flash.spec -P ~/rpmbuild/SPECS
$ spectool -g -R ~/rpmbuild/SPECS/chromium-pepper-flash.spec
$ rpmbuild -ba ~/rpmbuild/SPECS/chromium-pepper-flash.spec

Terminata la compilazione, spostiamoci nella directory contenente il pacchetto appena creato:
$ cd ~/rpmbuild/RPMS/$(uname -p)

e installiamolo con yum, come già visto in precedenza

sabato 15 dicembre 2012

Chromium e i numeri che non vengono mostrati durante i download: ecco come risolverlo

Questo è un errore che sembra affliggere molti utenti: durante i download anziché mostrare i MB e i minuti mancanti al completamento dell'operazione, Chromium riporta invece un sibillino "NaN/NaN MB, NaN minuti rimanenti".

Se questo problema riguarda anche voi, potete risolverlo con questo workaround: aprite con un editor il file .bashrc nella vostra home e aggiungete la seguente istruzione:
export LC_NUMERIC="POSIX" 
quindi terminate la sessione corrente del vostro DE e riloggatevi nuovamente.
Ho riscontrato però che a causa di questa impostazione alcuni programmi si avviano utilizzando la localizzazione inglese anziché quella italiana (o qualunque altra sia la lingua del vostro sistema Linux).
Ad oggi ho verificato questo comportamento anomalo con SMPlayer e Rosa Media Player, ma potrebbe riguardare anche altri software.
Per fare in modo che i due lettori multimediali di cui sopra continuino ad avviarsi in italiano, senza però rinunciare al nostro fix per Chromium , ho creato due semplicissimi "wrapper".

Per SMPlayer:
Create un file in /usr/local/bin dal nome smplayer e incollate questo contenuto:
#!/bin/sh
export LC_NUMERIC="it_IT.UTF-8"
/bin/smplayer "$@"
Rendete il file eseguibile con:
# chmod 755 /usr/local/bin/smplayer
Per Rosa Media Player:
Come nome del file date stavolta rosa-media-player ( collocatelo sempre in /usr/local/bin ) con questo contenuto:
 #!/bin/sh
export LC_NUMERIC="it_IT.UTF-8"
/bin/rosa-media-player "$@"
Impostate i permessi di esecuzione con:
#  chmod 755 /usr/local/bin/rosa-media-player
 Testato positivamente su Fedora 17.