Skip to content

Commit 129580b

Browse files
authored
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 <[email protected]> * 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 <[email protected]> * Fix cmake-format linting Signed-off-by: David Galiffi <[email protected]> --------- Signed-off-by: David Galiffi <[email protected]>
1 parent 6bcd1d3 commit 129580b

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

cmake/ConfigCPack.cmake

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,9 @@ string(REPLACE ";" ", " _DEBIAN_PACKAGE_DEPENDS "${_DEBIAN_PACKAGE_DEPENDS}")
180180
set(CPACK_DEBIAN_PACKAGE_DEPENDS
181181
"${_DEBIAN_PACKAGE_DEPENDS}"
182182
CACHE STRING "Debian package dependencies" FORCE)
183+
183184
set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT")
185+
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
184186

185187
# -------------------------------------------------------------------------------------- #
186188
#
@@ -198,8 +200,23 @@ string(REGEX REPLACE "([a-zA-Z])-([0-9])" "\\1\\2" CPACK_RPM_PACKAGE_RELEASE
198200
"${CPACK_RPM_PACKAGE_RELEASE}")
199201
string(REPLACE "-" "~" CPACK_RPM_PACKAGE_RELEASE "${CPACK_RPM_PACKAGE_RELEASE}")
200202

203+
set(_RPM_PACKAGE_PROVIDES "")
204+
205+
if(OMNITRACE_BUILD_LIBUNWIND)
206+
list(APPEND _RPM_PACKAGE_PROVIDES "libunwind.so.99()(64bit)")
207+
list(APPEND _RPM_PACKAGE_PROVIDES "libunwind-x86_64.so.99()(64bit)")
208+
list(APPEND _RPM_PACKAGE_PROVIDES "libunwind-setjmp.so.0()(64bit)")
209+
list(APPEND _RPM_PACKAGE_PROVIDES "libunwind-ptrace.so.0()(64bit)")
210+
endif()
211+
212+
string(REPLACE ";" ", " CPACK_RPM_PACKAGE_PROVIDES "${_RPM_PACKAGE_PROVIDES}")
213+
set(CPACK_RPM_PACKAGE_PROVIDES
214+
"${CPACK_RPM_PACKAGE_PROVIDES}"
215+
CACHE STRING "RPM package provides" FORCE)
216+
201217
set(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
202218
set(CPACK_RPM_PACKAGE_RELEASE_DIST ON)
219+
set(CPACK_RPM_PACKAGE_AUTOREQPROV ON)
203220

204221
# -------------------------------------------------------------------------------------- #
205222
#
@@ -230,9 +247,15 @@ omnitrace_add_feature(CPACK_PACKAGING_INSTALL_PREFIX "Package installation prefi
230247
omnitrace_add_feature(CPACK_DEBIAN_FILE_NAME "Debian file name")
231248
omnitrace_add_feature(CPACK_DEBIAN_PACKAGE_RELEASE "Debian package release version")
232249
omnitrace_add_feature(CPACK_DEBIAN_PACKAGE_DEPENDS "Debian package dependencies")
250+
omnitrace_add_feature(CPACK_DEBIAN_PACKAGE_SHLIBDEPS
251+
"Debian package shared library dependencies")
233252

234253
omnitrace_add_feature(CPACK_RPM_FILE_NAME "RPM file name")
235254
omnitrace_add_feature(CPACK_RPM_PACKAGE_RELEASE "RPM package release version")
236255
omnitrace_add_feature(CPACK_RPM_PACKAGE_REQUIRES "RPM package dependencies")
256+
omnitrace_add_feature(CPACK_RPM_PACKAGE_AUTOREQPROV
257+
"RPM package auto generate requires and provides")
258+
omnitrace_add_feature(CPACK_RPM_PACKAGE_REQUIRES "RPM package requires")
259+
omnitrace_add_feature(CPACK_RPM_PACKAGE_PROVIDES "RPM package provides")
237260

238261
include(CPack)

0 commit comments

Comments
 (0)