If you watch YouTube videos on Linux, you may have noticed that they’ve all had a blue tint lately, and that videos sometimes ‘leak’ through other windows. This is due to a bug in the latest version of Flash player which presents itself when using NVIDIA’s binary driver. Although the bug has been confirmed to be in Flash itself rather than the NVIDIA driver, it’s doubtful that Adobe will ever release a fix as they seem to have pretty much given up on Linux. Fortunately, you can work around this problem by recompiling libvdpau with a patch made by Stephen Warren.
To do this on Slackware, first head over to SlackBuilds.org and grab the latest libvdpau SlackBuild (but don’t bother downloading the actual source archive just yet). Extract the SlackBuild archive as usual:
tar -xvf libvdpau.tar.gz cd libvdpau
Next, you’ll need to get hold of Stephen Warren’s patch, which can be found at here. Copy and paste everything from the “Signed-off-by:” line to the end of the message into a text file and save it into the libvdpau directory as flash_patch.patch.
The reason you didn’t download the source archive from SlackBuilds.org is that this patch applies to a later version of the code which is presently only available in the Git respository. You can download this as a tar archive here. Save this into the libvdpau directory and give it a more sensible name:
tar -xvf libvdpau-4262513e67c3572ed19bd796ec6180cdde7ccb7e.tar.gz mv libvdpau-4262513e67c3572ed19bd796ec6180cdde7ccb7e libvdpau-20110816 tar -cvzf libvdpau-20110816.tar.gz libvdpau-20110816
Now edit libvdpau.SlackBuild to update the version number and apply the patch. Change VERSION=0.4.1 (or similar) to VERSION=20110816 and add the following commands right before ./configure is executed:
patch -p1 < "$CWD/flash_patch.patch" ./autogen.sh --prefix=/usr --sysconfdir=/etc
You should also remove ChangeLog from the list of documentation files towards the bottom of the SlackBuild script, as this file doesn’t exist in the Git version of libvdpau. Finally, run the SlackBuild as usual and if all goes well you’ll end up with a Slackware package in /tmp that you can upgrade your existing version to:
./libvdpau.SlackBuild upgradepkg /tmp/libvdpau-20110816-x86_64-1_SBo.tgz
I didn’t even have to restart X, simply restarting my web browser was enough to get YouTube back to normal!