summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2018-07-02 20:09:50 +0200
committerTobias Geerinckx-Rice <me@tobias.gr>2018-07-02 20:19:07 +0200
commita62764bdbbc3a2bdb50047f861261bcbfd0abd77 (patch)
tree567eb411a748980fdbc41c61d546d8584aa06765 /gnu/packages
parent8ef7ecf4696846e747570a0b66226bf3accf9d76 (diff)
downloadguix-a62764bdbbc3a2bdb50047f861261bcbfd0abd77.tar.gz
gnu: zstd: Update to 1.3.5.
* gnu/packages/compression.scm (zstd): Update to 1.3.5.
[source]: Add two patches to make the test suite pass.
* gnu/packages/patches/zstd-fix-stdin-list-without-tty.patch,
gnu/packages/patches/zstd-fix-stdin-list-test.patch: New files.
* gnu/local.mk (dist_patch_DATA): Add both.
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/compression.scm8
-rw-r--r--gnu/packages/patches/zstd-fix-stdin-list-test.patch30
-rw-r--r--gnu/packages/patches/zstd-fix-stdin-list-without-tty.patch67
3 files changed, 103 insertions, 2 deletions
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index de3acaedc0..2ca431b2c1 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -1649,7 +1649,7 @@ or junctions, and always follows hard links.")
 (define-public zstd
   (package
     (name "zstd")
-    (version "1.3.4")
+    (version "1.3.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/facebook/zstd/archive/v"
@@ -1657,7 +1657,11 @@ or junctions, and always follows hard links.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1a85sqk4z5b2jfp7fqkr38ibql8mdzca32lf4i3bssyjimp1pr4j"))))
+                "1sifbq18p0hc978g0pq8fymrlpzz1fcxqkbxfqk44z6v9jg5bqfn"))
+              ;; Fix a regression that causes the tests to fail.  Both patches
+              ;; have been merged upstream and will be part of the next release.
+              (patches (search-patches "zstd-fix-stdin-list-without-tty.patch"
+                                       "zstd-fix-stdin-list-test.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/patches/zstd-fix-stdin-list-test.patch b/gnu/packages/patches/zstd-fix-stdin-list-test.patch
new file mode 100644
index 0000000000..a10355448c
--- /dev/null
+++ b/gnu/packages/patches/zstd-fix-stdin-list-test.patch
@@ -0,0 +1,30 @@
+From 8e7bdc18d62632adcee029b2f8f5013d11549dd7 Mon Sep 17 00:00:00 2001
+From: "W. Felix Handte" <w@felixhandte.com>
+Date: Fri, 29 Jun 2018 16:31:22 -0400
+Subject: [PATCH] Fix Tests of `--list` Behavior with `stdin`
+
+---
+ tests/playTests.sh | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/tests/playTests.sh b/tests/playTests.sh
+index 09a7377f2..aa5535d59 100755
+--- a/tests/playTests.sh
++++ b/tests/playTests.sh
+@@ -731,8 +731,14 @@ $ECHO "\n===>  zstd --list/-l error detection tests "
+ ! $ZSTD -lv tmp1*
+ ! $ZSTD --list -v tmp2 tmp12.zst
+ 
+-$ECHO "\n===>  zstd --list/-l exits 1 when stdin is piped in"
+-! echo "piped STDIN" | $ZSTD --list
++$ECHO "\n===>  zstd --list/-l errors when presented with stdin / no files"
++! $ZSTD -l
++! $ZSTD -l -
++! $ZSTD -l < tmp1.zst
++! $ZSTD -l - < tmp1.zst
++! $ZSTD -l - tmp1.zst
++! $ZSTD -l - tmp1.zst < tmp1.zst
++$ZSTD -l tmp1.zst < tmp1.zst # but doesn't error just because stdin is not a tty
+ 
+ $ECHO "\n===>  zstd --list/-l test with null files "
+ ./datagen -g0 > tmp5
diff --git a/gnu/packages/patches/zstd-fix-stdin-list-without-tty.patch b/gnu/packages/patches/zstd-fix-stdin-list-without-tty.patch
new file mode 100644
index 0000000000..47fa3e59a7
--- /dev/null
+++ b/gnu/packages/patches/zstd-fix-stdin-list-without-tty.patch
@@ -0,0 +1,67 @@
+From 712a9fd9721c314f4b0238577d803b012845f6d2 Mon Sep 17 00:00:00 2001
+From: "W. Felix Handte" <w@felixhandte.com>
+Date: Fri, 29 Jun 2018 15:33:44 -0400
+Subject: [PATCH] Allow Invoking `zstd --list` When `stdin` is not a `tty`
+
+Also now returns an error when no inputs are given.
+
+New proposed behavior:
+
+```
+felix@odin:~/prog/zstd (list-stdin-check)$ ./zstd -l; echo $?
+No files given
+1
+felix@odin:~/prog/zstd (list-stdin-check)$ ./zstd -l Makefile.zst; echo $?
+Frames  Skips  Compressed  Uncompressed  Ratio  Check  Filename
+     1      0     3.08 KB      10.92 KB  3.544  XXH64  Makefile.zst
+0
+felix@odin:~/prog/zstd (list-stdin-check)$ ./zstd -l <Makefile.zst; echo $?
+zstd: --list does not support reading from standard input
+No files given
+1
+felix@odin:~/prog/zstd (list-stdin-check)$ ./zstd -l Makefile.zst <Makefile.zst; echo $?
+Frames  Skips  Compressed  Uncompressed  Ratio  Check  Filename
+     1      0     3.08 KB      10.92 KB  3.544  XXH64  Makefile.zst
+0
+felix@odin:~/prog/zstd (list-stdin-check)$
+```
+---
+ programs/fileio.c | 16 ++++++++++------
+ 1 file changed, 10 insertions(+), 6 deletions(-)
+
+diff --git a/programs/fileio.c b/programs/fileio.c
+index 0175b3163..b4eed28d1 100644
+--- a/programs/fileio.c
++++ b/programs/fileio.c
+@@ -2017,21 +2017,25 @@ static int FIO_listFile(fileInfo_t* total, const char* inFileName, int displayLe
+ }
+ 
+ int FIO_listMultipleFiles(unsigned numFiles, const char** filenameTable, int displayLevel){
+-
+-    if (!IS_CONSOLE(stdin)) {
+-        DISPLAYOUT("zstd: --list does not support reading from standard input\n");
+-        return 1;
++    unsigned u;
++    for (u=0; u<numFiles;u++) {
++        if (!strcmp (filenameTable[u], stdinmark)) {
++            DISPLAYOUT("zstd: --list does not support reading from standard input\n");
++            return 1;
++        }
+     }
+ 
+     if (numFiles == 0) {
++        if (!IS_CONSOLE(stdin)) {
++            DISPLAYOUT("zstd: --list does not support reading from standard input\n");
++        }
+         DISPLAYOUT("No files given\n");
+-        return 0;
++        return 1;
+     }
+     if (displayLevel <= 2) {
+         DISPLAYOUT("Frames  Skips  Compressed  Uncompressed  Ratio  Check  Filename\n");
+     }
+     {   int error = 0;
+-        unsigned u;
+         fileInfo_t total;
+         memset(&total, 0, sizeof(total));
+         total.usesCheck = 1;