gnu: python-poppler-qt5: Update to 21.3.0.

* gnu/packages/pdf.scm (python-poppler-qt5): Update to 21.3.0.
[build-system]: Change to pyproject.
[inputs]: Change SIP to current version variant.
* gnu/packages/patches/python-poppler-qt5-fix-build.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): De-register said patch.

Change-Id: I30d6e2a3180505091d8072ed452211b0bb3a0178
Signed-off-by: Christopher Baines <mail@cbaines.net>
This commit is contained in:
Marco Rimoldi 2024-02-21 20:30:32 +01:00 committed by Christopher Baines
parent 9d8a52d3bd
commit d99cec308c
No known key found for this signature in database
GPG key ID: 5E28A33B0B84F577
3 changed files with 17 additions and 149 deletions

View file

@ -1808,7 +1808,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-feedparser-missing-import.patch \ %D%/packages/patches/python-feedparser-missing-import.patch \
%D%/packages/patches/python-louvain-fix-test.patch \ %D%/packages/patches/python-louvain-fix-test.patch \
%D%/packages/patches/python-random2-getrandbits-test.patch \ %D%/packages/patches/python-random2-getrandbits-test.patch \
%D%/packages/patches/python-poppler-qt5-fix-build.patch \
%D%/packages/patches/python-pyreadstat-link-libiconv.patch \ %D%/packages/patches/python-pyreadstat-link-libiconv.patch \
%D%/packages/patches/python-pyls-black-41.patch \ %D%/packages/patches/python-pyls-black-41.patch \
%D%/packages/patches/python-pypdf-annotate-tests-appropriately.patch \ %D%/packages/patches/python-pypdf-annotate-tests-appropriately.patch \

View file

