Subject: [bug#27347] [PATCH] gnu: Move contents of zip module into compression module.

From: Arun Isaac <[email-masked]>
Date: Tue, 13 Jun 2017 00:37:02 +0530

* gnu/packages/zip.scm (zip, unzip, zziplib, perl-zip): Move to...
* gnu/packages/compression.scm: ...here.
* gnu/packages/zip.scm: Delete file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Unregister deleted file.
* gnu/packages/{audio, avr, bioinformatics, busybox, cdrom, ci, compression,
docbook, documentation, fonts, fpga, game-development, games, gl, gnome,
gnuzilla, graphics, guile, haskell, image, java, kodi, ldc, libreoffice,
markup, maths, mc, monitoring, music, php, pretty-print, python, scheme,
smalltalk, statistics, synergy, tex, textutils, video, web-browsers, xml,
zip}.scm, guix/build-system/{ant, font}.scm, guix/{download, packages}.scm:
Adapt module import.
---
 gnu/local.mk                      |   1 -
 gnu/packages/audio.scm            |   1 -
 gnu/packages/avr.scm              |   4 +-
 gnu/packages/bioinformatics.scm   |   1 -
 gnu/packages/busybox.scm          |   4 +-
 gnu/packages/cdrom.scm            |   1 -
 gnu/packages/ci.scm               |   1 -
 gnu/packages/compression.scm      | 150 +++++++++++++++++++++++++++++++-
 gnu/packages/docbook.scm          |   3 +-
 gnu/packages/documentation.scm    |   3 +-
 gnu/packages/fonts.scm            |   3 +-
 gnu/packages/fpga.scm             |   1 -
 gnu/packages/game-development.scm |   1 -
 gnu/packages/games.scm            |   1 -
 gnu/packages/gl.scm               |   1 -
 gnu/packages/gnome.scm            |   1 -
 gnu/packages/gnuzilla.scm         |   1 -
 gnu/packages/graphics.scm         |   3 +-
 gnu/packages/guile.scm            |   1 -
 gnu/packages/haskell.scm          |   1 -
 gnu/packages/image.scm            |   1 -
 gnu/packages/java.scm             |   1 -
 gnu/packages/kodi.scm             |   3 +-
 gnu/packages/ldc.scm              |   3 +-
 gnu/packages/libreoffice.scm      |   3 +-
 gnu/packages/markup.scm           |   4 +-
 gnu/packages/maths.scm            |   1 -
 gnu/packages/mc.scm               |   2 +-
 gnu/packages/monitoring.scm       |   3 +-
 gnu/packages/music.scm            |   1 -
 gnu/packages/php.scm              |   1 -
 gnu/packages/pretty-print.scm     |   2 +-
 gnu/packages/python.scm           |   1 -
 gnu/packages/scheme.scm           |   1 -
 gnu/packages/smalltalk.scm        |   4 +-
 gnu/packages/statistics.scm       |   1 -
 gnu/packages/synergy.scm          |   1 -
 gnu/packages/tex.scm              |   1 -
 gnu/packages/textutils.scm        |   4 +-
 gnu/packages/video.scm            |   3 +-
 gnu/packages/web-browsers.scm     |   1 -
 gnu/packages/xml.scm              |   1 -
 gnu/packages/zip.scm              | 177 --------------------------------------
 guix/build-system/ant.scm         |   2 +-
 guix/build-system/font.scm        |   2 +-
 guix/download.scm                 |   2 +-
 guix/packages.scm                 |   2 +-
 47 files changed, 174 insertions(+), 237 deletions(-)
 delete mode 100644 gnu/packages/zip.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 892d1ee26..ac7425d7f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -416,7 +416,6 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/xorg.scm				\
   %D%/packages/xfce.scm				\
   %D%/packages/zile.scm				\
-  %D%/packages/zip.scm				\
 						\
   %D%/services.scm				\
   %D%/services/admin.scm			\
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index dc668ce13..3e4b998b1 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -79,7 +79,6 @@
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages zip)
   #:use-module (srfi srfi-1))
 
 (define-public alsa-modular-synth
diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm
index 916f7983f..aaa042804 100644
--- a/gnu/packages/avr.scm
+++ b/gnu/packages/avr.scm
@@ -27,11 +27,11 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages cross-base)
   #:use-module (gnu packages flashing-tools)
   #:use-module (gnu packages gcc)
