[packages/tar] - rel 2; backport zstd support from upstream

arekm arekm at pld-linux.org
Mon Aug 6 10:31:57 CEST 2018


commit e64d3ec0c99c4dbc4392d901a326bc8a073eb228
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Mon Aug 6 10:31:50 2018 +0200

    - rel 2; backport zstd support from upstream

 tar.spec   |   4 +-
 zstd.patch | 199 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 202 insertions(+), 1 deletion(-)
---
diff --git a/tar.spec b/tar.spec
index 96b9edd..a7ae6ef 100644
--- a/tar.spec
+++ b/tar.spec
@@ -11,7 +11,7 @@ Summary(pt_BR.UTF-8):	GNU Tape Archiver (tar)
 Summary(tr.UTF-8):	Yaygın kullanılan yedekleyici
 Name:		tar
 Version:	1.30
-Release:	1
+Release:	2
 Epoch:		1
 License:	GPL v3+
 Group:		Applications/Archiving
@@ -21,6 +21,7 @@ Source1:	http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-ma
 # Source1-md5:	4e4b1655fe42c27a4eb5d7bcd82e74ac
 Patch0:		%{name}-info.patch
 Patch1:		%{name}-zero-block.patch
+Patch2:		zstd.patch
 URL:		http://www.gnu.org/software/tar/tar.html
 BuildRequires:	autoconf >= 2.63
 BuildRequires:	automake >= 1:1.11
@@ -140,6 +141,7 @@ z pakietu dump.
 %setup -q
 %patch0 -p1
 %patch1 -p1
+%patch2 -p1
 
 %{__rm} po/stamp-po
 
