;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 David Craven <david@craven.ch>
-;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
+;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
+;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
+;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
+;;; Copyright © 2017 Petter <petter@mykolab.ch>
;;;
;;; This file is part of GNU Guix.
;;;
#: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)
#:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)
- #:use-module (gnu packages zip)
#:use-module (ice-9 match)
#:use-module ((srfi srfi-1) #:select (last)))
(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
(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
(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+)))
+(define-public lziprecover
+ (package
+ (name "lziprecover")
+ (version "1.19")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://savannah/lzip/" name "/"
+ name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0z5fbkm0qprypjf7kxkqganniibj0zml13zvfkrchnjafcmmzyld"))))
+ (build-system gnu-build-system)
+ (home-page "http://www.nongnu.org/lzip/lziprecover.html")
+ (synopsis "Recover and decompress data from damaged lzip files")
+ (description
+ "Lziprecover is a data recovery tool and decompressor for files in the lzip
+compressed data format (.lz). It can test the integrity of lzip files, extract
+data from damaged ones, and repair most files with small errors (up to one
+single-byte error per member) entirely.
+
+Lziprecover is not a replacement for regular backups, but a last line of defence
+when even the backups are corrupt. It can recover files by merging the good
+parts of two or more damaged copies, such as can be easily produced by running
+@command{ddrescue} on a failing device.
+
+This package also includes @command{unzcrash}, a tool to test the robustness of
+decompressors when faced with corrupted input.")
+ (license (list license:bsd-2 ; arg_parser.{cc,h}
+ license:gpl2+)))) ; everything else
+
(define-public sharutils
(package
(name "sharutils")
`(("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
(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")
(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
(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+))))
(define-public python-lz4
(package
(name "python-lz4")
- (version "0.8.2")
+ (version "0.10.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "lz4" version))
(sha256
(base32
- "1irad4sq4hdr30fr53smvv3zzk4rddcf9b4jx19w8s9xsxhr1x3b"))))
+ "0ghv1xbaq693kgww1x9c22bplz479ls9szjsaa4ig778ls834hm0"))))
(build-system python-build-system)
(native-inputs
- `(("python-nose" ,python-nose)))
+ `(("python-nose" ,python-nose)
+ ("python-setuptools-scm" ,python-setuptools-scm)))
(home-page "https://github.com/python-lz4/python-lz4")
- (synopsis "LZ4 Bindings for Python")
+ (synopsis "LZ4 bindings for Python")
(description
"This package provides python bindings for the lz4 compression library
by Yann Collet. The project contains bindings for the LZ4 block format and
(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")
(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")
("unshield-avigomanager11b22.zip"
,(origin
(method url-fetch)
- (uri (string-append "https://www.dropbox.com/s/8r4b6752swe3nhu/\"
-unshield-avigomanager11b22.zip?dl=1"))
+ (uri (string-append "https://www.dropbox.com/s/8r4b6752swe3nhu/"
+ "unshield-avigomanager11b22.zip?dl=1"))
(sha256
(base32 "0fwq7lih04if68wpwpsk5wjqyvh32db76a41sq6gbx4dn1lc3ddn"))
(file-name "unshield-avigomanager11b22.zip")))
("unshield-the-feeble-files-spanish.zip"
,(origin
(method url-fetch)
- (uri (string-append "https://www.dropbox.com/s/1ng0z9kfxc7eb1e/\"
-unshield-the-feeble-files-spanish.zip?dl=1"))
+ (uri (string-append "https://www.dropbox.com/s/1ng0z9kfxc7eb1e/"
+ "unshield-the-feeble-files-spanish.zip?dl=1"))
(sha256
(base32 "1k5cw6vnpja8yjlnhx5124xrw9i8s1l539hfdqqrqz3l5gn0bnyd"))
(file-name "unshield-the-feeble-files-spanish.zip")))))
(define-public zstd
(package
(name "zstd")
- (version "1.2.0")
+ (version "1.3.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/facebook/zstd/archive/v"
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1yyb8z03z9rw74k1d9dygcqxhx76717xq29agz57d0k3lf9lazja"))
- (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
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}
other implementations will only be decompressed by two threads: one performing
the actual decompression, the other input and output.")
(license (package-license zstd))))
+
+(define-public zip
+ (package
+ (name "zip")
+ (version "3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/infozip"
+ "/Zip%203.x%20%28latest%29/3.0/zip30.tar.gz"))
+ (sha256
+ (base32
+ "0sb3h3067pzf3a7mlxn1hikpcjrsvycjcnj9hl9b1c3ykcgvps7h"))))
+ (build-system gnu-build-system)
+ (inputs `(("bzip2" ,bzip2)))
+ (arguments
+ `(#:tests? #f ; no test target
+ #:make-flags (let ((out (assoc-ref %outputs "out")))
+ (list "-f" "unix/Makefile"
+ (string-append "prefix=" out)
+ (string-append "MANDIR=" out "/share/man/man1")))
+ #:modules ((guix build gnu-build-system)
+ (guix build utils)
+ (srfi srfi-1))
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'build
+ (lambda* (#:key (make-flags '()) #:allow-other-keys)
+ (zero? (apply system* "make" "generic_gcc" make-flags))))
+ (delete 'configure))))
+ (home-page "http://www.info-zip.org/Zip.html")
+ (synopsis "Compression and file packing utility")
+ (description
+ "Zip is a compression and file packaging/archive utility. Zip is useful
+for packaging a set of files for distribution, for archiving files, and for
+saving disk space by temporarily compressing unused files or directories.
+Zip puts one or more compressed files into a single ZIP archive, along with
+information about the files (name, path, date, time of last modification,
+protection, and check information to verify file integrity). An entire
+directory structure can be packed into a ZIP archive with a single command.
+
+Zip has one compression method (deflation) and can also store files without
+compression. Zip automatically chooses the better of the two for each file.
+Compression ratios of 2:1 to 3:1 are common for text files.")
+ (license (license:non-copyleft "file://LICENSE"
+ "See LICENSE in the distribution."))))
+
+(define-public unzip
+ (package (inherit zip)
+ (name "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"))))
+ (build-system gnu-build-system)
+ ;; no inputs; bzip2 is not supported, since not compiled with BZ_NO_STDIO
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'build
+ (lambda* (#:key make-flags #:allow-other-keys)
+ (zero? (apply system* "make"
+ `("-j" ,(number->string
+ (parallel-job-count))
+ ,@make-flags
+ "generic_gcc"))))))
+ #:make-flags (list "-f" "unix/Makefile"
+ (string-append "prefix=" %output)
+ (string-append "MANDIR=" %output "/share/man/man1"))))
+ (home-page "http://www.info-zip.org/UnZip.html")
+ (synopsis "Decompression and file extraction utility")
+ (description
+ "UnZip is an extraction utility for archives compressed in .zip format,
+also called \"zipfiles\".
+
+UnZip lists, tests, or extracts files from a .zip archive. The default
+behaviour (with no options) is to extract into the current directory, and
+subdirectories below it, all files from the specified zipfile. UnZip
+recreates the stored directory structure by default.")
+ (license (license:non-copyleft "file://LICENSE"
+ "See LICENSE in the distribution."))))
+
+(define-public zziplib
+ (package
+ (name "zziplib")
+ (version "0.13.62")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/zziplib/zziplib13/"
+ version "/zziplib-"
+ version ".tar.bz2"))
+ (patches (search-patches "zziplib-CVE-2017-5974.patch"
+ "zziplib-CVE-2017-5975.patch"
+ "zziplib-CVE-2017-5976.patch"
+ "zziplib-CVE-2017-5978.patch"
+ "zziplib-CVE-2017-5979.patch"
+ "zziplib-CVE-2017-5981.patch"))
+ (sha256
+ (base32
+ "0nsjqxw017hiyp524p9316283jlf5piixc1091gkimhz38zh7f51"))))
+ (build-system gnu-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)
+ ("zip" ,zip))) ; to create test files
+ (arguments
+ `(#:parallel-tests? #f)) ; since test files are created on the fly
+ (home-page "http://zziplib.sourceforge.net/")
+ (synopsis "Library for accessing zip files")
+ (description
+ "ZZipLib is a library based on zlib for accessing zip files.")
+ (license license:lgpl2.0+)))
+
+(define-public perl-zip
+ (package
+ (name "perl-zip")
+ (version "1.59")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/A/AD/ADAMK/Archive-Zip-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0m31qlppg65vh32pwxkwjby02q70abx49d2yk6vfd4585fqb27cx"))))
+ (build-system perl-build-system)
+ (synopsis "Provides an interface to ZIP archive files")
+ (description "The Archive::Zip module allows a Perl program to create,
+manipulate, read, and write Zip archive files.")
+ (home-page "http://search.cpan.org/~adamk/Archive-Zip-1.30/")
+ (license license:perl-license)))
+
+(define-public libzip
+ (package
+ (name "libzip")
+ (version "1.3.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://nih.at/libzip/libzip-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0wykw0q9dwdzx0gssi2dpgckx9ggr2spzc1amjnff6wi6kz6x4xa"))))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (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/Makefile"
+ (("encryption-nonrandom") "#encryption-nonrandom"))
+ #t)))))
+ (native-inputs
+ `(("perl" ,perl)))
+ (inputs
+ `(("zlib" ,zlib)))
+ (build-system gnu-build-system)
+ (home-page "https://nih.at/libzip/index.html")
+ (synopsis "C library for reading, creating, and modifying zip archives")
+ (description "Libzip is a C library for reading, creating, and modifying
+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)))