You are not logged in.

#1 2023-06-08 20:45:59

rouelle
Member
Registered: 2018-03-13
Posts: 46

Last exiv2 and libgexiv2 update broke gimp jpeg metadata export

Last exiv2 and libgexiv2 update broke gimp jpeg metadata export + geeqie

exiv2 (0.27.6-2 -> 0.28.0-1) and libgexiv2 (0.14.0-4 -> 0.14.1-1) were upgraded on 2023-06-08. Gimp is not able since to export metadata from a jpeg file opened, modified and resaved. A window stating "Message Image JPEG run: saving metadata failed: Failed to write image" appears and the file is saved without metadata.

The same upgrade of exiv2 and libgexiv2 also broke Geeqie that was updated from (2.0.1-5 -> 2.0.1-6) in the same time. Geeqie crashes if the directory contains a lot of pictures to show (less than 70 was sufficient to crashed Geeqie with "zsh: IOT instruction (core dumped)  geeqie"). -- I use zsh as my shell.

I tried to downgrade exiv2 and libgexiv2 and Gimp exported correctly the metadata. But Darktable crashed and Geeqie also. So it is not the solution. An horrible workaround is to use exiftool -tagsfromfile %f.blablabla that certainly works but is not optimal in a workflow.


Sous Linux depuis 1998 / Using Linux since 1998

Offline

#2 2023-06-26 18:42:08

etherdolphin
Member
Registered: 2022-06-21
Posts: 9

Re: Last exiv2 and libgexiv2 update broke gimp jpeg metadata export

Same happens with Gwenview on KDE: jpeg's exported from Darktable cannot be openeded with Gwenview anymore, making It crash and close immediately.
Seems that the last update of Exiv2 (to ver 0.28.0-1) and the consequently update of its wrapping libraries like libgexiv2, libkexiv2, etc., are the only reason of the issue.
Downgrade of the implied packages seems not an option as they are direct or indirect dependencies of packages actually not anymore compatibles with older versions of the above mentioned wrappers.

Following the stack trace:

