Import libzstd_1.4.8+dfsg-2.1+rpi1.debian.tar.xz
authorPeter Michael Green <plugwash@raspbian.org>
Fri, 7 May 2021 07:36:26 +0000 (08:36 +0100)
committerPeter Michael Green <plugwash@raspbian.org>
Fri, 7 May 2021 07:36:26 +0000 (08:36 +0100)
[dgit import tarball libzstd 1.4.8+dfsg-2.1+rpi1 libzstd_1.4.8+dfsg-2.1+rpi1.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]
control [new file with mode: 0644]
copyright [new file with mode: 0644]
libzstd-dev.examples [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/0017-alpha-fbfs-st_mtime.patch [new file with mode: 0644]
patches/0018-fix-file-permissions-on-compression.patch [new file with mode: 0644]
patches/9999-fix-broken-memory-access.patch [new file with mode: 0644]
patches/series [new file with mode: 0644]
rules [new file with mode: 0755]
salsa-ci.yml [new file with mode: 0644]
source/format [new file with mode: 0644]
source/lintian-overrides [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.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..1e0e72d
--- /dev/null
+++ b/changelog
@@ -0,0 +1,456 @@
+libzstd (1.4.8+dfsg-2.1+rpi1) bullseye-staging; urgency=medium
+
+  * Fix broken unaligned accesses.
+
+ -- Peter Michael Green <plugwash@raspbian.org>  Fri, 07 May 2021 07:36:26 +0000
+
+libzstd (1.4.8+dfsg-2.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Drop the symbols file: the symbols in the library aren’t all intended
+    for public consumption, but they can’t be hidden (yet) either, see
+    https://github.com/facebook/zstd/pull/2501 for the discussion. We’ll
+    rely on the shlibs file for now, with a relaxed version (1.4.0, as
+    discussed with upstream). Closes: #969597.
+
+ -- Stephen Kitt <skitt@debian.org>  Mon, 01 Mar 2021 18:23:52 +0100
+
+libzstd (1.4.8+dfsg-2) unstable; 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 was
+    partially mitigated previously by running a change of permissions after a
+    `chmod`, but left a small but exploitable window just after the `fopen`.
+    This update adds 0018-fix-file-permissions-on-compression.patch to make
+    sure the compressed file is not group nor world readable for the _entire_
+    duration of the compression.
+    Closes: #982519
+
+ -- Étienne Mollier <etienne.mollier@mailoo.org>  Thu, 18 Feb 2021 09:52:53 +0100
+
+libzstd (1.4.8+dfsg-1) unstable; urgency=medium
+
+  * New upstream version 1.4.8+dfsg, Closes: #977829
+  * Refresh and remove patch applied by upstream
+  * Update d/libzstd1.symbols, getSequences() got renamed
+    to generateSequences(), no reverse deps use ZSTD_getSequences
+  * d/rules, remove export DEB_CFLAGS_MAINT_APPEND = -fno-strict-aliasing,
+    fixed by upstream, Closes: #957487
+    Call dh_makeshlibs with -V 'libzstd1 (>= 1.4.8)', new public symbols
+  * d/copyright, drop contrib/linux-kernel/fs/squashfs/*
+  * d/control: bump Policy to 4.5.1
+
+ -- Alexandre Mestiashvili <mestia@debian.org>  Fri, 25 Dec 2020 19:28:35 +0100
+
+libzstd (1.4.5+dfsg-4) unstable; urgency=medium
+
+  [ Andreas Tille ]
+  * Team upload.
+  * debhelper-compat 13 (routine-update)
+
+  [ Sudip Mukherjee ]
+  * Disable strict-aliasing to work around bug #957487
+    Intentionally not closing bug but decreasing severity for the moment.
+    The bug should be closed by a proper upstream fix and
+    strict-aliasing should be re-enabled.
+
+ -- Andreas Tille <tille@debian.org>  Fri, 07 Aug 2020 20:47:29 +0200
+
+libzstd (1.4.5+dfsg-3) unstable; urgency=medium
+
+  [ Paul Menzel ]
+  * debian/changelog: Fix typo in 1.4.5+dfsg-2 changelog
+
+  [ Alexandre Mestiashvili ]
+  * Add patch fixing FTBFS on Alpha, Closes: #962676
+    thanks to Helmut Grohne <helmut@subdivi.de>
+
+ -- Alexandre Mestiashvili <mestia@debian.org>  Mon, 29 Jun 2020 16:10:31 +0200
+
+libzstd (1.4.5+dfsg-2) unstable; urgency=medium
+
+  * Drop ZSTD_LEGACY_MULTITHREADED_API, since nothing in Debian seems to use it
+  * Fix FTCBFS: Don't build the shared library during dh_auto_install,
+    Closes: #962367, thanks to Helmut Grohne <helmut@subdivi.de>
+
+ -- Alexandre Mestiashvili <mestia@debian.org>  Sun, 07 Jun 2020 09:31:18 +0200
+
+libzstd (1.4.5+dfsg-1) unstable; urgency=medium
+
+  * New upstream version 1.4.5+dfsg
+  * Refresh patches, remove 0019-blhc-workarounds.patch from series
+  * Update symbols file, add ZDICT_getDictHeaderSize and remove all
+    ZSTDMT_* symbols, also remove renamed ZSTD_CCtxParam_getParameter and
+    ZSTD_CCtxParam_setParameter, no reverse dependencies use any of the
+    removed symbols
+  * Remove 0018-Alias-renamed-API-symbols.patch since no rdeps use the old
+    symbols
+  * Add patch fixing spelling typos
+  * d/rules: call dh_makeshlibs with -V 'libzstd1 (>= 1.4.5)', since this
+    version introduces new public symbols
+
+ -- Alexandre Mestiashvili <mestia@debian.org>  Fri, 05 Jun 2020 10:47:12 +0200
+
+libzstd (1.4.4+dfsg-3) unstable; urgency=medium
+
+  * Team upload.
+  * Source only upload.
+
+ -- Michael R. Crusoe <michael.crusoe@gmail.com>  Thu, 13 Feb 2020 10:40:13 +0100
+
+libzstd (1.4.4+dfsg-2) unstable; urgency=medium
+
+  * Team upload.
+  * Install all the man pages.
+  * Standards-Version: 4.5.0 (routine-update)
+  * debhelper-compat 12 (routine-update)
+
+ -- Michael R. Crusoe <michael.crusoe@gmail.com>  Thu, 13 Feb 2020 09:10:22 +0100
+
+libzstd (1.4.4+dfsg-1) unstable; urgency=medium
+
+  [ Justin Aplin ]
+  * New upstream version 1.4.4+dfsg
+  * Refresh patches
+  * Call Salsa CI with variable DB_BUILD_PARAM: '-v1.1.2-1', since this is the
+    oldest version in active repositories
+  * Add Rules-Requires-Root: binary-targets to debian/control to comply with
+    current DPM
+  * Bump Standards-Version to 4.4.1, changes noted above
+  * Update symbols file for libzstd1
+  * Call dh_makeshlibs with -V 'libzstd1 (>= 1.4.4)', since this version
+    introduced new public symbols
+  * Add an entry in debian/source/lintian-overrides to prevent libzstd1's
+    Section entry from triggering binary-control-field-duplicates-source,
+    since this field is necessary for the build
+
+ -- Alexandre Mestiashvili <mestia@debian.org>  Fri, 15 Nov 2019 17:15:40 +0100
+
+libzstd (1.4.3+dfsg-1) unstable; urgency=medium
+
+  [ Alexandre Mestiashvili ]
+  * Fix a typo causing test failures on mips(el) architectures in
+    d/patches/0013-skip-memory-greedy-tests.patch
+  * Remove circle.yml from Files-Excluded section in d/copyright
+  * New upstream version 1.4.3+dfsg
+
+ -- Alexandre Mestiashvili <mestia@debian.org>  Tue, 20 Aug 2019 13:33:51 +0200
+
+libzstd (1.4.2+dfsg-1) unstable; urgency=medium
+
+  [ Justin Aplin ]
+  * New upstream version 1.4.2+dfsg
+  * Refresh and drop applied by upstream patches
+  * Add patch aliasing two renamed but unchanged symbols to maintain backwards
+    compatibility
+  * Build with ZSTD_LEGACY_MULTITHREADED_API=1 to maintain backwards
+    compatibility
+  * Update symbols file for libzstd1
+  * Call dh_makeshlibs with -V 'libzstd1 (>= 1.4.0)', since this version
+    introduced new public symbols
+  * Bump debhelper compat level to 12.
+  * Bump Standards-Version to 4.4.0, no changes needed.
+  * Salsa-CI integration
+
+  [ Alexandre Mestiashvili ]
+  * Add .cirrus.yml to Files-Excluded list in d/copyright
+
+ -- Alexandre Mestiashvili <mestia@debian.org>  Mon, 19 Aug 2019 15:14:31 +0200
+
+libzstd (1.3.8+dfsg-3) unstable; urgency=medium
+
+  * Add patch fixing zstdgrep exit code when operating on files
+    Closes: #918390, thanks to Jörg-Volker Peetz <jvpeetz@web.de>
+
+ -- 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 <mestia@debian.org>  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 <mestia@debian.org>  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 <mestia@debian.org>  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/control b/control
new file mode 100644 (file)
index 0000000..8dc8692
--- /dev/null
+++ b/control
@@ -0,0 +1,61 @@
+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-compat (= 13),
+               help2man,
+               liblz4-dev,
+               liblzma-dev,
+               zlib1g-dev
+Rules-Requires-Root: binary-targets
+Standards-Version: 4.5.1
+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..1045de1
--- /dev/null
+++ b/copyright
@@ -0,0 +1,117 @@
+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
+                build/*
+                programs/windres/*
+                .travis.yml
+                .buckversion
+                .buckconfig
+                .circleci/*
+                .cirrus.yml
+
+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: 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/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..57c6038
--- /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
++#!/bin/bash
+ set -e
diff --git a/patches/0008-Address-embedded-zlib.patch b/patches/0008-Address-embedded-zlib.patch
new file mode 100644 (file)
index 0000000..9d5f1f2
--- /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
+@@ -79,16 +79,16 @@
+ #.c.o:
+ #     $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+-minigzip: $(EXAMPLE_PATH)/minigzip.o zstd_zlibwrapper.o $(GZFILES) $(ZSTDLIBRARY)
++minigzip: $(EXAMPLE_PATH)/minigzip.o zstd_zlibwrapper.o $(ZSTDLIBRARY)
+       $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $^ $(ZSTDLIBRARY) $(ZLIB_LIBRARY) -o $@
+-minigzip_zstd: $(EXAMPLE_PATH)/minigzip.o zstdTurnedOn_zlibwrapper.o $(GZFILES) $(ZSTDLIBRARY)
++minigzip_zstd: $(EXAMPLE_PATH)/minigzip.o zstdTurnedOn_zlibwrapper.o $(ZSTDLIBRARY)
+       $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $^ $(ZSTDLIBRARY) $(ZLIB_LIBRARY) -o $@
+-example: $(EXAMPLE_PATH)/example.o zstd_zlibwrapper.o $(GZFILES) $(ZSTDLIBRARY)
++example: $(EXAMPLE_PATH)/example.o zstd_zlibwrapper.o $(ZSTDLIBRARY)
+       $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $^ $(ZLIB_LIBRARY) -o $@
+-example_zstd: $(EXAMPLE_PATH)/example.o zstdTurnedOn_zlibwrapper.o $(GZFILES) $(ZSTDLIBRARY)
++example_zstd: $(EXAMPLE_PATH)/example.o zstdTurnedOn_zlibwrapper.o $(ZSTDLIBRARY)
+       $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $^ $(ZLIB_LIBRARY) -o $@
+ fitblk: $(EXAMPLE_PATH)/fitblk.o 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..72da692
--- /dev/null
@@ -0,0 +1,38 @@
+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
+@@ -1442,8 +1442,13 @@
+ roundTripTest -g5000000000 -P99 "1 --zstd=wlog=25"
+ roundTripTest -g3700000000 -P0 "1 --zstd=strategy=6,wlog=25"   # ensure btlazy2 can survive an overflow rescale
+-fileRoundTripTest -g4193M -P99 1
+-
++DEBARCH=$(dpkg-architecture -qDEB_HOST_ARCH)
++if [ "$DEBARCH" != 'hurd-i386' ]
++then
++    fileRoundTripTest -g4193M -P99 1
++else
++    println "\n**** skip memory greedy tests on $DEBARCH **** "
++fi
+ println "\n===>   zstd long, long distance matching round-trip tests "
+ roundTripTest -g270000000 "1 --single-thread --long"
+@@ -1460,9 +1465,14 @@
+     println "\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
++        println "\n**** skip memory greedy tests on $DEBARCH **** "
++    fi
+     # Exposes the bug in https://github.com/facebook/zstd/pull/1678
+     # This test fails on 4 different travis builds at the time of writing
+     # because it needs to allocate 8 GB of memory.
diff --git a/patches/0014-Reproducible-build.patch b/patches/0014-Reproducible-build.patch
new file mode 100644 (file)
index 0000000..5d68baf
--- /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 @@ void usage() {
+   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..92801a0
--- /dev/null
@@ -0,0 +1,36 @@
+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
+@@ -337,14 +337,19 @@
+ 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
+-println "test : should quietly not remove non-regular file"
+-println hello > tmp
+-zstd tmp -f -o "$DEVDEVICE" 2>tmplog > "$INTOVOID"
+-grep -v "Refusing to remove non-regular file" tmplog
+-rm -f tmplog
+-zstd tmp -f -o "$INTOVOID" 2>&1 | grep -v "Refusing to remove non-regular file"
+-println "test : --rm on stdin"
+-println a | zstd --rm > $INTOVOID   # --rm should remain silent
++if [ "$(dpkg-architecture -qDEB_HOST_ARCH)" != 'hurd-i386' ]
++then
++    println "test : should quietly not remove non-regular file"
++    println hello > tmp
++    zstd tmp -f -o "$DEVDEVICE" 2>tmplog > "$INTOVOID"
++    grep -v "Refusing to remove non-regular file" tmplog
++    rm -f tmplog
++    zstd tmp -f -o "$INTOVOID" 2>&1 | grep -v "Refusing to remove non-regular file"
++    println "test : --rm on stdin"
++    println a | zstd --rm > $INTOVOID   # --rm should remain silent
++else
++   println "\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/0017-alpha-fbfs-st_mtime.patch b/patches/0017-alpha-fbfs-st_mtime.patch
new file mode 100644 (file)
index 0000000..f7930a6
--- /dev/null
@@ -0,0 +1,17 @@
+Description: Fix ftbfs on alpha, see #962676
+From: Helmut Grohne <helmut@subdivi.de>
+--- libzstd.orig/programs/util.c
++++ libzstd/programs/util.c
+@@ -171,8 +171,10 @@
+     /* We check that st_mtime is a macro here in order to give us confidence
+      * that struct stat has a struct timespec st_mtim member. We need this
+      * check because there are some platforms that claim to be POSIX 2008
+-     * compliant but which do not have st_mtim... */
+-#if (PLATFORM_POSIX_VERSION >= 200809L) && defined(st_mtime)
++     * compliant but which do not have st_mtim...
++     * And then there is alpha, which doesn't define st_mtime, but still has it.
++     */
++#if (PLATFORM_POSIX_VERSION >= 200809L) && (defined(st_mtime) || defined(__alpha__))
+     {
+         /* (atime, mtime) */
+         struct timespec timebuf[2] = { {0, UTIME_NOW} };
diff --git a/patches/0018-fix-file-permissions-on-compression.patch b/patches/0018-fix-file-permissions-on-compression.patch
new file mode 100644 (file)
index 0000000..77efef7
--- /dev/null
@@ -0,0 +1,81 @@
+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://github.com/facebook/zstd/issues/2491
+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
+@@ -675,14 +675,11 @@
+             FIO_removeFile(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));
+-        } else if (srcFileName != NULL
+-               && strcmp (srcFileName, stdinmark)
+-               && strcmp(dstFileName, nulmark) ) {
+-            /* reduce rights on newly created dst file while compression is ongoing */
+-            UTIL_chmod(dstFileName, NULL, 00600);
+         }
+         return f;
+     }
+--- libzstd.orig/programs/util.c
++++ libzstd/programs/util.c
+@@ -159,6 +159,15 @@
+     return chmod(filename, permissions);
+ }
++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, const stat_t *statbuf)
+ {
+     int res = 0;
+--- libzstd.orig/programs/util.h
++++ libzstd/programs/util.h
+@@ -22,7 +22,7 @@
+ #include "platform.h"     /* PLATFORM_POSIX_VERSION, ZSTD_NANOSLEEP_SUPPORT, ZSTD_SETPRIORITY_SUPPORT */
+ #include <stddef.h>       /* size_t, ptrdiff_t */
+ #include <sys/types.h>    /* stat, utime */
+-#include <sys/stat.h>     /* stat, chmod */
++#include <sys/stat.h>     /* stat, chmod, umask */
+ #include "../lib/common/mem.h"          /* U64 */
+@@ -152,6 +152,11 @@
+  */
+ int UTIL_chmod(char const* filename, const stat_t* statbuf, mode_t permissions);
++/**
++ * Wraps umask(). Does nothing when the platform doesn't have that concept.
++ */
++int UTIL_umask(int mode);
++
+ /*
+  * In the absence of a pre-existing stat result on the file in question, these
+  * functions will do a stat() call internally and then use that result to
diff --git a/patches/9999-fix-broken-memory-access.patch b/patches/9999-fix-broken-memory-access.patch
new file mode 100644 (file)
index 0000000..0897cb6
--- /dev/null
@@ -0,0 +1,95 @@
+Description: don't use broken unaligned access
+ Some unaligned accesses are ok on armv6+ but many are not, so violating
+ C's memory alignment rules is dangerous on this architecture, change
+ the defines so the code doesn't do it.
+Author: Peter Micheal Green <plugwash@raspbian.org>
+Last-Update: 2021-05-07
+
+--- libzstd-1.4.8+dfsg.orig/lib/common/mem.h
++++ libzstd-1.4.8+dfsg/lib/common/mem.h
+@@ -144,7 +144,7 @@ MEM_STATIC size_t MEM_swapST(size_t in);
+  */
+ #ifndef MEM_FORCE_MEMORY_ACCESS   /* can be defined externally, on command line for example */
+ #  if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) )
+-#    define MEM_FORCE_MEMORY_ACCESS 2
++#    define MEM_FORCE_MEMORY_ACCESS 0
+ #  elif defined(__INTEL_COMPILER) || defined(__GNUC__) || defined(__ICCARM__)
+ #    define MEM_FORCE_MEMORY_ACCESS 1
+ #  endif
+--- libzstd-1.4.8+dfsg.orig/lib/common/xxhash.c
++++ libzstd-1.4.8+dfsg/lib/common/xxhash.c
+@@ -31,7 +31,7 @@
+  */
+ #ifndef XXH_FORCE_MEMORY_ACCESS   /* can be defined externally, on command line for example */
+ #  if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) )
+-#    define XXH_FORCE_MEMORY_ACCESS 2
++#    define XXH_FORCE_MEMORY_ACCESS 0
+ #  elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \
+   (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) )) || \
+   defined(__ICCARM__)
+--- libzstd-1.4.8+dfsg.orig/lib/legacy/zstd_v02.c
++++ libzstd-1.4.8+dfsg/lib/legacy/zstd_v02.c
+@@ -130,7 +130,7 @@ extern "C" {
+  */
+ #ifndef MEM_FORCE_MEMORY_ACCESS   /* can be defined externally, on command line for example */
+ #  if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) )
+-#    define MEM_FORCE_MEMORY_ACCESS 2
++#    define MEM_FORCE_MEMORY_ACCESS 0
+ #  elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \
+   (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) ))
+ #    define MEM_FORCE_MEMORY_ACCESS 1
+--- libzstd-1.4.8+dfsg.orig/lib/legacy/zstd_v03.c
++++ libzstd-1.4.8+dfsg/lib/legacy/zstd_v03.c
+@@ -131,7 +131,7 @@ extern "C" {
+  */
+ #ifndef MEM_FORCE_MEMORY_ACCESS   /* can be defined externally, on command line for example */
+ #  if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) )
+-#    define MEM_FORCE_MEMORY_ACCESS 2
++#    define MEM_FORCE_MEMORY_ACCESS 0
+ #  elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \
+   (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) ))
+ #    define MEM_FORCE_MEMORY_ACCESS 1
+--- libzstd-1.4.8+dfsg.orig/lib/legacy/zstd_v04.c
++++ libzstd-1.4.8+dfsg/lib/legacy/zstd_v04.c
+@@ -102,7 +102,7 @@ extern "C" {
+  */
+ #ifndef MEM_FORCE_MEMORY_ACCESS   /* can be defined externally, on command line for example */
+ #  if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) )
+-#    define MEM_FORCE_MEMORY_ACCESS 2
++#    define MEM_FORCE_MEMORY_ACCESS 0
+ #  elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \
+   (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) ))
+ #    define MEM_FORCE_MEMORY_ACCESS 1
+--- libzstd-1.4.8+dfsg.orig/lib/legacy/zstd_v05.c
++++ libzstd-1.4.8+dfsg/lib/legacy/zstd_v05.c
+@@ -121,7 +121,7 @@ extern "C" {
+  */
+ #ifndef MEM_FORCE_MEMORY_ACCESS   /* can be defined externally, on command line for example */
+ #  if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) )
+-#    define MEM_FORCE_MEMORY_ACCESS 2
++#    define MEM_FORCE_MEMORY_ACCESS 0
+ #  elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \
+   (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) ))
+ #    define MEM_FORCE_MEMORY_ACCESS 1
+--- libzstd-1.4.8+dfsg.orig/lib/legacy/zstd_v06.c
++++ libzstd-1.4.8+dfsg/lib/legacy/zstd_v06.c
+@@ -123,7 +123,7 @@ extern "C" {
+  */
+ #ifndef MEM_FORCE_MEMORY_ACCESS   /* can be defined externally, on command line for example */
+ #  if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) )
+-#    define MEM_FORCE_MEMORY_ACCESS 2
++#    define MEM_FORCE_MEMORY_ACCESS 0
+ #  elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \
+   (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) ))
+ #    define MEM_FORCE_MEMORY_ACCESS 1
+--- libzstd-1.4.8+dfsg.orig/lib/legacy/zstd_v07.c
++++ libzstd-1.4.8+dfsg/lib/legacy/zstd_v07.c
+@@ -283,7 +283,7 @@ extern "C" {
+  */
+ #ifndef MEM_FORCE_MEMORY_ACCESS   /* can be defined externally, on command line for example */
+ #  if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) )
+-#    define MEM_FORCE_MEMORY_ACCESS 2
++#    define MEM_FORCE_MEMORY_ACCESS 0
+ #  elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \
+   (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) ))
+ #    define MEM_FORCE_MEMORY_ACCESS 1
diff --git a/patches/series b/patches/series
new file mode 100644 (file)
index 0000000..8f20974
--- /dev/null
@@ -0,0 +1,8 @@
+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
+0017-alpha-fbfs-st_mtime.patch
+0018-fix-file-permissions-on-compression.patch
+9999-fix-broken-memory-access.patch
diff --git a/rules b/rules
new file mode 100755 (executable)
index 0000000..397c52b
--- /dev/null
+++ b/rules
@@ -0,0 +1,51 @@
+#!/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=lib -- all libzstd.pc libzstd
+       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.4.0)' --add-udeb=libzstd1-udeb
+
+override_dh_installman:
+       dh_installman
+       cp $(mandir)/zstd.1 $(mandir)/zstdmt.1
+       $(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/salsa-ci.yml b/salsa-ci.yml
new file mode 100644 (file)
index 0000000..0d8ee65
--- /dev/null
@@ -0,0 +1,10 @@
+---
+include:
+  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
+  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
+
+# No 'Architecture: all' targets for this package.
+# 1.1.2-1: oldest version in active repos.
+variables:
+  SALSA_CI_DISABLE_BUILD_PACKAGE_ALL: '1'
+  DB_BUILD_PARAM: '-v1.1.2-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/source/lintian-overrides b/source/lintian-overrides
new file mode 100644 (file)
index 0000000..86e6eb7
--- /dev/null
@@ -0,0 +1 @@
+libzstd source: binary-control-field-duplicates-source field "section" in package libzstd1
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.manpages b/zstd.manpages
new file mode 100644 (file)
index 0000000..8e59a36
--- /dev/null
@@ -0,0 +1 @@
+usr/share/man/man1/*