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_permissions_regex "-rwxr-xr-x .*")
|
||||
set(foo_prerm "^echo default_prerm$")
|
||||
set(foo_prerm_permissions_regex "-rwxr-xr-x .*")
|
||||
verifyDebControl("${FOUND_FILE_1}" "foo" "preinst;prerm")
|
||||
|
||||
set(bar_preinst "^echo bar_preinst$")
|
||||
set(bar_prerm_permissions_regex "-rwx------ .*")
|
||||
set(bar_prerm "^echo bar_prerm$")
|
||||
set(bar_prerm_permissions_regex "-rwx------ .*")
|
||||
verifyDebControl("${FOUND_FILE_2}" "bar" "preinst;prerm")
|
||||
|
||||
set(bas_preinst "^echo default_preinst$")
|
||||
set(bas_prerm_permissions_regex "-rwxr-xr-x .*")
|
||||
set(bas_prerm "^echo default_prerm$")
|
||||
set(bas_prerm_permissions_regex "-rwxr-xr-x .*")
|
||||
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_}'!"
|
||||
" Content: '${content_}'")
|
||||
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()
|
||||
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 bas COMPONENT bas)
|
||||
|
||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/preinst "echo default_preinst")
|
||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/prerm "echo default_prerm")
|
||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/tmp/preinst "echo default_preinst")
|
||||
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
|
||||
"${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/prerm "echo bar_prerm")
|
||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/bar_tmp/preinst "echo bar_preinst")
|
||||
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
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/bar/preinst;${CMAKE_CURRENT_BINARY_DIR}/bar/prerm")
|
||||
|
|
Loading…
Reference in New Issue