]> git.pld-linux.org Git - packages/ka5-krita.git/blame - krita-exiv2.patch
- added exiv2 patch, package jxl plugins; release 4
[packages/ka5-krita.git] / krita-exiv2.patch
CommitLineData
7d018471
JB
1--- krita-5.1.5/plugins/metadata/common/KisExiv2IODevice.h.orig 2023-01-05 12:21:21.000000000 +0100
2+++ krita-5.1.5/plugins/metadata/common/KisExiv2IODevice.h 2023-07-28 20:55:52.067163352 +0200
3@@ -18,21 +18,37 @@
4 class KRITAEXIFCOMMON_EXPORT KisExiv2IODevice : public Exiv2::BasicIo
5 {
6 public:
7+#if EXIV2_TEST_VERSION (0,28,0)
8+ using ptr_type = Exiv2::BasicIo::UniquePtr;
9+#else
10 using ptr_type = Exiv2::BasicIo::AutoPtr;
11+#endif
12
13 KisExiv2IODevice(QString path);
14 ~KisExiv2IODevice() override;
15
16 int open() override;
17 int close() override;
18+#if EXIV2_TEST_VERSION (0,28,0)
19+ size_t write(const Exiv2::byte *data, size_t wcount) override;
20+ size_t write(Exiv2::BasicIo &src) override;
21+ Exiv2::DataBuf read(size_t rcount) override;
22+ size_t read(Exiv2::byte *buf, size_t rcount) override;
23+ size_t tell() const override;
24+ const std::string& path() const noexcept override;
25+ void populateFakeData() override {}
26+#else
27 long write(const Exiv2::byte *data, long wcount) override;
28 long write(Exiv2::BasicIo &src) override;
29- int putb(Exiv2::byte data) override;
30 Exiv2::DataBuf read(long rcount) override;
31 long read(Exiv2::byte *buf, long rcount) override;
32+ long tell() const override;
33+ std::string path() const override;
34+#endif
35+ int putb(Exiv2::byte data) override;
36 int getb() override;
37 void transfer(BasicIo &src) override;
38-#if defined(_MSC_VER)
39+#if defined(_MSC_VER) || EXIV2_TEST_VERSION (0,28,0)
40 int seek(int64_t offset, Position pos) override;
41 #else
42 int seek(long offset, Position pos) override;
43@@ -40,12 +56,10 @@ public:
44
45 Exiv2::byte *mmap(bool isWriteable = false) override;
46 int munmap() override;
47- long tell() const override;
48 size_t size() const override;
49 bool isopen() const override;
50 int error() const override;
51 bool eof() const override;
52- std::string path() const override;
53
54 private:
55 bool open(QFile::OpenMode mode);
56--- krita-5.1.5/plugins/metadata/common/KisExiv2IODevice.cpp.orig 2023-01-05 12:21:21.000000000 +0100
57+++ krita-5.1.5/plugins/metadata/common/KisExiv2IODevice.cpp 2023-07-28 14:04:49.160142867 +0200
58@@ -39,7 +39,11 @@ int KisExiv2IODevice::close()
59 return 0;
60 }
61
62+#if EXIV2_TEST_VERSION (0,28,0)
63+size_t KisExiv2IODevice::write(const Exiv2::byte *data, size_t wcount)
64+#else
65 long KisExiv2IODevice::write(const Exiv2::byte *data, long wcount)
66+#endif
67 {
68 if (!m_file.isWritable()) {
69 qWarning() << "KisExiv2IODevice: File not open for writing.";
70@@ -53,7 +57,11 @@ long KisExiv2IODevice::write(const Exiv2
71 return 0;
72 }
73
74+#if EXIV2_TEST_VERSION (0,28,0)
75+size_t KisExiv2IODevice::write(Exiv2::BasicIo &src)
76+#else
77 long KisExiv2IODevice::write(Exiv2::BasicIo &src)
78+#endif
79 {
80 if (static_cast<BasicIo *>(this) == &src) {
81 return 0;
82@@ -66,8 +74,13 @@ long KisExiv2IODevice::write(Exiv2::Basi
83 return 0;
84 }
85 Exiv2::byte buffer[4096];
86+#if EXIV2_TEST_VERSION (0,28,0)
87 long readCount = 0;
88 long totalWriteCount = 0;
89+#else
90+ size_t readCount = 0;
91+ size_t totalWriteCount = 0;
92+#endif
93 while ((readCount = src.read(buffer, sizeof(buffer))) != 0) {
94 totalWriteCount += write(buffer, readCount);
95 }
96@@ -88,15 +101,23 @@ int KisExiv2IODevice::putb(Exiv2::byte d
97 }
98 }
99
100+#if EXIV2_TEST_VERSION (0,28,0)
101+Exiv2::DataBuf KisExiv2IODevice::read(size_t rcount)
102+#else
103 Exiv2::DataBuf KisExiv2IODevice::read(long rcount)
104+#endif
105 {
106 Exiv2::DataBuf buf(rcount);
107- const long readCount = read(buf.pData_, buf.size_);
108- buf.size_ = readCount;
109+ const long readCount = read(buf.data(), buf.size());
110+ buf.resize(readCount);
111 return buf;
112 }
113
114+#if EXIV2_TEST_VERSION (0,28,0)
115+size_t KisExiv2IODevice::read(Exiv2::byte *buf, size_t rcount)
116+#else
117 long KisExiv2IODevice::read(Exiv2::byte *buf, long rcount)
118+#endif
119 {
120 const qint64 bytesRead = m_file.read(reinterpret_cast<char *>(buf), rcount);
121 if (bytesRead > 0) {
122@@ -154,7 +175,7 @@ void KisExiv2IODevice::transfer(Exiv2::B
123 }
124 }
125
126-#if defined(_MSC_VER)
127+#if defined(_MSC_VER) || EXIV2_TEST_VERSION (0,28,0)
128 int KisExiv2IODevice::seek(int64_t offset, Exiv2::BasicIo::Position position)
129 #else
130 int KisExiv2IODevice::seek(long offset, Exiv2::BasicIo::Position position)
131@@ -202,7 +223,11 @@ int KisExiv2IODevice::munmap()
132 return 0;
133 }
134
135+#if EXIV2_TEST_VERSION (0,28,0)
136+size_t KisExiv2IODevice::tell() const
137+#else
138 long KisExiv2IODevice::tell() const
139+#endif
140 {
141 return m_file.pos();
142 }
143@@ -231,10 +256,18 @@ bool KisExiv2IODevice::eof() const
144 return m_file.atEnd();
145 }
146
147+#if EXIV2_TEST_VERSION (0,28,0)
148+const std::string& KisExiv2IODevice::path() const noexcept
149+{
150+ static std::string buf = filePathQString().toStdString();
151+ return buf;
152+}
153+#else
154 std::string KisExiv2IODevice::path() const
155 {
156 return filePathQString().toStdString();
157 }
158+#endif
159
160 bool KisExiv2IODevice::open(QFile::OpenMode mode)
161 {
162--- krita-5.1.5/plugins/metadata/common/kis_exiv2_common.h.orig 2023-01-05 12:21:21.000000000 +0100
163+++ krita-5.1.5/plugins/metadata/common/kis_exiv2_common.h 2023-07-28 14:52:02.672742163 +0200
164@@ -19,7 +19,11 @@
165
166 // Convert an exiv value to a KisMetaData value
167 inline KisMetaData::Value
168+#if EXIV2_TEST_VERSION (0,28,0)
169+exivValueToKMDValue(const Exiv2::Value::UniquePtr value,
170+#else
171 exivValueToKMDValue(const Exiv2::Value::AutoPtr value,
172+#endif
173 bool forceSeq,
174 KisMetaData::Value::ValueType arrayType = KisMetaData::Value::UnorderedArray)
175 {
176@@ -42,11 +46,11 @@ exivValueToKMDValue(const Exiv2::Value::
177 case Exiv2::signedShort:
178 case Exiv2::signedLong: {
179 if (value->count() == 1 && !forceSeq) {
180- return KisMetaData::Value((int)value->toLong());
181+ return KisMetaData::Value((int)value->toInt64());
182 } else {
183 QList<KisMetaData::Value> array;
184 for (int i = 0; i < value->count(); i++)
185- array.push_back(KisMetaData::Value((int)value->toLong(i)));
186+ array.push_back(KisMetaData::Value((int)value->toInt64(i)));
187 return KisMetaData::Value(array, arrayType);
188 }
189 }
190--- krita-5.1.5/plugins/metadata/exif/kis_exif_io.cpp.orig 2023-01-05 12:21:21.000000000 +0100
191+++ krita-5.1.5/plugins/metadata/exif/kis_exif_io.cpp 2023-07-28 19:47:39.556883236 +0200
192@@ -31,7 +31,11 @@
193 // ---- Exception conversion functions ---- //
194
195 // convert ExifVersion and FlashpixVersion to a KisMetaData value
196+#if EXIV2_TEST_VERSION (0,28,0)
197+KisMetaData::Value exifVersionToKMDValue(const Exiv2::Value::UniquePtr value)
198+#else
199 KisMetaData::Value exifVersionToKMDValue(const Exiv2::Value::AutoPtr value)
200+#endif
201 {
202 const Exiv2::DataValue *dvalue = dynamic_cast<const Exiv2::DataValue *>(&*value);
203 if (dvalue) {
204@@ -55,13 +59,17 @@ Exiv2::Value *kmdValueToExifVersion(cons
205 }
206
207 // Convert an exif array of integer string to a KisMetaData array of integer
208+#if EXIV2_TEST_VERSION (0,28,0)
209+KisMetaData::Value exifArrayToKMDIntOrderedArray(const Exiv2::Value::UniquePtr value)
210+#else
211 KisMetaData::Value exifArrayToKMDIntOrderedArray(const Exiv2::Value::AutoPtr value)
212+#endif
213 {
214 QList<KisMetaData::Value> v;
215 const Exiv2::DataValue *dvalue = dynamic_cast<const Exiv2::DataValue *>(&*value);
216 if (dvalue) {
217 for (long i = 0; i < dvalue->count(); i++) {
218- v.push_back({(int)dvalue->toLong(i)});
219+ v.push_back({(int)dvalue->toInt64(i)});
220 }
221 } else {
222 Q_ASSERT(value->typeId() == Exiv2::asciiString);
223@@ -81,7 +89,11 @@ Exiv2::Value *kmdIntOrderedArrayToExifAr
224 return new Exiv2::DataValue(v.data(), static_cast<long>(v.size()));
225 }
226
227+#if EXIV2_TEST_VERSION (0,28,0)
228+QDateTime exivValueToDateTime(const Exiv2::Value::UniquePtr value)
229+#else
230 QDateTime exivValueToDateTime(const Exiv2::Value::AutoPtr value)
231+#endif
232 {
233 return QDateTime::fromString(value->toString().c_str(), Qt::ISODate);
234 }
235@@ -115,7 +127,11 @@ Exiv2::ByteOrder invertByteOrder(Exiv2::
236 return Exiv2::invalidByteOrder;
237 }
238
239+#if EXIV2_TEST_VERSION (0,28,0)
240+KisMetaData::Value exifOECFToKMDOECFStructure(const Exiv2::Value::UniquePtr value, Exiv2::ByteOrder order)
241+#else
242 KisMetaData::Value exifOECFToKMDOECFStructure(const Exiv2::Value::AutoPtr value, Exiv2::ByteOrder order)
243+#endif
244 {
245 QMap<QString, KisMetaData::Value> oecfStructure;
246 const Exiv2::DataValue *dvalue = dynamic_cast<const Exiv2::DataValue *>(&*value);
247@@ -202,7 +218,11 @@ Exiv2::Value *kmdOECFStructureToExifOECF
248 return new Exiv2::DataValue((const Exiv2::byte *)array.data(), array.size());
249 }
250
251+#if EXIV2_TEST_VERSION (0,28,0)
252+KisMetaData::Value deviceSettingDescriptionExifToKMD(const Exiv2::Value::UniquePtr value)
253+#else
254 KisMetaData::Value deviceSettingDescriptionExifToKMD(const Exiv2::Value::AutoPtr value)
255+#endif
256 {
257 QMap<QString, KisMetaData::Value> deviceSettingStructure;
258 QByteArray array;
259@@ -258,7 +278,11 @@ Exiv2::Value *deviceSettingDescriptionKM
260 return new Exiv2::DataValue((const Exiv2::byte *)array.data(), array.size());
261 }
262
263+#if EXIV2_TEST_VERSION (0,28,0)
264+KisMetaData::Value cfaPatternExifToKMD(const Exiv2::Value::UniquePtr value, Exiv2::ByteOrder order)
265+#else
266 KisMetaData::Value cfaPatternExifToKMD(const Exiv2::Value::AutoPtr value, Exiv2::ByteOrder order)
267+#endif
268 {
269 QMap<QString, KisMetaData::Value> cfaPatternStructure;
270 const Exiv2::DataValue *dvalue = dynamic_cast<const Exiv2::DataValue *>(&*value);
271@@ -310,9 +334,13 @@ Exiv2::Value *cfaPatternKMDToExif(const
272
273 // Read and write Flash //
274
275+#if EXIV2_TEST_VERSION (0,28,0)
276+KisMetaData::Value flashExifToKMD(const Exiv2::Value::UniquePtr value)
277+#else
278 KisMetaData::Value flashExifToKMD(const Exiv2::Value::AutoPtr value)
279+#endif
280 {
281- const uint16_t v = static_cast<uint16_t>(value->toLong());
282+ const uint16_t v = static_cast<uint16_t>(value->toInt64());
283 QMap<QString, KisMetaData::Value> flashStructure;
284 bool fired = (v & 0x01); // bit 1 is whether flash was fired or not
285 flashStructure["Fired"] = QVariant(fired);
286@@ -465,7 +493,11 @@ bool KisExifIO::saveTo(KisMetaData::Stor
287 << exivKey; // << " of KMD value" << entry.value();
288 }
289 }
290+#if EXIV2_TEST_VERSION(0, 28, 0)
291+ } catch (Exiv2::Error &e) {
292+#else
293 } catch (Exiv2::AnyError &e) {
294+#endif
295 dbgMetaData << "exiv error " << e.what();
296 }
297 }
298--- krita-5.1.5/plugins/metadata/iptc/kis_iptc_io.cpp.orig 2023-01-05 12:21:21.000000000 +0100
299+++ krita-5.1.5/plugins/metadata/iptc/kis_iptc_io.cpp 2023-07-28 19:50:08.597734785 +0200
300@@ -110,7 +110,11 @@ bool KisIptcIO::saveTo(KisMetaData::Stor
301 if (v && v->typeId() != Exiv2::invalidTypeId) {
302 iptcData.add(iptcKey, v);
303 }
304+#if EXIV2_TEST_VERSION(0, 28, 0)
305+ } catch (Exiv2::Error &e) {
306+#else
307 } catch (Exiv2::AnyError &e) {
308+#endif
309 dbgMetaData << "exiv error " << e.what();
310 }
311 }
312@@ -128,7 +132,7 @@ bool KisIptcIO::saveTo(KisMetaData::Stor
313 header.append(photoshopBimId_);
314 header.append(photoshopIptc_);
315 header.append(QByteArray(2, 0));
316- qint32 size = rawData.size_;
317+ qint32 size = rawData.size();
318 QByteArray sizeArray(4, 0);
319 sizeArray[0] = (char)((size & 0xff000000) >> 24);
320 sizeArray[1] = (char)((size & 0x00ff0000) >> 16);
321@@ -138,7 +142,7 @@ bool KisIptcIO::saveTo(KisMetaData::Stor
322 ioDevice->write(header);
323 }
324
325- ioDevice->write((const char *)rawData.pData_, rawData.size_);
326+ ioDevice->write((const char *)rawData.c_data(), rawData.size());
327 ioDevice->close();
328 return true;
329 }
330--- krita-5.1.5/plugins/metadata/xmp/kis_xmp_io.cpp.orig 2023-01-05 12:21:21.000000000 +0100
331+++ krita-5.1.5/plugins/metadata/xmp/kis_xmp_io.cpp 2023-07-28 19:54:26.435874618 +0200
332@@ -248,7 +248,7 @@ bool KisXMPIO::loadFrom(KisMetaData::Sto
333 Q_ASSERT(schema);
334 }
335 }
336- const Exiv2::Value::AutoPtr value = it->getValue();
337+ const auto value = it->getValue();
338
339 QString structName;
340 int arrayIndex = -1;
341--- krita-5.1.5/plugins/impex/jpeg/kis_jpeg_converter.cc.orig 2023-01-05 12:21:21.000000000 +0100
342+++ krita-5.1.5/plugins/impex/jpeg/kis_jpeg_converter.cc 2023-07-28 20:13:37.792433757 +0200
343@@ -20,6 +20,8 @@ extern "C" {
344 }
345
346 #include <exiv2/jpgimage.hpp>
347+#include <exiv2/photoshop.hpp>
348+#include <exiv2/version.hpp>
349
350 #include <QFile>
351 #include <QBuffer>
352@@ -375,8 +377,13 @@ KisImportExportErrorCode KisJPEGConverte
353 uint32_t sizeIptc = 0;
354 uint32_t sizeHdr = 0;
355 // Find actual Iptc data within the APP13 segment
356- if (!Exiv2::Photoshop::locateIptcIrb((Exiv2::byte*)(marker->data + 14),
357- marker->data_length - 14, &record, &sizeHdr, &sizeIptc)) {
358+ if (!Exiv2::Photoshop::locateIptcIrb((Exiv2::byte*)(marker->data + 14), marker->data_length - 14, &record,
359+#if EXIV2_TEST_VERSION (0,28,0)
360+ sizeHdr, sizeIptc
361+#else
362+ &sizeHdr, &sizeIptc
363+#endif
364+ )) {
365 if (sizeIptc) {
366 // Decode the IPTC data
367 QByteArray byteArray((const char*)(record + sizeHdr), sizeIptc);
368--- krita-5.1.5/plugins/impex/tiff/kis_tiff_export.cc.orig 2023-01-05 12:21:21.000000000 +0100
369+++ krita-5.1.5/plugins/impex/tiff/kis_tiff_export.cc 2023-07-28 21:48:56.995242908 +0200
370@@ -206,7 +206,11 @@ KisImportExportErrorCode KisTIFFExport::
371 try {
372 KisExiv2IODevice::ptr_type basicIoDevice(new KisExiv2IODevice(filename()));
373
374+#if EXIV2_TEST_VERSION (0,28,0)
375+ std::unique_ptr<Exiv2::Image> img(Exiv2::ImageFactory::open(std::move(basicIoDevice)));
376+#else
377 const std::unique_ptr<Exiv2::Image> img(Exiv2::ImageFactory::open(basicIoDevice).release());
378+#endif
379
380 img->readMetadata();
381
382@@ -241,8 +245,12 @@ KisImportExportErrorCode KisTIFFExport::
383 }
384 // Write metadata
385 img->writeMetadata();
386+#if EXIV2_TEST_VERSION (0,28,0)
387+ } catch (Exiv2::Error &e) {
388+#else
389 } catch (Exiv2::AnyError &e) {
390- errFile << "Failed injecting TIFF metadata:" << e.code()
391+#endif
392+ errFile << "Failed injecting TIFF metadata:" << static_cast<int>(e.code())
393 << e.what();
394 }
395 }
396--- krita-5.1.5/plugins/impex/tiff/kis_tiff_import.cc.orig 2023-01-05 12:21:21.000000000 +0100
397+++ krita-5.1.5/plugins/impex/tiff/kis_tiff_import.cc 2023-07-28 21:50:11.042330662 +0200
398@@ -1840,7 +1840,11 @@ KisTIFFImport::convert(KisDocument *docu
399 try {
400 KisExiv2IODevice::ptr_type basicIoDevice(new KisExiv2IODevice(filename()));
401
402+#if EXIV2_TEST_VERSION (0,28,0)
403+ std::unique_ptr<Exiv2::Image> readImg(Exiv2::ImageFactory::open(std::move(basicIoDevice)));
404+#else
405 const std::unique_ptr<Exiv2::Image> readImg(Exiv2::ImageFactory::open(basicIoDevice).release());
406+#endif
407
408 readImg->readMetadata();
409
410@@ -1908,8 +1912,12 @@ KisTIFFImport::convert(KisDocument *docu
411
412 // Inject the data as any other IOBackend
413 io->loadFrom(layer->metaData(), &ioDevice);
414+#if EXIV2_TEST_VERSION (0,28,0)
415+ } catch (Exiv2::Error &e) {
416+#else
417 } catch (Exiv2::AnyError &e) {
418- errFile << "Failed metadata import:" << e.code() << e.what();
419+#endif
420+ errFile << "Failed metadata import:" << static_cast<int>(e.code()) << e.what();
421 }
422 }
423
This page took 0.178045 seconds and 4 git commands to generate.