[packages/geeqie] - updated to 2.1 with exif fixes from git (to allow exiv2 0.28) - added lua patch (fix lua headers i

qboosh qboosh at pld-linux.org
Thu Jul 27 17:13:47 CEST 2023


commit 3a91e177fdf7a4f3a075e51bde32a2e8adfc6b9b
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Thu Jul 27 16:38:18 2023 +0200

    - updated to 2.1 with exif fixes from git (to allow exiv2 0.28)
    - added lua patch (fix lua headers inclusion from C++)

 geeqie-exif-fix.patch | 151 ++++++++++++++++++++++++++++++++++++++++++++++++++
 geeqie-lua.patch      |  13 +++++
 geeqie.spec           |  43 +++++++++-----
 3 files changed, 192 insertions(+), 15 deletions(-)
---
diff --git a/geeqie.spec b/geeqie.spec
index 01a9cc5..f0551b9 100644
--- a/geeqie.spec
+++ b/geeqie.spec
@@ -6,21 +6,27 @@ Summary:	Graphics file browser utility
 Summary(hu.UTF-8):	Képfájl-böngésző eszköz
 Summary(pl.UTF-8):	Narzędzie do przeglądania plików graficznych
 Name:		geeqie
-Version:	2.0.1
-Release:	3
+Version:	2.1
+Release:	1
 License:	GPL v2+
 Group:		X11/Applications/Graphics
 Source0:	https://github.com/BestImageViewer/geeqie/releases/download/v%{version}/%{name}-%{version}.tar.xz
-# Source0-md5:	d3a97a0fd28a0c6f4c44948299bf994d
+# Source0-md5:	a34e3bcfdc679db713ed304971721db5
+Patch0:		%{name}-lua.patch
+Patch1:		%{name}-exif-fix.patch
 URL:		http://www.geeqie.org/
+%{?with_champlain:BuildRequires:	clutter-devel >= 1.0}
+%{?with_champlain:BuildRequires:	clutter-gtk-devel >= 1.0}
 BuildRequires:	djvulibre-devel >= 3.5.27
+# to enable PDF preview feature
+BuildRequires:	evince
 BuildRequires:	exiv2-devel >= 0.11
 BuildRequires:	ffmpegthumbnailer-devel >= 2.1.0
 BuildRequires:	gdk-pixbuf2-devel >= 2
 BuildRequires:	gettext-tools
 BuildRequires:	glib2-devel >= 1:2.52.0
 BuildRequires:	gspell-devel >= 1.6
-BuildRequires:	gtk+3-devel >= 3.22}
+BuildRequires:	gtk+3-devel >= 3.24
 BuildRequires:	lcms2-devel >= 2.0
 BuildRequires:	libarchive-devel >= 3.4.0
 %{?with_champlain:BuildRequires:	libchamplain-devel >= 0.12}
@@ -29,11 +35,13 @@ BuildRequires:	libjpeg-devel
 BuildRequires:	libjxl-devel >= 0.3.7
 BuildRequires:	libpng-devel
 BuildRequires:	libraw-devel >= 0.20
-BuildRequires:	libtiff-devel
+BuildRequires:	libstdc++-devel >= 6:5
+BuildRequires:	libtiff-devel >= 4
 BuildRequires:	libwebp-devel >= 0.6.1
-BuildRequires:	lua53-devel >= 5.3
-BuildRequires:	meson
-BuildRequires:	ninja
+# 5.3 or 5.4
+BuildRequires:	lua-devel >= 5.3
+BuildRequires:	meson >= 0.56.2
+BuildRequires:	ninja >= 1.5
 BuildRequires:	openjpeg2-devel >= 2.3.0
 BuildRequires:	pkgconfig
 BuildRequires:	poppler-glib-devel >= 0.62
@@ -47,7 +55,7 @@ Requires:	djvulibre >= 3.5.27
 Requires:	exiv2-libs >= 0.11
 Requires:	ffmpegthumbnailer >= 2.1.0
 Requires:	glib2 >= 1:2.24.0
-Requires:	gtk+3 >= 3.22
+Requires:	gtk+3 >= 3.24
 Requires:	lcms2 >= 2.0
 Requires:	libarchive >= 3.4.0
 %{?with_champlain:Requires:	libchamplain >= 0.12}
@@ -85,12 +93,16 @@ i opcje filtrowania, jak również wsparcie dla zewnętrznego edytora.
 
 %prep
 %setup -q
+%patch0 -p1
+%patch1 -p1
 
 %build
 %{__sed} -i '1s,%{_bindir}/awk,/bin/awk,' \
 	plugins/geocode-parameters/geocode-parameters.awk
 
-%meson build -Dgq_bindir=%{_libdir}/%{name} %{!?with_champlain:-Dgps-map=disabled}
+%meson build \
+	-Dgq_bindir=%{_libdir}/%{name} \
+	%{!?with_champlain:-Dgps-map=disabled}
 
 %ninja_build -C build
 