diff --git a/zstd.patch b/zstd.patch
new file mode 100644
index 0000000..5421723
--- /dev/null
+++ b/zstd.patch
@@ -0,0 +1,199 @@
+From 3d45373d3b192d7342d49524193497598818d36d Mon Sep 17 00:00:00 2001
+From: Adam Borowski <kilobyte at angband.pl>
+Date: Sun, 18 Mar 2018 10:24:13 +0200
+Subject: Add support for zstd compression
+
+* configure.ac (zstd): Register compression program.
+* doc/tar.1: Mention --zstd.
+* doc/tar.texi: Document zstd support.
+* src/buffer.c: Register zstd compression.
+* src/suffix.c: Add suffixes zst and tzst.
+* src/tar.c: New compression option --zstd.
+---
+ configure.ac   |  1 +
+ doc/.gitignore |  1 +
+ doc/tar.1      |  4 ++++
+ doc/tar.texi   | 29 +++++++++++++++++++++--------
+ src/buffer.c   |  5 ++++-
+ src/suffix.c   |  2 ++
+ src/tar.c      | 12 +++++++++++-
+ 7 files changed, 44 insertions(+), 10 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0bddbeb..354e787 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -250,6 +250,7 @@ TAR_COMPR_PROGRAM(lzip)
+ TAR_COMPR_PROGRAM(lzma)
+ TAR_COMPR_PROGRAM(lzop)
+ TAR_COMPR_PROGRAM(xz)
++TAR_COMPR_PROGRAM(zstd)
+ 
+ AC_MSG_CHECKING(for default archive format)
+ 
+diff --git a/doc/tar.1 b/doc/tar.1
+index ddf4fdc..0663525 100644
+--- a/doc/tar.1
++++ b/doc/tar.1
+@@ -831,6 +831,10 @@ Filter the archive through
+ \fB\-Z\fR, \fB\-\-compress\fR, \fB\-\-uncompress\fR
+ Filter the archive through
+ .BR compress (1).
++.TP
++\fB\-\-zstd\fR
++Filter the archive through
++.BR zstd (1).
+ .SS Local file selection
+ .TP
+ \fB\-\-add\-file\fR=\fIFILE\fR
+diff --git a/doc/tar.texi b/doc/tar.texi
+index a56b9fb..1362216 100644
+--- a/doc/tar.texi
++++ b/doc/tar.texi
+@@ -3713,6 +3713,9 @@ only attributes from the user namespace.
+ @itemx -J
+ Use @command{xz} for compressing or decompressing the archives.  @xref{gzip}.
+ 
++ at item --zstd
++Use @command{zstd} for compressing or decompressing the archives.  @xref{gzip}.
++
+ @end table
+ 
+ @node Short Option Summary
+@@ -9520,6 +9523,7 @@ switch to @samp{posix}.
+ @cindex lzma
+ @cindex lzop
+ @cindex compress
++ at cindex zstd
+ @GNUTAR{} is able to create and read compressed archives.  It supports
+ a wide variety of compression programs, namely: @command{gzip},
+ @command{bzip2}, @command{lzip}, @command{lzma}, @command{lzop},
+@@ -9530,14 +9534,21 @@ compression programs at footnote{It also had patent problems in the past.}.
+ 
+ Creating a compressed archive is simple: you just specify a
+ @dfn{compression option} along with the usual archive creation
+-commands.  The compression option is @option{-z} (@option{--gzip}) to
+-create a @command{gzip} compressed archive, @option{-j}
+-(@option{--bzip2}) to create a @command{bzip2} compressed archive,
+- at option{--lzip} to create an @asis{lzip} compressed archive,
+- at option{-J} (@option{--xz}) to create an @asis{XZ} archive,
+- at option{--lzma} to create an @asis{LZMA} compressed
+-archive, @option{--lzop} to create an @asis{LZOP} archive, and
+- at option{-Z} (@option{--compress}) to use @command{compress} program.
++commands.  Available compression options are summarized in the
++table below:
++
++ at multitable @columnfractions 0.4 0.2 0.4
++ at headitem Long            @tab Short       @tab Archive format
++ at item @option{--gzip}     @tab @option{-z} @tab @command{gzip}
++ at item @option{--bzip2}    @tab @option{-j} @tab @command{bzip2}
++ at item @option{--xz}       @tab @option{-J} @tab @command{xz}
++ at item @option{--lzip}     @tab             @tab @command{lzip}
++ at item @option{--lzma}     @tab             @tab @command{lzma}
++ at item @option{--lzop}     @tab             @tab @command{lzop}
++ at item @option{--zstd}     @tab             @tab @command{zstd}
++ at item @option{--compress} @tab @option{-Z} @tab @command{compress}
++ at end multitable
++
+ For example:
+ 
+ @smallexample
+@@ -9730,6 +9741,8 @@ suffix.  The following suffixes are recognized:
+ @item @samp{.tlz} @tab @command{lzma}
+ @item @samp{.lzo} @tab @command{lzop}
+ @item @samp{.xz} @tab @command{xz}
++ at item @samp{.zst} @tab @command{zstd}
++ at item @samp{.tzst} @tab @command{zstd}
+ @end multitable
+ 
+ @anchor{use-compress-program}
+diff --git a/src/buffer.c b/src/buffer.c
+index 51f299f..063e1be 100644
+--- a/src/buffer.c
++++ b/src/buffer.c
+@@ -281,7 +281,8 @@ enum compress_type {
+   ct_lzip,
+   ct_lzma,
+   ct_lzop,
+-  ct_xz
++  ct_xz,
++  ct_zstd
+ };
+ 
+ static enum compress_type archive_compression_type = ct_none;
+@@ -310,6 +311,7 @@ static struct zip_magic const magic[] = {
+   { ct_lzma,     6, "\xFFLZMA" },
+   { ct_lzop,     4, "\211LZO" },
+   { ct_xz,       6, "\xFD" "7zXZ" },
++  { ct_zstd,     4, "\x28\xB5\x2F\xFD" },
+ };
+ 
+ #define NMAGIC (sizeof(magic)/sizeof(magic[0]))
+@@ -325,6 +327,7 @@ static struct zip_program zip_program[] = {
+   { ct_lzma,     XZ_PROGRAM,       "-J" },
+   { ct_lzop,     LZOP_PROGRAM,     "--lzop" },
+   { ct_xz,       XZ_PROGRAM,       "-J" },
++  { ct_zstd,     ZSTD_PROGRAM,     "--zstd" },
+   { ct_none }
+ };
+ 
+diff --git a/src/suffix.c b/src/suffix.c
+index 47027e7..66b5694 100644
+--- a/src/suffix.c
++++ b/src/suffix.c
+@@ -46,6 +46,8 @@ static struct compression_suffix compression_suffixes[] = {
+   { S(lzo,  LZOP) },
+   { S(xz,   XZ) },
+   { S(txz,  XZ) }, /* Slackware */
++  { S(zst,  ZSTD) },
++  { S(tzst, ZSTD) },
+   { NULL }
+ #undef S
+ #undef __CAT2__
+diff --git a/src/tar.c b/src/tar.c
+index 3f844a8..02fa561 100644
+--- a/src/tar.c
++++ b/src/tar.c
+@@ -348,7 +348,8 @@ enum
+   WARNING_OPTION,
+   XATTR_OPTION,
+   XATTR_EXCLUDE,
+-  XATTR_INCLUDE
++  XATTR_INCLUDE,
++  ZSTD_OPTION,
+ };
+ 
+ static char const doc[] = N_("\
+@@ -682,6 +683,7 @@ static struct argp_option options[] = {
+   {"lzma", LZMA_OPTION, 0, 0, NULL, GRID+1 },
+   {"lzop", LZOP_OPTION, 0, 0, NULL, GRID+1 },
+   {"xz", 'J', 0, 0, NULL, GRID+1 },
++  {"zstd", ZSTD_OPTION, 0, 0, NULL, GRID+1 },
+ #undef GRID
+ 
+ #define GRID 100
+@@ -1129,6 +1131,10 @@ tar_help_filter (int key, const char *text, void *input)
+       s = xasprintf (_("filter the archive through %s"), XZ_PROGRAM);
+       break;
+ 
++    case ZSTD_OPTION:
++      s = xasprintf (_("filter the archive through %s"), ZSTD_PROGRAM);
++      break;
++
+     case ARGP_KEY_HELP_EXTRA:
+       {
+ 	const char *tstr;
+@@ -1650,6 +1656,10 @@ parse_opt (int key, char *arg, struct argp_state *state)
+       set_use_compress_program_option (COMPRESS_PROGRAM, args->loc);
+       break;
+ 
++    case ZSTD_OPTION:
++      set_use_compress_program_option (ZSTD_PROGRAM, args->loc);
++      break;
++
+     case ATIME_PRESERVE_OPTION:
+       atime_preserve_option =
+ 	(arg
+-- 
+cgit v1.0-41-gc330
+
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/tar.git/commitdiff/e64d3ec0c99c4dbc4392d901a326bc8a073eb228



More information about the pld-cvs-commit mailing list