From c2e55e147ee23a0aebd42fe81324fdccda9c607f Mon Sep 17 00:00:00 2001 From: Bartosz Wieczorek Date: Mon, 7 Oct 2024 20:43:52 +0200 Subject: [PATCH] Refactor cpack + add component builds for rpm based distros --- pack.cmake | 95 +++++++++++++++++++++++++++--------------------------- 1 file changed, 48 insertions(+), 47 deletions(-) diff --git a/pack.cmake b/pack.cmake index 1e0d87b..07e20d7 100755 --- a/pack.cmake +++ b/pack.cmake @@ -27,54 +27,55 @@ execute_process ( OUTPUT_VARIABLE outOS ) if ( ${outOS} MATCHES "ubuntu" OR ${outOS} MATCHES "debian" ) -set(CPACK_DEBIAN_PAM-DEV_PACKAGE_NAME, yes) -set(CPACK_DEB_COMPONENT_INSTALL YES) -set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS YES) - -execute_process ( - COMMAND bash -c "awk -F= '/^VERSION_ID=/{print $2}' /etc/os-release |tr -d '\n' | tr -d '\"'" - OUTPUT_VARIABLE VERSION_ID -) -set(CPACK_DEBIAN_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}_${outOS}${VERSION_ID}.deb") -set(CPACK_DEBIAN_PAM-DEV_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}_PAM-DEV_${outOS}${VERSION_ID}.deb") -set(CPACK_GENERATOR "DEB") -set(CPACK_DEBIAN_DEV_PACKAGE_DEPENDS "libcurl4(>= 7.0.0), libc-bin(>= 2.0)") -set(CPACK_DEBIAN_PACKAGE_DEPENDS "libcurl4(>= 7.0.0), libc-bin(>= 2.0), libssl-dev(>= 1.0)") -set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA - "${CMAKE_CURRENT_SOURCE_DIR}/service/helpers/postinst;${CMAKE_CURRENT_SOURCE_DIR}/service/helpers/postrm") -else() -set(CPACK_GENERATOR "RPM") -list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/share/rublon/service/helpers") -list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION - "/usr/lib64/security" -) - -set(CPACK_RPM_SPEC_MORE_DEFINE "%define _build_id_links none") -set(CPACK_RPM_PAM-DEV_PACKAGE_NAME, yes) - -if ( ${outOS} MATCHES "opensuse-leap" ) -set(CPACK_RPM_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}_${outOS}.rpm") -set(CPACK_RPM_PACKAGE_REQUIRES "openssh >= 8.0") -set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/service/helpers/postinst_suse") -set(CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/service/helpers/postrm_rhel_8") -else() -execute_process ( - COMMAND bash -c "awk -F= '/^PLATFORM_ID=/{print \$2}' /etc/os-release | cut -d '\:' -f2- | tr -d '\"'" - OUTPUT_VARIABLE VERSION - OUTPUT_STRIP_TRAILING_WHITESPACE -) -set(CPACK_RPM_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}_${outOS}.${VERSION}.rpm") -set(CPACK_RPM_PAM-DEV_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}_PAM-DEV_${outOS}_${VERSION}.rpm") -set(CPACK_RPM_PACKAGE_REQUIRES_PRE "policycoreutils-python-utils") -#nie działa if dla rhela8 -if(${VERSION} MATCHES ".el8" OR ${outOS} MATCHES "opensuse-leap") - set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/service/helpers/postinst_rhel_8") + set(CPACK_DEBIAN_PAM-DEV_PACKAGE_NAME, YES) + set(CPACK_DEB_COMPONENT_INSTALL YES) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS YES) + + execute_process ( + COMMAND bash -c "awk -F= '/^VERSION_ID=/{print $2}' /etc/os-release |tr -d '\n' | tr -d '\"'" + OUTPUT_VARIABLE VERSION_ID + ) + set(CPACK_DEBIAN_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}_${outOS}${VERSION_ID}.deb") + set(CPACK_DEBIAN_PAM-DEV_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}_PAM-DEV_${outOS}${VERSION_ID}.deb") + set(CPACK_GENERATOR "DEB") + set(CPACK_DEBIAN_DEV_PACKAGE_DEPENDS "libcurl4(>= 7.0.0), libc-bin(>= 2.0)") + set(CPACK_DEBIAN_PACKAGE_DEPENDS "libcurl4(>= 7.0.0), libc-bin(>= 2.0), libssl-dev(>= 1.0)") + set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA + "${CMAKE_CURRENT_SOURCE_DIR}/service/helpers/postinst;${CMAKE_CURRENT_SOURCE_DIR}/service/helpers/postrm") +else() # rpm based distros + set(CPACK_GENERATOR "RPM") + set(CPACK_RPM_COMPONENT_INSTALL YES) + list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/share/rublon/service/helpers") + list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION + "/usr/lib64/security" + ) + + set(CPACK_RPM_SPEC_MORE_DEFINE "%define _build_id_links none") + set(CPACK_RPM_PAM-DEV_PACKAGE_NAME, YES) + + if ( ${outOS} MATCHES "opensuse-leap" ) + set(CPACK_RPM_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}_${outOS}.rpm") + set(CPACK_RPM_PACKAGE_REQUIRES "openssh >= 8.0") + set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/service/helpers/postinst_suse") set(CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/service/helpers/postrm_rhel_8") -else() - set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/service/helpers/postinst_rhel") - set(CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/service/helpers/postrm_rhel") - endif() -endif() + else() + execute_process ( + COMMAND bash -c "awk -F= '/^PLATFORM_ID=/{print \$2}' /etc/os-release | cut -d '\:' -f2- | tr -d '\"'" + OUTPUT_VARIABLE VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + set(CPACK_RPM_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}_${outOS}.${VERSION}.rpm") + set(CPACK_RPM_PAM-DEV_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}_PAM-DEV_${outOS}_${VERSION}.rpm") + set(CPACK_RPM_PACKAGE_REQUIRES_PRE "policycoreutils-python-utils") + #nie działa if dla rhela8 + if(${VERSION} MATCHES ".el8" OR ${outOS} MATCHES "opensuse-leap") + set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/service/helpers/postinst_rhel_8") + set(CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/service/helpers/postrm_rhel_8") + else() + set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/service/helpers/postinst_rhel") + set(CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/service/helpers/postrm_rhel") + endif() + endif() endif()