Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gthumb for openSUSE:Factory checked in at 2023-07-05 16:04:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gthumb (Old) and /work/SRC/openSUSE:Factory/.gthumb.new.23466 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gthumb" Wed Jul 5 16:04:58 2023 rev:113 rq:1096966 version:3.12.2 Changes: -------- --- /work/SRC/openSUSE:Factory/gthumb/gthumb.changes 2023-01-17 17:35:47.553347169 +0100 +++ /work/SRC/openSUSE:Factory/.gthumb.new.23466/gthumb.changes 2023-07-05 16:04:59.542817495 +0200 @@ -1,0 +2,6 @@ +Mon Jul 3 08:49:26 UTC 2023 - Bjørn Lie <bjorn....@gmail.com> + +- Add 3376550a.patch: exiv2: added support for version 0.28. +- Refresh da0d3f22.patch from upstream git. + +------------------------------------------------------------------- New: ---- 3376550a.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gthumb.spec ++++++ --- /var/tmp/diff_new_pack.YYOPFt/_old 2023-07-05 16:05:00.198821373 +0200 +++ /var/tmp/diff_new_pack.YYOPFt/_new 2023-07-05 16:05:00.202821396 +0200 @@ -25,8 +25,11 @@ Group: Productivity/Graphics/Viewers URL: https://wiki.gnome.org/Apps/gthumb Source0: https://download.gnome.org/sources/gthumb/3.12/%{name}-%{version}.tar.xz -# PATCH-FIx-UPSTREAM da0d3f22.patch dims...@opensuse.org -- Fix build with libraw 0.21 +# PATCH-FIX-UPSTREAM da0d3f22.patch dims...@opensuse.org -- Fix build with libraw 0.21 Patch0: https://gitlab.gnome.org/GNOME/gthumb/-/commit/da0d3f22.patch +# PATCH-FIX-UPSTREAM 3376550a.patch -- exiv2: added support for version 0.28 +Patch1: https://gitlab.gnome.org/GNOME/gthumb/-/commit/3376550a.patch + BuildRequires: AppStream BuildRequires: bison BuildRequires: fdupes ++++++ 3376550a.patch ++++++ >From 3376550ae109286de09ce5f89e05060eb80230a7 Mon Sep 17 00:00:00 2001 From: Paolo Bacchilega <pao...@src.gnome.org> Date: Tue, 27 Jun 2023 18:56:48 +0200 Subject: [PATCH] exiv2: added support for version 0.28 Patch by Alex and Antonio Rojas from the discussion of the issue 282. Fixes #282 --- extensions/exiv2_tools/exiv2-utils.cpp | 141 +++++++++++++++++++++++++ 1 file changed, 141 insertions(+) diff --git a/extensions/exiv2_tools/exiv2-utils.cpp b/extensions/exiv2_tools/exiv2-utils.cpp index 56dadb4eb..20f049c2a 100644 --- a/extensions/exiv2_tools/exiv2-utils.cpp +++ b/extensions/exiv2_tools/exiv2-utils.cpp @@ -740,7 +740,11 @@ get_exif_default_category (const Exiv2::Exifdatum &md) static void +#if EXIV2_TEST_VERSION(0,28,0) +exiv2_read_metadata (Exiv2::Image::UniquePtr image, +#else exiv2_read_metadata (Exiv2::Image::AutoPtr image, +#endif GFileInfo *info, gboolean update_general_attributes) { @@ -875,7 +879,11 @@ exiv2_read_metadata_from_file (GFile *file, return FALSE; } +#if EXIV2_TEST_VERSION(0,28,0) + Exiv2::Image::UniquePtr image = Exiv2::ImageFactory::open(path); +#else Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(path); +#endif g_free (path); if (image.get() == 0) { @@ -885,9 +893,17 @@ exiv2_read_metadata_from_file (GFile *file, } // Set the log level to only show errors (and suppress warnings, informational and debug messages) Exiv2::LogMsg::setLevel(Exiv2::LogMsg::error); +#if EXIV2_TEST_VERSION(0,28,0) + exiv2_read_metadata (std::move(image), info, update_general_attributes); +#else exiv2_read_metadata (image, info, update_general_attributes); +#endif } +#if EXIV2_TEST_VERSION(0,28,0) + catch (Exiv2::Error& e) { +#else catch (Exiv2::AnyError& e) { +#endif if (error != NULL) *error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_FAILED, e.what()); return FALSE; @@ -906,7 +922,11 @@ exiv2_read_metadata_from_buffer (void *buffer, GError **error) { try { +#if EXIV2_TEST_VERSION(0,28,0) + Exiv2::Image::UniquePtr image = Exiv2::ImageFactory::open ((Exiv2::byte*) buffer, buffer_size); +#else Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open ((Exiv2::byte*) buffer, buffer_size); +#endif if (image.get() == 0) { if (error != NULL) @@ -914,9 +934,17 @@ exiv2_read_metadata_from_buffer (void *buffer, return FALSE; } +#if EXIV2_TEST_VERSION(0,28,0) + exiv2_read_metadata (std::move(image), info, update_general_attributes); +#else exiv2_read_metadata (image, info, update_general_attributes); +#endif } +#if EXIV2_TEST_VERSION(0,28,0) + catch (Exiv2::Error& e) { +#else catch (Exiv2::AnyError& e) { +#endif if (error != NULL) *error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_FAILED, e.what()); return FALSE; @@ -965,7 +993,11 @@ exiv2_read_sidecar (GFile *file, g_free (path); std::string xmpPacket; +#if EXIV2_TEST_VERSION(0,28,0) + xmpPacket.assign(reinterpret_cast<char*>(buf.data()), buf.size()); +#else xmpPacket.assign(reinterpret_cast<char*>(buf.pData_), buf.size_); +#endif Exiv2::XmpData xmpData; if (0 != Exiv2::XmpParser::decode(xmpData, xmpPacket)) @@ -1011,7 +1043,11 @@ exiv2_read_sidecar (GFile *file, set_attributes_from_tagsets (info, update_general_attributes); } +#if EXIV2_TEST_VERSION(0,28,0) + catch (Exiv2::Error& e) { +#else catch (Exiv2::AnyError& e) { +#endif std::cerr << "Caught Exiv2 exception '" << e << "'\n"; return FALSE; } @@ -1111,7 +1147,11 @@ dump_exif_data (Exiv2::ExifData &exifData, static Exiv2::DataBuf +#if EXIV2_TEST_VERSION(0,28,0) +exiv2_write_metadata_private (Exiv2::Image::UniquePtr image, +#else exiv2_write_metadata_private (Exiv2::Image::AutoPtr image, +#endif GFileInfo *info, GthImage *image_data) { @@ -1148,13 +1188,21 @@ exiv2_write_metadata_private (Exiv2::Image::AutoPtr image, const char *value_type = gth_main_get_metadata_type (metadatum, attributes[i]); if ((raw_value != NULL) && (strcmp (raw_value, "") != 0) && (value_type != NULL)) { +#if EXIV2_TEST_VERSION(0,28,0) + Exiv2::Value::UniquePtr value = Exiv2::Value::create (Exiv2::TypeInfo::typeId (value_type)); +#else Exiv2::Value::AutoPtr value = Exiv2::Value::create (Exiv2::TypeInfo::typeId (value_type)); +#endif value->read (raw_value); Exiv2::ExifKey exif_key(key); ed.add (exif_key, value.get()); } } +#if EXIV2_TEST_VERSION(0,28,0) + catch (Exiv2::Error& e) { +#else catch (Exiv2::AnyError& e) { +#endif /* we don't care about invalid key errors */ g_warning ("%s", e.what()); } @@ -1270,7 +1318,11 @@ exiv2_write_metadata_private (Exiv2::Image::AutoPtr image, value_type = gth_main_get_metadata_type (metadatum, attributes[i]); if (value_type != NULL) { /* See the exif data code above for an explanation. */ +#if EXIV2_TEST_VERSION(0,28,0) + Exiv2::Value::UniquePtr value = Exiv2::Value::create (Exiv2::TypeInfo::typeId (value_type)); +#else Exiv2::Value::AutoPtr value = Exiv2::Value::create (Exiv2::TypeInfo::typeId (value_type)); +#endif Exiv2::IptcKey iptc_key(key); const char *raw_value; @@ -1296,7 +1348,11 @@ exiv2_write_metadata_private (Exiv2::Image::AutoPtr image, } } } +#if EXIV2_TEST_VERSION(0,28,0) + catch (Exiv2::Error& e) { +#else catch (Exiv2::AnyError& e) { +#endif /* we don't care about invalid key errors */ g_warning ("%s", e.what()); } @@ -1320,7 +1376,11 @@ exiv2_write_metadata_private (Exiv2::Image::AutoPtr image, value_type = gth_main_get_metadata_type (metadatum, attributes[i]); if (value_type != NULL) { /* See the exif data code above for an explanation. */ +#if EXIV2_TEST_VERSION(0,28,0) + Exiv2::Value::UniquePtr value = Exiv2::Value::create (Exiv2::TypeInfo::typeId (value_type)); +#else Exiv2::Value::AutoPtr value = Exiv2::Value::create (Exiv2::TypeInfo::typeId (value_type)); +#endif Exiv2::XmpKey xmp_key(key); const char *raw_value; @@ -1346,7 +1406,11 @@ exiv2_write_metadata_private (Exiv2::Image::AutoPtr image, } } } +#if EXIV2_TEST_VERSION(0,28,0) + catch (Exiv2::Error& e) { +#else catch (Exiv2::AnyError& e) { +#endif /* we don't care about invalid key errors */ g_warning ("%s", e.what()); } @@ -1362,7 +1426,11 @@ exiv2_write_metadata_private (Exiv2::Image::AutoPtr image, image->setXmpData(xd); image->writeMetadata(); } +#if EXIV2_TEST_VERSION(0,28,0) + catch (Exiv2::Error& e) { +#else catch (Exiv2::AnyError& e) { +#endif g_warning ("%s", e.what()); } @@ -1389,16 +1457,33 @@ exiv2_write_metadata (GthImageSaveData *data) { if (exiv2_supports_writes (data->mime_type) && (data->file_data != NULL)) { try { +#if EXIV2_TEST_VERSION(0,28,0) + Exiv2::Image::UniquePtr image = Exiv2::ImageFactory::open ((Exiv2::byte*) data->buffer, data->buffer_size); +#else Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open ((Exiv2::byte*) data->buffer, data->buffer_size); +#endif g_assert (image.get() != 0); +#if EXIV2_TEST_VERSION(0,28,0) + Exiv2::DataBuf buf = exiv2_write_metadata_private (std::move(image), data->file_data->info, data->image); +#else Exiv2::DataBuf buf = exiv2_write_metadata_private (image, data->file_data->info, data->image); +#endif g_free (data->buffer); +#if EXIV2_TEST_VERSION(0,28,0) + data->buffer = g_memdup (buf.data(), buf.size()); + data->buffer_size = buf.size(); +#else data->buffer = g_memdup (buf.pData_, buf.size_); data->buffer_size = buf.size_; +#endif } +#if EXIV2_TEST_VERSION(0,28,0) + catch (Exiv2::Error& e) { +#else catch (Exiv2::AnyError& e) { +#endif if (data->error != NULL) *data->error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_FAILED, e.what()); g_warning ("%s\n", e.what()); @@ -1419,16 +1504,33 @@ exiv2_write_metadata_to_buffer (void **buffer, GError **error) { try { +#if EXIV2_TEST_VERSION(0,28,0) + Exiv2::Image::UniquePtr image = Exiv2::ImageFactory::open ((Exiv2::byte*) *buffer, *buffer_size); +#else Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open ((Exiv2::byte*) *buffer, *buffer_size); +#endif g_assert (image.get() != 0); +#if EXIV2_TEST_VERSION(0,28,0) + Exiv2::DataBuf buf = exiv2_write_metadata_private (std::move(image), info, image_data); +#else Exiv2::DataBuf buf = exiv2_write_metadata_private (image, info, image_data); +#endif g_free (*buffer); +#if EXIV2_TEST_VERSION(0,28,0) + *buffer = g_memdup (buf.data(), buf.size()); + *buffer_size = buf.size(); +#else *buffer = g_memdup (buf.pData_, buf.size_); *buffer_size = buf.size_; +#endif } +#if EXIV2_TEST_VERSION(0,28,0) + catch (Exiv2::Error& e) { +#else catch (Exiv2::AnyError& e) { +#endif if (error != NULL) *error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_FAILED, e.what()); return FALSE; @@ -1445,7 +1547,11 @@ exiv2_clear_metadata (void **buffer, GError **error) { try { +#if EXIV2_TEST_VERSION(0,28,0) + Exiv2::Image::UniquePtr image = Exiv2::ImageFactory::open ((Exiv2::byte*) *buffer, *buffer_size); +#else Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open ((Exiv2::byte*) *buffer, *buffer_size); +#endif if (image.get() == 0) { if (error != NULL) @@ -1457,7 +1563,11 @@ exiv2_clear_metadata (void **buffer, image->clearMetadata(); image->writeMetadata(); } +#if EXIV2_TEST_VERSION(0,28,0) + catch (Exiv2::Error& e) { +#else catch (Exiv2::AnyError& e) { +#endif g_warning ("%s", e.what()); } @@ -1466,10 +1576,19 @@ exiv2_clear_metadata (void **buffer, Exiv2::DataBuf buf = io.read(io.size()); g_free (*buffer); +#if EXIV2_TEST_VERSION(0,28,0) + *buffer = g_memdup (buf.data(), buf.size()); + *buffer_size = buf.size(); +#else *buffer = g_memdup (buf.pData_, buf.size_); *buffer_size = buf.size_; +#endif } +#if EXIV2_TEST_VERSION(0,28,0) + catch (Exiv2::Error& e) { +#else catch (Exiv2::AnyError& e) { +#endif if (error != NULL) *error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_FAILED, e.what()); return FALSE; @@ -1502,26 +1621,44 @@ exiv2_generate_thumbnail (const char *uri, if (path == NULL) return NULL; +#if EXIV2_TEST_VERSION(0,28,0) + Exiv2::Image::UniquePtr image = Exiv2::ImageFactory::open (path); +#else Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open (path); +#endif image->readMetadata (); Exiv2::ExifThumbC exifThumb (image->exifData ()); Exiv2::DataBuf thumb = exifThumb.copy (); g_free (path); +#if EXIV2_TEST_VERSION(0,28,0) + if (thumb.data() == NULL) +#else if (thumb.pData_ == NULL) +#endif return NULL; Exiv2::ExifData &ed = image->exifData(); +#if EXIV2_TEST_VERSION(0,28,0) + long orientation = (ed["Exif.Image.Orientation"].count() > 0) ? ed["Exif.Image.Orientation"].toUint32() : 1; + long image_width = (ed["Exif.Photo.PixelXDimension"].count() > 0) ? ed["Exif.Photo.PixelXDimension"].toUint32() : -1; + long image_height = (ed["Exif.Photo.PixelYDimension"].count() > 0) ? ed["Exif.Photo.PixelYDimension"].toUint32() : -1; +#else long orientation = (ed["Exif.Image.Orientation"].count() > 0) ? ed["Exif.Image.Orientation"].toLong() : 1; long image_width = (ed["Exif.Photo.PixelXDimension"].count() > 0) ? ed["Exif.Photo.PixelXDimension"].toLong() : -1; long image_height = (ed["Exif.Photo.PixelYDimension"].count() > 0) ? ed["Exif.Photo.PixelYDimension"].toLong() : -1; +#endif if ((orientation != 1) || (image_width <= 0) || (image_height <= 0)) return NULL; +#if EXIV2_TEST_VERSION(0,28,0) + GInputStream *stream = g_memory_input_stream_new_from_data (thumb.data(), thumb.size(), NULL); +#else GInputStream *stream = g_memory_input_stream_new_from_data (thumb.pData_, thumb.size_, NULL); +#endif pixbuf = gdk_pixbuf_new_from_stream (stream, NULL, NULL); g_object_unref (stream); @@ -1575,7 +1712,11 @@ exiv2_generate_thumbnail (const char *uri, gdk_pixbuf_set_option (pixbuf, "orientation", orientation_s); g_free (orientation_s); } +#if EXIV2_TEST_VERSION(0,28,0) + catch (Exiv2::Error& e) { +#else catch (Exiv2::AnyError& e) { +#endif } return pixbuf; -- GitLab ++++++ da0d3f22.patch ++++++ --- /var/tmp/diff_new_pack.YYOPFt/_old 2023-07-05 16:05:00.238821608 +0200 +++ /var/tmp/diff_new_pack.YYOPFt/_new 2023-07-05 16:05:00.242821632 +0200 @@ -10,7 +10,7 @@ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/extensions/raw_files/gth-metadata-provider-raw.c b/extensions/raw_files/gth-metadata-provider-raw.c -index 2d9f5020..1aa8a727 100644 +index 2d9f5020c..1aa8a727e 100644 --- a/extensions/raw_files/gth-metadata-provider-raw.c +++ b/extensions/raw_files/gth-metadata-provider-raw.c @@ -62,7 +62,7 @@ gth_metadata_provider_raw_read (GthMetadataProvider *self, @@ -23,7 +23,7 @@ goto fatal_error; diff --git a/extensions/raw_files/gth-metadata-provider-raw.h b/extensions/raw_files/gth-metadata-provider-raw.h -index 6406c68b..cf19434d 100644 +index 6406c68bf..cf19434df 100644 --- a/extensions/raw_files/gth-metadata-provider-raw.h +++ b/extensions/raw_files/gth-metadata-provider-raw.h @@ -25,6 +25,13 @@ @@ -41,7 +41,7 @@ #define GTH_TYPE_METADATA_PROVIDER_RAW (gth_metadata_provider_raw_get_type ()) #define GTH_METADATA_PROVIDER_RAW(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GTH_TYPE_METADATA_PROVIDER_RAW, GthMetadataProviderRaw)) diff --git a/extensions/raw_files/main.c b/extensions/raw_files/main.c -index 25829c12..0673c2c7 100644 +index 25829c120..0673c2c75 100644 --- a/extensions/raw_files/main.c +++ b/extensions/raw_files/main.c @@ -213,7 +213,7 @@ _cairo_image_surface_create_from_raw (GInputStream *istream,