summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2015-07-19 20:28:56 -0400
committerMark H Weaver <mhw@netris.org>2015-07-19 20:28:56 -0400
commite170571887dc072edae8b197527921c47743c62c (patch)
treec77e6d7ff744c50cd2741fd92a0c73503daa83c2
parentdcd9c2505c0230c13556e233dbe4d81604a4abbd (diff)
parent1b4e48d498a96d478baa1aae7d9c7ecdbd817d6f (diff)
Merge branch 'core-updates'
-rw-r--r--doc/guix.texi2
-rw-r--r--gnu-system.am9
-rw-r--r--gnu/packages/admin.scm6
-rw-r--r--gnu/packages/base.scm5
-rw-r--r--gnu/packages/bash.scm8
-rw-r--r--gnu/packages/bootstrap.scm38
-rw-r--r--gnu/packages/commencement.scm1
-rw-r--r--gnu/packages/cross-base.scm8
-rw-r--r--gnu/packages/ed.scm4
-rw-r--r--gnu/packages/emacs.scm3
-rw-r--r--gnu/packages/fontutils.scm4
-rw-r--r--gnu/packages/gcc.scm12
-rw-r--r--gnu/packages/gettext.scm5
-rw-r--r--gnu/packages/gnome.scm6
-rw-r--r--gnu/packages/gnupg.scm4
-rw-r--r--gnu/packages/gnuzilla.scm1
-rw-r--r--gnu/packages/haskell.scm5
-rw-r--r--gnu/packages/libidn.scm4
-rw-r--r--gnu/packages/libunistring.scm4
-rw-r--r--gnu/packages/linux.scm38
-rw-r--r--gnu/packages/lisp.scm5
-rw-r--r--gnu/packages/make-bootstrap.scm4
-rw-r--r--gnu/packages/multiprecision.scm14
-rw-r--r--gnu/packages/ninja.scm54
-rw-r--r--gnu/packages/patches/coreutils-dummy-man.patch21
-rw-r--r--gnu/packages/patches/gettext-msgunfmt.patch58
-rw-r--r--gnu/packages/patches/icecat-freetype-2.6.patch14
-rw-r--r--gnu/packages/patches/ninja-zero-mtime.patch19
-rw-r--r--gnu/packages/patches/subversion-sqlite-3.8.9-fix.patch73
-rw-r--r--gnu/packages/patches/unzip-CVE-2014-9636.patch41
-rw-r--r--gnu/packages/patches/unzip-allow-greater-hostver-values.patch16
-rw-r--r--gnu/packages/patches/unzip-increase-size-of-cfactorstr.patch18
-rw-r--r--gnu/packages/patches/unzip-initialize-symlink-flag.patch22
-rw-r--r--gnu/packages/patches/unzip-remove-build-date.patch19
-rw-r--r--gnu/packages/pcre.scm3
-rw-r--r--gnu/packages/perl.scm10
-rw-r--r--gnu/packages/python.scm50
-rw-r--r--gnu/packages/qt.scm3
-rw-r--r--gnu/packages/ssh.scm7
-rw-r--r--gnu/packages/texinfo.scm28
-rw-r--r--gnu/packages/tls.scm40
-rw-r--r--gnu/packages/version-control.scm20
-rw-r--r--gnu/packages/video.scm31
-rw-r--r--gnu/packages/web.scm23
-rw-r--r--gnu/packages/xdisorg.scm7
-rw-r--r--gnu/packages/zip.scm36
-rw-r--r--guix/build-system/gnu.scm4
-rw-r--r--guix/build/gnu-build-system.scm5
-rw-r--r--guix/build/python-build-system.scm15
-rw-r--r--guix/packages.scm48
-rw-r--r--tests/gexp.scm7
-rw-r--r--tests/packages.scm30
-rw-r--r--tests/size.scm19
53 files changed, 615 insertions, 316 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index d098e68eab8..822aefa3a89 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -4455,7 +4455,7 @@ Intel/AMD @code{x86_64} architecture, Linux-Libre kernel;
4455Intel 32-bit architecture (IA32), Linux-Libre kernel; 4455Intel 32-bit architecture (IA32), Linux-Libre kernel;
4456 4456
4457@item armhf-linux 4457@item armhf-linux
4458ARMv7-A architecture with hard float, Thumb-2 and VFP3D16 coprocessor, 4458ARMv7-A architecture with hard float, Thumb-2 and NEON,
4459using the EABI hard-float ABI, and Linux-Libre kernel. 4459using the EABI hard-float ABI, and Linux-Libre kernel.
4460 4460
4461@item mips64el-linux 4461@item mips64el-linux
diff --git a/gnu-system.am b/gnu-system.am
index fb661d45448..f67e0776c88 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -403,7 +403,6 @@ dist_patch_DATA = \
403 gnu/packages/patches/clang-libc-search-path.patch \ 403 gnu/packages/patches/clang-libc-search-path.patch \
404 gnu/packages/patches/clucene-pkgconfig.patch \ 404 gnu/packages/patches/clucene-pkgconfig.patch \
405 gnu/packages/patches/cmake-fix-tests.patch \ 405 gnu/packages/patches/cmake-fix-tests.patch \
406 gnu/packages/patches/coreutils-dummy-man.patch \
407 gnu/packages/patches/cpio-CVE-2014-9112-pt1.patch \ 406 gnu/packages/patches/cpio-CVE-2014-9112-pt1.patch \
408 gnu/packages/patches/cpio-CVE-2014-9112-pt2.patch \ 407 gnu/packages/patches/cpio-CVE-2014-9112-pt2.patch \
409 gnu/packages/patches/cpio-CVE-2014-9112-pt3.patch \ 408 gnu/packages/patches/cpio-CVE-2014-9112-pt3.patch \
@@ -441,7 +440,6 @@ dist_patch_DATA = \
441 gnu/packages/patches/gcc-libvtv-runpath.patch \ 440 gnu/packages/patches/gcc-libvtv-runpath.patch \
442 gnu/packages/patches/gcc-5.0-libvtv-runpath.patch \ 441 gnu/packages/patches/gcc-5.0-libvtv-runpath.patch \
443 gnu/packages/patches/geoclue-config.patch \ 442 gnu/packages/patches/geoclue-config.patch \
444 gnu/packages/patches/gettext-msgunfmt.patch \
445 gnu/packages/patches/ghostscript-runpath.patch \ 443 gnu/packages/patches/ghostscript-runpath.patch \
446 gnu/packages/patches/gitolite-openssh-6.8-compat.patch \ 444 gnu/packages/patches/gitolite-openssh-6.8-compat.patch \
447 gnu/packages/patches/glib-tests-desktop.patch \ 445 gnu/packages/patches/glib-tests-desktop.patch \
@@ -473,6 +471,7 @@ dist_patch_DATA = \
473 gnu/packages/patches/hydra-automake-1.15.patch \ 471 gnu/packages/patches/hydra-automake-1.15.patch \
474 gnu/packages/patches/hydra-disable-darcs-test.patch \ 472 gnu/packages/patches/hydra-disable-darcs-test.patch \
475 gnu/packages/patches/icecat-enable-acceleration-and-webgl.patch \ 473 gnu/packages/patches/icecat-enable-acceleration-and-webgl.patch \
474 gnu/packages/patches/icecat-freetype-2.6.patch \
476 gnu/packages/patches/icecat-libvpx-1.4.patch \ 475 gnu/packages/patches/icecat-libvpx-1.4.patch \
477 gnu/packages/patches/irrlicht-mesa-10.patch \ 476 gnu/packages/patches/irrlicht-mesa-10.patch \
478 gnu/packages/patches/jbig2dec-ignore-testtest.patch \ 477 gnu/packages/patches/jbig2dec-ignore-testtest.patch \
@@ -540,6 +539,7 @@ dist_patch_DATA = \
540 gnu/packages/patches/ngircd-handle-zombies.patch \ 539 gnu/packages/patches/ngircd-handle-zombies.patch \
541 gnu/packages/patches/ngircd-no-dns-in-tests.patch \ 540 gnu/packages/patches/ngircd-no-dns-in-tests.patch \
542 gnu/packages/patches/ninja-tests.patch \ 541 gnu/packages/patches/ninja-tests.patch \
542 gnu/packages/patches/ninja-zero-mtime.patch \
543 gnu/packages/patches/nss-pkgconfig.patch \ 543 gnu/packages/patches/nss-pkgconfig.patch \
544 gnu/packages/patches/nvi-assume-preserve-path.patch \ 544 gnu/packages/patches/nvi-assume-preserve-path.patch \
545 gnu/packages/patches/nvi-dbpagesize-binpower.patch \ 545 gnu/packages/patches/nvi-dbpagesize-binpower.patch \
@@ -625,6 +625,11 @@ dist_patch_DATA = \
625 gnu/packages/patches/unzip-CVE-2014-8139.patch \ 625 gnu/packages/patches/unzip-CVE-2014-8139.patch \
626 gnu/packages/patches/unzip-CVE-2014-8140.patch \ 626 gnu/packages/patches/unzip-CVE-2014-8140.patch \
627 gnu/packages/patches/unzip-CVE-2014-8141.patch \ 627 gnu/packages/patches/unzip-CVE-2014-8141.patch \
628 gnu/packages/patches/unzip-CVE-2014-9636.patch \
629 gnu/packages/patches/unzip-allow-greater-hostver-values.patch \
630 gnu/packages/patches/unzip-increase-size-of-cfactorstr.patch \
631 gnu/packages/patches/unzip-initialize-symlink-flag.patch \
632 gnu/packages/patches/unzip-remove-build-date.patch \
628 gnu/packages/patches/util-linux-tests.patch \ 633 gnu/packages/patches/util-linux-tests.patch \
629 gnu/packages/patches/upower-builddir.patch \ 634 gnu/packages/patches/upower-builddir.patch \
630 gnu/packages/patches/valgrind-glibc-2.21.patch \ 635 gnu/packages/patches/valgrind-glibc-2.21.patch \
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index b34a22806bc..e1bb74c8cd7 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -412,7 +412,11 @@ connection alive.")
412 (for-each patch-shebang 412 (for-each patch-shebang
413 (find-files "bind-9.9.5-P1" ".*")) 413 (find-files "bind-9.9.5-P1" ".*"))
414 (zero? (system* "tar" "cf" "bind.tar.gz" 414 (zero? (system* "tar" "cf" "bind.tar.gz"
415 "bind-9.9.5-P1")))) 415 "bind-9.9.5-P1"
416 ;; avoid non-determinism in the archive
417 "--mtime=@0"
418 "--owner=root:0"
419 "--group=root:0"))))
416 (alist-cons-after 420 (alist-cons-after
417 'install 'post-install 421 'install 'post-install
418 (lambda* (#:key inputs outputs #:allow-other-keys) 422 (lambda* (#:key inputs outputs #:allow-other-keys)
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index c5b1a2226ac..f35f6192010 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -238,15 +238,14 @@ used to apply commands with arbitrarily long arguments.")
238(define-public coreutils 238(define-public coreutils
239 (package 239 (package
240 (name "coreutils") 240 (name "coreutils")
241 (version "8.23") 241 (version "8.24")
242 (source (origin 242 (source (origin
243 (method url-fetch) 243 (method url-fetch)
244 (uri (string-append "mirror://gnu/coreutils/coreutils-" 244 (uri (string-append "mirror://gnu/coreutils/coreutils-"
245 version ".tar.xz")) 245 version ".tar.xz"))
246 (sha256 246 (sha256
247 (base32 247 (base32
248 "0bdq6yggyl7nkc2pbl6pxhhyx15nyqhz3ds6rfn448n6rxdwlhzc")) 248 "0w11jw3fb5sslf0f72kxy7llxgk1ia3a6bcw0c9kmvxrlj355mx2"))))
249 (patches (list (search-patch "coreutils-dummy-man.patch")))))
250 (build-system gnu-build-system) 249 (build-system gnu-build-system)
251 (inputs `(("acl" ,acl) ; TODO: add SELinux 250 (inputs `(("acl" ,acl) ; TODO: add SELinux
252 ("gmp" ,gmp))) 251 ("gmp" ,gmp)))
diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm
index 45676f568b4..6b2d0b855d8 100644
--- a/gnu/packages/bash.scm
+++ b/gnu/packages/bash.scm
@@ -86,7 +86,13 @@
86 (30 "0nrqb0m7s89qsrbfaffpilc5gcf82bx9yvgzld4hr79p5y54yhw5") ;CVE-2014-6278 86 (30 "0nrqb0m7s89qsrbfaffpilc5gcf82bx9yvgzld4hr79p5y54yhw5") ;CVE-2014-6278
87 (31 "07d62bl3z7qa8v6kgk47vzzazw563mlk9zhrsr4xsbqgvmcrylnd") 87 (31 "07d62bl3z7qa8v6kgk47vzzazw563mlk9zhrsr4xsbqgvmcrylnd")
88 (32 "0jjgapfq4qhmndfrw8c3q3lva8xjdhlbd9cc631v41b0kb95g4w8") 88 (32 "0jjgapfq4qhmndfrw8c3q3lva8xjdhlbd9cc631v41b0kb95g4w8")
89 (33 "05ma5rlxiadnfh925p4y7s0vvk917kmsdb1mfdx05gizl63pfapv"))) 89 (33 "05ma5rlxiadnfh925p4y7s0vvk917kmsdb1mfdx05gizl63pfapv")
90 (34 "12gq9whkq3naa3iy7c7x5pfpvrg7d0kwqld8609zxphhy424ysgi")
91 (35 "1qy1jflmbazjykq766gwabkaiswnx7pwa66whqiny0w02zjqa39p")
92 (36 "0z6jbyy70lfdm6d3x0sbazbqdxb3xnpn9bmz7madpvrnbd284pxc")
93 (37 "04sqr8zkl6s5fccfvb775ppn3ldij5imria9swc39aq0fkfp1w9k")
94 (38 "0rv3g14mpgv8br267bf7rmgqlgwnc4v6g3g8y0sjba571i8amgmd")
95 (39 "1v3l3vkc3g2b6fjycqwlakr8xhiw6bmw6q0zd6bi0m0m4bnxr55b")))
90(define (download-patches store count) 96(define (download-patches store count)
91 "Download COUNT Bash patches into store. Return a list of 97 "Download COUNT Bash patches into store. Return a list of
92number/base32-hash tuples, directly usable in the 'patch-series' form." 98number/base32-hash tuples, directly usable in the 'patch-series' form."
diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index 1f0fe166880..f3c1c5a617e 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -197,6 +197,33 @@ successful, or false to signal an error."
197 "guile-2.0.11.tar.xz") 197 "guile-2.0.11.tar.xz")
198 (_ 198 (_
199 "guile-2.0.9.tar.xz")))) 199 "guile-2.0.9.tar.xz"))))
200 ;; The following code, run by the bootstrap guile after it is
201 ;; unpacked, creates a wrapper for itself to set its load path.
202 ;; This replaces the previous non-portable method based on
203 ;; reading the /proc/self/exe symlink.
204 (make-guile-wrapper
205 '(begin
206 (use-modules (ice-9 match))
207 (match (command-line)
208 ((_ out bash)
209 (let ((bin-dir (string-append out "/bin"))
210 (guile (string-append out "/bin/guile"))
211 (guile-real (string-append out "/bin/.guile-real"))
212 ;; We must avoid using a bare dollar sign in this code,
213 ;; because it would be interpreted by the shell.
214 (dollar (string (integer->char 36))))
215 (chmod bin-dir #o755)
216 (rename-file guile guile-real)
217 (call-with-output-file guile
218 (lambda (p)
219 (format p "\
220#!~a
221export GUILE_SYSTEM_PATH=~a/share/guile/2.0
222export GUILE_SYSTEM_COMPILED_PATH=~a/lib/guile/2.0/ccache
223exec -a \"~a0\" ~a \"~a@\"\n"
224 bash out out dollar guile-real dollar)))
225 (chmod guile #o555)
226 (chmod bin-dir #o555))))))
200 (builder 227 (builder
201 (add-text-to-store store 228 (add-text-to-store store
202 "build-bootstrap-guile.sh" 229 "build-bootstrap-guile.sh"
@@ -206,10 +233,17 @@ echo \"unpacking bootstrap Guile to '$out'...\"
206cd $out 233cd $out
207~a -dc < ~a | ~a xv 234~a -dc < ~a | ~a xv
208 235
236# Use the bootstrap guile to create its own wrapper to set the load path.
237GUILE_SYSTEM_PATH=$out/share/guile/2.0 \
238GUILE_SYSTEM_COMPILED_PATH=$out/lib/guile/2.0/ccache \
239$out/bin/guile -c ~s $out ~a
240
209# Sanity check. 241# Sanity check.
210$out/bin/guile --version~%" 242$out/bin/guile --version~%"
211 mkdir xz guile tar) 243 mkdir xz guile tar
212 (list mkdir xz guile tar)))) 244 (format #f "~s" make-guile-wrapper)
245 bash)
246 (list mkdir xz guile tar bash))))
213 (derivation store name 247 (derivation store name
214 bash `(,builder) 248 bash `(,builder)
215 #:system system 249 #:system system
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 02a9a3632ce..d3f239f5f73 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -284,6 +284,7 @@
284 ;; because we don't need the stand-alone Info reader. 284 ;; because we don't need the stand-alone Info reader.
285 ;; Also, use %BOOT0-INPUTS to avoid building Perl once more. 285 ;; Also, use %BOOT0-INPUTS to avoid building Perl once more.
286 (let ((texinfo (package (inherit texinfo) 286 (let ((texinfo (package (inherit texinfo)
287 (native-inputs '())
287 (inputs (alist-delete "ncurses" (package-inputs texinfo)))))) 288 (inputs (alist-delete "ncurses" (package-inputs texinfo))))))
288 (package-with-bootstrap-guile 289 (package-with-bootstrap-guile
289 (package-with-explicit-inputs texinfo %boot0-inputs 290 (package-with-explicit-inputs texinfo %boot0-inputs
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index b5e07b81f03..eda44cea41e 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -165,8 +165,7 @@ may be either a libc package or #f.)"
165 ;; Add the cross Linux headers to CROSS_CPATH, and remove them 165 ;; Add the cross Linux headers to CROSS_CPATH, and remove them
166 ;; from CPATH. 166 ;; from CPATH.
167 (let ((libc (assoc-ref inputs "libc")) 167 (let ((libc (assoc-ref inputs "libc"))
168 (linux (assoc-ref inputs 168 (linux (assoc-ref inputs "xlinux-headers")))
169 "libc/linux-headers")))
170 (define (cross? x) 169 (define (cross? x)
171 ;; Return #t if X is a cross-libc or cross Linux. 170 ;; Return #t if X is a cross-libc or cross Linux.
172 (or (string-prefix? libc x) 171 (or (string-prefix? libc x)
@@ -245,6 +244,9 @@ GCC that does not target a libc; otherwise, target that libc."
245 (alist-delete "libc" %final-inputs)))) 244 (alist-delete "libc" %final-inputs))))
246 (if libc 245 (if libc
247 `(("libc" ,libc) 246 `(("libc" ,libc)
247 ("xlinux-headers" ;the target headers
248 ,@(assoc-ref (package-propagated-inputs libc)
249 "linux-headers"))
248 ,@inputs) 250 ,@inputs)
249 inputs)))) 251 inputs))))
250 252
@@ -314,7 +316,7 @@ XBINUTILS and the cross tool chain."
314 #t)) 316 #t))
315 ,phases)))) 317 ,phases))))
316 318
317 ;; Shadow the native "linux-headers" because glibc's recipe expect the 319 ;; Shadow the native "linux-headers" because glibc's recipe expects the
318 ;; "linux-headers" input to point to the right thing. 320 ;; "linux-headers" input to point to the right thing.
319 (propagated-inputs `(("linux-headers" ,xlinux-headers))) 321 (propagated-inputs `(("linux-headers" ,xlinux-headers)))
320 322
diff --git a/gnu/packages/ed.scm b/gnu/packages/ed.scm
index 0d2b24cf8d1..7cd1fcd71df 100644
--- a/gnu/packages/ed.scm
+++ b/gnu/packages/ed.scm
@@ -27,14 +27,14 @@
27(define-public ed 27(define-public ed
28 (package 28 (package
29 (name "ed") 29 (name "ed")
30 (version "1.11") 30 (version "1.12")
31 (source (origin 31 (source (origin
32 (method url-fetch) 32 (method url-fetch)
33 (uri (string-append "mirror://gnu/ed/ed-" 33 (uri (string-append "mirror://gnu/ed/ed-"
34 version ".tar.lz")) 34 version ".tar.lz"))
35 (sha256 35 (sha256
36 (base32 36 (base32
37 "0d518yhs3kpdpv9fbpa1rhxk2fbry2yzcknrdaa20pi2bzg6w55x")))) 37 "0bw0187a311rci58vznvncsj6pfp8bhs5phrlrqn03sa2i1mfrfj"))))
38 (build-system gnu-build-system) 38 (build-system gnu-build-system)
39 (native-inputs `(("lzip" ,lzip))) 39 (native-inputs `(("lzip" ,lzip)))
40 (arguments 40 (arguments
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index e71d180ab6d..d393e69c49b 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -410,8 +410,7 @@ operations.")
410 "/bin/emacs")) 410 "/bin/emacs"))
411 (magit (string-append (assoc-ref %build-inputs "magit") 411 (magit (string-append (assoc-ref %build-inputs "magit")
412 "/share/emacs/site-lisp")) 412 "/share/emacs/site-lisp"))
413 (commit (string-append (assoc-ref %build-inputs 413 (commit (string-append (assoc-ref %build-inputs "git-modes")
414 "magit/git-modes")
415 "/share/emacs/site-lisp")) 414 "/share/emacs/site-lisp"))
416 (source (assoc-ref %build-inputs "source")) 415 (source (assoc-ref %build-inputs "source"))
417 (lisp-dir (string-append %output "/share/emacs/site-lisp"))) 416 (lisp-dir (string-append %output "/share/emacs/site-lisp")))
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index c04f24b83c9..5953caa87a6 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -40,13 +40,13 @@
40(define-public freetype 40(define-public freetype
41 (package 41 (package
42 (name "freetype") 42 (name "freetype")
43 (version "2.5.5") 43 (version "2.6")
44 (source (origin 44 (source (origin
45 (method url-fetch) 45 (method url-fetch)
46 (uri (string-append "mirror://savannah/freetype/freetype-" 46 (uri (string-append "mirror://savannah/freetype/freetype-"
47 version ".tar.bz2")) 47 version ".tar.bz2"))
48 (sha256 (base32 48 (sha256 (base32
49 "1fdgl7js99xv1yy5zx1ravmqd0jxlnqpv7zcl954h4hbg15wqyrq")))) 49 "0zilx15fwcpa8hmcxpc423jwb8ijw4qpq968kh18akvn4j0znsc4"))))
50 (build-system gnu-build-system) 50 (build-system gnu-build-system)
51 (arguments 51 (arguments
52 `(#:phases 52 `(#:phases
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index e41fd43e634..d0a92786ffb 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -59,9 +59,7 @@ where the OS part is overloaded to denote a specific ABI---into GCC
59 '("--with-arch=armv7-a" 59 '("--with-arch=armv7-a"
60 "--with-float=hard" 60 "--with-float=hard"
61 "--with-mode=thumb" 61 "--with-mode=thumb"
62 62 "--with-fpu=neon"))
63 ;; See <https://wiki.debian.org/ArmHardFloatPort/VfpComparison#FPU>
64 "--with-fpu=vfpv3-d16"))
65 63
66 (else 64 (else
67 ;; TODO: Add `arm.*-gnueabi', etc. 65 ;; TODO: Add `arm.*-gnueabi', etc.
@@ -323,17 +321,15 @@ Go. It also includes runtime support libraries for these languages.")
323 321
324(define-public gcc-4.9 322(define-public gcc-4.9
325 (package (inherit gcc-4.8) 323 (package (inherit gcc-4.8)
326 (version "4.9.2") 324 (version "4.9.3")
327 (source (origin 325 (source (origin
328 (method url-fetch) 326 (method url-fetch)
329 (uri (string-append "mirror://gnu/gcc/gcc-" 327 (uri (string-append "mirror://gnu/gcc/gcc-"
330 version "/gcc-" version ".tar.bz2")) 328 version "/gcc-" version ".tar.bz2"))
331 (sha256 329 (sha256
332 (base32 330 (base32
333 "1pbjp4blk2ycaa6r3jmw4ky5f1s9ji3klbqgv8zs2sl5jn1cj810")) 331 "0zmnm00d2a1hsd41g34bhvxzvxisa2l584q3p447bd91lfjv4ci3"))
334 (patches (map search-patch 332 (patches (list (search-patch "gcc-libvtv-runpath.patch")))))))
335 '("gcc-arm-link-spec-fix.patch"
336 "gcc-libvtv-runpath.patch")))))))
337 333
338(define-public gcc-5.1 334(define-public gcc-5.1
339 (package (inherit gcc-4.9) 335 (package (inherit gcc-4.9)
diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm
index 92899461788..6be3093bd69 100644
--- a/gnu/packages/gettext.scm
+++ b/gnu/packages/gettext.scm
@@ -35,15 +35,14 @@
35(define-public gnu-gettext 35(define-public gnu-gettext
36 (package 36 (package
37 (name "gettext") 37 (name "gettext")
38 (version "0.19.4") 38 (version "0.19.5")
39 (source (origin 39 (source (origin
40 (method url-fetch) 40 (method url-fetch)
41 (uri (string-append "mirror://gnu/gettext/gettext-" 41 (uri (string-append "mirror://gnu/gettext/gettext-"
42 version ".tar.gz")) 42 version ".tar.gz"))
43 (sha256 43 (sha256
44 (base32 44 (base32
45 "0gvz86m4cs8bdf3mwmwsyx6lrq4ydfxgadrgd9jlx32z3bnz3jca")) 45 "0fppvj4l9maa9q1swvhnv96hsqxx90vcjbdyjhqpir3ll55q2n0j"))))
46 (patches (list (search-patch "gettext-msgunfmt.patch")))))
47 (build-system gnu-build-system) 46 (build-system gnu-build-system)
48 (inputs 47 (inputs
49 `(("expat" ,expat))) 48 `(("expat" ,expat)))
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 74841bc953f..410a0f90830 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1110,8 +1110,7 @@ to access local and remote files with a single consistent API.")
1110 (substitute* "libgnome/Makefile.in" 1110 (substitute* "libgnome/Makefile.in"
1111 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))) 1111 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS")))
1112 %standard-phases))) 1112 %standard-phases)))
1113 (inputs `(("popt" ,popt) 1113 (inputs `(("libxml2" ,libxml2)))
1114 ("libxml2" ,libxml2)))
1115 (native-inputs 1114 (native-inputs
1116 `(("glib" ,glib "bin") ; for glib-mkenums, etc. 1115 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
1117 ("intltool" ,intltool) 1116 ("intltool" ,intltool)
@@ -1124,7 +1123,8 @@ to access local and remote files with a single consistent API.")
1124 `(("libcanberra" ,libcanberra) 1123 `(("libcanberra" ,libcanberra)
1125 ("libbonobo" ,libbonobo) 1124 ("libbonobo" ,libbonobo)
1126 ("gconf" ,gconf) 1125 ("gconf" ,gconf)
1127 ("gnome-vfs" ,gnome-vfs))) 1126 ("gnome-vfs" ,gnome-vfs)
1127 ("popt" ,popt))) ;gnome-program.h includes popt.h
1128 (home-page "https://developer.gnome.org/libgnome/") 1128 (home-page "https://developer.gnome.org/libgnome/")
1129 (synopsis "Useful routines for building applications") 1129 (synopsis "Useful routines for building applications")
1130 (description "The libgnome library provides a number of useful routines 1130 (description "The libgnome library provides a number of useful routines
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 8aea3dabb90..1c2b567d890 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -41,7 +41,7 @@
41(define-public libgpg-error 41(define-public libgpg-error
42 (package 42 (package
43 (name "libgpg-error") 43 (name "libgpg-error")
44 (version "1.18") 44 (version "1.19")
45 (source 45 (source
46 (origin 46 (origin
47 (method url-fetch) 47 (method url-fetch)
@@ -49,7 +49,7 @@
49 version ".tar.bz2")) 49 version ".tar.bz2"))
50 (sha256 50 (sha256
51 (base32 51 (base32
52 "0408v19h3h0q6w61g51hgbdg6cyw81nyzkh70qfprvsc3pkddwcz")))) 52 "12wpqhjlsw4iaanifbqm2kich6c7x7lm8a7zhy6x5ifm6c9hw4jk"))))
53 (build-system gnu-build-system) 53 (build-system gnu-build-system)
54 (home-page "http://gnupg.org") 54 (home-page "http://gnupg.org")
55 (synopsis "Library of error values for GnuPG components") 55 (synopsis "Library of error values for GnuPG components")
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 8be3d488712..dfa1d5d8a43 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -279,6 +279,7 @@ standards.")
279 "db/sqlite3")) 279 "db/sqlite3"))
280 #t)) 280 #t))
281 (patches (map search-patch '("icecat-enable-acceleration-and-webgl.patch" 281 (patches (map search-patch '("icecat-enable-acceleration-and-webgl.patch"
282 "icecat-freetype-2.6.patch"
282 "icecat-libvpx-1.4.patch"))))) 283 "icecat-libvpx-1.4.patch")))))
283 (build-system gnu-build-system) 284 (build-system gnu-build-system)
284 (inputs 285 (inputs
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 39664c387bb..33eb1b5f1cd 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -116,6 +116,11 @@
116 ;; gremlin) doesn't support it yet, so skip this phase. 116 ;; gremlin) doesn't support it yet, so skip this phase.
117 #:validate-runpath? #f 117 #:validate-runpath? #f
118 118
119 ;; Don't pass --build=<triplet>, because the configure script
120 ;; auto-detects slightly different triplets for --host and --target and
121 ;; then complains that they don't match.
122 #:build #f
123
119 #:modules ((guix build gnu-build-system) 124 #:modules ((guix build gnu-build-system)
120 (guix build utils) 125 (guix build utils)
121 (guix build rpath) 126 (guix build rpath)
diff --git a/gnu/packages/libidn.scm b/gnu/packages/libidn.scm
index 49dafbeb6d2..4a7840c78c0 100644
--- a/gnu/packages/libidn.scm
+++ b/gnu/packages/libidn.scm
@@ -26,13 +26,13 @@
26(define-public libidn 26(define-public libidn
27 (package 27 (package
28 (name "libidn") 28 (name "libidn")
29 (version "1.30") 29 (version "1.31")
30 (source (origin 30 (source (origin
31 (method url-fetch) 31 (method url-fetch)
32 (uri (string-append "mirror://gnu/libidn/libidn-" version 32 (uri (string-append "mirror://gnu/libidn/libidn-" version
33 ".tar.gz")) 33 ".tar.gz"))
34 (sha256 (base32 34 (sha256 (base32
35 "0lxh5r1z8gsk4jxx3rv8aasjv8p53j4y04kvfn2w30a0syagrf9r")))) 35 "026z12mczlag443ms9n954h36pi3m7iva9jfw8y4ispsj772zpxg"))))
36 (build-system gnu-build-system) 36 (build-system gnu-build-system)
37;; FIXME: No Java and C# libraries are currently built. 37;; FIXME: No Java and C# libraries are currently built.
38 (synopsis "Internationalized string processing library") 38 (synopsis "Internationalized string processing library")
diff --git a/gnu/packages/libunistring.scm b/gnu/packages/libunistring.scm
index aa053711a92..f29b7424de0 100644
--- a/gnu/packages/libunistring.scm
+++ b/gnu/packages/libunistring.scm
@@ -26,7 +26,7 @@
26(define-public libunistring 26(define-public libunistring
27 (package 27 (package
28 (name "libunistring") 28 (name "libunistring")
29 (version "0.9.5") 29 (version "0.9.6")
30 (source (origin 30 (source (origin
31 (method url-fetch) 31 (method url-fetch)
32 (uri (string-append 32 (uri (string-append
@@ -34,7 +34,7 @@
34 version ".tar.gz")) 34 version ".tar.gz"))
35 (sha256 35 (sha256
36 (base32 36 (base32
37 "05va4x47ik006nd13grwm276gfxb8igsj63k37vvwl3q8rr0g30s")))) 37 "0ixxmgpgh2v8ifm6hbwsjxl023myk3dfnj7wnvmqjivza31fw9cn"))))
38 (propagated-inputs '()) ; FIXME: add libiconv when !glibc 38 (propagated-inputs '()) ; FIXME: add libiconv when !glibc
39 (build-system gnu-build-system) 39 (build-system gnu-build-system)
40 (arguments 40 (arguments
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 71614dee892..17ba1e439bd 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -428,17 +428,26 @@ providing the system administrator with some help in common tasks.")
428 (string-append "--with-bashcompletiondir=" 428 (string-append "--with-bashcompletiondir="
429 (assoc-ref %outputs "out") 429 (assoc-ref %outputs "out")
430 "/etc/bash_completion.d")) 430 "/etc/bash_completion.d"))
431 #:phases (alist-cons-before 431 #:phases (modify-phases %standard-phases
432 'check 'pre-check 432 (add-before
433 (lambda* (#:key inputs outputs #:allow-other-keys) 433 'build 'set-umount-file-name
434 (let ((out (assoc-ref outputs "out")) 434 (lambda* (#:key outputs #:allow-other-keys)
435 (net (assoc-ref inputs "net-base"))) 435 ;; Tell 'eject' the right file name of 'umount'.
436 ;; Change the test to refer to the right file. 436 (let ((out (assoc-ref outputs "out")))
437 (substitute* "tests/ts/misc/mcookie" 437 (substitute* "sys-utils/eject.c"
438 (("/etc/services") 438 (("\"/bin/umount\"")
439 (string-append net "/etc/services"))) 439 (string-append "\"" out "/bin/umount\"")))
440 #t)) 440 #t)))
441 %standard-phases))) 441 (add-before
442 'check 'pre-check
443 (lambda* (#:key inputs outputs #:allow-other-keys)
444 (let ((out (assoc-ref outputs "out"))
445 (net (assoc-ref inputs "net-base")))
446 ;; Change the test to refer to the right file.
447 (substitute* "tests/ts/misc/mcookie"
448 (("/etc/services")
449 (string-append net "/etc/services")))
450 #t))))))
442 (inputs `(("zlib" ,zlib) 451 (inputs `(("zlib" ,zlib)
443 ("ncurses" ,ncurses))) 452 ("ncurses" ,ncurses)))
444 (native-inputs 453 (native-inputs
@@ -2132,13 +2141,6 @@ also contains the libsysfs library.")
2132 (substitute* "configure" 2141 (substitute* "configure"
2133 (("includedir='(\\$\\{prefix\\}/include)'" all orig) 2142 (("includedir='(\\$\\{prefix\\}/include)'" all orig)
2134 (string-append "includedir='" orig "/sysfs'"))))))) 2143 (string-append "includedir='" orig "/sysfs'")))))))
2135 ;; XXX sysfsutils-1.3.0's config.guess fails on mips64el
2136 (arguments `(#:configure-flags
2137 '(,@(if (%current-target-system)
2138 '()
2139 (let ((triplet
2140 (nix-system->gnu-triplet (%current-system))))
2141 (list (string-append "--build=" triplet)))))))
2142 (synopsis "System utilities based on Linux sysfs (version 1.x)"))) 2144 (synopsis "System utilities based on Linux sysfs (version 1.x)")))
2143 2145
2144(define-public cpufrequtils 2146(define-public cpufrequtils
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index feaa08af387..78ff83de151 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -168,7 +168,10 @@ supporting ASDF, Sockets, Gray streams, MOP, and other useful components.")
168 ("readline" ,readline) 168 ("readline" ,readline)
169 ("libsigsegv" ,libsigsegv))) 169 ("libsigsegv" ,libsigsegv)))
170 (arguments 170 (arguments
171 '(#:phases 171 '(;; XXX The custom configure script does not cope well when passed
172 ;; --build=<triplet>.
173 #:build #f
174 #:phases
172 (alist-cons-after 175 (alist-cons-after
173 'unpack 'patch-sh-and-pwd 176 'unpack 'patch-sh-and-pwd
174 (lambda _ 177 (lambda _
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index e140582a4a4..07e8b5160bd 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -629,7 +629,9 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
629 ,(or (%current-target-system) 629 ,(or (%current-target-system)
630 (%current-system)) 630 (%current-system))
631 ".tar.xz") 631 ".tar.xz")
632 ".")))))))))) 632 "."
633 ;; avoid non-determinism in the archive
634 "--mtime=@0" "--owner=root:0" "--group=root:0"))))))))))
633 635
634(define %bootstrap-binaries-tarball 636(define %bootstrap-binaries-tarball
635 ;; A tarball with the statically-linked bootstrap binaries. 637 ;; A tarball with the statically-linked bootstrap binaries.
diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm
index da52b2b1e96..903d160b241 100644
--- a/gnu/packages/multiprecision.scm
+++ b/gnu/packages/multiprecision.scm
@@ -47,15 +47,7 @@
47 '(;; Build a "fat binary", with routines for several 47 '(;; Build a "fat binary", with routines for several
48 ;; sub-architectures. 48 ;; sub-architectures.
49 "--enable-fat" 49 "--enable-fat"
50 "--enable-cxx" 50 "--enable-cxx")))
51
52 ;; FIXME: gmp-6.0.0a's config.guess fails on
53 ;; multi-core armhf systems.
54 ,@(if (%current-target-system)
55 '()
56 (let ((triplet
57 (nix-system->gnu-triplet (%current-system))))
58 (list (string-append "--build=" triplet)))))))
59 (synopsis "Multiple-precision arithmetic library") 51 (synopsis "Multiple-precision arithmetic library")
60 (description 52 (description
61 "GMP is a library for arbitrary precision arithmetic, operating on 53 "GMP is a library for arbitrary precision arithmetic, operating on
@@ -69,13 +61,13 @@ cryptography and computational algebra.")
69(define-public mpfr 61(define-public mpfr
70 (package 62 (package
71 (name "mpfr") 63 (name "mpfr")
72 (version "3.1.2") 64 (version "3.1.3")
73 (source (origin 65 (source (origin
74 (method url-fetch) 66 (method url-fetch)
75 (uri (string-append "mirror://gnu/mpfr/mpfr-" version 67 (uri (string-append "mirror://gnu/mpfr/mpfr-" version
76 ".tar.xz")) 68 ".tar.xz"))
77 (sha256 (base32 69 (sha256 (base32
78 "0fs501qi8l523gs3cpy4jjcnvwxggyfbklcys80wq236xx3hz79r")))) 70 "05jaa5z78lvrayld09nyr0v27c1m5dm9l7kr85v2bj4jv65s0db8"))))
79 (build-system gnu-build-system) 71 (build-system gnu-build-system)
80 (outputs '("out" "debug")) 72 (outputs '("out" "debug"))
81 (propagated-inputs `(("gmp" ,gmp))) ; <mpfr.h> refers to <gmp.h> 73 (propagated-inputs `(("gmp" ,gmp))) ; <mpfr.h> refers to <gmp.h>
diff --git a/gnu/packages/ninja.scm b/gnu/packages/ninja.scm
index 2483cc51fe0..a0eb109bbb9 100644
--- a/gnu/packages/ninja.scm
+++ b/gnu/packages/ninja.scm
@@ -1,5 +1,6 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> 2;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
3;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
3;;; 4;;;
4;;; This file is part of GNU Guix. 5;;; This file is part of GNU Guix.
5;;; 6;;;
@@ -36,38 +37,41 @@
36 (sha256 37 (sha256
37 (base32 38 (base32
38 "1h3yfwcfl61v493vna6jia2fizh8rpig7qw2504cvkr6gid3p5bw")) 39 "1h3yfwcfl61v493vna6jia2fizh8rpig7qw2504cvkr6gid3p5bw"))
39 (patches (list (search-patch "ninja-tests.patch"))))) 40 (patches (map search-patch
41 '("ninja-zero-mtime.patch" "ninja-tests.patch")))))
40 (build-system gnu-build-system) 42 (build-system gnu-build-system)
43 (native-inputs `(("python" ,python-2)))
41 (arguments 44 (arguments
42 '(#:phases 45 '(#:phases
43 (alist-replace 46 (modify-phases %standard-phases
44 'configure 47 (replace
45 (lambda _ 48 'configure
46 (substitute* "src/subprocess-posix.cc" 49 (lambda _
47 (("/bin/sh") (which "sh")))) 50 (substitute* "src/subprocess-posix.cc"
48 (alist-replace 51 (("/bin/sh") (which "sh")))
49 'build 52 #t))
50 (lambda _ 53 (replace
51 (zero? (system* "./configure.py" "--bootstrap"))) 54 'build
52 (alist-replace 55 (lambda _
56 (zero? (system* "./configure.py" "--bootstrap"))))
57 (replace
53 'check 58 'check
54 (lambda _ 59 (lambda _
55 (and (zero? (system* "./configure.py")) 60 (and (zero? (system* "./configure.py"))
56 (zero? (system* "./ninja" "ninja_test")) 61 (zero? (system* "./ninja" "ninja_test"))
57 (zero? (system* "./ninja_test")))) 62 (zero? (system* "./ninja_test")))))
58 (alist-replace 63 (replace
59 'install 64 'install
60 (lambda* (#:key outputs #:allow-other-keys) 65 (lambda* (#:key outputs #:allow-other-keys)
61 (let* ((out (assoc-ref outputs "out")) 66 (let* ((out (assoc-ref outputs "out"))
62 (bin (string-append out "/bin")) 67 (bin (string-append out "/bin"))
63 (doc (string-append out "/share/doc/ninja"))) 68 (doc (string-append out "/share/doc/ninja")))
64 (mkdir-p bin) 69 (mkdir-p bin)
65 (copy-file "ninja" (string-append bin "/ninja")) 70 (copy-file "ninja" (string-append bin "/ninja"))
66 (mkdir-p doc) 71 (mkdir-p doc)
67 (copy-file "doc/manual.asciidoc" 72 (copy-file "doc/manual.asciidoc"
68 (string-append doc "/manual.asciidoc")))) 73 (string-append doc "/manual.asciidoc"))
69 %standard-phases)))))) 74 #t))))))
70 (native-inputs `(("python" ,python-2)))
71 (home-page "http://martine.github.io/ninja/") 75 (home-page "http://martine.github.io/ninja/")
72 (synopsis "Small build system") 76 (synopsis "Small build system")
73 (description 77 (description
diff --git a/gnu/packages/patches/coreutils-dummy-man.patch b/gnu/packages/patches/coreutils-dummy-man.patch
deleted file mode 100644
index a43cfc47c36..00000000000
--- a/gnu/packages/patches/coreutils-dummy-man.patch
+++ /dev/null
@@ -1,21 +0,0 @@
1Patch adapted from <http://git.yoctoproject.org/cgit.cgi/poky/plain/meta/recipes-core/coreutils/coreutils-8.22/fix-for-dummy-man-usage.patch>.
2
3Fix for 'dummy-man' usage, when cross-compiling.
4
5The options should be before the final argument, otherwise, the following error
6would appear when compiling:
7
8 dummy-man: too many non-option arguments
9
10--- coreutils-8.23/Makefile.in 2014-07-18 18:22:24.000000000 -0400
11+++ coreutils-8.23/Makefile.in 2014-08-03 20:21:10.849158313 -0400
12@@ -14076,8 +14076,8 @@
13 && $(run_help2man) \
14 --source='$(PACKAGE_STRING)' \
15 --include=$(srcdir)/man/$$name.x \
16- --output=$$t/$$name.1 $$t/$$argv \
17 --info-page='coreutils \(aq'$$name' invocation\(aq' \
18+ --output=$$t/$$name.1 $$t/$$argv \
19 && sed \
20 -e 's|$*\.td/||g' \
21 -e '/For complete documentation/d' \
diff --git a/gnu/packages/patches/gettext-msgunfmt.patch b/gnu/packages/patches/gettext-msgunfmt.patch
deleted file mode 100644
index 4a50abddc28..00000000000
--- a/gnu/packages/patches/gettext-msgunfmt.patch
+++ /dev/null
@@ -1,58 +0,0 @@
1From <http://git.savannah.gnu.org/cgit/gettext.git/patch/?id=5d3eeaa0d3b7f4f6932bd29d859925a940b69459>.
2
32015-03-11 Daiki Ueno <ueno@gnu.org>
4
5 msgunfmt: Check allocated size for static segment
6 Reported by Max Lin in:
7 http://lists.gnu.org/archive/html/bug-gettext/2015-03/msg00005.html
8 * read-mo.c (get_sysdep_string): Check if the embedded segment
9 size is valid, before adding it to the string length.
10
11diff --git a/gettext-tools/src/read-mo.c b/gettext-tools/src/read-mo.c
12index b97bbad..1c024a8 100644
13--- a/gettext-tools/src/read-mo.c
14+++ b/gettext-tools/src/read-mo.c
15@@ -149,6 +149,7 @@ get_sysdep_string (const struct binary_mo_file *bfp, size_t offset,
16 nls_uint32 s_offset;
17
18 /* Compute the length. */
19+ s_offset = get_uint32 (bfp, offset);
20 length = 0;
21 for (i = 4; ; i += 8)
22 {
23@@ -158,9 +159,14 @@ get_sysdep_string (const struct binary_mo_file *bfp, size_t offset,
24 nls_uint32 ss_length;
25 nls_uint32 ss_offset;
26 size_t ss_end;
27+ size_t s_end;
28 size_t n;
29
30+ s_end = xsum (s_offset, segsize);
31+ if (size_overflow_p (s_end) || s_end > bfp->size)
32+ error (EXIT_FAILURE, 0, _("file \"%s\" is truncated"), bfp->filename);
33 length += segsize;
34+ s_offset += segsize;
35
36 if (sysdepref == SEGMENTS_END)
37 break;
38@@ -175,7 +181,7 @@ get_sysdep_string (const struct binary_mo_file *bfp, size_t offset,
39 ss_end = xsum (ss_offset, ss_length);
40 if (size_overflow_p (ss_end) || ss_end > bfp->size)
41 error (EXIT_FAILURE, 0, _("file \"%s\" is truncated"), bfp->filename);
42- if (!(ss_length > 0 && bfp->data[ss_offset + ss_length - 1] == '\0'))
43+ if (!(ss_length > 0 && bfp->data[ss_end - 1] == '\0'))
44 {
45 char location[30];
46 sprintf (location, "sysdep_segment[%u]", (unsigned int) sysdepref);
47@@ -198,11 +204,8 @@ get_sysdep_string (const struct binary_mo_file *bfp, size_t offset,
48 nls_uint32 sysdep_segment_offset;
49 nls_uint32 ss_length;
50 nls_uint32 ss_offset;
51- size_t s_end = xsum (s_offset, segsize);
52 size_t n;
53
54- if (size_overflow_p (s_end) || s_end > bfp->size)
55- error (EXIT_FAILURE, 0, _("file \"%s\" is truncated"), bfp->filename);
56 memcpy (p, bfp->data + s_offset, segsize);
57 p += segsize;
58 s_offset += segsize;
diff --git a/gnu/packages/patches/icecat-freetype-2.6.patch b/gnu/packages/patches/icecat-freetype-2.6.patch
new file mode 100644
index 00000000000..ef69f2f7154
--- /dev/null
+++ b/gnu/packages/patches/icecat-freetype-2.6.patch
@@ -0,0 +1,14 @@
1Adapt to freetype 2.6. This patch copied from upstream, see:
2https://bugzilla.mozilla.org/show_bug.cgi?id=1143411
3https://hg.mozilla.org/mozilla-central/rev/afd840d66e6a
4
5--- a/config/system-headers
6+++ b/config/system-headers
7@@ -415,6 +415,7 @@ freetype/ftbitmap.h
8 freetype/ftxf86.h
9 freetype.h
10 ftcache.h
11+ftfntfmt.h
12 ftglyph.h
13 ftsynth.h
14 ftoutln.h
diff --git a/gnu/packages/patches/ninja-zero-mtime.patch b/gnu/packages/patches/ninja-zero-mtime.patch
new file mode 100644
index 00000000000..c9b9e8d798d
--- /dev/null
+++ b/gnu/packages/patches/ninja-zero-mtime.patch
@@ -0,0 +1,19 @@
1Work around a design defect in Ninja whereby a zero mtime is used to
2denote missing files (we happen to produce files that have a zero mtime
3and yet really do exist.)
4
5--- ninja-1.5.3/src/disk_interface.cc 2014-11-24 18:37:47.000000000 +0100
6+++ ninja-1.5.3/src/disk_interface.cc 2015-07-18 23:20:38.572290139 +0200
7@@ -194,6 +194,12 @@ TimeStamp RealDiskInterface::Stat(const
8 }
9 return -1;
10 }
11+
12+ if (st.st_mtime == 0)
13+ // All the code assumes that mtime == 0 means "file missing". Here we
14+ // know the file is not missing, so tweak the mtime.
15+ st.st_mtime = 1;
16+
17 return st.st_mtime;
18 #endif
19 }
diff --git a/gnu/packages/patches/subversion-sqlite-3.8.9-fix.patch b/gnu/packages/patches/subversion-sqlite-3.8.9-fix.patch
index 92d8a85c8f6..2f7bcee344a 100644
--- a/gnu/packages/patches/subversion-sqlite-3.8.9-fix.patch
+++ b/gnu/packages/patches/subversion-sqlite-3.8.9-fix.patch
@@ -1,7 +1,25 @@
1Despite all the efforts below, the 'wc-queries-test.c' still fails,
2both with SQLite 3.8.9 and 3.8.10.2. We choose to just skip it
3until a better solution arises.
4
5--- subversion/tests/libsvn_wc/wc-queries-test.c 2015-07-16 23:24:03.458279053 +0200
6+++ subversion/tests/libsvn_wc/wc-queries-test.c 2015-07-16 23:24:18.866423439 +0200
7@@ -898,8 +898,6 @@ struct svn_test_descriptor_t test_funcs[
8 "sqlite up-to-date"),
9 SVN_TEST_PASS2(test_parsable,
10 "queries are parsable"),
11- SVN_TEST_PASS2(test_query_expectations,
12- "test query expectations"),
13 SVN_TEST_PASS2(test_schema_statistics,
14 "test schema statistics"),
15 SVN_TEST_NULL
16
17
1This upstream patch (r1672295) is needed to fix a test failure when built 18This upstream patch (r1672295) is needed to fix a test failure when built
2against sqlite 3.8.9. See: 19against sqlite 3.8.9. See:
3 20
4 https://mail-archives.apache.org/mod_mbox/subversion-dev/201504.mbox/%3C5526D197.6020808@gmx.de%3E 21 https://mail-archives.apache.org/mod_mbox/subversion-dev/201504.mbox/%3C5526D197.6020808@gmx.de%3E
22 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=785496
5 23
6 24
7r1672295 | rhuijben | 2015-04-09 07:31:12 -0400 (Thu, 09 Apr 2015) | 15 lines 25r1672295 | rhuijben | 2015-04-09 07:31:12 -0400 (Thu, 09 Apr 2015) | 15 lines
@@ -57,3 +75,58 @@ Index: subversion/libsvn_wc/wc-metadata.sql
57 /* sqlite_autoindex_WORK_QUEUE_1 doesn't exist because WORK_QUEUE is 75 /* sqlite_autoindex_WORK_QUEUE_1 doesn't exist because WORK_QUEUE is
58 a INTEGER PRIMARY KEY AUTOINCREMENT table */ 76 a INTEGER PRIMARY KEY AUTOINCREMENT table */
59 77
78
79r1673691 | rhuijben | 2015-04-15 05:30:04 -0400 (Wed, 15 Apr 2015) | 5 lines
80
81* subversion/libsvn_wc/wc-metadata.sql
82 (STMT_INSTALL_SCHEMA_STATISTICS): Delete existing sqlite_stat1 rows for
83 the externals table before installing new rows to avoid duplicate entries.
84 Remove unneeded 'OR REPLACE' from all inserts.
85
86
87Index: subversion/libsvn_wc/wc-metadata.sql
88===================================================================
89--- subversion/libsvn_wc/wc-metadata.sql (revision 1673690)
90+++ subversion/libsvn_wc/wc-metadata.sql (revision 1673691)
91@@ -598,30 +598,30 @@
92 ANALYZE sqlite_master; /* Creates empty sqlite_stat1 if necessary */
93
94 DELETE FROM sqlite_stat1
95-WHERE tbl in ('NODES', 'ACTUAL_NODE', 'LOCK', 'WC_LOCK');
96+WHERE tbl in ('NODES', 'ACTUAL_NODE', 'LOCK', 'WC_LOCK', 'EXTERNALS');
97
98-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
99+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
100 ('NODES', 'sqlite_autoindex_NODES_1', '8000 8000 2 1');
101-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
102+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
103 ('NODES', 'I_NODES_PARENT', '8000 8000 10 2 1');
104 /* Tell a lie: We ignore that 99.9% of all moved_to values are NULL */
105-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
106+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
107 ('NODES', 'I_NODES_MOVED', '8000 8000 1 1');
108
109-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
110+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
111 ('ACTUAL_NODE', 'sqlite_autoindex_ACTUAL_NODE_1', '8000 8000 1');
112-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
113+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
114 ('ACTUAL_NODE', 'I_ACTUAL_PARENT', '8000 8000 10 1');
115
116-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
117+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
118 ('LOCK', 'sqlite_autoindex_LOCK_1', '100 100 1');
119
120-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
121+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
122 ('WC_LOCK', 'sqlite_autoindex_WC_LOCK_1', '100 100 1');
123
124-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
125+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
126 ('EXTERNALS','sqlite_autoindex_EXTERNALS_1', '100 100 1');
127-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
128+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
129 ('EXTERNALS','I_EXTERNALS_DEFINED', '100 100 3 1');
130
131 /* sqlite_autoindex_WORK_QUEUE_1 doesn't exist because WORK_QUEUE is
132
diff --git a/gnu/packages/patches/unzip-CVE-2014-9636.patch b/gnu/packages/patches/unzip-CVE-2014-9636.patch
new file mode 100644
index 00000000000..a38c3da51cf
--- /dev/null
+++ b/gnu/packages/patches/unzip-CVE-2014-9636.patch
@@ -0,0 +1,41 @@
1Copied from Debian.
2
3From: mancha <mancha1 AT zoho DOT com>
4Date: Mon, 3 Nov 2014
5Subject: Info-ZIP UnZip buffer overflow
6Bug-Debian: http://bugs.debian.org/776589
7
8By carefully crafting a corrupt ZIP archive with "extra fields" that
9purport to have compressed blocks larger than the corresponding
10uncompressed blocks in STORED no-compression mode, an attacker can
11trigger a heap overflow that can result in application crash or
12possibly have other unspecified impact.
13
14This patch ensures that when extra fields use STORED mode, the
15"compressed" and uncompressed block sizes match.
16
17--- a/extract.c
18+++ b/extract.c
19@@ -2228,6 +2228,7 @@
20 ulg eb_ucsize;
21 uch *eb_ucptr;
22 int r;
23+ ush eb_compr_method;
24
25 if (compr_offset < 4) /* field is not compressed: */
26 return PK_OK; /* do nothing and signal OK */
27@@ -2244,6 +2245,14 @@
28 ((eb_ucsize > 0L) && (eb_size <= (compr_offset + EB_CMPRHEADLEN))))
29 return IZ_EF_TRUNC; /* no/bad compressed data! */
30
31+ /* 2014-11-03 Michal Zalewski, SMS.
32+ * For STORE method, compressed and uncompressed sizes must agree.
33+ * http://www.info-zip.org/phpBB3/viewtopic.php?f=7&t=450
34+ */
35+ eb_compr_method = makeword( eb + (EB_HEADSIZE + compr_offset));
36+ if ((eb_compr_method == STORED) && (eb_size - compr_offset != eb_ucsize))
37+ return PK_ERR;
38+
39 if (
40 #ifdef INT_16BIT
41 (((ulg)(extent)eb_ucsize) != eb_ucsize) ||
diff --git a/gnu/packages/patches/unzip-allow-greater-hostver-values.patch b/gnu/packages/patches/unzip-allow-greater-hostver-values.patch
new file mode 100644
index 00000000000..d98937f1cb4
--- /dev/null
+++ b/gnu/packages/patches/unzip-allow-greater-hostver-values.patch
@@ -0,0 +1,16 @@
1Copied from Debian.
2
3From: Santiago Vila <sanvila@debian.org>
4Subject: zipinfo.c: Do not crash when hostver byte is >= 100
5
6--- a/zipinfo.c
7+++ b/zipinfo.c
8@@ -2114,7 +2114,7 @@
9 else
10 attribs[9] = (xattr & UNX_ISVTX)? 'T' : '-'; /* T==undefined */
11
12- sprintf(&attribs[12], "%u.%u", hostver/10, hostver%10);
13+ sprintf(&attribs[11], "%2u.%u", hostver/10, hostver%10);
14 break;
15
16 } /* end switch (hostnum: external attributes format) */
diff --git a/gnu/packages/patches/unzip-increase-size-of-cfactorstr.patch b/gnu/packages/patches/unzip-increase-size-of-cfactorstr.patch
new file mode 100644
index 00000000000..3417ad873d1
--- /dev/null
+++ b/gnu/packages/patches/unzip-increase-size-of-cfactorstr.patch
@@ -0,0 +1,18 @@
1Copied from Debian.
2
3From: sms
4Subject: Increase size of cfactorstr array to avoid buffer overflow
5Bug-Debian: http://bugs.debian.org/741384
6X-Debian-version: 6.0-11
7
8--- a/list.c
9+++ b/list.c
10@@ -97,7 +97,7 @@
11 {
12 int do_this_file=FALSE, cfactor, error, error_in_archive=PK_COOL;
13 #ifndef WINDLL
14- char sgn, cfactorstr[10];
15+ char sgn, cfactorstr[12];
16 int longhdr=(uO.vflag>1);
17 #endif
18 int date_format;
diff --git a/gnu/packages/patches/unzip-initialize-symlink-flag.patch b/gnu/packages/patches/unzip-initialize-symlink-flag.patch
new file mode 100644
index 00000000000..3b0f391300b
--- /dev/null
+++ b/gnu/packages/patches/unzip-initialize-symlink-flag.patch
@@ -0,0 +1,22 @@
1Copied from Debian.
2
3From: Andreas Schwab <schwab@linux-m68k.org>
4Subject: Initialize the symlink flag
5Bug-Debian: http://bugs.debian.org/717029
6X-Debian-version: 6.0-10
7
8--- a/process.c
9+++ b/process.c
10@@ -1758,6 +1758,12 @@
11 = (G.crec.general_purpose_bit_flag & (1 << 11)) == (1 << 11);
12 #endif
13
14+#ifdef SYMLINKS
15+ /* Initialize the symlink flag, may be set by the platform-specific
16+ mapattr function. */
17+ G.pInfo->symlink = 0;
18+#endif
19+
20 return PK_COOL;
21
22 } /* end function process_cdir_file_hdr() */
diff --git a/gnu/packages/patches/unzip-remove-build-date.patch b/gnu/packages/patches/unzip-remove-build-date.patch
new file mode 100644
index 00000000000..8beff92d1a7
--- /dev/null
+++ b/gnu/packages/patches/unzip-remove-build-date.patch
@@ -0,0 +1,19 @@
1Copied from Debian.
2
3From: Jérémy Bobbio <lunar@debian.org>
4Subject: Remove build date
5Bug-Debian: http://bugs.debian.org/782851
6 In order to make unzip build reproducibly, we remove the
7 (already optional) build date from the binary.
8
9--- a/unix/unix.c
10+++ b/unix/unix.c
11@@ -1705,7 +1705,7 @@
12 #endif /* Sun */
13 #endif /* SGI */
14
15-#ifdef __DATE__
16+#if 0
17 " on ", __DATE__
18 #else
19 "", ""
diff --git a/gnu/packages/pcre.scm b/gnu/packages/pcre.scm
index 86d3ca38741..d07e434190b 100644
--- a/gnu/packages/pcre.scm
+++ b/gnu/packages/pcre.scm
@@ -45,6 +45,9 @@
45 "--enable-pcregrep-libz" 45 "--enable-pcregrep-libz"
46 "--enable-pcregrep-libbz2" 46 "--enable-pcregrep-libbz2"
47 "--enable-pcretest-libreadline" 47 "--enable-pcretest-libreadline"
48 "--enable-unicode-properties"
49 "--enable-pcre16"
50 "--enable-pcre32"
48 "--enable-jit"))) 51 "--enable-jit")))
49 (synopsis "Perl Compatible Regular Expressions") 52 (synopsis "Perl Compatible Regular Expressions")
50 (description 53 (description
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 900d25498cf..7a8f8323557 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -72,7 +72,15 @@
72 "-Dinstallstyle=lib/perl5" 72 "-Dinstallstyle=lib/perl5"
73 "-Duseshrplib" 73 "-Duseshrplib"
74 (string-append "-Dlocincpth=" libc "/include") 74 (string-append "-Dlocincpth=" libc "/include")
75 (string-append "-Dloclibpth=" libc "/lib")))))) 75 (string-append "-Dloclibpth=" libc "/lib")
76
77 ;; Force the library search path to contain only libc
78 ;; because it is recorded in Config.pm and
79 ;; Config_heavy.pl; we don't want to keep a reference
80 ;; to everything that's in $LIBRARY_PATH at build
81 ;; time (Binutils, bzip2, file, etc.)
82 (string-append "-Dlibpth=" libc "/lib")
83 (string-append "-Dplibpth=" libc "/lib"))))))
76 84
77 (add-before 85 (add-before
78 'strip 'make-shared-objects-writable 86 'strip 'make-shared-objects-writable
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 0788da0ff3e..4fd5eef8922 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -156,24 +156,40 @@
156 "-L" zlib "/lib " 156 "-L" zlib "/lib "
157 "-Wl,-rpath=" out "/lib"))) 157 "-Wl,-rpath=" out "/lib")))
158 158
159 #:modules ((ice-9 ftw)
160 ,@%gnu-build-system-modules)
159 #:phases 161 #:phases
160 (alist-cons-before 162 (modify-phases %standard-phases
161 'configure 'patch-lib-shells 163 (add-before
162 (lambda _ 164 'configure 'patch-lib-shells
163 ;; Filter for existing files, since some may not exist in all 165 (lambda _
164 ;; versions of python that are built with this recipe. 166 ;; Filter for existing files, since some may not exist in all
165 (substitute* (filter file-exists? 167 ;; versions of python that are built with this recipe.
166 '("Lib/subprocess.py" 168 (substitute* (filter file-exists?
167 "Lib/popen2.py" 169 '("Lib/subprocess.py"
168 "Lib/distutils/tests/test_spawn.py" 170 "Lib/popen2.py"
169 "Lib/test/test_subprocess.py")) 171 "Lib/distutils/tests/test_spawn.py"
170 (("/bin/sh") (which "sh")))) 172 "Lib/test/test_subprocess.py"))
171 (alist-cons-before 173 (("/bin/sh") (which "sh")))
172 'check 'pre-check 174 #t))
173 (lambda _ 175 (add-before
174 ;; 'Lib/test/test_site.py' needs a valid $HOME 176 'check 'pre-check
175 (setenv "HOME" (getcwd))) 177 (lambda _
176 %standard-phases)))) 178 ;; 'Lib/test/test_site.py' needs a valid $HOME
179 (setenv "HOME" (getcwd))
180 #t))
181 (add-after
182 'unpack 'set-source-file-times-to-1980
183 ;; XXX One of the tests uses a ZIP library to pack up some of the
184 ;; source tree, and fails with "ZIP does not support timestamps
185 ;; before 1980". Work around this by setting the file times in the
186 ;; source tree to sometime in early 1980.
187 (lambda _
188 (let ((circa-1980 (* 10 366 24 60 60)))
189 (ftw "." (lambda (file stat flag)
190 (utime file circa-1980 circa-1980)
191 #t))
192 #t))))))
177 (inputs 193 (inputs
178 `(("bzip2" ,bzip2) 194 `(("bzip2" ,bzip2)
179 ("gdbm" ,gdbm) 195 ("gdbm" ,gdbm)
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 340462dba38..313d63993aa 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -297,8 +297,7 @@ developers using C++ or QML, a CSS & JavaScript like language.")
297 "-no-ssse3" 297 "-no-ssse3"
298 "-no-sse4.1" 298 "-no-sse4.1"
299 "-no-sse4.2" 299 "-no-sse4.2"
300 "-no-avx" 300 "-no-avx")))))
301 "-no-neon")))))
302 (add-after 301 (add-after
303 'install 'move-doc 302 'install 'move-doc
304 (lambda* (#:key outputs #:allow-other-keys) 303 (lambda* (#:key outputs #:allow-other-keys)
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index bf2e8896d62..a827aa1d90e 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -262,7 +262,7 @@ libssh library.")
262 '(#:phases 262 '(#:phases
263 (alist-replace 263 (alist-replace
264 'configure 264 'configure
265 (lambda* (#:key outputs inputs system target 265 (lambda* (#:key outputs inputs system build target
266 #:allow-other-keys #:rest args) 266 #:allow-other-keys #:rest args)
267 (let* ((configure (assoc-ref %standard-phases 'configure)) 267 (let* ((configure (assoc-ref %standard-phases 'configure))
268 (prefix (assoc-ref outputs "out")) 268 (prefix (assoc-ref outputs "out"))
@@ -270,9 +270,8 @@ libssh library.")
270 ;; Set --build and --host flags as the provided config.guess 270 ;; Set --build and --host flags as the provided config.guess
271 ;; is not able to detect them 271 ;; is not able to detect them
272 (flags `(,(string-append "--prefix=" prefix) 272 (flags `(,(string-append "--prefix=" prefix)
273 ,(string-append "--build=" system) 273 ,(string-append "--build=" build)
274 ,(string-append "--host=" 274 ,(string-append "--host=" (or target build)))))
275 (or target system)))))
276 (setenv "CONFIG_SHELL" bash) 275 (setenv "CONFIG_SHELL" bash)
277 (zero? (apply system* bash 276 (zero? (apply system* bash
278 (string-append "." "/configure") 277 (string-append "." "/configure")
diff --git a/gnu/packages/texinfo.scm b/gnu/packages/texinfo.scm
index ca411a95ac9..92bd9471dd3 100644
--- a/gnu/packages/texinfo.scm
+++ b/gnu/packages/texinfo.scm
@@ -1,6 +1,7 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2012, 2013, 2015 Ludovic Courtès <ludo@gnu.org> 2;;; Copyright © 2012, 2013, 2015 Ludovic Courtès <ludo@gnu.org>
3;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> 3;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
4;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
4;;; 5;;;
5;;; This file is part of GNU Guix. 6;;; This file is part of GNU Guix.
6;;; 7;;;
@@ -25,20 +26,22 @@
25 #:use-module (gnu packages) 26 #:use-module (gnu packages)
26 #:use-module (gnu packages compression) 27 #:use-module (gnu packages compression)
27 #:use-module (gnu packages perl) 28 #:use-module (gnu packages perl)
29 #:use-module (gnu packages linux)
28 #:use-module (gnu packages ncurses)) 30 #:use-module (gnu packages ncurses))
29 31
30(define-public texinfo 32(define-public texinfo
31 (package 33 (package
32 (name "texinfo") 34 (name "texinfo")
33 (version "5.2") 35 (version "6.0")
34 (source (origin 36 (source (origin
35 (method url-fetch) 37 (method url-fetch)
36 (uri (string-append "mirror://gnu/texinfo/texinfo-" 38 (uri (string-append "mirror://gnu/texinfo/texinfo-"
37 version ".tar.xz")) 39 version ".tar.xz"))
38 (sha256 40 (sha256
39 (base32 41 (base32
40 "1njfwh2z34r2c4r0iqa7v24wmjzvsfyz4vplzry8ln3479lfywal")))) 42 "1r3i6jyynn6ab45fxw5bms8mflk9ry4qpj6gqyry72vfd5c47fhi"))))
41 (build-system gnu-build-system) 43 (build-system gnu-build-system)
44 (native-inputs `(("procps" ,procps))) ;one of the tests needs pgrep
42 (inputs `(("ncurses" ,ncurses) 45 (inputs `(("ncurses" ,ncurses)
43 ("xz" ,xz) 46 ("xz" ,xz)
44 ("perl" ,perl))) 47 ("perl" ,perl)))
@@ -53,17 +56,17 @@ their source and the command-line Info reader. The emphasis of the language
53is on expressing the content semantically, avoiding physical markup commands.") 56is on expressing the content semantically, avoiding physical markup commands.")
54 (license gpl3+))) 57 (license gpl3+)))
55 58
56(define-public texinfo-6 59(define-public texinfo-5
57 (package 60 (package (inherit texinfo)
58 (inherit texinfo) 61 (version "5.2")
59 (version "6.0")
60 (source (origin 62 (source (origin
61 (method url-fetch) 63 (method url-fetch)
62 (uri (string-append "mirror://gnu/texinfo/texinfo-" 64 (uri (string-append "mirror://gnu/texinfo/texinfo-"
63 version ".tar.xz")) 65 version ".tar.xz"))
64 (sha256 66 (sha256
65 (base32 67 (base32
66 "1r3i6jyynn6ab45fxw5bms8mflk9ry4qpj6gqyry72vfd5c47fhi")))))) 68 "1njfwh2z34r2c4r0iqa7v24wmjzvsfyz4vplzry8ln3479lfywal"))))
69 (native-inputs '())))
67 70
68(define-public texinfo-4 71(define-public texinfo-4
69 (package (inherit texinfo) 72 (package (inherit texinfo)
@@ -77,6 +80,7 @@ is on expressing the content semantically, avoiding physical markup commands.")
77 (sha256 80 (sha256
78 (base32 81 (base32
79 "1rf9ckpqwixj65bw469i634897xwlgkm5i9g2hv3avl6mv7b0a3d")))) 82 "1rf9ckpqwixj65bw469i634897xwlgkm5i9g2hv3avl6mv7b0a3d"))))
83 (native-inputs '())
80 (inputs `(("ncurses" ,ncurses) ("xz" ,xz))))) 84 (inputs `(("ncurses" ,ncurses) ("xz" ,xz)))))
81 85
82(define-public texi2html 86(define-public texi2html
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 68771c79579..3212d8040e0 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -190,7 +190,7 @@ required structures.")
190 (build-system gnu-build-system) 190 (build-system gnu-build-system)
191 (native-inputs `(("perl" ,perl))) 191 (native-inputs `(("perl" ,perl)))
192 (arguments 192 (arguments
193 '(#:parallel-build? #f 193 `(#:parallel-build? #f
194 #:parallel-tests? #f 194 #:parallel-tests? #f
195 #:test-target "test" 195 #:test-target "test"
196 #:phases 196 #:phases
@@ -202,7 +202,13 @@ required structures.")
202 (system* "./config" 202 (system* "./config"
203 "shared" ; build shared libraries 203 "shared" ; build shared libraries
204 "--libdir=lib" 204 "--libdir=lib"
205 (string-append "--prefix=" out))))) 205 (string-append "--prefix=" out)
206 ;; XXX FIXME: Work around a code generation bug in GCC
207 ;; 4.9.3 on ARM when compiled with -mfpu=neon.
208 ,@(if (and (not (%current-target-system))
209 (string-prefix? "armhf" (%current-system)))
210 '("-mfpu=vfpv3")
211 '())))))
206 (alist-cons-before 212 (alist-cons-before
207 'patch-source-shebangs 'patch-tests 213 'patch-source-shebangs 'patch-tests
208 (lambda* (#:key inputs native-inputs #:allow-other-keys) 214 (lambda* (#:key inputs native-inputs #:allow-other-keys)
@@ -276,18 +282,30 @@ security, and applying best practice development processes.")
276 "Net-SSLeay-" version ".tar.gz")) 282 "Net-SSLeay-" version ".tar.gz"))
277 (sha256 283 (sha256
278 (base32 284 (base32
279 "1m2wwzhjwsg0drlhp9w12fl6bsgj69v8gdz72jqrqll3qr7f408p")) 285 "1m2wwzhjwsg0drlhp9w12fl6bsgj69v8gdz72jqrqll3qr7f408p"))))
280 (patches
281 ;; XXX Try removing this patch for perl-net-ssleay > 1.68
282 (list (search-patch "perl-net-ssleay-disable-ede-test.patch")))))
283 (build-system perl-build-system) 286 (build-system perl-build-system)
287 (native-inputs
288 `(("patch" ,patch)
289 ("patch/disable-ede-test"
290 ,(search-patch "perl-net-ssleay-disable-ede-test.patch"))))
284 (inputs `(("openssl" ,openssl))) 291 (inputs `(("openssl" ,openssl)))
285 (arguments 292 (arguments
286 `(#:phases (alist-cons-before 293 `(#:phases
287 'configure 'set-ssl-prefix 294 (modify-phases %standard-phases
288 (lambda* (#:key inputs #:allow-other-keys) 295 (add-after
289 (setenv "OPENSSL_PREFIX" (assoc-ref inputs "openssl"))) 296 'unpack 'apply-patch
290 %standard-phases))) 297 (lambda* (#:key inputs #:allow-other-keys)
298 ;; XXX We apply this patch here instead of in the 'origin' because
299 ;; this package's build system fails badly when the source file
300 ;; times are zeroed.
301 ;; XXX Try removing this patch for perl-net-ssleay > 1.68
302 (zero? (system* "patch" "--force" "-p1" "-i"
303 (assoc-ref inputs "patch/disable-ede-test")))))
304 (add-before
305 'configure 'set-ssl-prefix
306 (lambda* (#:key inputs #:allow-other-keys)
307 (setenv "OPENSSL_PREFIX" (assoc-ref inputs "openssl"))
308 #t)))))
291 (synopsis "Perl extension for using OpenSSL") 309 (synopsis "Perl extension for using OpenSSL")
292 (description 310 (description
293 "This module offers some high level convenience functions for accessing 311 "This module offers some high level convenience functions for accessing
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index eac0235da93..c3f501b4a47 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -104,7 +104,7 @@ as well as the classic centralized workflow.")
104 `(,name 104 `(,name
105 ,@(map (match-lambda 105 ,@(map (match-lambda
106 ((label (? package? _) . _) 106 ((label (? package? _) . _)
107 (string-append name "/" label))) 107 label))
108 (package-transitive-propagated-inputs package))))) 108 (package-transitive-propagated-inputs package)))))
109 109
110(define (package-propagated-input-refs inputs packages) 110(define (package-propagated-input-refs inputs packages)
@@ -112,8 +112,9 @@ as well as the classic centralized workflow.")
112PACKAGES and their propagated inputs." 112PACKAGES and their propagated inputs."
113 (map (lambda (l) 113 (map (lambda (l)
114 `(assoc-ref ,inputs ,l)) 114 `(assoc-ref ,inputs ,l))
115 (append-map package-transitive-propagated-labels* 115 (delete-duplicates ;XXX: efficiency
116 packages))) 116 (append-map package-transitive-propagated-labels*
117 packages))))
117 118
118(define-public git 119(define-public git
119 ;; Keep in sync with 'git-manpages'! 120 ;; Keep in sync with 'git-manpages'!
@@ -236,13 +237,12 @@ PACKAGES and their propagated inputs."
236 (wrap-program git-se* 237 (wrap-program git-se*
237 `("PERL5LIB" ":" prefix 238 `("PERL5LIB" ":" prefix
238 ,(map (lambda (o) (string-append o "/lib/perl5/site_perl")) 239 ,(map (lambda (o) (string-append o "/lib/perl5/site_perl"))
239 (delete-duplicates 240 (list
240 (list 241 ,@(package-propagated-input-refs
241 ,@(package-propagated-input-refs 242 'inputs
242 'inputs 243 (list perl-authen-sasl
243 `(,perl-authen-sasl 244 perl-net-smtp-ssl
244 ,perl-net-smtp-ssl 245 perl-io-socket-ssl))))))
245 ,perl-io-socket-ssl)))))))
246 246
247 ;; Tell 'git-submodule' where Perl is. 247 ;; Tell 'git-submodule' where Perl is.
248 (wrap-program git-sm 248 (wrap-program git-sm
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 9472b4e91cf..6b6d9ec9afe 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -139,14 +139,7 @@ old-fashioned output methods with powerful ascii-art renderer.")
139 `(("autoconf" ,autoconf) 139 `(("autoconf" ,autoconf)
140 ("automake" ,automake) 140 ("automake" ,automake)
141 ("libtool" ,libtool))) 141 ("libtool" ,libtool)))
142 (arguments `(#:configure-flags 142 (arguments `(#:configure-flags '("--enable-shared")
143 '("--enable-shared"
144 ;; FIXME: liba52-0.7.4's config.guess fails on mips64el.
145 ,@(if (%current-target-system)
146 '()
147 (let ((triplet
148 (nix-system->gnu-triplet (%current-system))))
149 (list (string-append "--build=" triplet)))))
150 #:phases 143 #:phases
151 (modify-phases %standard-phases 144 (modify-phases %standard-phases
152 ;; XXX We need to run ./bootstrap because of the build 145 ;; XXX We need to run ./bootstrap because of the build
@@ -665,7 +658,6 @@ treaming protocols.")
665 (or (%current-target-system) 658 (or (%current-target-system)
666 (nix-system->gnu-triplet 659 (nix-system->gnu-triplet
667 (%current-system))))))) 660 (%current-system)))))))
668 "--disable-neon"
669 "--disable-iwmmxt")))) 661 "--disable-iwmmxt"))))
670 %standard-phases))) 662 %standard-phases)))
671 (home-page "http://www.mplayerhq.hu/design7/news.html") 663 (home-page "http://www.mplayerhq.hu/design7/news.html")
@@ -905,23 +897,6 @@ projects while introducing many more.")
905 (zero? (system* "./configure" 897 (zero? (system* "./configure"
906 "--enable-shared" 898 "--enable-shared"
907 "--as=yasm" 899 "--as=yasm"
908 ,@(if (and (not (%current-target-system))
909 (string-prefix?
910 "armhf-"
911 (%current-system)))
912 ;; When building on ARMv7, libvpx
913 ;; assumes that NEON will be
914 ;; available. On Guix, armhf
915 ;; does not require NEON, so we
916 ;; build for ARMv6 and -marm (since
917 ;; no thumb2 on ARMv6) to ensure
918 ;; compatibility with all ARMv7
919 ;; cores we support. Based on
920 ;; the Debian libvpx package.
921 '("--target=armv6-linux-gcc"
922 "--extra-cflags=-marm"
923 "--enable-small")
924 '())
925 (string-append "--prefix=" out))))) 900 (string-append "--prefix=" out)))))
926 %standard-phases) 901 %standard-phases)
927 #:tests? #f)) ; no check target 902 #:tests? #f)) ; no check target
@@ -1157,7 +1132,9 @@ for use with HTML5 video.")
1157 (with-directory-excursion "avidemux_core/ffmpeg_package" 1132 (with-directory-excursion "avidemux_core/ffmpeg_package"
1158 (substitute* "ffmpeg-1.2.1/configure" 1133 (substitute* "ffmpeg-1.2.1/configure"
1159 (("#! /bin/sh") (string-append "#!" (which "bash")))) 1134 (("#! /bin/sh") (string-append "#!" (which "bash"))))
1160 (system* "tar" "cjf" "ffmpeg-1.2.1.tar.bz2" "ffmpeg-1.2.1") 1135 (system* "tar" "cjf" "ffmpeg-1.2.1.tar.bz2" "ffmpeg-1.2.1"
1136 ;; avoid non-determinism in the archive
1137 "--mtime=@0" "--owner=root:0" "--group=root:0")
1161 (delete-file-recursively "ffmpeg-1.2.1"))) 1138 (delete-file-recursively "ffmpeg-1.2.1")))
1162 (alist-replace 'configure 1139 (alist-replace 'configure
1163 (lambda _ 1140 (lambda _
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 6c24b6253a7..28bd2c7c68b 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -272,7 +272,13 @@ parse JSON formatted strings back into the C representation of JSON objects.")
272 (file-name (string-append name "-" version ".tar.gz")) 272 (file-name (string-append name "-" version ".tar.gz"))
273 (sha256 273 (sha256
274 (base32 274 (base32
275 "0rl6s0vg5y1dhh9vfl1lqay3sxf69sxjh0czxrjmasn7ng91wwf3")))) 275 "0rl6s0vg5y1dhh9vfl1lqay3sxf69sxjh0czxrjmasn7ng91wwf3"))
276 (modules '((guix build utils)))
277 (snippet
278 ;; Building with GCC 4.8 with -Werror was fine, but 4.9.3
279 ;; complains in new ways, so turn of -Werror.
280 '(substitute* (find-files "." "^CMakeLists\\.txt$")
281 (("-Werror") "")))))
276 (build-system cmake-build-system) 282 (build-system cmake-build-system)
277 (home-page "https://github.com/miloyip/rapidjson") 283 (home-page "https://github.com/miloyip/rapidjson")
278 (synopsis "JSON parser/generator for C++ with both SAX/DOM style API") 284 (synopsis "JSON parser/generator for C++ with both SAX/DOM style API")
@@ -320,20 +326,14 @@ for efficient socket-like bidirectional reliable communication channels.")
320(define-public libpsl 326(define-public libpsl
321 (package 327 (package
322 (name "libpsl") 328 (name "libpsl")
323 (version "0.6.0") 329 (version "0.7.1")
324 (source (origin 330 (source (origin
325 (method url-fetch) 331 (method url-fetch)
326 (uri (string-append "https://github.com/rockdaboot/libpsl/" 332 (uri (string-append "https://github.com/rockdaboot/libpsl/"
327 "archive/" version ".tar.gz")) 333 "archive/libpsl-" version ".tar.gz"))
328 (sha256 334 (sha256
329 (base32 335 (base32
330 "10s7xxxx6pp4ydp3san69sa6q379ih3pv92fyi565ggmlw8igv7a")) 336 "1k0klj668c9v0r4993vfs3kq773mzdz61vsigqw6v1mjcwnf1si3"))))
331 (file-name (string-append name "-" version ".tar.gz"))
332 (modules '((guix build utils)))
333 (snippet
334 ;; Believe it or not, the .pc is invalid. Fix it.
335 '(substitute* "libpsl.pc.in"
336 (("-llibpsl") "-lpsl")))))
337 (build-system gnu-build-system) 337 (build-system gnu-build-system)
338 (inputs `(("icu4c" ,icu4c))) 338 (inputs `(("icu4c" ,icu4c)))
339 ;; The release tarball lacks the generated files. 339 ;; The release tarball lacks the generated files.
@@ -341,7 +341,8 @@ for efficient socket-like bidirectional reliable communication channels.")
341 ("automake" ,automake) 341 ("automake" ,automake)
342 ("gettext" ,gnu-gettext) 342 ("gettext" ,gnu-gettext)
343 ("which" ,which) 343 ("which" ,which)
344 ("libtool" ,libtool))) 344 ("libtool" ,libtool)
345 ("pkg-config" ,pkg-config)))
345 (arguments 346 (arguments
346 `(#:phases (alist-cons-after 347 `(#:phases (alist-cons-after
347 'unpack 'bootstrap 348 'unpack 'bootstrap
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 1ed33e1629c..9fd9f4a321f 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -447,13 +447,6 @@ transparent text on your screen.")
447 (inputs 447 (inputs
448 `(("libx11" ,libx11) 448 `(("libx11" ,libx11)
449 ("guile" ,guile-2.0))) 449 ("guile" ,guile-2.0)))
450 (arguments `(#:configure-flags
451 '(;; FIXME: xbindkeys-1.8.6's config.guess fails on mips64el.
452 ,@(if (%current-target-system)
453 '()
454 (let ((triplet
455 (nix-system->gnu-triplet (%current-system))))
456 (list (string-append "--build=" triplet)))))))
457 (home-page "http://www.nongnu.org/xbindkeys/") 450 (home-page "http://www.nongnu.org/xbindkeys/")
458 (synopsis "Associate a combination of keys with a shell command") 451 (synopsis "Associate a combination of keys with a shell command")
459 (description 452 (description
diff --git a/gnu/packages/zip.scm b/gnu/packages/zip.scm
index e6f50672956..f0f27ddfe26 100644
--- a/gnu/packages/zip.scm
+++ b/gnu/packages/zip.scm
@@ -1,6 +1,6 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> 2;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
3;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> 3;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
4;;; 4;;;
5;;; This file is part of GNU Guix. 5;;; This file is part of GNU Guix.
6;;; 6;;;
@@ -81,23 +81,29 @@ Compression ratios of 2:1 to 3:1 are common for text files.")
81 (sha256 81 (sha256
82 (base32 82 (base32
83 "0dxx11knh3nk95p2gg2ak777dd11pr7jx5das2g49l262scrcv83")) 83 "0dxx11knh3nk95p2gg2ak777dd11pr7jx5das2g49l262scrcv83"))
84 (patches (list (search-patch "unzip-CVE-2014-8139.patch") 84 (patches (map search-patch '("unzip-CVE-2014-8139.patch"
85 (search-patch "unzip-CVE-2014-8140.patch") 85 "unzip-CVE-2014-8140.patch"
86 (search-patch "unzip-CVE-2014-8141.patch"))))) 86 "unzip-CVE-2014-8141.patch"
87 "unzip-CVE-2014-9636.patch"
88 "unzip-allow-greater-hostver-values.patch"
89 "unzip-increase-size-of-cfactorstr.patch"
90 "unzip-initialize-symlink-flag.patch"
91 "unzip-remove-build-date.patch")))))
87 (build-system gnu-build-system) 92 (build-system gnu-build-system)
88 ;; no inputs; bzip2 is not supported, since not compiled with BZ_NO_STDIO 93 ;; no inputs; bzip2 is not supported, since not compiled with BZ_NO_STDIO
89 (arguments 94 (arguments
90 `(#:make-flags '("generic_gcc") 95 `(#:phases (modify-phases %standard-phases
91 #:phases 96 (delete 'configure)
92 (alist-replace 97 (replace 'build
93 'configure 98 (lambda* (#:key make-flags #:allow-other-keys)
94 (lambda* (#:key inputs outputs #:allow-other-keys) 99 (zero? (apply system* "make"
95 (let* ((out (assoc-ref outputs "out"))) 100 `("-j" ,(number->string
96 (copy-file "unix/Makefile" "Makefile") 101 (parallel-job-count))
97 (substitute* "Makefile" 102 ,@make-flags
98 (("/usr/local") out) 103 "generic_gcc"))))))
99 (("/man/") "/share/man/")))) 104 #:make-flags (list "-f" "unix/Makefile"
100 %standard-phases))) 105 (string-append "prefix=" %output)
106 (string-append "MANDIR=" %output "/share/man/man1"))))
101 (home-page "http://www.info-zip.org/UnZip.html") 107 (home-page "http://www.info-zip.org/UnZip.html")
102 (synopsis "Decompression and file extraction utility") 108 (synopsis "Decompression and file extraction utility")
103 (description 109 (description
diff --git a/guix/build-system/gnu.scm b/guix/build-system/gnu.scm
index 8702c6c9157..1f302447c2a 100644
--- a/guix/build-system/gnu.scm
+++ b/guix/build-system/gnu.scm
@@ -289,6 +289,7 @@ standard packages used as implicit inputs of the GNU build system."
289 (phases '%standard-phases) 289 (phases '%standard-phases)
290 (locale "en_US.UTF-8") 290 (locale "en_US.UTF-8")
291 (system (%current-system)) 291 (system (%current-system))
292 (build (nix-system->gnu-triplet system))
292 (imported-modules %gnu-build-system-modules) 293 (imported-modules %gnu-build-system-modules)
293 (modules %default-modules) 294 (modules %default-modules)
294 (substitutable? #t) 295 (substitutable? #t)
@@ -333,6 +334,7 @@ are allowed to refer to."
333 (source 334 (source
334 source)) 335 source))
335 #:system ,system 336 #:system ,system
337 #:build ,build
336 #:outputs %outputs 338 #:outputs %outputs
337 #:inputs %build-inputs 339 #:inputs %build-inputs
338 #:search-paths ',(map search-path-specification->sexp 340 #:search-paths ',(map search-path-specification->sexp
@@ -422,6 +424,7 @@ is one of `host' or `target'."
422 (phases '%standard-phases) 424 (phases '%standard-phases)
423 (locale "en_US.UTF-8") 425 (locale "en_US.UTF-8")
424 (system (%current-system)) 426 (system (%current-system))
427 (build (nix-system->gnu-triplet system))
425 (imported-modules %gnu-build-system-modules) 428 (imported-modules %gnu-build-system-modules)
426 (modules %default-modules) 429 (modules %default-modules)
427 (substitutable? #t) 430 (substitutable? #t)
@@ -472,6 +475,7 @@ platform."
472 (source 475 (source
473 source)) 476 source))
474 #:system ,system 477 #:system ,system
478 #:build ,build
475 #:target ,target 479 #:target ,target
476 #:outputs %outputs 480 #:outputs %outputs
477 #:inputs %build-target-inputs 481 #:inputs %build-target-inputs
diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm
index 50624793604..102207b0226 100644
--- a/guix/build/gnu-build-system.scm
+++ b/guix/build/gnu-build-system.scm
@@ -184,7 +184,7 @@ makefiles."
184 ;; Patch `SHELL' in generated makefiles. 184 ;; Patch `SHELL' in generated makefiles.
185 (for-each patch-makefile-SHELL (find-files "." "^(GNU)?[mM]akefile$"))) 185 (for-each patch-makefile-SHELL (find-files "." "^(GNU)?[mM]akefile$")))
186 186
187(define* (configure #:key target native-inputs inputs outputs 187(define* (configure #:key build target native-inputs inputs outputs
188 (configure-flags '()) out-of-source? 188 (configure-flags '()) out-of-source?
189 #:allow-other-keys) 189 #:allow-other-keys)
190 (define (package-name) 190 (define (package-name)
@@ -234,6 +234,9 @@ makefiles."
234 (list (string-append "--docdir=" docdir 234 (list (string-append "--docdir=" docdir
235 "/share/doc/" (package-name))) 235 "/share/doc/" (package-name)))
236 '()) 236 '())
237 ,@(if build
238 (list (string-append "--build=" build))
239 '())
237 ,@(if target ; cross building 240 ,@(if target ; cross building
238 (list (string-append "--host=" target)) 241 (list (string-append "--host=" target))
239 '()) 242 '())
diff --git a/guix/build/python-build-system.scm b/guix/build/python-build-system.scm
index 26a7254db9b..d008ac2c69b 100644
--- a/guix/build/python-build-system.scm
+++ b/guix/build/python-build-system.scm
@@ -2,6 +2,7 @@
2;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org> 2;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org>
3;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> 3;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
4;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> 4;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
5;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
5;;; 6;;;
6;;; This file is part of GNU Guix. 7;;; This file is part of GNU Guix.
7;;; 8;;;
@@ -119,10 +120,24 @@ installed with setuptools."
119 (rename-file easy-install-pth new-pth)) 120 (rename-file easy-install-pth new-pth))
120 #t)) 121 #t))
121 122
123(define* (ensure-no-mtimes-pre-1980 #:rest _)
124 "Ensure that there are no mtimes before 1980-01-02 in the source tree."
125 ;; Rationale: patch-and-repack creates tarballs with timestamps at the POSIX
126 ;; epoch, 1970-01-01 UTC. This causes problems with Python packages,
127 ;; because Python eggs are ZIP files, and the ZIP format does not support
128 ;; timestamps before 1980.
129 (let ((early-1980 315619200)) ; 1980-01-02 UTC
130 (ftw "." (lambda (file stat flag)
131 (unless (<= early-1980 (stat:mtime stat))
132 (utime file early-1980 early-1980))
133 #t))
134 #t))
135
122(define %standard-phases 136(define %standard-phases
123 ;; 'configure' and 'build' phases are not needed. Everything is done during 137 ;; 'configure' and 'build' phases are not needed. Everything is done during
124 ;; 'install'. 138 ;; 'install'.
125 (modify-phases gnu:%standard-phases 139 (modify-phases gnu:%standard-phases
140 (add-after 'unpack 'ensure-no-mtimes-pre-1980 ensure-no-mtimes-pre-1980)
126 (delete 'configure) 141 (delete 'configure)
127 (replace 'install install) 142 (replace 'install install)
128 (replace 'check check) 143 (replace 'check check)
diff --git a/guix/packages.scm b/guix/packages.scm
index 5a280857ea7..3983d1409ac 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -1,6 +1,6 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> 2;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
3;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> 3;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
4;;; 4;;;
5;;; This file is part of GNU Guix. 5;;; This file is part of GNU Guix.
6;;; 6;;;
@@ -480,7 +480,11 @@ IMPORTED-MODULES specify modules to use/import for use by SNIPPET."
480 480
481 (begin (chdir "..") #t) 481 (begin (chdir "..") #t)
482 (zero? (system* (string-append #+tar "/bin/tar") 482 (zero? (system* (string-append #+tar "/bin/tar")
483 "cvfa" #$output directory))))))) 483 "cvfa" #$output directory
484 ;; avoid non-determinism in the archive
485 "--mtime=@0"
486 "--owner=root:0"
487 "--group=root:0")))))))
484 488
485 (let ((name (tarxz-name original-file-name)) 489 (let ((name (tarxz-name original-file-name))
486 (modules (delete-duplicates (cons '(guix build utils) modules)))) 490 (modules (delete-duplicates (cons '(guix build utils) modules))))
@@ -491,21 +495,37 @@ IMPORTED-MODULES specify modules to use/import for use by SNIPPET."
491 #:guile-for-build guile-for-build)))) 495 #:guile-for-build guile-for-build))))
492 496
493(define (transitive-inputs inputs) 497(define (transitive-inputs inputs)
494 (let loop ((inputs inputs) 498 "Return the closure of INPUTS when considering the 'propagated-inputs'
495 (result '())) 499edges. Omit duplicate inputs, except for those already present in INPUTS
500itself.
501
502This is implemented as a breadth-first traversal such that INPUTS is
503preserved, and only duplicate propagated inputs are removed."
504 (define (seen? seen item outputs)
505 (match (vhash-assq item seen)
506 ((_ . o) (equal? o outputs))
507 (_ #f)))
508
509 (let loop ((inputs inputs)
510 (result '())
511 (propagated '())
512 (first? #t)
513 (seen vlist-null))
496 (match inputs 514 (match inputs
497 (() 515 (()
498 (delete-duplicates (reverse result))) ; XXX: efficiency 516 (if (null? propagated)
499 (((and i (name (? package? p) sub ...)) rest ...) 517 (reverse result)
500 (let ((t (map (match-lambda 518 (loop (reverse (concatenate propagated)) result '() #f seen)))
501 ((dep-name derivation ...) 519 (((and input (label (? package? package) outputs ...)) rest ...)
502 (cons (string-append name "/" dep-name) 520 (if (and (not first?) (seen? seen package outputs))
503 derivation))) 521 (loop rest result propagated first? seen)
504 (package-propagated-inputs p)))) 522 (loop rest
505 (loop (append t rest) 523 (cons input result)
506 (append t (cons i result))))) 524 (cons (package-propagated-inputs package) propagated)
525 first?
526 (vhash-consq package outputs seen))))
507 ((input rest ...) 527 ((input rest ...)
508 (loop rest (cons input result)))))) 528 (loop rest (cons input result) propagated first? seen)))))
509 529
510(define (package-direct-sources package) 530(define (package-direct-sources package)
511 "Return all source origins associated with PACKAGE; including origins in 531 "Return all source origins associated with PACKAGE; including origins in
diff --git a/tests/gexp.scm b/tests/gexp.scm
index 5c9a4fc031a..740d74620ee 100644
--- a/tests/gexp.scm
+++ b/tests/gexp.scm
@@ -536,6 +536,9 @@
536 (guix build utils)))) 536 (guix build utils))))
537 (ok? (built-derivations (list drv))) 537 (ok? (built-derivations (list drv)))
538 (guile-drv (package->derivation %bootstrap-guile)) 538 (guile-drv (package->derivation %bootstrap-guile))
539 (bash (interned-file (search-bootstrap-binary "bash"
540 (%current-system))
541 "bash" #:recursive? #t))
539 (g-one -> (derivation->output-path drv "one")) 542 (g-one -> (derivation->output-path drv "one"))
540 (g-two -> (derivation->output-path drv "two")) 543 (g-two -> (derivation->output-path drv "two"))
541 (g-guile -> (derivation->output-path drv))) 544 (g-guile -> (derivation->output-path drv)))
@@ -543,8 +546,10 @@
543 (equal? (call-with-input-file g-one read) (list one)) 546 (equal? (call-with-input-file g-one read) (list one))
544 (equal? (call-with-input-file g-two read) 547 (equal? (call-with-input-file g-two read)
545 (list one (derivation->output-path two "chbouib"))) 548 (list one (derivation->output-path two "chbouib")))
549
550 ;; Note: %BOOTSTRAP-GUILE depends on the bootstrap Bash.
546 (equal? (call-with-input-file g-guile read) 551 (equal? (call-with-input-file g-guile read)
547 (list (derivation->output-path guile-drv))))))) 552 (list (derivation->output-path guile-drv) bash))))))
548 553
549(test-assertm "gexp->derivation #:allowed-references" 554(test-assertm "gexp->derivation #:allowed-references"
550 (mlet %store-monad ((drv (gexp->derivation "allowed-refs" 555 (mlet %store-monad ((drv (gexp->derivation "allowed-refs"
diff --git a/tests/packages.scm b/tests/packages.scm
index 511ad78b6c8..3cb532df1a9 100644
--- a/tests/packages.scm
+++ b/tests/packages.scm
@@ -118,10 +118,32 @@
118 (equal? `(("a" ,a)) (package-transitive-inputs c)) 118 (equal? `(("a" ,a)) (package-transitive-inputs c))
119 (equal? (package-propagated-inputs d) 119 (equal? (package-propagated-inputs d)
120 (package-transitive-inputs d)) 120 (package-transitive-inputs d))
121 (equal? `(("b" ,b) ("b/a" ,a) ("c" ,c) 121 (equal? `(("b" ,b) ("c" ,c) ("d" ,d)
122 ("d" ,d) ("d/x" "something.drv")) 122 ("a" ,a) ("x" "something.drv"))
123 (pk 'x (package-transitive-inputs e)))))) 123 (pk 'x (package-transitive-inputs e))))))
124 124
125(test-assert "package-transitive-inputs, no duplicates"
126 (let* ((a (dummy-package "a"))
127 (b (dummy-package "b"
128 (inputs `(("a+" ,a)))
129 (native-inputs `(("a*" ,a)))
130 (propagated-inputs `(("a" ,a)))))
131 (c (dummy-package "c"
132 (propagated-inputs `(("b" ,b)))))
133 (d (dummy-package "d"
134 (inputs `(("a" ,a) ("c" ,c)))))
135 (e (dummy-package "e"
136 (inputs `(("b" ,b) ("c" ,c))))))
137 (and (null? (package-transitive-inputs a))
138 (equal? `(("a*" ,a) ("a+" ,a) ("a" ,a)) ;here duplicates are kept
139 (package-transitive-inputs b))
140 (equal? `(("b" ,b) ("a" ,a))
141 (package-transitive-inputs c))
142 (equal? `(("a" ,a) ("c" ,c) ("b" ,b)) ;duplicate A removed
143 (package-transitive-inputs d))
144 (equal? `(("b" ,b) ("c" ,c) ("a" ,a))
145 (package-transitive-inputs e))))) ;ditto
146
125(test-equal "package-transitive-supported-systems" 147(test-equal "package-transitive-supported-systems"
126 '(("x" "y" "z") ;a 148 '(("x" "y" "z") ;a
127 ("x" "y") ;b 149 ("x" "y") ;b
@@ -573,8 +595,8 @@
573 (dummy (dummy-package "dummy" 595 (dummy (dummy-package "dummy"
574 (inputs `(("prop" ,prop))))) 596 (inputs `(("prop" ,prop)))))
575 (inputs (bag-transitive-inputs (package->bag dummy #:graft? #f)))) 597 (inputs (bag-transitive-inputs (package->bag dummy #:graft? #f))))
576 (match (assoc "prop/dep" inputs) 598 (match (assoc "dep" inputs)
577 (("prop/dep" package) 599 (("dep" package)
578 (eq? package dep))))) 600 (eq? package dep)))))
579 601
580(test-assert "bag->derivation" 602(test-assert "bag->derivation"
diff --git a/tests/size.scm b/tests/size.scm
index 95b99a88ef7..a1106045f84 100644
--- a/tests/size.scm
+++ b/tests/size.scm
@@ -24,6 +24,7 @@
24 #:use-module (guix gexp) 24 #:use-module (guix gexp)
25 #:use-module (guix tests) 25 #:use-module (guix tests)
26 #:use-module (guix scripts size) 26 #:use-module (guix scripts size)
27 #:use-module (gnu packages)
27 #:use-module (gnu packages bootstrap) 28 #:use-module (gnu packages bootstrap)
28 #:use-module (ice-9 match) 29 #:use-module (ice-9 match)
29 #:use-module (srfi srfi-1) 30 #:use-module (srfi srfi-1)
@@ -54,9 +55,15 @@
54 (built-derivations (list file2)) 55 (built-derivations (list file2))
55 (mlet %store-monad ((profiles (store-profile 56 (mlet %store-monad ((profiles (store-profile
56 (derivation->output-path file2))) 57 (derivation->output-path file2)))
58 (bash (interned-file
59 (search-bootstrap-binary
60 "bash" (%current-system)) "bash"
61 #:recursive? #t))
57 (guile (package->derivation %bootstrap-guile))) 62 (guile (package->derivation %bootstrap-guile)))
58 (define (lookup-profile drv) 63 (define (lookup-profile item)
59 (find (matching-profile (derivation->output-path drv)) 64 (find (matching-profile (if (derivation? item)
65 (derivation->output-path item)
66 item))
60 profiles)) 67 profiles))
61 68
62 (letrec-syntax ((match* (syntax-rules (=>) 69 (letrec-syntax ((match* (syntax-rules (=>)
@@ -67,15 +74,17 @@
67 ((_ () body) 74 ((_ () body)
68 body)))) 75 body))))
69 ;; Make sure we get all three profiles with sensible values. 76 ;; Make sure we get all three profiles with sensible values.
70 (return (and (= (length profiles) 3) 77 (return (and (= (length profiles) 4)
71 (match* ((file1 => profile1) 78 (match* ((file1 => profile1)
72 (file2 => profile2) 79 (file2 => profile2)
73 (guile => profile3)) 80 (guile => profile3)
81 (bash => profile4)) ;dependency of GUILE
74 (and (> (profile-closure-size profile2) 0) 82 (and (> (profile-closure-size profile2) 0)
75 (= (profile-closure-size profile2) 83 (= (profile-closure-size profile2)
76 (+ (profile-self-size profile1) 84 (+ (profile-self-size profile1)
77 (profile-self-size profile2) 85 (profile-self-size profile2)
78 (profile-self-size profile3)))))))))))) 86 (profile-self-size profile3)
87 (profile-self-size profile4))))))))))))
79 88
80(test-end "size") 89(test-end "size")
81 90