diff -pruN 25.04.0-1/.gitlab-ci.yml 25.11.80-0ubuntu1/.gitlab-ci.yml
--- 25.04.0-1/.gitlab-ci.yml	2025-02-12 15:38:22.000000000 +0000
+++ 25.11.80-0ubuntu1/.gitlab-ci.yml	2025-08-18 23:26:02.000000000 +0000
@@ -4,9 +4,6 @@
 include:
   - project: sysadmin/ci-utilities
     file:
-      - /gitlab-templates/linux.yml
-      - /gitlab-templates/freebsd.yml
-      - /gitlab-templates/windows.yml
       - /gitlab-templates/linux-qt6.yml
       - /gitlab-templates/linux-qt6-next.yml
       - /gitlab-templates/freebsd-qt6.yml
diff -pruN 25.04.0-1/.kde-ci.yml 25.11.80-0ubuntu1/.kde-ci.yml
--- 25.04.0-1/.kde-ci.yml	2025-02-12 15:38:22.000000000 +0000
+++ 25.11.80-0ubuntu1/.kde-ci.yml	2025-08-18 23:26:02.000000000 +0000
@@ -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 -pruN 25.04.0-1/CMakeLists.txt 25.11.80-0ubuntu1/CMakeLists.txt
--- 25.04.0-1/CMakeLists.txt	2025-02-12 15:38:22.000000000 +0000
+++ 25.11.80-0ubuntu1/CMakeLists.txt	2025-08-18 23:26:02.000000000 +0000
@@ -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 @@ message(STATUS "Starting CMake configura
 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(ECMDeprecationSettings)
 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 -pruN 25.04.0-1/cmake/templates/KExiv2Config.cmake.in 25.11.80-0ubuntu1/cmake/templates/KExiv2Config.cmake.in
--- 25.04.0-1/cmake/templates/KExiv2Config.cmake.in	2025-02-12 15:38:22.000000000 +0000
+++ 25.11.80-0ubuntu1/cmake/templates/KExiv2Config.cmake.in	2025-08-18 23:26:02.000000000 +0000
@@ -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}/@KEXIV2_CMAKECONFIG_NAME@Targets.cmake")
diff -pruN 25.04.0-1/debian/changelog 25.11.80-0ubuntu1/debian/changelog
--- 25.04.0-1/debian/changelog	2025-04-17 20:02:14.000000000 +0000
+++ 25.11.80-0ubuntu1/debian/changelog	2025-11-16 05:56:52.000000000 +0000
@@ -1,9 +1,78 @@
-libkexiv2 (25.04.0-1) unstable; urgency=medium
+libkexiv2 (25.11.80-0ubuntu1) resolute; urgency=medium
 
-  [ Aurélien COUDERC ]
-  * New upstream release (25.04.0).
+  * New upstream (beta) release (25.11.80)
+  * Update symbols.
 
