Subject: [PATCH] WIP build python-gpg from gpgme

From: Christopher Baines <[email-masked]>
Date: Tue, 25 Oct 2022 13:14:39 +0100

The python-gpg package using PyPI source code seems out of date, and doesn't
build on 32bit systems like i686-linux and armhf-linux. Maybe we should use
the source from gpgme?
---
 gnu/packages/gnupg.scm | 48 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index ce9ef48796..3a8be9a544 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -431,6 +431,54 @@ (define-public gpgme
     (properties '((ftp-server . "ftp.gnupg.org")
                   (ftp-directory . "/gcrypt/gpgme")))))
 
+(define-public python-gpg-latest
+  (package
+    (inherit gpgme)
+    (name "python-gpg")
+    (arguments
+     (list
+      #:modules
+      '((guix build gnu-build-system)
+        (guix build utils)
+        (ice-9 ftw)
+        (ice-9 match))      #:configure-flags #~(list "--enable-languages=python")
+      #:make-flags #~(list (string-append "LDFLAGS=-Wl,-rpath=" #$gpgme "/lib"))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'install 'remove-all-but-python
+            (lambda _
+              (for-each
+               (lambda (name)
+                 (delete-file-recursively
+                  (string-append #$output "/" name)))
+               (scandir #$output
+                        (match-lambda
+                          ("." #f)
+                          (".." #f)
+                          ("lib" #f)
+                          (_ #t))))
+              (for-each
+               (lambda (name)
+                 (delete-file-recursively
+                  (string-append #$output "/lib/" name)))
+               (scandir (string-append #$output "/lib")
+                        (match-lambda
+                          ("." #f)
+                          (".." #f)
+                          (name (not (string-prefix? "python" name)))))))))))
+    (inputs
+     (modify-inputs (package-inputs gpgme)
+       (append gpgme)))
+    (native-inputs
+     (modify-inputs (package-native-inputs gpgme)
+       (append swig)
+       (append python)))
+    (home-page (package-home-page gpgme))
+    (synopsis "Python bindings for GPGME GnuPG cryptography library")
+    (description "This package provides Python bindings to the GPGME GnuPG
+cryptographic library.")
+    (license license:lgpl2.1+)))
+
 (define-public qgpgme
   (package
     (inherit gpgme)
-- 
2.37.3