Import libzstd_1.3.8+dfsg-3+deb10u2.debian.tar.xz
authorÉtienne Mollier <etienne.mollier@mailoo.org>
Thu, 18 Feb 2021 11:59:48 +0000 (11:59 +0000)
committerÉtienne Mollier <etienne.mollier@mailoo.org>
Thu, 18 Feb 2021 11:59:48 +0000 (11:59 +0000)
[dgit import tarball libzstd 1.3.8+dfsg-3+deb10u2 libzstd_1.3.8+dfsg-3+deb10u2.debian.tar.xz]

24 files changed:
README.Debian [new file with mode: 0644]
README.source [new file with mode: 0644]
changelog [new file with mode: 0644]
compat [new file with mode: 0644]
control [new file with mode: 0644]
copyright [new file with mode: 0644]
libzstd-dev.examples [new file with mode: 0644]
libzstd1.symbols [new file with mode: 0644]
patches/0006-Use-bash-for-test-script-portablitity.patch [new file with mode: 0644]
patches/0008-Address-embedded-zlib.patch [new file with mode: 0644]
patches/0013-skip-memory-greedy-tests.patch [new file with mode: 0644]
patches/0014-Reproducible-build.patch [new file with mode: 0644]
patches/0015-Skip-dev-random-tests-on-hurd.patch [new file with mode: 0644]
patches/0016-fix-zstdgrep-exit-code.patch [new file with mode: 0644]
patches/0017-fix-file-permissions-on-compression.patch [new file with mode: 0644]
patches/series [new file with mode: 0644]
rules [new file with mode: 0755]
source/format [new file with mode: 0644]
tests/control [new file with mode: 0644]
watch [new file with mode: 0644]
zstd.docs [new file with mode: 0644]
zstd.install [new file with mode: 0644]
zstd.lintian-overrides [new file with mode: 0644]
zstd.manpages [new file with mode: 0644]

