Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 868493 Details for
Bug 912834
media-gfx/gthumb-3.12.2-r5: Needs patch to work with media-gfx/exiv2-0.28.0
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch from https://gitlab.archlinux.org/archlinux/packaging/packages/gthumb/-/raw/362ccadb79f5f4aeca7fa7d2b07047fe9055dd18/exiv2-0.28.patch
exiv2-0.28.patch (text/plain), 11.58 KB, created by
Bernd Feige
on 2023-08-22 13:20:38 UTC
(
hide
)
Description:
Patch from https://gitlab.archlinux.org/archlinux/packaging/packages/gthumb/-/raw/362ccadb79f5f4aeca7fa7d2b07047fe9055dd18/exiv2-0.28.patch
Filename:
MIME Type:
Creator:
Bernd Feige
Created:
2023-08-22 13:20:38 UTC
Size:
11.58 KB
patch
obsolete
>diff --git a/extensions/exiv2_tools/exiv2-utils.cpp b/extensions/exiv2_tools/exiv2-utils.cpp >index 56dadb4e..20f049c2 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;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 912834
: 868493