[packages/gthumb] - updated to 3.12.3
qboosh
qboosh at pld-linux.org
Thu Aug 31 08:03:26 CEST 2023
commit 6fa980d3e88af5e2a45e1ac820cabd85ad18b756
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Thu Aug 31 06:38:59 2023 +0200
- updated to 3.12.3
exiv2-0.28.patch | 378 ----------------------------------------------------
gthumb-build.patch | 14 ++
gthumb-libraw.patch | 57 --------
gthumb.spec | 14 +-
4 files changed, 22 insertions(+), 441 deletions(-)
---
diff --git a/gthumb.spec b/gthumb.spec
index 2b8a570..1e0fe8a 100644
--- a/gthumb.spec
+++ b/gthumb.spec
@@ -1,14 +1,13 @@
Summary: An image viewer and browser for GNOME
Summary(pl.UTF-8): Przeglądarka obrazków dla GNOME
Name: gthumb
-Version: 3.12.2
-Release: 5
+Version: 3.12.3
+Release: 1
License: GPL v2+
Group: X11/Applications/Graphics
Source0: https://download.gnome.org/sources/gthumb/3.12/%{name}-%{version}.tar.xz
-# Source0-md5: 6bb8246244cdd87c8f041a1e86e144b1
-Patch0: %{name}-libraw.patch
-Patch1: exiv2-0.28.patch
+# Source0-md5: 37b4fe5ea6c71911bae67ab99557fe88
+Patch0: %{name}-build.patch
URL: https://wiki.gnome.org/Apps/Gthumb
BuildRequires: AppStream-devel >= 0.14.6
BuildRequires: automake
@@ -103,7 +102,6 @@ rozszerzeń gThumb.
%prep
%setup -q
%patch0 -p1
-%patch1 -p1
%build
%meson build \
@@ -139,6 +137,10 @@ rm -rf $RPM_BUILD_ROOT
%dir %{_libdir}/%{name}/extensions
%attr(755,root,root) %{_libdir}/%{name}/extensions/*.so
%{_libdir}/%{name}/extensions/*.extension
+%if "%{_libexecdir}" != "%{_libdir}"
+%dir %{_libexecdir}/%{name}
+%endif
+%attr(755,root,root) %{_libexecdir}/%{name}/video-thumbnailer
%{_datadir}/%{name}
%{_datadir}/glib-2.0/schemas/org.gnome.gthumb.enums.xml
%{_datadir}/glib-2.0/schemas/org.gnome.gthumb.gschema.xml
diff --git a/exiv2-0.28.patch b/exiv2-0.28.patch
deleted file mode 100644
index 82b85b7..0000000
--- a/exiv2-0.28.patch
+++ /dev/null
@@ -1,378 +0,0 @@
-From 3376550ae109286de09ce5f89e05060eb80230a7 Mon Sep 17 00:00:00 2001
-From: Paolo Bacchilega <paobac at 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
-
diff --git a/gthumb-build.patch b/gthumb-build.patch
new file mode 100644
index 0000000..2cbb3e1
--- /dev/null
+++ b/gthumb-build.patch
@@ -0,0 +1,14 @@
+--- gthumb-3.12.3/gthumb/gth-browser.c.orig 2023-08-27 21:11:47.000000000 +0200
++++ gthumb-3.12.3/gthumb/gth-browser.c 2023-08-30 22:16:01.779607449 +0200
+@@ -4453,9 +4453,11 @@ browser_key_press_cb (GthBrowser *brows
+ break;
+
+ case GTH_BROWSER_PAGE_BROWSER:
++ {
+ GtkWidget *focus_widget = gtk_window_get_focus (GTK_WINDOW (browser));
+ if (! GTK_IS_ENTRY (focus_widget) && ! GTK_IS_TREE_VIEW (focus_widget))
+ result = gth_browser_file_list_key_press_cb (browser, event);
++ }
+ break;
+
+ default:
diff --git a/gthumb-libraw.patch b/gthumb-libraw.patch
deleted file mode 100644
index 13d8efe..0000000
--- a/gthumb-libraw.patch
+++ /dev/null
@@ -1,57 +0,0 @@
---- gthumb-3.12.2/extensions/raw_files/main.c.orig 2022-04-03 20:38:59.000000000 +0200
-+++ gthumb-3.12.2/extensions/raw_files/main.c 2023-03-27 06:25:00.752465430 +0200
-@@ -30,6 +30,12 @@
- #include "gth-metadata-provider-raw.h"
-
-
-+#if LIBRAW_COMPILE_CHECK_VERSION_NOTLESS(0, 21)
-+# define GTHUMB_LIBRAW_INIT_OPTIONS (LIBRAW_OPIONS_NO_DATAERR_CALLBACK)
-+#else
-+# define GTHUMB_LIBRAW_INIT_OPTIONS (LIBRAW_OPIONS_NO_MEMERR_CALLBACK | LIBRAW_OPIONS_NO_DATAERR_CALLBACK)
-+#endif
-+
- typedef enum {
- RAW_OUTPUT_COLOR_RAW = 0,
- RAW_OUTPUT_COLOR_SRGB = 1,
-@@ -213,7 +219,7 @@ _cairo_image_surface_create_from_raw (GI
- size_t size;
- GthImage *image = NULL;
-
-- raw_data = libraw_init (LIBRAW_OPIONS_NO_MEMERR_CALLBACK | LIBRAW_OPIONS_NO_DATAERR_CALLBACK);
-+ raw_data = libraw_init (GTHUMB_LIBRAW_INIT_OPTIONS);
- if (raw_data == NULL) {
- _libraw_set_gerror (error, errno);
- goto fatal_error;
-@@ -300,7 +306,7 @@ _cairo_image_surface_create_from_raw (GI
- if ((original_width != NULL) && (original_height != NULL)) {
- libraw_close (raw_data);
-
-- raw_data = libraw_init (LIBRAW_OPIONS_NO_MEMERR_CALLBACK | LIBRAW_OPIONS_NO_DATAERR_CALLBACK);
-+ raw_data = libraw_init (GTHUMB_LIBRAW_INIT_OPTIONS);
- if (raw_data == NULL)
- goto fatal_error;
-
---- gthumb-3.12.2/extensions/raw_files/gth-metadata-provider-raw.c.orig 2022-04-03 20:38:59.000000000 +0200
-+++ gthumb-3.12.2/extensions/raw_files/gth-metadata-provider-raw.c 2023-03-27 06:26:26.692045645 +0200
-@@ -26,6 +26,12 @@
- #include "main.h"
-
-
-+#if LIBRAW_COMPILE_CHECK_VERSION_NOTLESS(0, 21)
-+# define GTHUMB_LIBRAW_INIT_OPTIONS (LIBRAW_OPIONS_NO_DATAERR_CALLBACK)
-+#else
-+# define GTHUMB_LIBRAW_INIT_OPTIONS (LIBRAW_OPIONS_NO_MEMERR_CALLBACK | LIBRAW_OPIONS_NO_DATAERR_CALLBACK)
-+#endif
-+
- G_DEFINE_TYPE (GthMetadataProviderRaw, gth_metadata_provider_raw, GTH_TYPE_METADATA_PROVIDER)
-
-
-@@ -62,7 +68,7 @@ gth_metadata_provider_raw_read (GthMetad
- if (!_g_mime_type_is_raw (gth_file_data_get_mime_type (file_data)))
- return;
-
-- raw_data = libraw_init (LIBRAW_OPIONS_NO_MEMERR_CALLBACK | LIBRAW_OPIONS_NO_DATAERR_CALLBACK);
-+ raw_data = libraw_init (GTHUMB_LIBRAW_INIT_OPTIONS);
- if (raw_data == NULL)
- goto fatal_error;
-
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/gthumb.git/commitdiff/6fa980d3e88af5e2a45e1ac820cabd85ad18b756
More information about the pld-cvs-commit
mailing list