opensuse TW has updated the exiv2 library to 0.28.0.
Now libkexiv2 fails to build.
Steps to reproduce
Build
Screenshots
FTBFS backtrace
[ 33%] Building CXX object libkexiv2/libkexiv2/CMakeFiles/kexiv2-shared.dir/kexiv2.cpp.o
cd /tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/build/libkexiv2/libkexiv2 && /usr/bin/c++ -DHAVE_CONFIG_H -Dkexiv2_shared_EXPORTS -I/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/build -I/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/build/libkexiv2/libkexiv2 -I/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2 -I/opt/trinity/include/tde -I/usr/include/tqt3 -I/usr/include/tqt -O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fdebug-prefix-map=/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0=. -fmacro-prefix-map=/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0=. -fvisibility=hidden -fvisibility-inlines-hidden -DTQT_NO_ASCII_CAST -DTQT_NO_STL -DTQT_NO_COMPAT -DTQT_NO_TRANSLATION -DTQT_THREAD_SUPPORT -D_REENTRANT -I/usr/include/tqt3 -I/usr/include/tqt -include tqt.h -DTQT_NO_ASCII_CAST -DTQT_NO_STL -DTQT_NO_COMPAT -DTQT_NO_TRANSLATION -DTQT_THREAD_SUPPORT -D_REENTRANT -include tqt.h -DNDEBUG -fPIC -MD -MT libkexiv2/libkexiv2/CMakeFiles/kexiv2-shared.dir/kexiv2.cpp.o -MF CMakeFiles/kexiv2-shared.dir/kexiv2.cpp.o.d -o CMakeFiles/kexiv2-shared.dir/kexiv2.cpp.o -c /tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'TQByteArray KExiv2Iface::KExiv2::getIptc(bool) const':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:237:33: error: 'struct Exiv2::DataBuf' has no member named 'size_'; did you mean 'size'?
237 | TQByteArray data(c2.size_);
| ^~~~~
| size
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:239:40: error: 'std::vector<unsigned char> Exiv2::DataBuf::pData_' is private within this context
239 | memcpy(data.data(), c2.pData_, c2.size_);
| ^~~~~~
In file included from /usr/include/exiv2/basicio.hpp:11,
from /usr/include/exiv2/exiv2.hpp:8,
from /tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2private.h:62,
from /tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:49:
/usr/include/exiv2/types.hpp:201:21: note: declared private here
201 | std::vector<byte> pData_;
| ^~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:239:51: error: 'struct Exiv2::DataBuf' has no member named 'size_'; did you mean 'size'?
239 | memcpy(data.data(), c2.pData_, c2.size_);
| ^~~~~
| size
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'bool KExiv2Iface::KExiv2::load(const TQByteArray&)':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:324:23: error: 'AutoPtr' is not a member of 'Exiv2::Image'
324 | Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open((Exiv2::byte*)imgData.data(), imgData.size());
| ^~~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:326:9: error: 'image' was not declared in this scope; did you mean 'QImage'?
326 | image->readMetadata();
| ^~~~~
| QImage
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'virtual bool KExiv2Iface::KExiv2::load(const TQString&)':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:362:23: error: 'AutoPtr' is not a member of 'Exiv2::Image'
362 | Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open((const char*)
| ^~~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:365:9: error: 'image' was not declared in this scope; did you mean 'QImage'?
365 | image->readMetadata();
| ^~~~~
| QImage
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'bool KExiv2Iface::KExiv2::save(const TQString&)':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:421:23: error: 'AutoPtr' is not a member of 'Exiv2::Image'
421 | Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open((const char*)
| ^~~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:426:9: error: 'image' was not declared in this scope; did you mean 'QImage'?
426 | image->readMetadata();
| ^~~~~
| QImage
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In static member function 'static bool KExiv2Iface::KExiv2::canWriteComment(const TQString&)':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:535:23: error: 'AutoPtr' is not a member of 'Exiv2::Image'
535 | Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open((const char*)
| ^~~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:538:34: error: 'image' was not declared in this scope; did you mean 'QImage'?
538 | Exiv2::AccessMode mode = image->checkMode(Exiv2::mdComment);
| ^~~~~
| QImage
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In static member function 'static bool KExiv2Iface::KExiv2::canWriteExif(const TQString&)':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:554:23: error: 'AutoPtr' is not a member of 'Exiv2::Image'
554 | Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open((const char*)
| ^~~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:557:34: error: 'image' was not declared in this scope; did you mean 'QImage'?
557 | Exiv2::AccessMode mode = image->checkMode(Exiv2::mdExif);
| ^~~~~
| QImage
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In static member function 'static bool KExiv2Iface::KExiv2::canWriteIptc(const TQString&)':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:573:23: error: 'AutoPtr' is not a member of 'Exiv2::Image'
573 | Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open((const char*)
| ^~~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:576:34: error: 'image' was not declared in this scope; did you mean 'QImage'?
576 | Exiv2::AccessMode mode = image->checkMode(Exiv2::mdIptc);
| ^~~~~
| QImage
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'TQSize KExiv2Iface::KExiv2::getImageDimensions() const':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:648:25: error: 'class Exiv2::Exifdatum' has no member named 'toLong'
648 | width = it->toLong();
| ^~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:654:27: error: 'class Exiv2::Exifdatum' has no member named 'toLong'
654 | height = it2->toLong();
| ^~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:668:26: error: 'class Exiv2::Exifdatum' has no member named 'toLong'
668 | width = it3->toLong();
| ^~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:674:27: error: 'class Exiv2::Exifdatum' has no member named 'toLong'
674 | height = it4->toLong();
| ^~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'TQImage KExiv2Iface::KExiv2::getExifThumbnail(bool) const':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:724:35: error: 'std::vector<unsigned char> Exiv2::DataBuf::pData_' is private within this context
724 | thumbnail.loadFromData(c1.pData_, c1.size_);
| ^~~~~~
/usr/include/exiv2/types.hpp:201:21: note: declared private here
201 | std::vector<byte> pData_;
| ^~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:724:46: error: 'const struct Exiv2::DataBuf' has no member named 'size_'; did you mean 'size'?
724 | thumbnail.loadFromData(c1.pData_, c1.size_);
| ^~~~~
| size
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:736:44: error: 'class Exiv2::Exifdatum' has no member named 'toLong'
736 | long orientation = it->toLong();
| ^~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'KExiv2Iface::KExiv2::ImageOrientation KExiv2Iface::KExiv2::getImageOrientation() const':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:860:35: error: 'class Exiv2::Exifdatum' has no member named 'toLong'
860 | orientation = it->toLong();
| ^~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:879:35: error: 'class Exiv2::Exifdatum' has no member named 'toLong'
879 | orientation = it->toLong();
| ^~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:901:31: error: 'class Exiv2::Exifdatum' has no member named 'toLong'
901 | orientation = it->toLong();
| ^~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'bool KExiv2Iface::KExiv2::getExifTagLong(const char*, long int&) const':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:1379:23: error: 'class Exiv2::Exifdatum' has no member named 'toLong'
1379 | val = it->toLong();
| ^~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'bool KExiv2Iface::KExiv2::setGPSInfo(double, double, double, bool)':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:1915:23: error: 'AutoPtr' is not a member of 'Exiv2::Value'
1915 | Exiv2::Value::AutoPtr value = Exiv2::Value::create(Exiv2::unsignedByte);
| ^~~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:1916:9: error: 'value' was not declared in this scope
1916 | value->read("2 0 0 0");
| ^~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'bool KExiv2Iface::KExiv2::setImageKeywords(const TQStringList&, const TQStringList&, bool)':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:2183:27: error: 'AutoPtr' is not a member of 'Exiv2::Value'
2183 | Exiv2::Value::AutoPtr val = Exiv2::Value::create(Exiv2::string);
| ^~~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:2184:13: error: 'val' was not declared in this scope
2184 | val->read(key.latin1());
| ^~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'bool KExiv2Iface::KExiv2::setImageSubjects(const TQStringList&, const TQStringList&, bool)':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:2266:27: error: 'AutoPtr' is not a member of 'Exiv2::Value'
2266 | Exiv2::Value::AutoPtr val = Exiv2::Value::create(Exiv2::string);
| ^~~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:2267:13: error: 'val' was not declared in this scope
2267 | val->read(key.latin1());
| ^~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'bool KExiv2Iface::KExiv2::setImageSubCategories(const TQStringList&, const TQStringList&, bool)':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:2350:27: error: 'AutoPtr' is not a member of 'Exiv2::Value'
2350 | Exiv2::Value::AutoPtr val = Exiv2::Value::create(Exiv2::string);
| ^~~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:2351:13: error: 'val' was not declared in this scope
2351 | val->read(key.latin1());
| ^~~
make[3]: *** [libkexiv2/libkexiv2/CMakeFiles/kexiv2-shared.dir/build.make:79: libkexiv2/libkexiv2/CMakeFiles/kexiv2-shared.dir/kexiv2.cpp.o] Error 1
make[3]: Leaving directory '/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/build'
make[2]: *** [CMakeFiles/Makefile2:116: libkexiv2/libkexiv2/CMakeFiles/kexiv2-shared.dir/all] Error 2
make[2]: Leaving directory '/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/build'
make[1]: *** [Makefile:139: all] Error 2
make[1]: Leaving directory '/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/build'
<!--
This is a comment.
Please fill in the required fields below.
The comments provide instructions on how to do so.
Note: You do not need to remove comments.
-->
## Basic information
- TDE version: 14.1.0
- Distribution: openSuse TW
- Hardware: amd64
<!--
Use SL/* labels to set the severity level.
Please do not set a milestone.
-->
## Description
opensuse TW has updated the exiv2 library to 0.28.0.
Now libkexiv2 fails to build.
## Steps to reproduce
Build
## Screenshots
<details>
<summary>FTBFS backtrace</summary>
```
[ 33%] Building CXX object libkexiv2/libkexiv2/CMakeFiles/kexiv2-shared.dir/kexiv2.cpp.o
cd /tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/build/libkexiv2/libkexiv2 && /usr/bin/c++ -DHAVE_CONFIG_H -Dkexiv2_shared_EXPORTS -I/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/build -I/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/build/libkexiv2/libkexiv2 -I/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2 -I/opt/trinity/include/tde -I/usr/include/tqt3 -I/usr/include/tqt -O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fdebug-prefix-map=/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0=. -fmacro-prefix-map=/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0=. -fvisibility=hidden -fvisibility-inlines-hidden -DTQT_NO_ASCII_CAST -DTQT_NO_STL -DTQT_NO_COMPAT -DTQT_NO_TRANSLATION -DTQT_THREAD_SUPPORT -D_REENTRANT -I/usr/include/tqt3 -I/usr/include/tqt -include tqt.h -DTQT_NO_ASCII_CAST -DTQT_NO_STL -DTQT_NO_COMPAT -DTQT_NO_TRANSLATION -DTQT_THREAD_SUPPORT -D_REENTRANT -include tqt.h -DNDEBUG -fPIC -MD -MT libkexiv2/libkexiv2/CMakeFiles/kexiv2-shared.dir/kexiv2.cpp.o -MF CMakeFiles/kexiv2-shared.dir/kexiv2.cpp.o.d -o CMakeFiles/kexiv2-shared.dir/kexiv2.cpp.o -c /tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'TQByteArray KExiv2Iface::KExiv2::getIptc(bool) const':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:237:33: error: 'struct Exiv2::DataBuf' has no member named 'size_'; did you mean 'size'?
237 | TQByteArray data(c2.size_);
| ^~~~~
| size
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:239:40: error: 'std::vector<unsigned char> Exiv2::DataBuf::pData_' is private within this context
239 | memcpy(data.data(), c2.pData_, c2.size_);
| ^~~~~~
In file included from /usr/include/exiv2/basicio.hpp:11,
from /usr/include/exiv2/exiv2.hpp:8,
from /tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2private.h:62,
from /tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:49:
/usr/include/exiv2/types.hpp:201:21: note: declared private here
201 | std::vector<byte> pData_;
| ^~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:239:51: error: 'struct Exiv2::DataBuf' has no member named 'size_'; did you mean 'size'?
239 | memcpy(data.data(), c2.pData_, c2.size_);
| ^~~~~
| size
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'bool KExiv2Iface::KExiv2::load(const TQByteArray&)':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:324:23: error: 'AutoPtr' is not a member of 'Exiv2::Image'
324 | Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open((Exiv2::byte*)imgData.data(), imgData.size());
| ^~~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:326:9: error: 'image' was not declared in this scope; did you mean 'QImage'?
326 | image->readMetadata();
| ^~~~~
| QImage
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'virtual bool KExiv2Iface::KExiv2::load(const TQString&)':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:362:23: error: 'AutoPtr' is not a member of 'Exiv2::Image'
362 | Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open((const char*)
| ^~~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:365:9: error: 'image' was not declared in this scope; did you mean 'QImage'?
365 | image->readMetadata();
| ^~~~~
| QImage
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'bool KExiv2Iface::KExiv2::save(const TQString&)':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:421:23: error: 'AutoPtr' is not a member of 'Exiv2::Image'
421 | Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open((const char*)
| ^~~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:426:9: error: 'image' was not declared in this scope; did you mean 'QImage'?
426 | image->readMetadata();
| ^~~~~
| QImage
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In static member function 'static bool KExiv2Iface::KExiv2::canWriteComment(const TQString&)':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:535:23: error: 'AutoPtr' is not a member of 'Exiv2::Image'
535 | Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open((const char*)
| ^~~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:538:34: error: 'image' was not declared in this scope; did you mean 'QImage'?
538 | Exiv2::AccessMode mode = image->checkMode(Exiv2::mdComment);
| ^~~~~
| QImage
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In static member function 'static bool KExiv2Iface::KExiv2::canWriteExif(const TQString&)':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:554:23: error: 'AutoPtr' is not a member of 'Exiv2::Image'
554 | Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open((const char*)
| ^~~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:557:34: error: 'image' was not declared in this scope; did you mean 'QImage'?
557 | Exiv2::AccessMode mode = image->checkMode(Exiv2::mdExif);
| ^~~~~
| QImage
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In static member function 'static bool KExiv2Iface::KExiv2::canWriteIptc(const TQString&)':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:573:23: error: 'AutoPtr' is not a member of 'Exiv2::Image'
573 | Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open((const char*)
| ^~~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:576:34: error: 'image' was not declared in this scope; did you mean 'QImage'?
576 | Exiv2::AccessMode mode = image->checkMode(Exiv2::mdIptc);
| ^~~~~
| QImage
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'TQSize KExiv2Iface::KExiv2::getImageDimensions() const':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:648:25: error: 'class Exiv2::Exifdatum' has no member named 'toLong'
648 | width = it->toLong();
| ^~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:654:27: error: 'class Exiv2::Exifdatum' has no member named 'toLong'
654 | height = it2->toLong();
| ^~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:668:26: error: 'class Exiv2::Exifdatum' has no member named 'toLong'
668 | width = it3->toLong();
| ^~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:674:27: error: 'class Exiv2::Exifdatum' has no member named 'toLong'
674 | height = it4->toLong();
| ^~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'TQImage KExiv2Iface::KExiv2::getExifThumbnail(bool) const':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:724:35: error: 'std::vector<unsigned char> Exiv2::DataBuf::pData_' is private within this context
724 | thumbnail.loadFromData(c1.pData_, c1.size_);
| ^~~~~~
/usr/include/exiv2/types.hpp:201:21: note: declared private here
201 | std::vector<byte> pData_;
| ^~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:724:46: error: 'const struct Exiv2::DataBuf' has no member named 'size_'; did you mean 'size'?
724 | thumbnail.loadFromData(c1.pData_, c1.size_);
| ^~~~~
| size
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:736:44: error: 'class Exiv2::Exifdatum' has no member named 'toLong'
736 | long orientation = it->toLong();
| ^~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'KExiv2Iface::KExiv2::ImageOrientation KExiv2Iface::KExiv2::getImageOrientation() const':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:860:35: error: 'class Exiv2::Exifdatum' has no member named 'toLong'
860 | orientation = it->toLong();
| ^~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:879:35: error: 'class Exiv2::Exifdatum' has no member named 'toLong'
879 | orientation = it->toLong();
| ^~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:901:31: error: 'class Exiv2::Exifdatum' has no member named 'toLong'
901 | orientation = it->toLong();
| ^~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'bool KExiv2Iface::KExiv2::getExifTagLong(const char*, long int&) const':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:1379:23: error: 'class Exiv2::Exifdatum' has no member named 'toLong'
1379 | val = it->toLong();
| ^~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'bool KExiv2Iface::KExiv2::setGPSInfo(double, double, double, bool)':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:1915:23: error: 'AutoPtr' is not a member of 'Exiv2::Value'
1915 | Exiv2::Value::AutoPtr value = Exiv2::Value::create(Exiv2::unsignedByte);
| ^~~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:1916:9: error: 'value' was not declared in this scope
1916 | value->read("2 0 0 0");
| ^~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'bool KExiv2Iface::KExiv2::setImageKeywords(const TQStringList&, const TQStringList&, bool)':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:2183:27: error: 'AutoPtr' is not a member of 'Exiv2::Value'
2183 | Exiv2::Value::AutoPtr val = Exiv2::Value::create(Exiv2::string);
| ^~~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:2184:13: error: 'val' was not declared in this scope
2184 | val->read(key.latin1());
| ^~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'bool KExiv2Iface::KExiv2::setImageSubjects(const TQStringList&, const TQStringList&, bool)':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:2266:27: error: 'AutoPtr' is not a member of 'Exiv2::Value'
2266 | Exiv2::Value::AutoPtr val = Exiv2::Value::create(Exiv2::string);
| ^~~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:2267:13: error: 'val' was not declared in this scope
2267 | val->read(key.latin1());
| ^~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp: In member function 'bool KExiv2Iface::KExiv2::setImageSubCategories(const TQStringList&, const TQStringList&, bool)':
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:2350:27: error: 'AutoPtr' is not a member of 'Exiv2::Value'
2350 | Exiv2::Value::AutoPtr val = Exiv2::Value::create(Exiv2::string);
| ^~~~~~~
/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/libkexiv2/libkexiv2/kexiv2.cpp:2351:13: error: 'val' was not declared in this scope
2351 | val->read(key.latin1());
| ^~~
make[3]: *** [libkexiv2/libkexiv2/CMakeFiles/kexiv2-shared.dir/build.make:79: libkexiv2/libkexiv2/CMakeFiles/kexiv2-shared.dir/kexiv2.cpp.o] Error 1
make[3]: Leaving directory '/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/build'
make[2]: *** [CMakeFiles/Makefile2:116: libkexiv2/libkexiv2/CMakeFiles/kexiv2-shared.dir/all] Error 2
make[2]: Leaving directory '/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/build'
make[1]: *** [Makefile:139: all] Error 2
make[1]: Leaving directory '/tmp/BUILD.osstw.x86_64/trinity-libkexiv2-14.1.0/build'
```
</details>
@Francois
I am able to reproduce the same issue in Debian with libexiv2 0.28 manually installed. Will work on a fix in coming days. Will ask you to test a PR when ready.
@Francois
I am able to reproduce the same issue in Debian with libexiv2 0.28 manually installed. Will work on a fix in coming days. Will ask you to test a PR when ready.
@Francois
can you test PR #4 (two commits) and let me know if you can build in Fedora 38? I am able to successfully build in Debian with libexiv2 0.28.0.
@Francois
can you test PR #4 (two commits) and let me know if you can build in Fedora 38? I am able to successfully build in Debian with libexiv2 0.28.0.
MicheleC
added this to the R14.1.1 release milestone 8 months ago
@Francois
can you test PR #4 (two commits) and let me know if you can build in Fedora 38? I am able to successfully build in Debian with libexiv2 0.28.0.
the initial problem was found in OpenSuse TW, not Fedora 38.
I confirm your patch solves the build issue on OpenSuse TW.
Now it's GwenView that fails to build, but that's another ticket :)
> @Francois
> can you test PR #4 (two commits) and let me know if you can build in Fedora 38? I am able to successfully build in Debian with libexiv2 0.28.0.
Hello @MicheleC , thanks for the patch.
the initial problem was found in OpenSuse TW, not Fedora 38.
I confirm your patch solves the build issue on OpenSuse TW.
Now it's GwenView that fails to build, but that's another ticket :)
Hi @Francois, thanks for testing (apologies for mixing OpenSuse and Fedora :-) ). Will merge the patch once @SlavekB approves it, which is likely to be tomorrow. I will also work on the remaining repos needing fixing (like gwenview).
Hi @Francois, thanks for testing (apologies for mixing OpenSuse and Fedora :-) ). Will merge the patch once @SlavekB approves it, which is likely to be tomorrow. I will also work on the remaining repos needing fixing (like gwenview).
Basic information
Description
opensuse TW has updated the exiv2 library to 0.28.0.
Now libkexiv2 fails to build.
Steps to reproduce
Build
Screenshots
FTBFS backtrace
Hi @Francois,
I will need to setup a TW VM or docker image, but I will have a look at some point between now and R14.1.1 release.
@Francois
I am able to reproduce the same issue in Debian with libexiv2 0.28 manually installed. Will work on a fix in coming days. Will ask you to test a PR when ready.
@Francois
can you test PR #4 (two commits) and let me know if you can build in Fedora 38? I am able to successfully build in Debian with libexiv2 0.28.0.
Hello @MicheleC , thanks for the patch.
the initial problem was found in OpenSuse TW, not Fedora 38.
I confirm your patch solves the build issue on OpenSuse TW.
Now it's GwenView that fails to build, but that's another ticket :)
Hi @Francois, thanks for testing (apologies for mixing OpenSuse and Fedora :-) ). Will merge the patch once @SlavekB approves it, which is likely to be tomorrow. I will also work on the remaining repos needing fixing (like gwenview).
PR #4 merged.