summary refs log tree commit diff
path: root/gnu/packages/compression.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/compression.scm')
-rw-r--r--gnu/packages/compression.scm156
1 files changed, 155 insertions, 1 deletions
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 3742ff5865..2667ebb977 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -54,7 +54,6 @@
   #: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)))
 
@@ -1337,3 +1336,158 @@ as is the decompression of data compressed in this manner.  Data compressed by
 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)))