- -- Aurélien COUDERC <coucouf@debian.org>  Thu, 17 Apr 2025 22:02:14 +0200
+ -- Rik Mills <rikmills@kde.org>  Sun, 16 Nov 2025 05:56:52 +0000
+
+libkexiv2 (25.08.3-0ubuntu1) resolute; urgency=medium
+
+  * New upstream release (25.08.3)
+
+ -- Rik Mills <rikmills@kde.org>  Thu, 06 Nov 2025 12:19:29 +0000
+
+libkexiv2 (25.08.2-0ubuntu1) resolute; urgency=medium
+
+  * New upstream release (25.08.2)
+
+ -- Rik Mills <rikmills@kde.org>  Fri, 17 Oct 2025 11:56:04 +0100
+
+libkexiv2 (25.08.1-0ubuntu1) questing; urgency=medium
+
+  * New upstream release (25.08.1)
+
+ -- Rik Mills <rikmills@kde.org>  Thu, 11 Sep 2025 06:58:33 +0100
+
+libkexiv2 (25.08.0-0ubuntu1) questing; urgency=medium
+
+  * New upstream release (25.08.0)
+
+ -- Rik Mills <rikmills@kde.org>  Thu, 14 Aug 2025 11:33:47 +0100
+
+libkexiv2 (25.07.90-0ubuntu1) questing; urgency=medium
+
+  * New upstream (RC) release (25.07.90)
+
+ -- Rik Mills <rikmills@kde.org>  Fri, 25 Jul 2025 17:59:35 +0100
+
+libkexiv2 (25.07.80-0ubuntu1) questing; urgency=medium
+
+  * New upstream (beta) release (25.07.80)
+
+ -- Rik Mills <rikmills@kde.org>  Sat, 12 Jul 2025 18:24:47 +0100
+
+libkexiv2 (25.04.3-0ubuntu1) questing; urgency=medium
+
+  * New upstream release (25.04.3)
+
+ -- Rik Mills <rikmills@kde.org>  Thu, 03 Jul 2025 07:54:48 +0100
+
+libkexiv2 (25.04.2-0ubuntu1) questing; urgency=medium
+
+  * New upstream release (25.04.2)
+
+ -- Rik Mills <rikmills@kde.org>  Thu, 05 Jun 2025 11:59:40 +0100
+
+libkexiv2 (25.04.1-0ubuntu1) questing; urgency=medium
+
+  * New upstream release (25.04.1)
+
+ -- Rik Mills <rikmills@kde.org>  Wed, 07 May 2025 22:16:58 +0100
+
+libkexiv2 (25.04.0-0ubuntu1) questing; urgency=medium
+
+  * New upstream release (25.04.0)
+  * Update symbols from build logs.
+
+ -- Rik Mills <rikmills@kde.org>  Wed, 30 Apr 2025 20:01:57 +0100
+
+libkexiv2 (24.12.3-1ubuntu1) plucky; urgency=medium
+
+  * Merge from Debian unstable. Remaining changes:
+    - Kubuntu Vcs and maintainer fields.
+    - Keep our symbols file.
+
+ -- Rik Mills <rikmills@kde.org>  Tue, 18 Mar 2025 13:38:13 +0000
 
 libkexiv2 (24.12.3-1) unstable; urgency=medium
 
diff -pruN 25.04.0-1/debian/control 25.11.80-0ubuntu1/debian/control
--- 25.04.0-1/debian/control	2025-04-17 20:02:14.000000000 +0000
+++ 25.11.80-0ubuntu1/debian/control	2025-11-16 05:56:52.000000000 +0000
@@ -1,13 +1,14 @@
 Source: libkexiv2
 Section: kde
 Priority: optional
-Maintainer: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
+Maintainer: Kubuntu Developers <kubuntu-devel@lists.ubuntu.com>
+XSBC-Original-Maintainer: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
 Uploaders: Aurélien COUDERC <coucouf@debian.org>,
            Pino Toscano <pino@debian.org>,
-Build-Depends: debhelper-compat (= 13),
+Build-Depends: cmake (>= 3.16.0~),
+               debhelper-compat (= 13),
                dh-sequence-kf6,
                dh-sequence-pkgkde-symbolshelper,
-               cmake (>= 3.16.0~),
                extra-cmake-modules (>= 5.91.0~),
                libexiv2-dev (>= 0.25~),
                libxkbcommon-dev,
@@ -16,8 +17,8 @@ Build-Depends: debhelper-compat (= 13),
 Standards-Version: 4.7.2
 Rules-Requires-Root: no
 Homepage: https://invent.kde.org/graphics/libkexiv2
-Vcs-Browser: https://salsa.debian.org/qt-kde-team/kde/libkexiv2
-Vcs-Git: https://salsa.debian.org/qt-kde-team/kde/libkexiv2.git
+Vcs-Browser: https://code.launchpad.net/~kubuntu-packagers/kubuntu-packaging/+git/libkexiv2
+Vcs-Git: https://git.launchpad.net/~kubuntu-packagers/kubuntu-packaging/+git/libkexiv2
 
 Package: libkexiv2qt6-0
 Section: libs
@@ -33,7 +34,8 @@ Description: Qt like interface for the l
 Package: libkexiv2qt6-dev
 Section: libdevel
 Architecture: any
-Depends: libkexiv2qt6-0 (= ${binary:Version}), ${misc:Depends},
+Depends: libkexiv2qt6-0 (= ${binary:Version}),
+         ${misc:Depends},
 Multi-Arch: same
 Description: Qt-like interface for the libexiv2 library -- development files
  Libkexiv2 is a Qt wrapper around the Exiv2 library, used to manipulate