@@ -119,11 +131,12 @@ rm -rf $RPM_BUILD_ROOT
 
 %files -f %{name}.lang
 %defattr(644,root,root,755)
-%doc AUTHORS README.md TODO NEWS build/doc/html
-%attr(755,root,root) %{_bindir}/%{name}
-%{_mandir}/man1/%{name}.1*
-%{_desktopdir}/%{name}.desktop
-%{_pixmapsdir}/%{name}.png
+%doc NEWS README.md TODO build/doc/html
+%attr(755,root,root) %{_bindir}/geeqie
+%{_mandir}/man1/geeqie.1*
+%{_desktopdir}/geeqie.desktop
+%{_iconsdir}/hicolor/scalable/apps/geeqie.svg
+%{_pixmapsdir}/geeqie.png
 %dir %{_libdir}/%{name}
 %attr(755,root,root) %{_libdir}/%{name}/geeqie-camera-import
 %attr(755,root,root) %{_libdir}/%{name}/geeqie-camera-import-hook-script
diff --git a/geeqie-exif-fix.patch b/geeqie-exif-fix.patch
new file mode 100644
index 0000000..13b6a17
--- /dev/null
+++ b/geeqie-exif-fix.patch
@@ -0,0 +1,151 @@
+From c45cca777aa3477eaf297db99f337e18d9683c61 Mon Sep 17 00:00:00 2001
+From: Kevin Backhouse <kevinbackhouse at github.com>
+Date: Wed, 21 Jun 2023 12:23:33 +0100
+Subject: [PATCH] Add ExifData as extra argument to
+ exif_item_get_data_as_text().
+
+---
+ src/advanced-exif.cc | 2 +-
+ src/exif-common.cc   | 2 +-
+ src/exif.cc          | 8 ++++----
+ src/exif.h           | 2 +-
+ src/exiv2.cc         | 4 ++--
+ 5 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/src/advanced-exif.cc b/src/advanced-exif.cc
+index 79a54b12..e3d3067a 100644
+--- a/src/advanced-exif.cc
++++ b/src/advanced-exif.cc
+@@ -120,7 +120,7 @@ static void advanced_exif_update(ExifWin *ew)
+ 		tag = g_strdup_printf("0x%04x", exif_item_get_tag_id(item));
+ 		tag_name = exif_item_get_tag_name(item);
+ 		format = exif_item_get_format_name(item, TRUE);
+-		text = exif_item_get_data_as_text(item);
++		text = exif_item_get_data_as_text(item, exif);
+ 		utf8_text = utf8_validate_or_convert(text);
+ 		g_free(text);
+ 		elements = g_strdup_printf("%d", exif_item_get_elements(item));
+diff --git a/src/exif-common.cc b/src/exif-common.cc
+index 6a4c9740..b6f07ca6 100644
+--- a/src/exif-common.cc
++++ b/src/exif-common.cc
+@@ -995,7 +995,7 @@ gchar *exif_get_data_as_text(ExifData *exif, const gchar *key)
+ 	if (key_valid) return text;
+ 
+ 	item = exif_get_item(exif, key);
+-	if (item) return exif_item_get_data_as_text(item);
++	if (item) return exif_item_get_data_as_text(item, exif);
+ 
+ 	return nullptr;
+ }
+diff --git a/src/exif.cc b/src/exif.cc
+index 8708ff53..cda2cb1a 100644
+--- a/src/exif.cc
++++ b/src/exif.cc
+@@ -1454,7 +1454,7 @@ gchar *exif_item_get_string(ExifItem *item, gint UNUSED(idx))
+ 	return exif_item_get_data_as_text_full(item, METADATA_PLAIN);
+ }
+ 
+-gchar *exif_item_get_data_as_text(ExifItem *item)
++gchar *exif_item_get_data_as_text(ExifItem *item, ExifData *exif)
+ {
+ 	return exif_item_get_data_as_text_full(item, METADATA_FORMATTED);
+ }
+@@ -1527,11 +1527,11 @@ gchar *exif_get_tag_description_by_key(const gchar *key)
+ 	return NULL;
+ }
+ 
+-static void exif_write_item(FILE *f, ExifItem *item)
++static void exif_write_item(FILE *f, ExifItem *item, ExifData *exif)
+ {
+ 	gchar *text;
+ 
+-	text = exif_item_get_data_as_text(item);
++	text = exif_item_get_data_as_text(item, exif);
+ 	if (text)
+ 		{
+ 		gchar *tag = exif_item_get_tag_name(item);
+@@ -1578,7 +1578,7 @@ void exif_write_data_list(ExifData *exif, FILE *f, gint human_readable_list)
+ 			item = (ExifItem*)(work->data);
+ 			work = work->next;
+ 
+-			exif_write_item(f, item);
++			exif_write_item(f, item, exif);
+ 			}
+ 		}
+ 	g_fprintf(f, "----------------------------------------------------\n");
+diff --git a/src/exif.h b/src/exif.h
+index fcc7d8f5..4b03c201 100644
+--- a/src/exif.h
++++ b/src/exif.h
+@@ -136,7 +136,7 @@ gchar *exif_item_get_data(ExifItem *item, guint *data_len);
+ gchar *exif_item_get_description(ExifItem *item);
+ guint exif_item_get_format_id(ExifItem *item);
+ const gchar *exif_item_get_format_name(ExifItem *item, gboolean brief);
+-gchar *exif_item_get_data_as_text(ExifItem *item);
++gchar *exif_item_get_data_as_text(ExifItem *item, ExifData *exif);
+ gint exif_item_get_integer(ExifItem *item, gint *value);
+ ExifRational *exif_item_get_rational(ExifItem *item, gint *sign, guint n);
+ 
+diff --git a/src/exiv2.cc b/src/exiv2.cc
+index 33b779e7..dc62e8e0 100644
+--- a/src/exiv2.cc
++++ b/src/exiv2.cc
+@@ -778,13 +778,13 @@ const char *exif_item_get_format_name(ExifItem *item, gboolean UNUSED(brief))
+ }
+ 
+ 
+-gchar *exif_item_get_data_as_text(ExifItem *item)
++gchar *exif_item_get_data_as_text(ExifItem *item, ExifData *exif)
+ {
+ 	try {
+ 		if (!item) return nullptr;
+ 		auto metadatum = reinterpret_cast<Exiv2::Metadatum *>(item);
+ #if EXIV2_TEST_VERSION(0,17,0)
+-		return utf8_validate_or_convert(metadatum->print().c_str());
++		return utf8_validate_or_convert(metadatum->print(&exif->exifData()).c_str());
+ #else
+ 		std::stringstream str;
+ 		Exiv2::Exifdatum *exifdatum;
+From b04f7cd0546976dc4f7ea440648ac0eedd8df3ce Mon Sep 17 00:00:00 2001
+From: Colin Clark <colin.clark at cclark.uk>
+Date: Wed, 21 Jun 2023 14:24:41 +0100
+Subject: [PATCH] Remove exiv2 0.28.0 restriction
+
+https://github.com/BestImageViewer/geeqie/pull/1119
+
+The bug was fixed in the above commit.
+---
+ meson.build | 12 ++----------
+ 1 file changed, 2 insertions(+), 10 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index a4cab49c..412399fe 100644
+--- a/meson.build
++++ b/meson.build
+@@ -280,15 +280,7 @@ else
+ endif
+ 
+ exiv2_dep = []
+-# See https://github.com/BestImageViewer/geeqie/issues/1090
+-# for the reason for 0.28.0 exclusion
+-req_version = ['>=0.11', '!=0.28.0']
+-
+-req_version_str = ''
+-foreach req_version_str_ : req_version
+-    req_version_str += req_version_str_
+-endforeach
+-
++req_version = '>=0.11'
+ option = get_option('exiv2')
+ if not option.disabled()
+     exiv2_dep = dependency('exiv2', version : req_version, required : get_option('exiv2'))
+@@ -296,7 +288,7 @@ if not option.disabled()
+         conf_data.set('HAVE_EXIV2', 1)
+         summary({'exiv2' : ['image metadata processed by exiv2:', true]}, section : 'Configuration', bool_yn : true)
+     else
+-        summary({'exiv2' : ['exiv2 ' + req_version_str + ' not found - image data not processed by exiv2:', false]}, section : 'Configuration', bool_yn : true)
++        summary({'exiv2' : ['exiv2 ' + req_version + ' not found - image data not processed by exiv2:', false]}, section : 'Configuration', bool_yn : true)
+     endif
+ else
+     summary({'exiv2' : ['disabled - image data processed by exiv2:', false]}, section : 'Configuration', bool_yn : true)
diff --git a/geeqie-lua.patch b/geeqie-lua.patch
new file mode 100644
index 0000000..98f719c
--- /dev/null
+++ b/geeqie-lua.patch
@@ -0,0 +1,13 @@
+--- geeqie-2.1/src/lua.cc.orig	2023-06-17 14:12:30.000000000 +0200
++++ geeqie-2.1/src/lua.cc	2023-07-27 16:36:08.834568207 +0200
+@@ -24,9 +24,7 @@
+ 
+ #define _XOPEN_SOURCE
+ 
+-#include <lua.h>
+-#include <lauxlib.h>
+-#include <lualib.h>
++#include <lua.hpp>
+ 
+ #include <stdio.h>
+ #include <glib.h>
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/geeqie.git/commitdiff/3a91e177fdf7a4f3a075e51bde32a2e8adfc6b9b



More information about the pld-cvs-commit mailing list