From 3b987146140f04dcf2256d6daa32dfa10bd0fbe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1draig=20Brady?=
Date: Thu, 6 Oct 2016 13:37:39 +0100
Subject: [PATCH] add the parallel variant command, pzstd(1)
Build/Test/Install the contrib/pzstd util
which is c++ rather than c, and has a new
test dependency on gtest.
---
pzstd.1.patch | 16 ++++++++
zstd-lib-no-rebuild.patch | 78 ++++++++++++++++++++++++++++++++++++---
zstd.spec | 17 +++++++--
3 files changed, 103 insertions(+), 8 deletions(-)
create mode 100644 pzstd.1.patch
diff --git a/pzstd.1.patch b/pzstd.1.patch
new file mode 100644
index 0000000..d05ebd8
--- /dev/null
+++ b/pzstd.1.patch
@@ -0,0 +1,16 @@
+--- zstd-1.1.0.orig/programs/zstd.1 2016-09-27 22:15:03.000000000 +0000
++++ zstd-1.1.0.new/programs/zstd.1 2016-10-06 12:25:28.912681891 +0000
+@@ -94,6 +94,13 @@
+ All arguments after -- are treated as files
+
+
++.SH Parallel Zstd OPTIONS
++Additional options for the pzstd utility
++.TP
++.BR \-p ", " --processes
++ number of threads to use for (de)compression (default:4)
++
++
+ .SH DICTIONARY
+ .PP
+ \fBzstd\fR offers \fIdictionary\fR compression, useful for very small files and messages.
diff --git a/zstd-lib-no-rebuild.patch b/zstd-lib-no-rebuild.patch
index fee288e..d6d8a50 100644
--- a/zstd-lib-no-rebuild.patch
+++ b/zstd-lib-no-rebuild.patch
@@ -1,8 +1,76 @@
-Proposed upstream at https://github.com/pixelb/zstd/pull/1
-
-diff -Naur zstd-1.0.0/lib/Makefile zstd-1.0.0.fedora/lib/Makefile
---- zstd-1.0.0/lib/Makefile 2016-08-31 16:09:10.000000000 +0000
-+++ zstd-1.0.0.fedora/lib/Makefile 2016-09-05 11:45:59.449374900 +0000
+diff -Naur zstd-1.1.0.orig/contrib/pzstd/Makefile zstd-1.1.0.new/contrib/pzstd/Makefile
+--- zstd-1.1.0.orig/contrib/pzstd/Makefile 2016-09-27 22:15:03.000000000 +0000
++++ zstd-1.1.0.new/contrib/pzstd/Makefile 2016-10-06 11:01:38.436955726 +0000
+@@ -37,9 +37,8 @@
+ all: pzstd
+
+
+-libzstd.a: $(ZSTD_FILES)
++$(ZSTDDIR)/libzstd.a: $(ZSTD_FILES)
+ $(MAKE) -C $(ZSTDDIR) libzstd
+- @cp $(ZSTDDIR)/libzstd.a .
+
+ Pzstd.o: Pzstd.h Pzstd.cpp ErrorHolder.h utils/*.h
+ $(CXX) $(FLAGS) -c Pzstd.cpp -o $@
+@@ -53,12 +52,11 @@
+ main.o: main.cpp *.h utils/*.h
+ $(CXX) $(FLAGS) -c main.cpp -o $@
+
+-pzstd: Pzstd.o SkippableFrame.o Options.o main.o libzstd.a
++pzstd: Pzstd.o SkippableFrame.o Options.o main.o $(ZSTDDIR)/libzstd.a
+ $(CXX) $(FLAGS) $^ -o $@$(EXT) -lpthread
+
+-libzstd32.a: $(ZSTD_FILES)
++$(ZSTDDIR)/libzstd32.a: $(ZSTD_FILES)
+ $(MAKE) -C $(ZSTDDIR) libzstd MOREFLAGS="-m32"
+- @cp $(ZSTDDIR)/libzstd.a libzstd32.a
+
+ Pzstd32.o: Pzstd.h Pzstd.cpp ErrorHolder.h utils/*.h
+ $(CXX) -m32 $(FLAGS) -c Pzstd.cpp -o $@
+@@ -94,7 +92,7 @@
+ cd googletest/build && cmake -G "MSYS Makefiles" .. && $(MAKE)
+
+ test:
+- $(MAKE) libzstd.a
++ $(MAKE) $(ZSTDDIR)/libzstd.a
+ $(MAKE) pzstd MOREFLAGS="-Wall -Wextra -pedantic -Werror"
+ $(MAKE) -C utils/test clean
+ $(MAKE) -C utils/test test MOREFLAGS="-Wall -Wextra -pedantic -Werror"
+@@ -102,7 +100,7 @@
+ $(MAKE) -C test test MOREFLAGS="-Wall -Wextra -pedantic -Werror"
+
+ test32:
+- $(MAKE) libzstd.a MOREFLAGS="-m32"
++ $(MAKE) $(ZSTDDIR)/libzstd.a MOREFLAGS="-m32"
+ $(MAKE) pzstd MOREFLAGS="-m32 -Wall -Wextra -pedantic -Werror"
+ $(MAKE) -C utils/test clean
+ $(MAKE) -C utils/test test MOREFLAGS="-m32 -Wall -Wextra -pedantic -Werror"
+@@ -114,5 +112,5 @@
+ $(MAKE) -C $(ZSTDDIR) clean
+ $(MAKE) -C utils/test clean
+ $(MAKE) -C test clean
+- @$(RM) -rf libzstd.a *.o pzstd$(EXT) pzstd32$(EXT)
++ @$(RM) -rf $(ZSTDDIR)/libzstd.a *.o pzstd$(EXT) pzstd32$(EXT)
+ @echo Cleaning completed
+diff -Naur zstd-1.1.0.orig/contrib/pzstd/test/Makefile zstd-1.1.0.new/contrib/pzstd/test/Makefile
+--- zstd-1.1.0.orig/contrib/pzstd/test/Makefile 2016-09-27 22:15:03.000000000 +0000
++++ zstd-1.1.0.new/contrib/pzstd/test/Makefile 2016-10-06 12:46:21.768547487 +0000
+@@ -30,10 +30,10 @@
+ FLAGS = $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS)
+
+ datagen.o: $(PROGDIR)/datagen.*
+- $(CC) $(CPPFLAGS) -O3 $(MOREFLAGS) $(LDFLAGS) -Wno-long-long -Wno-variadic-macros $(PROGDIR)/datagen.c -c -o $@
++ $(CC) $(CPPFLAGS) $(CFLAGS) $(MOREFLAGS) $(LDFLAGS) -Wno-long-long -Wno-variadic-macros $(PROGDIR)/datagen.c -c -o $@
+
+ %: %.cpp *.h datagen.o
+- $(CXX) $(FLAGS) $@.cpp datagen.o $(PZSTDDIR)/Pzstd.o $(PZSTDDIR)/SkippableFrame.o $(PZSTDDIR)/Options.o $(PZSTDDIR)/libzstd.a -o $@$(EXT) $(GTEST_FLAGS) -lgtest -lgtest_main -lpthread
++ $(CXX) $(FLAGS) $@.cpp datagen.o $(PZSTDDIR)/Pzstd.o $(PZSTDDIR)/SkippableFrame.o $(PZSTDDIR)/Options.o $(ZSTDDIR)/libzstd.a -o $@$(EXT) $(GTEST_FLAGS) -lgtest -lgtest_main -lpthread
+
+ .PHONY: test clean
+
+diff -Naur zstd-1.1.0.orig/lib/Makefile zstd-1.1.0.new/lib/Makefile
+--- zstd-1.1.0.orig/lib/Makefile 2016-09-27 22:15:03.000000000 +0000
++++ zstd-1.1.0.new/lib/Makefile 2016-10-06 10:56:25.612493000 +0000
@@ -57,9 +57,9 @@
.PHONY: default all clean install uninstall
diff --git a/zstd.spec b/zstd.spec
index 873fe36..d5e4fbe 100644
--- a/zstd.spec
+++ b/zstd.spec
@@ -1,16 +1,17 @@
Name: zstd
Version: 1.1.0
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Zstd compression library
License: BSD and MIT
URL: https://github.com/facebook/zstd
Source0: https://github.com/facebook/zstd/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
-# Proposed upstream at https://github.com/pixelb/zstd/pull/1
+# Proposed upstream at https://github.com/facebook/zstd/pull/404
Patch0: zstd-lib-no-rebuild.patch
+Patch1: pzstd.1.patch
-BuildRequires: gcc
+BuildRequires: gcc gtest-devel
%description
Zstd, short for Zstandard, is a fast lossless compression algorithm,
@@ -34,27 +35,34 @@ Header files for Zstd library.
%setup -q
find -name .gitignore -delete
%patch0 -p1
+%patch1 -p1
%build
%{?__global_ldflags:LDFLAGS="${LDFLAGS:-%__global_ldflags}" ; export LDFLAGS ;}
for dir in lib programs; do
CFLAGS="%{optflags}" %make_build -C "$dir"
done
+CXXFLAGS="%{optflags}" %make_build -C 'contrib/pzstd'
%check
%{?__global_ldflags:LDFLAGS="${LDFLAGS:-%__global_ldflags}" ; export LDFLAGS ;}
CFLAGS="%{optflags}" make -C tests test-zstd
+CFLAGS="%{optflags}" CXXFLAGS="%{optflags}" make -C contrib/pzstd test
%install
%make_install PREFIX=%{_prefix} LIBDIR=%{_libdir}
+install -D -m755 contrib/pzstd/pzstd %{buildroot}/usr/bin/pzstd
+install -D -m644 programs/%{name}.1 %{buildroot}/%{_mandir}/man1/p%{name}.1
rm %{buildroot}/%{_libdir}/libzstd.a
%files
%doc NEWS README.md
%{_bindir}/%{name}
+%{_bindir}/p%{name}
%{_bindir}/un%{name}
%{_bindir}/%{name}cat
%{_mandir}/man1/%{name}.1*
+%{_mandir}/man1/p%{name}.1*
%{_mandir}/man1/un%{name}.1*
%{_mandir}/man1/%{name}cat.1*
%license LICENSE PATENTS
@@ -74,6 +82,9 @@ rm %{buildroot}/%{_libdir}/libzstd.a
%postun -n lib%{name} -p /sbin/ldconfig
%changelog
+* Thu Oct 6 2016 Pádraig Brady