Application: Gwenview (gwenview), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = <optimized out>}
[KCrash Handler]
#6  0x00007fd27f3cbc7b in std::__cxx11::list<Exiv2::Exifdatum, std::allocator<Exiv2::Exifdatum> >::begin() const (this=<optimized out>, this=<optimized out>) at /usr/include/c++/13.1.1/bits/stl_list.h:1033
#7  Exiv2::ExifData::findKey(Exiv2::ExifKey const&) const (this=0x0, key=<optimized out>) at /usr/src/debug/exiv2/exiv2-0.28.0/src/exif.cpp:457
#8  0x00007fd27f353c2f in Exiv2::Internal::Nikon3MakerNote::printFlashMasterDataFl7(std::basic_ostream<char, std::char_traits<char> >&, Exiv2::Value const&, Exiv2::ExifData const*) (os=..., value=..., metadata=0x0) at /usr/src/debug/exiv2/exiv2-0.28.0/src/nikonmn_int.cpp:3423
#9  0x00007fd27f3c2c44 in Exiv2::Exifdatum::write(std::basic_ostream<char, std::char_traits<char> >&, Exiv2::ExifData const*) const (this=0x7fd25003ad60, os=..., pMetadata=0x0) at /usr/src/debug/exiv2/exiv2-0.28.0/src/exif.cpp:187
#10 0x00007fd2801de1f4 in Exiv2::operator<<(std::basic_ostream<char, std::char_traits<char> >&, Exiv2::Metadatum const&) (md=..., os=...) at /usr/include/exiv2/metadatum.hpp:277
#11 Gwenview::ImageMetaInfoModelPrivate::fillExivGroup<Exiv2::ExifData, std::_List_const_iterator<Exiv2::Exifdatum> >(QModelIndex const&, Gwenview::MetaInfoGroup*, Exiv2::ExifData const&) (container=..., group=0x55f4f3b68940, parent=..., this=0x55f4f3b68960) at /usr/src/debug/gwenview/gwenview-23.04.2/lib/imagemetainfomodel.cpp:282
#12 Gwenview::ImageMetaInfoModel::setExiv2Image(Exiv2::Image const*) (this=0x55f4f39be240, image=0x7fd250001410) at /usr/src/debug/gwenview/gwenview-23.04.2/lib/imagemetainfomodel.cpp:441
#13 0x00007fd2801a2c21 in Gwenview::Document::setExiv2Image(std::unique_ptr<Exiv2::Image, std::default_delete<Exiv2::Image> >) (this=0x55f4f3b690c0, image=std::unique_ptr<Exiv2::Image> = {...}) at /usr/src/debug/gwenview/gwenview-23.04.2/lib/document/document.cpp:388
#14 0x00007fd2801add8e in Gwenview::AbstractDocumentImpl::setDocumentExiv2Image(std::unique_ptr<Exiv2::Image, std::default_delete<Exiv2::Image> >) (this=0x55f4f3b6d1b0, image=std::unique_ptr<Exiv2::Image> = {...}) at /usr/src/debug/gwenview/gwenview-23.04.2/lib/document/abstractdocumentimpl.cpp:81
#15 Gwenview::LoadingDocumentImpl::slotMetaInfoLoaded() (this=0x55f4f3b6d1b0) at /usr/src/debug/gwenview/gwenview-23.04.2/lib/document/loadingdocumentimpl.cpp:497
#16 0x00007fd27ded06a7 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffd9a108a80, r=<optimized out>, this=0x55f4f3b6bd30, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#17 doActivate<false>(QObject*, int, void**) (sender=0x55f4f3b64118, signal_index=4, argv=0x7ffd9a108a80) at kernel/qobject.cpp:3925
#18 0x00007fd27dcfd4d5 in QFutureWatcherBase::event(QEvent*) (this=<optimized out>, event=0x7fd2500673f0) at thread/qfuturewatcher.cpp:334
#19 0x00007fd27eb7893f in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55f4f3b64118, e=0x7fd2500673f0) at kernel/qapplication.cpp:3640
#20 0x00007fd27de9b778 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55f4f3b64118, event=0x7fd2500673f0) at kernel/qcoreapplication.cpp:1064
#21 0x00007fd27dea06db in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x55f4f2f74550) at kernel/qcoreapplication.cpp:1821
#22 0x00007fd27dee6748 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x55f4f30d2670) at kernel/qeventdispatcher_glib.cpp:277
#23 0x00007fd27bd10981 in g_main_dispatch (context=0x7fd270000ee0) at ../glib/glib/gmain.c:3460
#24 g_main_context_dispatch (context=0x7fd270000ee0) at ../glib/glib/gmain.c:4200
#25 0x00007fd27bd6db39 in g_main_context_iterate.isra.0 (context=context@entry=0x7fd270000ee0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4276
#26 0x00007fd27bd0e032 in g_main_context_iteration (context=0x7fd270000ee0, may_block=1) at ../glib/glib/gmain.c:4343
#27 0x00007fd27deea5cc in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55f4f30d6d70, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#28 0x00007fd27de9a484 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffd9a108eb0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#29 0x00007fd27de9b923 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#30 0x00007fd27e33bf12 in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1870
#31 0x00007fd27eb76cda in QApplication::exec() () at kernel/qapplication.cpp:2832
#32 0x000055f4f2c04a49 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/gwenview/gwenview-23.04.2/app/main.cpp:213
[Inferior 1 (process 40271) detached]

Last edited by etherdolphin (2023-06-27 14:49:43)

Offline

#3 2023-06-30 15:24:08

rouelle
Member
Registered: 2018-03-13
Posts: 46

Re: Last exiv2 and libgexiv2 update broke gimp jpeg metadata export

exiv2 was updated to 0.28.0-3 but the problem persists. I can save jpeg metadata in Gimp if the image file comes from a cell phone, but if using a jpeg produces by a Sony camera (like the DSC-HX80) no metadata are saved.

So this bug shouldn't be closed : https://bugs.archlinux.org/task/78925


Sous Linux depuis 1998 / Using Linux since 1998

Offline

#4 2023-06-30 17:00:30

arojas
Developer
From: Spain
Registered: 2011-10-09
Posts: 2,260

Re: Last exiv2 and libgexiv2 update broke gimp jpeg metadata export

Please report the issue *upstream*. Reporting it to the Arch bug tracker doesn't help because this is not a packaging issue.

Offline

#5 2023-06-30 19:30:54

rouelle
Member
Registered: 2018-03-13
Posts: 46

Re: Last exiv2 and libgexiv2 update broke gimp jpeg metadata export

Reported upstream: https://github.com/Exiv2/exiv2/issues/2670. Thanks arojas for the time involved.


Sous Linux depuis 1998 / Using Linux since 1998

Offline

#6 2023-07-02 16:47:01

etherdolphin
Member
Registered: 2022-06-21
Posts: 9

Re: Last exiv2 and libgexiv2 update broke gimp jpeg metadata export

For what it's worth, I can tell that the update of Exiv2 to version 0.28.0-3 fixed my issue. Gwenview now works correctly with jpeg's exported from Darktable processing Nikon NEF files.

Last edited by etherdolphin (2023-07-02 16:47:18)

Offline

Board footer

Powered by FluxBB