Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm attempting to upgrade curl on RHEL / CentOS machines. I've found what seems to be the appropriate source packages in a number of repos. (ie, http://mirror.centos.org/centos/6/os/SRPMS/Packages/curl-7.19.7-16.el6.src.rpm)

When attempting to make an rpm from the source package using rpmbuild, I get the following output;

# rpmbuild --rebuild curl-7.19.7-16.el6.src.rpm
Installing curl-7.19.7-16.el6.src.rpm
warning: InstallSourcePackage: Header V3 RSA/SHA256 signature: NOKEY, key ID c105b9de
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
error: unpacking of archive failed on file /usr/src/redhat/SOURCES/curl-7.15.3-multilib.patch;4e984633: cpio: MD5 sum mismatch
error: curl-7.19.7-16.el6.src.rpm cannot be installed

The issue seems to be that the source is meant for Fedora, which uses SHA-256. There's a bug filed here that has comments indicating there's a means to circumvent the md5 checksum. However, it's not very detailed.

Is there a way to install this package?

share|improve this question
add comment

3 Answers

I assume you want to upgrade CentOS5 curl to a version from CentOS6. I think the problem is not with SHA256 signature but with XZ/LZMA compression which is not supported by CentOS5.

You'd need to:

  • run CentOS6 on a spare computer or virtual machine — LiveCD is enough
  • on CentOS6: yum install rpm-build yum-utils
  • on CentOS6: yumdownloader --source curl
  • on CentOS6: rpm -i curl-*.src.rpm
  • on CentOS6: scp -pr ~/rpmbuild your_username@your_centos_ip:
  • on CentOS5: rpmbuild -ba ~/rpmbuild/SPECS/curl.spec
share|improve this answer
add comment

Try:

rpmbuild --rebuild --define "_source_filedigest_algorithm md5" --define "_binary_filedigest_algorithm md5" curl-7.19.7-16.el6.src.rpm

If that doesn't work, you may need to extract the RPM and then rebuild it:

rpm -i --nomd5 curl-7.19.7-16.el6.src.rpm
rpmbuild -ba --define "_source_filedigest_algorithm md5" --define "_binary_filedigest_algorithm md5" /usr/src/redhat/SPECS/curl.spec

I may have the spec file name wrong on the last command.

share|improve this answer
add comment

If you don't have a CentOS 6 box available as @Tometzky suggests, this will work :

cd ~/rpmbuild/SOURCES
rpm2cpio ~/path/to/your/curl-*.src.rpm | cpio -idmv
mv *.spec ~/rpmbuild/SPECS/
rpmbuild -ba ~/rpmbuild/SPECS/curl.spec

Unfortunately, rebuilding curl from CentOS 6 on CentOS 5 involves a lot more complexity beyond just this first hurdle including :

  • Rebuliding libssh2 from CentOS 6 on CentOS 5
  • Installing lzma
  • Other things I haven't figured out yet
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.