Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.2:Staging:F
libdnf
libdnf-0.39.1-with-static-libsolvext.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File libdnf-0.39.1-with-static-libsolvext.patch of Package libdnf
From f47193391e642f6ec418fa07cf13a13a6f866fce Mon Sep 17 00:00:00 2001 From: Neal Gompa <ngompa13@gmail.com> Date: Sun, 1 Dec 2019 11:15:07 -0500 Subject: [PATCH] Ensure libsolvext dynamic library dependencies are linked libsolv, when built only build with static link libraries, does not make a fully usable configuration for static libsolvext to be used because the CMake and pkgconfig files do not declare the appropriate libraries to successfully link a static libsolvext that has dynamic library dependencies. This patch works around it by doing the declarations here rather than in libsolv, since it's not easy to fix there, given upstream constraints. --- CMakeLists.txt | 12 ++++++++++++ cmake/modules/FindLZMA.cmake | 25 +++++++++++++++++++++++++ libdnf/CMakeLists.txt | 5 +++++ 3 files changed, 42 insertions(+) create mode 100644 cmake/modules/FindLZMA.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 834eea0..eba53cd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -108,6 +108,18 @@ endif() # valgrind path find_program(VALGRIND_PROGRAM NAMES valgrind PATH /usr/bin /usr/local/bin) +# Ensure that static libsolvext dynamic library dependencies are linked in +# libxml2 dependency +find_package (LibXml2 REQUIRED) +# zlib dependency +find_package (ZLIB REQUIRED) +# lzma dependency +find_package (LZMA REQUIRED) +# bzip2 dependency +find_package (BZip2 REQUIRED) +# zstd dependency +find_library (ZSTD_LIBRARY NAMES zstd) +# End static libsolvext dynamic library dependencies # compiler options add_compile_options(-Wcast-align -Wno-uninitialized -Wredundant-decls -Wwrite-strings -Wformat-nonliteral -Wmissing-format-attribute -Wsign-compare -Wtype-limits -Wuninitialized -Wall -Wl,--as-needed) diff --git a/cmake/modules/FindLZMA.cmake b/cmake/modules/FindLZMA.cmake new file mode 100644 index 0000000..eb112df --- /dev/null +++ b/cmake/modules/FindLZMA.cmake @@ -0,0 +1,25 @@ +# - Find lzma +# Find the native LZMA headers and library +# +# LZMA_INCLUDE_DIR - where to find lzma.h, etc. +# LZMA_LIBRARIES - List of libraries when using liblzma. +# LZMA_FOUND - True if liblzma found. + +IF (LZMA_INCLUDE_DIR) + # Already in cache, be silent + SET(LZMA_FIND_QUIETLY TRUE) +ENDIF (LZMA_INCLUDE_DIR) + +FIND_PATH(LZMA_INCLUDE_DIR lzma.h) +FIND_LIBRARY(LZMA_LIBRARY NAMES lzma liblzma) + +# handle the QUIETLY and REQUIRED arguments and set LZMA_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(LZMA DEFAULT_MSG LZMA_LIBRARY LZMA_INCLUDE_DIR) + +IF(LZMA_FOUND) + SET( LZMA_LIBRARIES ${LZMA_LIBRARY} ) +ELSE(LZMA_FOUND) + SET( LZMA_LIBRARIES ) +ENDIF(LZMA_FOUND) diff --git a/libdnf/CMakeLists.txt b/libdnf/CMakeLists.txt index dcee38b..62beb2b 100644 --- a/libdnf/CMakeLists.txt +++ b/libdnf/CMakeLists.txt @@ -72,6 +72,11 @@ target_link_libraries(libdnf ${LIBMODULEMD_LIBRARIES} ${SMARTCOLS_LIBRARIES} ${GPGME_VANILLA_LIBRARIES} + ${LIBXML2_LIBRARIES} + ${ZLIB_LIBRARY} + ${LZMA_LIBRARY} + ${BZIP2_LIBRARY} + ${ZSTD_LIBRARY} ) if(ENABLE_RHSM_SUPPORT) -- 2.21.0
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor