gnu: Add c-blosc2.

Adapted from
https://raw.githubusercontent.com/Blosc/c-blosc2/refs/heads/main/.guix/modules/c-blosc2-package.scm.

* gnu/packages/compression.scm (c-blosc2): New variable.

Change-Id: Ic0f11487e8d920dd31dfb009485c204fa1b575f7
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Co-authored-by: Ivan Vilata i Balaguer <ivan@selidor.net>
This commit is contained in:
Maxim Cournoyer 2024-12-17 15:12:48 +09:00
parent 537c8e5f6d
commit f04d44562f
No known key found for this signature in database
GPG key ID: 1260E46482E63562

View file

@ -33,7 +33,7 @@
;;; Copyright © 2021 Antoine Côté <antoine.cote@posteo.net>
;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Ahmad Jarara <git@ajarara.io>
;;; Copyright © 2022 Greg Hogan <code@greghogan.com>
;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
@ -2804,6 +2804,46 @@ computations.")
;; other non-copyleft licenses.
(license license:bsd-3)))
(define-public c-blosc2
(package
(name "c-blosc2")
(version "2.15.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Blosc/c-blosc2")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"17kqwvw2n6bgzidi8f5906s5hc9wm1lbfbpd491gf7csxjck99sx"))))
(build-system cmake-build-system)
(arguments
(list #:configure-flags #~(list "-DBUILD_STATIC=OFF"
"-DDEACTIVATE_AVX2=ON"
"-DDEACTIVATE_AVX512=ON"
"-DPREFER_EXTERNAL_LZ4=ON"
"-DPREFER_EXTERNAL_ZLIB=ON"
"-DPREFER_EXTERNAL_ZSTD=ON")))
(inputs (list lz4 zlib `(,zstd "lib")))
(home-page "https://blosc.org")
(synopsis "Blocking, shuffling and lossless compression library")
(description
"Blosc is a high performance compressor optimized for binary
data (i.e. floating point numbers, integers and booleans, although it can
handle string data too). It has been designed to transmit data to the
processor cache faster than the traditional, non-compressed, direct memory
fetch approach via a @code{memcpy()} system call. Blosc main goal is not just
to reduce the size of large datasets on-disk or in-memory, but also to
accelerate memory-bound computations.
C-Blosc2 is the new major version of C-Blosc, and is backward compatible with
both the C-Blosc1 API and its in-memory format. However, the reverse thing is
generally not true for the format; buffers generated with C-Blosc2 are not
format-compatible with C-Blosc1 (i.e. forward compatibility is not
supported).")
(license license:bsd-3)))
(define-public ecm
(package
(name "ecm")