aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/protobuf.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/protobuf.scm')
-rw-r--r--gnu/packages/protobuf.scm31
1 files changed, 31 insertions, 0 deletions
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")