diff -pruN 25.04.0-1/debian/libkexiv2qt6-0.symbols 25.11.80-0ubuntu1/debian/libkexiv2qt6-0.symbols
--- 25.04.0-1/debian/libkexiv2qt6-0.symbols	2025-04-12 21:20:44.000000000 +0000
+++ 25.11.80-0ubuntu1/debian/libkexiv2qt6-0.symbols	2025-11-16 05:56:52.000000000 +0000
@@ -1,4 +1,4 @@
-# SymbolsHelper-Confirmed: 24.12.3 i386
+# SymbolsHelper-Confirmed: 25.11.80 amd64 amd64v3 arm64 armhf ppc64el riscv64 s390x
 libKExiv2Qt6.so.0 libkexiv2qt6-0 #MINVER#
 * Build-Depends-Package: libkexiv2qt6-dev
  _ZN11KExiv2Iface10KExiv2DataC1ERKS0_@Base 24.05.1
@@ -96,15 +96,15 @@ libKExiv2Qt6.so.0 libkexiv2qt6-0 #MINVER
  _ZN11KExiv2Iface6KExiv2D1Ev@Base 24.05.1
  _ZN11KExiv2Iface6KExiv2D2Ev@Base 24.05.1
  _ZN11KExiv2Iface6KExiv2aSERKS0_@Base 24.05.1
- (optional=templinst|arch=alpha amd64 arm64 hurd-amd64 loong64 mips64el ppc64 ppc64el riscv64 s390x sparc64)_ZN5Exiv213toBasicStringIcA59_cEENSt7__cxx1112basic_stringIT_St11char_traitsIS4_ESaIS4_EEERKT0_@Base 24.05.1
- (optional=templinst|subst)_ZN5Exiv29ValueTypeIjE11setDataAreaEPKh{size_t}@Base 24.08.2
- (optional=templinst|subst)_ZN5Exiv29ValueTypeIjE4readEPKh{size_t}NS_9ByteOrderE@Base 24.08.2
- (optional=templinst)_ZN5Exiv29ValueTypeIjE4readERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@Base 24.05.1
- (optional=templinst)_ZN5Exiv29ValueTypeIjEC1ERKS1_@Base 24.05.1
- (optional=templinst)_ZN5Exiv29ValueTypeIjEC2ERKS1_@Base 24.05.1
- (optional=templinst)_ZN5Exiv29ValueTypeIjED0Ev@Base 24.05.1
- (optional=templinst)_ZN5Exiv29ValueTypeIjED1Ev@Base 24.05.1
- (optional=templinst)_ZN5Exiv29ValueTypeIjED2Ev@Base 24.05.1
+ (optional=templinst|arch=ppc64 riscv64)_ZN5Exiv213toBasicStringIcA59_cEENSt7__cxx1112basic_stringIT_St11char_traitsIS4_ESaIS4_EEERKT0_@Base 24.05.1
+ (optional=templinst|arch=armhf riscv64|subst)_ZN5Exiv29ValueTypeIjE11setDataAreaEPKh{size_t}@Base 24.08.2
+ (optional=templinst|arch=armhf riscv64|subst)_ZN5Exiv29ValueTypeIjE4readEPKh{size_t}NS_9ByteOrderE@Base 24.08.2
+ (optional=templinst|arch=armhf riscv64)_ZN5Exiv29ValueTypeIjE4readERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@Base 24.05.1
+ (optional=templinst|arch=armhf riscv64)_ZN5Exiv29ValueTypeIjEC1ERKS1_@Base 24.05.1
+ (optional=templinst|arch=armhf riscv64)_ZN5Exiv29ValueTypeIjEC2ERKS1_@Base 24.05.1
+ (optional=templinst|arch=armhf riscv64)_ZN5Exiv29ValueTypeIjED0Ev@Base 24.05.1
+ (optional=templinst|arch=armhf riscv64)_ZN5Exiv29ValueTypeIjED1Ev@Base 24.05.1
+ (optional=templinst|arch=armhf riscv64)_ZN5Exiv29ValueTypeIjED2Ev@Base 24.05.1
  _ZNK11KExiv2Iface14KExiv2Previews12originalSizeEv@Base 24.05.1
  _ZNK11KExiv2Iface14KExiv2Previews16originalMimeTypeEv@Base 24.05.1
  _ZNK11KExiv2Iface14RotationMatrix11toTransformEv@Base 24.05.1
