summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/grantlee-register-metaenumvariable.patch54
-rw-r--r--gnu/packages/qt.scm3
3 files changed, 57 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 0cef8f747b..edd546f81d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1402,6 +1402,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/gpodder-disable-updater.patch		\
   %D%/packages/patches/gpsbabel-fix-i686-test.patch		\
   %D%/packages/patches/grantlee-fix-i586-precision.patch	\
+  %D%/packages/patches/grantlee-register-metaenumvariable.patch	\
   %D%/packages/patches/grep-timing-sensitive-test.patch		\
   %D%/packages/patches/grfcodec-gcc-compat.patch		\
   %D%/packages/patches/gromacs-tinyxml2.patch			\
diff --git a/gnu/packages/patches/grantlee-register-metaenumvariable.patch b/gnu/packages/patches/grantlee-register-metaenumvariable.patch
new file mode 100644
index 0000000000..26ff20a413
--- /dev/null
+++ b/gnu/packages/patches/grantlee-register-metaenumvariable.patch
@@ -0,0 +1,54 @@
+https://patch-diff.githubusercontent.com/raw/steveire/grantlee/pull/91
+also in Debian
+https://sources.debian.org/data/main/g/grantlee5/5.3.1-3/debian/patches/register-comparator.diff
+
+From e6a2c1f4f29623f0ced1a946f5ff0c3831ab213b Mon Sep 17 00:00:00 2001
+From: Pino Toscano <toscano.pino@tiscali.it>
+Date: Sat, 12 Aug 2023 12:06:15 +0200
+Subject: [PATCH] Register MetaEnumVariable for comparison
+
+This is needed to ensure that MetaEnumVariable can be properly handled
+for comparisons, e.g. as done via QVariant::compare().
+
+Followup of commit 3b1931e30a23286a64f713a815f701d194a3c759
+
+Fixes #89
+---
+ templates/lib/engine.cpp | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/templates/lib/engine.cpp b/templates/lib/engine.cpp
+index c6a6987b..fc6b7797 100644
+--- a/templates/lib/engine.cpp
++++ b/templates/lib/engine.cpp
+@@ -24,6 +24,9 @@
+ #include "exception.h"
+ #include "grantlee_config_p.h"
+ #include "grantlee_version.h"
++#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
++#include "metaenumvariable_p.h"
++#endif
+ #ifdef QT_QML_LIB
+ #include "scriptabletags.h"
+ #endif
+@@ -32,6 +35,9 @@
+ 
+ #include <QtCore/QCoreApplication>
+ #include <QtCore/QDir>
++#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
++#include <QtCore/QMetaType>
++#endif
+ #include <QtCore/QPluginLoader>
+ #include <QtCore/QTextStream>
+ 
+@@ -48,6 +54,10 @@ Engine::Engine(QObject *parent)
+ 
+   d_ptr->m_pluginDirs = QCoreApplication::libraryPaths();
+   d_ptr->m_pluginDirs << QString::fromLocal8Bit(GRANTLEE_PLUGIN_PATH);
++
++#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
++  QMetaType::registerComparators<MetaEnumVariable>();
++#endif
+ }
+ 
+ Engine::~Engine()
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 13aadc8190..13f54fcc5d 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -398,7 +398,8 @@ applications on Wayland.")
         (file-name (git-file-name name version))
         (sha256
          (base32 "1ipnkdi8wgv519mvwa5zxlz20wipbypyfixjv2qdfd9vl1pznwvs"))
-        (patches (search-patches "grantlee-fix-i586-precision.patch"))))
+        (patches (search-patches "grantlee-fix-i586-precision.patch"
+                                 "grantlee-register-metaenumvariable.patch"))))
     (native-inputs
      ;; Optional: lcov and cccc, both are for code coverage
      (list doxygen))