[cmake-developers] Make CPACK_RPM_PACKAGE_RELEASE match Fedora/RHOS/CentOS recommended behaviour

Domen Vrankar domen.vrankar at gmail.com
Sat May 7 11:35:45 EDT 2016


2016-05-06 19:09 GMT+02:00 Harry Mallon <Harry at codexdigital.com>:

> According to Fedora documentation the "Release:" variable in RPM files
> should be set to 1%{?dist}.
> https://fedoraproject.org/wiki/How_to_create_an_RPM_package
> https://fedoraproject.org/wiki/Packaging:DistTag
>
> This means it should be set to a string which looks like "1.el7.centos" on
> my CentOS7 machine. CPack sets this to "1" by default, but can be changed
> with the CPACK_RPM_PACKAGE_RELEASE variable. I propose a change as follows:
>
> https://github.com/hm1992/CMake/commit/94c611d5710a51072e15855ed96a225def975c38
>
> * Adds CPACK_RPM_DIST which defaults to the output of "rpmbuild -E %{dist}
> 2>/dev/null".
> * Makes CPACK_RPM_PACKAGE_RELEASE default to "1${CPACK_RPM_DIST}"
>
> I think I am right in saying this would not change behaviour on
> distributions that did not use the %{dist} option as "rpmbuild -E
> %{dist}" should return nothing.
>

Hi,

dist tag looks like a good addition however there are some issues with the
proposed patch:

- As Rolf already mentioned "2>/dev/null" should be replaced with
ERROR_QUIET and also OUTPUT_STRIP_TRAILING_WHITESPACE

- there is no need to check for the existance of rpmbuild as that is
already checked at the top of cpack_rpm_generate_package function

- rpmbuild -E %{dist} should use %{?dist} to check if tag is set otherwise
%{dist} will be printed out instead of an empty string on platforms that
don't set this tag

- CPACK_RPM_DIST is only applied in situations when
CPACK_RPM_PACKAGE_RELEASE is not set by the user

To solve the last bullet I would propose that you extend the patch so that
with CPACK_RPM_DIST:

- if not set current functionality would remain (${CPACK_RPM_PACKAGE_RELEASE}
only - I would not make an exception for "1${CPACK_RPM_DIST}" default value)

- if set to value "RPMBUILD-DEFAULT" rpmbuild -E %{?dist} would be used to
get CPACK_RPM_DIST value and then appended to CPACK_RPM_PACKAGE_RELEASE

- if set to any other value that value would be used (also a check would
have to be made that if first character is not a dot it has to be added
automatically)

Thanks,
Domen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20160507/bded5474/attachment.html>


More information about the cmake-developers mailing list