18 December 2008

Adobe Flash: Avoiding Checksum Errors

The way flashplugin-nonfree works right now is that it's a fairly empty package that downloads Adobe's Flash installation tarball, untars it, and copies the .so to the necessary directory. There's one more step in the middle though. It does a checksum on the tarball after it downloads and a checksum on the .so. These checksums are to make sure you're getting the right file, as opposed to some trojaned version (say, if Adobe was cracked). These checksums are also a bit of a problem.

See, every time Adobe updates Flash, they keep the same file name. So the package downloads the file, and since it's a new version, the checksum fails, causing the install to fail. A few days later, after some testing, MOTU uploads a new package with the updated checksum.

You can avoid this.

Instead of installing flashplugin-nonfree, enable the Canonical Partner Repository in System -> Administration -> Software Sources -> Third Party Software, or make sure you have

deb http://archive.canonical.com/ubuntu intrepid partner
(substitute in hardy or gutsy if you're using those) in your /etc/apt/sources.list and after sudo apt-get update && sudo apt-get install adobe-flashplugin, you'll have a working Flash plugin, even if there's been an update. The reason is that Adobe's package includes the full binary. It doesn't try to download from their website, so there's no checksum to fail.

It looks like going forward, this will be the preferred Flash package, especially once Adobe releases the final 64-bit version.

If you want to switch from flashplugin-nonfree to adobe-flashplugin, make sure you purge flashplugin-nonfree first.


Palintheus said...

Thanks for posting this and explaining the issue in #ubuntu-bugs!

Mackenzie said...

Hey, I didn't explain it. Crimsun did. He just grabbed my laptop to do so.

Guss77 said...

The partner repository is a Canonical repository, obviously it is approved by Canonical - why isn't it enabled by default?

And even if its not enabled by default, why should Ubuntu have two competing Flash packages where one is obviously inferior to the other?

Mackenzie said...

It's not enabled by default for the same reason Multiverse isn't enabled by default. It contains proprietary software.

There are two because the Partner repo is something that only started in the last year, I think. Flashplugin-nonfree already existed. Not sure how we'd force people to go from a package in one repository to a package in another.

And one problem pointed out yesterday on IRC with trying to get rid of flashplugin-nonfree and go to adobe-flashplugin only is that all of the documentation and every blog in the blogosphere tells you flashplugin-nonfree is the way to get Flash, because it was the only way to get Flash from the repos, historically.

Jonathan said...

I'm trying to install this on Intrepid 64-bit. I did everything correctly and the adobe-flashplugin isn't listed (even after reloading my repos correctly). Is this package not available for 64-bit yet?

nhaines said...

And that's probably another good reason not to remove flashplugin-nonfree: it also will install 32-bit Flash with the appropriate wrappers on 64-bit systems as well.

adobe-flashplugin is not yet available for 64-bit machines.