diff --git a/srcpkgs/digikam/patches/fix-build-with-exiv2-0.28.1.patch b/srcpkgs/digikam/patches/fix-build-with-exiv2-0.28.1.patch new file mode 100644 index 00000000000..2a01b4545e7 --- /dev/null +++ b/srcpkgs/digikam/patches/fix-build-with-exiv2-0.28.1.patch @@ -0,0 +1,422 @@ +From a76a561b20e7300510b29edc97afab01e381c0ec Mon Sep 17 00:00:00 2001 +From: Maik Qualmann +Date: Wed, 8 Nov 2023 23:13:26 +0100 +Subject: [PATCH 1/5] fix compile with Exiv2-0.28.1 It should still compile + even with smaller Exiv2 versions. + +--- + core/CMakeLists.txt | 4 ++-- + core/app/DigikamCoreTarget.cmake | 2 +- + core/cmake/rules/RulesLibExiv2.cmake | 8 ++++---- + core/libs/metadataengine/CMakeLists.txt | 4 ++-- + 4 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt +index c694c4b176..d5dc2f0dd8 100644 +--- a/core/CMakeLists.txt ++++ b/core/CMakeLists.txt +@@ -255,7 +255,7 @@ PRINT_COMPONENT_COMPILE_STATUS("Media Player Support" ENAB + # ============================================================================== + + PRINT_LIBRARY_STATUS("libboostgraph" "https://github.com/boostorg/boost" "(version >= 1.43.0)" Boost_FOUND) +-PRINT_LIBRARY_STATUS("libexiv2" "https://github.com/Exiv2/exiv2" "(version >= ${EXIV2_MIN_VERSION}" exiv2_FOUND) ++PRINT_LIBRARY_STATUS("libexiv2" "https://github.com/Exiv2/exiv2" "(version >= ${EXIV2_MIN_VERSION}" LibExiv2_FOUND) + PRINT_LIBRARY_STATUS("libexpat" "https://libexpat.github.io" "(version >= 2.0.0)" EXPAT_FOUND) + PRINT_LIBRARY_STATUS("libjpeg" "https://github.com/libjpeg-turbo/libjpeg-turbo" "(version >= 6b)" JPEG_FOUND) + PRINT_LIBRARY_STATUS("libkde" "https://invent.kde.org/frameworks/" "(version >= ${KF5_MIN_VERSION})" KF5_FOUND) +@@ -306,7 +306,7 @@ endif() + # ============================================================================== + + if(Boost_FOUND AND +- exiv2_FOUND AND ++ LibExiv2_FOUND AND + EXPAT_FOUND AND + JPEG_FOUND AND + KF5_FOUND AND +diff --git a/core/app/DigikamCoreTarget.cmake b/core/app/DigikamCoreTarget.cmake +index 83fda1b35f..8221a2d632 100644 +--- a/core/app/DigikamCoreTarget.cmake ++++ b/core/app/DigikamCoreTarget.cmake +@@ -151,7 +151,7 @@ target_link_libraries(digikamcore + ${TIFF_LIBRARIES} + PNG::PNG + ${JPEG_LIBRARIES} +- exiv2lib ++ ${LibExiv2_LIBRARIES} + + ${OPENMP_LDFLAGS} + +diff --git a/core/cmake/rules/RulesLibExiv2.cmake b/core/cmake/rules/RulesLibExiv2.cmake +index c8b37d307c..a8ca259432 100644 +--- a/core/cmake/rules/RulesLibExiv2.cmake ++++ b/core/cmake/rules/RulesLibExiv2.cmake +@@ -4,7 +4,7 @@ + # SPDX-License-Identifier: BSD-3-Clause + # + +-find_package(exiv2 REQUIRED) ++find_package(LibExiv2 REQUIRED) + + set_package_properties("exiv2" PROPERTIES + DESCRIPTION "Required to build digiKam" +@@ -13,13 +13,13 @@ set_package_properties("exiv2" PROPERTIES + PURPOSE "Library to manage image metadata" + ) + +-if("${exiv2_VERSION}" VERSION_LESS ${EXIV2_MIN_VERSION}) ++if("${LibExiv2_VERSION}" VERSION_LESS ${EXIV2_MIN_VERSION}) + +- message(FATAL_ERROR "Exiv2 version is too old (${exiv2_VERSION})! Minimal version required:${EXIV2_MIN_VERSION}.") ++ message(FATAL_ERROR "Exiv2 version is too old (${LibExiv2_VERSION})! Minimal version required:${EXIV2_MIN_VERSION}.") + + endif() + +-if("${exiv2_VERSION}" VERSION_LESS "0.27.99") ++if("${LibExiv2_VERSION}" VERSION_LESS "0.27.99") + + set(EXIV2_CXX_STANDARD 11) + +diff --git a/core/libs/metadataengine/CMakeLists.txt b/core/libs/metadataengine/CMakeLists.txt +index 47aa889d5e..bd4dba0bbd 100644 +--- a/core/libs/metadataengine/CMakeLists.txt ++++ b/core/libs/metadataengine/CMakeLists.txt +@@ -18,7 +18,7 @@ endif() + + # Exiv2 version < 0.28 use auto_ptr instead unique_ptr which is deprecated. + +-if("${exiv2_VERSION}" VERSION_LESS "0.27.99") ++if("${LibExiv2_VERSION}" VERSION_LESS "0.27.99") + + DISABLE_GCC_COMPILER_WARNINGS("5.99.99" "-Wno-deprecated") + +@@ -112,7 +112,7 @@ include_directories( + $ + $ + +- $ ++ $ + ) + + # Used by digikamcore +-- +2.42.0 + + +From ee487a753a652c588b88fa18aeb885105c17368d Mon Sep 17 00:00:00 2001 +From: Maik Qualmann +Date: Thu, 9 Nov 2023 18:49:18 +0100 +Subject: [PATCH 2/5] recognize both Exiv2 CMake variants + +--- + core/CMakeLists.txt | 14 ++++++-- + core/app/DigikamCoreTarget.cmake | 17 ++++++++- + core/cmake/rules/RulesLibExiv2.cmake | 46 +++++++++++++++++++++---- + core/libs/metadataengine/CMakeLists.txt | 12 +++++-- + 4 files changed, 77 insertions(+), 12 deletions(-) + +diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt +index d5dc2f0dd8..855fdcf185 100644 +--- a/core/CMakeLists.txt ++++ b/core/CMakeLists.txt +@@ -255,7 +255,17 @@ PRINT_COMPONENT_COMPILE_STATUS("Media Player Support" ENAB + # ============================================================================== + + PRINT_LIBRARY_STATUS("libboostgraph" "https://github.com/boostorg/boost" "(version >= 1.43.0)" Boost_FOUND) +-PRINT_LIBRARY_STATUS("libexiv2" "https://github.com/Exiv2/exiv2" "(version >= ${EXIV2_MIN_VERSION}" LibExiv2_FOUND) ++ ++if(LibExiv2_FOUND) ++ ++ PRINT_LIBRARY_STATUS("libexiv2" "https://github.com/Exiv2/exiv2" "(version >= ${EXIV2_MIN_VERSION}" LibExiv2_FOUND) ++ ++else() ++ ++ PRINT_LIBRARY_STATUS("libexiv2" "https://github.com/Exiv2/exiv2" "(version >= ${EXIV2_MIN_VERSION}" exiv2_FOUND) ++ ++endif() ++ + PRINT_LIBRARY_STATUS("libexpat" "https://libexpat.github.io" "(version >= 2.0.0)" EXPAT_FOUND) + PRINT_LIBRARY_STATUS("libjpeg" "https://github.com/libjpeg-turbo/libjpeg-turbo" "(version >= 6b)" JPEG_FOUND) + PRINT_LIBRARY_STATUS("libkde" "https://invent.kde.org/frameworks/" "(version >= ${KF5_MIN_VERSION})" KF5_FOUND) +@@ -306,7 +316,7 @@ endif() + # ============================================================================== + + if(Boost_FOUND AND +- LibExiv2_FOUND AND ++ (LibExiv2_FOUND OR exiv2_FOUND) AND + EXPAT_FOUND AND + JPEG_FOUND AND + KF5_FOUND AND +diff --git a/core/app/DigikamCoreTarget.cmake b/core/app/DigikamCoreTarget.cmake +index 8221a2d632..80bd153caa 100644 +--- a/core/app/DigikamCoreTarget.cmake ++++ b/core/app/DigikamCoreTarget.cmake +@@ -151,7 +151,6 @@ target_link_libraries(digikamcore + ${TIFF_LIBRARIES} + PNG::PNG + ${JPEG_LIBRARIES} +- ${LibExiv2_LIBRARIES} + + ${OPENMP_LDFLAGS} + +@@ -164,6 +163,22 @@ target_link_libraries(digikamcore + opencv_flann + ) + ++if(LibExiv2_FOUND) ++ ++ target_link_libraries(digikamcore ++ PRIVATE ++ ${LibExiv2_LIBRARIES} ++ ) ++ ++else() ++ ++ target_link_libraries(digikamcore ++ PRIVATE ++ exiv2lib ++ ) ++ ++endif() ++ + if(Qt6_FOUND) + target_link_libraries(digikamcore + PRIVATE +diff --git a/core/cmake/rules/RulesLibExiv2.cmake b/core/cmake/rules/RulesLibExiv2.cmake +index a8ca259432..e568644ca4 100644 +--- a/core/cmake/rules/RulesLibExiv2.cmake ++++ b/core/cmake/rules/RulesLibExiv2.cmake +@@ -4,7 +4,17 @@ + # SPDX-License-Identifier: BSD-3-Clause + # + +-find_package(LibExiv2 REQUIRED) ++find_package(LibExiv2 OPTIONAL_COMPONENTS) ++ ++if(LibExiv2_FOUND) ++ ++ find_package(LibExiv2 REQUIRED) ++ ++else() ++ ++ find_package(exiv2 REQUIRED) ++ ++endif() + + set_package_properties("exiv2" PROPERTIES + DESCRIPTION "Required to build digiKam" +@@ -13,18 +23,40 @@ set_package_properties("exiv2" PROPERTIES + PURPOSE "Library to manage image metadata" + ) + +-if("${LibExiv2_VERSION}" VERSION_LESS ${EXIV2_MIN_VERSION}) ++if(LibExiv2_FOUND) + +- message(FATAL_ERROR "Exiv2 version is too old (${LibExiv2_VERSION})! Minimal version required:${EXIV2_MIN_VERSION}.") ++ if("${LibExiv2_VERSION}" VERSION_LESS ${EXIV2_MIN_VERSION}) + +-endif() ++ message(FATAL_ERROR "Exiv2 version is too old (${LibExiv2_VERSION})! Minimal version required:${EXIV2_MIN_VERSION}.") ++ ++ endif() ++ ++ if("${LibExiv2_VERSION}" VERSION_LESS "0.27.99") + +-if("${LibExiv2_VERSION}" VERSION_LESS "0.27.99") ++ set(EXIV2_CXX_STANDARD 11) + +- set(EXIV2_CXX_STANDARD 11) ++ else() ++ ++ set(EXIV2_CXX_STANDARD 17) ++ ++ endif() + + else() + +- set(EXIV2_CXX_STANDARD 17) ++ if("${exiv2_VERSION}" VERSION_LESS ${EXIV2_MIN_VERSION}) ++ ++ message(FATAL_ERROR "Exiv2 version is too old (${exiv2_VERSION})! Minimal version required:${EXIV2_MIN_VERSION}.") ++ ++ endif() ++ ++ if("${exiv2_VERSION}" VERSION_LESS "0.27.99") ++ ++ set(EXIV2_CXX_STANDARD 11) ++ ++ else() ++ ++ set(EXIV2_CXX_STANDARD 17) ++ ++ endif() + + endif() +diff --git a/core/libs/metadataengine/CMakeLists.txt b/core/libs/metadataengine/CMakeLists.txt +index bd4dba0bbd..a4124d17e0 100644 +--- a/core/libs/metadataengine/CMakeLists.txt ++++ b/core/libs/metadataengine/CMakeLists.txt +@@ -111,10 +111,18 @@ include_directories( + + $ + $ +- +- $ + ) + ++if(LibExiv2_FOUND) ++ ++ include_directories($) ++ ++else() ++ ++ include_directories($) ++ ++endif() ++ + # Used by digikamcore + add_library(core_dmetadata_obj OBJECT ${libdmetadata_SRCS}) + +-- +2.42.0 + + +From af221dd7700fbf1e6e3b5245184381d2b74ec781 Mon Sep 17 00:00:00 2001 +From: Maik Qualmann +Date: Thu, 9 Nov 2023 19:12:44 +0100 +Subject: [PATCH 3/5] check version und clear LibExiv2_FOUND + +--- + core/cmake/rules/RulesLibExiv2.cmake | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/core/cmake/rules/RulesLibExiv2.cmake b/core/cmake/rules/RulesLibExiv2.cmake +index e568644ca4..de5ea80ec6 100644 +--- a/core/cmake/rules/RulesLibExiv2.cmake ++++ b/core/cmake/rules/RulesLibExiv2.cmake +@@ -6,12 +6,13 @@ + + find_package(LibExiv2 OPTIONAL_COMPONENTS) + +-if(LibExiv2_FOUND) ++if(LibExiv2_FOUND AND ("${LibExiv2_VERSION}" VERSION_GREATER "0.28.0")) + + find_package(LibExiv2 REQUIRED) + + else() + ++ set (LibExiv2_FOUND FALSE) + find_package(exiv2 REQUIRED) + + endif() +-- +2.42.0 + + +From fda83a6f7e03e4088f3a5903d036c1425d6303b9 Mon Sep 17 00:00:00 2001 +From: Maik Qualmann +Date: Thu, 9 Nov 2023 19:15:41 +0100 +Subject: [PATCH 4/5] adjust Exiv2 version + +--- + core/cmake/rules/RulesLibExiv2.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/core/cmake/rules/RulesLibExiv2.cmake b/core/cmake/rules/RulesLibExiv2.cmake +index de5ea80ec6..3db233cad2 100644 +--- a/core/cmake/rules/RulesLibExiv2.cmake ++++ b/core/cmake/rules/RulesLibExiv2.cmake +@@ -6,7 +6,7 @@ + + find_package(LibExiv2 OPTIONAL_COMPONENTS) + +-if(LibExiv2_FOUND AND ("${LibExiv2_VERSION}" VERSION_GREATER "0.28.0")) ++if(LibExiv2_FOUND AND ("${LibExiv2_VERSION}" VERSION_GREATER "0.27.99")) + + find_package(LibExiv2 REQUIRED) + +-- +2.42.0 + + +From 921ee9945f8c438f23b83add58d5737b539cd312 Mon Sep 17 00:00:00 2001 +From: Maik Qualmann +Date: Thu, 9 Nov 2023 21:35:09 +0100 +Subject: [PATCH 5/5] set correct exiv2 package name and less duplicate CMake + code + +--- + core/cmake/rules/RulesLibExiv2.cmake | 34 +++++++++++----------------- + 1 file changed, 13 insertions(+), 21 deletions(-) + +diff --git a/core/cmake/rules/RulesLibExiv2.cmake b/core/cmake/rules/RulesLibExiv2.cmake +index 3db233cad2..e3e667d946 100644 +--- a/core/cmake/rules/RulesLibExiv2.cmake ++++ b/core/cmake/rules/RulesLibExiv2.cmake +@@ -9,19 +9,21 @@ find_package(LibExiv2 OPTIONAL_COMPONENTS) + if(LibExiv2_FOUND AND ("${LibExiv2_VERSION}" VERSION_GREATER "0.27.99")) + + find_package(LibExiv2 REQUIRED) ++ set(EXIV2_PACKAGE_NAME "LibExiv2") + + else() + +- set (LibExiv2_FOUND FALSE) ++ set(LibExiv2_FOUND FALSE) + find_package(exiv2 REQUIRED) ++ set(EXIV2_PACKAGE_NAME "exiv2") + + endif() + +-set_package_properties("exiv2" PROPERTIES +- DESCRIPTION "Required to build digiKam" +- URL "https://www.exiv2.org" +- TYPE RECOMMENDED +- PURPOSE "Library to manage image metadata" ++set_package_properties(${EXIV2_PACKAGE_NAME} PROPERTIES ++ DESCRIPTION "Required to build digiKam" ++ URL "https://www.exiv2.org" ++ TYPE RECOMMENDED ++ PURPOSE "Library to manage image metadata" + ) + + if(LibExiv2_FOUND) +@@ -32,16 +34,6 @@ if(LibExiv2_FOUND) + + endif() + +- if("${LibExiv2_VERSION}" VERSION_LESS "0.27.99") +- +- set(EXIV2_CXX_STANDARD 11) +- +- else() +- +- set(EXIV2_CXX_STANDARD 17) +- +- endif() +- + else() + + if("${exiv2_VERSION}" VERSION_LESS ${EXIV2_MIN_VERSION}) +@@ -50,14 +42,14 @@ else() + + endif() + +- if("${exiv2_VERSION}" VERSION_LESS "0.27.99") ++endif() + +- set(EXIV2_CXX_STANDARD 11) ++if(("${exiv2_VERSION}" VERSION_GREATER "0.27.99") OR ("${LibExiv2_VERSION}" VERSION_GREATER "0.27.99")) + +- else() ++ set(EXIV2_CXX_STANDARD 17) + +- set(EXIV2_CXX_STANDARD 17) ++else() + +- endif() ++ set(EXIV2_CXX_STANDARD 11) + + endif() +-- +2.42.0 + diff --git a/srcpkgs/digikam/template b/srcpkgs/digikam/template index 206185f5654..4784bf7d62a 100644 --- a/srcpkgs/digikam/template +++ b/srcpkgs/digikam/template @@ -1,7 +1,7 @@ # Template file for 'digikam' pkgname=digikam version=8.1.0 -revision=1 +revision=2 build_style=cmake configure_args="-DBUILD_TESTING=OFF" hostmakedepends="extra-cmake-modules gettext pkg-config bison flex qt5-qmake