-  #:use-module (gnu packages vim)
-  #:use-module (gnu packages zip))
+  #:use-module (gnu packages vim))
 
 (define-public avr-binutils
   (package
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index b47f13693..b18da56ed 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -96,7 +96,6 @@
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages zip)
   #:use-module (srfi srfi-1))
 
 (define-public r-ape
diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scm
index 988154eed..096e26ca0 100644
--- a/gnu/packages/busybox.scm
+++ b/gnu/packages/busybox.scm
@@ -24,8 +24,8 @@
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
-  #:use-module (gnu packages perl)
-  #:use-module (gnu packages zip))
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages perl))
 
 (define-public busybox
   (package
diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm
index 15329b310..704e8ad36 100644
--- a/gnu/packages/cdrom.scm
+++ b/gnu/packages/cdrom.scm
@@ -37,7 +37,6 @@
   #:use-module (gnu packages audio)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages compression)
-  #:use-module (gnu packages zip)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gettext)
diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm
index c26d02f17..e2cb712bf 100644
--- a/gnu/packages/ci.scm
+++ b/gnu/packages/ci.scm
@@ -39,7 +39,6 @@
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
-  #:use-module (gnu packages zip)
   #:use-module (guix build-system gnu))
 
 (define-public hydra
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 3742ff586..4a8d4fbe9 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,152 @@ 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"))
+       (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)))
diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm
index 067ad1c3b..7a309b0bc 100644
--- a/gnu/packages/docbook.scm
+++ b/gnu/packages/docbook.scm
@@ -31,8 +31,7 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system trivial)
-  #:use-module (guix build-system python)
-  #:autoload   (gnu packages zip) (unzip))
+  #:use-module (guix build-system python))
 
 (define-public docbook-xml
   (package
diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm
index ba8eea393..5d3d6f170 100644
--- a/gnu/packages/documentation.scm
+++ b/gnu/packages/documentation.scm
@@ -37,8 +37,7 @@
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages perl)
-  #:use-module (gnu packages xml)
-  #:autoload   (gnu packages zip) (unzip))
+  #:use-module (gnu packages xml))
 
 (define-public asciidoc
   (package
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 59e60dc29..025f9c2aa 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -53,8 +53,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages xorg)
-  #:use-module (gnu packages zip))
+  #:use-module (gnu packages xorg))
 
 (define-public font-inconsolata
   (package
diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm
index 0b98e2db0..c371b1981 100644
--- a/gnu/packages/fpga.scm
+++ b/gnu/packages/fpga.scm
@@ -35,7 +35,6 @@
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages linux)
-  #:use-module (gnu packages zip)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gperf)
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 5253d0c91..2a780b447 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -50,7 +50,6 @@
   #:use-module (gnu packages qt)
   #:use-module (gnu packages video)
   #:use-module (gnu packages compression)
-  #:use-module (gnu packages zip)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages xorg)
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 9bbf5d022..9bcf8721a 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -110,7 +110,6 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages linux)
-  #:use-module (gnu packages zip)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages lua)
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 745780930..08f6187f8 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -44,7 +44,6 @@
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages zip)
   #:use-module (guix download)
   #:use-module (guix build utils)
   #:use-module (guix build-system gnu)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 1080ddfeb..3aedfb5b4 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -129,7 +129,6 @@
   #:use-module (gnu packages readline)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages qemu)
-  #:use-module (gnu packages zip)
   #:use-module (gnu packages speech)
   #:use-module (srfi srfi-1))
 
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 8d03f0e00..5ecb58bcf 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -58,7 +58,6 @@
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xdisorg)
-  #:use-module (gnu packages zip)
   #:use-module (gnu packages readline))
 
 (define-public mozjs
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 4fa403324..6c813e8a3 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -62,8 +62,7 @@
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xml)
-  #:use-module (gnu packages xorg)
-  #:use-module (gnu packages zip))
+  #:use-module (gnu packages xorg))
 
 (define-public blender
   (package
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index b57f4c3b6..68bba06ce 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -62,7 +62,6 @@
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages zip)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 0bafdf6f6..72ae20d93 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -46,7 +46,6 @@
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages zip)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system haskell)
   #:use-module (guix download)
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index abac17d6d..72669ea6d 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -55,7 +55,6 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages zip)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 9a129b8d9..7688ca740 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -58,7 +58,6 @@
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages zip)
   #:use-module (gnu packages texinfo)
   #:use-module ((srfi srfi-1) #:select (fold alist-delete))
   #:use-module (srfi srfi-11)
diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm
index 061d5f1b2..c8a65af79 100644
--- a/gnu/packages/kodi.scm
+++ b/gnu/packages/kodi.scm
@@ -68,8 +68,7 @@
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages assembly)
-  #:use-module (gnu packages zip))
+  #:use-module (gnu packages assembly))
 
 (define-public crossguid
   (let ((commit "8f399e8bd4252be9952f3dfa8199924cc8487ca4"))
diff --git a/gnu/packages/ldc.scm b/gnu/packages/ldc.scm
index 59036a531..7f9dde746 100644
--- a/gnu/packages/ldc.scm
+++ b/gnu/packages/ldc.scm
@@ -35,8 +35,7 @@
   #:use-module (gnu packages libedit)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages textutils)
-  #:use-module (gnu packages zip))
+  #:use-module (gnu packages textutils))
 
 (define-public rdmd
   (package
diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index 809e28e27..bdbf3f850 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -65,8 +65,7 @@
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages xml)
-  #:use-module (gnu packages xorg)
-  #:use-module (gnu packages zip))
+  #:use-module (gnu packages xorg))
 
 (define-public ixion
   (package
diff --git a/gnu/packages/markup.scm b/gnu/packages/markup.scm
index cd883b23e..4afe8c3c0 100644
--- a/gnu/packages/markup.scm
+++ b/gnu/packages/markup.scm
@@ -26,10 +26,10 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system cmake)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages web)
-  #:use-module (gnu packages zip))
+  #:use-module (gnu packages web))
 
 (define-public hoedown
   (package
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 0a43ad465..8ad395639 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -96,7 +96,6 @@
   #:use-module (gnu packages tls)
   #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xml)
-  #:use-module (gnu packages zip)
   #:use-module (srfi srfi-1))
 
 (define-public aris
diff --git a/gnu/packages/mc.scm b/gnu/packages/mc.scm
index bae12439f..0770304a2 100644
--- a/gnu/packages/mc.scm
+++ b/gnu/packages/mc.scm
@@ -31,7 +31,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages check)
   #:use-module (gnu packages perl)
-  #:use-module (gnu packages zip))
+  #:use-module (gnu packages compression))
 
 (define-public mc
   (package
diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm
index ac80a6bb9..c136265c5 100644
--- a/gnu/packages/monitoring.scm
+++ b/gnu/packages/monitoring.scm
@@ -27,8 +27,7 @@
   #:use-module (gnu packages gd)
   #:use-module (gnu packages image)
   #:use-module (gnu packages mail)
-  #:use-module (gnu packages perl)
-  #:use-module (gnu packages zip))
+  #:use-module (gnu packages perl))
 
 (define-public nagios
   (package
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 186dc276b..b40bbb002 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -105,7 +105,6 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xiph)
-  #:use-module (gnu packages zip)
   #:use-module ((srfi srfi-1) #:select (last)))
 
 (define-public aria-maestosa
diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm
index b6f64bc0e..7d569eef3 100644
--- a/gnu/packages/php.scm
+++ b/gnu/packages/php.scm
@@ -44,7 +44,6 @@
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages zip)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm
index a11c34330..8cee89dd4 100644
--- a/gnu/packages/pretty-print.scm
+++ b/gnu/packages/pretty-print.scm
@@ -37,7 +37,7 @@
   #:use-module (gnu packages lua)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages zip))
+  #:use-module (gnu packages compression))
 
 (define-public a2ps
   (package
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 03e6bb656..f567a4bf9 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -109,7 +109,6 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xdisorg)
-  #:use-module (gnu packages zip)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages bdw-gc)
   #:use-module (guix packages)
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index eacfd733d..bcb715327 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -59,7 +59,6 @@
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages gl)
-  #:use-module (gnu packages zip)
   #:use-module (ice-9 match))
 
 (define (mit-scheme-source-directory system version)
diff --git a/gnu/packages/smalltalk.scm b/gnu/packages/smalltalk.scm
index 675ca0ce5..f4a50ded2 100644
--- a/gnu/packages/smalltalk.scm
+++ b/gnu/packages/smalltalk.scm
@@ -28,6 +28,7 @@
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
@@ -36,8 +37,7 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
-  #:use-module (gnu packages xorg)
-  #:use-module (gnu packages zip))
+  #:use-module (gnu packages xorg))
 
 (define-public smalltalk
   (package
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index ae44bfb01..cb2dbca75 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -58,7 +58,6 @@
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages zip)
   #:use-module (srfi srfi-1))

diff --git a/gnu/packages/synergy.scm b/gnu/packages/synergy.scm
index b971cbe3a..1627d8443 100644
--- a/gnu/packages/synergy.scm
+++ b/gnu/packages/synergy.scm
@@ -28,7 +28,6 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages zip)
   #:use-module (srfi srfi-26))
 
 (define-public synergy
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 7839e16b2..879eb0142 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -56,7 +56,6 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xdisorg)
-  #:use-module (gnu packages zip)
   #:autoload   (gnu packages texinfo) (texinfo)
   #:use-module (ice-9 ftw)
   #:use-module (srfi srfi-1))
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index 7bc2fc47f..152d08059 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -38,14 +38,14 @@
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages java)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages readline)
-  #:use-module (gnu packages slang)
-  #:use-module (gnu packages zip))
+  #:use-module (gnu packages slang))
 
 (define-public recode
   (package
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 1dcb0aa8e..7112e53bc 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -106,8 +106,7 @@
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages assembly)
-  #:use-module (gnu packages zip))
+  #:use-module (gnu packages assembly))
 
 (define-public aalib
   (package
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index a10b1367e..146f3a1fa 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -39,7 +39,6 @@
   #:use-module (gnu packages image)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages zip)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python))
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 9635413b8..4f9e15a98 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -40,7 +40,6 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages web)
-  #:use-module (gnu packages zip)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
diff --git a/gnu/packages/zip.scm b/gnu/packages/zip.scm
deleted file mode 100644
index 8feb4fea2..000000000
--- a/gnu/packages/zip.scm
+++ /dev/null
@@ -1,177 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013 Andreas Enge <[email-masked]>
-;;; Copyright © 2014, 2015 Mark H Weaver <[email-masked]>
-;;;
-;;; This file is part of GNU Guix.
-;;;
-;;; GNU Guix is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3 of the License, or (at
-;;; your option) any later version.
-;;;
-;;; GNU Guix is distributed in the hope that it will be useful, but
-;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (gnu packages zip)
-  #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix packages)
-  #:use-module (guix download)
-  #:use-module (guix build-system gnu)
-  #:use-module (gnu packages)
-  #:use-module (gnu packages compression)
-  #:use-module (gnu packages perl)
-  #:use-module (guix build-system perl)
-  #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages python))
-
-(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"))
-      (sha256
-       (base32
-        "0nsjqxw017hiyp524p9316283jlf5piixc1091gkimhz38zh7f51"))))
-    (build-system gnu-build-system)
-    (inputs
-     `(("zlib" ,zlib)))
-    (native-inputs `(("perl" ,perl)     ; for the documentation
-                     ("pkg-config" ,pkg-config)
-                     ("python" ,python-2) ; for the documentation; Python 3 not supported,
-                                        ; http://forums.gentoo.org/viewtopic-t-863161-start-0.html
-                     ("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)))
diff --git a/guix/build-system/ant.scm b/guix/build-system/ant.scm
index 228b4e60d..e0870a605 100644
--- a/guix/build-system/ant.scm
+++ b/guix/build-system/ant.scm
@@ -58,7 +58,7 @@
 (define (default-zip)
   "Return the default ZIP package."
   ;; Lazily resolve the binding to avoid a circular dependency.
-  (let ((zip-mod (resolve-interface '(gnu packages zip))))
+  (let ((zip-mod (resolve-interface '(gnu packages compression))))
     (module-ref zip-mod 'zip)))
 
 (define* (lower name
diff --git a/guix/build-system/font.scm b/guix/build-system/font.scm
index f448c302c..f75789c1c 100644
--- a/guix/build-system/font.scm
+++ b/guix/build-system/font.scm
@@ -56,7 +56,7 @@
                          '())
                    ,@inputs
                    ,(list "tar" (module-ref (resolve-interface '(gnu packages base)) 'tar))
-                   ,(list "unzip" (module-ref (resolve-interface '(gnu packages zip)) 'unzip))
+                   ,(list "unzip" (module-ref (resolve-interface '(gnu packages compression)) 'unzip))
                    ,@(let ((compression (resolve-interface '(gnu packages compression))))
                        (map (match-lambda
                               ((name package)
diff --git a/guix/download.scm b/guix/download.scm
index bed1f502c..c1da51547 100644
--- a/guix/download.scm
+++ b/guix/download.scm
@@ -528,7 +528,7 @@ own.  This helper makes it easier to deal with \"zip bombs\"."
       (_
        (basename url))))
   (define unzip
-    (module-ref (resolve-interface '(gnu packages zip)) 'unzip))
+    (module-ref (resolve-interface '(gnu packages compression)) 'unzip))
 
   (mlet %store-monad ((drv (url-fetch url hash-algo hash
                                       (string-append "zipbomb-"
diff --git a/guix/packages.scm b/guix/packages.scm
index f4967f98f..2e02b7356 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -401,7 +401,7 @@ object."
       ("bzip2" ,(ref '(gnu packages compression) 'bzip2))
       ("gzip"  ,(ref '(gnu packages compression) 'gzip))
       ("lzip"  ,(ref '(gnu packages compression) 'lzip))
-      ("unzip" ,(ref '(gnu packages zip) 'unzip))
+      ("unzip" ,(ref '(gnu packages compression) 'unzip))
       ("patch" ,(ref '(gnu packages base) 'patch))
       ("locales" ,(ref '(gnu packages base) 'glibc-utf8-locales)))))
 
-- 
2.12.2