[packages/ka5-krita] - added exiv2 patch, package jxl plugins; release 4
qboosh
qboosh at pld-linux.org
Fri Jul 28 22:52:58 CEST 2023
commit 7d01847159a30635aa10349e256eea8fbd67e46d
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Fri Jul 28 22:48:11 2023 +0200
- added exiv2 patch, package jxl plugins; release 4
ka5-krita.spec | 96 +++++++------
krita-exiv2.patch | 423 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 474 insertions(+), 45 deletions(-)
---
diff --git a/ka5-krita.spec b/ka5-krita.spec
index 70aba7a..a015c21 100644
--- a/ka5-krita.spec
+++ b/ka5-krita.spec
@@ -1,37 +1,39 @@
%define _state stable
-%define qtver 5.5.1
+%define qt_ver 5.12.0
+%define kf_ver 5.44.0
%define orgname krita
Summary: A digital painting application
Summary(pl.UTF-8): Aplikacja do rysunków cyfrowych
Name: ka5-krita
Version: 5.1.5
-Release: 3
+Release: 4
License: GPL v3+
Group: X11/Applications/Graphics
Source0: https://download.kde.org/%{_state}/krita/%{version}/%{orgname}-%{version}.tar.xz
# Source0-md5: ad84f643ff5dea6e8bbf34cc3c904c83
+Patch0: krita-exiv2.patch
URL: https://www.krita.org/
-BuildRequires: OpenColorIO-devel
+BuildRequires: OpenColorIO-devel >= 1.1.1
BuildRequires: OpenEXR-devel
-BuildRequires: Qt5Concurrent-devel
-BuildRequires: Qt5Core-devel >= 5.15.2
-BuildRequires: Qt5DBus-devel >= 5.9.0
-BuildRequires: Qt5Gui-devel
-BuildRequires: Qt5Multimedia-devel
-BuildRequires: Qt5Multimedia-devel >= 5.9.0
-BuildRequires: Qt5Network-devel
-BuildRequires: Qt5PrintSupport-devel
-BuildRequires: Qt5Qml-devel >= 5.15.2
-BuildRequires: Qt5Quick-devel >= 5.9.0
-BuildRequires: Qt5Sql-devel
-BuildRequires: Qt5Svg-devel
-BuildRequires: Qt5Test-devel
-BuildRequires: Qt5Widgets-devel
-BuildRequires: Qt5X11Extras-devel
-BuildRequires: Qt5Xml-devel
+BuildRequires: Qt5Concurrent-devel >= %{qt_ver}
+BuildRequires: Qt5Core-devel >= %{qt_ver}
+BuildRequires: Qt5DBus-devel >= %{qt_ver}
+BuildRequires: Qt5Gui-devel >= %{qt_ver}
+BuildRequires: Qt5Multimedia-devel >= %{qt_ver}
+BuildRequires: Qt5Multimedia-devel >= %{qt_ver}
+BuildRequires: Qt5Network-devel >= %{qt_ver}
+BuildRequires: Qt5PrintSupport-devel >= %{qt_ver}
+BuildRequires: Qt5Qml-devel >= %{qt_ver}
+BuildRequires: Qt5Quick-devel >= %{qt_ver}
+BuildRequires: Qt5Sql-devel >= %{qt_ver}
+BuildRequires: Qt5Svg-devel >= %{qt_ver}
+BuildRequires: Qt5Test-devel >= %{qt_ver}
+BuildRequires: Qt5Widgets-devel >= %{qt_ver}
+BuildRequires: Qt5X11Extras-devel >= %{qt_ver}
+BuildRequires: Qt5Xml-devel >= %{qt_ver}
BuildRequires: boost-devel >= 1.55
-BuildRequires: cmake >= 2.8.9
+BuildRequires: cmake >= 3.16
BuildRequires: eigen3 >= 3.0
BuildRequires: exiv2-devel >= 0.16
BuildRequires: fftw3-devel
@@ -39,22 +41,24 @@ BuildRequires: gettext-devel
BuildRequires: giflib-devel
BuildRequires: gsl-devel
BuildRequires: kf5-extra-cmake-modules >= 5.22
-BuildRequires: kf5-kcompletion-devel >= 5.44.0
-BuildRequires: kf5-kconfig-devel >= 5.44.0
-BuildRequires: kf5-kcoreaddons-devel >= 5.44.0
-BuildRequires: kf5-kcrash-devel >= 5.44.0
-BuildRequires: kf5-kguiaddons-devel >= 5.44.0
+BuildRequires: kf5-kcompletion-devel >= %{kf_ver}
+BuildRequires: kf5-kconfig-devel >= %{kf_ver}
+BuildRequires: kf5-kcoreaddons-devel >= %{kf_ver}
+BuildRequires: kf5-kcrash-devel >= %{kf_ver}
+BuildRequires: kf5-kguiaddons-devel >= %{kf_ver}
BuildRequires: kf5-ki18n-devel
-BuildRequires: kf5-kitemmodels-devel >= 5.44.0
-BuildRequires: kf5-kitemviews-devel >= 5.44.0
-BuildRequires: kf5-kwidgetsaddons-devel >= 5.44.0
-BuildRequires: kf5-kwindowsystem-devel >= 5.44.0
+BuildRequires: kf5-kitemmodels-devel >= %{kf_ver}
+BuildRequires: kf5-kitemviews-devel >= %{kf_ver}
+BuildRequires: kf5-kwidgetsaddons-devel >= %{kf_ver}
+BuildRequires: kf5-kwindowsystem-devel >= %{kf_ver}
BuildRequires: lcms2-devel >= 2.4
-BuildRequires: libheif-devel >= 1.10.0
-BuildRequires: libjpeg-turbo-devel
-BuildRequires: libmypaint-devel
+BuildRequires: libheif-devel >= 1.11.0
+BuildRequires: libjpeg-turbo-devel >= 2.1.3
+BuildRequires: libjxl-devel >= 0.7.0
+BuildRequires: libmypaint-devel >= 1.4.0
BuildRequires: libpng-devel
BuildRequires: libraw-devel >= 0.16
+BuildRequires: libstdc++-devel >= 6:5
BuildRequires: libtiff-devel
BuildRequires: libwebp-devel >= 1.2.0
BuildRequires: ninja
@@ -62,10 +66,11 @@ BuildRequires: openjpeg2-devel >= 2.3.0
BuildRequires: pkgconfig
BuildRequires: poppler-qt5-devel
BuildRequires: python3-PyQt5 >= 5.6.0
-BuildRequires: python3-devel
-BuildRequires: quazip-qt5-devel
-BuildRequires: sip-PyQt5
+BuildRequires: python3-devel >= 1:3.2
+BuildRequires: quazip-qt5-devel >= 0.6
+BuildRequires: sip-PyQt5 >= 4.19.13
BuildRequires: xorg-lib-libX11-devel
+BuildRequires: xsimd-devel >= 8.1.0
BuildRequires: xz
BuildRequires: zlib-devel
Requires: %{name}-data = %{version}-%{release}
@@ -112,11 +117,10 @@ Dane dla aplikacji Krita.
%prep
%setup -q -n %{orgname}-%{version}
+%patch0 -p1
%build
-install -d build
-cd build
-%cmake \
+%cmake -B build \
-G Ninja \
-DHTML_INSTALL_DIR=%{_kdedocdir} \
-DKDE_INSTALL_USE_QT_SYS_PATHS=ON \
@@ -124,15 +128,14 @@ cd build
-DFETCH_TRANSLATIONS=OFF \
-DKRITA_ENABLE_PCH=OFF \
-DCMAKE_DISABLE_FIND_PACKAGE_KSeExpr=ON \
- -DCMAKE_DISABLE_FIND_PACKAGE_xsimd=ON \
- ..
-%ninja_build
+ -DCMAKE_DISABLE_FIND_PACKAGE_xsimd=ON
+
+%ninja_build -C build
%install
rm -rf $RPM_BUILD_ROOT
-%ninja_install -C build
-#%{__sed} -i -e 's|!/usr/bin/env python3|!/usr/bin/python3|' $RPM_BUILD_ROOT%{_bindir}/AppImageUpdateDummy
+%ninja_install -C build
%find_lang %{orgname} --all-name --with-kde
@@ -153,7 +156,6 @@ rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
/etc/xdg/kritarc
-#%attr(755,root,root) %{_bindir}/AppImageUpdateDummy
%attr(755,root,root) %{_bindir}/krita
%attr(755,root,root) %{_bindir}/krita_version
%attr(755,root,root) %{_bindir}/kritarunner
@@ -288,6 +290,8 @@ rm -rf $RPM_BUILD_ROOT
%attr(755,root,root) %{_libdir}/kritaplugins/kritajp2import.so
%attr(755,root,root) %{_libdir}/kritaplugins/kritajpegexport.so
%attr(755,root,root) %{_libdir}/kritaplugins/kritajpegimport.so
+%attr(755,root,root) %{_libdir}/kritaplugins/kritajxlexport.so
+%attr(755,root,root) %{_libdir}/kritaplugins/kritajxlimport.so
%attr(755,root,root) %{_libdir}/kritaplugins/kritakraexport.so
%attr(755,root,root) %{_libdir}/kritaplugins/kritakraimport.so
%attr(755,root,root) %{_libdir}/kritaplugins/kritakrzexport.so
@@ -379,7 +383,8 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/qt5/qml/org/krita/draganddrop/libdraganddropplugin.so
%{_libdir}/qt5/qml/org/krita/draganddrop/qmldir
%dir %{_libdir}/qt5/qml/org/krita/sketch
-%{_libdir}/qt5/qml/org/krita/sketch/components
+%dir %{_libdir}/qt5/qml/org/krita/sketch/components
+%{_libdir}/qt5/qml/org/krita/sketch/components/*.js
%{_libdir}/qt5/qml/org/krita/sketch/components/*.qml
%{_libdir}/qt5/qml/org/krita/sketch/components/qmldir
%attr(755,root,root) %{_libdir}/qt5/qml/org/krita/sketch/libkritasketchplugin.so
@@ -429,6 +434,7 @@ rm -rf $RPM_BUILD_ROOT
%{_desktopdir}/krita_heightmap.desktop
%{_desktopdir}/krita_jp2.desktop
%{_desktopdir}/krita_jpeg.desktop
+%{_desktopdir}/krita_jxl.desktop
%{_desktopdir}/krita_kra.desktop
%{_desktopdir}/krita_krz.desktop
%{_desktopdir}/krita_ora.desktop
diff --git a/krita-exiv2.patch b/krita-exiv2.patch
new file mode 100644
index 0000000..248f109
--- /dev/null
+++ b/krita-exiv2.patch
@@ -0,0 +1,423 @@
+--- krita-5.1.5/plugins/metadata/common/KisExiv2IODevice.h.orig 2023-01-05 12:21:21.000000000 +0100
++++ krita-5.1.5/plugins/metadata/common/KisExiv2IODevice.h 2023-07-28 20:55:52.067163352 +0200
+@@ -18,21 +18,37 @@
+ class KRITAEXIFCOMMON_EXPORT KisExiv2IODevice : public Exiv2::BasicIo
+ {
+ public:
++#if EXIV2_TEST_VERSION (0,28,0)
++ using ptr_type = Exiv2::BasicIo::UniquePtr;
++#else
+ using ptr_type = Exiv2::BasicIo::AutoPtr;
++#endif
+
+ KisExiv2IODevice(QString path);
+ ~KisExiv2IODevice() override;
+
+ int open() override;
+ int close() override;
++#if EXIV2_TEST_VERSION (0,28,0)
++ size_t write(const Exiv2::byte *data, size_t wcount) override;
++ size_t write(Exiv2::BasicIo &src) override;
++ Exiv2::DataBuf read(size_t rcount) override;
++ size_t read(Exiv2::byte *buf, size_t rcount) override;
++ size_t tell() const override;
++ const std::string& path() const noexcept override;
++ void populateFakeData() override {}
++#else
+ long write(const Exiv2::byte *data, long wcount) override;
+ long write(Exiv2::BasicIo &src) override;
+- int putb(Exiv2::byte data) override;
+ Exiv2::DataBuf read(long rcount) override;
+ long read(Exiv2::byte *buf, long rcount) override;
++ long tell() const override;
++ std::string path() const override;
++#endif
++ int putb(Exiv2::byte data) override;
+ int getb() override;
+ void transfer(BasicIo &src) override;
+-#if defined(_MSC_VER)
++#if defined(_MSC_VER) || EXIV2_TEST_VERSION (0,28,0)
+ int seek(int64_t offset, Position pos) override;
+ #else
+ int seek(long offset, Position pos) override;
+@@ -40,12 +56,10 @@ public:
+
+ Exiv2::byte *mmap(bool isWriteable = false) override;
+ int munmap() override;
+- long tell() const override;
+ size_t size() const override;
+ bool isopen() const override;
+ int error() const override;
+ bool eof() const override;
+- std::string path() const override;
+
+ private:
+ bool open(QFile::OpenMode mode);
+--- krita-5.1.5/plugins/metadata/common/KisExiv2IODevice.cpp.orig 2023-01-05 12:21:21.000000000 +0100
++++ krita-5.1.5/plugins/metadata/common/KisExiv2IODevice.cpp 2023-07-28 14:04:49.160142867 +0200
+@@ -39,7 +39,11 @@ int KisExiv2IODevice::close()
+ return 0;
+ }
+
++#if EXIV2_TEST_VERSION (0,28,0)
++size_t KisExiv2IODevice::write(const Exiv2::byte *data, size_t wcount)
++#else
+ long KisExiv2IODevice::write(const Exiv2::byte *data, long wcount)
++#endif
+ {
+ if (!m_file.isWritable()) {
+ qWarning() << "KisExiv2IODevice: File not open for writing.";
+@@ -53,7 +57,11 @@ long KisExiv2IODevice::write(const Exiv2
+ return 0;
+ }
+
++#if EXIV2_TEST_VERSION (0,28,0)
++size_t KisExiv2IODevice::write(Exiv2::BasicIo &src)
++#else
+ long KisExiv2IODevice::write(Exiv2::BasicIo &src)
++#endif
+ {
+ if (static_cast<BasicIo *>(this) == &src) {
+ return 0;
+@@ -66,8 +74,13 @@ long KisExiv2IODevice::write(Exiv2::Basi
+ return 0;
+ }
+ Exiv2::byte buffer[4096];
++#if EXIV2_TEST_VERSION (0,28,0)
+ long readCount = 0;
+ long totalWriteCount = 0;
++#else
++ size_t readCount = 0;
++ size_t totalWriteCount = 0;
++#endif
+ while ((readCount = src.read(buffer, sizeof(buffer))) != 0) {
+ totalWriteCount += write(buffer, readCount);
+ }
+@@ -88,15 +101,23 @@ int KisExiv2IODevice::putb(Exiv2::byte d
+ }
+ }
+
++#if EXIV2_TEST_VERSION (0,28,0)
++Exiv2::DataBuf KisExiv2IODevice::read(size_t rcount)
++#else
+ Exiv2::DataBuf KisExiv2IODevice::read(long rcount)
++#endif
+ {
+ Exiv2::DataBuf buf(rcount);
+- const long readCount = read(buf.pData_, buf.size_);
+- buf.size_ = readCount;
++ const long readCount = read(buf.data(), buf.size());
++ buf.resize(readCount);
+ return buf;
+ }
+
++#if EXIV2_TEST_VERSION (0,28,0)
++size_t KisExiv2IODevice::read(Exiv2::byte *buf, size_t rcount)
++#else
+ long KisExiv2IODevice::read(Exiv2::byte *buf, long rcount)
++#endif
+ {
+ const qint64 bytesRead = m_file.read(reinterpret_cast<char *>(buf), rcount);
+ if (bytesRead > 0) {
+@@ -154,7 +175,7 @@ void KisExiv2IODevice::transfer(Exiv2::B
+ }
+ }
+
+-#if defined(_MSC_VER)
++#if defined(_MSC_VER) || EXIV2_TEST_VERSION (0,28,0)
+ int KisExiv2IODevice::seek(int64_t offset, Exiv2::BasicIo::Position position)
+ #else
+ int KisExiv2IODevice::seek(long offset, Exiv2::BasicIo::Position position)
+@@ -202,7 +223,11 @@ int KisExiv2IODevice::munmap()
+ return 0;
+ }
+
++#if EXIV2_TEST_VERSION (0,28,0)
++size_t KisExiv2IODevice::tell() const
++#else
+ long KisExiv2IODevice::tell() const
++#endif
+ {
+ return m_file.pos();
+ }
+@@ -231,10 +256,18 @@ bool KisExiv2IODevice::eof() const
+ return m_file.atEnd();
+ }
+
++#if EXIV2_TEST_VERSION (0,28,0)
++const std::string& KisExiv2IODevice::path() const noexcept
++{
++ static std::string buf = filePathQString().toStdString();
++ return buf;
++}
++#else
+ std::string KisExiv2IODevice::path() const
+ {
+ return filePathQString().toStdString();
+ }
++#endif
+
+ bool KisExiv2IODevice::open(QFile::OpenMode mode)
+ {
+--- krita-5.1.5/plugins/metadata/common/kis_exiv2_common.h.orig 2023-01-05 12:21:21.000000000 +0100
++++ krita-5.1.5/plugins/metadata/common/kis_exiv2_common.h 2023-07-28 14:52:02.672742163 +0200
+@@ -19,7 +19,11 @@
+
+ // Convert an exiv value to a KisMetaData value
+ inline KisMetaData::Value
++#if EXIV2_TEST_VERSION (0,28,0)
++exivValueToKMDValue(const Exiv2::Value::UniquePtr value,
++#else
+ exivValueToKMDValue(const Exiv2::Value::AutoPtr value,
++#endif
+ bool forceSeq,
+ KisMetaData::Value::ValueType arrayType = KisMetaData::Value::UnorderedArray)
+ {
+@@ -42,11 +46,11 @@ exivValueToKMDValue(const Exiv2::Value::
+ case Exiv2::signedShort:
+ case Exiv2::signedLong: {
+ if (value->count() == 1 && !forceSeq) {
+- return KisMetaData::Value((int)value->toLong());
++ return KisMetaData::Value((int)value->toInt64());
+ } else {
+ QList<KisMetaData::Value> array;
+ for (int i = 0; i < value->count(); i++)
+- array.push_back(KisMetaData::Value((int)value->toLong(i)));
++ array.push_back(KisMetaData::Value((int)value->toInt64(i)));
+ return KisMetaData::Value(array, arrayType);
+ }
+ }
+--- krita-5.1.5/plugins/metadata/exif/kis_exif_io.cpp.orig 2023-01-05 12:21:21.000000000 +0100
++++ krita-5.1.5/plugins/metadata/exif/kis_exif_io.cpp 2023-07-28 19:47:39.556883236 +0200
+@@ -31,7 +31,11 @@
+ // ---- Exception conversion functions ---- //
+
+ // convert ExifVersion and FlashpixVersion to a KisMetaData value
++#if EXIV2_TEST_VERSION (0,28,0)
++KisMetaData::Value exifVersionToKMDValue(const Exiv2::Value::UniquePtr value)
++#else
+ KisMetaData::Value exifVersionToKMDValue(const Exiv2::Value::AutoPtr value)
++#endif
+ {
+ const Exiv2::DataValue *dvalue = dynamic_cast<const Exiv2::DataValue *>(&*value);
+ if (dvalue) {
+@@ -55,13 +59,17 @@ Exiv2::Value *kmdValueToExifVersion(cons
+ }
+
+ // Convert an exif array of integer string to a KisMetaData array of integer
++#if EXIV2_TEST_VERSION (0,28,0)
++KisMetaData::Value exifArrayToKMDIntOrderedArray(const Exiv2::Value::UniquePtr value)
++#else
+ KisMetaData::Value exifArrayToKMDIntOrderedArray(const Exiv2::Value::AutoPtr value)
++#endif
+ {
+ QList<KisMetaData::Value> v;
+ const Exiv2::DataValue *dvalue = dynamic_cast<const Exiv2::DataValue *>(&*value);
+ if (dvalue) {
+ for (long i = 0; i < dvalue->count(); i++) {
+- v.push_back({(int)dvalue->toLong(i)});
++ v.push_back({(int)dvalue->toInt64(i)});
+ }
+ } else {
+ Q_ASSERT(value->typeId() == Exiv2::asciiString);
+@@ -81,7 +89,11 @@ Exiv2::Value *kmdIntOrderedArrayToExifAr
+ return new Exiv2::DataValue(v.data(), static_cast<long>(v.size()));
+ }
+
++#if EXIV2_TEST_VERSION (0,28,0)
++QDateTime exivValueToDateTime(const Exiv2::Value::UniquePtr value)
++#else
+ QDateTime exivValueToDateTime(const Exiv2::Value::AutoPtr value)
++#endif
+ {
+ return QDateTime::fromString(value->toString().c_str(), Qt::ISODate);
+ }
+@@ -115,7 +127,11 @@ Exiv2::ByteOrder invertByteOrder(Exiv2::
+ return Exiv2::invalidByteOrder;
+ }
+
++#if EXIV2_TEST_VERSION (0,28,0)
++KisMetaData::Value exifOECFToKMDOECFStructure(const Exiv2::Value::UniquePtr value, Exiv2::ByteOrder order)
++#else
+ KisMetaData::Value exifOECFToKMDOECFStructure(const Exiv2::Value::AutoPtr value, Exiv2::ByteOrder order)
++#endif
+ {
+ QMap<QString, KisMetaData::Value> oecfStructure;
+ const Exiv2::DataValue *dvalue = dynamic_cast<const Exiv2::DataValue *>(&*value);
+@@ -202,7 +218,11 @@ Exiv2::Value *kmdOECFStructureToExifOECF
+ return new Exiv2::DataValue((const Exiv2::byte *)array.data(), array.size());
+ }
+
++#if EXIV2_TEST_VERSION (0,28,0)
++KisMetaData::Value deviceSettingDescriptionExifToKMD(const Exiv2::Value::UniquePtr value)
++#else
+ KisMetaData::Value deviceSettingDescriptionExifToKMD(const Exiv2::Value::AutoPtr value)
++#endif
+ {
+ QMap<QString, KisMetaData::Value> deviceSettingStructure;
+ QByteArray array;
+@@ -258,7 +278,11 @@ Exiv2::Value *deviceSettingDescriptionKM
+ return new Exiv2::DataValue((const Exiv2::byte *)array.data(), array.size());
+ }
+
++#if EXIV2_TEST_VERSION (0,28,0)
++KisMetaData::Value cfaPatternExifToKMD(const Exiv2::Value::UniquePtr value, Exiv2::ByteOrder order)
++#else
+ KisMetaData::Value cfaPatternExifToKMD(const Exiv2::Value::AutoPtr value, Exiv2::ByteOrder order)
++#endif
+ {
+ QMap<QString, KisMetaData::Value> cfaPatternStructure;
+ const Exiv2::DataValue *dvalue = dynamic_cast<const Exiv2::DataValue *>(&*value);
+@@ -310,9 +334,13 @@ Exiv2::Value *cfaPatternKMDToExif(const
+
+ // Read and write Flash //
+
++#if EXIV2_TEST_VERSION (0,28,0)
++KisMetaData::Value flashExifToKMD(const Exiv2::Value::UniquePtr value)
++#else
+ KisMetaData::Value flashExifToKMD(const Exiv2::Value::AutoPtr value)
++#endif
+ {
+- const uint16_t v = static_cast<uint16_t>(value->toLong());
++ const uint16_t v = static_cast<uint16_t>(value->toInt64());
+ QMap<QString, KisMetaData::Value> flashStructure;
+ bool fired = (v & 0x01); // bit 1 is whether flash was fired or not
+ flashStructure["Fired"] = QVariant(fired);
+@@ -465,7 +493,11 @@ bool KisExifIO::saveTo(KisMetaData::Stor
+ << exivKey; // << " of KMD value" << entry.value();
+ }
+ }
++#if EXIV2_TEST_VERSION(0, 28, 0)
++ } catch (Exiv2::Error &e) {
++#else
+ } catch (Exiv2::AnyError &e) {
++#endif
+ dbgMetaData << "exiv error " << e.what();
+ }
+ }
+--- krita-5.1.5/plugins/metadata/iptc/kis_iptc_io.cpp.orig 2023-01-05 12:21:21.000000000 +0100
++++ krita-5.1.5/plugins/metadata/iptc/kis_iptc_io.cpp 2023-07-28 19:50:08.597734785 +0200
+@@ -110,7 +110,11 @@ bool KisIptcIO::saveTo(KisMetaData::Stor
+ if (v && v->typeId() != Exiv2::invalidTypeId) {
+ iptcData.add(iptcKey, v);
+ }
++#if EXIV2_TEST_VERSION(0, 28, 0)
++ } catch (Exiv2::Error &e) {
++#else
+ } catch (Exiv2::AnyError &e) {
++#endif
+ dbgMetaData << "exiv error " << e.what();
+ }
+ }
+@@ -128,7 +132,7 @@ bool KisIptcIO::saveTo(KisMetaData::Stor
+ header.append(photoshopBimId_);
+ header.append(photoshopIptc_);
+ header.append(QByteArray(2, 0));
+- qint32 size = rawData.size_;
++ qint32 size = rawData.size();
+ QByteArray sizeArray(4, 0);
+ sizeArray[0] = (char)((size & 0xff000000) >> 24);
+ sizeArray[1] = (char)((size & 0x00ff0000) >> 16);
+@@ -138,7 +142,7 @@ bool KisIptcIO::saveTo(KisMetaData::Stor
+ ioDevice->write(header);
+ }
+
+- ioDevice->write((const char *)rawData.pData_, rawData.size_);
++ ioDevice->write((const char *)rawData.c_data(), rawData.size());
+ ioDevice->close();
+ return true;
+ }
+--- krita-5.1.5/plugins/metadata/xmp/kis_xmp_io.cpp.orig 2023-01-05 12:21:21.000000000 +0100
++++ krita-5.1.5/plugins/metadata/xmp/kis_xmp_io.cpp 2023-07-28 19:54:26.435874618 +0200
+@@ -248,7 +248,7 @@ bool KisXMPIO::loadFrom(KisMetaData::Sto
+ Q_ASSERT(schema);
+ }
+ }
+- const Exiv2::Value::AutoPtr value = it->getValue();
++ const auto value = it->getValue();
+
+ QString structName;
+ int arrayIndex = -1;
+--- krita-5.1.5/plugins/impex/jpeg/kis_jpeg_converter.cc.orig 2023-01-05 12:21:21.000000000 +0100
++++ krita-5.1.5/plugins/impex/jpeg/kis_jpeg_converter.cc 2023-07-28 20:13:37.792433757 +0200
+@@ -20,6 +20,8 @@ extern "C" {
+ }
+
+ #include <exiv2/jpgimage.hpp>
++#include <exiv2/photoshop.hpp>
++#include <exiv2/version.hpp>
+
+ #include <QFile>
+ #include <QBuffer>
+@@ -375,8 +377,13 @@ KisImportExportErrorCode KisJPEGConverte
+ uint32_t sizeIptc = 0;
+ uint32_t sizeHdr = 0;
+ // Find actual Iptc data within the APP13 segment
+- if (!Exiv2::Photoshop::locateIptcIrb((Exiv2::byte*)(marker->data + 14),
+- marker->data_length - 14, &record, &sizeHdr, &sizeIptc)) {
++ if (!Exiv2::Photoshop::locateIptcIrb((Exiv2::byte*)(marker->data + 14), marker->data_length - 14, &record,
++#if EXIV2_TEST_VERSION (0,28,0)
++ sizeHdr, sizeIptc
++#else
++ &sizeHdr, &sizeIptc
++#endif
++ )) {
+ if (sizeIptc) {
+ // Decode the IPTC data
+ QByteArray byteArray((const char*)(record + sizeHdr), sizeIptc);
+--- krita-5.1.5/plugins/impex/tiff/kis_tiff_export.cc.orig 2023-01-05 12:21:21.000000000 +0100
++++ krita-5.1.5/plugins/impex/tiff/kis_tiff_export.cc 2023-07-28 21:48:56.995242908 +0200
+@@ -206,7 +206,11 @@ KisImportExportErrorCode KisTIFFExport::
+ try {
+ KisExiv2IODevice::ptr_type basicIoDevice(new KisExiv2IODevice(filename()));
+
++#if EXIV2_TEST_VERSION (0,28,0)
++ std::unique_ptr<Exiv2::Image> img(Exiv2::ImageFactory::open(std::move(basicIoDevice)));
++#else
+ const std::unique_ptr<Exiv2::Image> img(Exiv2::ImageFactory::open(basicIoDevice).release());
++#endif
+
+ img->readMetadata();
+
+@@ -241,8 +245,12 @@ KisImportExportErrorCode KisTIFFExport::
+ }
+ // Write metadata
+ img->writeMetadata();
++#if EXIV2_TEST_VERSION (0,28,0)
++ } catch (Exiv2::Error &e) {
++#else
+ } catch (Exiv2::AnyError &e) {
+- errFile << "Failed injecting TIFF metadata:" << e.code()
++#endif
++ errFile << "Failed injecting TIFF metadata:" << static_cast<int>(e.code())
+ << e.what();
+ }
+ }
+--- krita-5.1.5/plugins/impex/tiff/kis_tiff_import.cc.orig 2023-01-05 12:21:21.000000000 +0100
++++ krita-5.1.5/plugins/impex/tiff/kis_tiff_import.cc 2023-07-28 21:50:11.042330662 +0200
+@@ -1840,7 +1840,11 @@ KisTIFFImport::convert(KisDocument *docu
+ try {
+ KisExiv2IODevice::ptr_type basicIoDevice(new KisExiv2IODevice(filename()));
+
++#if EXIV2_TEST_VERSION (0,28,0)
++ std::unique_ptr<Exiv2::Image> readImg(Exiv2::ImageFactory::open(std::move(basicIoDevice)));
++#else
+ const std::unique_ptr<Exiv2::Image> readImg(Exiv2::ImageFactory::open(basicIoDevice).release());
++#endif
+
+ readImg->readMetadata();
+
+@@ -1908,8 +1912,12 @@ KisTIFFImport::convert(KisDocument *docu
+
+ // Inject the data as any other IOBackend
+ io->loadFrom(layer->metaData(), &ioDevice);
++#if EXIV2_TEST_VERSION (0,28,0)
++ } catch (Exiv2::Error &e) {
++#else
+ } catch (Exiv2::AnyError &e) {
+- errFile << "Failed metadata import:" << e.code() << e.what();
++#endif
++ errFile << "Failed metadata import:" << static_cast<int>(e.code()) << e.what();
+ }
+ }
+
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/ka5-krita.git/commitdiff/7d01847159a30635aa10349e256eea8fbd67e46d
More information about the pld-cvs-commit
mailing list