summary refs log tree commit diff
path: root/gnu/packages/zip.scm
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2015-07-15 22:55:26 -0400
committerMark H Weaver <mhw@netris.org>2015-07-15 23:02:27 -0400
commit385ae063c9826baf00ae47d7689f23af52bce753 (patch)
treea8f142d508c8f7188387a5b6fbcf9afa664468f4 /gnu/packages/zip.scm
parent368474150b0a77ff54509f6ad0533d8c5a208bac (diff)
downloadguix-385ae063c9826baf00ae47d7689f23af52bce753.tar.gz
gnu: unzip: Fix CVE-2014-9636 and some other bugs.
* gnu/packages/patches/unzip-CVE-2014-9636.patch,
  gnu/packages/patches/unzip-allow-greater-hostver-values.patch,
  gnu/packages/patches/unzip-increase-size-of-cfactorstr.patch,
  gnu/packages/patches/unzip-initialize-symlink-flag.patch,
  gnu/packages/patches/unzip-remove-build-date.patch: New files.
* gnu-system.am (dist_patch_DATA): Add them.
* gnu/packages/zip.scm (unzip)[source]: Add patches.
  [arguments]: Use 'modify-phases'.  Remove custom 'configure' phase; pass
  additional make-flags instead.  Add custom 'build' phase that builds
  "generic_gcc" target; remove "generic_gcc" from make-flags.
Diffstat (limited to 'gnu/packages/zip.scm')
-rw-r--r--gnu/packages/zip.scm36
1 files changed, 21 insertions, 15 deletions
diff --git a/gnu/packages/zip.scm b/gnu/packages/zip.scm
index e6f5067295..f0f27ddfe2 100644
--- a/gnu/packages/zip.scm
+++ b/gnu/packages/zip.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -81,23 +81,29 @@ Compression ratios of 2:1 to 3:1 are common for text files.")
       (sha256
        (base32
         "0dxx11knh3nk95p2gg2ak777dd11pr7jx5das2g49l262scrcv83"))
-      (patches (list (search-patch "unzip-CVE-2014-8139.patch")
-                     (search-patch "unzip-CVE-2014-8140.patch")
-                     (search-patch "unzip-CVE-2014-8141.patch")))))
+      (patches (map search-patch '("unzip-CVE-2014-8139.patch"
+                                   "unzip-CVE-2014-8140.patch"
+                                   "unzip-CVE-2014-8141.patch"
+                                   "unzip-CVE-2014-9636.patch"
+                                   "unzip-allow-greater-hostver-values.patch"
+                                   "unzip-increase-size-of-cfactorstr.patch"
+                                   "unzip-initialize-symlink-flag.patch"
+                                   "unzip-remove-build-date.patch")))))
     (build-system gnu-build-system)
     ;; no inputs; bzip2 is not supported, since not compiled with BZ_NO_STDIO
     (arguments
-     `(#:make-flags '("generic_gcc")
-       #:phases
-        (alist-replace
-         'configure
-         (lambda* (#:key inputs outputs #:allow-other-keys)
-           (let* ((out (assoc-ref outputs "out")))
-             (copy-file "unix/Makefile" "Makefile")
-             (substitute* "Makefile"
-               (("/usr/local") out)
-               (("/man/") "/share/man/"))))
-        %standard-phases)))
+     `(#: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