Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libkexiv2 for openSUSE:Factory checked in at 2023-08-31 13:43:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libkexiv2 (Old) and /work/SRC/openSUSE:Factory/.libkexiv2.new.1766 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libkexiv2" Thu Aug 31 13:43:33 2023 rev:158 rq:1105791 version:23.08.0 Changes: -------- --- /work/SRC/openSUSE:Factory/libkexiv2/libkexiv2.changes 2023-07-07 15:48:19.972557856 +0200 +++ /work/SRC/openSUSE:Factory/.libkexiv2.new.1766/libkexiv2.changes 2023-08-31 13:45:48.560419188 +0200 @@ -1,0 +2,31 @@ +Sun Aug 20 14:00:13 UTC 2023 - Christophe Marin <christo...@krop.fr> + +- Update to 23.08.0 + * New feature release + * For more details please see: + * https://kde.org/announcements/gear/23.08.0/ +- No code change since 23.07.90 + +------------------------------------------------------------------- +Mon Aug 14 08:03:30 UTC 2023 - Christophe Marin <christo...@krop.fr> + +- Update to 23.07.90 + * New feature release +- No code change since 23.07.80 + +------------------------------------------------------------------- +Tue Aug 1 10:14:27 UTC 2023 - Christophe Marin <christo...@krop.fr> + +- Update to 23.07.80 + * New feature release +- Changes since 23.04.3: + * Default EXCLUDE_DEPRECATED_BEFORE_AND_AT to 5.1.0 for Qt6 build + * Fix build with exiv2 >= 0.28 + * Simplify 7bit ASCII detection + * .gitignore ignore CMakeLists.txt.user + * Have export macros header include version header (Qt6-only) + * Fix KF6 CI dependencies + * Rename to KF6 when building against Qt6 + * Explicitly disable deprecated API when building against Qt6 + +------------------------------------------------------------------- Old: ---- libkexiv2-23.04.3.tar.xz libkexiv2-23.04.3.tar.xz.sig New: ---- libkexiv2-23.08.0.tar.xz libkexiv2-23.08.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libkexiv2.spec ++++++ --- /var/tmp/diff_new_pack.CcIJ1l/_old 2023-08-31 13:45:49.712460365 +0200 +++ /var/tmp/diff_new_pack.CcIJ1l/_new 2023-08-31 13:45:49.716460508 +0200 @@ -20,7 +20,7 @@ %define lname libKF5KExiv2 %bcond_without released Name: libkexiv2 -Version: 23.04.3 +Version: 23.08.0 Release: 0 Summary: Library to manipulate picture meta data License: GPL-2.0-or-later ++++++ libkexiv2-23.04.3.tar.xz -> libkexiv2-23.08.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkexiv2-23.04.3/.gitignore new/libkexiv2-23.08.0/.gitignore --- old/libkexiv2-23.04.3/.gitignore 2023-06-04 00:34:17.000000000 +0200 +++ new/libkexiv2-23.08.0/.gitignore 2023-07-06 06:36:01.000000000 +0200 @@ -1,9 +1,10 @@ *.kate-swp -tests/databases/*/*.db +CMakeLists.txt.user* /.clang-format /compile_commands.json .clangd -.cache .idea /cmake-build* +.cache build* +tests/databases/*/*.db diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkexiv2-23.04.3/.kde-ci.yml new/libkexiv2-23.08.0/.kde-ci.yml --- old/libkexiv2-23.04.3/.kde-ci.yml 2023-06-04 00:34:17.000000000 +0200 +++ new/libkexiv2-23.08.0/.kde-ci.yml 2023-07-06 06:36:01.000000000 +0200 @@ -2,6 +2,10 @@ # SPDX-License-Identifier: CC0-1.0 Dependencies: -- 'on': ['@all'] +- 'on': ['Linux/Qt5', 'FreeBSD/Qt5', 'Windows/Qt5'] 'require': 'frameworks/extra-cmake-modules': '@stable' + +- 'on': ['Linux/Qt6', 'FreeBSD/Qt6', 'Windows/Qt6'] + 'require': + 'frameworks/extra-cmake-modules': '@latest-kf6' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkexiv2-23.04.3/CMakeLists.txt new/libkexiv2-23.08.0/CMakeLists.txt --- old/libkexiv2-23.04.3/CMakeLists.txt 2023-06-04 00:34:17.000000000 +0200 +++ new/libkexiv2-23.08.0/CMakeLists.txt 2023-07-06 06:36:01.000000000 +0200 @@ -77,7 +77,12 @@ 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() ############## Find Packages ################### diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkexiv2-23.04.3/cmake/templates/KF6KExiv2Config.cmake.in new/libkexiv2-23.08.0/cmake/templates/KF6KExiv2Config.cmake.in --- old/libkexiv2-23.04.3/cmake/templates/KF6KExiv2Config.cmake.in 1970-01-01 01:00:00.000000000 +0100 +++ new/libkexiv2-23.08.0/cmake/templates/KF6KExiv2Config.cmake.in 2023-07-06 06:36:01.000000000 +0200 @@ -0,0 +1,20 @@ +# KExiv2Config.cmake provides information about the installed KExiv2 library. +# It can be used directly from CMake via find_package(KExiv2 NO_MODULE) +# +# The following CMake variables are provided: +# KExiv2_VERSION_MAJOR - the major version number of KExiv2 +# KExiv2_VERSION_MINOR - the minor version number of KExiv2 +# KExiv2_VERSION_PATCH - the patch version number of KExiv2 +# KExiv2_INCLUDE_DIRS - the include directories to use +# +# Additionally, the following imported library targets are created, which may be used directly +# with target_link_libraries(): +# KF6::KExiv2 - the kexiv2 library + +@PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) +find_dependency(Qt@QT_MAJOR_VERSION@Core @QT_MIN_VERSION@) +find_dependency(Qt@QT_MAJOR_VERSION@Gui @QT_MIN_VERSION@) + +include("${CMAKE_CURRENT_LIST_DIR}/KF6KExiv2Targets.cmake") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkexiv2-23.04.3/src/CMakeLists.txt new/libkexiv2-23.08.0/src/CMakeLists.txt --- old/libkexiv2-23.04.3/src/CMakeLists.txt 2023-06-04 00:34:17.000000000 +0200 +++ new/libkexiv2-23.08.0/src/CMakeLists.txt 2023-07-06 06:36:01.000000000 +0200 @@ -5,7 +5,7 @@ # set(KEXIV2_INSTALL_INCLUDEDIR "${KDE_INSTALL_INCLUDEDIR_KF}/KExiv2") -set(KEXIV2_CMAKECONFIG_NAME "KF5KExiv2") +set(KEXIV2_CMAKECONFIG_NAME "KF${QT_MAJOR_VERSION}KExiv2") ecm_setup_version(${libkexiv2_VERSION} VARIABLE_PREFIX KEXIV2 @@ -18,6 +18,12 @@ add_library(KExiv2 SHARED) +set_target_properties(KExiv2 PROPERTIES + OUTPUT_NAME KF${QT_MAJOR_VERSION}KExiv2 + VERSION ${KEXIV2_VERSION} + SOVERSION ${KEXIV2_SOVERSION} +) + if( WIN32 ) target_compile_definitions(KExiv2 PRIVATE -DEXV_HAVE_DLL) endif() @@ -53,9 +59,19 @@ 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 libkexiv2 - #VERSION ${KF_VERSION} BASE_NAME kexiv2 EXPORT_FILE_NAME libkexiv2_export.h EXPORT_MACRO_NAME LIBKEXIV2_EXPORT @@ -63,6 +79,7 @@ DEPRECATED_BASE_VERSION 0 DEPRECATION_VERSIONS 5.1 EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT} + ${_generate_export_header_version_args} ) target_include_directories(KExiv2 @@ -86,12 +103,6 @@ target_link_libraries(KExiv2 ${EXPAT_LIBRARIES}) endif() -set_target_properties(KExiv2 PROPERTIES - OUTPUT_NAME KF5KExiv2 - VERSION ${KEXIV2_VERSION} - SOVERSION ${KEXIV2_SOVERSION} -) - install(TARGETS KExiv2 EXPORT KExiv2Targets ${KF_INSTALL_TARGETS_DEFAULT_ARGS} ) @@ -140,7 +151,7 @@ install(EXPORT KExiv2Targets FILE ${KEXIV2_CMAKECONFIG_NAME}Targets.cmake - NAMESPACE KF5:: + NAMESPACE KF${QT_MAJOR_VERSION}:: DESTINATION "${CMAKECONFIG_INSTALL_DIR}" COMPONENT Devel ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkexiv2-23.04.3/src/kexiv2exif.cpp new/libkexiv2-23.08.0/src/kexiv2exif.cpp --- old/libkexiv2-23.04.3/src/kexiv2exif.cpp 2023-06-04 00:34:17.000000000 +0200 +++ new/libkexiv2-23.08.0/src/kexiv2exif.cpp 2023-07-06 06:36:01.000000000 +0200 @@ -14,7 +14,6 @@ // Qt includes -#include <QTextCodec> #include <QBuffer> // Local includes @@ -276,19 +275,9 @@ return QString(); } -static bool is7BitAscii(const QByteArray& s) +static bool is7BitAscii(const QString& s) { - const int size = s.size(); - - for (int i=0; i<size; i++) - { - if (!isascii(s[i])) - { - return false; - } - } - - return true; + return std::all_of(s.begin(), s.end(), [](QChar c) { return c.unicode() <= 0x7f; }); } bool KExiv2::setExifComment(const QString& comment, bool setProgramName) const @@ -306,19 +295,13 @@ setExifTagString("Exif.Image.ImageDescription", comment, setProgramName); // Write as Unicode only when necessary. - QTextCodec* latin1Codec = QTextCodec::codecForName("iso8859-1"); - if (latin1Codec->canEncode(comment)) + if (is7BitAscii(comment)) { - // We know it's in the ISO-8859-1 8bit range. - // Check if it's in the ASCII 7bit range - if (is7BitAscii(comment.toLatin1())) - { - // write as ASCII - std::string exifComment("charset=\"Ascii\" "); - exifComment += comment.toLatin1().constData(); - d->exifMetadata()["Exif.Photo.UserComment"] = exifComment; - return true; - } + // write as ASCII + std::string exifComment("charset=\"Ascii\" "); + exifComment += comment.toLatin1().constData(); + d->exifMetadata()["Exif.Photo.UserComment"] = exifComment; + return true; } // write as Unicode (UCS-2) std::string exifComment("charset=\"Unicode\" "); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkexiv2-23.04.3/src/rotationmatrix.cpp new/libkexiv2-23.08.0/src/rotationmatrix.cpp --- old/libkexiv2-23.04.3/src/rotationmatrix.cpp 2023-06-04 00:34:17.000000000 +0200 +++ new/libkexiv2-23.08.0/src/rotationmatrix.cpp 2023-07-06 06:36:01.000000000 +0200 @@ -316,18 +316,22 @@ 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-23.04.3/src/rotationmatrix.h new/libkexiv2-23.08.0/src/rotationmatrix.h --- old/libkexiv2-23.04.3/src/rotationmatrix.h 2023-06-04 00:34:17.000000000 +0200 +++ new/libkexiv2-23.08.0/src/rotationmatrix.h 2023-07-06 06:36:01.000000000 +0200 @@ -15,10 +15,13 @@ #include "libkexiv2_export.h" // 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 @@ -99,18 +102,22 @@ */ 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);