rpmbuild behaviour: CentOS5 vs. CentOS6


Those of you who’ve tried building RPMs for c5 on a c6 machine might’ve faced the symptoms described in http://samixblog.blogspot.com/2011/11/yum-errno-3-error-performing-checksum.html

The cause seems to involve a couple of things: 1. c6 having adopted a stronger file digest algorithm (sha256 as opposed to md5 in c5) and 2. compressing the payload with xz (as opposed to nothing in c5).

This is easily remedied by passing relevant options to `rpmbuild’ and `createrepo’.

If you’re using fpm in your CI, you can now append the following to your fpm command invocation:

--rpm-rpmbuild-define '_source_filedigest_algorithm md5' 
--rpm-rpmbuild-define '_binary_filedigest_algorithm md5' 
--rpm-rpmbuild-define '_source_payload nil' 
--rpm-rpmbuild-define '_binary_payload nil' 

And invoke createrepo as `createrepo -d -s sha1 –update /path/to/rpms/for/c5′

UPDATE (2012-04-23):

fpm now supports quick shortcuts to the above:

% fpm --help [...] --rpm-digest sha512|md5|sha384|sha256|sha1 (rpm only) Select a digest algorithm. md5 works on the most platforms. (default: "md5") --rpm-compression xz|gzip|bzip2 (rpm only) Select a compression method. gzip…

View original post 7 more words


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s