--- /dev/null
+From 545532ec468d0dc768fee8a5e83153440509b273 Mon Sep 17 00:00:00 2001
+From: Pietro Cerutti <gahr@gahr.ch>
+Date: Tue, 1 Oct 2024 12:10:40 +0000
+Subject: [PATCH] Use IMPORTED_TARGET for 3rd-party dependencies
+
+The current CMakeLists.txt fails to include the required link directories for 3rd-party packages.
+As an example, on FreeBSD where packages are installed under /usr/local, the link lines include -lgio-2.0 but not -L/usr/local/lib.
+
+The suggested solution is to use the IMPORTED_TARGET mode of pkg_check_modules. This requires CMake 3.6, so I have bumped the minimum required version.
+
+Upstream-Status: Backport [89fa02828cdaf1c710c38bde5fcbcf59538a9cce]
+Signed-off-by: Moritz Haase <Moritz.Haase@bmw.de>
+---
+ CMakeLists.txt | 22 +++++++++++-----------
+ src/CMakeLists.txt | 36 ++++++++++++++++++------------------
+ tests/CMakeLists.txt | 30 +++++++++++++++---------------
+ 3 files changed, 44 insertions(+), 44 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9a18393f526a4eb74a53d5bddc84f75afcf0499c..c4bf525200ba24eb69ad08feb68b30f065bdac22 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-CMAKE_MINIMUM_REQUIRED (VERSION 2.8.12)
++CMAKE_MINIMUM_REQUIRED (VERSION 3.7)
+ PROJECT (createrepo_c C)
+
+ include(GNUInstallDirs)
+@@ -39,13 +39,13 @@ find_package(LibXml2 REQUIRED)
+ find_package(OpenSSL REQUIRED)
+ find_package(ZLIB REQUIRED)
+
+-pkg_check_modules(GLIB2 REQUIRED glib-2.0)
+-pkg_check_modules(GIO REQUIRED gio-2.0)
+-pkg_check_modules(GTHREAD2 REQUIRED gthread-2.0)
+-pkg_check_modules(LZMA REQUIRED liblzma)
+-pkg_check_modules(SQLITE3 REQUIRED sqlite3>=3.6.18)
+-pkg_check_modules(RPM REQUIRED rpm)
+-pkg_check_modules(ZSTD REQUIRED libzstd)
++pkg_check_modules(GLIB2 REQUIRED IMPORTED_TARGET glib-2.0)
++pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0)
++pkg_check_modules(GTHREAD2 REQUIRED IMPORTED_TARGET gthread-2.0)
++pkg_check_modules(LZMA REQUIRED IMPORTED_TARGET liblzma)
++pkg_check_modules(SQLITE3 REQUIRED IMPORTED_TARGET sqlite3>=3.6.18)
++pkg_check_modules(RPM REQUIRED IMPORTED_TARGET rpm)
++pkg_check_modules(ZSTD REQUIRED IMPORTED_TARGET libzstd)
+
+ # Add include dirs
+
+@@ -73,7 +73,7 @@ ENDIF (WITH_LEGACY_HASHES)
+ # drpm
+ OPTION (ENABLE_DRPM "Enable delta RPM support?" OFF)
+ IF (ENABLE_DRPM)
+- pkg_check_modules(DRPM REQUIRED drpm>=0.4.0)
++ pkg_check_modules(DRPM REQUIRED IMPORTED_TARGET drpm>=0.4.0)
+ include_directories (${DRPM_INCLUDE_DIRS})
+ ADD_DEFINITIONS("-DCR_DELTA_RPM_SUPPORT")
+ ENDIF (ENABLE_DRPM)
+@@ -83,7 +83,7 @@ OPTION (ENABLE_PYTHON "Enable python support?" ON)
+
+ OPTION (WITH_ZCHUNK "Build with zchunk support" ON)
+ IF (WITH_ZCHUNK)
+- pkg_check_modules(ZCK REQUIRED zck)
++ pkg_check_modules(ZCK REQUIRED IMPORTED_TARGET zck)
+ include_directories(${ZCK_INCLUDE_DIRS})
+ SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWITH_ZCHUNK")
+ SET (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DWITH_ZCHUNK")
+@@ -91,7 +91,7 @@ ENDIF (WITH_ZCHUNK)
+
+ OPTION (WITH_LIBMODULEMD "Build with libmodulemd support" ON)
+ IF (WITH_LIBMODULEMD)
+- pkg_check_modules(LIBMODULEMD REQUIRED modulemd-2.0)
++ pkg_check_modules(LIBMODULEMD REQUIRED IMPORTED_TARGET modulemd-2.0)
+ include_directories(${LIBMODULEMD_INCLUDE_DIRS})
+ SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWITH_LIBMODULEMD")
+ SET (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DWITH_LIBMODULEMD")
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 61b048044392b4204984af8969c3b1d74a9b8094..5309050bdadf6a14d9cddf4529d309ef97cc6d2c 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -86,18 +86,18 @@ ENDIF ()
+ ADD_LIBRARY(libcreaterepo_c ${createrepo_c_library_type} ${createrepo_c_SRCS})
+ TARGET_LINK_LIBRARIES(libcreaterepo_c ${BZIP2_LIBRARIES})
+ TARGET_LINK_LIBRARIES(libcreaterepo_c ${CURL_LIBRARY})
+-TARGET_LINK_LIBRARIES(libcreaterepo_c ${GLIB2_LIBRARIES})
+-TARGET_LINK_LIBRARIES(libcreaterepo_c ${GIO_LIBRARIES})
+-TARGET_LINK_LIBRARIES(libcreaterepo_c ${LIBMODULEMD_LIBRARIES})
++TARGET_LINK_LIBRARIES(libcreaterepo_c PkgConfig::GLIB2)
++TARGET_LINK_LIBRARIES(libcreaterepo_c PkgConfig::GIO)
++TARGET_LINK_LIBRARIES(libcreaterepo_c PkgConfig::LIBMODULEMD)
+ TARGET_LINK_LIBRARIES(libcreaterepo_c ${LIBXML2_LIBRARIES})
+-TARGET_LINK_LIBRARIES(libcreaterepo_c ${LZMA_LIBRARIES})
++TARGET_LINK_LIBRARIES(libcreaterepo_c PkgConfig::LZMA)
+ TARGET_LINK_LIBRARIES(libcreaterepo_c ${OPENSSL_LIBRARIES})
+-TARGET_LINK_LIBRARIES(libcreaterepo_c ${RPM_LIBRARIES})
+-TARGET_LINK_LIBRARIES(libcreaterepo_c ${SQLITE3_LIBRARIES})
++TARGET_LINK_LIBRARIES(libcreaterepo_c PkgConfig::RPM)
++TARGET_LINK_LIBRARIES(libcreaterepo_c PkgConfig::SQLITE3)
+ TARGET_LINK_LIBRARIES(libcreaterepo_c ${ZLIB_LIBRARY})
+-TARGET_LINK_LIBRARIES(libcreaterepo_c ${ZCK_LIBRARIES})
+-TARGET_LINK_LIBRARIES(libcreaterepo_c ${DRPM_LIBRARIES})
+-TARGET_LINK_LIBRARIES(libcreaterepo_c ${ZSTD_LIBRARIES})
++TARGET_LINK_LIBRARIES(libcreaterepo_c PkgConfig::ZCK)
++TARGET_LINK_LIBRARIES(libcreaterepo_c PkgConfig::DRPM)
++TARGET_LINK_LIBRARIES(libcreaterepo_c PkgConfig::ZSTD)
+
+ SET_TARGET_PROPERTIES(libcreaterepo_c PROPERTIES
+ OUTPUT_NAME "createrepo_c"
+@@ -108,27 +108,27 @@ SET_TARGET_PROPERTIES(libcreaterepo_c PROPERTIES
+ ADD_EXECUTABLE(createrepo_c createrepo_c.c cmd_parser.c)
+ TARGET_LINK_LIBRARIES(createrepo_c
+ libcreaterepo_c
+- ${GLIB2_LIBRARIES}
+- ${GTHREAD2_LIBRARIES})
++ PkgConfig::GLIB2
++ PkgConfig::GTHREAD2)
+
+ ADD_EXECUTABLE(mergerepo_c mergerepo_c.c)
+ TARGET_LINK_LIBRARIES(mergerepo_c
+ libcreaterepo_c
+- ${GLIB2_LIBRARIES}
+- ${GTHREAD2_LIBRARIES}
+- ${LIBMODULEMD_LIBRARIES})
++ PkgConfig::GLIB2
++ PkgConfig::GTHREAD2
++ PkgConfig::LIBMODULEMD)
+
+ ADD_EXECUTABLE(modifyrepo_c modifyrepo_c.c)
+ TARGET_LINK_LIBRARIES(modifyrepo_c
+ libcreaterepo_c
+- ${GLIB2_LIBRARIES}
+- ${GTHREAD2_LIBRARIES})
++ PkgConfig::GLIB2
++ PkgConfig::GTHREAD2)
+
+ ADD_EXECUTABLE(sqliterepo_c sqliterepo_c.c)
+ TARGET_LINK_LIBRARIES(sqliterepo_c
+ libcreaterepo_c
+- ${GLIB2_LIBRARIES}
+- ${GTHREAD2_LIBRARIES})
++ PkgConfig::GLIB2
++ PkgConfig::GTHREAD2)
+
+ CONFIGURE_FILE("createrepo_c.pc.cmake" "${CMAKE_SOURCE_DIR}/src/createrepo_c.pc" @ONLY)
+ CONFIGURE_FILE("version.h.in" "${CMAKE_CURRENT_SOURCE_DIR}/version.h" @ONLY)
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index 4ffe837edb64153a7261d19dbaf67aceac4b5746..37339ad75190827a8e501de64dbf929f9aee4cd4 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -1,61 +1,61 @@
+ ADD_EXECUTABLE(test_checksum test_checksum.c)
+-TARGET_LINK_LIBRARIES(test_checksum libcreaterepo_c ${GLIB2_LIBRARIES})
++TARGET_LINK_LIBRARIES(test_checksum libcreaterepo_c PkgConfig::GLIB2)
+ ADD_DEPENDENCIES(tests test_checksum)
+
+ ADD_EXECUTABLE(test_compression_wrapper test_compression_wrapper.c)
+-TARGET_LINK_LIBRARIES(test_compression_wrapper libcreaterepo_c ${GLIB2_LIBRARIES})
++TARGET_LINK_LIBRARIES(test_compression_wrapper libcreaterepo_c PkgConfig::GLIB2)
+ ADD_DEPENDENCIES(tests test_compression_wrapper)
+
+ ADD_EXECUTABLE(test_load_metadata test_load_metadata.c)
+-TARGET_LINK_LIBRARIES(test_load_metadata libcreaterepo_c ${GLIB2_LIBRARIES})
++TARGET_LINK_LIBRARIES(test_load_metadata libcreaterepo_c PkgConfig::GLIB2)
+ ADD_DEPENDENCIES(tests test_load_metadata)
+
+ ADD_EXECUTABLE(test_locate_metadata test_locate_metadata.c)
+-TARGET_LINK_LIBRARIES(test_locate_metadata libcreaterepo_c ${GLIB2_LIBRARIES})
++TARGET_LINK_LIBRARIES(test_locate_metadata libcreaterepo_c PkgConfig::GLIB2)
+ ADD_DEPENDENCIES(tests test_locate_metadata)
+
+ ADD_EXECUTABLE(test_misc test_misc.c)
+-TARGET_LINK_LIBRARIES(test_misc libcreaterepo_c ${GLIB2_LIBRARIES})
++TARGET_LINK_LIBRARIES(test_misc libcreaterepo_c PkgConfig::GLIB2)
+ ADD_DEPENDENCIES(tests test_misc)
+
+ ADD_EXECUTABLE(test_sqlite test_sqlite.c)
+-TARGET_LINK_LIBRARIES(test_sqlite libcreaterepo_c ${GLIB2_LIBRARIES})
++TARGET_LINK_LIBRARIES(test_sqlite libcreaterepo_c PkgConfig::GLIB2)
+ ADD_DEPENDENCIES(tests test_sqlite)
+
+ ADD_EXECUTABLE(test_xml_file test_xml_file.c)
+-TARGET_LINK_LIBRARIES(test_xml_file libcreaterepo_c ${GLIB2_LIBRARIES})
++TARGET_LINK_LIBRARIES(test_xml_file libcreaterepo_c PkgConfig::GLIB2)
+ ADD_DEPENDENCIES(tests test_xml_file)
+
+ ADD_EXECUTABLE(test_xml_parser_filelists test_xml_parser_filelists.c)
+-TARGET_LINK_LIBRARIES(test_xml_parser_filelists libcreaterepo_c ${GLIB2_LIBRARIES})
++TARGET_LINK_LIBRARIES(test_xml_parser_filelists libcreaterepo_c PkgConfig::GLIB2)
+ ADD_DEPENDENCIES(tests test_xml_parser_filelists)
+
+ ADD_EXECUTABLE(test_xml_parser_repomd test_xml_parser_repomd.c)
+-TARGET_LINK_LIBRARIES(test_xml_parser_repomd libcreaterepo_c ${GLIB2_LIBRARIES})
++TARGET_LINK_LIBRARIES(test_xml_parser_repomd libcreaterepo_c PkgConfig::GLIB2)
+ ADD_DEPENDENCIES(tests test_xml_parser_repomd)
+
+ ADD_EXECUTABLE(test_xml_parser_updateinfo test_xml_parser_updateinfo.c)
+-TARGET_LINK_LIBRARIES(test_xml_parser_updateinfo libcreaterepo_c ${GLIB2_LIBRARIES})
++TARGET_LINK_LIBRARIES(test_xml_parser_updateinfo libcreaterepo_c PkgConfig::GLIB2)
+ ADD_DEPENDENCIES(tests test_xml_parser_updateinfo)
+
+ ADD_EXECUTABLE(test_xml_parser_main_metadata_together test_xml_parser_main_metadata_together.c)
+-TARGET_LINK_LIBRARIES(test_xml_parser_main_metadata_together libcreaterepo_c ${GLIB2_LIBRARIES})
++TARGET_LINK_LIBRARIES(test_xml_parser_main_metadata_together libcreaterepo_c PkgConfig::GLIB2)
+ ADD_DEPENDENCIES(tests test_xml_parser_main_metadata_together)
+
+ ADD_EXECUTABLE(test_xml_dump test_xml_dump.c)
+-TARGET_LINK_LIBRARIES(test_xml_dump libcreaterepo_c ${GLIB2_LIBRARIES})
++TARGET_LINK_LIBRARIES(test_xml_dump libcreaterepo_c PkgConfig::GLIB2)
+ ADD_DEPENDENCIES(tests test_xml_dump)
+
+ ADD_EXECUTABLE(test_xml_dump_primary test_xml_dump_primary.c)
+-TARGET_LINK_LIBRARIES(test_xml_dump_primary libcreaterepo_c ${GLIB2_LIBRARIES})
++TARGET_LINK_LIBRARIES(test_xml_dump_primary libcreaterepo_c PkgConfig::GLIB2)
+ ADD_DEPENDENCIES(tests test_xml_dump_primary)
+
+ ADD_EXECUTABLE(test_koji test_koji.c)
+-TARGET_LINK_LIBRARIES(test_koji libcreaterepo_c ${GLIB2_LIBRARIES})
++TARGET_LINK_LIBRARIES(test_koji libcreaterepo_c PkgConfig::GLIB2)
+ ADD_DEPENDENCIES(tests test_koji)
+
+ ADD_EXECUTABLE(test_modifyrepo_shared test_modifyrepo_shared.c)
+-TARGET_LINK_LIBRARIES(test_modifyrepo_shared libcreaterepo_c ${GLIB2_LIBRARIES})
++TARGET_LINK_LIBRARIES(test_modifyrepo_shared libcreaterepo_c PkgConfig::GLIB2)
+ ADD_DEPENDENCIES(tests test_modifyrepo_shared)
+
+ CONFIGURE_FILE("run_tests.sh.in" "${CMAKE_BINARY_DIR}/tests/run_tests.sh")
--- /dev/null
+From cfd899731f40695e9fd362dc64098e27636808fe Mon Sep 17 00:00:00 2001
+From: Pietro Cerutti <gahr@gahr.ch>
+Date: Mon, 14 Oct 2024 11:49:42 +0000
+Subject: [PATCH] Don't try to use imported targets of turned-off dependencies
+
+Upstream-Status: Backport [0a2da7c87ae9b7e3e11e77416a8e75633d4608a0]
+Signed-off-by: Moritz Haase <Moritz.Haase@bmw.de>
+---
+ src/CMakeLists.txt | 18 +++++++++++++-----
+ 1 file changed, 13 insertions(+), 5 deletions(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 5309050bdadf6a14d9cddf4529d309ef97cc6d2c..9444875ff1a2fd2ce0ccc678e121ea54ce0d1b83 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -88,15 +88,21 @@ TARGET_LINK_LIBRARIES(libcreaterepo_c ${BZIP2_LIBRARIES})
+ TARGET_LINK_LIBRARIES(libcreaterepo_c ${CURL_LIBRARY})
+ TARGET_LINK_LIBRARIES(libcreaterepo_c PkgConfig::GLIB2)
+ TARGET_LINK_LIBRARIES(libcreaterepo_c PkgConfig::GIO)
+-TARGET_LINK_LIBRARIES(libcreaterepo_c PkgConfig::LIBMODULEMD)
++IF (WITH_LIBMODULEMD)
++ TARGET_LINK_LIBRARIES(libcreaterepo_c PkgConfig::LIBMODULEMD)
++ENDIF (WITH_LIBMODULEMD)
+ TARGET_LINK_LIBRARIES(libcreaterepo_c ${LIBXML2_LIBRARIES})
+ TARGET_LINK_LIBRARIES(libcreaterepo_c PkgConfig::LZMA)
+ TARGET_LINK_LIBRARIES(libcreaterepo_c ${OPENSSL_LIBRARIES})
+ TARGET_LINK_LIBRARIES(libcreaterepo_c PkgConfig::RPM)
+ TARGET_LINK_LIBRARIES(libcreaterepo_c PkgConfig::SQLITE3)
+ TARGET_LINK_LIBRARIES(libcreaterepo_c ${ZLIB_LIBRARY})
+-TARGET_LINK_LIBRARIES(libcreaterepo_c PkgConfig::ZCK)
+-TARGET_LINK_LIBRARIES(libcreaterepo_c PkgConfig::DRPM)
++IF (WITH_ZCHUNK)
++ TARGET_LINK_LIBRARIES(libcreaterepo_c PkgConfig::ZCK)
++ENDIF (WITH_ZCHUNK)
++IF (ENABLE_DRPM)
++ TARGET_LINK_LIBRARIES(libcreaterepo_c PkgConfig::DRPM)
++ENDIF (ENABLE_DRPM)
+ TARGET_LINK_LIBRARIES(libcreaterepo_c PkgConfig::ZSTD)
+
+ SET_TARGET_PROPERTIES(libcreaterepo_c PROPERTIES
+@@ -115,8 +121,10 @@ ADD_EXECUTABLE(mergerepo_c mergerepo_c.c)
+ TARGET_LINK_LIBRARIES(mergerepo_c
+ libcreaterepo_c
+ PkgConfig::GLIB2
+- PkgConfig::GTHREAD2
+- PkgConfig::LIBMODULEMD)
++ PkgConfig::GTHREAD2)
++IF (WITH_LIBMODULEMD)
++ TARGET_LINK_LIBRARIES(mergerepo_c PkgConfig::LIBMODULEMD)
++ENDIF (WITH_LIBMODULEMD)
+
+ ADD_EXECUTABLE(modifyrepo_c modifyrepo_c.c)
+ TARGET_LINK_LIBRARIES(modifyrepo_c