From 7bbca47ee87f90d883aed7aa1a0783c8eb3dedcd Mon Sep 17 00:00:00 2001 From: David Galiffi Date: Fri, 7 Jun 2024 11:34:35 -0400 Subject: [PATCH] Enable features to generate dependency list and fix RPM installation. (#343) * CPACK: Enable features to generate dependency lists For DEBIAN, enable CPACK_DEBIAN_PACKAGE_SHLIBDEPS to generate a package dependency list. For RPM, enable CPACK_RPM_PACKAGE_AUTOREQPROV to automatically generate lists of shared libraries that this package requires and provides. Signed-off-by: David Galiffi * Manually derive RPM provides list for libunwind. [Why] `dnf install` fails dependency resolution [How] Auto-generation did not add it to the "provides" list, despite it being included in the package when OMNITRACE_BUILD_LIBUNWIND is enabled. So, manually include these in the "CPACK_RPM_PACKAGE_PROVIDES" parameter. Signed-off-by: David Galiffi * Fix cmake-format linting Signed-off-by: David Galiffi --------- Signed-off-by: David Galiffi [ROCm/rocprofiler-systems commit: 129580b41653656beb8033de6f4d7801cfa17cbe] --- .../cmake/ConfigCPack.cmake | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/projects/rocprofiler-systems/cmake/ConfigCPack.cmake b/projects/rocprofiler-systems/cmake/ConfigCPack.cmake index 37ff4ff606..208e6beb6a 100644 --- a/projects/rocprofiler-systems/cmake/ConfigCPack.cmake +++ b/projects/rocprofiler-systems/cmake/ConfigCPack.cmake @@ -180,7 +180,9 @@ string(REPLACE ";" ", " _DEBIAN_PACKAGE_DEPENDS "${_DEBIAN_PACKAGE_DEPENDS}") set(CPACK_DEBIAN_PACKAGE_DEPENDS "${_DEBIAN_PACKAGE_DEPENDS}" CACHE STRING "Debian package dependencies" FORCE) + set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT") +set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) # -------------------------------------------------------------------------------------- # # @@ -198,8 +200,23 @@ string(REGEX REPLACE "([a-zA-Z])-([0-9])" "\\1\\2" CPACK_RPM_PACKAGE_RELEASE "${CPACK_RPM_PACKAGE_RELEASE}") string(REPLACE "-" "~" CPACK_RPM_PACKAGE_RELEASE "${CPACK_RPM_PACKAGE_RELEASE}") +set(_RPM_PACKAGE_PROVIDES "") + +if(OMNITRACE_BUILD_LIBUNWIND) + list(APPEND _RPM_PACKAGE_PROVIDES "libunwind.so.99()(64bit)") + list(APPEND _RPM_PACKAGE_PROVIDES "libunwind-x86_64.so.99()(64bit)") + list(APPEND _RPM_PACKAGE_PROVIDES "libunwind-setjmp.so.0()(64bit)") + list(APPEND _RPM_PACKAGE_PROVIDES "libunwind-ptrace.so.0()(64bit)") +endif() + +string(REPLACE ";" ", " CPACK_RPM_PACKAGE_PROVIDES "${_RPM_PACKAGE_PROVIDES}") +set(CPACK_RPM_PACKAGE_PROVIDES + "${CPACK_RPM_PACKAGE_PROVIDES}" + CACHE STRING "RPM package provides" FORCE) + set(CPACK_RPM_FILE_NAME "RPM-DEFAULT") set(CPACK_RPM_PACKAGE_RELEASE_DIST ON) +set(CPACK_RPM_PACKAGE_AUTOREQPROV ON) # -------------------------------------------------------------------------------------- # # @@ -230,9 +247,15 @@ omnitrace_add_feature(CPACK_PACKAGING_INSTALL_PREFIX "Package installation prefi omnitrace_add_feature(CPACK_DEBIAN_FILE_NAME "Debian file name") omnitrace_add_feature(CPACK_DEBIAN_PACKAGE_RELEASE "Debian package release version") omnitrace_add_feature(CPACK_DEBIAN_PACKAGE_DEPENDS "Debian package dependencies") +omnitrace_add_feature(CPACK_DEBIAN_PACKAGE_SHLIBDEPS + "Debian package shared library dependencies") omnitrace_add_feature(CPACK_RPM_FILE_NAME "RPM file name") omnitrace_add_feature(CPACK_RPM_PACKAGE_RELEASE "RPM package release version") omnitrace_add_feature(CPACK_RPM_PACKAGE_REQUIRES "RPM package dependencies") +omnitrace_add_feature(CPACK_RPM_PACKAGE_AUTOREQPROV + "RPM package auto generate requires and provides") +omnitrace_add_feature(CPACK_RPM_PACKAGE_REQUIRES "RPM package requires") +omnitrace_add_feature(CPACK_RPM_PACKAGE_PROVIDES "RPM package provides") include(CPack)