X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/b316caaa9cda8bf2a8b20d5ba87b5d306f3b39bd..b44ecca69146a3d4025cb51229ca86db201392be:/gnu/packages/compression.scm diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index a732ca26de..a2bf3a1861 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015, 2016 Eric Bavier -;;; Copyright © 2015, 2016 Ricardo Wurmus +;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus ;;; Copyright © 2015, 2017 Leo Famulari ;;; Copyright © 2015 Jeff Mickey ;;; Copyright © 2015, 2016, 2017 Efraim Flashner @@ -12,11 +12,13 @@ ;;; Copyright © 2016 Danny Milosavljevic ;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice ;;; Copyright © 2016 David Craven -;;; Copyright © 2016 Kei Kebreau +;;; Copyright © 2016 Kei Kebreau ;;; Copyright © 2016 Marius Bakke ;;; Copyright © 2017 ng0 ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis -;;; Copyright © 2017 Theodoros Foradis +;;; Copyright © 2017 Theodoros Foradis +;;; Copyright © 2017 Stefan Reichör +;;; Copyright © 2017 Petter ;;; ;;; This file is part of GNU Guix. ;;; @@ -50,6 +52,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages check) #:use-module (gnu packages curl) + #:use-module (gnu packages file) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -114,7 +117,7 @@ in compression.") (modify-phases %standard-phases (add-after 'unpack 'enter-source (lambda _ (chdir "contrib/minizip") #t)) - (add-before 'configure 'autoreconf + (add-after 'enter-source 'autoreconf (lambda _ (zero? (system* "autoreconf" "-vif"))))))) (native-inputs @@ -212,84 +215,78 @@ file; as a result, it is often used in conjunction with \"tar\", resulting in (home-page "https://www.gnu.org/software/gzip/"))) (define-public bzip2 - (let ((build-shared-lib - ;; Build a shared library. - '(lambda* (#:key inputs #:allow-other-keys) - (patch-makefile-SHELL "Makefile-libbz2_so") - (zero? (system* "make" "-f" "Makefile-libbz2_so")))) - (install-shared-lib - '(lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (libdir (string-append out "/lib"))) - (for-each (lambda (file) - (let ((base (basename file))) - (format #t "installing `~a' to `~a'~%" - base libdir) - (copy-file file - (string-append libdir "/" base)))) - (find-files "." "^libbz2\\.so"))))) - (set-cross-environment - '(lambda* (#:key target #:allow-other-keys) - (substitute* (find-files "." "Makefile") - (("CC=.*$") - (string-append "CC = " target "-gcc\n")) - (("AR=.*$") - (string-append "AR = " target "-ar\n")) - (("RANLIB=.*$") - (string-append "RANLIB = " target "-ranlib\n")) - (("^all:(.*)test" _ prerequisites) - ;; Remove 'all' -> 'test' dependency. - (string-append "all:" prerequisites "\n")))))) - (package - (name "bzip2") - (version "1.0.6") - (source (origin - (method url-fetch) - (uri (string-append "http://www.bzip.org/" version "/bzip2-" - version ".tar.gz")) - (sha256 - (base32 - "1kfrc7f0ja9fdn6j1y6yir6li818npy6217hvr3wzmnmzhs8z152")))) - (build-system gnu-build-system) - (arguments - `(#:modules ((guix build gnu-build-system) - (guix build utils) - (srfi srfi-1)) - #:phases - ,(if (%current-target-system) - - ;; Cross-compilation: use the cross tools. - `(alist-cons-before - 'build 'build-shared-lib ,build-shared-lib - (alist-cons-after - 'install 'install-shared-lib ,install-shared-lib - (alist-replace 'configure ,set-cross-environment - %standard-phases))) - - ;; Native compilation: build the shared library. - `(alist-cons-before - 'build 'build-shared-lib ,build-shared-lib - (alist-cons-after - 'install 'install-shared-lib ,install-shared-lib - (alist-delete 'configure %standard-phases)))) + (package + (name "bzip2") + (version "1.0.6") + (source (origin + (method url-fetch) + (uri (string-append "http://www.bzip.org/" version "/bzip2-" + version ".tar.gz")) + (sha256 + (base32 + "1kfrc7f0ja9fdn6j1y6yir6li818npy6217hvr3wzmnmzhs8z152")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1)) + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key target #:allow-other-keys) + (if ,(%current-target-system) + ;; Cross-compilation: use the cross tools. + (substitute* (find-files "." "Makefile") + (("CC=.*$") + (string-append "CC = " target "-gcc\n")) + (("AR=.*$") + (string-append "AR = " target "-ar\n")) + (("RANLIB=.*$") + (string-append "RANLIB = " target "-ranlib\n")) + (("^all:(.*)test" _ prerequisites) + ;; Remove 'all' -> 'test' dependency. + (string-append "all:" prerequisites "\n"))) + #t))) + (add-before 'build 'build-shared-lib + (lambda* (#:key inputs #:allow-other-keys) + (patch-makefile-SHELL "Makefile-libbz2_so") + (zero? (system* "make" "-f" "Makefile-libbz2_so")))) + (add-after 'install 'install-shared-lib + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (libdir (string-append out "/lib"))) + (for-each (lambda (file) + (let ((base (basename file))) + (format #t "installing `~a' to `~a'~%" + base libdir) + (copy-file file + (string-append libdir "/" base)))) + (find-files "." "^libbz2\\.so"))) + #t)) + (add-after 'install-shared-lib 'patch-scripts + (lambda* (#:key outputs inputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (substitute* (string-append out "/bin/bzdiff") + (("/bin/rm") "rm"))) + #t))) - #:make-flags (list (string-append "PREFIX=" - (assoc-ref %outputs "out"))) + #:make-flags (list (string-append "PREFIX=" + (assoc-ref %outputs "out"))) - ;; Don't attempt to run the tests when cross-compiling. - ,@(if (%current-target-system) - '(#:tests? #f) - '()))) - (synopsis "High-quality data compression program") - (description - "bzip2 is a freely available, patent free (see below), high-quality data + ;; Don't attempt to run the tests when cross-compiling. + ,@(if (%current-target-system) + '(#:tests? #f) + '()))) + (synopsis "High-quality data compression program") + (description + "bzip2 is a freely available, patent free (see below), high-quality data compressor. It typically compresses files to within 10% to 15% of the best available techniques (the PPM family of statistical compressors), whilst being around twice as fast at compression and six times faster at decompression.") - (license (license:non-copyleft "file://LICENSE" - "See LICENSE in the distribution.")) - (home-page "http://www.bzip.org/")))) + (license (license:non-copyleft "file://LICENSE" + "See LICENSE in the distribution.")) + (home-page "http://www.bzip.org/"))) (define-public lbzip2 (package @@ -462,21 +459,21 @@ some compression ratio).") (define-public lzip (package (name "lzip") - (version "1.16") + (version "1.18") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/lzip/lzip-" version ".tar.gz")) (sha256 (base32 - "0l9724rw1l3hg2ldr3n7ihqich4m9nc6y7l302bvdj4jmxdw530j")))) + "1p8lvc22sv3damld9ng8y6i8z2dvvpsbi9v7yhr5bc2a20m8iya7")))) (build-system gnu-build-system) (home-page "http://www.nongnu.org/lzip/lzip.html") (synopsis "Lossless data compressor based on the LZMA algorithm") (description "Lzip is a lossless data compressor with a user interface similar to the one of gzip or bzip2. Lzip decompresses almost as fast as gzip and compresses -more than bzip2, which makes it well suited for software distribution and data +more than bzip2, which makes it well-suited for software distribution and data archiving. Lzip is a clean implementation of the LZMA algorithm.") (license license:gpl3+))) @@ -527,14 +524,14 @@ decompressors when faced with corrupted input.") `(("which" ,which))) (arguments `(#:phases - (alist-cons-after - 'patch-source-shebangs 'unpatch-source-shebang - ;; revert the patch-shebang phase on a script which is - ;; in fact test data - (lambda _ - (substitute* "tests/shar-1.ok" - (((which "sh")) "/bin/sh"))) - %standard-phases))) + (modify-phases %standard-phases + (add-after 'patch-source-shebangs 'unpatch-source-shebang + ;; revert the patch-shebang phase on a script which is + ;; in fact test data + (lambda _ + (substitute* "tests/shar-1.ok" + (((which "sh")) "/bin/sh")) + #t))))) (home-page "https://www.gnu.org/software/sharutils/") (synopsis "Archives in shell scripts, uuencode/uudecode") (description @@ -612,14 +609,14 @@ sfArk file format to the uncompressed sf2 format.") (define-public libmspack (package (name "libmspack") - (version "0.5") + (version "0.6") (source (origin (method url-fetch) (uri (string-append "http://www.cabextract.org.uk/libmspack/libmspack-" version "alpha.tar.gz")) (sha256 - (base32 "04413hynb7zizxnkgy9riik3612dwirkpr6fcjrnfl2za9sz4rw9")))) + (base32 "08gr2pcinas6bdqz3k0286g5cnksmcx813skmdwyca6bmj1fxnqy")))) (build-system gnu-build-system) (home-page "http://www.cabextract.org.uk/libmspack/") (synopsis "Compression tools for some formats used by Microsoft") @@ -708,16 +705,15 @@ writing of compressed data created with the zlib and bzip2 libraries.") (define-public lz4 (package (name "lz4") - (version "1.7.5") + (version "1.8.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/lz4/lz4/archive/" "v" version ".tar.gz")) - (patches (search-patches "lz4-fix-test-failures.patch")) (sha256 (base32 - "0zkykqqjfa1q3ji0qmb1ml3l9063qqfh99agyj3cnb02cg6wm401")) + "1xnckwwah74gl98gylf1b00vk4km1d8sgd8865h07ccvgbm8591c")) (file-name (string-append name "-" version ".tar.gz")))) (build-system gnu-build-system) (native-inputs `(("valgrind" ,valgrind))) ; for tests @@ -728,14 +724,14 @@ writing of compressed data created with the zlib and bzip2 libraries.") (string-append "PREFIX=" (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases (delete 'configure)))) ; no configure script - (home-page "https://github.com/lz4/lz4") + (home-page "http://www.lz4.org") (synopsis "Compression algorithm focused on speed") (description "LZ4 is a lossless compression algorithm, providing compression speed at 400 MB/s per core (0.16 Bytes/cycle). It also features an extremely fast decoder, with speed in multiple GB/s per core (0.71 Bytes/cycle). A high compression derivative, called LZ4_HC, is also provided. It trades CPU time for compression ratio.") - ;; The libraries (lz4, lz4hc, and xxhash are BSD licenced. The command + ;; The libraries (lz4, lz4hc, and xxhash) are BSD licenced. The command ;; line interface programs (lz4, fullbench, fuzzer, datagen) are GPL2+. (license (list license:bsd-2 license:gpl2+)))) @@ -765,6 +761,28 @@ the LZ4 frame format.") (define-public python2-lz4 (package-with-python2 python-lz4)) +(define-public python-lzstring + (package + (name "python-lzstring") + (version "1.0.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "lzstring" version)) + (sha256 + (base32 + "1d3ck454y41mii0gcjabpmp2skb7n0f9zk232gycqdv8z2jxakfm")))) + (build-system python-build-system) + (propagated-inputs + `(("python-future" ,python-future))) + (home-page "https://github.com/gkovacs/lz-string-python") + (synopsis "String compression") + (description "Lz-string is a string compressor library for Python.") + (license license:expat))) + +(define-public python2-lzstring + (package-with-python2 python-lzstring)) + (define-public squashfs-tools (package (name "squashfs-tools") @@ -961,7 +979,7 @@ respectively, based on the reference implementation from Google.") (modify-phases %standard-phases (add-after 'unpack 'enter-build-directory (lambda _ (chdir "xdelta3"))) - (add-before 'configure 'autoconf + (add-after 'enter-build-directory 'autoconf (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) (home-page "http://xdelta.com") (synopsis "Delta encoder for binary files") @@ -1288,7 +1306,7 @@ RAR archives.") (define-public zstd (package (name "zstd") - (version "1.3.0") + (version "1.3.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/facebook/zstd/archive/v" @@ -1296,17 +1314,7 @@ RAR archives.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0j5kf0phx4w4b5x7aqwc10lxi9ix7rxhxk0df37cpdrqni1sdnqg")) - (modules '((guix build utils))) - (snippet - ;; Remove non-free source files. - '(begin - (for-each delete-file-recursively - (list - ;; Commercial use of the following is not allowed. - "examples" - "LICENSE-examples")) - #t)))) + "12krs9k5f408kyn0d7dwxqyc67177mgd14783ay10rafqsim8l5c")))) (build-system gnu-build-system) (arguments `(#:phases @@ -1325,7 +1333,10 @@ zlib. In most scenarios, both compression and decompression can be performed in trade-off between compression ratio and speed, without affecting decompression speed.") (license (list license:bsd-3 ; the main top-level LICENSE file - license:bsd-2 ; quite a few files have but 2 clauses + license:bsd-2 ; many files explicitly state 2-Clause + license:gpl2 ; the mail top-level COPYING file + license:gpl3+ ; tests/gzip/*.sh + license:expat ; lib/dictBuilder/divsufsort.[ch] license:public-domain ; zlibWrapper/examples/fitblk* license:zlib)))) ; zlibWrapper/{gz*.c,gzguts.h} @@ -1527,21 +1538,24 @@ manipulate, read, and write Zip archive files.") (define-public libzip (package (name "libzip") - (version "1.2.0") + (version "1.3.0") (source (origin (method url-fetch) (uri (string-append - "https://nih.at/libzip/libzip-" version ".tar.gz")) + "https://nih.at/libzip/libzip-" version ".tar.xz")) (sha256 (base32 - "17vxj2ffsxwh8lkc6801ppmwj15jp8q58rin76znxfbx88789ybc")))) + "0wykw0q9dwdzx0gssi2dpgckx9ggr2spzc1amjnff6wi6kz6x4xa")))) (arguments - `(#:phases + '(#:phases (modify-phases %standard-phases - (add-before 'configure 'patch-perl + (add-after 'build 'remove-failing-tests + ;; These tests are known to fail on 32-bit architectures. + ;; see thread: https://nih.at/listarchive/libzip-discuss/msg00713.html (lambda _ - (substitute* "regress/runtest.in" - (("/usr/bin/env perl") (which "perl")))))))) + (substitute* "regress/Makefile" + (("encryption-nonrandom") "#encryption-nonrandom")) + #t))))) (native-inputs `(("perl" ,perl))) (inputs @@ -1554,3 +1568,60 @@ zip archives. Files can be added from data buffers, files, or compressed data copied directly from other zip archives. Changes made without closing the archive can be reverted.") (license license:bsd-3))) + +(define-public atool + (package + (name "atool") + (version "0.39.0") + (source + (origin + (method url-fetch) + (uri (string-append "http://savannah.nongnu.org/download/atool/atool-" + version ".tar.gz")) + (sha256 + (base32 + "0fvhzip2v08jgnlfpyj6rapan39xlsl1ksgq4lp8gfsai2ah1xma")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'embed-absolute-file-name + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "atool" + (("(^\\$::cfg_path_file.*= )'file'" _ pre) + (string-append pre "'" (assoc-ref inputs "file") + "/bin/file'"))) + #t))))) + (inputs + `(("perl" ,perl) + ("file" ,file))) + (home-page "http://www.nongnu.org/atool/") + (synopsis "Universal tool to manage file archives of various types") + (description "The main command is @command{aunpack} which extracts files +from an archive. The other commands provided are @command{apack} (to create +archives), @command{als} (to list files in archives), and @command{acat} (to +extract files to standard out). As @command{atool} invokes external programs +to handle the archives, not all commands may be supported for a certain type +of archives.") + (license license:gpl2+))) + +(define-public perl-archive-extract + (package + (name "perl-archive-extract") + (version "0.80") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/B/BI/BINGOS/Archive-Extract-" + version ".tar.gz")) + (sha256 + (base32 + "1x15j1q6w6z8hqyqgap0lz4qbq2174wfhksy1fdd653ccbaw5jr5")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Archive-Extract/") + (synopsis "Generic archive extracting mechanism") + (description "It allows you to extract any archive file of the type .tar, +.tar.gz, .gz, .Z, tar.bz2, .tbz, .bz2, .zip, .xz,, .txz, .tar.xz or .lzma +without having to worry how it does so, or use different interfaces for each +type by using either Perl modules, or command-line tools on your system.") + (license license:perl-license)))