CPack/RPM: Quote paths in rpm spec only if they have whitespace

RPM supports either whitespace with quoting or globbing without quoting.
Prior to RPM 4.19 it accepted globbing in quotes, but it only globbed
correctly without whitespace, where quoting was not necessary anyway.
Starting in RPM 4.19, glob characters in quotes are considered literal.

Fixes: #25421
Inspired-by: Ben Boeckel <ben.boeckel@kitware.com>
See: d44114f007
This commit is contained in:
Brad King
2023-11-29 12:47:20 -05:00
parent 75ea6207b7
commit bf22ac5263

View File

@@ -55,7 +55,12 @@ macro(set_spec_scripts PACKAGE_NAME)
endmacro()
function(make_rpm_spec_path var path)
set("${var}" "\"${path}\"" PARENT_SCOPE)
# RPM supports either whitespace with quoting or globbing without quoting.
if(path MATCHES "[ \t]")
set("${var}" "\"${path}\"" PARENT_SCOPE)
else()
set("${var}" "${path}" PARENT_SCOPE)
endif()
endfunction()
function(get_file_permissions FILE RETURN_VAR)