@@ -222,30 +222,30 @@ libKExiv2Qt6.so.0 libkexiv2qt6-0 #MINVER
  _ZNK11KExiv2Iface6KExiv28clearXmpEv@Base 24.05.1
  _ZNK11KExiv2Iface6KExiv29clearExifEv@Base 24.05.1
  _ZNK11KExiv2Iface6KExiv29clearIptcEv@Base 24.05.1
- (optional=templinst|subst)_ZNK5Exiv29ValueTypeIjE10toRationalE{size_t}@Base 24.08.2
- (optional=templinst)_ZNK5Exiv29ValueTypeIjE12sizeDataAreaEv@Base 24.05.1
- (optional=templinst)_ZNK5Exiv29ValueTypeIjE4copyEPhNS_9ByteOrderE@Base 24.05.1
- (optional=templinst)_ZNK5Exiv29ValueTypeIjE4sizeEv@Base 24.05.1
- (optional=templinst)_ZNK5Exiv29ValueTypeIjE5countEv@Base 24.05.1
- (optional=templinst)_ZNK5Exiv29ValueTypeIjE5writeERSo@Base 24.05.1
- (optional=templinst)_ZNK5Exiv29ValueTypeIjE6clone_Ev@Base 24.05.1
- (optional=templinst|subst)_ZNK5Exiv29ValueTypeIjE7toFloatE{size_t}@Base 24.08.2
- (optional=templinst|subst)_ZNK5Exiv29ValueTypeIjE7toInt64E{size_t}@Base 24.08.2
- (optional=templinst)_ZNK5Exiv29ValueTypeIjE8dataAreaEv@Base 24.05.1
- (optional=templinst|subst)_ZNK5Exiv29ValueTypeIjE8toStringB5cxx11E{size_t}@Base 24.08.2
- (optional=templinst|subst)_ZNK5Exiv29ValueTypeIjE8toUint32E{size_t}@Base 24.08.2
- (optional=templinst|arch=!m68k)_ZNSt6vectorIjSaIjEE17_M_realloc_appendIJjEEEvDpOT_@Base 24.08.2
- (optional=templinst|arch=m68k)_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_@Base 24.12.0
- (optional=templinst|arch=m68k)_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_@Base 24.12.0
- (optional=templinst)_ZNSt7__cxx1110_List_baseIN5Exiv29ExifdatumESaIS2_EE8_M_clearEv@Base 24.05.1
- (optional=templinst)_ZNSt8_Rb_treeI7QStringSt4pairIKS0_8QVariantESt10_Select1stIS4_ESt4lessIS0_ESaIS4_EE16_M_insert_uniqueIS4_EES1_ISt17_Rb_tree_iteratorIS4_EbEOT_@Base 24.05.1
- (optional=templinst)_ZNSt8_Rb_treeI7QStringSt4pairIKS0_S0_ESt10_Select1stIS3_ESt4lessIS0_ESaIS3_EE24_M_get_insert_unique_posERS2_@Base 24.05.1
- (optional=templinst|arch=amd64 arm64 hppa hurd-amd64 i386 loong64 m68k mips64el ppc64el riscv64 sh4 sparc64 x32)_ZNSt8_Rb_treeI7QStringSt4pairIKS0_S0_ESt10_Select1stIS3_ESt4lessIS0_ESaIS3_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS3_ERS2_@Base 24.05.1
- (optional=templinst)_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKN5Exiv28XmpdatumESt6vectorIS3_SaIS3_EEEEPS3_ET0_T_SC_SB_@Base 24.05.1
- (optional=templinst)_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKN5Exiv29IptcdatumESt6vectorIS3_SaIS3_EEEEPS3_ET0_T_SC_SB_@Base 24.05.1
+ (optional=templinst|arch=armhf riscv64|subst)_ZNK5Exiv29ValueTypeIjE10toRationalE{size_t}@Base 24.08.2
+ (optional=templinst|arch=armhf riscv64)_ZNK5Exiv29ValueTypeIjE12sizeDataAreaEv@Base 24.05.1
+ (optional=templinst|arch=armhf riscv64)_ZNK5Exiv29ValueTypeIjE4copyEPhNS_9ByteOrderE@Base 24.05.1
+ (optional=templinst|arch=armhf riscv64)_ZNK5Exiv29ValueTypeIjE4sizeEv@Base 24.05.1
+ (optional=templinst|arch=armhf riscv64)_ZNK5Exiv29ValueTypeIjE5countEv@Base 24.05.1
+ (optional=templinst|arch=armhf riscv64)_ZNK5Exiv29ValueTypeIjE5writeERSo@Base 24.05.1
+ (optional=templinst|arch=armhf riscv64)_ZNK5Exiv29ValueTypeIjE6clone_Ev@Base 24.05.1
+ (optional=templinst|arch=armhf riscv64|subst)_ZNK5Exiv29ValueTypeIjE7toFloatE{size_t}@Base 24.08.2
+ (optional=templinst|arch=armhf riscv64|subst)_ZNK5Exiv29ValueTypeIjE7toInt64E{size_t}@Base 24.08.2
+ (optional=templinst|arch=armhf riscv64)_ZNK5Exiv29ValueTypeIjE8dataAreaEv@Base 24.05.1
+ (optional=templinst|arch=armhf riscv64|subst)_ZNK5Exiv29ValueTypeIjE8toStringB5cxx11E{size_t}@Base 24.08.2
+ (optional=templinst|arch=armhf riscv64|subst)_ZNK5Exiv29ValueTypeIjE8toUint32E{size_t}@Base 24.08.2
+ (optional=templinst|arch=armhf riscv64)_ZNSt6vectorIjSaIjEE17_M_realloc_appendIJjEEEvDpOT_@Base 24.08.2
+ (optional=templinst|arch=armhf riscv64)_ZNSt7__cxx1110_List_baseIN5Exiv29ExifdatumESaIS2_EE8_M_clearEv@Base 24.05.1
+ (optional=templinst|arch=armhf riscv64|subst)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructILb1EEEvPKc{size_t}@Base 25.11.80
+ (optional=templinst|arch=armhf)_ZNSt8_Rb_treeI7QStringSt4pairIKS0_8QVariantESt10_Select1stIS4_ESt4lessIS0_ESaIS4_EE16_M_insert_uniqueIS4_EES1_ISt17_Rb_tree_iteratorIS4_EbEOT_@Base 24.05.1
+ (optional=templinst|arch=armhf riscv64)_ZNSt8_Rb_treeI7QStringSt4pairIKS0_S0_ESt10_Select1stIS3_ESt4lessIS0_ESaIS3_EE24_M_get_insert_unique_posERS2_@Base 24.05.1
+ (optional=templinst|arch=armhf hppa riscv64 sh4)_ZNSt8_Rb_treeI7QStringSt4pairIKS0_S0_ESt10_Select1stIS3_ESt4lessIS0_ESaIS3_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS3_ERS2_@Base 24.05.1
+ (optional=templinst|arch=armhf riscv64)_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKN5Exiv28XmpdatumESt6vectorIS3_SaIS3_EEEEPS3_ET0_T_SC_SB_@Base 24.05.1
+ (optional=templinst|arch=armhf riscv64)_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKN5Exiv29IptcdatumESt6vectorIS3_SaIS3_EEEEPS3_ET0_T_SC_SB_@Base 24.05.1
+ (arch=amd64 arm64 ppc64el s390x)_ZSt19piecewise_construct@Base 25.11.80
  _ZTIN11KExiv2Iface6KExiv2E@Base 24.05.1
