guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

05/05: gnu: Add python-nanopb.


From: guix-commits
Subject: 05/05: gnu: Add python-nanopb.
Date: Wed, 31 Aug 2022 10:36:38 -0400 (EDT)

apteryx pushed a commit to branch master
in repository guix.

commit 5eb1686537762baf8193f8702d5c78dc6114c0cc
Author: Maxim Cournoyer <maxim.cournoyer@gmail.com>
AuthorDate: Tue Aug 30 23:34:57 2022 -0400

    gnu: Add python-nanopb.
    
    * gnu/packages/protobuf.scm (python-nanopb): New variable.
---
 gnu/packages/protobuf.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm
index dcb742a463..baa7f55d9c 100644
--- a/gnu/packages/protobuf.scm
+++ b/gnu/packages/protobuf.scm
@@ -36,6 +36,7 @@
   #:use-module (guix build-system ruby)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix utils)
+  #:use-module (gnu packages build-tools)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages check)
   #:use-module (gnu packages gcc)
@@ -270,6 +271,36 @@ in ansi C.  It is especially suitable for use in 
microcontrollers, but fits
 any memory-restricted system.")
     (license license:zlib)))
 
+(define-public python-nanopb
+  (package
+    (inherit nanopb)
+    (name "python-nanopb")
+    (build-system python-build-system)
+    (arguments
+     (list
+      #:tests? #f                       ;no Python-specific tests
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'build
+            (lambda _
+              (copy-file "extra/poetry/pyproject.toml" "pyproject.toml")
+              (delete-file "build.py")
+              ;; Mimick extra/poetry/poetry_build.sh.
+              (mkdir "nanopb")
+              (copy-recursively "generator" "nanopb/generator")
+              (invoke "touch" "nanopb/__init__.py"
+                      "nanopb/generator/__init__.py")
+              (invoke "make" "-C" "nanopb/generator/proto")
+              (invoke "python" "-m" "build" "--wheel" "--no-isolation" ".")))
+          (replace 'install
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((whl (car (find-files "dist" "\\.whl$"))))
+                (invoke "pip" "--no-cache-dir" "--no-input"
+                        "install" "--no-deps" "--prefix" #$output whl)))))))
+    (native-inputs (list poetry protobuf python-pypa-build))
+    (propagated-inputs (list python-protobuf))
+    (synopsis "Small code-size Protocol Buffers implementation in Python")))
+
 (define-public python-protobuf
   (package
     (name "python-protobuf")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]