Thursday, November 1. 2012
The New Pepper Adobe Flash Plugin
Today a little entry continuing some of the common topics of the blog: flash, HTML5 and the web wars. In February Adobe announced that 11.2 was the last version for common NPAPI flash linux plugin and newer releases were only being provided using the new PPAPI. The Pepper Plugin API is a google project started in 2009 defined by themselves as a set of modifications to old NPAPI to make plugins more portable and more secure. The only browser that supports PPAPI right now is chrome and its open source version, chromium. So, after Adobe/Google partnership, the only way of using newer versions of the flash plugin in linux is browsing with chrome. Mozilla has commented several times that they will not implement the new Pepper API because now the future is HTML5, they do not want to make a double effort in something is intended to be replaced. But it is quite clear that this issue will not be harmless to firefox in the linux world.
On the other side there is the possibility of using one of the open source alternatives to the Adobe closed source flash plugin. I know two projects, gnash and lightspark, which are exactly that but, although I do not use any of them, I am very skeptical of the current status and usability of both projects. So I repeat that, in my humble opinion, if a linux user wants a good quality flash plugin in the long term he should use chrome, google is turning the screw on competitors.
Finally, to close this little introduction, you already know that there are attempts to translate a SWF file into a HTML5 compatible page (see for example this google project, swiffy, or this mozilla initiative, shumway) and, in general, flash can be replaced by new HTML5 features. But all of us are conscious that right now flash is still needed in common internet use.
Although I have no problems with current 11.2 r202 version, I am preparing my system to have the chromium debian package with the newer pepper version. I understand I am going where google wants me to go, but you never know, better be prepared. I have followed the instructions given in this archlinux forum:
Download chrome from its site. Stable version for debian x64 in my case.
Uncompress and extract the plugin library from the installation file (the manifest.json file contains the version and some other information of the plugin, in this stable version was 11.4.31.110):
$ ar vx google-chrome-stable_current_amd64.deb x - debian-binary x - control.tar.gz x - data.tar.lzma $ mkdir chrome $ cd chrome/ $ tar --lzma -xf ../data.tar.lzma $ find . | grep PepperFlash ./opt/google/chrome/PepperFlash ./opt/google/chrome/PepperFlash/libpepflashplayer.so ./opt/google/chrome/PepperFlash/manifest.json
Copy the plugin library to a proper system location in my debian box:
Now you can start the browser with the following options (the version should be also provided):
$ chromium --ppapi-flash-path=/usr/lib/chromium/plugins/libpepflashplayer.so --ppapi-flash-version=11.4.31.110
In order to make those options available in common startup they can be added to the /etc/chromium/default.
CHROMIUM_FLAGS="--password-store=detect --ppapi-flash-path=/usr/lib/chromium/plugins/libpepflashplayer.so --ppapi-flash-version=11.4.31.110"
After doing the previous points the new version is installed inside the browser. It can be checked using the plugins page (chrome://plugins) and both, the Adobe about page and version finder page.
$ sudo cp ./opt/google/chrome/PepperFlash/libpepflashplayer.so /usr/lib/chromium/plugins/
Today entry comments the current status of the Adobe flash plugin in Linux and gives detailed instructions to setup the new pepper library in chromium (I think that I will need to update it from time to time). Google pounded the table again, partnering with Adobe the more recent versions of the Adobe flash library only works inside their browser in a linux box. I know all about flash in linux is absolutely crazy, but this issue goes one step further.
Be farsighted!
Friday, June 3. 2011
Sound Issue in Linux Adobe Flash (Better Solution)
Yesterday I spent some time reading the fedora bug about the flash issue commented in the previous entry. There are very interesting comments in it, but more important, there are two attachments to replace by yourself the memcpy calls with memmove (one is a bash script and the other is a C++ program).
I tried the C++ source code program and it seems to work quite well:
# wget -O replace.c https://bugzilla.redhat.com/attachment.cgi?id=487982 # g++ -o replace replace.c # cd /usr/lib64/flashplugin-nonfree/ # cp libflashplayer.so libflashplayer.so.ORIG # ~/replace libflashplayer.so Found memmove at symbol table index 516 Found and fixed 1 reloc entries
Of course this solution is a much better approach, because it depends directly on you, you can understand what you are doing and it will work for future plugin releases (if they are still broken). But remember I was desperate at those times. Another thing I did not comment before is that this bug only applies to amd64 linux platforms (not i386, 32 bit installations). And paying more attention to glib package upgrade (I also upgraded my desktop debian box yesterday), I realized there is a warning screen about this memcpy issue you need to accept. I really do not know if I just accepted it without reading in the laptop upgrade or it is new now... I bet for the first option.
Cheerio!
Tuesday, May 24. 2011
Sound Issue in Linux Adobe Flash
Another quick entry this time. Some months ago I started to watch dexter via streaming, but the past week I noticed the sound was very garbled and strange. My streaming site uses (in my linux user opinion) the annoying adobe flash plugin. Being very busy these days I just found the debian associated bug but, at that moment, it solved nothing. Today I have rechecked it and a user comment links to another adobe bug. It explains that the plugin is using memcpy instead of memmove. And if man pages are consulted it is clear what is going on:
The memcpy() function copies n bytes from memory area src to memory area dest. The memory areas should not overlap. Use memmove(3) if the memory areas do overlap.
Last glibc upgrade has got this sound issue out (you know I have a thing about upgrading my debian box). If you follow the previous adobe link there is a solution from a Russian page. It seems the memcpy function has been binary replaced by memmove (I did not know it was even possible). In my debian box the solution is very similar to the explained by the Russian mate. Please be aware of the fact that you are trusting in a binary change done by this guy (you know, desperate times call for desperate measures).
# wget http://catap.ru/patches/flash64/memcpy-10.3.162.29.bsdiff # cp /usr/lib64/flashplugin-nonfree/libflashplayer.so \ /usr/lib64/flashplugin-nonfree/libflashplayer.so.old # bspatch /usr/lib64/flashplugin-nonfree/libflashplayer.so.old \ /usr/lib64/flashplugin-nonfree/libflashplayer.so \ memcpy-10.3.162.29.bsdiff
Adobe flash plugin is a pain in the ass of any linux user. So please I encourage everybody to change to new HTML5 features, especially pages like grooveshark, megavideo or youtube (google is already doing that) which are part of my life.
Thank you!
Comments