[Cmake-commits] CMake branch, next, updated. v3.2.0-rc2-646-gc8dce27

Brad King brad.king at kitware.com
Tue Feb 24 08:51:55 EST 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  c8dce2768943c1fa193e758936a251c9490b5fc7 (commit)
       via  5857ca5e0d6c6f04486153f69184ba5d76b13f0b (commit)
      from  b345e9206ebc65030aae13561cbca9c261f263b3 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c8dce2768943c1fa193e758936a251c9490b5fc7
commit c8dce2768943c1fa193e758936a251c9490b5fc7
Merge: b345e92 5857ca5
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Feb 24 08:51:54 2015 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Feb 24 08:51:54 2015 -0500

    Merge topic 'rpm_at_in_path' into next
    
    5857ca5e CPackRPM: Drop explicit handling of '@' symbols that breaks them (#14782)


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5857ca5e0d6c6f04486153f69184ba5d76b13f0b
commit 5857ca5e0d6c6f04486153f69184ba5d76b13f0b
Author:     Domen Vrankar <domen.vrankar at gmail.com>
AuthorDate: Wed Jan 7 20:33:27 2015 +0100
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Feb 24 08:44:36 2015 -0500

    CPackRPM: Drop explicit handling of '@' symbols that breaks them (#14782)
    
    The change in commit v2.8.12~218^2 (CPackRPM protect '@' character in
    filename processed in the spec file, 2013-07-05) was not necessary after
    commit v2.8.12~439^2 (Add support for componentized USER spec file,
    2013-04-01).  The latter replaced ${VAR} references in the spec file
    template string with \@VAR\@ references, thus protecting '@' symbols
    automatically.  This caused CPackRPM to break paths with @ symbols.
    Revert the change to fix the behavior, and add a test case.

diff --git a/Modules/CPackRPM.cmake b/Modules/CPackRPM.cmake
index 6ce18bf..cb987f8 100644
--- a/Modules/CPackRPM.cmake
+++ b/Modules/CPackRPM.cmake
@@ -1175,13 +1175,6 @@ if(CPACK_RPM_PACKAGE_DEBUG)
    message("CPackRPM:Debug: CPACK_TEMPORARY_PACKAGE_FILE_NAME = ${CPACK_TEMPORARY_PACKAGE_FILE_NAME}")
 endif()
 
-# protect @ in pathname in order to avoid their
-# interpretation during the configure_file step
-set(CPACK_RPM_INSTALL_FILES_LIST "${CPACK_RPM_INSTALL_FILES}")
-set(PROTECTED_AT "@")
-string(REPLACE "@" "\@PROTECTED_AT\@" CPACK_RPM_INSTALL_FILES "${CPACK_RPM_INSTALL_FILES_LIST}")
-set(CPACK_RPM_INSTALL_FILES_LIST "")
-
 #
 # USER generated/provided spec file handling.
 #
@@ -1292,9 +1285,6 @@ else()
   configure_file(${CPACK_RPM_BINARY_SPECFILE}.in ${CPACK_RPM_BINARY_SPECFILE} @ONLY)
 endif()
 
-# remove AT protection
-unset(PROTECTED_AT)
-
 if(RPMBUILD_EXECUTABLE)
   # Now call rpmbuild using the SPECFILE
   execute_process(
diff --git a/Tests/CPackComponentsForAll/CMakeLists.txt b/Tests/CPackComponentsForAll/CMakeLists.txt
index b55594e..51af297 100644
--- a/Tests/CPackComponentsForAll/CMakeLists.txt
+++ b/Tests/CPackComponentsForAll/CMakeLists.txt
@@ -43,7 +43,7 @@ install(TARGETS mylibapp
 # CPACK_MONOLITHIC_INSTALL=1 is set (at cmake time).
 install(TARGETS mylibapp2
   RUNTIME
-  DESTINATION bin)
+  DESTINATION bin/@in at _@path@@with\\@and\\@/\@in_path\@) # test @ char in path
 
 install(FILES mylib.h
   DESTINATION include
diff --git a/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake b/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake
index 5be9d17..f06605a 100644
--- a/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake
+++ b/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake
@@ -139,6 +139,7 @@ if(CPackGen MATCHES "RPM")
   set(CPACK_COMPONENT_HEADERS_DESCRIPTION
     "C/C\\+\\+ header files for use with MyLib")
 
+  # test package info
   if(${CPackComponentWay} STREQUAL "IgnoreGroup")
     # set gnu install prefixes to what they are set during rpm creation
     # CMAKE_SIZEOF_VOID_P is not set here but lib is prefix of lib64 so
@@ -213,6 +214,29 @@ if(CPackGen MATCHES "RPM")
           message(FATAL_ERROR "error: '${check_file}' Architecture does not match expected value - '${check_file_match_expected_architecture}'; RPM output: '${check_file_content}'; generated spec file: '${spec_file_content}'")
       endif()
     endforeach()
-  elseif(${CPackComponentWay} STREQUAL "IgnoreGroup")
+
+    # test package content
+    foreach(check_file ${expected_file})
+      string(REGEX MATCH ".*Unspecified.*" check_file_Unspecified_match ${check_file})
+
+      if(check_file_Unspecified_match)
+        execute_process(COMMAND ${RPM_EXECUTABLE} -pql ${check_file}
+            OUTPUT_VARIABLE check_file_content
+            ERROR_QUIET
+            OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+        string(REGEX MATCH ".*bin/@in at _@path@@with/@and/@/@in_path@/mylibapp2$" check_at_in_path ${check_file_content})
+
+        if(NOT check_at_in_path)
+          file(GLOB_RECURSE spec_file "${CPackComponentsForAll_BINARY_DIR}/*Unspecified*.spec")
+
+          if(spec_file)
+            file(READ ${spec_file} spec_file_content)
+          endif()
+
+          message(FATAL_ERROR "error: '${check_file}' rpm package path with @ characters is missing or invalid. RPM output: '${check_file_content}'; generated spec file: '${spec_file_content}'")
+        endif()
+      endif()
+    endforeach()
   endif()
 endif()

-----------------------------------------------------------------------

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list