X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/ebfe259f6682b43d7f0d3b57b525e25f97410052..f828d05b28ed79c63c0eb521350506ad3b42cbf8:/gnu/packages/compression.scm diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 23a8f997f0..1321791841 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 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2017, 2019 Ludovic Courtès ;;; Copyright © 2013 Andreas Enge ;;; Copyright © 2014, 2015, 2018 Mark H Weaver ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer @@ -14,7 +14,7 @@ ;;; Copyright © 2016 David Craven ;;; Copyright © 2016, 2019 Kei Kebreau ;;; Copyright © 2016, 2018 Marius Bakke -;;; Copyright © 2017 Nils Gillmann +;;; Copyright © 2017 ng0 ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis ;;; Copyright © 2017 Theodoros Foradis ;;; Copyright © 2017 Stefan Reichör @@ -23,6 +23,7 @@ ;;; Copyright © 2018 Rutger Helling ;;; Copyright © 2018 Joshua Sierles, Nextjournal ;;; Copyright © 2018 Pierre Neidhardt +;;; Copyright © 2019 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -55,11 +56,13 @@ #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages curl) + #:use-module (gnu packages documentation) #:use-module (gnu packages file) #:use-module (gnu packages maths) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages qt) #:use-module (gnu packages tls) #:use-module (gnu packages valgrind) #:use-module (ice-9 match) @@ -128,7 +131,16 @@ in compression.") `(#:phases (modify-phases %standard-phases (add-after 'unpack 'enter-source - (lambda _ (chdir "contrib/minizip") #t))))) + (lambda _ (chdir "contrib/minizip") #t)) + (add-after 'install 'remove-crypt-h + (lambda* (#:key outputs #:allow-other-keys) + ;; Remove because it interferes with libc's + ;; given that 'minizip.pc' says "-I…/include/minizip". + ;; Fedora does the same: + ;; . + (let ((out (assoc-ref outputs "out"))) + (delete-file (string-append out "/include/minizip/crypt.h")) + #t)))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -158,8 +170,8 @@ the @code{zlib} source.") (home-page "https://savannah.nongnu.org/projects/fastjar") (synopsis "Replacement for Sun's 'jar' utility") (description - "FastJar is an attempt to create a much faster replacement for Sun's 'jar' -utility. Instead of being written in Java, FastJar is written in C.") + "FastJar is an attempt to create a much faster replacement for Sun's +@code{jar} utility. Instead of being written in Java, FastJar is written in C.") (license license:gpl2+))) (define-public libtar @@ -197,14 +209,14 @@ adding and extracting files to/from a tar archive.") (define-public gzip (package (name "gzip") - (version "1.9") + (version "1.10") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gzip/gzip-" version ".tar.xz")) (sha256 (base32 - "16h8g4acy7fgfxcjacr3wijjsnixwsfd2jhz3zwdi2qrzi262l5f")))) + "1h6p374d3j8d4cdfydzls021xa2yby8myc0h8d6m8bc7k6ncq9c4")))) (build-system gnu-build-system) (synopsis "General file (de)compression (using lzw)") (arguments @@ -420,6 +432,23 @@ compressed with pbzip2 can be decompressed with bzip2).") (base32 "0ibi2zsfaz6l756spjwc5rayf4ckgc9hwmy8qinppcyk4svz64mm")))) (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'move-static-lib + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (static (assoc-ref outputs "static"))) + (mkdir-p (string-append static "/lib")) + (rename-file (string-append out "/lib/liblzma.a") + (string-append static "/lib/liblzma.a")) + ;; Remove reference to the static library from the .la file + ;; so Libtool does the right thing when both the shared and + ;; static library is available. + (substitute* (string-append out "/lib/liblzma.la") + (("^old_library='liblzma.a'") "old_library=''")) + #t)))))) + (outputs '("out" "static")) (synopsis "General-purpose data compression") (description "XZ Utils is free general-purpose data compression software with high @@ -519,14 +548,14 @@ some compression ratio).") (define-public lzip (package (name "lzip") - (version "1.20") + (version "1.21") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/lzip/lzip-" version ".tar.gz")) (sha256 (base32 - "0319q59kb8g324wnj7xzbr7vvlx5bcs13lr34j0zb3kqlyjq2fy9")))) + "12qdcw5k1cx77brv9yxi1h4dzwibhfmdpigrj43nfk8nscwm12z4")))) (build-system gnu-build-system) (home-page "https://www.nongnu.org/lzip/lzip.html") (synopsis "Lossless data compressor based on the LZMA algorithm") @@ -705,7 +734,7 @@ decompression of some loosely related file formats used by Microsoft.") (define-public lz4 (package (name "lz4") - (version "1.8.1.2") + (version "1.9.1") (source (origin (method git-fetch) @@ -713,16 +742,23 @@ decompression of some loosely related file formats used by Microsoft.") (commit (string-append "v" version)))) (sha256 (base32 - "1jggv4lvfav53advnj0pwqgxzn868lrj8dc9zp73iwvqlj82mhmx")) + "1l1caxrik1hqs40vj3bpv1pikw6b74cfazv5c0v6g48zpcbmshl0")) (file-name (git-file-name name version)))) (build-system gnu-build-system) - (native-inputs `(("valgrind" ,valgrind))) ; for tests + (native-inputs `(("valgrind" ,valgrind))) ;for tests (arguments `(#:test-target "test" #:make-flags (list "CC=gcc" (string-append "prefix=" (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases - (delete 'configure)))) ; no configure script + (delete 'configure) ;no configure script + (add-before 'check 'disable-broken-test + (lambda _ + ;; XXX: test_install.sh fails when prefix is a subdirectory. + (substitute* "tests/Makefile" + (("^test: (.*) test-install" _ targets) + (string-append "test: " targets))) + #t))))) (home-page "https://www.lz4.org") (synopsis "Compression algorithm focused on speed") (description "LZ4 is a lossless compression algorithm, providing @@ -1537,14 +1573,27 @@ recreates the stored directory structure by default.") (name "zziplib") (version "0.13.69") (home-page "https://github.com/gdraheim/zziplib") - (source - (origin - (method url-fetch) - (uri (string-append home-page "/archive/v" version ".tar.gz")) - (sha256 - (base32 - "0i052a7shww0fzsxrdp3rd7g4mbzx7324a8ysbc0br7frpblcql4")))) + (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 + "0fbk9k7ryas2wh2ykwkvm1pbi40i88rfvc3dydh9xyd7w2jcki92")))) (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: . + ;; To prevent confusing log messages, just run a simple zip test that works. + #:test-target "check-readme")) (inputs `(("zlib" ,zlib))) (native-inputs `(("perl" ,perl) ; for the documentation @@ -1758,14 +1807,16 @@ non-Windows systems without running the actual installer using wine.") (define-public google-brotli (package (name "google-brotli") - (version "1.0.4") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/google/brotli/archive/v" - version ".tar.gz")) - (sha256 - (base32 - "1hrpmz162k4x3xm6vmbpm443jlfr1kp536p8962y2dncy7gs6s12")))) + (version "1.0.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/brotli.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1811b55wdfg4kbsjcgh1kc938g118jpvif97ilgrmbls25dfpvvw")))) (build-system cmake-build-system) (arguments `(#:phases @@ -1875,3 +1926,40 @@ compressor. UPX typically reduces the file size of programs and shared libraries by around 50%--70%, thus reducing disk space, network load times, download times, and other distribution and storage costs.") (license license:gpl2+))) + +(define-public quazip + (package + (name "quazip") + (version "0.8.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stachenov/quazip.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1g473gnsbkvxpsv8lbsmhspn7jnq86b05zzgqh11r581v8ndvz5s")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f)) ;no test + (native-inputs + `(("doxygen" ,doxygen))) + (inputs + `(("qtbase" ,qtbase) + ("zlib" ,zlib))) + (home-page "https://stachenov.github.io/quazip/index.html") + (synopsis "Qt/C++ wrapper for Minizip") + (description "QuaZIP is a simple C++ wrapper over Gilles Vollant's +ZIP/UNZIP package that can be used to access ZIP archives. It uses +Trolltech's Qt toolkit. + +QuaZIP allows you to access files inside ZIP archives using QIODevice +API, and that means that you can also use QTextStream, QDataStream or +whatever you would like to use on your zipped files. + +QuaZIP provides complete abstraction of the ZIP/UNZIP API, for both +reading from and writing to ZIP archives. ") + ;; Project is distributed under LGPL, but "quazip/z*" "quazip/unzip.*" are + ;; distributed under zlib terms. + (license (list license:lgpl2.1+ license:zlib))))