@ -1,116 +0,0 @@
Patch taken from the upstream repository
https://github.com/frescobaldi/python-poppler-qt5/issues/43
From 92e5962ec3751ab051d0b655fd61afc7a1cf709e Mon Sep 17 00:00:00 2001
From: Ben Greiner <code@bnavigator.de>
Date: Thu, 4 Mar 2021 17:02:51 +0100
Subject: [PATCH] map type QVector< QPair<TYPE, TYPE> > for
FormFieldChoice::choicesWithExportValues() (#45)
---
types.sip | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 93 insertions(+)
diff --git a/types.sip b/types.sip
index 239b8c9..81cb283 100644
--- a/types.sip
+++ b/types.sip
@@ -331,5 +331,98 @@ template <TYPE>
};
+/**
+ * Convert QVector< QPair<TYPE, TYPE> >
+ * from and to a Python list of a 2-item tuple
+ */
+
+template<TYPE>
+%MappedType QVector< QPair<TYPE, TYPE> >
+{
+%TypeHeaderCode
+#include <qvector.h>
+#include <qpair.h>
+%End
+
+%ConvertFromTypeCode
+ // Create the list.
+ PyObject *l;
+
+ if ((l = PyList_New(sipCpp->size())) == NULL)
+ return NULL;
+
+ // Set the list elements.
+ for (int i = 0; i < sipCpp->size(); ++i)
+ {
+ QPair<TYPE, TYPE>* p = new QPair<TYPE, TYPE>(sipCpp->at(i));
+ PyObject *ptuple = PyTuple_New(2);
+ PyObject *pfirst;
+ PyObject *psecond;
+
+ TYPE *sfirst = new TYPE(p->first);
+ if ((pfirst = sipConvertFromType(sfirst, sipType_TYPE, sipTransferObj)) == NULL)
+ {
+ Py_DECREF(l);
+ Py_DECREF(ptuple);
+ return NULL;
+ }
+ PyTuple_SET_ITEM(ptuple, 0, pfirst);
+
+ TYPE *ssecond = new TYPE(p->second);
+ if ((psecond = sipConvertFromType(ssecond, sipType_TYPE, sipTransferObj)) == NULL)
+ {
+ Py_DECREF(l);
+ Py_DECREF(ptuple);
+ Py_DECREF(pfirst);
+ return NULL;
+ }
+ PyTuple_SET_ITEM(ptuple, 1, psecond);
+
+ PyList_SET_ITEM(l, i, ptuple);
+ }
+
+ return l;
+%End
+
+%ConvertToTypeCode
+ const sipTypeDef* qpair_type = sipFindType("QPair<TYPE, TYPE>");
+
+ // Check the type if that is all that is required.
+ if (sipIsErr == NULL)
+ {
+ if (!PySequence_Check(sipPy))
+ return 0;
+
+ for (int i = 0; i < PySequence_Size(sipPy); ++i)
+ if (!sipCanConvertToType(PySequence_ITEM(sipPy, i), qpair_type, SIP_NOT_NONE))
+ return 0;
+
+ return 1;
+ }
+
+
+ QVector< QPair<TYPE, TYPE> > *qv = new QVector< QPair<TYPE, TYPE> >;
+
+ for (int i = 0; i < PySequence_Size(sipPy); ++i)
+ {
+ int state;
+ QPair<TYPE, TYPE> * p = reinterpret_cast< QPair<TYPE, TYPE> * >(sipConvertToType(PySequence_ITEM(sipPy, i), qpair_type, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
+
+ if (*sipIsErr)
+ {
+ sipReleaseType(p, qpair_type, state);
+ delete qv;
+ return 0;
+ }
+ qv->append(*p);
+ sipReleaseType(p, qpair_type, state);
+ }
+
+ *sipCppPtr = qv;
+ return sipGetState(sipTransferObj);
+%End
+
+};
+
/* kate: indent-width 4; space-indent on; hl c++; indent-mode cstyle; */

View file

@ -434,40 +434,25 @@ (define-public poppler-qt5
(define-public python-poppler-qt5 (define-public python-poppler-qt5
(package (package
(name "python-poppler-qt5") (name "python-poppler-qt5")
(version "21.1.0") (version "21.3.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "python-poppler-qt5" version)) (uri (pypi-uri "python-poppler-qt5" version))
(sha256 (sha256
(base32 (base32 "1q3gvmsmsq3llf9mcbhlkryrgprqrw2z7wmnvagy180f3y2fhxxl"))))
"0b82gm4i75q5v19kfbq0h4y0b2vcwr2213zkhxh6l0h45kdndmxd")) (build-system pyproject-build-system)
(patches (search-patches "python-poppler-qt5-fix-build.patch"))))
(build-system python-build-system)
(arguments (arguments
`(;; There are no tests. The check phase just causes a rebuild. `(;; The sipbuild.api backend builder expects a Python dictionary as per
#:tests? #f ;; https://peps.python.org/pep-0517/#config-settings, but we
#:phases ;; give it lists and it fails. The next line is a workaround.
(modify-phases %standard-phases #:configure-flags '#nil
(replace 'build #:tests? #f))
(lambda* (#:key inputs #:allow-other-keys) (native-inputs (list pkg-config))
(substitute* "setup.py" (inputs (list python-sip python-pyqt-builder python-pyqt poppler-qt5
;; This check always fails, so disable it. qtbase-5))
(("if not check_qtxml\\(\\)") (home-page "https://github.com/frescobaldi/python-poppler-qt5")
"if True")) (synopsis "Python binding to Poppler-Qt5")
;; We need to pass an extra flag here. This cannot be in
;; configure-flags because it should not be passed for the
;; installation phase.
((@@ (guix build python-build-system) call-setuppy)
"build_ext" (list (string-append "--pyqt-sip-dir="
(assoc-ref inputs "python-pyqt")
"/share/sip")) #t))))))
(native-inputs
(list pkg-config))
(inputs
(list python-sip-4 python-pyqt poppler-qt5 qtbase-5))
(home-page "https://pypi.org/project/python-poppler-qt5/")
(synopsis "Python bindings for Poppler-Qt5")
(description (description
"This package provides Python bindings for the Qt5 interface of the "This package provides Python bindings for the Qt5 interface of the
Poppler PDF rendering library.") Poppler PDF rendering library.")