Ok, this has bitten me enough times now that I'm going to blog it so I don't forget it again.
Symptom: you're doing a yum update on a centos5 or rhel5 box, using rpms
from a repository on a centos6 or rhel6 server (or anywhere else with
a more modern
createrepo available), and you get errors like this:
http://example.com/repodata/filelists.sqlite.bz2: [Errno -3] Error performing checksum http://example.com/repodata/primary.sqlite.bz2: [Errno -3] Error performing checksum
What this really means that yum is too stupid to calculate the sha256 checksum correctly (and also too stupid to give you a sensible error message like "Sorry, primary.sqlite.bz2 is using a sha256 checksum, but I don't know how to calculate that").
The fix is simple:
yum install python-hashlib
from either rpmforge or epel, which makes the necessary libraries available for yum to calculate the new checksums correctly. Sorted.