diff --git a/redis-mod-zstd/redis-mod-zstd.patch b/redis-mod-zstd/redis-mod-zstd.patch new file mode 100644 index 0000000000..725135bbb9 --- /dev/null +++ b/redis-mod-zstd/redis-mod-zstd.patch @@ -0,0 +1,32 @@ +Index: rmutil/util.c +--- rmutil/util.c.orig 2019-04-21 11:46:39.000000000 +0200 ++++ rmutil/util.c 2019-04-21 12:53:28.266257000 +0200 +@@ -6,6 +6,7 @@ + #include + #include + #include ++#include + #include + #include "util.h" + +@@ -220,4 +221,4 @@ + } while ((ele != NULL) && (*e != '\0')); + + return ele; +-} +\ No newline at end of file ++} +Index: zstd_vals/Makefile +--- zstd_vals/Makefile.orig 2019-04-21 11:46:39.000000000 +0200 ++++ zstd_vals/Makefile 2019-04-21 12:53:57.123509000 +0200 +@@ -4,8 +4,8 @@ + ZSTD_LIBDIR=../zstd/lib + + # Compile flags for linux +-SHOBJ_CFLAGS ?= -fno-common -g -ggdb +-SHOBJ_LDFLAGS ?= -shared -Bsymbolic ++SHOBJ_CFLAGS ?= ++SHOBJ_LDFLAGS ?= -shared + CFLAGS = -I$(RM_INCLUDE_DIR) -I$(ZSTD_INCLUDE_DIR) -Wall -g -fPIC -lc -lm -O2 -std=c++11 + CC=g++ + LD=g++ diff --git a/redis-mod-zstd/redis-mod-zstd.spec b/redis-mod-zstd/redis-mod-zstd.spec new file mode 100644 index 0000000000..9469bc77ad --- /dev/null +++ b/redis-mod-zstd/redis-mod-zstd.spec @@ -0,0 +1,114 @@ +## +## redis-mod-zstd.spec -- OpenPKG RPM Package Specification +## Copyright (c) 2000-2019 OpenPKG Project +## +## Permission to use, copy, modify, and distribute this software for +## any purpose with or without fee is hereby granted, provided that +## the above copyright notice and this permission notice appear in all +## copies. +## +## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR +## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +## SUCH DAMAGE. +## + +# package information +Name: redis-mod-zstd +Summary: Redis Extension Module: ZStandard Compression +URL: https://github.com/chadnickbok/redis-zstd-module +Vendor: Nick Chadwick +Packager: OpenPKG Project +Distribution: OpenPKG Community +Class: EVAL +Group: Database +License: Open Source +Version: 20190421 +Release: 20190421 + +# list of sources +Source0: http://download.openpkg.org/components/versioned/redis-zstd/redis-zstd-%{version}.tar.xz +Patch0: redis-mod-zstd.patch + +# build information +BuildPreReq: OpenPKG, openpkg >= 20160101 +PreReq: OpenPKG, openpkg >= 20160101 +PreReq: redis + +%description + This is a Redis extension module that provides ZStandard + compression/decompression functionality. + +%track + prog redis-mod-zstd = { + version = %{version} + url = http://download.openpkg.org/components/versioned/redis-zstd/ + regex = redis-zstd-(__VER__)\.tar\.xz + } + +%prep + %setup -q -n redis-zstd + %patch -p0 + +%build + # build extension module + ( cd rmutil + %{l_make} %{l_mflags -O} \ + CC="%{l_cc}" \ + CFLAGS="%{l_cflags -O} -I`pwd` -I.." + ) || exit $? + ( cd zstd_vals + %{l_make} %{l_mflags -O} \ + CC="%{l_cxx}" \ + LD="%{l_cxx}" \ + CFLAGS="%{l_cxxflags -O} -I`pwd` -I.. %{l_cppflags}" \ + ZSTD_INCLUDE_DIR=%{l_prefix}/include \ + ZSTD_LIBDIR=%{l_prefix}/lib + ) || exit $? + +%install + # create installation hierarchy + %{l_shtool} mkdir -f -p -m 755 \ + $RPM_BUILD_ROOT%{l_prefix}/libexec/redis + + # install extension module + %{l_shtool} install -c -m 755 \ + zstd_vals/zstd_vals.so \ + $RPM_BUILD_ROOT%{l_prefix}/libexec/redis/zstd.so + + # determine installation files + %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} + +%files -f files + +%clean + +%post + if [ ".$1" = .1 ]; then + # add hook to Redis configuration + redisconf="$RPM_INSTALL_PREFIX/etc/redis/redis.conf" + if [ -f $redisconf ]; then + echo "loadmodule $RPM_INSTALL_PREFIX/libexec/redis/zstd.so" |\ + $RPM_INSTALL_PREFIX/lib/openpkg/rpmtool config \ + -a -i "$RPM_INSTALL_PREFIX:redis-mod-zstd" -p "#" $redisconf + fi + fi + +%postun + if [ ".$1" = .0 ]; then + # remove hook from Redis configuration + redisconf="$RPM_INSTALL_PREFIX/etc/redis/redis.conf" + if [ -f $redisconf ]; then + $RPM_INSTALL_PREFIX/lib/openpkg/rpmtool config \ + -r -i "$RPM_INSTALL_PREFIX:redis-mod-zstd" -p "#" $redisconf + fi + fi +