diff options
Diffstat (limited to 'gnu/packages/compression.scm')
-rw-r--r-- | gnu/packages/compression.scm | 260 |
1 files changed, 95 insertions, 165 deletions
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index cfbc959182..026d448ce1 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2017, 2019, 2020 Ludovic Courtès <[email protected]> +;;; Copyright © 2012, 2013, 2014, 2015, 2017, 2019, 2020, 2021 Ludovic Courtès <[email protected]> ;;; Copyright © 2013 Andreas Enge <[email protected]> ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <[email protected]> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <[email protected]> @@ -32,6 +32,7 @@ ;;; Copyright © 2020 Léo Le Bouter <[email protected]> ;;; Copyright © 2021 Antoine Côté <[email protected]> ;;; Copyright © 2021 Vincent Legoll <[email protected]> +;;; Copyright © 2021 Simon Tournier <[email protected]> ;;; Copyright © 2021 Maxim Cournoyer <[email protected]> ;;; ;;; This file is part of GNU Guix. @@ -484,7 +485,7 @@ compressed with pbzip2 can be decompressed with bzip2).") (define-public xz (package (name "xz") - (version "5.2.4") + (version "5.2.5") (source (origin (method url-fetch) (uri (list (string-append "http://tukaani.org/xz/xz-" version @@ -493,7 +494,7 @@ compressed with pbzip2 can be decompressed with bzip2).") version ".tar.gz"))) (sha256 (base32 - "0ibi2zsfaz6l756spjwc5rayf4ckgc9hwmy8qinppcyk4svz64mm")))) + "045s9agl3bpv3swlwydhgsqh7791957vmgw2plw8f1rks07r3x7n")))) (build-system gnu-build-system) (arguments `(#:phases @@ -544,9 +545,9 @@ than gzip and 15 % smaller output than bzip2.") (modify-phases %standard-phases (add-before 'check 'set-up-test-environment (lambda* (#:key inputs #:allow-other-keys) - (setenv "TZDIR" (string-append (assoc-ref inputs "tzdata") - "/share/zoneinfo")) - #t))))) + (setenv "TZDIR" + (search-input-directory inputs + "share/zoneinfo"))))))) (native-inputs `(("tzdata" ,tzdata-for-tests))) (home-page "https://fragglet.github.com/lhasa/") @@ -611,14 +612,14 @@ some compression ratio).") (define-public lzip (package (name "lzip") - (version "1.21") + (version "1.22") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/lzip/lzip-" version ".tar.gz")) (sha256 (base32 - "12qdcw5k1cx77brv9yxi1h4dzwibhfmdpigrj43nfk8nscwm12z4")))) + "0j59hx72258334rmkwn57ahr6s69nlrx0a5ip1jw2fbiwr12sd63")))) (build-system gnu-build-system) (home-page "https://www.nongnu.org/lzip/lzip.html") (synopsis "Lossless data compressor based on the LZMA algorithm") @@ -1277,8 +1278,8 @@ for most inputs, but the resulting compressed files are anywhere from 20% to (let ((gcc (assoc-ref (or native-inputs inputs) "gcc"))) (setenv "CPLUS_INCLUDE_PATH" (string-join - (cons* (string-append (assoc-ref inputs "libcxx+libcxxabi") - "/include/c++/v1") + (cons* (search-input-directory inputs + "/include/c++/v1") ;; Hide GCC's C++ headers so that they do not interfere with ;; the Clang headers. (delete (string-append gcc "/include/c++") @@ -1319,7 +1320,10 @@ for most inputs, but the resulting compressed files are anywhere from 20% to (find-files "Utils/file_Codecs_Rar_so.py"))) (delete-file-recursively "CPP/7zip/Archive/Rar") (delete-file-recursively "CPP/7zip/Compress/Rar") - #t)) + ;; Fix FTBFS with gcc-10. + (substitute* "CPP/Windows/ErrorMsg.cpp" + (("switch\\(errorCode\\) \\{") + "switch(static_cast<HRESULT>(errorCode)) {")))) (patches (search-patches "p7zip-CVE-2016-9296.patch" "p7zip-CVE-2017-17969.patch" "p7zip-remove-unused-code.patch")))) @@ -1330,31 +1334,27 @@ for most inputs, but the resulting compressed files are anywhere from 20% to #:phases (modify-phases %standard-phases (replace 'configure - (lambda* (#:key system outputs #:allow-other-keys) - (invoke "cp" - (let ((system ,(or (%current-target-system) - (%current-system)))) - (cond - ((string-prefix? "x86_64" system) - "makefile.linux_amd64_asm") - ((string-prefix? "i686" system) - "makefile.linux_x86_asm_gcc_4.X") - (else - "makefile.linux_any_cpu_gcc_4.X"))) - "makefile.machine"))) - (replace 'check (lambda _ - (invoke "make" "test") - (invoke "make" "test_7z") - (invoke "make" "test_7zr")))))) + (copy-file + ,(cond ((target-x86-64?) + "makefile.linux_amd64_asm") + ((target-x86-32?) + "makefile.linux_x86_asm_gcc_4.X") + (else + "makefile.linux_any_cpu_gcc_4.X")) + "makefile.machine"))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "make" "test") + (invoke "make" "test_7z") + (invoke "make" "test_7zr"))))))) (native-inputs - (let ((system (or (%current-target-system) - (%current-system)))) - `(,@(cond ((string-prefix? "x86_64" system) - `(("yasm" ,yasm))) - ((string-prefix? "i686" system) - `(("nasm" ,nasm))) - (else '()))))) + (cond ((target-x86-64?) + (list yasm)) + ((target-x86-32?) + (list nasm)) + (else '()))) (home-page "http://p7zip.sourceforge.net/") (synopsis "Command-line file archiver with high compression ratio") (description "p7zip is a command-line port of 7-Zip, a file archiver that @@ -1564,15 +1564,14 @@ or junctions, and always follows hard links.") (define-public zstd (package (name "zstd") - (version "1.4.4") + (version "1.5.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/facebook/zstd/releases/download/" "v" version "/zstd-" version ".tar.gz")) (sha256 - (base32 "05ckxap00qvc0j51d3ci38150cxsw82w7s9zgd5fgzspnzmp1vsr")))) - (replacement zstd/fixed) + (base32 "150y541303vnvfhd8wkbih00lfvvm98rd12yijwlbkqzg3xgp52i")))) (build-system gnu-build-system) (outputs '("out" ;1.2MiB executables and documentation "lib" ;1.2MiB shared library and headers @@ -1580,6 +1579,26 @@ or junctions, and always follows hard links.") (arguments `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'remove-bogus-check + (lambda _ + ;; lib/Makefile falsely claims that no .pc file can be created. + (substitute* "lib/Makefile" + (("error configured .*dir ") + "true ")) + #t)) + (add-after 'unpack 'patch-command-file-names + ;; Don't require hard requirements to be in $PATH. + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (our (lambda (name) (string-append out "/bin/" name)))) + (substitute* "programs/zstdgrep" + (("(:-)(grep)" _ prefix command) + (string-append prefix (which command))) + (("(:-)(zstdcat)" _ prefix command) + (string-append prefix (our command)))) + (substitute* "programs/zstdless" + (("zstdcat" command) + (our command)))))) (delete 'configure) ;no configure script (add-after 'install 'adjust-library-locations (lambda* (#:key outputs #:allow-other-keys) @@ -1599,17 +1618,16 @@ or junctions, and always follows hard links.") ;; Make sure the pkg-config file refers to the right output. (substitute* (string-append shared-libs "/pkgconfig/libzstd.pc") (("^prefix=.*") - (string-append "prefix=" lib "\n"))) - - #t)))) + ;; Note: The .pc file expects a trailing slash for 'prefix'. + (string-append "prefix=" lib "/\n"))))))) #:make-flags - ;; TODO: Integrate in next rebuild cycle. - (list ,(if (%current-target-system) - (string-append "CC=" (cc-for-target)) - "CC=gcc") - (string-append "PREFIX=" (assoc-ref %outputs "out")) - (string-append "LIBDIR=" (assoc-ref %outputs "lib") "/lib") - (string-append "INCLUDEDIR=" (assoc-ref %outputs "lib") "/include") + (list ,(string-append "CC=" (cc-for-target)) + (string-append "prefix=" (assoc-ref %outputs "out")) + (string-append "libdir=" (assoc-ref %outputs "lib") "/lib") + (string-append "includedir=" (assoc-ref %outputs "lib") "/include") + ;; Auto-detection is over-engineered and buggy. + "PCLIBDIR=lib" + "PCINCDIR=include" ;; Skip auto-detection of, and creating a dependency on, the build ;; environment's ‘xz’ for what amounts to a dubious feature anyway. "HAVE_LZMA=0" @@ -1632,17 +1650,6 @@ speed.") license:public-domain ; zlibWrapper/examples/fitblk* license:zlib)))) ; zlibWrapper/{gz*.c,gzguts.h} -(define zstd/fixed - (package - (inherit zstd) - (source - (origin - (inherit (package-source zstd)) - (patches - (search-patches - ;; From Ubuntu focal-security - "zstd-CVE-2021-24031_CVE-2021-24032.patch")))))) - (define-public pzstd (package/inherit zstd (name "pzstd") @@ -1755,8 +1762,32 @@ Compression ratios of 2:1 to 3:1 are common for text files.") "unzip-attribs-overflow.patch" "unzip-overflow-on-invalid-input.patch" "unzip-format-secure.patch" - "unzip-overflow-long-fsize.patch")))) - (replacement unzip/fixed) + "unzip-overflow-long-fsize.patch" + + ;; From Fedora + "unzip-alt-iconv-utf8.patch" + "unzip-alt-iconv-utf8-print.patch" + "unzip-fix-recmatch.patch" + "unzip-case-insensitive.patch" + "unzip-close.patch" + "unzip-COVSCAN-fix-unterminated-string.patch" + "unzip-CVE-2016-9844.patch" + "unzip-CVE-2018-1000035.patch" + "unzip-CVE-2018-18384.patch" + "unzip-exec-shield.patch" + "unzip-manpage-fix.patch" + "unzip-overflow.patch" + "unzip-timestamp.patch" + "unzip-valgrind.patch" + "unzip-x-option.patch" + ;; CVE-2019-13232 + "unzip-zipbomb-manpage.patch" + "unzip-zipbomb-part1.patch" + "unzip-zipbomb-part2.patch" + "unzip-zipbomb-part3.patch" + + ;; https://github.com/madler/unzip/issues/2 + "unzip-32bit-zipbomb-fix.patch")))) (build-system gnu-build-system) ;; no inputs; bzip2 is not supported, since not compiled with BZ_NO_STDIO (arguments @@ -1792,57 +1823,6 @@ recreates the stored directory structure by default.") (license (license:non-copyleft "file://LICENSE" "See LICENSE in the distribution.")))) -(define unzip/fixed - (package - (inherit unzip) - (version "6.0") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/infozip" - "/UnZip%206.x%20%28latest%29/UnZip%206.0/unzip60.tar.gz")) - (sha256 - (base32 - "0dxx11knh3nk95p2gg2ak777dd11pr7jx5das2g49l262scrcv83")) - (patches (search-patches "unzip-CVE-2014-8139.patch" - "unzip-CVE-2014-8140.patch" - "unzip-CVE-2014-8141.patch" - "unzip-CVE-2014-9636.patch" - "unzip-CVE-2015-7696.patch" - "unzip-CVE-2015-7697.patch" - "unzip-allow-greater-hostver-values.patch" - "unzip-initialize-symlink-flag.patch" - "unzip-remove-build-date.patch" - "unzip-attribs-overflow.patch" - "unzip-overflow-on-invalid-input.patch" - "unzip-format-secure.patch" - "unzip-overflow-long-fsize.patch" - - ;; From Fedora - "unzip-alt-iconv-utf8.patch" - "unzip-alt-iconv-utf8-print.patch" - "unzip-fix-recmatch.patch" - "unzip-case-insensitive.patch" - "unzip-close.patch" - "unzip-COVSCAN-fix-unterminated-string.patch" - "unzip-CVE-2016-9844.patch" - "unzip-CVE-2018-1000035.patch" - "unzip-CVE-2018-18384.patch" - "unzip-exec-shield.patch" - "unzip-manpage-fix.patch" - "unzip-overflow.patch" - "unzip-timestamp.patch" - "unzip-valgrind.patch" - "unzip-x-option.patch" - ;; CVE-2019-13232 - "unzip-zipbomb-manpage.patch" - "unzip-zipbomb-part1.patch" - "unzip-zipbomb-part2.patch" - "unzip-zipbomb-part3.patch" - - ;; https://github.com/madler/unzip/issues/2 - "unzip-32bit-zipbomb-fix.patch")))))) - (define-public ziptime (let ((commit "2a5bc9dfbf7c6a80e5f7cb4dd05b4036741478bc") (revision "0")) @@ -1895,38 +1875,22 @@ timestamps in the file header with a fixed time (1 January 2008). (define-public zziplib (package (name "zziplib") - (version "0.13.69") + (version "0.13.72") (home-page "https://github.com/gdraheim/zziplib") (source (origin (method git-fetch) (uri (git-reference (url home-page) (commit (string-append "v" version)))) (file-name (git-file-name name version)) - (patches (search-patches "zziplib-CVE-2018-16548.patch")) (sha256 (base32 - "0fbk9k7ryas2wh2ykwkvm1pbi40i88rfvc3dydh9xyd7w2jcki92")))) - (replacement zziplib/fixed) - (build-system gnu-build-system) - (arguments - `(#:phases (modify-phases %standard-phases - (add-before 'check 'make-files-writable - (lambda _ - (for-each make-file-writable - (find-files "test" #:directories? #t)) - #t))) - - ;; XXX: The default test target attempts to download external resources and - ;; fails without error: <https://github.com/gdraheim/zziplib/issues/53>. - ;; To prevent confusing log messages, just run a simple zip test that works. - #:test-target "check-readme")) + "0i6bpa2b13z19alm6ig80364dnin1w28cvif18k6wkkb0w3dzp8y")))) + (build-system cmake-build-system) (inputs `(("zlib" ,zlib))) (native-inputs `(("perl" ,perl) ; for the documentation ("pkg-config" ,pkg-config) - ;; for the documentation; Python 3 not supported, - ;; http://forums.gentoo.org/viewtopic-t-863161-start-0.html - ("python" ,python-2) + ("python" ,python) ("zip" ,zip))) ; to create test files (synopsis "Library for accessing zip files") (description @@ -1935,40 +1899,6 @@ timestamps in the file header with a fixed time (1 January 2008). ;; files carry the Zlib license; see "docs/copying.html" for details. (license (list license:lgpl2.0+ license:mpl1.1)))) -(define-public zziplib/fixed - (package - (inherit zziplib) - (name "zziplib") - (version "0.13.72") - (home-page "https://github.com/gdraheim/zziplib") - (source (origin - (method git-fetch) - (uri (git-reference (url home-page) - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0i6bpa2b13z19alm6ig80364dnin1w28cvif18k6wkkb0w3dzp8y")))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'install 'install-compatibility-symlinks - (lambda* (#:key outputs #:allow-other-keys) - (with-directory-excursion - (string-append (assoc-ref outputs "out") "/lib") - (map (lambda (lib new-symlink) - (symlink lib new-symlink)) - (list "libzzip.so.13" "libzzipfseeko.so.13" - "libzzipmmapped.so.13" "libzzipwrap.so.13") - (list "libzzip-0.so.13" "libzzipfseeko-0.so.13" - "libzzipmmapped-0.so.13" "libzzipwrap-0.so.13"))) - #t))))) - (native-inputs - `(("python" ,python) - ,@(alist-delete "python" - (package-native-inputs zziplib)))) - (build-system cmake-build-system))) - (define-public libzip (package (name "libzip") |