From a351edd2452f191988253da3f7b537f8e505f794 Mon Sep 17 00:00:00 2001 From: Andrew Fuller Date: Fri, 24 Jun 2016 10:45:40 -0700 Subject: [PATCH] CPackRPM: Handle directives of form %foo and %foo(anything) Directives that are legal inside the %files section of an RPM spec may contain a variety of characters particularly when specifying %caps which can include +, _, and space. Watch for parenthesis to determine what forms the prefix vs. path. Fixes #14362. --- Modules/CPackRPM.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/CPackRPM.cmake b/Modules/CPackRPM.cmake index d231ff0a7..7706bbcf9 100644 --- a/Modules/CPackRPM.cmake +++ b/Modules/CPackRPM.cmake @@ -1683,8 +1683,8 @@ function(cpack_rpm_generate_package) set(CPACK_RPM_USER_INSTALL_FILES "") foreach(F IN LISTS CPACK_RPM_USER_FILELIST_INTERNAL) - string(REGEX REPLACE "%[A-Za-z0-9\(\),-]* " "" F_PATH ${F}) - string(REGEX MATCH "%[A-Za-z0-9\(\),-]*" F_PREFIX ${F}) + string(REGEX REPLACE "%[A-Za-z]+(\\([^()]*\\))? " "" F_PATH ${F}) + string(REGEX MATCH "%[A-Za-z]+(\\([^()]*\\))?" F_PREFIX ${F}) if(CPACK_RPM_PACKAGE_DEBUG) message("CPackRPM:Debug: F_PREFIX=<${F_PREFIX}>, F_PATH=<${F_PATH}>")