diff --git a/README.Debian b/README.Debian
new file mode 100644 (file)
index 0000000..5341295
--- /dev/null
@@ -0,0 +1,6 @@
+1.2.0-1
+-------
+
+some patches have been removed, makefile had a lot of changes,
+the long running tests skip patch has been removed but may need
+further investigation to see if it is still needed.
diff --git a/README.source b/README.source
new file mode 100644 (file)
index 0000000..50aef85
--- /dev/null
@@ -0,0 +1 @@
+The examples were removed from the upstream tarball due to #869581
diff --git a/changelog b/changelog
new file mode 100644 (file)
index 0000000..d3e8325
--- /dev/null
+++ b/changelog
@@ -0,0 +1,317 @@
+libzstd (1.3.8+dfsg-3+deb10u2) buster-security; urgency=high
+
+  * Team upload.
+  * The previous fix-file-permissions-on-compression.patch almost closed the
+    window of the race condition, but not completely.  This patch, adapted from
+    upstream, 0017-fix-file-permissions-on-compression.patch, replaces the
+    previous attempt by erasing the umask before opening the destination file.
+    Closes: #982519
+
+ -- Étienne Mollier <etienne.mollier@mailoo.org>  Thu, 18 Feb 2021 12:59:48 +0100
+
+libzstd (1.3.8+dfsg-3+deb10u1) buster-security; urgency=high
+
+  * Team upload.
+  * When a file with restricted permissions is compressed, the resulting file
+    inherits the umask of the user for the time of the compression.  This will
+    usually lead to surprising and too relaxed permissions.  This update adds
+    fix-file-permissions-on-compression.patch to make sure the compressed file
+    is not group or world readable for the duration of the compression.
+    Closes: #981404
+
+ -- Étienne Mollier <etienne.mollier@mailoo.org>  Mon, 01 Feb 2021 20:36:53 +0100
+
+libzstd (1.3.8+dfsg-3) unstable; urgency=medium
+
+  * Add patch fixing zstdgrep exit code when operating on files
+    Closes: #918390
+
+ -- Alexandre Mestiashvili <mestia@debian.org>  Sat, 05 Jan 2019 23:42:20 +0100
+
+libzstd (1.3.8+dfsg-2) unstable; urgency=medium
+
+  * Add patch skipping tests failing on GNU/Hurd when writing to special files
+    such as /dev/zero or /dev/random
+  * Upload to unstable
+
+ -- Alexandre Mestiashvili <mestia@debian.org>  Thu, 03 Jan 2019 14:47:31 +0100
+
+libzstd (1.3.8+dfsg-1) experimental; urgency=medium
+
+  * Add .circleci to Files-Excluded
+  * New upstream version 1.3.8+dfsg
+  * Update docs, install all md files and CHANGELOG
+  * Bumpt Policy to 4.3.0
+  * Refresh and drop applied by upstream patches
+  * Update symbols file for libzstd1,
+    removed! 6 symbols from experimental API, but no reverse dependencies
+    of libzstd1 seem to use any of the removed symbols
+    See also: https://github.com/facebook/zstd/issues/1111
+  * Call dh_makeshlibs with -V 'libzstd1 (>= 1.3.8)', since this version
+    introduced new public symbols
+  * Update zstd.lintian-overrides, zstd{grep,less} got man pages
+
+ -- Alexandre Mestiashvili <mestia@debian.org>  Mon, 31 Dec 2018 15:19:12 +0100
+
+libzstd (1.3.5+dfsg-2) unstable; urgency=medium
+
+  * Add udeb package for libzstd1, Closes: #908834
+  * Bump Policy to 4.2.1
+  * Call dh_makeshlibs with -V 'libzstd1 (>= 1.3.5)', since this version
+    introduced new public symbols
+
+ -- Alexandre Mestiashvili <mestia@debian.org>  Fri, 12 Oct 2018 08:00:27 +0000
+
+libzstd (1.3.5+dfsg-1) unstable; urgency=medium
+
+  [ Alexandre Mestiashvili ]
+  * Add attribuition for the patch
+  * Fix varying number of threads in pzstd man page, making build reproducible
+  * New upstream version 1.3.5+dfsg
+  * Refresh and drop patches applied by upstream
+  * Update d/zstd.lintian-overrides
+
+  [ Balint Reczey ]
+  * Update symbols file
+  * Allow Invoking `zstd --list` When `stdin` is not a `tty`
+
+ -- Alexandre Mestiashvili <mestia@debian.org>  Fri, 21 Sep 2018 18:46:28 +0000
+
+libzstd (1.3.4+dfsg-3) unstable; urgency=medium
+
+  * Add patch provided by Chris Lamb making build reproducible,
+    Closes: #897904
+  * Update patch skipping heavy tests on mips(el) and hurd
+  * Add patch fixing tests on GNU/Hurd
+  * Drop not needed override_dh_auto_test
+
+ -- Alexandre Mestiashvili <mestia@debian.org>  Wed, 09 May 2018 19:25:10 +0200
+
+libzstd (1.3.4+dfsg-2) unstable; urgency=medium
+
+  * Add liblzma-dev and liblz4-dev to build-depends to enable xz and lz4 support
+  * Patch tests to avoid FTBFS on mips(el) architectures
+  * Use help2man for pzstd man page, drop patches providing obsolete man pages
+  * Update zstd.lintian-overrides, add more binaries without man pages
+  * Add override for dh_auto_test, on hurd run only simple tests
+  * Update 0012-typos.patch, forward to upstream
+
+ -- Alexandre Mestiashvili <mestia@debian.org>  Wed, 02 May 2018 15:43:16 +0200
+
+libzstd (1.3.4+dfsg-1) unstable; urgency=medium
+
+  * Team upload.
+
+  [ Alexandre Mestiashvili ]
+  * New upstream version 1.3.4+dfsg
+  * Refresh patches, remove indexes
+  * Update d/libzstd1.symbols fixing minimal-version
+  * Update d/copyright, starting from 1.3.1 patent claim is removed
+  * Add comments to unstable symbols
+
+  [ Mattia Rizzolo ]
+  * Update copyright after the new upstream release.
+
+  [ Sascha Steinbiss ]
+  * Remove obsolete patch.
+  * Reword patch description.
+
+ -- Alexandre Mestiashvili <mestia@debian.org>  Wed, 25 Apr 2018 10:39:39 +0200
+
+libzstd (1.3.3+dfsg-2) unstable; urgency=medium
+
+  * Team upload.
+
+  [ Dimitri John Ledkov ]
+  * Mark -dev and library packages Multi-Arch same.
+  * Update Vcs fields for salsa.
+  * Cleanup unused patches.
+
+  [ Andreas Hasenack ]
+  * d/rules: also run the clean Makefile target in the pzstd directory.
+
+  [ Alexandre Mestiashvili ]
+  * d/control: Update my email address.
+  * d/rules:
+    + Disable tests if DEB_BUILD_OPTIONS set to nocheck.
+    + Use dh_auto_build instead of $(MAKE) to avoid cross build failures.
+      Thanks to Helmut Grohne for the patch.  Closes: #895925
+    + Use dh_auto_clean instead of $(MAKE).
+
+  [ Adam Borowski ]
+  * Enable build on riscv64.  Closes: #895259
+
+  [ Mattia Rizzolo ]
+  * Bump debhelper compat level to 11.
+  * Bump Standards-Version to 4.1.4, no changes needed.
+  * Remove patch skipping a test on hurd-i386: allegedly the underlying issue
+    has been fixed instead.
+
+ -- Mattia Rizzolo <mattia@debian.org>  Sat, 21 Apr 2018 11:26:59 +0200
+
+libzstd (1.3.3+dfsg-1) unstable; urgency=medium
+
+  * Update File-Excluded list in d/copyright
+  * New upstream version 1.3.3+dfsg, Closes: #883816
+  * Refresh patches
+  * Add zlib1g-dev to Build-Deps to enable gzip support in zstd, Closes: #883827
+
+ -- Alexandre Mestiashvili <alex@biotec.tu-dresden.de>  Thu, 21 Dec 2017 14:25:26 +0100
+
+libzstd (1.3.2+dfsg2-2) unstable; urgency=medium
+
+  * Team upload.
+  * Do not depend libzstd in zstd package since static linking seems
+    to be the preferred way to create the executable
+    Closes: #884876
+  * Standards-Version: 4.1.2
+
+ -- Andreas Tille <tille@debian.org>  Thu, 21 Dec 2017 11:43:12 +0100
+
+libzstd (1.3.2+dfsg2-1) unstable; urgency=medium
+
+  * Update d/copyright:
+    - don't strip examples from source tarball
+    - note BSD and GPL-2 license for examples
+  * New upstream version 1.3.2+dfsg2
+    Closes: #883271
+  * Drop override_dh_auto_clean in d/rules as examples are back
+  * Drop 0010-do_not_make_examples.patch as examples are back
+  * Remove ruby-ronn from Build-Depends, as it renders libzstd package
+    not installable on many architectures.
+    Use man page shipped by upstream
+  * Apply cme fix dpkg, reformat 0010-do-not.. patch header,
+    fix VCS-Browser field
+  * Add override for manpage-has-errors-from-man lintian warning
+  * Install examples with libzstd-dev
+
+ -- Alexandre Mestiashvili <alex@biotec.tu-dresden.de>  Fri, 01 Dec 2017 17:18:39 +0100
+
+libzstd (1.3.2+dfsg1-1) unstable; urgency=medium
+
+  [ Alexandre Mestiashvili ]
+  * Update Files-Excluded section in d/copyright
+  * New upstream version 1.3.2+dfsg1
+  * Update d/rules:
+    - trick dh_auto_clean with empty exmaples dir
+    - force man page generation
+  * Add symbols file for libzstd1
+  * Add 0011-skip-long-running-tests_on_hurd.patch fixing tests on gnu hurd
+  * Add d/patches/0012-typos.patch fixing a typo
+  * Enable autopkgtests via d/tests/control
+  * Override lintian's complain about missing man pages
+  * Add myself to uploaders
+  * Add ruby-ronn to build-deps, needed for man page generation
+
+  [ Andreas Tille ]
+  * d/watch: Fix version mangling
+
+ -- Alexandre Mestiashvili <alex@biotec.tu-dresden.de>  Thu, 30 Nov 2017 23:32:41 +0100
+
+libzstd (1.3.2+dfsg-1) unstable; urgency=medium
+
+  * Team upload
+  * New upstream version
+    Closes: #881187
+  * Standards-Version: 4.1.1
+
+ -- Andreas Tille <tille@debian.org>  Thu, 09 Nov 2017 07:55:32 +0100
+
+libzstd (1.3.1+dfsg-2) unstable; urgency=medium
+
+  * Team upload
+  * Follow hint given by James Cowgill to recude number of threads
+    on 32Bit MIPS architecture
+    Closes: #876416
+
+ -- Andreas Tille <tille@debian.org>  Fri, 22 Sep 2017 15:29:35 +0200
+
+libzstd (1.3.1+dfsg-1) unstable; urgency=medium
+
+  * Team upload
+  * New upstream version
+  * Exclude examples from upstream tarball
+    Closes: #869581
+  * debhelper 10
+  * cme fix dpkg-control
+  * Standards-Version: 4.1.0 (no changes needed)
+  * Fix copyright
+
+ -- Andreas Tille <tille@debian.org>  Wed, 06 Sep 2017 15:29:29 +0200
+
+libzstd (1.2.0-1) unstable; urgency=medium
+
+  * New upstream release (Closes: #863159).
+
+ -- Olivier Sallou <osallou@debian.org>  Wed, 24 May 2017 11:28:27 +0000
+
+libzstd (1.1.2-1) unstable; urgency=medium
+
+  * Team upload.
+  * New upstream version 1.1.2
+
+ -- Sascha Steinbiss <satta@debian.org>  Sun, 15 Jan 2017 08:08:53 +0000
+
+libzstd (1.1.1-1) unstable; urgency=medium
+
+  * New upstream version 1.1.1 (Closes: #844248)
+  * Whitespace fix to d/control
+  * Ensure hardening flags pass through to compiler by appending to CPPFLAGS
+
+ -- Kevin Murray <kdmfoss@gmail.com>  Sun, 20 Nov 2016 16:12:58 +0100
+
+libzstd (1.1.0-1) unstable; urgency=medium
+
+  * New upstream version 1.1.0 (Closes: #839960)
+  * Change uploader email
+  * Build new pzstd binary, including manpage
+  * Fix miscellaneous issues with d/rules and d/*.install
+  * Move docs from libzstd-dev to the zstd binary
+
+ -- Kevin Murray <kdmfoss@gmail.com>  Sun, 13 Nov 2016 11:23:03 +0000
+
+libzstd (1.0.0-1) unstable; urgency=medium
+
+  * Imported Upstream version 1.0.0 (Closes: #836574)
+  * Bump library package name to libzstd1
+  * Changed project URLs, copyrights after move to facebook.
+  * d/rules: hardening=+all
+
+ -- Kevin Murray <kdmfoss@gmail.com>  Sun, 04 Sep 2016 14:45:24 +1000
+
+libzstd (0.8.0-1) unstable; urgency=medium
+
+  [ Kevin Murray ]
+  * New upstream version (Closes: #834114)
+
+  [ Andreas Tille ]
+  * hardening=+bindnow
+
+ -- Kevin Murray <kdmfoss@gmail.com>  Thu, 21 Jul 2016 10:56:02 +1000
+
+libzstd (0.5.1-1) unstable; urgency=medium
+
+  [ Kevin Murray ]
+  * New upstream version (fixes a FTBFS)
+  * Package pkgconfig file (Closes: #813854)
+  * Fix path to tagged archives in d/watch
+  * Add vcs URLs
+  * Bump to standards version 3.9.7
+
+  [ Mattia Rizzolo ]
+  * debian/rules: Remove a lot of uneeded comments and lines
+
+ -- Kevin Murray <kdmfoss@gmail.com>  Thu, 17 Mar 2016 12:59:04 +0000
+
+libzstd (0.4.7-1) unstable; urgency=low
+
+  * New upstream version
+  * Remove build date encoding to enable reproducible build
+
+ -- Kevin Murray <kdmfoss@gmail.com>  Wed, 03 Feb 2016 11:26:21 +0200
+
+libzstd (0.4.5-1) unstable; urgency=low
+
+  * Initial release (Closes: #806767)
+
+ -- Kevin Murray <kdmfoss@gmail.com>  Tue, 01 Dec 2015 13:54:36 +1100
diff --git a/compat b/compat
new file mode 100644 (file)
index 0000000..b4de394
--- /dev/null
+++ b/compat
@@ -0,0 +1 @@
+11
diff --git a/control b/control
new file mode 100644 (file)
index 0000000..4745e90
--- /dev/null
+++ b/control
@@ -0,0 +1,60 @@
+Source: libzstd
+Maintainer: Debian Med Packaging Team <debian-med-packaging@lists.alioth.debian.org>
+Uploaders: Kevin Murray <kdmfoss@gmail.com>,
+           Olivier Sallou <osallou@debian.org>,
+           Alexandre Mestiashvili <mestia@debian.org>
+Section: libs
+Priority: optional
+Build-Depends: d-shlibs,
+               debhelper (>= 11),
+               help2man,
+               liblz4-dev,
+               liblzma-dev,
+               zlib1g-dev
+Standards-Version: 4.3.0
+Vcs-Browser: https://salsa.debian.org/med-team/libzstd
+Vcs-Git: https://salsa.debian.org/med-team/libzstd.git
+Homepage: https://github.com/facebook/zstd
+
+Package: libzstd-dev
+Architecture: any
+Multi-Arch: same
+Section: libdevel
+Depends: libzstd1 (= ${binary:Version}),
+         ${misc:Depends}
+Description: fast lossless compression algorithm -- development files
+ Zstd, short for Zstandard, is a fast lossless compression algorithm, targeting
+ real-time compression scenarios at zlib-level compression ratio.
+ .
+ This package contains the headers and static library.
+
+Package: libzstd1
+Architecture: any
+Multi-Arch: same
+Section: libs
+Depends: ${misc:Depends},
+         ${shlibs:Depends}
+Description: fast lossless compression algorithm
+ Zstd, short for Zstandard, is a fast lossless compression algorithm, targeting
+ real-time compression scenarios at zlib-level compression ratio.
+ .
+ This package contains the shared library.
+
+Package: zstd
+Architecture: any
+Section: utils
+Depends: ${misc:Depends},
+         ${shlibs:Depends}
+Description: fast lossless compression algorithm -- CLI tool
+ Zstd, short for Zstandard, is a fast lossless compression algorithm, targeting
+ real-time compression scenarios at zlib-level compression ratio.
+ .
+ This package contains the CLI program implementing zstd.
+
+Package: libzstd1-udeb
+Architecture: any
+Section: debian-installer
+Depends: ${misc:Depends},
+         ${shlibs:Depends}
+Package-Type: udeb
+Description: fast lossless compression algorithm library for debian-installer
diff --git a/copyright b/copyright
new file mode 100644 (file)
index 0000000..4242179
--- /dev/null
+++ b/copyright
@@ -0,0 +1,133 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: Zstd
+Source: https://github.com/facebook/zstd
+Files-Excluded: appveyor.yml
+                circle.yml
+                build/*
+                programs/windres/*
+                .travis.yml
+                .buckversion
+                .buckconfig
+                .circleci/*
+
+Files: *
+Copyright: 2013-2018, Yann Collet
+              2016, Przemyslaw Skibinski
+              2016-2018, Facebook, Inc.
+License: BSD-3-clause and GPL-2
+Comment: Starting from 1.3.1 zstd's patent claim is removed
+ see: https://github.com/facebook/zstd/pull/801
+
+Files: zlibWrapper/examples/*.c
+Copyright: 1995-2006, 2011 Jean-loup Gailly
+License: zlib
+
+Files: zlibWrapper/gz*.c
+Copyright: (C) 2004, 2005, 2010, 2011, 2012, 2013 Mark Adler
+License: zlib
+
+License: zlib
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+ .
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+ .
+ 1. The origin of this software must not be misrepresented; you must not
+    claim that you wrote the original software. If you use this software
+    in a product, an acknowledgement in the product documentation would be
+    appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+    misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+Files: contrib/linux-kernel/fs/squashfs/*
+Copyright: 2017 Facebook
+License: GPL-2+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2,
+ or (at your option) any later version.
+ .
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+ .
+ On Debian systems you can find a full copy of the GNU General Public
+ License version 2 at /usr/share/common-licenses/GPL-2.
+
+Files: lib/dictBuilder/divsufsort.*
+Copyright: 2003-2008, Yuta Mori
+License: Expat
+
+Files: examples/*
+Copyright: 2016-present, Yann Collet, Facebook, Inc.
+License: BSD-3-clause and GPL-2
+
+Files: debian/*
+Copyright: 2015-2016 Kevin Murray <spam@kdmurray.id.au>
+License: Expat
+
+License: Expat
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+ .
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+
+License: GPL-2
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License, v2, as
+ published by the Free Software Foundation
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ .
+ On Debian systems, the complete text of the GNU General Public
+ License version 2 can be found in `/usr/share/common-licenses/GPL-2'.
+
+License: BSD-3-clause
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+     * Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+     * Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+     * Neither the name of cereal nor the
+       names of its contributors may be used to endorse or promote products
+       derived from this software without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS 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 RANDOLPH VOORHIES OR SHANE GRANT 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.
diff --git a/libzstd-dev.examples b/libzstd-dev.examples
new file mode 100644 (file)
index 0000000..e39721e
--- /dev/null
@@ -0,0 +1 @@
+examples/*
diff --git a/libzstd1.symbols b/libzstd1.symbols
new file mode 100644 (file)
index 0000000..a0916a3
--- /dev/null
@@ -0,0 +1,204 @@
+libzstd.so.1 libzstd1 #MINVER#
+* Build-Depends-Package: libzstd-dev
+ ZBUFF_compressContinue@Base 1.3.2
+ ZBUFF_compressEnd@Base 1.3.2
+ ZBUFF_compressFlush@Base 1.3.2
+ ZBUFF_compressInit@Base 1.3.2
+ ZBUFF_compressInitDictionary@Base 1.3.2
+ ZBUFF_compressInit_advanced@Base 1.3.2
+ ZBUFF_createCCtx@Base 1.3.2
+ ZBUFF_createCCtx_advanced@Base 1.3.2
+ ZBUFF_createDCtx@Base 1.3.2
+ ZBUFF_createDCtx_advanced@Base 1.3.2
+ ZBUFF_decompressContinue@Base 1.3.2
+ ZBUFF_decompressInit@Base 1.3.2
+ ZBUFF_decompressInitDictionary@Base 1.3.2
+ ZBUFF_freeCCtx@Base 1.3.2
+ ZBUFF_freeDCtx@Base 1.3.2
+ ZBUFF_getErrorName@Base 1.3.2
+ ZBUFF_isError@Base 1.3.2
+ ZBUFF_recommendedCInSize@Base 1.3.2
+ ZBUFF_recommendedCOutSize@Base 1.3.2
+ ZBUFF_recommendedDInSize@Base 1.3.2
+ ZBUFF_recommendedDOutSize@Base 1.3.2
+ ZDICT_addEntropyTablesFromBuffer@Base 1.3.2
+ ZDICT_finalizeDictionary@Base 1.3.2
+ ZDICT_getDictID@Base 1.3.2
+ ZDICT_getErrorName@Base 1.3.2
+ ZDICT_isError@Base 1.3.2
+ ZDICT_optimizeTrainFromBuffer_cover@Base 1.3.2
+ ZDICT_optimizeTrainFromBuffer_fastCover@Base 1.3.8
+ ZDICT_trainFromBuffer@Base 1.3.2
+ ZDICT_trainFromBuffer_cover@Base 1.3.2
+ ZDICT_trainFromBuffer_fastCover@Base 1.3.8
+ ZDICT_trainFromBuffer_legacy@Base 1.3.2
+ ZSTDMT_compressCCtx@Base 1.3.2
+ ZSTDMT_compressStream@Base 1.3.2
+ ZSTDMT_compressStream_generic@Base 1.3.2
+ ZSTDMT_compress_advanced@Base 1.3.2
+ ZSTDMT_createCCtx@Base 1.3.2
+ ZSTDMT_createCCtx_advanced@Base 1.3.2
+ ZSTDMT_endStream@Base 1.3.2
+ ZSTDMT_flushStream@Base 1.3.2
+ ZSTDMT_freeCCtx@Base 1.3.2
+ ZSTDMT_getMTCtxParameter@Base 1.3.5
+ ZSTDMT_initCStream@Base 1.3.2
+ ZSTDMT_initCStream_advanced@Base 1.3.2
+ ZSTDMT_initCStream_usingCDict@Base 1.3.2
+ ZSTDMT_nextInputSizeHint@Base 1.3.8
+ ZSTDMT_resetCStream@Base 1.3.2
+ ZSTDMT_setMTCtxParameter@Base 1.3.2
+ ZSTDMT_sizeof_CCtx@Base 1.3.2
+ ZSTD_CCtxParam_getParameter@Base 1.3.5
+ ZSTD_CCtxParam_setParameter@Base 1.3.2
+ (should only be used when static linking)ZSTD_CCtxParams_init@Base 1.3.4
+ (should only be used when static linking)ZSTD_CCtxParams_init_advanced@Base 1.3.4
+ (should only be used when static linking)ZSTD_CCtxParams_reset@Base 1.3.4
+ ZSTD_CCtx_getParameter@Base 1.3.5
+ ZSTD_CCtx_loadDictionary@Base 1.3.2
+ ZSTD_CCtx_loadDictionary_advanced@Base 1.3.2
+ ZSTD_CCtx_loadDictionary_byReference@Base 1.3.2
+ ZSTD_CCtx_refCDict@Base 1.3.2
+ ZSTD_CCtx_refPrefix@Base 1.3.2
+ ZSTD_CCtx_refPrefix_advanced@Base 1.3.2
+ ZSTD_CCtx_reset@Base 1.3.2
+ ZSTD_CCtx_setParameter@Base 1.3.2
+ ZSTD_CCtx_setParametersUsingCCtxParams@Base 1.3.2
+ ZSTD_CCtx_setPledgedSrcSize@Base 1.3.2
+ ZSTD_CStreamInSize@Base 1.3.2
+ ZSTD_CStreamOutSize@Base 1.3.2
+ ZSTD_DCtx_loadDictionary@Base 1.3.4
+ ZSTD_DCtx_loadDictionary_advanced@Base 1.3.4
+ ZSTD_DCtx_loadDictionary_byReference@Base 1.3.4
+ ZSTD_DCtx_refDDict@Base 1.3.4
+ ZSTD_DCtx_refPrefix@Base 1.3.4
+ ZSTD_DCtx_refPrefix_advanced@Base 1.3.4
+ ZSTD_DCtx_reset@Base 1.3.2
+ ZSTD_DCtx_setFormat@Base 1.3.2
+ ZSTD_DCtx_setMaxWindowSize@Base 1.3.2
+ ZSTD_DCtx_setParameter@Base 1.3.8
+ ZSTD_DStreamInSize@Base 1.3.2
+ ZSTD_DStreamOutSize@Base 1.3.2
+ ZSTD_adjustCParams@Base 1.3.2
+ ZSTD_cParam_getBounds@Base 1.3.8
+ ZSTD_checkCParams@Base 1.3.2
+ ZSTD_compress2@Base 1.3.8
+ ZSTD_compress@Base 1.3.2
+ ZSTD_compressBegin@Base 1.3.2
+ ZSTD_compressBegin_advanced@Base 1.3.2
+ ZSTD_compressBegin_usingCDict@Base 1.3.2
+ ZSTD_compressBegin_usingCDict_advanced@Base 1.3.2
+ ZSTD_compressBegin_usingDict@Base 1.3.2
+ ZSTD_compressBlock@Base 1.3.2
+ ZSTD_compressBound@Base 1.3.2
+ ZSTD_compressCCtx@Base 1.3.2
+ ZSTD_compressContinue@Base 1.3.2
+ ZSTD_compressEnd@Base 1.3.2
+ ZSTD_compressStream2@Base 1.3.8
+ ZSTD_compressStream2_simpleArgs@Base 1.3.8
+ ZSTD_compressStream@Base 1.3.2
+ ZSTD_compress_advanced@Base 1.3.2
+ ZSTD_compress_usingCDict@Base 1.3.2
+ ZSTD_compress_usingCDict_advanced@Base 1.3.2
+ ZSTD_compress_usingDict@Base 1.3.2
+ ZSTD_copyCCtx@Base 1.3.2
+ ZSTD_copyDCtx@Base 1.3.2
+ ZSTD_createCCtx@Base 1.3.2
+ ZSTD_createCCtxParams@Base 1.3.2
+ ZSTD_createCCtx_advanced@Base 1.3.2
+ ZSTD_createCDict@Base 1.3.2
+ ZSTD_createCDict_advanced@Base 1.3.2
+ ZSTD_createCDict_byReference@Base 1.3.2
+ ZSTD_createCStream@Base 1.3.2
+ ZSTD_createCStream_advanced@Base 1.3.2
+ ZSTD_createDCtx@Base 1.3.2
+ ZSTD_createDCtx_advanced@Base 1.3.2
+ ZSTD_createDDict@Base 1.3.2
+ ZSTD_createDDict_advanced@Base 1.3.2
+ ZSTD_createDDict_byReference@Base 1.3.2
+ ZSTD_createDStream@Base 1.3.2
+ ZSTD_createDStream_advanced@Base 1.3.2
+ ZSTD_dParam_getBounds@Base 1.3.8
+ ZSTD_decodingBufferSize_min@Base 1.3.2
+ ZSTD_decompress@Base 1.3.2
+ ZSTD_decompressBegin@Base 1.3.2
+ ZSTD_decompressBegin_usingDDict@Base 1.3.2
+ ZSTD_decompressBegin_usingDict@Base 1.3.2
+ ZSTD_decompressBlock@Base 1.3.2
+ ZSTD_decompressContinue@Base 1.3.2
+ ZSTD_decompressDCtx@Base 1.3.2
+ ZSTD_decompressStream@Base 1.3.2
+ ZSTD_decompressStream_simpleArgs@Base 1.3.8
+ ZSTD_decompress_usingDDict@Base 1.3.2
+ ZSTD_decompress_usingDict@Base 1.3.2
+ ZSTD_endStream@Base 1.3.2
+ ZSTD_estimateCCtxSize@Base 1.3.2
+ ZSTD_estimateCCtxSize_usingCCtxParams@Base 1.3.2
+ ZSTD_estimateCCtxSize_usingCParams@Base 1.3.2
+ ZSTD_estimateCDictSize@Base 1.3.2
+ ZSTD_estimateCDictSize_advanced@Base 1.3.2
+ ZSTD_estimateCStreamSize@Base 1.3.2
+ ZSTD_estimateCStreamSize_usingCCtxParams@Base 1.3.2
+ ZSTD_estimateCStreamSize_usingCParams@Base 1.3.2
+ ZSTD_estimateDCtxSize@Base 1.3.2
+ ZSTD_estimateDDictSize@Base 1.3.2
+ ZSTD_estimateDStreamSize@Base 1.3.2
+ ZSTD_estimateDStreamSize_fromFrame@Base 1.3.2
+ ZSTD_findDecompressedSize@Base 1.3.2
+ ZSTD_findFrameCompressedSize@Base 1.3.2
+ ZSTD_flushStream@Base 1.3.2
+ ZSTD_frameHeaderSize@Base 1.3.2
+ ZSTD_freeCCtx@Base 1.3.2
+ ZSTD_freeCCtxParams@Base 1.3.2
+ ZSTD_freeCDict@Base 1.3.2
+ ZSTD_freeCStream@Base 1.3.2
+ ZSTD_freeDCtx@Base 1.3.2
+ ZSTD_freeDDict@Base 1.3.2
+ ZSTD_freeDStream@Base 1.3.2
+ ZSTD_getBlockSize@Base 1.3.2
+ ZSTD_getCParams@Base 1.3.2
+ ZSTD_getDecompressedSize@Base 1.3.2
+ ZSTD_getDictID_fromDDict@Base 1.3.2
+ ZSTD_getDictID_fromDict@Base 1.3.2
+ ZSTD_getDictID_fromFrame@Base 1.3.2
+ ZSTD_getErrorCode@Base 1.3.2
+ ZSTD_getErrorName@Base 1.3.2
+ ZSTD_getErrorString@Base 1.3.2
+ ZSTD_getFrameContentSize@Base 1.3.2
+ ZSTD_getFrameHeader@Base 1.3.2
+ ZSTD_getFrameHeader_advanced@Base 1.3.5
+ ZSTD_getFrameProgression@Base 1.3.8
+ ZSTD_getParams@Base 1.3.2
+ ZSTD_initCStream@Base 1.3.2
+ ZSTD_initCStream_advanced@Base 1.3.2
+ ZSTD_initCStream_srcSize@Base 1.3.2
+ ZSTD_initCStream_usingCDict@Base 1.3.2
+ ZSTD_initCStream_usingCDict_advanced@Base 1.3.2
+ ZSTD_initCStream_usingDict@Base 1.3.2
+ ZSTD_initDStream@Base 1.3.2
+ ZSTD_initDStream_usingDDict@Base 1.3.2
+ ZSTD_initDStream_usingDict@Base 1.3.2
+ ZSTD_initStaticCCtx@Base 1.3.2
+ ZSTD_initStaticCDict@Base 1.3.2
+ ZSTD_initStaticCStream@Base 1.3.2
+ ZSTD_initStaticDCtx@Base 1.3.2
+ ZSTD_initStaticDDict@Base 1.3.2
+ ZSTD_initStaticDStream@Base 1.3.2
+ ZSTD_insertBlock@Base 1.3.2
+ ZSTD_isError@Base 1.3.2
+ ZSTD_isFrame@Base 1.3.2
+ ZSTD_maxCLevel@Base 1.3.2
+ ZSTD_minCLevel@Base 1.3.8
+ ZSTD_nextInputType@Base 1.3.2
+ ZSTD_nextSrcSizeToDecompress@Base 1.3.2
+ ZSTD_resetCStream@Base 1.3.2
+ ZSTD_resetDStream@Base 1.3.2
+ ZSTD_sizeof_CCtx@Base 1.3.2
+ ZSTD_sizeof_CDict@Base 1.3.2
+ ZSTD_sizeof_CStream@Base 1.3.2
+ ZSTD_sizeof_DCtx@Base 1.3.2
+ ZSTD_sizeof_DDict@Base 1.3.2
+ ZSTD_sizeof_DStream@Base 1.3.2
+ ZSTD_toFlushNow@Base 1.3.8
+ ZSTD_versionNumber@Base 1.3.2
+ ZSTD_versionString@Base 1.3.2
diff --git a/patches/0006-Use-bash-for-test-script-portablitity.patch b/patches/0006-Use-bash-for-test-script-portablitity.patch
new file mode 100644 (file)
index 0000000..962b78c
--- /dev/null
@@ -0,0 +1,16 @@
+From: Kevin Murray <spam@kdmurray.id.au>
+Date: Mon, 14 Nov 2016 11:54:32 +1100
+Subject: Use bash for test script portablitity
+
+---
+ tests/playTests.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- libzstd.orig/tests/playTests.sh
++++ libzstd/tests/playTests.sh
+@@ -1,4 +1,4 @@
+-#!/bin/sh -e
++#!/bin/bash -e
+ die() {
+     $ECHO "$@" 1>&2
diff --git a/patches/0008-Address-embedded-zlib.patch b/patches/0008-Address-embedded-zlib.patch
new file mode 100644 (file)
index 0000000..f0cd6a8
--- /dev/null
@@ -0,0 +1,45 @@
+Description: Do not build zlibWrapper examples against embedded code copies.
+Author: Sascha Steinbiss <satta@debian.org>
+--- libzstd.orig/zlibWrapper/Makefile
++++ libzstd/zlibWrapper/Makefile
+@@ -13,7 +13,7 @@
+ ZSTDLIBDIR = ../lib
+ ZSTDLIBRARY = $(ZSTDLIBDIR)/libzstd.a
+ ZLIBWRAPPER_PATH = .
+-GZFILES = gzclose.o gzlib.o gzread.o gzwrite.o
++#GZFILES = gzclose.o gzlib.o gzread.o gzwrite.o
+ EXAMPLE_PATH = examples
+ PROGRAMS_PATH = ../programs
+ TEST_FILE = ../doc/zstd_compression_format.md
+@@ -70,16 +70,16 @@
+ #.c.o:
+ #     $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
+-minigzip: $(EXAMPLE_PATH)/minigzip.o $(ZLIBWRAPPER_PATH)/zstd_zlibwrapper.o $(GZFILES) $(ZSTDLIBRARY)
++minigzip: $(EXAMPLE_PATH)/minigzip.o $(ZLIBWRAPPER_PATH)/zstd_zlibwrapper.o $(ZSTDLIBRARY)
+       $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $^ $(ZSTDLIBRARY) $(ZLIB_LIBRARY) -o $@
+-minigzip_zstd: $(EXAMPLE_PATH)/minigzip.o $(ZLIBWRAPPER_PATH)/zstdTurnedOn_zlibwrapper.o $(GZFILES) $(ZSTDLIBRARY)
++minigzip_zstd: $(EXAMPLE_PATH)/minigzip.o $(ZLIBWRAPPER_PATH)/zstdTurnedOn_zlibwrapper.o $(ZSTDLIBRARY)
+       $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $^ $(ZSTDLIBRARY) $(ZLIB_LIBRARY) -o $@
+-example: $(EXAMPLE_PATH)/example.o $(ZLIBWRAPPER_PATH)/zstd_zlibwrapper.o $(GZFILES) $(ZSTDLIBRARY)
++example: $(EXAMPLE_PATH)/example.o $(ZLIBWRAPPER_PATH)/zstd_zlibwrapper.o $(ZSTDLIBRARY)
+       $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $^ $(ZLIB_LIBRARY) -o $@
+-example_zstd: $(EXAMPLE_PATH)/example.o $(ZLIBWRAPPER_PATH)/zstdTurnedOn_zlibwrapper.o $(GZFILES) $(ZSTDLIBRARY)
++example_zstd: $(EXAMPLE_PATH)/example.o $(ZLIBWRAPPER_PATH)/zstdTurnedOn_zlibwrapper.o $(ZSTDLIBRARY)
+       $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $^ $(ZLIB_LIBRARY) -o $@
+ fitblk: $(EXAMPLE_PATH)/fitblk.o $(ZLIBWRAPPER_PATH)/zstd_zlibwrapper.o $(ZSTDLIBRARY)
+--- libzstd.orig/zlibWrapper/examples/example.c
++++ libzstd/zlibWrapper/examples/example.c
+@@ -27,7 +27,7 @@
+ /* @(#) $Id$ */
+-#include "zstd_zlibwrapper.h"
++#include "zlib.h"
+ #include <stdio.h>
+ #ifdef STDC
diff --git a/patches/0013-skip-memory-greedy-tests.patch b/patches/0013-skip-memory-greedy-tests.patch
new file mode 100644 (file)
index 0000000..c9d4327
--- /dev/null
@@ -0,0 +1,37 @@
+Subject: Skip memory heavy tests causing FTBFS on mips(el) and hurd buildds
+From: Alex Mestiashvili <mestia@debian.org>
+--- libzstd.orig/tests/playTests.sh
++++ libzstd/tests/playTests.sh
+@@ -900,8 +900,13 @@
+ roundTripTest -g5000000000 -P99 1
+ roundTripTest -g1700000000 -P0 "1 --zstd=strategy=6"   # ensure btlazy2 can survive an overflow rescale
++DEBARCH=$(dpkg-architecture -qDEB_HOST_ARCH)
++if [ "$DEBARCH" != 'hurd-i386' ]
++then
+ fileRoundTripTest -g4193M -P99 1
+-
++else
++  $ECHO "\n**** skip memory greedy tests on $DEBARCH **** "
++fi
+ $ECHO "\n===>   zstd long, long distance matching round-trip tests "
+ roundTripTest -g270000000 "1 --single-thread --long"
+@@ -918,9 +923,14 @@
+     $ECHO "\n===>   zstdmt long round-trip tests "
+     roundTripTest -g80000000 -P99 "19 -T2" " "
+     roundTripTest -g5000000000 -P99 "1 -T2" " "
+-    roundTripTest -g500000000 -P97 "1 -T999" " "
+-    fileRoundTripTest -g4103M -P98 " -T0" " "
+-    roundTripTest -g400000000 -P97 "1 --long=24 -T2" " "
++    if [ "$DEBARCH" != 'mips' -a "$DEBARCH" != 'mipsel' -a "$DEBARCH" != 'hurd-i386' ]
++    then
++        roundTripTest -g500000000 -P97 "1 -T999" " "
++        fileRoundTripTest -g4103M -P98 " -T0" " "
++        roundTripTest -g400000000 -P97 "1 --long=24 -T2" " "
++    else
++        $ECHO "\n**** skip memory greedy tests on $DEBARCH **** "
++    fi
+ else
+     $ECHO "\n**** no multithreading, skipping zstdmt tests **** "
+ fi
diff --git a/patches/0014-Reproducible-build.patch b/patches/0014-Reproducible-build.patch
new file mode 100644 (file)
index 0000000..420059f
--- /dev/null
@@ -0,0 +1,16 @@
+Description: Make the build reproducible
+Author: Chris Lamb <lamby@debian.org>
+Last-Update: 2018-05-04
+Applied-Upstream: https://github.com/facebook/zstd/commit/ef1abd3c071ce42a457404ee2bca6d5bebb87f62
+
+--- libzstd.orig/contrib/pzstd/Options.cpp
++++ libzstd/contrib/pzstd/Options.cpp
+@@ -77,7 +77,7 @@
+   std::fprintf(stderr, "  -p, --processes   #    : number of threads to use for (de)compression (default:<numcpus>)\n");
+   std::fprintf(stderr, "ZSTD options:\n");
+-  std::fprintf(stderr, "  -#                     : # compression level (1-%d, default:%d)\n", kMaxNonUltraCompressionLevel, kDefaultCompressionLevel);
++  std::fprintf(stderr, "  -#                     : # compression level (1-%d, default:<numcpus>)\n", kMaxNonUltraCompressionLevel);
+   std::fprintf(stderr, "  -d, --decompress       : decompression\n");
+   std::fprintf(stderr, "  -o                file : result stored into `file` (only if 1 input file)\n");
+   std::fprintf(stderr, "  -f, --force            : overwrite output without prompting, (de)compress links\n");
diff --git a/patches/0015-Skip-dev-random-tests-on-hurd.patch b/patches/0015-Skip-dev-random-tests-on-hurd.patch
new file mode 100644 (file)
index 0000000..afce81b
--- /dev/null
@@ -0,0 +1,27 @@
+Description: Skip test failing on GNU/Hurd when writing on /dev/zero or
+ /dev/random. On different GNU/Hurd installations writing to either one or
+ another would fail. Currently writing to /dev/random results in the message
+ "Computer bought the farm" and exit status 1
+ See also: https://github.com/facebook/zstd/issues/1116
+From: Alex Mestiashvili <mestia@debian.org>
+--- libzstd.orig/tests/playTests.sh
++++ libzstd/tests/playTests.sh
+@@ -206,6 +206,8 @@
+ test ! -f tmp  # tmp should no longer be present
+ $ZSTD -f -d --rm tmp.zst
+ test ! -f tmp.zst   # tmp.zst should no longer be present
++if [ "$(dpkg-architecture -qDEB_HOST_ARCH)" != 'hurd-i386' ]
++then
+ $ECHO "test : should quietly not remove non-regular file"
+ $ECHO hello > tmp
+ $ZSTD tmp -f -o "$DEVDEVICE" 2>tmplog > "$INTOVOID"
+@@ -214,6 +216,9 @@
+ $ZSTD tmp -f -o "$INTOVOID" 2>&1 | grep -v "Refusing to remove non-regular file"
+ $ECHO "test : --rm on stdin"
+ $ECHO a | $ZSTD --rm > $INTOVOID   # --rm should remain silent
++else
++  $ECHO "\n**** This test on $DEBARCH fails with \"Computer bought the farm\" **** "
++fi
+ rm tmp
+ $ZSTD -f tmp && die "tmp not present : should have failed"
+ test ! -f tmp.zst  # tmp.zst should not be created
diff --git a/patches/0016-fix-zstdgrep-exit-code.patch b/patches/0016-fix-zstdgrep-exit-code.patch
new file mode 100644 (file)
index 0000000..358898e
--- /dev/null
@@ -0,0 +1,23 @@
+Description: Fix zstdgrep exit code when operating on files
+From: Jörg-Volker Peetz <jvpeetz@web.de>
+Forwarded: https://github.com/facebook/zstd/issues/1428
+--- libzstd.orig/programs/zstdgrep
++++ libzstd/programs/zstdgrep
+@@ -113,16 +113,11 @@
+     if [ "${silent}" -lt 1 ] && [ "$#" -gt 1 ]; then
+         grep_args="-H ${grep_args}"
+     fi
+-    CUR_EXIT_CODE=0
+-    EXIT_CODE=1
+     set -f
+     while [ "$#" -gt 0 ]; do
+         # shellcheck disable=SC2086
+         "${zcat}" -fq -- "$1" | "${grep}" --label="${1}" ${grep_args} -- "${pattern}" -
+-        CUR_EXIT_CODE=$?
+-        if [ "${CUR_EXIT_CODE}" -eq 0 ] && [ "${EXIT_CODE}" -ne 1 ]; then
+-            EXIT_CODE=0
+-        fi
++        [ "$?" -ne 0 ] && EXIT_CODE=1
+         shift
+     done
+     set +f
diff --git a/patches/0017-fix-file-permissions-on-compression.patch b/patches/0017-fix-file-permissions-on-compression.patch
new file mode 100644 (file)
index 0000000..8bd99f1
--- /dev/null
@@ -0,0 +1,65 @@
+Description: fix race condition allowing attackers to access destination file
+ This commit addresses https://github.com/facebook/zstd/issues/2491.
+ .
+ Note that a downside of this solution is that it is global: `umask()` affects
+ all file creation calls in the process. I believe this is safe since
+ `fileio.c` functions should only ever be used in the zstd binary, and these
+ are (almost) the only files ever created by zstd, and AIUI they're only
+ created in a single thread. So we can get away with messing with global state.
+ .
+ Note that this doesn't change the permissions of files created by `dibio.c`.
+ I'm not sure what those should be...
+Author: W. Felix Handte <w@felixhandte.com>
+Origin: upstream
+Bug: https://github.com/facebook/zstd/issues/2491
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=982519
+Applied-Upstream: commit:a774c5797399040af62db21d8a9b9769e005430e
+Reviewed-by: Étienne Mollier <etienne.mollier@mailoo.org>
+Last-Update: 2021-02-18
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- libzstd.orig/programs/fileio.c
++++ libzstd/programs/fileio.c
+@@ -481,7 +481,9 @@
+             FIO_remove(dstFileName);
+     }   }
+-    {   FILE* const f = fopen( dstFileName, "wb" );
++    {   const int old_umask = UTIL_umask(0177); /* u-x,go-rwx */
++        FILE* const f = fopen( dstFileName, "wb" );
++        UTIL_umask(old_umask);
+         if (f == NULL)
+             DISPLAYLEVEL(1, "zstd: %s: %s\n", dstFileName, strerror(errno));
+         return f;
+--- libzstd.orig/programs/util.c
++++ libzstd/programs/util.c
+@@ -51,6 +51,15 @@
+     return 1;
+ }
++int UTIL_umask(int mode) {
++#if PLATFORM_POSIX_VERSION > 0
++    return umask(mode);
++#else
++    /* do nothing, fake return value */
++    return mode;
++#endif
++}
++
+ int UTIL_setFileStat(const char *filename, stat_t *statbuf)
+ {
+     int res = 0;
+--- libzstd.orig/programs/util.h
++++ libzstd/programs/util.h
+@@ -181,6 +181,11 @@
+ U64 UTIL_getTotalFileSize(const char* const * const fileNamesTable, unsigned nbFiles);
++/**
++ * Wraps umask(). Does nothing when the platform doesn't have that concept.
++ */
++int UTIL_umask(int mode);
++
+ /*
+  * A modified version of realloc().
+  * If UTIL_realloc() fails the original block is freed.
diff --git a/patches/series b/patches/series
new file mode 100644 (file)
index 0000000..9a0b6bb
--- /dev/null
@@ -0,0 +1,7 @@
+0006-Use-bash-for-test-script-portablitity.patch
+0008-Address-embedded-zlib.patch
+0013-skip-memory-greedy-tests.patch
+0014-Reproducible-build.patch
+0015-Skip-dev-random-tests-on-hurd.patch
+0016-fix-zstdgrep-exit-code.patch
+0017-fix-file-permissions-on-compression.patch
diff --git a/rules b/rules
new file mode 100755 (executable)
index 0000000..fa3cb4f
--- /dev/null
+++ b/rules
@@ -0,0 +1,50 @@
+#!/usr/bin/make -f
+
+export DH_VERBOSE=1
+
+DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
+export DEB_BUILD_MAINT_OPTIONS=hardening=+all
+
+# Upstream's makefiles will respect PREFIX, and this means we avoid a patch
+export PREFIX=/usr
+
+HELP2MAN = help2man --no-info --help-option="'-h'" --no-discard-stderr
+mandir := $(CURDIR)/debian/zstd/usr/share/man/man1
+
+%:
+       dh $@
+
+DH_AUTO_CONFIGURE_OPTS :=
+ifneq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
+       DH_AUTO_CONFIGURE_OPTS += -DZSTD_BUILD_TESTS:BOOL=OFF
+endif
+
+override_dh_auto_clean:
+       dh_auto_clean
+       dh_auto_clean --sourcedirectory=contrib/pzstd
+
+override_dh_auto_build:
+       dh_auto_build
+       dh_auto_build --sourcedirectory=contrib/pzstd/ -- pzstd
+
+override_dh_install:
+       # Call d-shlibmove to comply with library packaging guide
+       d-shlibmove --commit \
+                               --multiarch \
+                               --devunversioned \
+                               --exclude-la \
+                               --movedev "debian/tmp/usr/include/*" usr/include \
+                               --movedev "debian/tmp/usr/lib/pkgconfig/*" usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig \
+                               debian/tmp/usr/lib/lib*.so
+       cp -r debian/libzstd1/usr debian/libzstd1-udeb/
+       dh_install
+
+override_dh_makeshlibs:
+       dh_makeshlibs -plibzstd1 -V'libzstd1 (>= 1.3.8)' --add-udeb=libzstd1-udeb
+
+override_dh_installman:
+       dh_installman
+       mkdir -p $(mandir)
+       $(HELP2MAN) --name='parallelised Zstandard compression, al la pigz' contrib/pzstd/pzstd \
+       | perl -pe 's/(\(de\)compression\s\(default:)(\d+)(\))/$$1 All$$3/g' >$(mandir)/pzstd.1
diff --git a/source/format b/source/format
new file mode 100644 (file)
index 0000000..163aaf8
--- /dev/null
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/tests/control b/tests/control
new file mode 100644 (file)
index 0000000..f853f74
--- /dev/null
@@ -0,0 +1 @@
+Test-Command: zstd -b1 >/dev/null 2>&1
diff --git a/watch b/watch
new file mode 100644 (file)
index 0000000..993f185
--- /dev/null
+++ b/watch
@@ -0,0 +1,4 @@
+version=4
+
+opts="repacksuffix=+dfsg,dversionmangle=s/\+dfsg\d*//g,repack,compression=xz" \
+  https://github.com/facebook/zstd/releases .*/archive/v?@ANY_VERSION@@ARCHIVE_EXT@
diff --git a/zstd.docs b/zstd.docs
new file mode 100644 (file)
index 0000000..70867c6
--- /dev/null
+++ b/zstd.docs
@@ -0,0 +1,2 @@
+CHANGELOG
+*.md
diff --git a/zstd.install b/zstd.install
new file mode 100644 (file)
index 0000000..3418174
--- /dev/null
@@ -0,0 +1,2 @@
+contrib/pzstd/pzstd usr/bin
+usr/bin
diff --git a/zstd.lintian-overrides b/zstd.lintian-overrides
new file mode 100644 (file)
index 0000000..0335cb8
--- /dev/null
@@ -0,0 +1,3 @@
+zstd: binary-without-manpage usr/bin/zstdmt
+zstd: binary-without-manpage usr/bin/unzstd
+zstd: binary-without-manpage usr/bin/zstdcat
diff --git a/zstd.manpages b/zstd.manpages
new file mode 100644 (file)
index 0000000..b3ae7fe
--- /dev/null
@@ -0,0 +1 @@
+programs/zstd*.1