diff --git a/CMakeLists.txt b/CMakeLists.txt index a3a4d999c1..3eed035b5e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -248,6 +248,7 @@ set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH}) set(CPACK_PACKAGE_CONTACT "AMD GFX mailing list ") set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md") set(CPACK_COMPONENT_BINARY_DESCRIPTION "HSAKMT library for AMD KFD support\n This repository includes the user-mode API interfaces\n used to interact with the ROCk driver.") +set ( ENABLE_LDCONFIG ON CACHE BOOL "Set library links and caches using ldconfig.") ## Component packaging, DEVEL set(CPACK_COMPONENT_DEVEL_DESCRIPTION "HSAKMT development package.\n This package contains the headers, pkgonfig and\n cmake files for the ROCT package") @@ -261,7 +262,6 @@ endif() # Debian package specific variables set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface") -set(CPACK_DEBIAN_BINARY_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/postinst;${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/prerm") set(CPACK_DEBIAN_BINARY_PACKAGE_DEPENDS "libc6, libnuma1, zlib1g, libudev1") set(CPACK_DEBIAN_DEVEL_PACKAGE_NAME "hsakmt-roct-dev") if (DEFINED ENV{CPACK_DEBIAN_PACKAGE_RELEASE}) @@ -269,6 +269,10 @@ if (DEFINED ENV{CPACK_DEBIAN_PACKAGE_RELEASE}) else() set(CPACK_DEBIAN_PACKAGE_RELEASE "local") endif() +## Process the Debian install/remove scripts to update the CPACK variables +configure_file ( ${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/postinst.in DEBIAN/postinst @ONLY ) +configure_file ( ${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/prerm.in DEBIAN/prerm @ONLY ) +set(CPACK_DEBIAN_BINARY_PACKAGE_CONTROL_EXTRA "DEBIAN/postinst;DEBIAN/prerm") # RPM package specific variables # get OS-info @@ -280,8 +284,14 @@ elseif(DISTRO_ID MATCHES "centos" AND DISTRO_RELEASE MATCHES "6") else() set(CPACK_RPM_BINARY_PACKAGE_REQUIRES "glibc, numactl-libs, libgcc") endif() -set(CPACK_RPM_BINARY_PRE_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/RPM/rpm_post") -set(CPACK_RPM_BINARY_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/RPM/rpm_postun") + +## Process the Rpm install/remove scripts to update the CPACK variables +configure_file ( "${CMAKE_CURRENT_SOURCE_DIR}/RPM/post.in" RPM/post @ONLY ) +configure_file ( "${CMAKE_CURRENT_SOURCE_DIR}/RPM/postun.in" RPM/postun @ONLY ) +## RPM package specific variables +set ( CPACK_RPM_PRE_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/RPM/post" ) +set ( CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/RPM/postun" ) + if(DEFINED CPACK_PACKAGING_INSTALL_PREFIX) set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "${CPACK_PACKAGING_INSTALL_PREFIX} ${CPACK_PACKAGING_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}") endif() diff --git a/DEBIAN/postinst b/DEBIAN/postinst deleted file mode 100755 index 9510db5d1e..0000000000 --- a/DEBIAN/postinst +++ /dev/null @@ -1,19 +0,0 @@ -#/bin/bash - -set -e - -do_ldconfig() { - echo /opt/rocm/lib > /etc/ld.so.conf.d/x86_64-libhsakmt.conf && ldconfig -} - -case "$1" in - configure) - do_ldconfig - ;; - abort-upgrade|abort-remove|abort-deconfigure) - echo "$1" - ;; - *) - exit 0 - ;; -esac diff --git a/DEBIAN/postinst.in b/DEBIAN/postinst.in new file mode 100755 index 0000000000..04198dc7bb --- /dev/null +++ b/DEBIAN/postinst.in @@ -0,0 +1,23 @@ +#!/bin/bash + +set -e + +# left-hand term originates from ENABLE_LDCONFIG = ON/OFF at package build +do_ldconfig() { + if [ "@ENABLE_LDCONFIG@" == "ON" ]; then + echo @CPACK_PACKAGING_INSTALL_PREFIX@/lib > /etc/ld.so.conf.d/x86_64-libhsakmt.conf + ldconfig + fi +} + +case "$1" in + ( configure ) + do_ldconfig + ;; + ( abort-upgrade | abort-remove | abort-deconfigure ) + echo "$1" + ;; + ( * ) + exit 0 + ;; +esac diff --git a/DEBIAN/prerm b/DEBIAN/prerm deleted file mode 100755 index f8aa5a1993..0000000000 --- a/DEBIAN/prerm +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -set -e - -rm_ldconfig() { - rm -f /etc/ld.so.conf.d/x86_64-libhsakmt.conf && ldconfig -} - -case "$1" in - remove) - rm_ldconfig - ;; - purge) - ;; - *) - exit 0 - ;; -esac - diff --git a/DEBIAN/prerm.in b/DEBIAN/prerm.in new file mode 100755 index 0000000000..5cc004f399 --- /dev/null +++ b/DEBIAN/prerm.in @@ -0,0 +1,21 @@ +#!/bin/bash + +set -e + +# left-hand term originates from ENABLE_LDCONFIG = ON/OFF at package build +rm_ldconfig() { + if [ "@ENABLE_LDCONFIG@" == "ON" ]; then + rm -f /etc/ld.so.conf.d/x86_64-libhsakmt.conf && ldconfig + fi +} + +case "$1" in + ( remove ) + rm_ldconfig + ;; + ( purge ) + ;; + ( * ) + exit 0 + ;; +esac diff --git a/RPM/post.in b/RPM/post.in new file mode 100644 index 0000000000..5fc16b48a2 --- /dev/null +++ b/RPM/post.in @@ -0,0 +1,5 @@ +# left-hand term originates from ENABLE_LDCONFIG = ON/OFF at package build +if [ "@ENABLE_LDCONFIG@" == "ON" ]; then + echo -e "@CPACK_PACKAGING_INSTALL_PREFIX@/lib\n@CPACK_PACKAGING_INSTALL_PREFIX@/lib64" > /etc/ld.so.conf.d/x86_64-libhsakmt.conf + ldconfig +fi diff --git a/RPM/postun.in b/RPM/postun.in new file mode 100644 index 0000000000..8e8eb1fea4 --- /dev/null +++ b/RPM/postun.in @@ -0,0 +1,5 @@ +# second term originates from ENABLE_LDCONFIG = ON/OFF at package build +if [ $1 -eq 0 ] && [ "@ENABLE_LDCONFIG@" == "ON" ]; then + rm -f /etc/ld.so.conf.d/x86_64-libhsakmt.conf + ldconfig +fi diff --git a/RPM/rpm_post b/RPM/rpm_post deleted file mode 100644 index fb4436af29..0000000000 --- a/RPM/rpm_post +++ /dev/null @@ -1 +0,0 @@ -echo -e "/opt/rocm/lib\n/opt/rocm/lib64" > /etc/ld.so.conf.d/x86_64-libhsakmt.conf && ldconfig diff --git a/RPM/rpm_postun b/RPM/rpm_postun deleted file mode 100644 index fb6028fd85..0000000000 --- a/RPM/rpm_postun +++ /dev/null @@ -1,3 +0,0 @@ -if [ $1 -eq 0 ]; then - rm -f /etc/ld.so.conf.d/x86_64-libhsakmt.conf && ldconfig -fi