CPack/DEB: test preserve extra config file permissions
This commit is contained in:
parent
7044e8ee4b
commit
becb14c955
@ -1,11 +1,17 @@
|
|||||||
set(foo_preinst "^echo default_preinst$")
|
set(foo_preinst "^echo default_preinst$")
|
||||||
|
set(foo_preinst_permissions_regex "-rwxr-xr-x .*")
|
||||||
set(foo_prerm "^echo default_prerm$")
|
set(foo_prerm "^echo default_prerm$")
|
||||||
|
set(foo_prerm_permissions_regex "-rwxr-xr-x .*")
|
||||||
verifyDebControl("${FOUND_FILE_1}" "foo" "preinst;prerm")
|
verifyDebControl("${FOUND_FILE_1}" "foo" "preinst;prerm")
|
||||||
|
|
||||||
set(bar_preinst "^echo bar_preinst$")
|
set(bar_preinst "^echo bar_preinst$")
|
||||||
|
set(bar_prerm_permissions_regex "-rwx------ .*")
|
||||||
set(bar_prerm "^echo bar_prerm$")
|
set(bar_prerm "^echo bar_prerm$")
|
||||||
|
set(bar_prerm_permissions_regex "-rwx------ .*")
|
||||||
verifyDebControl("${FOUND_FILE_2}" "bar" "preinst;prerm")
|
verifyDebControl("${FOUND_FILE_2}" "bar" "preinst;prerm")
|
||||||
|
|
||||||
set(bas_preinst "^echo default_preinst$")
|
set(bas_preinst "^echo default_preinst$")
|
||||||
|
set(bas_prerm_permissions_regex "-rwxr-xr-x .*")
|
||||||
set(bas_prerm "^echo default_prerm$")
|
set(bas_prerm "^echo default_prerm$")
|
||||||
|
set(bas_prerm_permissions_regex "-rwxr-xr-x .*")
|
||||||
verifyDebControl("${FOUND_FILE_3}" "bas" "preinst;prerm")
|
verifyDebControl("${FOUND_FILE_3}" "bas" "preinst;prerm")
|
||||||
|
@ -24,6 +24,19 @@ function(verifyDebControl FILE PREFIX VERIFY_FILES)
|
|||||||
message(FATAL_ERROR "Unexpected content in for '${PREFIX}_${FILE_}'!"
|
message(FATAL_ERROR "Unexpected content in for '${PREFIX}_${FILE_}'!"
|
||||||
" Content: '${content_}'")
|
" Content: '${content_}'")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
execute_process(COMMAND ls -l "${CMAKE_CURRENT_BINARY_DIR}/control_${PREFIX}/${FILE_}"
|
||||||
|
OUTPUT_VARIABLE package_permissions_
|
||||||
|
ERROR_VARIABLE package_permissions_error_
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
|
||||||
|
if(NOT package_permissions_error_)
|
||||||
|
if(NOT package_permissions_ MATCHES "${${PREFIX}_${FILE_}_permissions_regex}")
|
||||||
|
message(FATAL_ERROR "Unexpected file permissions for ${PREFIX}_${FILE_}: '${package_permissions_}'!")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "Listing file permissions failed (${package_permissions_error_})!")
|
||||||
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
@ -2,14 +2,32 @@ install(FILES CMakeLists.txt DESTINATION foo COMPONENT foo)
|
|||||||
install(FILES CMakeLists.txt DESTINATION bar COMPONENT bar)
|
install(FILES CMakeLists.txt DESTINATION bar COMPONENT bar)
|
||||||
install(FILES CMakeLists.txt DESTINATION bas COMPONENT bas)
|
install(FILES CMakeLists.txt DESTINATION bas COMPONENT bas)
|
||||||
|
|
||||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/preinst "echo default_preinst")
|
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/tmp/preinst "echo default_preinst")
|
||||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/prerm "echo default_prerm")
|
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/tmp/prerm "echo default_prerm")
|
||||||
|
|
||||||
|
foreach(file_ preinst prerm)
|
||||||
|
file(COPY ${CMAKE_CURRENT_BINARY_DIR}/tmp/${file_}
|
||||||
|
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
|
FILE_PERMISSIONS
|
||||||
|
OWNER_READ OWNER_WRITE OWNER_EXECUTE
|
||||||
|
GROUP_READ GROUP_EXECUTE
|
||||||
|
WORLD_READ WORLD_EXECUTE)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
|
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/preinst;${CMAKE_CURRENT_BINARY_DIR}/prerm")
|
"${CMAKE_CURRENT_BINARY_DIR}/preinst;${CMAKE_CURRENT_BINARY_DIR}/prerm;${CMAKE_CURRENT_BINARY_DIR}/conffiles")
|
||||||
|
|
||||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/bar/preinst "echo bar_preinst")
|
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/bar_tmp/preinst "echo bar_preinst")
|
||||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/bar/prerm "echo bar_prerm")
|
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/bar_tmp/prerm "echo bar_prerm")
|
||||||
|
|
||||||
|
foreach(file_ preinst prerm)
|
||||||
|
# not acceptable permissions for lintian but we need to check that
|
||||||
|
# permissions are preserved
|
||||||
|
file(COPY ${CMAKE_CURRENT_BINARY_DIR}/bar_tmp/${file_}
|
||||||
|
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/bar
|
||||||
|
FILE_PERMISSIONS
|
||||||
|
OWNER_READ OWNER_WRITE OWNER_EXECUTE)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
set(CPACK_DEBIAN_BAR_PACKAGE_CONTROL_EXTRA
|
set(CPACK_DEBIAN_BAR_PACKAGE_CONTROL_EXTRA
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/bar/preinst;${CMAKE_CURRENT_BINARY_DIR}/bar/prerm")
|
"${CMAKE_CURRENT_BINARY_DIR}/bar/preinst;${CMAKE_CURRENT_BINARY_DIR}/bar/prerm")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user