diff options
author | Alexander Neundorf <neundorf@kde.org> | 2009-05-12 19:13:10 (GMT) |
---|---|---|
committer | Alexander Neundorf <neundorf@kde.org> | 2009-05-12 19:13:10 (GMT) |
commit | f43e36a65d5742faed4b000e94fc468c6ed92269 (patch) | |
tree | 6e2eb00868131e6533dae0c93dce61f9fa27428d /Modules/CPackRPM.cmake | |
parent | ea8c04a4f89c0e86e58fae3b5b746fd5a067d566 (diff) | |
download | CMake-f43e36a65d5742faed4b000e94fc468c6ed92269.zip CMake-f43e36a65d5742faed4b000e94fc468c6ed92269.tar.gz CMake-f43e36a65d5742faed4b000e94fc468c6ed92269.tar.bz2 |
BUG: apply patch from Eric Noulard, so cpack works with rpmbuild 4.6.0, #8967
Alex
Diffstat (limited to 'Modules/CPackRPM.cmake')
-rw-r--r-- | Modules/CPackRPM.cmake | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/Modules/CPackRPM.cmake b/Modules/CPackRPM.cmake index 8b55d72..136eaec 100644 --- a/Modules/CPackRPM.cmake +++ b/Modules/CPackRPM.cmake @@ -17,10 +17,30 @@ ENDIF(NOT UNIX) # it may be a simple (symbolic) link to rpmb command. FIND_PROGRAM(RPMBUILD_EXECUTABLE rpmbuild) +# Check version of the rpmbuild tool this would be easier to +# track bugs with users and CPackRPM debug mode. +# We may use RPM version in order to check for available version dependent features +IF(RPMBUILD_EXECUTABLE) + execute_process(COMMAND ${RPMBUILD_EXECUTABLE} --version + OUTPUT_VARIABLE _TMP_VERSION + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) + string(REGEX REPLACE "^.*\ " "" + RPMBUILD_EXECUTABLE_VERSION + ${_TMP_VERSION}) + IF(CPACK_RPM_PACKAGE_DEBUG) + MESSAGE("CPackRPM:Debug: rpmbuild version is <${RPMBUILD_EXECUTABLE_VERSION}>") + ENDIF(CPACK_RPM_PACKAGE_DEBUG) +ENDIF(RPMBUILD_EXECUTABLE) + IF(NOT RPMBUILD_EXECUTABLE) MESSAGE(FATAL_ERROR "RPM package requires rpmbuild executable") ENDIF(NOT RPMBUILD_EXECUTABLE) +# We may use RPM version in the future in order +# to shut down warning about space in buildtree +# some recent RPM version should support space in different places. +# not checked [yet]. IF(CPACK_TOPLEVEL_DIRECTORY MATCHES ".* .*") MESSAGE(FATAL_ERROR "${RPMBUILD_EXECUTABLE} can't handle paths with spaces, use a build directory without spaces for building RPMs.") ENDIF(CPACK_TOPLEVEL_DIRECTORY MATCHES ".* .*") @@ -255,10 +275,12 @@ ENDIF(CPACK_RPM_USER_BINARY_SPECFILE) IF(RPMBUILD_EXECUTABLE) # Now call rpmbuild using the SPECFILE EXECUTE_PROCESS( - COMMAND "${RPMBUILD_EXECUTABLE}" -bb "${CPACK_RPM_BINARY_SPECFILE}" + COMMAND "${RPMBUILD_EXECUTABLE}" -bb + --buildroot "${CPACK_RPM_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}" + "${CPACK_RPM_BINARY_SPECFILE}" WORKING_DIRECTORY "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}" ERROR_FILE "${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild.err" - OUTPUT_FILE "${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild.out") + OUTPUT_FILE "${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild.out") IF(CPACK_RPM_PACKAGE_DEBUG) MESSAGE("CPackRPM:Debug: You may consult rpmbuild logs in: ") MESSAGE("CPackRPM:Debug: - ${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild.err") |