gnu: Add pzstd.

* gnu/packages/compression.scm (pzstd): New variable.
This commit is contained in:
Tobias Geerinckx-Rice 2017-02-20 22:31:35 +01:00
parent f6ac3101ff
commit 0f03c53168
No known key found for this signature in database
GPG Key ID: 91CCDB9B48541B99

View File

@ -45,6 +45,7 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
#:use-module (gnu packages base)
#:use-module (gnu packages check)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
@ -1217,3 +1218,43 @@ speed.")
license:bsd-2 ; quite a few files have but 2 clauses
license:public-domain ; zlibWrapper/examples/fitblk*
license:zlib)))) ; zlibWrapper/{gz*.c,gzguts.h}
(define-public pzstd
(package
(name "pzstd")
(version (package-version zstd))
(source (package-source zstd))
(build-system gnu-build-system)
(native-inputs
`(("googletest", googletest)))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'enter-subdirectory
(lambda _ (chdir "contrib/pzstd")))
(delete 'configure) ; no configure script
(add-before 'check 'compile-tests
(lambda* (#:key make-flags #:allow-other-keys)
(zero? (apply system* "make" "tests" make-flags))))
(add-after 'install 'install-documentation
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(doc (string-append out "/share/doc/" ,name)))
(mkdir-p doc)
(install-file "README.md" doc)
#t))))
#:make-flags
(list "CC=gcc"
(string-append "PREFIX=" (assoc-ref %outputs "out")))))
(home-page (package-home-page zstd))
(synopsis "Threaded implementation of the Zstandard compression algorithm")
(description "Parallel Zstandard (PZstandard or @command{pzstd}) is a
multi-threaded implementation of the @uref{http://zstd.net/, Zstandard
compression algorithm}. It is fully compatible with the original Zstandard file
format and command-line interface, and can be used as a drop-in replacement.
Compression is distributed over multiple processor cores to improve performance,
as is the decompression of data compressed in this manner. Data compressed by
other implementations will only be decompressed by two threads: one performing
the actual decompression, the other input and output.")
(license (package-license zstd))))