Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libkexiv2 for openSUSE:Factory checked in at 2025-12-15 11:49:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libkexiv2 (Old) and /work/SRC/openSUSE:Factory/.libkexiv2.new.1939 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libkexiv2" Mon Dec 15 11:49:49 2025 rev:185 rq:1322487 version:25.12.0 Changes: -------- --- /work/SRC/openSUSE:Factory/libkexiv2/libkexiv2.changes 2025-11-08 16:29:46.072245074 +0100 +++ /work/SRC/openSUSE:Factory/.libkexiv2.new.1939/libkexiv2.changes 2025-12-15 11:51:30.638060587 +0100 @@ -1,0 +2,20 @@ +Sat Dec 6 11:41:08 UTC 2025 - Christophe Marin <[email protected]> + +- Update to 25.12.0 + * New feature release + * For more details please see: + * https://kde.org/announcements/gear/25.12.0/ +- No code change since 25.11.80 + +------------------------------------------------------------------- +Sat Nov 15 19:57:11 UTC 2025 - Christophe Marin <[email protected]> + +- Update to 25.11.80 + * New feature release +- Changes since 25.08.3: + * Use exiv2 own cmake config file + * Require exiv2 >= 0.27 + * Remove Qt5 support + * KExiv2Config.cmake.in: find LibExiv2 when building in static mode + +------------------------------------------------------------------- Old: ---- libkexiv2-25.08.3.tar.xz libkexiv2-25.08.3.tar.xz.sig New: ---- libkexiv2-25.12.0.tar.xz libkexiv2-25.12.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libkexiv2.spec ++++++ --- /var/tmp/diff_new_pack.Pu0AFV/_old 2025-12-15 11:51:31.566099696 +0100 +++ /var/tmp/diff_new_pack.Pu0AFV/_new 2025-12-15 11:51:31.570099864 +0100 @@ -21,20 +21,16 @@ %if "%{flavor}" == "qt6" %define qt6 1 %define pkg_suffix -qt6 -%define kf6_version 6.14.0 -%define qt6_version 6.8.0 +%define kf6_version 6.19.0 +%define qt6_version 6.9.0 %define library_name libKExiv2Qt6 %define so_suffix -0 %else -%define qt5 1 -%define kf5_version 5.91.0 -%define qt5_version 5.15.0 -%define library_name libKF5KExiv2 -%define so_suffix -15_0_0 +ExclusiveArch: do_not_build %endif %bcond_without released Name: libkexiv2%{?pkg_suffix} -Version: 25.08.3 +Version: 25.12.0 Release: 0 Summary: Library to manipulate picture meta data License: GPL-2.0-or-later @@ -50,10 +46,6 @@ BuildRequires: kf6-extra-cmake-modules >= %{kf6_version} BuildRequires: cmake(Qt6Core) >= %{qt6_version} BuildRequires: cmake(Qt6Gui) >= %{qt6_version} -%else -BuildRequires: extra-cmake-modules >= %{kf5_version} -BuildRequires: cmake(Qt5Core) >= %{qt5_version} -BuildRequires: cmake(Qt5Gui) >= %{qt5_version} %endif %description @@ -71,10 +63,6 @@ %package devel Summary: Build environment for libkexiv2 Requires: %{library_name}%{so_suffix} = %{version} -%if 0%{?qt5} -Provides: libkexiv2-kf5-devel = %{version} -Obsoletes: libkexiv2-kf5-devel < %{version} -%endif %description devel Libkexiv2 is a wrapper around Exiv2 library to manipulate pictures @@ -87,16 +75,11 @@ %if 0%{?qt6} %cmake_kf6 -DBUILD_WITH_QT6:BOOL=TRUE %kf6_build -%else -%cmake_kf5 -d build -%cmake_build %endif %install %if 0%{?qt6} %kf6_install -%else -%kf5_makeinstall -C build %endif %ldconfig_scriptlets -n %{library_name}%{so_suffix} @@ -104,8 +87,6 @@ %files %if 0%{?qt6} %{_kf6_debugdir}/libkexiv2.categories -%else -%{_kf5_debugdir}/libkexiv2.categories %endif %files -n %{library_name}%{so_suffix} @@ -117,9 +98,6 @@ %if 0%{?qt6} %{_kf6_cmakedir}/KExiv2Qt6/ %{_includedir}/KExiv2Qt6/ -%else -%{_kf5_cmakedir}/KF5KExiv2/ -%{_kf5_includedir}/KExiv2/ %endif %{_libdir}/%{library_name}.so ++++++ libkexiv2-25.08.3.tar.xz -> libkexiv2-25.12.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkexiv2-25.08.3/.gitlab-ci.yml new/libkexiv2-25.12.0/.gitlab-ci.yml --- old/libkexiv2-25.08.3/.gitlab-ci.yml 2025-07-21 12:19:47.000000000 +0200 +++ new/libkexiv2-25.12.0/.gitlab-ci.yml 2025-08-19 01:26:02.000000000 +0200 @@ -4,7 +4,6 @@ include: - project: sysadmin/ci-utilities file: - - /gitlab-templates/linux.yml - /gitlab-templates/linux-qt6.yml - /gitlab-templates/linux-qt6-next.yml - /gitlab-templates/freebsd-qt6.yml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkexiv2-25.08.3/.kde-ci.yml new/libkexiv2-25.12.0/.kde-ci.yml --- old/libkexiv2-25.08.3/.kde-ci.yml 2025-07-21 12:19:47.000000000 +0200 +++ new/libkexiv2-25.12.0/.kde-ci.yml 2025-08-19 01:26:02.000000000 +0200 @@ -2,10 +2,6 @@ # SPDX-License-Identifier: CC0-1.0 Dependencies: -- 'on': ['Linux/Qt5', 'FreeBSD/Qt5', 'Windows/Qt5'] - 'require': - 'frameworks/extra-cmake-modules': '@stable' - - 'on': ['Linux/Qt6', 'Linux/Qt6Next', 'FreeBSD/Qt6', 'Windows/Qt6'] 'require': 'frameworks/extra-cmake-modules': '@latest-kf6' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkexiv2-25.08.3/CMakeLists.txt new/libkexiv2-25.12.0/CMakeLists.txt --- old/libkexiv2-25.08.3/CMakeLists.txt 2025-07-21 12:19:47.000000000 +0200 +++ new/libkexiv2-25.12.0/CMakeLists.txt 2025-08-19 01:26:02.000000000 +0200 @@ -6,9 +6,9 @@ cmake_minimum_required(VERSION 3.16) -set(ECM_MIN_VERSION "5.91.0") -set(QT_MIN_VERSION "5.15.0") -set(EXIV2_MIN_VERSION "0.25") +set(ECM_MIN_VERSION "6.0") +set(QT_MIN_VERSION "6.5.0") +set(EXIV2_MIN_VERSION "0.27") project(libkexiv2 VERSION "5.1.0") @@ -55,11 +55,7 @@ set(KEXIV2_LIB_SO_CUR_VERSION "15") set(KEXIV2_LIB_SO_REV_VERSION "0") set(KEXIV2_LIB_SO_AGE_VERSION "0") -# TODO Qt6 or next ABI break: the very SO version is usually a single number, not a triple. -# The library non-SO version as decribed in the link above is a separate thing -# (cmp. VVERSION & SOVERSION args of set_target_properties(KF5KExiv2) -# See below (where QT_MAJOR_VERSION is available) for resetting LIBKEXIV2_SO_VERSION to 0 with Qt6 builds -set(LIBKEXIV2_SO_VERSION "${KEXIV2_LIB_SO_CUR_VERSION}.${KEXIV2_LIB_SO_REV_VERSION}.${KEXIV2_LIB_SO_AGE_VERSION}") +set(LIBKEXIV2_SO_VERSION "0") ############## ECM setup ###################### @@ -79,43 +75,33 @@ include(CMakePackageConfigHelpers) include(FeatureSummary) -# reset to 0 once all deprecated API has been removed on full switch to Qt6 -if (QT_MAJOR_VERSION STREQUAL "6") -set(EXCLUDE_DEPRECATED_BEFORE_AND_AT 5.1.0 CACHE STRING "Control the range of deprecated API excluded from the build [default=5.1.0].") -else() set(EXCLUDE_DEPRECATED_BEFORE_AND_AT 0 CACHE STRING "Control the range of deprecated API excluded from the build [default=0].") -endif() - -if (QT_MAJOR_VERSION STREQUAL "6") - # starting with 0 for the new Qt6 series - set(LIBKEXIV2_SO_VERSION "0") -endif() ############## Find Packages ################### -if (QT_MAJOR_VERSION STREQUAL "6") - set(QT_MIN_VERSION "6.5.0") -endif() - -find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} REQUIRED NO_MODULE +find_package(Qt6 ${QT_MIN_VERSION} REQUIRED NO_MODULE COMPONENTS Core Gui ) -find_package(LibExiv2 ${EXIV2_MIN_VERSION} REQUIRED) +find_package(exiv2 REQUIRED CONFIG) +if (${exiv2_VERSION} VERSION_LESS ${EXIV2_MIN_VERSION}) + message(ERROR "exiv version ${exiv2_VERSION} is too old. ${EXIV2_MIN_VERSION} is required") +endif() +# not all exiv2 versions define the namespaced target and not all versions include the non namespaced one +# so use this check until we can depend on version >= 0.28.2 and use the namespaced one +if (TARGET Exiv2::exiv2lib) + set (EXIV_TARGET_NAME Exiv2::exiv2lib) +else() + set (EXIV_TARGET_NAME exiv2lib) +endif() ############## Targets ######################### -if (QT_MAJOR_VERSION STREQUAL "6") - ecm_set_disabled_deprecation_versions( - QT 6.5 - ) -else() - ecm_set_disabled_deprecation_versions( - QT 5.14 # QTransform::toAffine - ) -endif() +ecm_set_disabled_deprecation_versions( + QT 6.5 +) add_subdirectory(src) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkexiv2-25.08.3/cmake/templates/KExiv2Config.cmake.in new/libkexiv2-25.12.0/cmake/templates/KExiv2Config.cmake.in --- old/libkexiv2-25.08.3/cmake/templates/KExiv2Config.cmake.in 2025-07-21 12:19:47.000000000 +0200 +++ new/libkexiv2-25.12.0/cmake/templates/KExiv2Config.cmake.in 2025-08-19 01:26:02.000000000 +0200 @@ -1,7 +1,10 @@ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) -find_dependency(Qt@QT_MAJOR_VERSION@Core @QT_MIN_VERSION@) -find_dependency(Qt@QT_MAJOR_VERSION@Gui @QT_MIN_VERSION@) +find_dependency(Qt6Core @QT_MIN_VERSION@) +find_dependency(Qt6Gui @QT_MIN_VERSION@) +if(NOT @BUILD_SHARED_LIBS@) + find_dependency(exiv2) +endif() include("${CMAKE_CURRENT_LIST_DIR}/@[email protected]") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkexiv2-25.08.3/src/CMakeLists.txt new/libkexiv2-25.12.0/src/CMakeLists.txt --- old/libkexiv2-25.08.3/src/CMakeLists.txt 2025-07-21 12:19:47.000000000 +0200 +++ new/libkexiv2-25.12.0/src/CMakeLists.txt 2025-08-19 01:26:02.000000000 +0200 @@ -4,19 +4,11 @@ # SPDX-License-Identifier: BSD-3-Clause # -if (QT_MAJOR_VERSION STREQUAL "5") - set(KEXIV2_INSTALL_INCLUDEDIR "${KDE_INSTALL_INCLUDEDIR_KF}/KExiv2") - set(KEXIV2_CMAKECONFIG_NAME "KF${QT_MAJOR_VERSION}KExiv2") - set(LIBRARYFILE_NAME "KF5KExiv2") - set(TARGET_EXPORT_NAME "KExiv2") - set(NAMESPACE_NAME "KF5::") -else() - set(KEXIV2_INSTALL_INCLUDEDIR "${KDE_INSTALL_INCLUDEDIR}/KExiv2Qt6") - set(KEXIV2_CMAKECONFIG_NAME "KExiv2Qt6") - set(LIBRARYFILE_NAME "KExiv2Qt6") - set(TARGET_EXPORT_NAME "KExiv2Qt6") - set(NAMESPACE_NAME "") -endif() +set(KEXIV2_INSTALL_INCLUDEDIR "${KDE_INSTALL_INCLUDEDIR}/KExiv2Qt6") +set(KEXIV2_CMAKECONFIG_NAME "KExiv2Qt6") +set(LIBRARYFILE_NAME "KExiv2Qt6") +set(TARGET_EXPORT_NAME "KExiv2Qt6") +set(NAMESPACE_NAME "") ecm_setup_version(${libkexiv2_VERSION} VARIABLE_PREFIX KEXIV2 @@ -30,7 +22,7 @@ add_library(KExiv2) set_target_properties(KExiv2 PROPERTIES - OUTPUT_NAME KF${QT_MAJOR_VERSION}KExiv2 + OUTPUT_NAME KF6KExiv2 VERSION ${KEXIV2_VERSION} SOVERSION ${KEXIV2_SOVERSION} OUTPUT_NAME ${LIBRARYFILE_NAME} @@ -72,18 +64,6 @@ REQUIRED_HEADERS kexiv2_HEADERS ) -if (QT_MAJOR_VERSION STREQUAL "5") - set(_generate_export_header_version_args) -else() - # For Qt6/KF6 world transitively include the version header - if(ECM_VERSION VERSION_LESS "5.106") - set(include_version_header_code "#include <libkexiv2_version.h>\n") - set(_generate_export_header_version_args CUSTOM_CONTENT_FROM_VARIABLE include_version_header_code) - else() - set(_generate_export_header_version_args USE_VERSION_HEADER libkexiv2_version.h) - endif() -endif() - ecm_generate_export_header(KExiv2 BASE_NAME kexiv2 EXPORT_FILE_NAME libkexiv2_export.h @@ -92,7 +72,7 @@ DEPRECATED_BASE_VERSION 0 DEPRECATION_VERSIONS 5.1 EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT} - ${_generate_export_header_version_args} + USE_VERSION_HEADER libkexiv2_version.h ) target_include_directories(KExiv2 @@ -105,7 +85,7 @@ Qt::Gui Qt::Core PRIVATE - LibExiv2::LibExiv2 + ${EXIV_TARGET_NAME} ) if( WIN32 ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkexiv2-25.08.3/src/kexiv2_p.cpp new/libkexiv2-25.12.0/src/kexiv2_p.cpp --- old/libkexiv2-25.08.3/src/kexiv2_p.cpp 2025-07-21 12:19:47.000000000 +0200 +++ new/libkexiv2-25.12.0/src/kexiv2_p.cpp 2025-08-19 01:26:02.000000000 +0200 @@ -21,11 +21,7 @@ } // Qt includes -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) #include <QStringDecoder> -#else -#include <QTextCodec> -#endif // Local includes @@ -412,13 +408,8 @@ } else if (charset == "\"Jis\"") { -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) QStringDecoder codec("JIS7"); return codec.decode(comment.c_str()); -#else - QTextCodec* const codec = QTextCodec::codecForName("JIS7"); - return codec->toUnicode(comment.c_str()); -#endif } else if (charset == "\"Ascii\"") { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkexiv2-25.08.3/src/kexiv2exif.cpp new/libkexiv2-25.12.0/src/kexiv2exif.cpp --- old/libkexiv2-25.08.3/src/kexiv2exif.cpp 2025-07-21 12:19:47.000000000 +0200 +++ new/libkexiv2-25.12.0/src/kexiv2exif.cpp 2025-08-19 01:26:02.000000000 +0200 @@ -494,11 +494,7 @@ bool KExiv2::setExifTagVariant(const char* exifTagName, const QVariant& val, bool rationalWantSmallDenominator, bool setProgramName) const { -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) switch (val.metaType().id()) -#else - switch (val.type()) -#endif { case QMetaType::Int: case QMetaType::UInt: @@ -579,11 +575,7 @@ Exiv2::ExifKey key(exifTagName); Exiv2::Exifdatum datum(key); -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) switch (val.metaType().id()) -#else - switch (val.type()) -#endif { case QMetaType::Int: case QMetaType::Bool: @@ -750,22 +742,14 @@ return QVariant((int)it->toLong(component)); #endif else -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) return QVariant(QMetaType(QMetaType::Int)); -#else - return QVariant(QVariant::Int); -#endif case Exiv2::unsignedRational: case Exiv2::signedRational: if (rationalAsListOfInts) { if (it->count() <= component) -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) return QVariant(QMetaType(QMetaType::QVariantList)); -#else - return QVariant(QVariant::List); -#endif QList<QVariant> list; list << (*it).toRational(component).first; @@ -776,22 +760,14 @@ else { if (it->count() <= component) -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) return QVariant(QMetaType(QMetaType::Double)); -#else - return QVariant(QVariant::Double); -#endif // prefer double precision double num = (*it).toRational(component).first; double den = (*it).toRational(component).second; if (den == 0.0) -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) return QVariant(QMetaType(QMetaType::Double)); -#else - return QVariant(QVariant::Double); -#endif return QVariant(num / den); } @@ -1006,10 +982,8 @@ { #if EXIV2_TEST_VERSION(0,28,0) throw Exiv2::Error(Exiv2::ErrorCode::kerErrorMessage, "Exif.Image.NewSubfileType missing or not set as main image"); -#elif EXIV2_TEST_VERSION(0,27,0) - throw Exiv2::Error(Exiv2::kerErrorMessage, "Exif.Image.NewSubfileType missing or not set as main image"); #else - throw Exiv2::Error(1, "Exif.Image.NewSubfileType missing or not set as main image"); + throw Exiv2::Error(Exiv2::kerErrorMessage, "Exif.Image.NewSubfileType missing or not set as main image"); #endif } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkexiv2-25.08.3/src/kexiv2xmp.cpp new/libkexiv2-25.12.0/src/kexiv2xmp.cpp --- old/libkexiv2-25.08.3/src/kexiv2xmp.cpp 2025-07-21 12:19:47.000000000 +0200 +++ new/libkexiv2-25.12.0/src/kexiv2xmp.cpp 2025-08-19 01:26:02.000000000 +0200 @@ -980,11 +980,7 @@ double den = (*it).toRational().second; if (den == 0.0) -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) return QVariant(QMetaType(QMetaType::Double)); -#else - return QVariant(QVariant::Double); -#endif return QVariant(num / den); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkexiv2-25.08.3/src/rotationmatrix.cpp new/libkexiv2-25.12.0/src/rotationmatrix.cpp --- old/libkexiv2-25.08.3/src/rotationmatrix.cpp 2025-07-21 12:19:47.000000000 +0200 +++ new/libkexiv2-25.12.0/src/rotationmatrix.cpp 2025-08-19 01:26:02.000000000 +0200 @@ -172,7 +172,7 @@ RotationMatrix& RotationMatrix::operator*=(QList<TransformationAction> actions) { - for (const TransformationAction& action : qAsConst(actions)) + for (const TransformationAction& action : std::as_const(actions)) { *this *= Matrix::matrix(action); } @@ -316,22 +316,4 @@ return matrix; } -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) -#if KEXIV2_BUILD_DEPRECATED_SINCE(5, 1) -QMatrix RotationMatrix::toMatrix() const -{ - return toMatrix(exifOrientation()); -} -#endif -#endif - -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) -#if KEXIV2_BUILD_DEPRECATED_SINCE(5, 1) -QMatrix RotationMatrix::toMatrix(KExiv2::ImageOrientation orientation) -{ - return toTransform(orientation).toAffine(); -} -#endif -#endif - } // namespace KExiv2Iface diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkexiv2-25.08.3/src/rotationmatrix.h new/libkexiv2-25.12.0/src/rotationmatrix.h --- old/libkexiv2-25.08.3/src/rotationmatrix.h 2025-07-21 12:19:47.000000000 +0200 +++ new/libkexiv2-25.12.0/src/rotationmatrix.h 2025-08-19 01:26:02.000000000 +0200 @@ -17,11 +17,6 @@ // Qt includes #include <QtGlobal> -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) -#if KEXIV2_ENABLE_DEPRECATED_SINCE(5, 1) -#include <QMatrix> -#endif -#endif #include <QTransform> namespace KExiv2Iface @@ -102,23 +97,6 @@ */ static QTransform toTransform(KExiv2::ImageOrientation orientation); -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) -#if KEXIV2_ENABLE_DEPRECATED_SINCE(5, 1) - /// Returns a QMatrix representing this matrix - /// @deprecated Since 5.1, use toTransform(). - KEXIV2_DEPRECATED_VERSION(5, 1, "Use toTransform()") - QMatrix toMatrix() const; -#endif -#endif - -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) -#if KEXIV2_ENABLE_DEPRECATED_SINCE(5, 1) - /// Returns a QMatrix for the given Exif orientation - KEXIV2_DEPRECATED_VERSION(5, 1, "Use toTransform(KExiv2::ImageOrientation)") - static QMatrix toMatrix(KExiv2::ImageOrientation orientation); -#endif -#endif - RotationMatrix(int m11, int m12, int m21, int m22); protected:
