Add Lizard (LZ5) (#13456)
* Add Lizard (LZ5) Add a new package for Lizard, formerly LZ5, a very fast compressor and decompressor library. * c-blosc2: use external lizard Use an external Lizard (LZ5) dependency and add missing "when="s for other compressor dependents.
This commit is contained in:
parent
1d760e79a6
commit
7b86251bef
@ -32,12 +32,11 @@ class CBlosc2(CMakePackage):
|
|||||||
description='support for ZSTD')
|
description='support for ZSTD')
|
||||||
|
|
||||||
depends_on('cmake@2.8.10:', type='build')
|
depends_on('cmake@2.8.10:', type='build')
|
||||||
# TODO https://github.com/inikep/lizard/issues/21
|
depends_on('lizard', when='+lizard')
|
||||||
# depends_on('lizard')
|
depends_on('lz4', when='+lz4')
|
||||||
depends_on('lz4')
|
depends_on('snappy', when='+snappy')
|
||||||
depends_on('snappy')
|
depends_on('zlib', when='+zlib')
|
||||||
depends_on('zlib')
|
depends_on('zstd', when='+zstd')
|
||||||
depends_on('zstd')
|
|
||||||
|
|
||||||
def cmake_args(self):
|
def cmake_args(self):
|
||||||
spec = self.spec
|
spec = self.spec
|
||||||
@ -53,8 +52,7 @@ def cmake_args(self):
|
|||||||
'ON' if '~zlib' in spec else 'OFF'),
|
'ON' if '~zlib' in spec else 'OFF'),
|
||||||
'-DDEACTIVATE_ZSTD={0}'.format(
|
'-DDEACTIVATE_ZSTD={0}'.format(
|
||||||
'ON' if '~zstd' in spec else 'OFF'),
|
'ON' if '~zstd' in spec else 'OFF'),
|
||||||
# TODO https://github.com/inikep/lizard/issues/21
|
'-DPREFER_EXTERNAL_LIZARD=ON',
|
||||||
'-DPREFER_EXTERNAL_LIZARD=OFF',
|
|
||||||
'-DPREFER_EXTERNAL_LZ4=ON',
|
'-DPREFER_EXTERNAL_LZ4=ON',
|
||||||
# snappy is supported via external install only
|
# snappy is supported via external install only
|
||||||
'-DPREFER_EXTERNAL_ZLIB=ON',
|
'-DPREFER_EXTERNAL_ZLIB=ON',
|
||||||
|
@ -0,0 +1,76 @@
|
|||||||
|
From 02c35c25e565a090ec6b49fbc6210f6593519b44 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Przemyslaw Skibinski <przemyslaw.skibinski@percona.com>
|
||||||
|
Date: Fri, 25 Oct 2019 10:03:39 +0200
|
||||||
|
Subject: [PATCH] Fix missing `lizard_decompress.h` after `make install`.
|
||||||
|
|
||||||
|
---
|
||||||
|
lib/Makefile | 2 ++
|
||||||
|
lib/lizard_common.h | 7 +++++++
|
||||||
|
lib/lizard_decompress.h | 9 +--------
|
||||||
|
3 files changed, 10 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/Makefile b/lib/Makefile
|
||||||
|
index 64c07dd..9484056 100644
|
||||||
|
--- a/lib/Makefile
|
||||||
|
+++ b/lib/Makefile
|
||||||
|
@@ -143,6 +143,7 @@ endif
|
||||||
|
@ln -sf liblizard.$(SHARED_EXT_VER) $(DESTDIR)$(LIBDIR)/liblizard.$(SHARED_EXT)
|
||||||
|
@echo Installing includes
|
||||||
|
@$(INSTALL_DATA) lizard_compress.h $(DESTDIR)$(INCLUDEDIR)/lizard_compress.h
|
||||||
|
+ @$(INSTALL_DATA) lizard_decompress.h $(DESTDIR)$(INCLUDEDIR)/lizard_decompress.h
|
||||||
|
@$(INSTALL_DATA) lizard_common.h $(DESTDIR)$(INCLUDEDIR)/lizard_common.h
|
||||||
|
@$(INSTALL_DATA) lizard_frame.h $(DESTDIR)$(INCLUDEDIR)/lizard_frame.h
|
||||||
|
@echo lizard static and shared libraries installed
|
||||||
|
@@ -154,6 +155,7 @@ uninstall:
|
||||||
|
@$(RM) $(DESTDIR)$(LIBDIR)/liblizard.$(SHARED_EXT_VER)
|
||||||
|
@$(RM) $(DESTDIR)$(LIBDIR)/liblizard.a
|
||||||
|
@$(RM) $(DESTDIR)$(INCLUDEDIR)/lizard_compress.h
|
||||||
|
+ @$(RM) $(DESTDIR)$(INCLUDEDIR)/lizard_decompress.h
|
||||||
|
@$(RM) $(DESTDIR)$(INCLUDEDIR)/lizard_common.h
|
||||||
|
@$(RM) $(DESTDIR)$(INCLUDEDIR)/lizard_frame.h
|
||||||
|
@echo lizard libraries successfully uninstalled
|
||||||
|
diff --git a/lib/lizard_common.h b/lib/lizard_common.h
|
||||||
|
index 1677abb..45730cf 100644
|
||||||
|
--- a/lib/lizard_common.h
|
||||||
|
+++ b/lib/lizard_common.h
|
||||||
|
@@ -192,6 +192,13 @@ struct Lizard_stream_s
|
||||||
|
const BYTE* destBase;
|
||||||
|
};
|
||||||
|
|
||||||
|
+struct Lizard_streamDecode_s {
|
||||||
|
+ const BYTE* externalDict;
|
||||||
|
+ size_t extDictSize;
|
||||||
|
+ const BYTE* prefixEnd;
|
||||||
|
+ size_t prefixSize;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
struct Lizard_dstream_s
|
||||||
|
{
|
||||||
|
const BYTE* offset16Ptr;
|
||||||
|
diff --git a/lib/lizard_decompress.h b/lib/lizard_decompress.h
|
||||||
|
index 5453b4d..ad9fc8e 100644
|
||||||
|
--- a/lib/lizard_decompress.h
|
||||||
|
+++ b/lib/lizard_decompress.h
|
||||||
|
@@ -39,8 +39,6 @@
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#include "entropy/mem.h" /* U32 */
|
||||||
|
-
|
||||||
|
|
||||||
|
/*^***************************************************************
|
||||||
|
* Export parameters
|
||||||
|
@@ -95,12 +93,7 @@ LIZARDDLIB_API int Lizard_decompress_safe_partial (const char* source, char* des
|
||||||
|
/*-**********************************************
|
||||||
|
* Streaming Decompression Functions
|
||||||
|
************************************************/
|
||||||
|
-typedef struct {
|
||||||
|
- const BYTE* externalDict;
|
||||||
|
- size_t extDictSize;
|
||||||
|
- const BYTE* prefixEnd;
|
||||||
|
- size_t prefixSize;
|
||||||
|
-} Lizard_streamDecode_t;
|
||||||
|
+typedef struct Lizard_streamDecode_s Lizard_streamDecode_t;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Lizard_streamDecode_t
|
27
var/spack/repos/builtin/packages/lizard/package.py
Normal file
27
var/spack/repos/builtin/packages/lizard/package.py
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
from spack import *
|
||||||
|
|
||||||
|
|
||||||
|
class Lizard(MakefilePackage):
|
||||||
|
"""Lizard (formerly LZ5) is an efficient compressor with very
|
||||||
|
fast decompression. It achieves compression ratio that is
|
||||||
|
comparable to zip/zlib and zstd/brotli (at low and medium
|
||||||
|
compression levels) at decompression speed of 1000 MB/s and
|
||||||
|
faster."""
|
||||||
|
|
||||||
|
homepage = "https://github.com/inikep/lizard"
|
||||||
|
url = "https://github.com/inikep/lizard/archive/v1.0.tar.gz"
|
||||||
|
git = "https://github.com/inikep/lizard.git"
|
||||||
|
|
||||||
|
version('develop', branch='lizard')
|
||||||
|
version('1.0',
|
||||||
|
sha256='6f666ed699fc15dc7fdaabfaa55787b40ac251681b50c0d8df017c671a9457e6')
|
||||||
|
|
||||||
|
patch('fix-install-decompress.patch', when='@1.0')
|
||||||
|
|
||||||
|
def install(self, spec, prefix):
|
||||||
|
make("PREFIX=%s" % prefix, "install")
|
Loading…
Reference in New Issue
Block a user