summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2022-11-23 13:17:31 +0100
committerRicardo Wurmus <rekado@elephly.net>2022-11-23 13:57:48 +0100
commit101a4e2718db6b9b96333d75cacb761640074405 (patch)
treed19133329365cd794e4d960dd8bdd1b5a3eadc0f /gnu
parent6ea2229f89bac7adfbf27f00a8387df3a4ad9310 (diff)
downloadguix-101a4e2718db6b9b96333d75cacb761640074405.tar.gz
gnu: Add python-pybcj.
* gnu/packages/python-compression.scm (python-pybcj): New variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/python-compression.scm30
1 files changed, 30 insertions, 0 deletions
diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index 8aa666cc25..999f989102 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -72,6 +72,36 @@ file-object abstraction, making it possible to use multiple files as if they
 were a single file.")
     (license license:lgpl2.1+)))
 
+(define-public python-pybcj
+  (package
+    (name "python-pybcj")
+    (version "1.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "pybcj" version))
+              (sha256
+               (base32
+                "1hvm3c3mb20z25kmbzyyn6pr5inx50z0ignl8b0bggxaik82ws4b"))))
+    (build-system pyproject-build-system)
+    (propagated-inputs (list python-importlib-metadata))
+    (native-inputs
+     (list python-coverage
+           python-hypothesis
+           python-pytest
+           python-pytest-cov
+           python-setuptools-scm))
+    (home-page "https://codeberg.org/miurahr/pybcj")
+    (synopsis "BCJ filter library")
+    (description "In data compression, BCJ, short for Branch-Call-Jump, refers
+to a technique that improves the compression of machine code of executable
+binaries by replacing relative branch addresses with absolute ones. This
+allows a LZMA compressor to identify duplicate targets and archive higher
+compression rate.  BCJ is used in the 7-zip compression utility as the default
+filter for executable binaries.
+
+pybcj provides Python bindings to a BCJ implementation in C.")
+    (license license:lgpl2.1+)))
+
 (define-public python-bcj-cffi
   (package
     (name "python-bcj-cffi")