FreeBSD Bugzilla – Attachment 243170 Details for
Bug 272311
graphics/exiv2: upgrade to v0.28
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
graphics/gthumb: make compatible with exiv2 0.28
0006-graphics-gthumb-make-compatible-with-exiv2-0.28.patch (text/plain), 13.60 KB, created by
Matthias Andree
on 2023-07-03 09:56:08 UTC
(
hide
)
Description:
graphics/gthumb: make compatible with exiv2 0.28
Filename:
MIME Type:
Creator:
Matthias Andree
Created:
2023-07-03 09:56:08 UTC
Size:
13.60 KB
patch
obsolete
>From 6efd205618d3755366899148648935b79ca17013 Mon Sep 17 00:00:00 2001 >From: Matthias Andree <mandree@FreeBSD.org> >Date: Mon, 3 Jul 2023 02:03:41 +0200 >Subject: [PATCH 6/7] graphics/gthumb: make compatible with exiv2 0.28 > >Obtained from: https://gitlab.gnome.org/GNOME/gthumb/-/commit/3376550ae109286de09ce5f89e05060eb80230a7 >PR: 272311 >--- > graphics/gthumb/Makefile | 2 +- > ...a-3376550ae109286de09ce5f89e05060eb80230a7 | 375 ++++++++++++++++++ > 2 files changed, 376 insertions(+), 1 deletion(-) > create mode 100644 graphics/gthumb/files/patch-git-aa-3376550ae109286de09ce5f89e05060eb80230a7 > >diff --git a/graphics/gthumb/Makefile b/graphics/gthumb/Makefile >index 94c3c79cd700..9c58c48dcb31 100644 >--- a/graphics/gthumb/Makefile >+++ b/graphics/gthumb/Makefile >@@ -1,6 +1,6 @@ > PORTNAME= gthumb > PORTVERSION= 3.12.2 >-PORTREVISION= 4 >+PORTREVISION= 5 > CATEGORIES= graphics > MASTER_SITES= GNOME > DIST_SUBDIR= gnome >diff --git a/graphics/gthumb/files/patch-git-aa-3376550ae109286de09ce5f89e05060eb80230a7 b/graphics/gthumb/files/patch-git-aa-3376550ae109286de09ce5f89e05060eb80230a7 >new file mode 100644 >index 000000000000..e874aa7eeeab >--- /dev/null >+++ b/graphics/gthumb/files/patch-git-aa-3376550ae109286de09ce5f89e05060eb80230a7 >@@ -0,0 +1,375 @@ >+From 3376550ae109286de09ce5f89e05060eb80230a7 Mon Sep 17 00:00:00 2001 >+From: Paolo Bacchilega <paobac@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 ./extensions/exiv2_tools/exiv2-utils.cpp ./extensions/exiv2_tools/exiv2-utils.cpp >+index 56dadb4eb..20f049c2a 100644 >+--- ./extensions/exiv2_tools/exiv2-utils.cpp >++++ ./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; >-- >2.41.0 >
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
Flags:
vishwin
:
maintainer-approval?
(
gnome
)
Actions:
View
|
Diff
Attachments on
bug 272311
:
243098
|
243100
|
243103
|
243104
|
243106
|
243111
|
243124
|
243125
|
243135
|
243136
|
243137
|
243138
|
243139
|
243140
|
243141
|
243142
|
243143
|
243144
|
243145
|
243146
|
243147
|
243148
|
243154
|
243155
|
243156
|
243157
|
243158
|
243159
|
243160
|
243166
|
243167
|
243168
|
243169
| 243170 |
243171
|
243172
|
243175
|
243176