Merge topic 'cpack-deb-checksum-on-symlinks'

da295f45 CPack/Deb: checksum on symlinks release notes
7c7874c8 CPackDeb: preventing md5sum on symlinks
This commit is contained in:
Brad King
2015-09-21 09:25:31 -04:00
committed by CMake Topic Stage
5 changed files with 49 additions and 17 deletions
+19
View File
@@ -99,6 +99,25 @@ if(CHMOD_PROG)
set(CPACK_DEBIAN_APPLICATIONS_PACKAGE_CONTROL_STRICT_PERMISSION TRUE)
endif()
# creates a symbolic link and a directory. Those should not be hashed.
# warning: relocation of the symlink is not supported (symlinks with relative
# paths)
execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink mylibapp symtest)
install(FILES ${CPackComponentsDEB_BINARY_DIR}/symtest
DESTINATION bin
COMPONENT applications)
if(EXISTS "./dirtest")
execute_process(COMMAND ${CMAKE_COMMAND} -E remove_directory ./dirtest)
endif()
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ./dirtest)
# BUG: apparently cannot add an empty directory
execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ../mylibapp ./dirtest/symtest)
# NOTE: we should not add the trailing "/" to dirtest
install(DIRECTORY ${CPackComponentsDEB_BINARY_DIR}/dirtest
DESTINATION bin/
COMPONENT applications)
# We may use the CPack specific config file in order
# to tailor CPack behavior on a CPack generator specific way
# (Behavior would be different for RPM or TGZ or DEB ...)
@@ -36,7 +36,7 @@ find_program(LINTIAN_EXECUTABLE lintian)
if(LINTIAN_EXECUTABLE)
set(lintian_output_errors_all "")
foreach(_f IN LISTS actual_output)
set(STRINGS_TO_AVOID "E:([^\r\n]*)control-file-has-bad-permissions")
set(STRINGS_TO_AVOID "E:([^\r\n]*)control-file-has-bad-permissions" "E:([^\r\n]*)md5sums-lists-nonexistent-file")
lintian_check_specific_errors(lintian_output_errors
FILENAME "${_f}"
ERROR_REGEX_STRINGS "${STRINGS_TO_AVOID}")
@@ -137,6 +137,8 @@ endfunction()
# This function runs dpkg-deb on a .deb and returns its output
# the default behaviour it to run "--info" on the specified Debian package
# ACTION is one of the option accepted by dpkg-deb
function(run_dpkgdeb dpkg_deb_output)
set(${dpkg_deb_output} "" PARENT_SCOPE)
@@ -144,7 +146,7 @@ function(run_dpkgdeb dpkg_deb_output)
if(DPKGDEB_EXECUTABLE)
set(options "")
set(oneValueArgs "FILENAME")
set(oneValueArgs "FILENAME" "ACTION")
set(multiValueArgs "")
cmake_parse_arguments(run_dpkgdeb_deb "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
@@ -153,8 +155,12 @@ function(run_dpkgdeb dpkg_deb_output)
message(FATAL_ERROR "error: run_dpkgdeb needs FILENAME to be set")
endif()
# run lintian
execute_process(COMMAND ${DPKGDEB_EXECUTABLE} -I ${run_dpkgdeb_deb_FILENAME}
if(NOT run_dpkgdeb_deb_ACTION)
set(run_dpkgdeb_deb_ACTION "--info")
endif()
# run dpkg-deb
execute_process(COMMAND ${DPKGDEB_EXECUTABLE} ${run_dpkgdeb_deb_ACTION} ${run_dpkgdeb_deb_FILENAME}
WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
OUTPUT_VARIABLE DPKGDEB_OUTPUT
RESULT_VARIABLE DPKGDEB_RESULT