[CMake] CPack RPM: how to specify the compression type ?

Alexander Neundorf a.neundorf-work at gmx.net
Wed Mar 3 12:53:07 EST 2010


On Tuesday 02 March 2010, Eric Noulard wrote:
> 2010/3/1 Alexander Neundorf <a.neundorf-work at gmx.net>:
> > Hi,
> >
> > I'm not sure this is actually possible, but I'd like to build a rpm on a
> > SUSE 11.1 machine, which can also be installed on a SUSE 10.1 machine.
>
> Beside the compression type problem it's not guaranted that
> dependencies found in 11.1 will be backward compatible with the one
> found in 10.1.
> (libc or any other dynamic lib dependencies) but I guess you already know
> that. You should be building something static or self-contained right?
>
> > The problem is that the rpm generated on the 11.1 machine is
> > lzma-compressed, but this is not supported on the 10.1 machine.
> >
> > So, is it possible to tell rpmbuild which compression type to use ?
>
> I don't know if it's possible at all :-(
> I would expect this to be either an extra rpmbuild option or a
> specific spec file directive.
>
> Would you try to launch (on OpenSuSE 11.1)
>
> rpmbuild --showrc
>
> and see whether if there is some lzma related default parameters in there.
>
> I'll have a look tonight on my OpenSuSE virtual machine tonight too.
>
> > If so, is this already supported by the rpm generator (doesn't seem so) ?
>
> RPM generator does not support custom rpmbuild parameter
> but it support custom spec file so depending on the solution (if it exists)
> it may already be possible or not  :-)

Ok, found it, thanks to the friendly guys from SUSE :-)

For bzip2:
%define _binary_payload w9.bzdio

for gzip:
%define _binary_payload w9.gzdio

for lzma:
%define _binary_payload w9.lzdio

I've set this using the CPACK_RPM_SPEC_MORE_DEFINE variable.
Maybe this could be supported via something like a CPACK_RPM_COMPRESSION_TYPE 
variable ?

Alex


More information about the CMake mailing list