diff mbox series

[bug#58775] WIP build python-gpg from gpgme

Message ID 20221025121439.18746-1-mail@cbaines.net
State New
Headers show
Series [bug#58775] WIP build python-gpg from gpgme | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git-branch success View Git branch
cbaines/applying patch success
cbaines/issue success View issue

Commit Message

Christopher Baines Oct. 25, 2022, 12:14 p.m. UTC
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(+)

Comments

Simon Tournier Nov. 26, 2022, 1:08 p.m. UTC | #1
Hi Chris,

On Tue, 25 Oct 2022 at 13:14, Christopher Baines <mail@cbaines.net> wrote:
> 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?

You mean, instead of ’inherit’ from ’gpgme’, right?

Well, the current version on PyPI is 1.10.0 and the ’gpgme’ is 1.15.1.

> ---
>  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

Why the symbol is ’-latest’?

> +  (package
> +    (inherit gpgme)
> +    (name "python-gpg")

when the name is not?  And ’gpgme’ neither.


Well, I propose to use this updated version using ’gpgme’ and drop the
old package from PyPI if all the dependencies,

--8<---------------cut here---------------start------------->8---
$ guix refresh -l python-gpg
Building the following 9 packages would ensure 14 dependent packages are rebuilt: alot@0.10 gajim-openpgp@1.4.9 assword@0.11 linuxdcpp@1.1.0 ikiwiki@3.20200202.3 xandikos@0.2.3 python-oslosphinx@4.18.0 websockify@0.8.0 breezy@3.2.2
--8<---------------cut here---------------end--------------->8---

build fine.  WDYT?

Cheers,
simon
diff mbox series

Patch

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)