- (optional=templinst)_ZTIN5Exiv29ValueTypeIjEE@Base 24.05.1
+ (optional=templinst|arch=armhf riscv64)_ZTIN5Exiv29ValueTypeIjEE@Base 24.05.1
  _ZTSN11KExiv2Iface6KExiv2E@Base 24.05.1
  (optional=templinst)_ZTSN5Exiv29ValueTypeIjEE@Base 24.05.1
  _ZTVN11KExiv2Iface6KExiv2E@Base 24.05.1
- (optional=templinst)_ZTVN5Exiv29ValueTypeIjEE@Base 24.05.1
+ (optional=templinst|arch=armhf riscv64)_ZTVN5Exiv29ValueTypeIjEE@Base 24.05.1
diff -pruN 25.04.0-1/src/CMakeLists.txt 25.11.80-0ubuntu1/src/CMakeLists.txt
--- 25.04.0-1/src/CMakeLists.txt	2025-02-12 15:38:22.000000000 +0000
+++ 25.11.80-0ubuntu1/src/CMakeLists.txt	2025-08-18 23:26:02.000000000 +0000
@@ -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
@@ -27,10 +19,10 @@ ecm_setup_version(${libkexiv2_VERSION}
 
 kde_enable_exceptions()
 
-add_library(KExiv2 SHARED)
+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 @@ ecm_generate_headers(kexiv2_CamelCase_HE
     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 @@ ecm_generate_export_header(KExiv2
     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 @@ target_link_libraries(KExiv2
         Qt::Gui
         Qt::Core
     PRIVATE
-        LibExiv2::LibExiv2
+        ${EXIV_TARGET_NAME}
 )
 
 if( WIN32 )
diff -pruN 25.04.0-1/src/kexiv2_p.cpp 25.11.80-0ubuntu1/src/kexiv2_p.cpp
--- 25.04.0-1/src/kexiv2_p.cpp	2025-02-12 15:38:22.000000000 +0000
+++ 25.11.80-0ubuntu1/src/kexiv2_p.cpp	2025-08-18 23:26:02.000000000 +0000
@@ -21,11 +21,7 @@ extern "C"
 }
 
 // Qt includes
-#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
 #include <QStringDecoder>
-#else
-#include <QTextCodec>
-#endif
 
 // Local includes
 
@@ -412,13 +408,8 @@ QString KExiv2Private::convertCommentVal
         }
         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 -pruN 25.04.0-1/src/kexiv2exif.cpp 25.11.80-0ubuntu1/src/kexiv2exif.cpp
--- 25.04.0-1/src/kexiv2exif.cpp	2025-02-12 15:38:22.000000000 +0000
+++ 25.11.80-0ubuntu1/src/kexiv2exif.cpp	2025-08-18 23:26:02.000000000 +0000
@@ -494,11 +494,7 @@ bool KExiv2::setExifTagData(const char*
 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 @@ QString KExiv2::createExifUserStringFrom
         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 @@ QVariant KExiv2::getExifTagVariant(const
                         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 @@ QVariant KExiv2::getExifTagVariant(const
                     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 @@ bool KExiv2::setTiffThumbnail(const QIma
         {
 #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 -pruN 25.04.0-1/src/kexiv2xmp.cpp 25.11.80-0ubuntu1/src/kexiv2xmp.cpp
--- 25.04.0-1/src/kexiv2xmp.cpp	2025-02-12 15:38:22.000000000 +0000
+++ 25.11.80-0ubuntu1/src/kexiv2xmp.cpp	2025-08-18 23:26:02.000000000 +0000
@@ -980,11 +980,7 @@ QVariant KExiv2::getXmpTagVariant(const
                         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 -pruN 25.04.0-1/src/rotationmatrix.cpp 25.11.80-0ubuntu1/src/rotationmatrix.cpp
--- 25.04.0-1/src/rotationmatrix.cpp	2025-02-12 15:38:22.000000000 +0000
+++ 25.11.80-0ubuntu1/src/rotationmatrix.cpp	2025-08-18 23:26:02.000000000 +0000
@@ -172,7 +172,7 @@ RotationMatrix& RotationMatrix::operator
 
 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 @@ QTransform RotationMatrix::toTransform(K
     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 -pruN 25.04.0-1/src/rotationmatrix.h 25.11.80-0ubuntu1/src/rotationmatrix.h
--- 25.04.0-1/src/rotationmatrix.h	2025-02-12 15:38:22.000000000 +0000
+++ 25.11.80-0ubuntu1/src/rotationmatrix.h	2025-08-18 23:26:02.000000000 +0000
@@ -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 @@ public:
      */
     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:
