From e19eb93b8564a5c76ae71878e815ccfa75d62325 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 30 Apr 2016 23:30:56 +0200 Subject: syscalls: statfs: Add missing 'mount-flags' field of 'struct statfs'. * guix/build/syscalls.scm ()[mount-flags]: New field. [spare2]: Remove. (%statfs): Likewise. --- guix/build/syscalls.scm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm index 6cdf65304d..a85f865180 100644 --- a/guix/build/syscalls.scm +++ b/guix/build/syscalls.scm @@ -59,6 +59,7 @@ (define-module (guix build syscalls) file-system-identifier file-system-maximum-name-length file-system-fragment-size + file-system-mount-flags statfs processes @@ -475,8 +476,7 @@ (define mkdtemp! (define-record-type (file-system type block-size blocks blocks-free blocks-available files free-files identifier - name-length fragment-size - spare0 spare1 spare2) + name-length fragment-size mount-flags spare0 spare1) file-system? (type file-system-type) (block-size file-system-block-size) @@ -488,14 +488,14 @@ (define-record-type (identifier file-system-identifier) (name-length file-system-maximum-name-length) (fragment-size file-system-fragment-size) + (mount-flags file-system-mount-flags) (spare0 file-system--spare0) - (spare1 file-system--spare1) - (spare2 file-system--spare2)) + (spare1 file-system--spare1)) (define-syntax fsword ;fsword_t (identifier-syntax long)) -(define-c-struct %statfs +(define-c-struct %statfs ; sizeof-statfs ;slightly overestimated file-system read-statfs @@ -510,9 +510,9 @@ (define-c-struct %statfs (identifier uint64) ;really "int[2]" (name-length fsword) (fragment-size fsword) + (mount-flags fsword) (spare0 int128) ;really "fsword[4]" - (spare1 int128) - (spare2 int64)) ;XXX: to match array alignment + (spare1 int128)) (define statfs (let ((proc (syscall->procedure int "statfs" '(* *)))) -- cgit v1.2.3 From 07857052db082224648064265fbaaaa5bf8fa609 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 30 Apr 2016 23:32:25 +0200 Subject: syscalls: 'statfs' explicitly binds 'statfs64'. * guix/build/syscalls.scm (statfs): Explicitly bind "statfs64". --- guix/build/syscalls.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm index a85f865180..ed7942c10a 100644 --- a/guix/build/syscalls.scm +++ b/guix/build/syscalls.scm @@ -515,7 +515,7 @@ (define-c-struct %statfs ; (spare1 int128)) (define statfs - (let ((proc (syscall->procedure int "statfs" '(* *)))) + (let ((proc (syscall->procedure int "statfs64" '(* *)))) (lambda (file) "Return a data structure describing the file system mounted at FILE." @@ -523,7 +523,7 @@ (define statfs (ret (proc (string->pointer file) (bytevector->pointer stat))) (err (errno))) (if (zero? ret) - (read-statfs stat 0) + (read-statfs stat) (throw 'system-error "statfs" "~A: ~A" (list file (strerror err)) (list err))))))) -- cgit v1.2.3 From b8e9c453de9142c6244429dadf432cff05c7356a Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Thu, 14 Apr 2016 07:31:35 +0200 Subject: gnu: bootstrap: Add case for i686-mingw. * gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add case for i686-mingw. Signed-off-by: Manolis Ragkousis --- gnu/packages/bootstrap.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index 3f3770d89b..a3cd18519c 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -172,6 +172,7 @@ (define* (glibc-dynamic-linker ;; here just so we can keep going. ((string=? system "xtensa-elf") "no-ld.so") ((string=? system "avr") "no-ld.so") + ((string=? system "i686-mingw") "no-ld.so") (else (error "dynamic linker name not known for this system" system)))) -- cgit v1.2.3 From 0b63b1625e5b2343caca7015c1498d3a91195483 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Wed, 27 Apr 2016 21:22:03 +0200 Subject: gnu: ao: Format the description string. * gnu/packages/xiph.scm (ao): Add markup to description string. --- gnu/packages/xiph.scm | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index 83bed814f9..d451ec05e2 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -176,23 +176,26 @@ (define ao "Libao is a cross-platform audio library that allows programs to output audio using a simple API on a wide variety of platforms. It currently supports: -Null output (handy for testing without a sound device), -WAV files, -AU files, -RAW files, -OSS (Open Sound System, used on Linux and FreeBSD), -ALSA (Advanced Linux Sound Architecture), -aRts (Analog RealTime Synth, used by KDE), -PulseAudio (next generation GNOME sound server), -esd (EsounD or Enlightened Sound Daemon), -Mac OS X, -Windows (98 and later), -AIX, -Sun/NetBSD/OpenBSD, -IRIX, -NAS (Network Audio Server), -RoarAudio (Modern, multi-OS, networked Sound System), -OpenBSD's sndio.") +@itemize +@item Null output (handy for testing without a sound device), +@item WAV files, +@item AU files, +@item RAW files, +@item OSS (Open Sound System, used on Linux and FreeBSD), +@item ALSA (Advanced Linux Sound Architecture), +@item aRts (Analog RealTime Synth, used by KDE), +@item PulseAudio (next generation GNOME sound server), +@item esd (EsounD or Enlightened Sound Daemon), +@item Mac OS X, +@item Windows (98 and later), +@item AIX, +@item Sun/NetBSD/OpenBSD, +@item IRIX, +@item NAS (Network Audio Server), +@item RoarAudio (Modern, multi-OS, networked Sound System), +@item OpenBSD's sndio. +@end itemize +") (license license:gpl2+) (home-page "http://www.xiph.org/ao/"))) -- cgit v1.2.3 From 8b463616f95834592c372ebd6bff04266591ca66 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Sun, 1 May 2016 18:11:51 +0200 Subject: gnu: ao: Replace "itemize" with "enumerate" in description string. * gnu/packages/xiph.scm (ao): Replace "itemize" with "enumerate" in description string. Apparently Guile cannot yet handle "itemize" when creating HTML. --- gnu/packages/xiph.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index d451ec05e2..244f0c84b4 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -176,7 +176,7 @@ (define ao "Libao is a cross-platform audio library that allows programs to output audio using a simple API on a wide variety of platforms. It currently supports: -@itemize +@enumerate @item Null output (handy for testing without a sound device), @item WAV files, @item AU files, @@ -194,7 +194,7 @@ (define ao @item NAS (Network Audio Server), @item RoarAudio (Modern, multi-OS, networked Sound System), @item OpenBSD's sndio. -@end itemize +@end enumerate ") (license license:gpl2+) (home-page "http://www.xiph.org/ao/"))) -- cgit v1.2.3 From b095e762700def7af8af3cbaf64d92fd9cb22851 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 27 Apr 2016 22:49:22 +0200 Subject: gnu: Add synthv1. * gnu/packages/music.scm (synthv1): New variable. --- gnu/packages/music.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index cea685f705..f5ed8b8a59 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -689,6 +689,34 @@ (define-public powertabeditor Editor. It is compatible with Power Tab Editor 1.7 and Guitar Pro.") (license license:gpl3+))) +(define-public synthv1 + (package + (name "synthv1") + (version "0.7.4") + (source (origin + (method url-fetch) + (uri + (string-append "mirror://sourceforge/synthv1/synthv1-" + version ".tar.gz")) + (sha256 + (base32 + "16n0v4jk0ilirq84rrildvdwqxgxav78rk58ilhl622v5n893c7w")))) + (build-system gnu-build-system) + ;; There are no tests. + (arguments `(#:tests? #f)) + (inputs + `(("jack" ,jack-1) + ("lv2" ,lv2) + ("alsa-lib" ,alsa-lib) + ("liblo" ,liblo) + ("qt" ,qt))) + (home-page "http://synthv1.sourceforge.net") + (synopsis "Polyphonic subtractive synthesizer") + (description + "Synthv1 is an old-school subtractive polyphonic synthesizer with four +oscillators and stereo effects.") + (license license:gpl2+))) + (define-public setbfree (package (name "setbfree") -- cgit v1.2.3 From f03781417bfd780bd83b375142c30e817c9bd85a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 28 Apr 2016 08:11:05 +0200 Subject: gnu: Add antiword. * gnu/packages/textutils.scm (antiword): New variable. --- gnu/packages/textutils.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 71cf25b224..f6735a43e0 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -292,3 +292,39 @@ (define-public oniguruma characteristic of this library is that different character encoding for every regular expression object can be specified.") (license license:bsd-2))) + +(define-public antiword + (package + (name "antiword") + (version "0.37") + (source (origin + (method url-fetch) + (uri (string-append "http://www.winfield.demon.nl/linux" + "/antiword-" version ".tar.gz")) + (sha256 + (base32 + "1b7mi1l20jhj09kyh0bq14qzz8vdhhyf35gzwsq43mn6rc7h0b4f")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; There are no tests + #:make-flags + (list "-f" "Makefile.Linux" + (string-append "GLOBAL_INSTALL_DIR=" + (assoc-ref %outputs "out") "/bin") + (string-append "GLOBAL_RESOURCES_DIR=" + (assoc-ref %outputs "out") "/share/antiword")) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda* (#:key make-flags #:allow-other-keys) + (zero? (apply system* "make" `("global_install" ,@make-flags)))))))) + (home-page "http://www.winfield.demon.nl/") + (synopsis "Microsoft Word document reader") + (description "Antiword is an application for displaying Microsoft Word +documents. It can also convert the document to PostScript or XML. Only +documents made by MS Word version 2 and version 6 or later are supported. The +name comes from: \"The antidote against people who send Microsoft Word files +to everybody, because they believe that everybody runs Windows and therefore +runs Word\".") + (license license:gpl2+))) -- cgit v1.2.3 From 457b5eb6d2441913303058be016fcf2bbaee310e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 1 May 2016 18:09:30 +0200 Subject: gnu: qtractor: Update to 0.7.7. * gnu/packages/music.scm (qtractor): Update to 0.7.7. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index f5ed8b8a59..95f52c5dd6 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1209,14 +1209,14 @@ (define-public cursynth (define-public qtractor (package (name "qtractor") - (version "0.7.5") + (version "0.7.7") (source (origin (method url-fetch) (uri (string-append "http://downloads.sourceforge.net/qtractor/" "qtractor-" version ".tar.gz")) (sha256 (base32 - "0drqzp1rbqmqiwdzc9n3307y8rm882fha3awy5qlvir5ma2mwl80")))) + "0q8kvy1ynlg64v1w7jxix1rpq0lp2ixgb2y8cbbwxd2b28r3r2vl")))) (build-system gnu-build-system) (arguments `(#:tests? #f)) ; no "check" target (inputs -- cgit v1.2.3 From 35518b7545cc269e9982485028315003f81aa2e7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 1 May 2016 18:10:38 +0200 Subject: gnu: guitarix: Update to 0.35.0. * gnu/packages/audio.scm (guitarix): Update to 0.35.0. --- gnu/packages/audio.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index cdcb61afee..bcb3b77b88 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -862,15 +862,15 @@ (define-public freepats (define-public guitarix (package (name "guitarix") - (version "0.34.0") + (version "0.35.0") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/guitarix/guitarix2-" - version ".tar.bz2")) + version ".tar.xz")) (sha256 (base32 - "0pamaq8iybsaglq6y1m1rlmz4wgbs2r6m24bj7x4fwg4grjvzjl8")))) + "10hijqrrl8xil46kgsac10ysfxysisxlibm2rz133zyig5n63jdw")))) (build-system waf-build-system) (arguments `(#:tests? #f ; no "check" target -- cgit v1.2.3 From 7d5920638a77a89a738dae6c38c59a1bc1b53905 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 7 Apr 2016 14:28:57 +0200 Subject: gnu: Add python2-shedskin. * gnu/packages/python.scm (python2-shedskin): New variable. Signed-off-by: Leo Famulari --- gnu/packages/python.scm | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index f367e1e605..7593fc71ac 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -37,7 +37,7 @@ (define-module (gnu packages python) #:use-module ((guix licenses) #:select (asl2.0 bsd-4 bsd-3 bsd-2 non-copyleft cc0 x11 x11-style - gpl2 gpl2+ gpl3+ lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3+ agpl3+ + gpl2 gpl2+ gpl3 gpl3+ lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3+ agpl3+ isc mpl2.0 psfl public-domain repoze unlicense x11-style zpl2.1)) #:use-module ((guix licenses) #:select (expat zlib) #:prefix license:) @@ -78,6 +78,8 @@ (define-module (gnu packages python) #:use-module (gnu packages xdisorg) #:use-module (gnu packages zip) #:use-module (gnu packages tcl) + #:use-module (gnu packages bdw-gc) + #:use-module (gnu packages pcre) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) @@ -8704,3 +8706,42 @@ (define-public python-cysignals (define-public python2-cysignals (package-with-python2 python-cysignals)) +(define-public python2-shedskin + (package + (name "python2-shedskin") + (version "0.9.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/shedskin/shedskin/" + "releases/download/v" version + "/shedskin-" version ".tgz")) + (sha256 + (base32 + "0nzwrzgw1ga8rw6f0ryq7zr9kkiavd1cqz5hzxkcbicl1dk7kz41")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2 + #:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-resulting-include-libs + (lambda* (#:key inputs #:allow-other-keys) + (let ((libgc (assoc-ref inputs "libgc")) + (pcre (assoc-ref inputs "pcre"))) + (substitute* "shedskin/makefile.py" + (("variable == 'CCFLAGS':[ ]*") + (string-append "variable == 'CCFLAGS':\n" + " line += ' -I " pcre "/include" + " -I " libgc "/include'")) + (("variable == 'LFLAGS':[ ]*") + (string-append "variable == 'LFLAGS':\n" + " line += ' -L" pcre "/lib" + " -L " libgc "/lib'"))) + #t)))))) + (native-inputs `(("python2-setuptools" ,python2-setuptools))) + (inputs `(("pcre" ,pcre) + ("libgc" ,libgc))) + (home-page "https://shedskin.github.io/") + (synopsis "Experimental Python-2 to C++ Compiler") + (description (string-append "This is an experimental compiler for a subset of +Python. It generates C++ code and a Makefile.")) + (license (list gpl3 bsd-3 license:expat)))) -- cgit v1.2.3 From d20708b6c558f4159db6e6cec7ffa707f8252ed4 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sat, 30 Apr 2016 11:43:35 +0200 Subject: gnu: asymptote: Update to 2.37. * gnu/packages/plotutils.scm (asymptote): Update to 2.37. * gnu/packages/patches/asymptote-gsl2.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Remove reference. --- gnu/local.mk | 1 - gnu/packages/patches/asymptote-gsl2.patch | 33 ------------------------------- gnu/packages/plotutils.scm | 26 ++++++++++++++---------- 3 files changed, 16 insertions(+), 44 deletions(-) delete mode 100644 gnu/packages/patches/asymptote-gsl2.patch diff --git a/gnu/local.mk b/gnu/local.mk index 7556fa76e8..2314a3831f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -415,7 +415,6 @@ dist_patch_DATA = \ gnu/packages/patches/alsa-lib-mips-atomic-fix.patch \ gnu/packages/patches/apr-skip-getservbyname-test.patch \ gnu/packages/patches/arb-ldconfig.patch \ - gnu/packages/patches/asymptote-gsl2.patch \ gnu/packages/patches/ath9k-htc-firmware-binutils.patch \ gnu/packages/patches/ath9k-htc-firmware-gcc.patch \ gnu/packages/patches/ath9k-htc-firmware-objcopy.patch \ diff --git a/gnu/packages/patches/asymptote-gsl2.patch b/gnu/packages/patches/asymptote-gsl2.patch deleted file mode 100644 index 4f73d16d7f..0000000000 --- a/gnu/packages/patches/asymptote-gsl2.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 71ff9e769ba5d9995b367201f0d41b7a8dedab9d Mon Sep 17 00:00:00 2001 -From: John Bowman -Date: Sat, 14 Nov 2015 01:25:56 -0700 -Subject: [PATCH] Support GSL 2.0. - ---- - gsl.cc | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/gsl.cc b/gsl.cc -index b500557..0f81dc6 100644 ---- a/gsl.cc -+++ b/gsl.cc -@@ -27,6 +27,7 @@ - #include - #include - #include -+#include - - #include "opsymbols.h" - -@@ -1088,7 +1089,11 @@ void gen_rungsl_venv(venv &ve) - addGSLDOUBLE2Func(SYM(F)); - addGSLDOUBLE2Func(SYM(E)); - addGSLDOUBLE3Func(SYM(P),SYM(phi),SYM(k),SYM(n)); -+#if GSL_MAJOR_VERSION >= 2 -+ addGSLDOUBLE2Func(SYM(D),SYM(phi),SYM(k)); -+#else - addGSLDOUBLE3Func(SYM(D),SYM(phi),SYM(k),SYM(n)); -+#endif - addGSLDOUBLE2Func(SYM(RC),SYM(x),SYM(y)); - addGSLDOUBLE3Func(SYM(RD),SYM(x),SYM(y),SYM(z)); - addGSLDOUBLE3Func(SYM(RF),SYM(x),SYM(y),SYM(z)); diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm index 67f692daf5..3fdd539835 100644 --- a/gnu/packages/plotutils.scm +++ b/gnu/packages/plotutils.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2015 Eric Bavier +;;; Copyright © 2016 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -171,15 +172,14 @@ (define-public ploticus (define-public asymptote (package (name "asymptote") - (version "2.35") + (version "2.37") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/asymptote/" version "/asymptote-" version ".src.tgz")) (sha256 (base32 - "11f28vxw0ybhvl7vxmqcdwvw7y6gz55ykw9ybgzb2px6lsvgag7z")) - (patches (search-patches "asymptote-gsl2.patch")))) + "16nh02m52mk9a53i8wc6l9vg710gnzr3lfbypcbvamghvaj0458i")))) (build-system gnu-build-system) ;; Note: The 'asy' binary retains a reference to docdir for use with its ;; "help" command in interactive mode, so adding a "doc" output is not @@ -206,13 +206,19 @@ (define-public asymptote (string-append "--with-context=" (assoc-ref %outputs "out") "/share/texmf/tex/context/third")) - #:phases (modify-phases %standard-phases - (add-before 'build 'patch-pdf-viewer - (lambda _ - ;; Default to a free pdf viewer - (substitute* "settings.cc" - (("defaultPDFViewer=\"acroread\"") - "defaultPDFViewer=\"gv\""))))))) + #:phases + (modify-phases %standard-phases + (add-before 'build 'patch-pdf-viewer + (lambda _ + ;; Default to a free pdf viewer + (substitute* "settings.cc" + (("defaultPDFViewer=\"acroread\"") + "defaultPDFViewer=\"gv\"")))) + (add-before 'check 'set-HOME + ;; Some tests require write access to $HOME, otherwise leading to + ;; "failed to create directory /homeless-shelter/.asy" error. + (lambda _ + (setenv "HOME" "/tmp")))))) (home-page "http://asymptote.sourceforge.net") (synopsis "Script-based vector graphics language") (description -- cgit v1.2.3 From ba369abe588d8420631f3540a51db98f6cc30d93 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 1 May 2016 21:38:53 +0200 Subject: syscalls: Implement arrays in 'define-c-struct' and use it. * guix/build/syscalls.scm (sizeof*, alignof*, write-type, read-type): Add support for (array ...) forms. * guix/build/syscalls.scm ()[spare0, spare1]: Remove. [spare]: New field. * guix/build/syscalls.scm (%statfs)[identifier]: Change to (array int 2). [spare0, spare1]: Remove. [spare]: New field. --- guix/build/syscalls.scm | 37 +++++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm index ed7942c10a..721c590f69 100644 --- a/guix/build/syscalls.scm +++ b/guix/build/syscalls.scm @@ -123,9 +123,11 @@ (define-module (guix build syscalls) (define-syntax sizeof* ;; XXX: This duplicates 'compile-time-value'. - (syntax-rules (int128) + (syntax-rules (int128 array) ((_ int128) 16) + ((_ (array type n)) + (* (sizeof* type) n)) ((_ type) (let-syntax ((v (lambda (s) (let ((val (sizeof type))) @@ -135,9 +137,11 @@ (define-syntax sizeof* (define-syntax alignof* ;; XXX: This duplicates 'compile-time-value'. - (syntax-rules (int128) + (syntax-rules (int128 array) ((_ int128) 16) + ((_ (array type n)) + (alignof* type)) ((_ type) (let-syntax ((v (lambda (s) (let ((val (alignof type))) @@ -182,10 +186,19 @@ (define-syntax struct-size types ...)))) (define-syntax write-type - (syntax-rules (~) + (syntax-rules (~ array) ((_ bv offset (type ~ order) value) (bytevector-uint-set! bv offset value (endianness order) (sizeof* type))) + ((_ bv offset (array type n) value) + (let loop ((i 0) + (value value) + (o offset)) + (unless (= i n) + (match value + ((head . tail) + (write-type bv o type head) + (loop (+ 1 i) tail (+ o (sizeof* type)))))))) ((_ bv offset type value) (bytevector-uint-set! bv offset value (native-endianness) (sizeof* type))))) @@ -202,7 +215,7 @@ (define-syntax write-types (types ...) (fields ...)))))) (define-syntax read-type - (syntax-rules (~ quote *) + (syntax-rules (~ array quote *) ((_ bv offset '*) (make-pointer (bytevector-uint-ref bv offset (native-endianness) @@ -210,6 +223,12 @@ (define-syntax read-type ((_ bv offset (type ~ order)) (bytevector-uint-ref bv offset (endianness order) (sizeof* type))) + ((_ bv offset (array type n)) + (unfold (lambda (i) (= i n)) + (lambda (i) + (read-type bv (+ offset (* i (sizeof* type))) type)) + 1+ + 0)) ((_ bv offset type) (bytevector-uint-ref bv offset (native-endianness) (sizeof* type))))) @@ -476,7 +495,7 @@ (define mkdtemp! (define-record-type (file-system type block-size blocks blocks-free blocks-available files free-files identifier - name-length fragment-size mount-flags spare0 spare1) + name-length fragment-size mount-flags spare) file-system? (type file-system-type) (block-size file-system-block-size) @@ -489,8 +508,7 @@ (define-record-type (name-length file-system-maximum-name-length) (fragment-size file-system-fragment-size) (mount-flags file-system-mount-flags) - (spare0 file-system--spare0) - (spare1 file-system--spare1)) + (spare file-system--spare)) (define-syntax fsword ;fsword_t (identifier-syntax long)) @@ -507,12 +525,11 @@ (define-c-struct %statfs ; (blocks-available uint64) (files uint64) (free-files uint64) - (identifier uint64) ;really "int[2]" + (identifier (array int 2)) (name-length fsword) (fragment-size fsword) (mount-flags fsword) - (spare0 int128) ;really "fsword[4]" - (spare1 int128)) + (spare (array fsword 4))) (define statfs (let ((proc (syscall->procedure int "statfs64" '(* *)))) -- cgit v1.2.3 From 29d457c209bbc1a5371025b3247e2db36027c56d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 1 May 2016 23:59:05 +0200 Subject: syscalls: Add 'tcgetattr' and 'tcsetattr' bindings. * guix/build/syscalls.scm (bits->symbols-body, define-bits) (local-flags): New macros. (TCSANOW, TCSADRAIN, TCSAFLUSH): New variables. (): New record type. (%termios): New C structure. (tcgetattr, tcsetattr): New procedures. * tests/syscalls.scm ("tcgetattr ENOTTY", "tcgetattr") ("tcsetattr"): New tests. --- guix/build/syscalls.scm | 131 ++++++++++++++++++++++++++++++++++++++++++++++++ tests/syscalls.scm | 25 +++++++++ 2 files changed, 156 insertions(+) diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm index 721c590f69..4e543d70d8 100644 --- a/guix/build/syscalls.scm +++ b/guix/build/syscalls.scm @@ -100,6 +100,22 @@ (define-module (guix build syscalls) interface-broadcast-address network-interfaces + termios? + termios-input-flags + termios-output-flags + termios-control-flags + termios-local-flags + termios-line-discipline + termios-control-chars + termios-input-speed + termios-output-speed + local-flags + TCSANOW + TCSADRAIN + TCSAFLUSH + tcgetattr + tcsetattr + window-size? window-size-rows window-size-columns @@ -996,6 +1012,121 @@ (define free-ifaddrs ;;; Terminals. ;;; +(define-syntax bits->symbols-body + (syntax-rules () + ((_ bits () ()) + '()) + ((_ bits (name names ...) (value values ...)) + (let ((result (bits->symbols-body bits (names ...) (values ...)))) + (if (zero? (logand bits value)) + result + (cons 'name result)))))) + +(define-syntax define-bits + (syntax-rules (define) + "Define the given numerical constants under CONSTRUCTOR, such that + (CONSTRUCTOR NAME) returns VALUE. Define BITS->SYMBOLS as a procedure that, +given an integer, returns the list of names of the constants that are or'd." + ((_ constructor bits->symbols (define names values) ...) + (begin + (define-syntax constructor + (syntax-rules (names ...) + ((_ names) values) ... + ((_ several (... ...)) + (logior (constructor several) (... ...))))) + (define (bits->symbols bits) + (bits->symbols-body bits (names ...) (values ...))) + (define names values) ...)))) + +;; 'local-flags' bits from +(define-bits local-flags + local-flags->symbols + (define ISIG #o0000001) + (define ICANON #o0000002) + (define XCASE #o0000004) + (define ECHO #o0000010) + (define ECHOE #o0000020) + (define ECHOK #o0000040) + (define ECHONL #o0000100) + (define NOFLSH #o0000200) + (define TOSTOP #o0000400) + (define ECHOCTL #o0001000) + (define ECHOPRT #o0002000) + (define ECHOKE #o0004000) + (define FLUSHO #o0010000) + (define PENDIN #o0040000) + (define IEXTEN #o0100000) + (define EXTPROC #o0200000)) + +;; "Actions" values for 'tcsetattr'. +(define TCSANOW 0) +(define TCSADRAIN 1) +(define TCSAFLUSH 2) + +(define-record-type + (termios input-flags output-flags control-flags local-flags + line-discipline control-chars + input-speed output-speed) + termios? + (input-flags termios-input-flags) + (output-flags termios-output-flags) + (control-flags termios-control-flags) + (local-flags termios-local-flags) + (line-discipline termios-line-discipline) + (control-chars termios-control-chars) + (input-speed termios-input-speed) + (output-speed termios-output-speed)) + +(define-c-struct %termios ; + sizeof-termios + termios + read-termios + write-termios! + (input-flags unsigned-int) + (output-flags unsigned-int) + (control-flags unsigned-int) + (local-flags unsigned-int) + (line-discipline uint8) + (control-chars (array uint8 32)) + (input-speed unsigned-int) + (output-speed unsigned-int)) + +(define tcgetattr + (let ((proc (syscall->procedure int "tcgetattr" (list int '*)))) + (lambda (fd) + "Return the structure for the tty at FD." + (let* ((bv (make-bytevector sizeof-termios)) + (ret (proc fd (bytevector->pointer bv))) + (err (errno))) + (if (zero? ret) + (read-termios bv) + (throw 'system-error "tcgetattr" "~A" + (list (strerror err)) + (list err))))))) + +(define tcsetattr + (let ((proc (syscall->procedure int "tcsetattr" (list int int '*)))) + (lambda (fd actions termios) + "Use TERMIOS for the tty at FD. ACTIONS is one of 'TCSANOW', +'TCSADRAIN', or 'TCSAFLUSH'; see tcsetattr(3) for details." + (define bv + (make-bytevector sizeof-termios)) + + (let-syntax ((match/write (syntax-rules () + ((_ fields ...) + (match termios + (($ fields ...) + (write-termios! bv 0 fields ...))))))) + (match/write input-flags output-flags control-flags local-flags + line-discipline control-chars input-speed output-speed)) + + (let ((ret (proc fd actions (bytevector->pointer bv))) + (err (errno))) + (unless (zero? ret) + (throw 'system-error "tcgetattr" "~A" + (list (strerror err)) + (list err))))))) + (define-syntax TIOCGWINSZ ; (identifier-syntax #x5413)) diff --git a/tests/syscalls.scm b/tests/syscalls.scm index 71bcbc4d32..ab1e13984d 100644 --- a/tests/syscalls.scm +++ b/tests/syscalls.scm @@ -259,6 +259,31 @@ (define perform-container-tests? (#f #f) (lo (interface-address lo))))))) +(test-equal "tcgetattr ENOTTY" + ENOTTY + (catch 'system-error + (lambda () + (call-with-input-file "/dev/null" + (lambda (port) + (tcgetattr (fileno port))))) + (compose system-error-errno list))) + +(test-skip (if (and (file-exists? "/proc/self/fd/0") + (string-prefix? "/dev/pts/" (readlink "/proc/self/fd/0"))) + 0 + 2)) + +(test-assert "tcgetattr" + (let ((termios (tcgetattr 0))) + (and (termios? termios) + (> (termios-input-speed termios) 0) + (> (termios-output-speed termios) 0)))) + +(test-assert "tcsetattr" + (let ((first (tcgetattr 0))) + (tcsetattr 0 TCSANOW first) + (equal? first (tcgetattr 0)))) + (test-assert "terminal-window-size ENOTTY" (call-with-input-file "/dev/null" (lambda (port) -- cgit v1.2.3 From 555f3586ed93dd9b888cf56d58d3eb08c2d2903f Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Mon, 2 May 2016 10:20:17 +1000 Subject: gnu: ruby-hashery: Update to 2.1.2. * gnu/packages/ruby.scm (ruby-hashery): Update to 2.1.2. [arguments]: Remove test workaround. --- gnu/packages/ruby.scm | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 2aab8bf415..6c2e08f29d 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3737,24 +3737,20 @@ (define-public ruby-rubytest-cli (define-public ruby-hashery (package (name "ruby-hashery") - (version "2.1.1") + (version "2.1.2") (source (origin (method url-fetch) (uri (rubygems-uri "hashery" version)) (sha256 (base32 - "0xawbljsjarl9l7700bka672ixwznzwih4s9i38p1y9mp8hyx54g")))) + "0qj8815bf7q6q7llm5rzdz279gzmpqmqqicxnzv066a020iwqffj")))) (build-system ruby-build-system) (arguments `(#:phases (modify-phases %standard-phases (replace 'check (lambda _ - ;; Remove known test failure documented at - ;; https://github.com/rubyworks/hashery/issues/25 - (substitute* "test/case_key_hash.rb" - (("^ assert\\(s\\)") "")) (and (zero? (system* "qed")) (zero? (system* "rubytest" "-Ilib" "-Itest" "test/")))))))) (native-inputs -- cgit v1.2.3 From 8563258337b240945306fc5577538bcf6408ad26 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 2 May 2016 10:55:29 +0200 Subject: gnu: Add r-xnomial. * gnu/packages/statistics.scm (r-xnomial): New variable. --- gnu/packages/statistics.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 2178984d04..3d0faf7572 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1828,6 +1828,34 @@ (define-public r-xml offers access to an XPath \"interpreter\".") (license license:bsd-2))) +(define-public r-xnomial + (package + (name "r-xnomial") + (version "1.0.4") + (source + (origin (method url-fetch) + (uri (cran-uri "XNomial" version)) + (sha256 + (base32 + "1mwx302576rmsjllbq2clfxilm3hkyp5bw0wmwqbn0kgv5wpy8z6")))) + (properties (quasiquote ((upstream-name . "XNomial")))) + (build-system r-build-system) + (home-page "http://cran.r-project.org/web/packages/XNomial") + (synopsis "Goodness-of-Fit test for multinomial data") + (description + "This package provides an exact Goodness-of-Fit test for +multinomial data with fixed probabilities. It can be used to +determine whether a set of counts fits a given expected ratio. To see +whether a set of observed counts fits an expectation, one can examine +all possible outcomes with @code{xmulti()} or a random sample of them +with @code{xmonte()} and find the probability of an observation +deviating from the expectation by at least as much as the observed. +As a measure of deviation from the expected, one can use the +log-likelihood ratio, the multinomial probability, or the classic +chi-square statistic. A histogram of the test statistic can also be +plotted and compared with the asymptotic curve.") + (license (list license:gpl2+ license:gpl3+)))) + (define-public r-lambda-r (package (name "r-lambda-r") -- cgit v1.2.3 From 6983ba5660eebedef2bd87901b9993c19c985f8b Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 27 Apr 2016 21:51:32 +0800 Subject: Revert "Revert "Merge branch 'gnome-updates'"" This reverts commit e969b140a4382fd91514439a57749379cf00f86b. --- gnu/local.mk | 5 +- gnu/packages/fontutils.scm | 29 +-- gnu/packages/glib.scm | 138 +++++++--- gnu/packages/gnome.scm | 286 ++++++++++----------- gnu/packages/gtk.scm | 80 +++--- gnu/packages/patches/glib-tests-desktop.patch | 138 ---------- gnu/packages/patches/glib-tests-gapplication.patch | 28 -- gnu/packages/patches/glib-tests-homedir.patch | 59 ----- gnu/packages/patches/glib-tests-prlimit.patch | 14 - gnu/packages/patches/glib-tests-timer.patch | 11 - gnu/packages/patches/gtk2-theme-paths.patch | 41 +++ gnu/packages/pdf.scm | 16 +- gnu/packages/xdisorg.scm | 4 +- 13 files changed, 337 insertions(+), 512 deletions(-) delete mode 100644 gnu/packages/patches/glib-tests-desktop.patch delete mode 100644 gnu/packages/patches/glib-tests-gapplication.patch delete mode 100644 gnu/packages/patches/glib-tests-homedir.patch delete mode 100644 gnu/packages/patches/glib-tests-prlimit.patch create mode 100644 gnu/packages/patches/gtk2-theme-paths.patch diff --git a/gnu/local.mk b/gnu/local.mk index 2314a3831f..4afd6577c5 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -490,11 +490,7 @@ dist_patch_DATA = \ gnu/packages/patches/ghostscript-CVE-2015-3228.patch \ gnu/packages/patches/ghostscript-runpath.patch \ gnu/packages/patches/glib-networking-ssl-cert-file.patch \ - gnu/packages/patches/glib-tests-desktop.patch \ - gnu/packages/patches/glib-tests-homedir.patch \ - gnu/packages/patches/glib-tests-prlimit.patch \ gnu/packages/patches/glib-tests-timer.patch \ - gnu/packages/patches/glib-tests-gapplication.patch \ gnu/packages/patches/glibc-CVE-2015-7547.patch \ gnu/packages/patches/glibc-bootstrap-system.patch \ gnu/packages/patches/glibc-hurd-extern-inline.patch \ @@ -522,6 +518,7 @@ dist_patch_DATA = \ gnu/packages/patches/guile-relocatable.patch \ gnu/packages/patches/guile-rsvg-pkgconfig.patch \ gnu/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \ + gnu/packages/patches/gtk2-theme-paths.patch \ gnu/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \ gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \ gnu/packages/patches/hop-bigloo-4.0b.patch \ diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 5f6ff15935..05adc71212 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -46,23 +46,21 @@ (define-module (gnu packages fontutils) (define-public freetype (package (name "freetype") - (version "2.6") + (version "2.6.3") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/freetype/freetype-" version ".tar.bz2")) (sha256 (base32 - "0zilx15fwcpa8hmcxpc423jwb8ijw4qpq968kh18akvn4j0znsc4")))) + "18k3b026762lmyrxfil5xv8qwnvj7hc12gz9bjqzbb12lmx707ip")))) (build-system gnu-build-system) - (arguments - `(#:phases - ;; This should not be necessary; reported upstream as - ;; https://savannah.nongnu.org/bugs/index.php?44261 - (alist-cons-before - 'configure 'set-paths - (lambda _ - (setenv "CONFIG_SHELL" (which "bash"))) - %standard-phases))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (propagated-inputs + ;; These are all in the Requires.private field of freetype2.pc. + ;; XXX: add harfbuzz. + `(("libpng" ,libpng) + ("zlib" ,zlib))) (synopsis "Font rendering library") (description "Freetype is a library that can be used by applications to access the @@ -361,16 +359,15 @@ (define-public teckit (define-public graphite2 (package (name "graphite2") - (version "1.3.6") + (version "1.3.8") (source (origin (method url-fetch) - (uri (string-append "https://github.com/silnrsi/graphite/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (string-append "https://github.com/silnrsi/graphite/releases/" + "download/" version "/" name "-" version ".tgz")) (sha256 (base32 - "1frd9mjaqzvh9gs74ngc43igi53vzjzlwr5chbrs6ii1hc4aa23s")))) + "1hlc9j7w7gihy6gvzfa7902pr6yxq1sr1xkp5rwf0p29m2rjagwz")))) (build-system cmake-build-system) (native-inputs `(("python" ,python-2) ; because of "import imap" in tests diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index e7e9df8dff..70020520eb 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -35,6 +35,7 @@ (define-module (gnu packages glib) #:use-module (gnu packages gettext) #:use-module (gnu packages gtk) #:use-module (gnu packages libffi) + #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -59,7 +60,7 @@ (define-module (gnu packages glib) (define dbus (package (name "dbus") - (version "1.10.0") + (version "1.10.8") (source (origin (method url-fetch) (uri (string-append @@ -67,7 +68,7 @@ (define dbus version ".tar.gz")) (sha256 (base32 - "0jwj7wlrhq5y0fwfh8k2d9rgdpfax06lj8698g6iqbwrzd2rgyqx")) + "0560y3hxpgh346w6avcrcz79c8ansmn771y5xpcvvlr6m8mx5wxs")) (patches (search-patches "dbus-helper-search-path.patch")))) (build-system gnu-build-system) (arguments @@ -129,7 +130,7 @@ (define dbus (define glib (package (name "glib") - (version "2.46.1") + (version "2.48.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" @@ -137,16 +138,14 @@ (define glib name "-" version ".tar.xz")) (sha256 (base32 - "1yzxr1ip3l0m9ydk5nq32piq70c9f17p5f0jyvlsghzbaawh67ss")) - (patches (search-patches "glib-tests-homedir.patch" - "glib-tests-desktop.patch" - "glib-tests-prlimit.patch" - "glib-tests-timer.patch" - "glib-tests-gapplication.patch")))) + "0d3w2hblrw7vvpx60l1kbvb830ygn3v8zhwdz65cc5593j9ycjvl")) + (patches (search-patches "glib-tests-timer.patch")))) (build-system gnu-build-system) (outputs '("out" ; everything "bin" ; glib-mkenums, gtester, etc.; depends on Python "doc")) ; 20 MiB of GTK-Doc reference + (propagated-inputs + `(("pcre" ,pcre))) ; in the Requires.private field of glib-2.0.pc (inputs `(("coreutils" ,coreutils) ("libffi" ,libffi) @@ -160,29 +159,87 @@ (define glib ("perl" ,perl) ; needed by GIO tests ("bash" ,bash))) (arguments - '(#:phases (alist-cons-before - 'build 'pre-build - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; For tests/gdatetime.c. - (setenv "TZDIR" - (string-append (assoc-ref inputs "tzdata") - "/share/zoneinfo")) - - ;; Some tests want write access there. - (setenv "XDG_CACHE_HOME" (getcwd)) - - (substitute* '("glib/gspawn.c" - "glib/tests/utils.c" - "tests/spawn-test.c") - (("/bin/sh") - (string-append (assoc-ref inputs "bash") "/bin/sh"))) - - ;; Disable a test that requires dbus. - (substitute* "gio/tests/gdbus-serialization.c" - (("g_test_add_func \ -\\(\"/gdbus/message-serialize/double-array\", test_double_array\\);" all) - (string-append "/* " all " */")))) - %standard-phases) + '(#:phases + (modify-phases %standard-phases + (add-before 'build 'pre-build + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; For tests/gdatetime.c. + (setenv "TZDIR" + (string-append (assoc-ref inputs "tzdata") + "/share/zoneinfo")) + + ;; Some tests want write access there. + (setenv "HOME" (getcwd)) + (setenv "XDG_CACHE_HOME" (getcwd)) + + (substitute* '("glib/gspawn.c" + "glib/tests/utils.c" + "tests/spawn-test.c") + (("/bin/sh") + (string-append (assoc-ref inputs "bash") "/bin/sh"))))) + (add-before 'check 'disable-failing-tests + (lambda _ + (let ((disable + (lambda (test-file test-paths) + (define pattern+procs + (map (lambda (test-path) + (cons + ;; XXX: only works for single line statements. + (format #f "g_test_add_func.*\"~a\".*" test-path) + (const ""))) + test-paths)) + (substitute test-file pattern+procs))) + (failing-tests + '(("glib/tests/thread.c" + (;; prlimit(2) returns ENOSYS on Linux 2.6.32-5-xen-amd64 + ;; as found on hydra.gnu.org, and strace(1) doesn't + ;; recognize it. + "/thread/thread4")) + + ("glib/tests/timer.c" + (;; fails if compiler optimizations are enabled, which they + ;; are by default. + "/timer/stop")) + + ("gio/tests/gapplication.c" + (;; XXX: proven to be unreliable. See: + ;; + ;; + "/gapplication/quit" + + ;; XXX: fails randomly for unknown reason. See: + ;; + "/gapplication/local-actions")) + + ("gio/tests/contenttype.c" + (;; XXX: requires shared-mime-info. + "/contenttype/guess" + "/contenttype/subtype" + "/contenttype/list" + "/contenttype/icon" + "/contenttype/symbolic-icon" + "/contenttype/tree")) + + ("gio/tests/appinfo.c" + (;; XXX: requires update-desktop-database. + "/appinfo/associations")) + + ("gio/tests/desktop-app-info.c" + (;; XXX: requires update-desktop-database. + "/desktop-app-info/delete" + "/desktop-app-info/default" + "/desktop-app-info/fallback" + "/desktop-app-info/lastused" + "/desktop-app-info/search")) + + ("gio/tests/gdbus-peer.c" + (;; Requires /etc/machine-id. + "/gdbus/codegen-peer-to-peer")) + + ("gio/tests/gdbus-unix-addresses.c" + (;; Requires /etc/machine-id. + "/gdbus/x11-autolaunch"))))) + (and-map (lambda (x) (apply disable x)) failing-tests))))) ;; Note: `--docdir' and `--htmldir' are not honored, so work around it. #:configure-flags (list (string-append "--with-html-dir=" @@ -218,14 +275,14 @@ (define glib (define gobject-introspection (package (name "gobject-introspection") - (version "1.46.0") + (version "1.48.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" "gobject-introspection/" (version-major+minor version) "/gobject-introspection-" version ".tar.xz")) (sha256 - (base32 "0cs27r18fga44ypp8icy62fwx6nh70r1bvhi4lzfn4w85cybsn36")) + (base32 "0xsqwxhfqzr79av89mg766kxpb2i41bd0vwspk01xjdzrnn5l9zs")) (modules '((guix build utils))) (snippet '(substitute* "tools/g-ir-tool-template.in" @@ -237,7 +294,6 @@ (define gobject-introspection (build-system gnu-build-system) (inputs `(("bison" ,bison) - ("cairo" ,cairo) ("flex" ,flex) ("glib" ,glib) ("python-2" ,python-2))) @@ -395,7 +451,7 @@ (define dbus-glib (define libsigc++ (package (name "libsigc++") - (version "2.6.1") + (version "2.8.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/libsigc++/" @@ -403,7 +459,7 @@ (define libsigc++ name "-" version ".tar.xz")) (sha256 (base32 - "06xyvxaaxh3nbpjg86gcq5zcc2qnpx354wcfrqlhbndkq5kj2vqq")))) + "0lcnzzdq6718znfshs1hflpwqq6awbzwdyp4kv5lfaf54z880jbp")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("m4" ,m4))) @@ -422,7 +478,7 @@ (define libsigc++ (define glibmm (package (name "glibmm") - (version "2.46.3") + (version "2.48.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/glibmm/" @@ -430,7 +486,7 @@ (define glibmm "/glibmm-" version ".tar.xz")) (sha256 (base32 - "1kw65mlabwdjw86jybxslncbnnx40hcx4z6xpq9i4ymjvsnm91n7")))) + "1pvw2mrm03p51p03179rb6fk9p42iykkwj1jcdv7jr265xymy8nw")))) (build-system gnu-build-system) (arguments `(#:phases (alist-cons-before @@ -503,7 +559,7 @@ (define-public python2-pygobject-2 (define-public python-pygobject (package (name "python-pygobject") - (version "3.18.0") + (version "3.20.0") (source (origin (method url-fetch) @@ -512,7 +568,7 @@ (define-public python-pygobject "/pygobject-" version ".tar.xz")) (sha256 (base32 - "1jbd2m39vcjh5h3m33l0317ziq8dxfzi40r6hrfcs4rp5l8s2fqw")))) + "0ikzh3l7g1gjh8jj8vg6mdvrb25svp63gxcam4m0i404yh0lgari")))) (build-system gnu-build-system) (native-inputs `(("which" ,which) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 0fd1d5bb29..4272493872 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -188,7 +188,7 @@ (define-public gnome-common (define-public gnome-desktop (package (name "gnome-desktop") - (version "3.18.1") + (version "3.20.0") (source (origin (method url-fetch) @@ -197,7 +197,7 @@ (define-public gnome-desktop name "-" version ".tar.xz")) (sha256 (base32 - "0avpmyhzz5b3pyfpkp8iq5ym5r5w7zs3a396hqkdpdsiym0vrazc")))) + "13dhvax8fy9qkna4dphb7b5fxn3dsk818p3q8b92a7nrrwcgiiqq")))) (build-system gnu-build-system) (native-inputs `(("gobject-introspection" ,gobject-introspection) @@ -265,7 +265,7 @@ (define-public gnome-doc-utils (define-public gcr (package (name "gcr") - (version "3.18.0") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -273,7 +273,7 @@ (define-public gcr name "-" version ".tar.xz")) (sha256 (base32 - "006f6xbd3jppkf9avg83mpqdld5d0z6mr0sm81lql52mmyjnvlfl")))) + "0ydk9dzxx6snxza7j5ps8x932hbr3x1b8hhcaqjq4w4admi2qmwh")))) (build-system gnu-build-system) (arguments '(#:tests? #f ;25 of 598 tests fail because /var/lib/dbus/machine-id does @@ -342,7 +342,7 @@ (define-public libgnome-keyring (define-public gnome-keyring (package (name "gnome-keyring") - (version "3.18.3") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -350,7 +350,7 @@ (define-public gnome-keyring name "-" version ".tar.xz")) (sha256 (base32 - "167dq1yvm080g5s38hqjl0xx5cgpkcl1xqy9p5sxmgc92zb0srrz")))) + "16gcwwcg91ipxjmiyi4c4njvnxixmv1i278p0bilc3lafk6ww5xw")))) (build-system gnu-build-system) (arguments `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does @@ -410,7 +410,7 @@ (define-public gnome-keyring (define-public evince (package (name "evince") - (version "3.18.1") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -418,7 +418,7 @@ (define-public evince name "-" version ".tar.xz")) (sha256 (base32 - "0cccmbvl1b6d2976642iyfr8g3r69zf3mzl2ln6vjvvdbrv26l3v")))) + "1052lm4i5qq27sgk6ck5xc1cxh0qx4zzhifjhmzjlv38afj5i0yg")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags '("--disable-nautilus") @@ -474,7 +474,7 @@ (define-public evince (define-public gsettings-desktop-schemas (package (name "gsettings-desktop-schemas") - (version "3.18.0") + (version "3.20.0") (source (origin (method url-fetch) @@ -483,7 +483,7 @@ (define-public gsettings-desktop-schemas name "-" version ".tar.xz")) (sha256 (base32 - "1szc857f46spdhrbnq9ci3kwfqg5vwpikbf0hprq6vd94rr369xs")))) + "1hfrqqsmqscgbnaikmyq4yq8h72554wdg13algh5bf8a7i9ip92m")))) (build-system gnu-build-system) (inputs `(("glib" ,glib))) @@ -599,7 +599,7 @@ (define-public gnome-icon-theme (define-public adwaita-icon-theme (package (inherit gnome-icon-theme) (name "adwaita-icon-theme") - (version "3.18.0") + (version "3.20") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -607,19 +607,19 @@ (define-public adwaita-icon-theme name "-" version ".tar.xz")) (sha256 (base32 - "0n0fqlg55krw8pgn4z2vxnxh65lyvcydqkrr7klqxp8z00kfg72y")))))) + "0ddfwwqx8s63qbqimmbb015lqsab4s0rvy1j81jdsh7k95rqh2ks")))))) (define-public shared-mime-info (package (name "shared-mime-info") - (version "1.2") + (version "1.6") (source (origin (method url-fetch) (uri (string-append "https://freedesktop.org/~hadess/" "shared-mime-info-" version ".tar.xz")) (sha256 (base32 - "0y5vi0vr6rbhvfzcfg57cfskn362bpvcpca9cy598nmr87i6lld5")))) + "0k637g047gci8g69bg4g19akylpfraxm40hd30j3i4v7cidziy5j")))) (build-system gnu-build-system) (arguments ;; The build system appears not to be parallel-safe. @@ -697,7 +697,7 @@ (define-public libnotify (define-public libpeas (package (name "libpeas") - (version "1.16.0") + (version "1.18.0") (source (origin (method url-fetch) @@ -706,7 +706,7 @@ (define-public libpeas name "-" version ".tar.xz")) (sha256 (base32 - "0kj5n5hz93xq7qdb2r7n86nibzwqjr88jxaih1fdbxv5rn7014xh")))) + "09jy2rwwgp0xx7cnypxl56m7zzxnj3j4v58xqjxjasf3chn88jdz")))) (build-system gnu-build-system) (inputs `(("atk" ,atk) @@ -760,7 +760,7 @@ (define-public gtkglext (define-public glade3 (package (name "glade") - (version "3.18.3") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -768,8 +768,8 @@ (define-public glade3 name "-" version ".tar.xz")) (sha256 (base32 - "0lk4nvd5s8px9i0pbq7bncikgn2lpx7vjh787d3cvzpvwx3cxnzc")))) - (build-system gnu-build-system) + "1zhqvhagy0m85p54jfiayfl0v9af7g0lj7glw8sfwh7cbp56vnc2")))) + (build-system glib-or-gtk-build-system) (arguments `(#:tests? #f ; needs X, GL, and software rendering #:phases @@ -804,7 +804,7 @@ (define-public glade3 (define-public libcroco (package (name "libcroco") - (version "0.6.8") + (version "0.6.11") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -812,7 +812,7 @@ (define-public libcroco name "-" version ".tar.xz")) (sha256 (base32 - "0w453f3nnkbkrly7spx5lx5pf6mwynzmd5qhszprq8amij2invpa")))) + "0mm0wldbi40am5qn0nv7psisbg01k42rwzjxl3gv11l5jj554aqk")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -834,7 +834,7 @@ (define-public libcroco (define-public libgsf (package (name "libgsf") - (version "1.14.34") + (version "1.14.36") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -842,7 +842,7 @@ (define-public libgsf name "-" version ".tar.xz")) (sha256 (base32 - "0a5m1i5gp4m2z0cn2x1rrdm8wgrr04bzv65l8pgp6jipw13s9zph")))) + "0h19ssxzz0cmznwga2xy55kjibm24mwxqarnpd0w7xy0hrzm1dvi")))) (build-system gnu-build-system) (native-inputs `(("intltool" ,intltool) @@ -867,7 +867,7 @@ (define-public libgsf (define-public librsvg (package (name "librsvg") - (version "2.40.13") + (version "2.40.15") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -875,7 +875,7 @@ (define-public librsvg name "-" version ".tar.xz")) (sha256 (base32 - "014q7gz6mgfa7pfn0lr13qqv568ad8j1sw9d4vksnpazq0zajvjd")))) + "1x05vd2llpmskq3prkp7kbpmshmpp9whj4kfl99ybipf4fhw9jnr")))) (build-system gnu-build-system) (arguments `(#:phases @@ -1339,14 +1339,7 @@ (define-public libgnomeprint name "-" version ".tar.bz2")) (sha256 (base32 - "129ka3nn8gx9dlfry17ib79azxk45wzfv5rgqzw6dwx2b5ns8phm")) - (modules '((guix build utils))) - (snippet - ;; Adapt to newer freetype. As the package is deprecated, there - ;; is no use in creating a patch and reporting it. - '(substitute* '("libgnomeprint/gnome-font-face.c" - "libgnomeprint/gnome-rfont.c") - (("freetype/") "freetype2/"))))) + "129ka3nn8gx9dlfry17ib79azxk45wzfv5rgqzw6dwx2b5ns8phm")))) (build-system gnu-build-system) (inputs `(("popt" ,popt) @@ -1443,14 +1436,14 @@ (define-public libbonoboui (define-public libwnck (package (name "libwnck") - (version "3.14.0") + (version "3.14.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "074jww04z8g9r1acndqap79wx4kbm3rpkf4lcg1v82b66iv0027m")))) + (base32 "1ymya8gkjygvg0i901wr3q6ihfqxx5yf4g4pb6fag2iw8af3qr5v")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -1489,14 +1482,14 @@ (define-public libwnck-2 (define-public goffice (package (name "goffice") - (version "0.10.24") + (version "0.10.28") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "0nmghi26dpjcw7knkviq031crhm0zjy4k650pv1jj3hb1fmhx9yd")))) + (base32 "12rsgxrixkfpk420gv026i74pnlgqjzsvm6vffrmih54w46hd3q6")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;4.1 MiB of gtk-doc @@ -1554,7 +1547,7 @@ (define-public goffice-0.8 (define-public gnumeric (package (name "gnumeric") - (version "1.12.24") + (version "1.12.28") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1562,7 +1555,7 @@ (define-public gnumeric name "-" version ".tar.xz")) (sha256 (base32 - "0lcm8k0jb8rd5y4ii803f21nv8rx6gc3mmdlrj5h0rkkn9qm57f5")))) + "1fsdp7r6fhc0m3fb4ly4xwh83v3hp2zrv9d0713g4lcy709svm02")))) (build-system gnu-build-system) (arguments `(;; The gnumeric developers don't worry much about failing tests. @@ -1591,10 +1584,11 @@ (define-public gnumeric ("libxml2" ,libxml2) ("libxslt" ,libxslt) ("python" ,python-2) - ("python2-pygobject" ,python2-pygobject-2) + ("python2-pygobject" ,python2-pygobject) ("zlib" ,zlib))) (native-inputs - `(("intltool" ,intltool) + `(("bison" ,bison) + ("intltool" ,intltool) ("glib:bin" ,glib "bin") ("pkg-config" ,pkg-config))) (home-page "http://www.gnumeric.org") @@ -1612,7 +1606,7 @@ (define-public gnumeric (define-public gnome-themes-standard (package (name "gnome-themes-standard") - (version "3.18.0") + (version "3.20") (source (origin (method url-fetch) @@ -1621,7 +1615,7 @@ (define-public gnome-themes-standard version ".tar.xz")) (sha256 (base32 - "1jxss8kxszhf66vic9n1sagczm5amm0mgxpzyxyjna15q82fnip6")))) + "1p1vvmzfky1ax3yv9ld10xgqwydhmglxpgq3skrfc4539nrq9phw")))) (build-system gnu-build-system) (inputs `(("gtk+" ,gtk+) @@ -1654,7 +1648,7 @@ (define-public gnome-themes-standard (define-public seahorse (package (name "seahorse") - (version "3.18.0") + (version "3.20.0") (source (origin (method url-fetch) @@ -1663,7 +1657,7 @@ (define-public seahorse version ".tar.xz")) (sha256 (base32 - "0rxnq47xcagmpqb63g49ay3lfiyjjnmmiay9yifx5jn406d8h32k")))) + "1py6fj19kb8aaxvg6yrpd0876azc2zjvis98aqz37a2lxmhp9c72")))) (build-system glib-or-gtk-build-system) (inputs `(("gtk+" ,gtk+) @@ -1690,7 +1684,7 @@ (define-public seahorse (define-public vala (package (name "vala") - (version "0.30.0") + (version "0.32.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1698,7 +1692,7 @@ (define-public vala name "-" version ".tar.xz")) (sha256 (base32 - "1pyyhfw3zzbhxfscbn8xz70dg6vx0kh8gshzikpxczhg01xk7w31")))) + "0vpvq403vdd25irvgk7zibz3nw4x4i17m0dgnns8j1q4vr7am8h7")))) (build-system gnu-build-system) (arguments '(#:phases @@ -1730,7 +1724,7 @@ (define-public vala (define-public vte (package (name "vte") - (version "0.42.3") + (version "0.44.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1738,8 +1732,16 @@ (define-public vte name "-" version ".tar.xz")) (sha256 (base32 - "1832mrw2hhgjipbsfsv2fmdnwnar4rkx589ciz008bg8x908mscn")))) + "1ahjxysiv38q91gfq2wddcbvndlggfr8ynls25m42pw83akv38wk")))) (build-system gnu-build-system) + (arguments + ;; XXX: fails to compile tests with the default flags. + ;; vteconv.cc:774:40: + ;; error: missing sentinel in function call [-Werror=format=] + ;; g_test_init (&argc, &argv, NULL); + ;; + ;; cc1plus: some warnings being treated as errors + '(#:configure-flags '("CXXFLAGS=-Wformat=0"))) (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool) @@ -1806,7 +1808,7 @@ (define-public vte/gtk+-2 (define-public dconf (package (name "dconf") - (version "0.24.0") + (version "0.26.0") (source (origin (method url-fetch) (uri (string-append @@ -1815,7 +1817,7 @@ (define-public dconf name "-" version ".tar.xz")) (sha256 (base32 - "1hpy6336f0pbkyranywm4872i5in0xn7jf40a66xdmzls77f0ws3")))) + "1jaqsr1r0grpd25rbsc2v3vb0sc51lia9w31wlqswgqsncp2k0w6")))) (build-system glib-or-gtk-build-system) (inputs `(("gtk+" ,gtk+) @@ -1860,7 +1862,7 @@ (define-public dconf (define-public json-glib (package (name "json-glib") - (version "1.0.4") + (version "1.2.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1868,7 +1870,7 @@ (define-public json-glib name "-" version ".tar.xz")) (sha256 (base32 - "1k85vvb2prmk8aa8hmr2rp9rnbhffjgnmr18b13g24xxnqy5kww0")) + "1lx7p1c7cl21byvfgw92n8dhm09vi6qxrs0zkx9dg3y096zdzmlr")) (modules '((guix build utils))) (snippet ;; Don't duplicate test names. @@ -1967,7 +1969,7 @@ (define-public python2-rsvg (define-public glib-networking (package (name "glib-networking") - (version "2.46.1") + (version "2.48.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/glib-networking/" @@ -1975,7 +1977,7 @@ (define-public glib-networking name "-" version ".tar.xz")) (sha256 (base32 - "1cchmi08jpjypgmm9i7xzh5qfg2q5k61kry9ns8mhw3z44a440ym")) + "094hwgnaqm0c7ggyqc9rk2603k5r9vqs3f1d9vwpmfapww9367vs")) (patches (search-patches "glib-networking-ssl-cert-file.patch")))) (build-system gnu-build-system) @@ -2049,7 +2051,7 @@ (define-public rest (define-public libsoup (package (name "libsoup") - (version "2.52.1") + (version "2.54.0.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/libsoup/" @@ -2057,7 +2059,7 @@ (define-public libsoup name "-" version ".tar.xz")) (sha256 (base32 - "0j6cnnpqqgnb9nj2r0j8j6898np4z503hrnpis7b4l5d8yhbq68f")))) + "1q1qds87qya5cbx4jfcmf1v8fvb86p0wsjnhj246w0xxcq0r5r5d")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments @@ -2119,7 +2121,7 @@ (define-public libsoup (define-public libsecret (package (name "libsecret") - (version "0.18.3") + (version "0.18.5") (source (origin (method url-fetch) (uri (string-append @@ -2128,7 +2130,7 @@ (define-public libsecret name "-" version ".tar.xz")) (sha256 (base32 - "1jc4pw6pb5igwasj0ms1zx80w63c11myziz3ydj0cr5lb861vgzj")))) + "1cychxc3ff8fp857iikw0n2s13s2mhw2dn1mr632f7w3sn6vvrww")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments @@ -2167,7 +2169,7 @@ (define-public libsecret (define-public gnome-mines (package (name "gnome-mines") - (version "3.18.2") + (version "3.20.0") (source (origin (method url-fetch) @@ -2176,7 +2178,7 @@ (define-public gnome-mines name "-" version ".tar.xz")) (sha256 (base32 - "0izkcf81rji4dj9k0k93ij4lp5iza2bh6jwlcdhbjfv2xdw0f7ky")))) + "19khp4ckqbdgk6828gprxy52fsg8klf957dnwsin75nskk8whxbp")))) (build-system glib-or-gtk-build-system) (arguments '(#:phases @@ -2184,16 +2186,7 @@ (define-public gnome-mines (add-before 'configure 'patch-/bin/true (lambda _ (substitute* "configure" - (("/bin/true") (which "true"))))) - (add-after 'install 'wrap-pixbuf - ;; Use librsvg's loaders.cache to support SVG files. - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (prog (string-append out "/bin/gnome-mines")) - (rsvg (assoc-ref inputs "librsvg")) - (pixbuf (find-files rsvg "^loaders\\.cache$"))) - (wrap-program prog - `("GDK_PIXBUF_MODULE_FILE" = ,pixbuf)))))))) + (("/bin/true") (which "true")))))))) (native-inputs `(("pkg-config" ,pkg-config) ("desktop-file-utils" ,desktop-file-utils) @@ -2248,7 +2241,7 @@ (define-public gnome-sudoku (define-public gnome-terminal (package (name "gnome-terminal") - (version "3.18.2") + (version "3.20.0") (source (origin (method url-fetch) @@ -2257,7 +2250,7 @@ (define-public gnome-terminal name "-" version ".tar.xz")) (sha256 (base32 - "1ylyv0mla2ypms7iyxndbdjvha0q9jzglb4mhfmqn9cm2gxc0day")))) + "0l21xcc2g56wkq83wq5wnrah2gwckqxnfgpqavhkrsd47jyzdrrg")))) (build-system glib-or-gtk-build-system) (arguments '(#:configure-flags @@ -2407,7 +2400,7 @@ (define-public geoclue (define-public geocode-glib (package (name "geocode-glib") - (version "3.18.0") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/geocode-glib/" @@ -2415,7 +2408,7 @@ (define-public geocode-glib name "-" version ".tar.xz")) (sha256 (base32 - "0pa9cgndycynipc6z8wzbvn2fi89ndf2gpqzm9m6krp3d7az1dwg")))) + "1fmn3gmifq8jbgnpv8jj33n4glpb5djjrfk0l9fak0cliqin88jz")))) (build-system gnu-build-system) (arguments `(;; The tests want to write to $HOME/.cache/geocode-glib, which doesn't @@ -2498,7 +2491,7 @@ (define-public upower (define-public libgweather (package (name "libgweather") - (version "3.18.1") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2506,7 +2499,7 @@ (define-public libgweather name "-" version ".tar.xz")) (sha256 (base32 - "1l3sra84k5dnavbdbjyf1ar84xmjszpnnldih6mf45kniwpjkcll")))) + "1mmqg7wf0bhk450akyj0x71x75kh1v7j68isyivr75ydky79nqjj")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -2548,7 +2541,7 @@ (define-public libgweather (define-public gnome-settings-daemon (package (name "gnome-settings-daemon") - (version "3.18.2") + (version "3.20.0") (source (origin (method url-fetch) @@ -2557,7 +2550,7 @@ (define-public gnome-settings-daemon name "-" version ".tar.xz")) (sha256 (base32 - "0vzwf875csyqx04fnra6zicmzcjc3s13bxxpcizlys12iwjwfw9h")))) + "0v1c2vnpqw5pvx62jxvjfa2g5k29yx04vz35awqi943gasrl0bmv")))) (build-system glib-or-gtk-build-system) (arguments `(;; Network manager not yet packaged. @@ -2604,14 +2597,14 @@ (define-public gnome-settings-daemon (define-public totem-pl-parser (package (name "totem-pl-parser") - (version "3.10.5") + (version "3.10.6") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/totem-pl-parser/3.10/" "totem-pl-parser-" version ".tar.xz")) (sha256 (base32 - "0dw1kiwmjwdjrighri0j9nagsnj44dllm0mamnfh4y5nc47mhim7")))) + "0mv7aw9mw77w04zg95zjf0zmk6ckshpysbb9nap15h5is6zdk9cq")))) (build-system gnu-build-system) (arguments ;; FIXME: Tests require gvfs. @@ -2639,7 +2632,7 @@ (define-public totem-pl-parser (define-public aisleriot (package (name "aisleriot") - (version "3.18.2") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2647,7 +2640,7 @@ (define-public aisleriot name "-" version ".tar.xz")) (sha256 (base32 - "1qrgcj30hl0fgssspkwrad10lqy1bbsp7lfwxmxlwzp33jhqpb0b")))) + "1nipky336jj81mhm8wwxp96zilgcrarihf95dnyj3r1pw8kpg7gy")))) (build-system glib-or-gtk-build-system) (arguments '(#:configure-flags @@ -2675,7 +2668,7 @@ (define-public aisleriot (define-public devhelp (package (name "devhelp") - (version "3.18.1") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2683,7 +2676,7 @@ (define-public devhelp name "-" version ".tar.xz")) (sha256 (base32 - "1vqsqpc51cir5qf801ibh6ljlpfw0qd513l9hjcnzp4ls8m1cfih")))) + "078zr92xs5ifp862v1vdmw1j9m6gr9zk5hjbk5065vxjwb17acx2")))) (build-system glib-or-gtk-build-system) (native-inputs `(("intltool" ,intltool) @@ -2769,7 +2762,7 @@ (define-public cogl (define-public clutter (package (name "clutter") - (version "1.24.2") + (version "1.26.0") (source (origin (method url-fetch) @@ -2778,7 +2771,7 @@ (define-public clutter name "-" version ".tar.xz")) (sha256 (base32 - "0qyd0cw17wi8gl6y9z2j2lh2gwghxskfmsdvw4ayrgxwnj6cjccn")))) + "01nfjd4k7j2n3agpx2d9ncff86nfsqv4n23465rb9zmk4iw4wlb7")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;9 MiB of gtk-doc HTML pages @@ -2822,7 +2815,7 @@ (define-public clutter (define-public clutter-gtk (package (name "clutter-gtk") - (version "1.6.6") + (version "1.8.0") (source (origin (method url-fetch) @@ -2831,7 +2824,7 @@ (define-public clutter-gtk name "-" version ".tar.xz")) (sha256 (base32 - "0a2a8ci6in82l43zak3zj3cyms23i5rq6lzk1bz013gm023ach4l")))) + "07dzvx0b3fsswxnpxgk0adjgccnrvbxsd971naqwndnfivbgjbkl")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -2851,7 +2844,7 @@ (define-public clutter-gtk (define-public clutter-gst (package (name "clutter-gst") - (version "3.0.14") + (version "3.0.18") (source (origin (method url-fetch) @@ -2860,7 +2853,7 @@ (define-public clutter-gst name "-" version ".tar.xz")) (sha256 (base32 - "1qidm0q28q6w8gjd0gpqnk8fzqxv39dcp0vlzzawlncp8zfagj7p")))) + "14w0pi9myvcn1yxzmk9sk8dghj17m5ji3aqdpfjikk90c060vv0a")))) (build-system gnu-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums @@ -2882,7 +2875,7 @@ (define-public clutter-gst (define-public libchamplain (package (name "libchamplain") - (version "0.12.12") + (version "0.12.13") (source (origin (method url-fetch) (uri (string-append @@ -2890,7 +2883,7 @@ (define-public libchamplain version ".tar.xz")) (sha256 (base32 - "19jlhbgfn9c9g40b3fa2x373s6rfcwx5i9lbpl3vl7d901r7kpp7")))) + "1arzd1hsgq14rbiwa1ih2g250x6ljna2s2kiqfrw155c612s9cxk")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (propagated-inputs @@ -2946,7 +2939,7 @@ (define-public gom (define-public gnome-klotski (package (name "gnome-klotski") - (version "3.18.2") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2954,7 +2947,7 @@ (define-public gnome-klotski name "-" version ".tar.xz")) (sha256 (base32 - "14l1fji0860yam41x2cy72nd9bljph385ynfm6k1lsv4qhv72az2")))) + "00hs3ci8swmq12rmgidy7rf3ql9isbklhn114v8rzdfs46y5dzkp")))) (build-system glib-or-gtk-build-system) (native-inputs `(("desktop-file-utils" ,desktop-file-utils) @@ -2977,7 +2970,7 @@ (define-public gnome-klotski (define-public grilo (package (name "grilo") - (version "0.2.14") + (version "0.2.15") (source (origin (method url-fetch) @@ -2986,7 +2979,7 @@ (define-public grilo name "-" version ".tar.xz")) (sha256 (base32 - "1k8wj8f7xfaw5hxypnmwd34li3fq8h76dacach547rvsfjhjxj3r")))) + "05b8sqfmywg45b9frya6xmw5l3c8vf5a1nhy51nyfs0a4n1japbg")))) (build-system gnu-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal @@ -3028,7 +3021,7 @@ (define-public grilo (define-public grilo-plugins (package (name "grilo-plugins") - (version "0.2.16") + (version "0.2.17") (source (origin (method url-fetch) @@ -3037,7 +3030,7 @@ (define-public grilo-plugins name "-" version ".tar.xz")) (sha256 (base32 - "00sjmkzxc8w4qn4lp5yj65c4y83mwhp0zlvk11ghvpxnklgmgd40")))) + "109pf4sz320jiqs1nzszpj2flkwrgwfsm64kza24mxnxih4njxik")))) (build-system gnu-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal @@ -3080,7 +3073,7 @@ (define-public grilo-plugins (define-public totem (package (name "totem") - (version "3.18.1") + (version "3.20.0") (source (origin (method url-fetch) @@ -3089,7 +3082,7 @@ (define-public totem name "-" version ".tar.xz")) (sha256 (base32 - "18h784c77m4h359j3xnlwqlfvnhbw7m052ahzm26r106jsp6x0fp")))) + "1pq3fg4778qrylkg6lc4jcb3gvm46n5y7mfn26iihi23aj844yq7")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -3246,7 +3239,7 @@ (define-public rhythmbox (define-public eog (package (name "eog") - (version "3.18.1") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3254,7 +3247,7 @@ (define-public eog name "-" version ".tar.xz")) (sha256 (base32 - "19wkawrcwjjcvlmizkj57qycnbgizhr8ck3j5qg70605d1xb8yvv")))) + "0avy7sss6rf659rxipvp3gbqw083liq627lxjpfp1ij34hbmqwfv")))) (build-system glib-or-gtk-build-system) (arguments `(#:phases @@ -3324,7 +3317,7 @@ (define-public libgudev (define-public gvfs (package (name "gvfs") - (version "1.26.2") + (version "1.28.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3332,7 +3325,7 @@ (define-public gvfs name "-" version ".tar.xz")) (sha256 (base32 - "064dsjrdjcbi38zl38jhh4r9jcpiygg7x4c8s6s2rb757l7nwnv9")))) + "017pynx7rfrhgvg904kwxdw9dc26zb0v7ymkspm059qcvw5gqwng")))) (build-system gnu-build-system) (arguments '(#:tests? #f)) ; XXX: requiring `pidof' @@ -3476,7 +3469,7 @@ (define-public simple-scan (define-public epiphany (package (name "epiphany") - (version "3.18.2") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3484,7 +3477,7 @@ (define-public epiphany name "-" version ".tar.xz")) (sha256 (base32 - "1hm6bpdcc6nf3zamzkvjhpvxnpaxzbnxnacfgl5v8swn643ifdl4")))) + "0x09dfc0zdxw93g1dcmxqpvy9vnv94bd27sfq23ix31z6i9fcs63")))) (build-system glib-or-gtk-build-system) (arguments ;; FIXME: tests run under Xvfb, but fail with: @@ -3582,7 +3575,7 @@ (define-public d-feet (define-public yelp-xsl (package (name "yelp-xsl") - (version "3.18.1") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3590,7 +3583,7 @@ (define-public yelp-xsl name "-" version ".tar.xz")) (sha256 (base32 - "0qmsq7qkc06gmnkvbs84qj3jjzlihriy3z45nfbpgg51b6z0z1q0")))) + "0j288fw7bqbswl2vk73ihs0ngky0b3p8k1yy5lrxfh1whn3phclz")))) (build-system gnu-build-system) (native-inputs `(("intltool" ,intltool) @@ -3606,7 +3599,7 @@ (define-public yelp-xsl (define-public yelp (package (name "yelp") - (version "3.18.1") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3614,7 +3607,7 @@ (define-public yelp name "-" version ".tar.xz")) (sha256 (base32 - "10384lr712xdr8zbi07vqh0cf4nd7ybg1vs05r5cy3kwf6s4wfms")))) + "0g404njlgr38nif9hb3krybavk56wplkafxvfibcg68iqp9465dz")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc. @@ -3792,7 +3785,7 @@ (define-public shotwell (define-public file-roller (package (name "file-roller") - (version "3.16.4") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3800,7 +3793,7 @@ (define-public file-roller name "-" version ".tar.xz")) (sha256 (base32 - "11a1g8f2700n2mz998wf40dz1rxjgap60mfns9iv0zlw5h5rhmal")))) + "1a5598zyzdhdyk7sq59h8hqrjlacxw6wfdmgi0cs5kvbzjr9jnhq")))) (build-system glib-or-gtk-build-system) (native-inputs `(("intltool" ,intltool) @@ -3825,7 +3818,7 @@ (define-public file-roller (define-public gnome-session (package (name "gnome-session") - (version "3.18.1.2") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3833,7 +3826,7 @@ (define-public gnome-session name "-" version ".tar.xz")) (sha256 (base32 - "0icajbzqf5llvp5s8nafwkhwz6a6jmwn4hhs81bk0bpzawyq4zdk")))) + "0d0v60lmvr8wbrswfpc4f4jg2dhxj6nkgv7wnwdf2zifk8vp5zv6")))) (arguments '(#:phases (modify-phases %standard-phases @@ -3949,7 +3942,7 @@ (define-public gjs (define-public gedit (package (name "gedit") - (version "3.18.3") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3957,7 +3950,7 @@ (define-public gedit name "-" version ".tar.xz")) (sha256 (base32 - "1rrjdkvwwjyj05jc9icifjm9v8sgs0wqgy555m57a3rvg46sqqk7")))) + "1i0x1jd9x1vpv8lwdlzwf0ml8jxh3b3l6nlg6pbnfjw47w3y6iws")))) (build-system glib-or-gtk-build-system) (arguments `(#:phases @@ -4006,7 +3999,7 @@ (define-public gedit (define-public zenity (package (name "zenity") - (version "3.18.1.1") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4014,7 +4007,7 @@ (define-public zenity name "-" version ".tar.xz")) (sha256 (base32 - "02m88dfm1rziqk2ywakwib06wl1rxangbzih6cp8wllbyl1plcg6")))) + "0j2sy6imwp41l75hy3fwr68n35drvanbwgmr42kc04zqjy9pbs02")))) (build-system gnu-build-system) (native-inputs `(("gettext" ,gnu-gettext) @@ -4033,7 +4026,7 @@ (define-public zenity (define-public mutter (package (name "mutter") - (version "3.18.1") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4041,7 +4034,7 @@ (define-public mutter name "-" version ".tar.xz")) (sha256 (base32 - "1ab959z5fgi4rq0ifxdqvpdbv99a2b1lfgvj327s9crdvk4ygpjg")))) + "1x8nhnili1bq3pnrvr3jsgchcz36jzi9infrbr3gplwxnsbx4i2n")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -4083,7 +4076,7 @@ (define-public mutter (define-public gnome-online-accounts (package (name "gnome-online-accounts") - (version "3.18.1") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4091,7 +4084,7 @@ (define-public gnome-online-accounts name "-" version ".tar.xz")) (sha256 (base32 - "1hn2fvkr1f4qh4gix03avnvk7pklvv5272ns8ws56v4kcq4nppkc")))) + "0q546q65ba537dbxqnvs27x6pvhvi394v43kihgw4pa59j8k70n9")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. @@ -4121,7 +4114,7 @@ (define-public gnome-online-accounts (define-public evolution-data-server (package (name "evolution-data-server") - (version "3.18.2") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4129,7 +4122,7 @@ (define-public evolution-data-server name "-" version ".tar.xz")) (sha256 (base32 - "16yfd2a00xqxikyf6pi2awfd0qfq4hwdhfar88axrb4mycfgqhjr")))) + "0jsgzahaha6bxrm15da7c32m8ksnmx9rfm7xdx99lbxhsm7yiwh5")))) (build-system gnu-build-system) (arguments '(;; XXX: fails with: @@ -4182,7 +4175,7 @@ (define-public evolution-data-server (define-public caribou (package (name "caribou") - (version "0.4.19") + (version "0.4.20") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4190,7 +4183,7 @@ (define-public caribou name "-" version ".tar.xz")) (sha256 (base32 - "0i2s2xy9ami3wslam15cajhggpcsj4c70qm7qddcz52z9k0x02rg")))) + "1nahpfs5ap9f9wsvn93kg8isqffk60v785f1q6k64awcd7an8ris")))) (build-system glib-or-gtk-build-system) (arguments '(#:phases @@ -4401,7 +4394,7 @@ (define-public libxml++ (define-public gdm (package (name "gdm") - (version "3.18.2") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4409,7 +4402,7 @@ (define-public gdm name "-" version ".tar.xz")) (sha256 (base32 - "08pqhslwd487nh9w0jp4d0s4s2imm4ds0jjsbl6lzmqifqj3b4jl")))) + "1hnkv4j4m6z9l2y1rzxn674ir34k57apz1ybr15m11ksn05vlky6")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -4461,7 +4454,7 @@ (define-public gdm (define-public libgtop (package (name "libgtop") - (version "2.32.0") + (version "2.34.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4469,7 +4462,7 @@ (define-public libgtop name "-" version ".tar.xz")) (sha256 (base32 - "13hpml2vfm23816qggr5fvxj75ndb1dq4rgmi7ik6azj69ij8hw4")))) + "0apfnh9k6vmbdm8ms5wxyhagrrl8r88fv48k7q5qq70df2gf72ld")))) (build-system gnu-build-system) (native-inputs `(("gobject-introspection" ,gobject-introspection) @@ -4488,7 +4481,7 @@ (define-public libgtop (define-public gnome-bluetooth (package (name "gnome-bluetooth") - (version "3.18.1") + (version "3.18.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4496,7 +4489,7 @@ (define-public gnome-bluetooth name "-" version ".tar.xz")) (sha256 (base32 - "0jaa9nbygdvcqp9k4p4iy2g8x3684s4x9k5nbcmmm11jdn4mn7f5")))) + "1qwc9q7x22sc71zhqv4db78rqzxl6fqfw6d978ydqap54c2bg0g4")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc. @@ -4521,7 +4514,7 @@ (define-public gnome-bluetooth (define-public gnome-control-center (package (name "gnome-control-center") - (version "3.18.2") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4529,7 +4522,7 @@ (define-public gnome-control-center name "-" version ".tar.xz")) (sha256 (base32 - "1bgqg1sl3cp2azrwrjgwx3jzk9n3w76xpcyvk257qavx4ibn3zin")))) + "10yncjq5hmaqbr8kjf8s729kn11as705vfx32nxahi7229v31rxp")))) (build-system glib-or-gtk-build-system) (arguments '(#:phases @@ -4591,7 +4584,7 @@ (define-public gnome-control-center (define-public gnome-shell (package (name "gnome-shell") - (version "3.18.3") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4599,7 +4592,7 @@ (define-public gnome-shell name "-" version ".tar.xz")) (sha256 (base32 - "16sicxdp08yfaj4hiyzvbspb5jk3fpmi291272zhx5vgc3wbl5w5")))) + "125qjrbw40r8rpri9y0yrl5yqs2q4x0l5inzi3vwl0rxvmhz8sgf")))) (build-system glib-or-gtk-build-system) (arguments '(#:phases @@ -4711,7 +4704,7 @@ (define-public gtk-vnc (define-public nautilus (package (name "nautilus") - (version "3.18.2") ; XXX: later version require gtk+-3.0 >= 3.18.5 + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4719,10 +4712,11 @@ (define-public nautilus name "-" version ".tar.xz")) (sha256 (base32 - "0jj23n8vmmyc4gp5xhiz7slsxwksydp26blxi5m154yaw9lgdp38")))) + "14s234b4l7hsxng1n3kkj4c8sjsq2vl2l2fw0caqfxva9md9k9vw")))) (build-system glib-or-gtk-build-system) (arguments - '(#:configure-flags '("--disable-tracker") ; XXX: not packaged + '(#:configure-flags + '("--disable-tracker" "--disable-selinux") ; XXX: not packaged ;; XXX: FAIL: check-nautilus ;; Settings schema 'org.gnome.nautilus.preferences' is not installed #:tests? #f)) @@ -4755,7 +4749,7 @@ (define-public nautilus (define-public baobab (package (name "baobab") - (version "3.18.1") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append @@ -4764,7 +4758,7 @@ (define-public baobab name "-" version ".tar.xz")) (sha256 (base32 - "1da4bdkw5bnxansl1xr4lb03d6f4h0a0qaba8i3p3rwhcd191b62")))) + "01vxc9z87i2dsvydm6p1sh4m7bpbggy70q9bx6pxz707hyr6bpaw")))) (build-system glib-or-gtk-build-system) (native-inputs `(("intltool" ,intltool) @@ -4787,7 +4781,7 @@ (define-public baobab (define-public gnome-backgrounds (package (name "gnome-backgrounds") - (version "3.18.0") + (version "3.20") (source (origin (method url-fetch) @@ -4796,7 +4790,7 @@ (define-public gnome-backgrounds name "-" version ".tar.xz")) (sha256 (base32 - "1fd7y8dh3iy88ayb8irgsihvssli6bzjzb5a6vfhi8qjbw70ymma")))) + "09viag7q53lfwrp074a1w7j0r8izlwpi10xbwjgbf5jwbqb6wv6n")))) (build-system glib-or-gtk-build-system) (native-inputs `(("intltool" ,intltool))) @@ -4846,7 +4840,7 @@ (define-public gnome-screenshot (define-public dconf-editor (package (name "dconf-editor") - (version "3.18.2") + (version "3.20.0") (source (origin (method url-fetch) @@ -4855,7 +4849,7 @@ (define-public dconf-editor name "-" version ".tar.xz")) (sha256 (base32 - "0xdwi7g1xdmgrc9m8ii62fp2zj114gsfpmgazlnhrcmmfi97z5d7")))) + "0q57wmlab01rmwbwlih5mh9fa1nwc2abfz0vl374lkljw9acim13")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0. diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 255d885b27..f31a510504 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -63,7 +63,7 @@ (define-module (gnu packages gtk) (define-public atk (package (name "atk") - (version "2.18.0") + (version "2.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -71,7 +71,7 @@ (define-public atk name "-" version ".tar.xz")) (sha256 (base32 - "0ay9s137x49f0akx658p7kznz0rdapfrd8ym54q0hlgrggblhv6f")))) + "1w1q29yfxcq67j7fyqrfm0l0n1vy4zn539c0sf4ga9d0qkv50fj9")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments @@ -95,14 +95,14 @@ (define-public atk (define-public cairo (package (name "cairo") - (version "1.14.2") + (version "1.14.6") (source (origin (method url-fetch) (uri (string-append "http://cairographics.org/releases/cairo-" version ".tar.xz")) (sha256 (base32 - "1sycbq0agbwmg1bj9lhkgsf0glmblaf2jrdy9g6vxfxivncxj6f9")))) + "0lmjlzmghmr27y615px9hkm552x7ap6pmq9mfbzr6smp8y2b6g31")))) (build-system gnu-build-system) (propagated-inputs `(("fontconfig" ,fontconfig) @@ -147,7 +147,7 @@ (define-public cairo (define-public harfbuzz (package (name "harfbuzz") - (version "1.0.6") + (version "1.2.4") (source (origin (method url-fetch) (uri (string-append "https://www.freedesktop.org/software/" @@ -155,7 +155,7 @@ (define-public harfbuzz version ".tar.bz2")) (sha256 (base32 - "09ivk5m4y09ar4zi9r6db7gp234cy05h0ach7w22g9kqvkxsf5pn")))) + "14g4kpph8hgplkm954daxiymxx0vicfq7b7svvdsx54g5bqvv7a4")))) (build-system gnu-build-system) (outputs '("out" "bin")) ; 160K, only hb-view depend on cairo @@ -185,7 +185,7 @@ (define-public harfbuzz (define-public pango (package (name "pango") - (version "1.38.1") + (version "1.40.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/pango/" @@ -193,7 +193,7 @@ (define-public pango name "-" version ".tar.xz")) (sha256 (base32 - "1dsf45m51i4rcyvh5wlxxrjfhvn5b67d5ckjc6vdcxbddjgmc80k")))) + "12qwa748wyady16xxdq5rqz9gki1kksj8m5bcv80gjqlydfrh5ys")))) (build-system gnu-build-system) (propagated-inputs `(("cairo" ,cairo) @@ -339,7 +339,7 @@ (define-public gtksourceview-2 (define-public gtksourceview (package (name "gtksourceview") - (version "3.18.2") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -347,7 +347,7 @@ (define-public gtksourceview name "-" version ".tar.xz")) (sha256 (base32 - "1cmplnqbyd1js5bkpi9cfc3gljilyxg5nngwh4i3mq9r02gmmxv0")))) + "0k4cmq94181l39di9z4agampg4za6bvimkvcjm3qlxmsxb09ab9j")))) (build-system gnu-build-system) (arguments '(#:phases @@ -387,7 +387,7 @@ (define-public gtksourceview (define-public gdk-pixbuf (package (name "gdk-pixbuf") - (version "2.32.3") + (version "2.34.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -395,7 +395,7 @@ (define-public gdk-pixbuf name "-" version ".tar.xz")) (sha256 (base32 - "0cfh87aqyqbfcwpbv1ihgmgfcn66il5q2n8yjyl8gxkjmkqp2rrb")))) + "0yc8indbl3hf18z6x6kjg59xp9sngm1d8vmz4c7bs6g27qw5npnm")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-x11") @@ -415,9 +415,12 @@ (define-public gdk-pixbuf ;; (gdk-pixbuf-error-quark, 0) (("pixbuf-jpeg\\$\\(EXEEXT\\) ") "")) #t))))) - (propagated-inputs ; required by gdk-pixbuf-2.0.pc - `(("glib" ,glib) - ("libpng" ,libpng))) + (propagated-inputs + `(;; Required by gdk-pixbuf-2.0.pc + ("glib" ,glib) + ("libpng" ,libpng) + ;; Used for testing and required at runtime. + ("shared-mime-info" ,shared-mime-info))) (inputs `(("libjpeg" ,libjpeg) ("libtiff" ,libtiff) @@ -465,7 +468,7 @@ (define-public gdk-pixbuf+svg (define-public at-spi2-core (package (name "at-spi2-core") - (version "2.18.1") + (version "2.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -473,7 +476,7 @@ (define-public at-spi2-core name "-" version ".tar.xz")) (sha256 (base32 - "1kq17w4fm51d49vzmglkxqdm6s0yvjvrpgw78r2hajf69jz5bmap")))) + "16v09iwnd3895fshsvsci836dar21c8y9w8zn882jn4fq2vrzi6w")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments @@ -510,7 +513,7 @@ (define-public at-spi2-core (define-public at-spi2-atk (package (name "at-spi2-atk") - (version "2.18.1") + (version "2.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -518,7 +521,7 @@ (define-public at-spi2-atk name "-" version ".tar.xz")) (sha256 (base32 - "0bf1g5cj84rmx7p1q547vwbc0hlpcs2wrxnmv96lckfkhs9mzcf4")))) + "1lis9zj4r3d5ff3chs0r93gjkbp0wgflfx35gbax47cgdqmi8jx2")))) (build-system gnu-build-system) (arguments '(#:phases @@ -545,7 +548,7 @@ (define-public at-spi2-atk (define-public gtk+-2 (package (name "gtk+") - (version "2.24.28") + (version "2.24.30") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -553,13 +556,14 @@ (define-public gtk+-2 name "-" version ".tar.xz")) (sha256 (base32 - "0mj6xn40py9r9lvzg633fal81xfwfm89d9mvz7jk4lmwk0g49imj")) - (patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch")))) + "0l6aqk86aw5w132ygy6hv6nlxvd1h6xg7c85qbm60p6mnv1ww58d")) + (patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch" + "gtk2-theme-paths.patch")))) (build-system gnu-build-system) (outputs '("out" "doc")) (propagated-inputs `(("atk" ,atk) - ("gdk-pixbuf" ,gdk-pixbuf) + ("gdk-pixbuf" ,gdk-pixbuf+svg) ("pango" ,pango))) (inputs `(("cups" ,cups) @@ -606,7 +610,7 @@ (define-public gtk+-2 (define-public gtk+ (package (inherit gtk+-2) (name "gtk+") - (version "3.18.2") + (version "3.20.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -614,12 +618,12 @@ (define-public gtk+ name "-" version ".tar.xz")) (sha256 (base32 - "0lp1hn0qydxx03bianzzr0a4maqzsvylrkzr7c3p0050qihwbgjx")) + "1xv97zrngf47hyrxz7rfrdl5xpv4y61rkmipyi300pm5iq3d3c8s")) (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch")))) (propagated-inputs `(("at-spi2-atk" ,at-spi2-atk) ("atk" ,atk) - ("gdk-pixbuf" ,gdk-pixbuf) + ("gdk-pixbuf" ,gdk-pixbuf+svg) ("libepoxy" ,libepoxy) ("libxcursor" ,libxcursor) ("libxi" ,libxi) @@ -627,8 +631,7 @@ (define-public gtk+ ("libxdamage" ,libxdamage) ("pango" ,pango))) (inputs - `(("librsvg" ,librsvg) ;for gtk-encode-symbolic-svg - ("libxml2" ,libxml2) + `(("libxml2" ,libxml2) ;; XXX: colord depends on mozjs (through polkit), which fails on ;; on non-intel systems now. ;;("colord" ,colord) @@ -663,18 +666,7 @@ (define-public gtk+ (("SUBDIRS = gdk gtk a11y css reftests") "SUBDIRS = gdk")) #t) - (alist-cons-after - 'install 'wrap-gtk-encode-symbolic-svg - ;; By using GdkPixbuf, gtk-encode-symbolic-svg needs to know - ;; librsvg's loaders.cache to handle SVG files. - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (prog (string-append out "/bin/gtk-encode-symbolic-svg")) - (librsvg (assoc-ref inputs "librsvg")) - (loaders.cache (find-files librsvg "^loaders\\.cache$"))) - (wrap-program prog - `("GDK_PIXBUF_MODULE_FILE" = ,loaders.cache)))) - %standard-phases)))) + %standard-phases))) (native-search-paths (list (search-path-specification (variable "GUIX_GTK3_PATH") @@ -864,7 +856,7 @@ (define-public cairomm (define-public pangomm (package (name "pangomm") - (version "2.38.1") + (version "2.40.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -872,7 +864,7 @@ (define-public pangomm name "-" version ".tar.xz")) (sha256 (base32 - "12xwjvqfxhqblcv7641k0l6r8n3qifnrx8w9571izn1nbd81iyzg")))) + "03fpqdjp7plybf4zsgszbm8yhgl28vmajzfpmaqcsmyfvjlszl3x")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (propagated-inputs @@ -913,7 +905,7 @@ (define-public atkmm (define-public gtkmm (package (name "gtkmm") - (version "3.18.0") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -921,7 +913,7 @@ (define-public gtkmm name "-" version ".tar.xz")) (sha256 (base32 - "0sxq700invkjpksn790gbnl8px8751kvgwn39663jx7dv89s37w2")))) + "12h2kd22iayvjfhmgjccm33igrbvqdj7hym31fsa1y0dhwzmf8gh")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("glib" ,glib "bin"))) ;for 'glib-compile-resources' diff --git a/gnu/packages/patches/glib-tests-desktop.patch b/gnu/packages/patches/glib-tests-desktop.patch deleted file mode 100644 index 642234ebbc..0000000000 --- a/gnu/packages/patches/glib-tests-desktop.patch +++ /dev/null @@ -1,138 +0,0 @@ -Some GLib tests expect desktop things, such as an xterm, a MIME -database, the `update-desktop-database' program, which we don't provide. - ---- glib-2.37.1/gio/tests/appinfo.c 2013-06-07 23:44:44.000000000 +0200 -+++ glib-2.37.1/gio/tests/appinfo.c 2013-06-07 23:44:56.000000000 +0200 -@@ -497,16 +497,10 @@ main (int argc, char *argv[]) - - g_test_add_func ("/appinfo/basic", test_basic); - g_test_add_func ("/appinfo/text", test_text); -- g_test_add_func ("/appinfo/launch", test_launch); - g_test_add_func ("/appinfo/show-in", test_show_in); - g_test_add_func ("/appinfo/commandline", test_commandline); -- g_test_add_func ("/appinfo/launch-context", test_launch_context); -- g_test_add_func ("/appinfo/launch-context-signals", test_launch_context_signals); - g_test_add_func ("/appinfo/tryexec", test_tryexec); -- g_test_add_func ("/appinfo/associations", test_associations); - g_test_add_func ("/appinfo/environment", test_environment); -- g_test_add_func ("/appinfo/startup-wm-class", test_startup_wm_class); -- g_test_add_func ("/appinfo/supported-types", test_supported_types); - g_test_add_func ("/appinfo/from-keyfile", test_from_keyfile); - - return g_test_run (); - ---- glib-2.40.0/gio/tests/contenttype.c 2013-01-16 21:22:29.000000000 +0100 -+++ glib-2.40.0/gio/tests/contenttype.c 2013-01-16 21:22:33.000000000 +0100 -@@ -207,15 +207,6 @@ main (int argc, char *argv[]) - { - g_test_init (&argc, &argv, NULL); - -- g_test_add_func ("/contenttype/guess", test_guess); -- g_test_add_func ("/contenttype/unknown", test_unknown); -- g_test_add_func ("/contenttype/subtype", test_subtype); -- g_test_add_func ("/contenttype/list", test_list); -- g_test_add_func ("/contenttype/executable", test_executable); -- g_test_add_func ("/contenttype/description", test_description); -- g_test_add_func ("/contenttype/icon", test_icon); -- g_test_add_func ("/contenttype/symbolic-icon", test_symbolic_icon); -- g_test_add_func ("/contenttype/tree", test_tree); - - return g_test_run (); - } - - ---- glib-2.40.0/gio/tests/desktop-app-info.c 2014-03-19 22:50:45.000000000 -0500 -+++ glib-2.40.0/gio/tests/desktop-app-info.c 2014-06-30 14:27:52.543358331 -0500 -@@ -708,6 +708,8 @@ - g_setenv ("XDG_DATA_HOME", basedir, TRUE); - cleanup_subdirs (basedir); - -+ result = g_test_run (); -+ return result; - g_test_add_func ("/desktop-app-info/delete", test_delete); - g_test_add_func ("/desktop-app-info/default", test_default); - g_test_add_func ("/desktop-app-info/fallback", test_fallback); - - ------------------------------ -The hunk below removes tests that depend on `gdbus-testserver.py', -because that script depends on python-gobject. The second hunk -disables a test that expects /etc/machine-id in the build environment. - ---- glib-2.46.0/gio/tests/Makefile.in 2015-10-14 14:11:00.928809504 +0200 -+++ glib-2.46.0/gio/tests/Makefile.in 2015-10-14 14:12:13.157291092 +0200 -@@ -186,20 +186,13 @@ check_PROGRAMS = $(am__EXEEXT_16) - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-auth \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-bz627724 \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-close-pending \ --@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-connection \ --@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-connection-loss \ --@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-connection-slow \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-error \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-exit-on-close \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-export \ --@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-introspection \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-names \ --@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-proxy \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-proxy-threads \ --@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-proxy-well-known-name \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-test-codegen \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-test-codegen-old \ --@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-threading \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gmenumodel \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gnotification \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ $(NULL) -@@ -321,8 +314,7 @@ libresourceplugin_la_LINK = $(LIBTOOL) $ - am__EXEEXT_1 = - @OS_UNIX_TRUE@am__EXEEXT_2 = contenttype$(EXEEXT) file$(EXEEXT) \ - @OS_UNIX_TRUE@ gdbus-peer-object-manager$(EXEEXT) \ --@OS_UNIX_TRUE@ gdbus-unix-addresses$(EXEEXT) \ - @OS_UNIX_TRUE@ live-g-file$(EXEEXT) socket-address$(EXEEXT) \ - @OS_UNIX_TRUE@ stream-rw_all$(EXEEXT) unix-fd$(EXEEXT) \ - @OS_UNIX_TRUE@ unix-streams$(EXEEXT) $(am__EXEEXT_1) \ - - -The test below depends on the availability /etc/passwd to dbus-daemon. - ---- glib-2.40.0/gio/tests/gdbus-auth.c 2014-02-03 11:40:41.000000000 -0600 -+++ glib-2.40.0/gio/tests/gdbus-auth.c 2014-06-30 15:08:43.719421893 -0500 -@@ -286,6 +286,8 @@ - { - gint ret; - -+ g_test_init (&argc, &argv, NULL); -+ return g_test_run(); - setlocale (LC_ALL, "C"); - - temp_dbus_keyrings_setup (); - - -The test dbus-appinfo is dropped as it hangs indefinitely since 2.37.5, see - https://launchpad.net/ubuntu/+source/glib2.0/2.37.5-1ubuntu1 - ---- glib-2.40.0/gio/tests/dbus-appinfo.c 2014-02-03 11:40:41.000000000 -0600 -+++ glib-2.40.0/gio/tests/dbus-appinfo.c 2014-06-30 14:44:08.215383632 -0500 -@@ -278,7 +278,7 @@ - { - g_test_init (&argc, &argv, NULL); - -- g_test_add_func ("/appinfo/dbusappinfo", test_dbus_appinfo); -+ return g_test_run(); - - return session_bus_run (); - } - - -The test below fails for unknown reasons (!). - ---- glib-2.39.1/gio/tests/gsettings.c.orig 2014-01-20 00:45:04.000000000 +0100 -+++ glib-2.39.1/gio/tests/gsettings.c 2014-01-20 00:45:10.000000000 +0100 -@@ -2489,7 +2489,6 @@ main (int argc, char *argv[]) - g_test_add_func ("/gsettings/range/subprocess/high", test_range_high); - g_test_add_func ("/gsettings/range/subprocess/low", test_range_low); - g_test_add_func ("/gsettings/list-items", test_list_items); -- g_test_add_func ("/gsettings/list-schemas", test_list_schemas); - g_test_add_func ("/gsettings/mapped", test_get_mapped); - g_test_add_func ("/gsettings/get-range", test_get_range); - g_test_add_func ("/gsettings/schema-source", test_schema_source); - diff --git a/gnu/packages/patches/glib-tests-gapplication.patch b/gnu/packages/patches/glib-tests-gapplication.patch deleted file mode 100644 index 1845fcb9b8..0000000000 --- a/gnu/packages/patches/glib-tests-gapplication.patch +++ /dev/null @@ -1,28 +0,0 @@ -This test has proven to be unreliable, often leading to things like this -in gapplication.log: - - PASS: gapplication 3 /gapplication/properties - Failed to register: The connection is closed - ** - GLib-GIO:ERROR:gapplication.c:564:test_quit: assertion failed: (activated) - ok 4 /gapplication/app-id - PASS: gapplication 4 /gapplication/app-id - ../../tap-test: line 5: 24133 Aborted $1 -k --tap - # GLib-GIO:ERROR:gapplication.c:564:test_quit: assertion failed: (activated) - cleaning up pid 24154 - ERROR: gapplication - missing test plan - ERROR: gapplication - exited with status 134 (terminated by signal 6?) - -See and . - - ---- glib-2.40.2/gio/tests/gapplication.c 2014-12-03 22:34:44.566667649 +0100 -+++ glib-2.40.2/gio/tests/gapplication.c 2014-12-03 22:34:45.346674179 +0100 -@@ -685,7 +685,6 @@ main (int argc, char **argv) - /* g_test_add_func ("/gapplication/non-unique", test_nonunique); */ - g_test_add_func ("/gapplication/properties", properties); - g_test_add_func ("/gapplication/app-id", appid); -- g_test_add_func ("/gapplication/quit", test_quit); - g_test_add_func ("/gapplication/local-actions", test_local_actions); - /* g_test_add_func ("/gapplication/remote-actions", test_remote_actions); */ - g_test_add_func ("/gapplication/local-command-line", test_local_command_line); diff --git a/gnu/packages/patches/glib-tests-homedir.patch b/gnu/packages/patches/glib-tests-homedir.patch deleted file mode 100644 index 0a2bcf1a23..0000000000 --- a/gnu/packages/patches/glib-tests-homedir.patch +++ /dev/null @@ -1,59 +0,0 @@ -`g_get_home_dir' looks at /etc/passwd first, which fails in chroot builds. -The gdbus tests use it to lookup .dbus-keyrings, so they cannot run in our -chroot build environment. Thus, disable them. - ---- glib-2.34.3/gio/tests/gdbus-connection-flush.c 2013-01-16 17:29:46.000000000 +0100 -+++ glib-2.34.3/gio/tests/gdbus-connection-flush.c 2013-01-16 17:29:47.000000000 +0100 -@@ -373,10 +373,6 @@ main (int argc, - g_type_init (); - g_test_init (&argc, &argv, NULL); - -- g_test_add ("/gdbus/connection/flush/busy", Fixture, NULL, -- setup, test_flush_busy, teardown); -- g_test_add ("/gdbus/connection/flush/idle", Fixture, NULL, -- setup, test_flush_idle, teardown); - - ret = g_test_run(); - ---- glib-2.38.0.orig/gio/tests/gdbus-peer.c 2013-08-08 12:00:40.000000000 +0200 -+++ glib-2.38.0/gio/tests/gdbus-peer.c 2013-09-30 19:36:40.000000000 +0200 -@@ -1746,11 +1746,6 @@ - - g_test_add_func ("/gdbus/peer-to-peer", test_peer); - g_test_add_func ("/gdbus/delayed-message-processing", delayed_message_processing); -- g_test_add_func ("/gdbus/nonce-tcp", test_nonce_tcp); -- -- g_test_add_func ("/gdbus/tcp-anonymous", test_tcp_anonymous); -- g_test_add_func ("/gdbus/credentials", test_credentials); -- g_test_add_func ("/gdbus/codegen-peer-to-peer", codegen_test_peer); - - ret = g_test_run(); - ---- glib-2.37.1/gio/tests/gdbus-exit-on-close.c 2013-06-07 23:41:34.000000000 +0200 -+++ glib-2.37.1/gio/tests/gdbus-exit-on-close.c 2013-06-07 23:41:40.000000000 +0200 -@@ -211,6 +211,7 @@ main (int argc, - - g_test_init (&argc, &argv, NULL); - -+ return g_test_run(); - for (i = 0; cases[i].name != NULL; i++) - { - gchar *name; -@@ -224,5 +225,4 @@ main (int argc, - g_free (name); - } - -- return g_test_run(); - } - ---- glib-2.34.3/gio/tests/gdbus-non-socket.c 2013-01-16 18:13:25.000000000 +0100 -+++ glib-2.34.3/gio/tests/gdbus-non-socket.c 2013-01-16 18:13:27.000000000 +0100 -@@ -294,7 +294,6 @@ main (int argc, - g_type_init (); - g_test_init (&argc, &argv, NULL); - -- g_test_add_func ("/gdbus/non-socket", test_non_socket); - - ret = g_test_run(); - - diff --git a/gnu/packages/patches/glib-tests-prlimit.patch b/gnu/packages/patches/glib-tests-prlimit.patch deleted file mode 100644 index f2b2a61bee..0000000000 --- a/gnu/packages/patches/glib-tests-prlimit.patch +++ /dev/null @@ -1,14 +0,0 @@ -prlimit(2) returns ENOSYS on Linux 2.6.32-5-xen-amd64 as found on -hydra.gnu.org, and strace(1) doesn't recognize it. - ---- glib-2.34.3/glib/tests/thread.c 2012-11-20 15:27:12.000000000 +0100 -+++ glib-2.34.3/glib/tests/thread.c 2013-03-27 14:48:31.000000000 +0100 -@@ -130,7 +130,7 @@ test_thread3 (void) - static void - test_thread4 (void) - { --#ifdef HAVE_PRLIMIT -+#if 0 - struct rlimit ol, nl; - GThread *thread; - GError *error; diff --git a/gnu/packages/patches/glib-tests-timer.patch b/gnu/packages/patches/glib-tests-timer.patch index 1ac364fcc1..e37425c0c8 100644 --- a/gnu/packages/patches/glib-tests-timer.patch +++ b/gnu/packages/patches/glib-tests-timer.patch @@ -2,9 +2,6 @@ fail depending on the elapsed microseconds. Improve rounding by adding a fractional bit. -* The /timer/stop test fails if compiler optimizations are enabled, which they - are by default. Disable that test. - --- glib-2.40.0/glib/tests/timer.c 2014-03-05 08:05:42.000000000 -0600 +++ glib-2.40.0/glib/tests/timer.c 2014-07-10 16:33:12.746862822 -0500 @@ -35,7 +35,7 @@ @@ -16,11 +13,3 @@ g_timer_destroy (timer); } -@@ -204,7 +204,6 @@ - g_test_init (&argc, &argv, NULL); - - g_test_add_func ("/timer/basic", test_timer_basic); -- g_test_add_func ("/timer/stop", test_timer_stop); - g_test_add_func ("/timer/continue", test_timer_continue); - g_test_add_func ("/timer/reset", test_timer_reset); - g_test_add_func ("/timeval/add", test_timeval_add); diff --git a/gnu/packages/patches/gtk2-theme-paths.patch b/gnu/packages/patches/gtk2-theme-paths.patch new file mode 100644 index 0000000000..6c1351e516 --- /dev/null +++ b/gnu/packages/patches/gtk2-theme-paths.patch @@ -0,0 +1,41 @@ +From: Jookia <166291@gmail.com> +Subject: [PATCHv2] gtk: Patch GTK+ to look for themes in profiles. +To: guix-devel@gnu.org +Date: Sun, 13 Mar 2016 15:17:37 +1100 +Url: https://lists.gnu.org/archive/html/guix-devel/2016-03/msg00492.html + +diff -Naur gtk+-2.24.28.new/gtk/gtkrc.c gtk+-2.24.28/gtk/gtkrc.c +--- gtk+-2.24.28.new/gtk/gtkrc.c 2016-03-13 10:31:14.413644362 +1100 ++++ gtk+-2.24.28/gtk/gtkrc.c 2016-03-13 12:51:34.723398423 +1100 +@@ -808,6 +808,8 @@ + gchar *path = NULL; + const gchar *home_dir; + gchar *subpath; ++ const gchar * const *xdg_data_dirs; ++ gint i; + + if (type) + subpath = g_strconcat ("gtk-2.0-", type, +@@ -830,6 +832,22 @@ + } + + if (!path) ++ { ++ xdg_data_dirs = g_get_system_data_dirs (); ++ for (i = 0; xdg_data_dirs[i]; i++) ++ { ++ path = g_build_filename (xdg_data_dirs[i], "themes", name, subpath, NULL); ++ if (g_file_test (path, G_FILE_TEST_EXISTS)) ++ break; ++ else ++ { ++ g_free (path); ++ path = NULL; ++ } ++ } ++ } ++ ++ if (!path) + { + gchar *theme_dir = gtk_rc_get_theme_dir (); + path = g_build_filename (theme_dir, name, subpath, NULL); diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 1d33be85d5..74840f1c95 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -52,19 +52,16 @@ (define-module (gnu packages pdf) (define-public poppler (package (name "poppler") - (version "0.37.0") + (version "0.42.0") (source (origin (method url-fetch) (uri (string-append "https://poppler.freedesktop.org/poppler-" version ".tar.xz")) - (sha256 (base32 - "1vjvd0md8y37hlq3lsj0l01a3v3mzm572rzpn1311frvmrg9r7xq")))) + (sha256 + (base32 + "044084dbp804flwf7bw3lbwfdigm9s0psm6sw2j1hkrazrphgvwz")))) (build-system gnu-build-system) - ;; FIXME: more dependencies could be added - ;; cairo output: no (requires cairo >= 1.10.0) - ;; qt4 wrapper: no - ;; introspection: no - ;; use gtk-doc: no + ;; FIXME: ;; use libcurl: no (inputs `(("fontconfig" ,fontconfig) ("freetype" ,freetype) @@ -83,7 +80,8 @@ (define-public poppler ("glib" ,glib))) (native-inputs `(("pkg-config" ,pkg-config) - ("glib" ,glib "bin"))) ; glib-mkenums, etc. + ("glib" ,glib "bin") ; glib-mkenums, etc. + ("gobject-introspection" ,gobject-introspection))) (arguments `(#:tests? #f ; no test data provided with the tarball #:configure-flags diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 126e997673..bb74485c76 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -196,7 +196,7 @@ (define-public xeyes (define-public pixman (package (name "pixman") - (version "0.32.8") + (version "0.34.0") (source (origin (method url-fetch) (uri (string-append @@ -204,7 +204,7 @@ (define-public pixman version ".tar.gz")) (sha256 (base32 - "0pfn0247sjsi95kwjih0wwqpp28wadihqk1bn28x6iqbqhbxwnjp")))) + "13m842m9ffac3m9r0b4lvwjhwzg3w4353djkjpf00s0wnm4v5di1")))) (build-system gnu-build-system) (inputs `(("libpng" ,libpng) -- cgit v1.2.3 From 8e3593353ee8cb3bb171fe2919850790aac15076 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 27 Apr 2016 21:51:43 +0800 Subject: Revert "Revert "gnu: inkscape: Fix build with glibmm-2.48."" This reverts commit 267061ba0bc6df0d61081b97d650d95acec8178a. --- gnu/local.mk | 1 + gnu/packages/inkscape.scm | 7 ++- .../patches/inkscape-drop-wait-for-targets.patch | 68 ++++++++++++++++++++++ 3 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/inkscape-drop-wait-for-targets.patch diff --git a/gnu/local.mk b/gnu/local.mk index 4afd6577c5..6f93386687 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -542,6 +542,7 @@ dist_patch_DATA = \ gnu/packages/patches/ilmbase-fix-tests.patch \ gnu/packages/patches/imagemagick-test-segv.patch \ gnu/packages/patches/imlib2-CVE-2016-4024.patch \ + gnu/packages/patches/inkscape-drop-wait-for-targets.patch \ gnu/packages/patches/irrlicht-mesa-10.patch \ gnu/packages/patches/jasper-CVE-2007-2721.patch \ gnu/packages/patches/jasper-CVE-2008-3520.patch \ diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm index b09e84ee08..16f83fc474 100644 --- a/gnu/packages/inkscape.scm +++ b/gnu/packages/inkscape.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 John Darrington -;;; Copyright © 2014 Mark H Weaver +;;; Copyright © 2014, 2016 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -52,7 +52,10 @@ (define-public inkscape version ".tar.gz")) (sha256 (base32 - "086v01jy896dj86bq7plrf6si4p6gh6ga2v5417llgmminycz8rc")))) + "086v01jy896dj86bq7plrf6si4p6gh6ga2v5417llgmminycz8rc")) + (patch-flags '("-p0")) + (patches + (search-patches "inkscape-drop-wait-for-targets.patch")))) (build-system gnu-build-system) (inputs `(("aspell" ,aspell) diff --git a/gnu/packages/patches/inkscape-drop-wait-for-targets.patch b/gnu/packages/patches/inkscape-drop-wait-for-targets.patch new file mode 100644 index 0000000000..3dbe6641e2 --- /dev/null +++ b/gnu/packages/patches/inkscape-drop-wait-for-targets.patch @@ -0,0 +1,68 @@ +Copied from Fedora. + +http://pkgs.fedoraproject.org/cgit/rpms/inkscape.git/plain/inkscape-0.91-drop-wait-for-targets.patch?id=eb5340800b563d6b05aa5f11a2f24f2cc0d8c80e + +=== modified file 'src/ui/clipboard.cpp' +--- src/ui/clipboard.cpp 2016-04-02 15:15:43 +0000 ++++ src/ui/clipboard.cpp 2016-04-07 16:30:32 +0000 +@@ -146,8 +146,6 @@ + void _setClipboardColor(guint32); + void _userWarn(SPDesktop *, char const *); + +- void _inkscape_wait_for_targets(std::list &); +- + // private properites + SPDocument *_clipboardSPDoc; ///< Document that stores the clipboard until someone requests it + Inkscape::XML::Node *_defs; ///< Reference to the clipboard document's defs node +@@ -1302,9 +1300,7 @@ + */ + Glib::ustring ClipboardManagerImpl::_getBestTarget() + { +- // GTKmm's wait_for_targets() is broken, see the comment in _inkscape_wait_for_targets() +- std::list targets; // = _clipboard->wait_for_targets(); +- _inkscape_wait_for_targets(targets); ++ std::list targets = _clipboard->wait_for_targets(); + + // clipboard target debugging snippet + /* +@@ -1456,39 +1452,6 @@ + desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, msg); + } + +- +-// GTKMM's clipboard::wait_for_targets is buggy and might return bogus, see +-// +-// https://bugs.launchpad.net/inkscape/+bug/296778 +-// http://mail.gnome.org/archives/gtk-devel-list/2009-June/msg00062.html +-// +-// for details. Until this has been fixed upstream we will use our own implementation +-// of this method, as copied from /gtkmm-2.16.0/gtk/gtkmm/clipboard.cc. +-void ClipboardManagerImpl::_inkscape_wait_for_targets(std::list &listTargets) +-{ +- //Get a newly-allocated array of atoms: +- GdkAtom* targets = NULL; +- gint n_targets = 0; +- gboolean test = gtk_clipboard_wait_for_targets( gtk_clipboard_get(GDK_SELECTION_CLIPBOARD), &targets, &n_targets ); +- if (!test || (targets == NULL)) { +- return; +- } +- +- //Add the targets to the C++ container: +- for (int i = 0; i < n_targets; i++) +- { +- //Convert the atom to a string: +- gchar* const atom_name = gdk_atom_name(targets[i]); +- +- Glib::ustring target; +- if (atom_name) { +- target = Glib::ScopedPtr(atom_name).get(); //This frees the gchar*. +- } +- +- listTargets.push_back(target); +- } +-} +- + /* ####################################### + ClipboardManager class + ####################################### */ + -- cgit v1.2.3 From 54e911bcc29270a39d276c5ee844392dd0a9e20e Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 27 Apr 2016 21:52:02 +0800 Subject: Revert "Revert "gnu: geoclue: Update to 2.4.3."" This reverts commit e4a7039e4646989ff77bc5d998f3421252f6b7cb. --- gnu/packages/gnome.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 4272493872..58de21294c 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2355,7 +2355,7 @@ (define-public colord (define-public geoclue (package (name "geoclue") - (version "2.2.0") + (version "2.4.3") (source (origin (method url-fetch) @@ -2364,7 +2364,7 @@ (define-public geoclue name "-" version ".tar.xz")) (sha256 (base32 - "0inlqx0zar498fhi9hh92p2g4kp8qy3zdl4z3vw6bjwp9w6xx454")) + "0pk07k65dlw37nz8z5spksivsv5nh96xmbi336rf2yfxf2ldpadd")) (patches (search-patches "geoclue-config.patch")))) (build-system glib-or-gtk-build-system) (arguments @@ -2385,7 +2385,8 @@ (define-public geoclue `(("pkg-config" ,pkg-config) ("intltool" ,intltool))) (inputs - `(("glib" ,glib) + `(("avahi" ,avahi) + ("glib" ,glib) ("json-glib" ,json-glib) ("libsoup" ,libsoup))) (home-page "http://freedesktop.org/wiki/Software/GeoClue/") -- cgit v1.2.3 From ba666b07ea50d21e907f7152510a734dd844e169 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 27 Apr 2016 21:52:27 +0800 Subject: Revert "Revert "gnu: gjs: Skip test_utf8_inout test."" This reverts commit c4eefd63fac3aff1d39e59af1668701630558179. --- gnu/packages/gnome.scm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 58de21294c..3bd5c95e22 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3917,6 +3917,12 @@ (define-public gjs (lambda _ ;; For the missing /etc/machine-id. (setenv "DBUS_FATAL_WARNINGS" "0") + + ;; XXX: fails with: + ;; Failed to convert UTF-8 string to JS string: ... + ;; TODO: actually fix it. + (substitute* "installed-tests/js/testEverythingBasic.js" + ((".*test_utf8_inout.*") "")) #t))))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-resources -- cgit v1.2.3 From 33cd9bef2c2715c21601ef7dde479df84aa2e7ec Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 27 Apr 2016 22:04:38 +0800 Subject: gnu: gedit: Fix build by passing '--disable-spell'. * gnu/packages/gnome.scm (gedit)[arguments]: Pass '--disable-spell' to configure. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 3bd5c95e22..81a683602e 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3960,7 +3960,8 @@ (define-public gedit "1i0x1jd9x1vpv8lwdlzwf0ml8jxh3b3l6nlg6pbnfjw47w3y6iws")))) (build-system glib-or-gtk-build-system) (arguments - `(#:phases + `(#:configure-flags '("--disable-spell") ; XXX: gspell not packaged yet + #:phases (modify-phases %standard-phases (add-after 'install 'wrap-gedit @@ -3987,7 +3988,6 @@ (define-public gedit ("gtksourceview" ,gtksourceview) ("libpeas" ,libpeas) ("libxml2" ,libxml2) - ("enchant" ,enchant) ("iso-codes" ,iso-codes) ("python-pygobject" ,python-pygobject) ("python" ,python) -- cgit v1.2.3 From ba470833c2d675f6f0a8202f6962a42ad18f57bd Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 27 Apr 2016 18:17:25 +0200 Subject: gnu: gtkmm: Run Xvfb for tests. * gnu/packages/gtk.scm (gtkmm)[arguments]: New field. --- gnu/packages/gtk.scm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index f31a510504..432371133a 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -916,13 +916,26 @@ (define-public gtkmm "12h2kd22iayvjfhmgjccm33igrbvqdj7hym31fsa1y0dhwzmf8gh")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) - ("glib" ,glib "bin"))) ;for 'glib-compile-resources' + ("glib" ,glib "bin") ;for 'glib-compile-resources' + ("xorg-server" ,xorg-server))) (propagated-inputs `(("pangomm" ,pangomm) ("cairomm" ,cairomm) ("atkmm" ,atkmm) ("gtk+" ,gtk+) ("glibmm" ,glibmm))) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'check 'run-xvfb + (lambda* (#:key inputs #:allow-other-keys) + (let ((xorg-server (assoc-ref inputs "xorg-server"))) + ;; Tests such as 'object_move/test' require a running + ;; X server. + (system (string-append xorg-server "/bin/Xvfb :1 &")) + (setenv "DISPLAY" ":1") + ;; Don't fail because of the missing /etc/machine-id. + (setenv "DBUS_FATAL_WARNINGS" "0") + #t)))))) (home-page "http://gtkmm.org/") (synopsis "C++ interface to the GTK+ graphical user interface library") -- cgit v1.2.3 From d998508227b481b9061ed1b378033c34bc3b3a24 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 08:52:36 +0800 Subject: gnu: pango: Update to 1.40.1. * gnu/packages/gtk.scm (pango): Update to 1.40.1. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 432371133a..f234fc339b 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -185,7 +185,7 @@ (define-public harfbuzz (define-public pango (package (name "pango") - (version "1.40.0") + (version "1.40.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/pango/" @@ -193,7 +193,7 @@ (define-public pango name "-" version ".tar.xz")) (sha256 (base32 - "12qwa748wyady16xxdq5rqz9gki1kksj8m5bcv80gjqlydfrh5ys")))) + "0h0sbh0b5kh3lvrxrb82bs86rqakf33a9jakpv33lay7f90zayp2")))) (build-system gnu-build-system) (propagated-inputs `(("cairo" ,cairo) -- cgit v1.2.3 From b67e35e21b7ef3a1aee04828c8f44745cb2d7a3d Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 08:53:13 +0800 Subject: gnu: at-spi2-core: Update to 2.20.1. * gnu/packages/gtk.scm (at-spi2-core): Update to 2.20.1. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index f234fc339b..2520007c79 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -468,7 +468,7 @@ (define-public gdk-pixbuf+svg (define-public at-spi2-core (package (name "at-spi2-core") - (version "2.20.0") + (version "2.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -476,7 +476,7 @@ (define-public at-spi2-core name "-" version ".tar.xz")) (sha256 (base32 - "16v09iwnd3895fshsvsci836dar21c8y9w8zn882jn4fq2vrzi6w")))) + "0039y6bj1zfzhmfjbj5g830dlczphbpvbgmkcab9mapmh7kmin3f")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments -- cgit v1.2.3 From f507609eaca6e072600a4b0f3cc1365242f8d386 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 08:53:42 +0800 Subject: gnu: at-spi2-atk: Update to 2.20.1. * gnu/packages/gtk.scm (at-spi2-atk): Update to 2.20.1. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 2520007c79..68bba268f6 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -513,7 +513,7 @@ (define-public at-spi2-core (define-public at-spi2-atk (package (name "at-spi2-atk") - (version "2.20.0") + (version "2.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -521,7 +521,7 @@ (define-public at-spi2-atk name "-" version ".tar.xz")) (sha256 (base32 - "1lis9zj4r3d5ff3chs0r93gjkbp0wgflfx35gbax47cgdqmi8jx2")))) + "13mzfwra0izmkzn7dsdgy5zj19n8izp0wdy7w1yg9s0qx6aafn13")))) (build-system gnu-build-system) (arguments '(#:phases -- cgit v1.2.3 From ccce435a9300f206edc97db56cf13e32d4f38e22 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 08:55:10 +0800 Subject: gnu: gtk+: Update to 3.20.3. * gnu/packages/gtk.scm (gtk+): Update to 3.20.3. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 68bba268f6..f881584b91 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -610,7 +610,7 @@ (define-public gtk+-2 (define-public gtk+ (package (inherit gtk+-2) (name "gtk+") - (version "3.20.2") + (version "3.20.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -618,7 +618,7 @@ (define-public gtk+ name "-" version ".tar.xz")) (sha256 (base32 - "1xv97zrngf47hyrxz7rfrdl5xpv4y61rkmipyi300pm5iq3d3c8s")) + "157nh9gg0p2avw765hrnkvr8lsh2w811397yxgjv6q5j4fzz6d1q")) (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch")))) (propagated-inputs `(("at-spi2-atk" ,at-spi2-atk) -- cgit v1.2.3 From 96e889b031b0c0b51f9b2dfbae8e38f1008c473f Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 08:59:49 +0800 Subject: gnu: gtksourceview: Update to 3.20.2. * gnu/packages/gtk.scm (gtksourceview): Update to 3.20.2. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index f881584b91..5b901b90af 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -339,7 +339,7 @@ (define-public gtksourceview-2 (define-public gtksourceview (package (name "gtksourceview") - (version "3.20.1") + (version "3.20.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -347,7 +347,7 @@ (define-public gtksourceview name "-" version ".tar.xz")) (sha256 (base32 - "0k4cmq94181l39di9z4agampg4za6bvimkvcjm3qlxmsxb09ab9j")))) + "03vxirdbjpgjrkl5ph0p9b1saq17xxr4kvhz1ijpg40a9jf3ci4y")))) (build-system gnu-build-system) (arguments '(#:phases -- cgit v1.2.3 From 3f57959caa9cb98023ffd24f50b4f329c223eaa0 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 09:00:23 +0800 Subject: gnu: gtkmm: Update to 3.20.1. * gnu/packages/gtk.scm (gtkmm): Update to 3.20.1. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 5b901b90af..7e81a81986 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -905,7 +905,7 @@ (define-public atkmm (define-public gtkmm (package (name "gtkmm") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -913,7 +913,7 @@ (define-public gtkmm name "-" version ".tar.xz")) (sha256 (base32 - "12h2kd22iayvjfhmgjccm33igrbvqdj7hym31fsa1y0dhwzmf8gh")))) + "04n631a127pyidaz82ypdy9syq1hzj636r32y9hyr9kcfnwf2785")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("glib" ,glib "bin") ;for 'glib-compile-resources' -- cgit v1.2.3 From ab740c7f2eb8257a9cdc4267731caa760936736e Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 09:43:35 +0800 Subject: gnu: gnome-desktop: Update to 3.20.1. * gnu/packages/gnome.scm (gnome-desktop): Update to 3.20.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 81a683602e..c15c195ef0 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -188,7 +188,7 @@ (define-public gnome-common (define-public gnome-desktop (package (name "gnome-desktop") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) @@ -197,7 +197,7 @@ (define-public gnome-desktop name "-" version ".tar.xz")) (sha256 (base32 - "13dhvax8fy9qkna4dphb7b5fxn3dsk818p3q8b92a7nrrwcgiiqq")))) + "0h6185lmkaf49dr43pb6gsb9yi25rc32n7dq5186hwln38mppb3f")))) (build-system gnu-build-system) (native-inputs `(("gobject-introspection" ,gobject-introspection) -- cgit v1.2.3 From b8f551d91f6088b26f23b673810b5c87821eb349 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 09:45:40 +0800 Subject: gnu: vte: Update to 0.44.1. * gnu/packages/gnome.scm (vte): Update to 0.44.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index c15c195ef0..6c979e0ef2 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1724,7 +1724,7 @@ (define-public vala (define-public vte (package (name "vte") - (version "0.44.0") + (version "0.44.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1732,7 +1732,7 @@ (define-public vte name "-" version ".tar.xz")) (sha256 (base32 - "1ahjxysiv38q91gfq2wddcbvndlggfr8ynls25m42pw83akv38wk")))) + "0kjxzqcwqxky0l7bl8ydn9hl6fm1f0k2pl91wbbhyq4z6d4dabbi")))) (build-system gnu-build-system) (arguments ;; XXX: fails to compile tests with the default flags. -- cgit v1.2.3 From 7958a55d6fef9f1858ae2c2e9156d6d86a5dbb74 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 09:51:01 +0800 Subject: gnu: glib-networking: Update to 2.48.1. * gnu/packages/gnome.scm (glib-networking): Update to 2.48.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 6c979e0ef2..39655fe913 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1969,7 +1969,7 @@ (define-public python2-rsvg (define-public glib-networking (package (name "glib-networking") - (version "2.48.0") + (version "2.48.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/glib-networking/" @@ -1977,7 +1977,7 @@ (define-public glib-networking name "-" version ".tar.xz")) (sha256 (base32 - "094hwgnaqm0c7ggyqc9rk2603k5r9vqs3f1d9vwpmfapww9367vs")) + "0jm4pr91kbq7rcyll08840zkagb9vfhhm2ymyrd1q0b0k2mj76fg")) (patches (search-patches "glib-networking-ssl-cert-file.patch")))) (build-system gnu-build-system) -- cgit v1.2.3 From 90000d4b94ce3f7bd1441046316efe292122440e Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 09:51:39 +0800 Subject: gnu: rest: Update to 0.8.0. * gnu/packages/gnome.scm (rest): Update to 0.8.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 39655fe913..b56aab6858 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2017,7 +2017,7 @@ (define-public glib-networking (define-public rest (package (name "rest") - (version "0.7.93") + (version "0.8.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/rest/" @@ -2025,7 +2025,7 @@ (define-public rest name "-" version ".tar.xz")) (sha256 (base32 - "05mj10hhiik23ai8w4wkk5vhsp7hcv24bih5q3fl82ilam268467")))) + "0iznvzhab1jq9z3nwy97dh2pid9azwkqm7kkxwx0f5ql1hh9pf77")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; tests require internet connection -- cgit v1.2.3 From a28bf6b4fe560b6eb6bcacc79ffd52d001c12e6f Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 09:53:54 +0800 Subject: gnu: libsoup: Update to 2.54.1. * gnu/packages/gnome.scm (libsoup): Update to 2.54.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index b56aab6858..2b18f39148 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2051,7 +2051,7 @@ (define-public rest (define-public libsoup (package (name "libsoup") - (version "2.54.0.1") + (version "2.54.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/libsoup/" @@ -2059,7 +2059,7 @@ (define-public libsoup name "-" version ".tar.xz")) (sha256 (base32 - "1q1qds87qya5cbx4jfcmf1v8fvb86p0wsjnhj246w0xxcq0r5r5d")))) + "0cyn5pq4xl1gb8413h2p4d5wrn558dc054zhwmk4swrl40ijrd27")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments -- cgit v1.2.3 From 319549c242ef11a7e6868567ed1d8ec4954aa700 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 09:54:35 +0800 Subject: gnu: gnome-sudoku: Update to 3.20.0. * gnu/packages/gnome.scm (gnome-sudoku): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 2b18f39148..e942a89602 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2206,7 +2206,7 @@ (define-public gnome-mines (define-public gnome-sudoku (package (name "gnome-sudoku") - (version "3.18.2") + (version "3.20.0") (source (origin (method url-fetch) @@ -2215,7 +2215,7 @@ (define-public gnome-sudoku name "-" version ".tar.xz")) (sha256 (base32 - "1b60z22fjrjzsz0kfhv0kfhvigzn54wvh9s31zrlp7sx2h2dxvsf")))) + "1n8hp3pl56p9s0c5kldk11zg1vg7ykhgn3ndp8nf375h1q49ldh8")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) -- cgit v1.2.3 From e3cf0c71f1c6947f14c4a58b11665bd10d9cb023 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 09:55:10 +0800 Subject: gnu: gnome-terminal: Update to 3.20.1. * gnu/packages/gnome.scm (gnome-terminal): Update to 3.20.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index e942a89602..ff06f5ed28 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2241,7 +2241,7 @@ (define-public gnome-sudoku (define-public gnome-terminal (package (name "gnome-terminal") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) @@ -2250,7 +2250,7 @@ (define-public gnome-terminal name "-" version ".tar.xz")) (sha256 (base32 - "0l21xcc2g56wkq83wq5wnrah2gwckqxnfgpqavhkrsd47jyzdrrg")))) + "1508nm35znlfq9v1s2j4ypx5x608yq391c565b4hazxk2f5z9dwq")))) (build-system glib-or-gtk-build-system) (arguments '(#:configure-flags -- cgit v1.2.3 From 3ffd46bdaf5db605ad99ada5df57cf09b2f8e390 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 09:55:44 +0800 Subject: gnu: geocode-glib: Update to 3.20.1. * gnu/packages/gnome.scm (geocode-glib): Update to 3.20.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index ff06f5ed28..bff17d1301 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2401,7 +2401,7 @@ (define-public geoclue (define-public geocode-glib (package (name "geocode-glib") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/geocode-glib/" @@ -2409,7 +2409,7 @@ (define-public geocode-glib name "-" version ".tar.xz")) (sha256 (base32 - "1fmn3gmifq8jbgnpv8jj33n4glpb5djjrfk0l9fak0cliqin88jz")))) + "18iphsx3bybw7lssbb7rxc1rrnsc8vxai521zkqc535zr8rci7v6")))) (build-system gnu-build-system) (arguments `(;; The tests want to write to $HOME/.cache/geocode-glib, which doesn't -- cgit v1.2.3 From 35907ce11c46e1ee8c119170e21a6f868a3a2697 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 09:56:11 +0800 Subject: gnu: gnome-settings-daemon: Update to 3.20.1. * gnu/packages/gnome.scm (gnome-settings-daemon): Update to 3.20.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index bff17d1301..c7edb97608 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2542,7 +2542,7 @@ (define-public libgweather (define-public gnome-settings-daemon (package (name "gnome-settings-daemon") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) @@ -2551,7 +2551,7 @@ (define-public gnome-settings-daemon name "-" version ".tar.xz")) (sha256 (base32 - "0v1c2vnpqw5pvx62jxvjfa2g5k29yx04vz35awqi943gasrl0bmv")))) + "1rvqisrh3lridsb8rvm7spvncyq206ly0245zgpbm8swi5fhfjp8")))) (build-system glib-or-gtk-build-system) (arguments `(;; Network manager not yet packaged. -- cgit v1.2.3 From 41150c7d8a07f43e1e55112fc9dcae02fd7a0499 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 09:56:45 +0800 Subject: gnu: gnome-klotski: Update to 3.20.1. * gnu/packages/gnome.scm (gnome-klotski): Update to 3.20.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index c7edb97608..182fba6954 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2940,7 +2940,7 @@ (define-public gom (define-public gnome-klotski (package (name "gnome-klotski") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2948,7 +2948,7 @@ (define-public gnome-klotski name "-" version ".tar.xz")) (sha256 (base32 - "00hs3ci8swmq12rmgidy7rf3ql9isbklhn114v8rzdfs46y5dzkp")))) + "1130v6sk9h74b3xgv0bq43anaw7xs9x8vdab3q7p9db6w0px02wj")))) (build-system glib-or-gtk-build-system) (native-inputs `(("desktop-file-utils" ,desktop-file-utils) -- cgit v1.2.3 From 88e88997e5c17de4d74bf718bab5fff165df1c84 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 09:57:27 +0800 Subject: gnu: totem: Update to 3.20.1. * gnu/packages/gnome.scm (totem): Update to 3.20.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 182fba6954..e051d19c95 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3074,7 +3074,7 @@ (define-public grilo-plugins (define-public totem (package (name "totem") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) @@ -3083,7 +3083,7 @@ (define-public totem name "-" version ".tar.xz")) (sha256 (base32 - "1pq3fg4778qrylkg6lc4jcb3gvm46n5y7mfn26iihi23aj844yq7")))) + "09swnhp46cyy2svqx02fzy555pjgc61lyjw56v9rz1mfc41lh8kg")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) -- cgit v1.2.3 From 3afeb02c5172ded5d7bc94e9bf51856049ad6875 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 09:58:32 +0800 Subject: gnu: eog: Update to 3.20.1. * gnu/packages/gnome.scm (eog): Update to 3.20.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index e051d19c95..29212d17cc 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3240,7 +3240,7 @@ (define-public rhythmbox (define-public eog (package (name "eog") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3248,7 +3248,7 @@ (define-public eog name "-" version ".tar.xz")) (sha256 (base32 - "0avy7sss6rf659rxipvp3gbqw083liq627lxjpfp1ij34hbmqwfv")))) + "0ll3vz1kyjagiqmrpypk1a4nwjhrjsapiz45bxblsjxjy641j0jg")))) (build-system glib-or-gtk-build-system) (arguments `(#:phases -- cgit v1.2.3 From ddfa9131b80f1708ba634130d695517c73dc880b Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 09:58:59 +0800 Subject: gnu: gvfs: Update to 1.28.1. * gnu/packages/gnome.scm (gvfs): Update to 1.28.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 29212d17cc..98901aabeb 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3318,7 +3318,7 @@ (define-public libgudev (define-public gvfs (package (name "gvfs") - (version "1.28.0") + (version "1.28.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3326,7 +3326,7 @@ (define-public gvfs name "-" version ".tar.xz")) (sha256 (base32 - "017pynx7rfrhgvg904kwxdw9dc26zb0v7ymkspm059qcvw5gqwng")))) + "16bry61hg681bwb0pih86cjayzvc5f89ip5xd8fydcy16nnfbksf")))) (build-system gnu-build-system) (arguments '(#:tests? #f)) ; XXX: requiring `pidof' -- cgit v1.2.3 From c51555f414748d12f28d84abc26d005b8034adcc Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 09:59:26 +0800 Subject: gnu: epiphany: Update to 3.20.1. * gnu/packages/gnome.scm (epiphany): Update to 3.20.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 98901aabeb..c935c3975b 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3470,7 +3470,7 @@ (define-public simple-scan (define-public epiphany (package (name "epiphany") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3478,7 +3478,7 @@ (define-public epiphany name "-" version ".tar.xz")) (sha256 (base32 - "0x09dfc0zdxw93g1dcmxqpvy9vnv94bd27sfq23ix31z6i9fcs63")))) + "1ry9z6d51gjbv5n8kspwdyfrdai2hrin2ixdicmyiq6xbryzcwbi")))) (build-system glib-or-gtk-build-system) (arguments ;; FIXME: tests run under Xvfb, but fail with: -- cgit v1.2.3 From 27ad574333445c9d46dbfd4f143c23da2526a891 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 09:59:51 +0800 Subject: gnu: yelp-xsl: Update to 3.20.1. * gnu/packages/gnome.scm (yelp-xsl): Update to 3.20.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index c935c3975b..e52aa9739b 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3576,7 +3576,7 @@ (define-public d-feet (define-public yelp-xsl (package (name "yelp-xsl") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3584,7 +3584,7 @@ (define-public yelp-xsl name "-" version ".tar.xz")) (sha256 (base32 - "0j288fw7bqbswl2vk73ihs0ngky0b3p8k1yy5lrxfh1whn3phclz")))) + "183vz4aw8fcmw8k8q7r4zrm1p76gwg2cca1fsdrkaiyabng88qfw")))) (build-system gnu-build-system) (native-inputs `(("intltool" ,intltool) -- cgit v1.2.3 From b8967d48613c38fc02400829ae2460cf17e346a5 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 10:00:28 +0800 Subject: gnu: yelp: Update to 3.20.1. * gnu/packages/gnome.scm (yelp): Update to 3.20.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index e52aa9739b..6abb89d21f 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3600,7 +3600,7 @@ (define-public yelp-xsl (define-public yelp (package (name "yelp") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3608,7 +3608,7 @@ (define-public yelp name "-" version ".tar.xz")) (sha256 (base32 - "0g404njlgr38nif9hb3krybavk56wplkafxvfibcg68iqp9465dz")))) + "1hh8yqbv0scn9nksk9mq94cb4sdczlzxplclv2wqr41jmm8v186x")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc. -- cgit v1.2.3 From f8b446caa9b4cd130dc6dbca908f88bcab2e8121 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 10:00:53 +0800 Subject: gnu: shotwell: Update to 0.22.1. * gnu/packages/gnome.scm (shotwell): Update to 0.22.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 6abb89d21f..f53482fb35 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3731,7 +3731,7 @@ (define-public gexiv2 (define-public shotwell (package (name "shotwell") - (version "0.22.0") + (version "0.22.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3739,7 +3739,7 @@ (define-public shotwell name "-" version ".tar.xz")) (sha256 (base32 - "0cgqaaikrb10plhf6zxbgqy32zqpiwyi9dpx3g8yr261q72r5c81")))) + "1a9lx9a7p6fgaf838xlw98f73xxyxmg6jmm29830lsl8ynbhq9bk")))) (build-system glib-or-gtk-build-system) (arguments `(#:tests? #f ;no "check" target -- cgit v1.2.3 From 74cf8f6cf92387272c452102f862809160cda8aa Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 10:03:11 +0800 Subject: gnu: file-roller: Update to 3.20.1. * gnu/packages/gnome.scm (file-roller): Update to 3.20.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index f53482fb35..6941a901a5 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3786,7 +3786,7 @@ (define-public shotwell (define-public file-roller (package (name "file-roller") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3794,7 +3794,7 @@ (define-public file-roller name "-" version ".tar.xz")) (sha256 (base32 - "1a5598zyzdhdyk7sq59h8hqrjlacxw6wfdmgi0cs5kvbzjr9jnhq")))) + "0cx3d8mp0pxz9wcsb2ph7g1zy22m8z5x0a4f5vgfzl0jmrcxpcy8")))) (build-system glib-or-gtk-build-system) (native-inputs `(("intltool" ,intltool) -- cgit v1.2.3 From 803ab4164da2f464714e4199342380d1960445fc Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 10:04:52 +0800 Subject: gnu: gnome-session: Update to 3.20.1, fix build. * gnu/packages/gnome.scm (gnome-session): Update to 3.20.1. [arguments]: Remove use of systemd in 'gsm-autostart-app.c.'. --- gnu/packages/gnome.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 6941a901a5..54984f1a32 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3819,7 +3819,7 @@ (define-public file-roller (define-public gnome-session (package (name "gnome-session") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3827,7 +3827,7 @@ (define-public gnome-session name "-" version ".tar.xz")) (sha256 (base32 - "0d0v60lmvr8wbrswfpc4f4jg2dhxj6nkgv7wnwdf2zifk8vp5zv6")))) + "04w90gyl0kdx5vwmdcgfdk3qr9xhip00vgpgzci151agqwyzbs9a")))) (arguments '(#:phases (modify-phases %standard-phases @@ -3846,6 +3846,8 @@ (define-public gnome-session (("#ifdef HAVE_SYSTEMD") "#if 0")) (substitute* "gnome-session/gsm-manager.c" (("#ifdef HAVE_SYSTEMD") "#if 0")) + (substitute* "gnome-session/gsm-autostart-app.c" + (("#ifdef HAVE_SYSTEMD") "#if 0")) #t)) (add-after 'install 'wrap-gnome-session (lambda* (#:key inputs outputs #:allow-other-keys) -- cgit v1.2.3 From 4a8573ad62fc39383e686566e8704e7ae224ed36 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 10:05:23 +0800 Subject: gnu: mutter: Update to 3.20.1. * gnu/packages/gnome.scm (mutter): Update to 3.20.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 54984f1a32..da3cf152b9 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4035,7 +4035,7 @@ (define-public zenity (define-public mutter (package (name "mutter") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4043,7 +4043,7 @@ (define-public mutter name "-" version ".tar.xz")) (sha256 (base32 - "1x8nhnili1bq3pnrvr3jsgchcz36jzi9infrbr3gplwxnsbx4i2n")))) + "0752vkkmaaay8ziczqrf7z3735bq3brx2djw36arqsdhwawh6jba")))) (build-system gnu-build-system) (arguments '(#:configure-flags -- cgit v1.2.3 From 223f5d5d0f306fa3478fed694f4b9338db8c43e2 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 10:05:57 +0800 Subject: gnu: gnome-online-accounts: Update to 3.20.1. * gnu/packages/gnome.scm (gnome-online-accounts): Update to 3.20.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index da3cf152b9..155cbcbb51 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4085,7 +4085,7 @@ (define-public mutter (define-public gnome-online-accounts (package (name "gnome-online-accounts") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4093,7 +4093,7 @@ (define-public gnome-online-accounts name "-" version ".tar.xz")) (sha256 (base32 - "0q546q65ba537dbxqnvs27x6pvhvi394v43kihgw4pa59j8k70n9")))) + "14qcih1g136sn2aklzagv83jl82d3qc598rkdm8zac9gw70ynyn3")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. -- cgit v1.2.3 From c1387d3689fa7ec9b7e87ea65537231310b08fec Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 10:06:31 +0800 Subject: gnu: evolution-data-server: Update to 3.20.1, fix build. * gnu/packages/gnome.scm (evlution-data-server): Update to 3.20.1. [arguments]: Pass '--disable-google-auth' to configure. --- gnu/packages/gnome.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 155cbcbb51..be28f7edf0 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4123,7 +4123,7 @@ (define-public gnome-online-accounts (define-public evolution-data-server (package (name "evolution-data-server") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4131,7 +4131,7 @@ (define-public evolution-data-server name "-" version ".tar.xz")) (sha256 (base32 - "0jsgzahaha6bxrm15da7c32m8ksnmx9rfm7xdx99lbxhsm7yiwh5")))) + "0lsbhzacr2bs90z8sx44vf403r0h2yqsy4l2svrh5hjnassgdyqx")))) (build-system gnu-build-system) (arguments '(;; XXX: fails with: @@ -4143,6 +4143,7 @@ (define-public evolution-data-server (nspr (assoc-ref %build-inputs "nspr"))) (list "--disable-uoa" ; disable Ubuntu Online Accounts support "--disable-google" ; disable Google Contacts support + "--disable-google-auth" ; disable Google authentication (string-append "--with-nspr-includes=" nspr "/include/nspr") (string-append "--with-nss-includes=" nss "/include/nss") (string-append "--with-nss-libs=" nss "/lib/nss"))) -- cgit v1.2.3 From bbbb77e400975b5c4341bfeb93563dbecfccf90a Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 10:19:49 +0800 Subject: gnu: network-manager-applet: Update to 1.2.0. * gnu/packages/gnome.scm (network-manager-applet): Update to 1.2.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index be28f7edf0..286261d267 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4342,7 +4342,7 @@ (define-public network-manager (define-public network-manager-applet (package (name "network-manager-applet") - (version "1.0.10") + (version "1.2.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4350,7 +4350,7 @@ (define-public network-manager-applet name "-" version ".tar.xz")) (sha256 (base32 - "1szh5jyijxm6z55irkp5s44pwah0nikss40mx7pvpk38m8zaqidh")))) + "0dhvk3dvy6djn6blpkv46dn6yfh28wsh6mpl0v53qxfip97j8kwk")))) (build-system glib-or-gtk-build-system) (arguments '(#:configure-flags '("--disable-migration"))) (native-inputs -- cgit v1.2.3 From 906943dfd377a77564f1febb72d1d47f08b31e37 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 10:20:26 +0800 Subject: gnu: gdm: Update to 3.20.1. * gnu/packages/gnome.scm (gdm): Update to 3.20.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 286261d267..a1de99db3f 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4404,7 +4404,7 @@ (define-public libxml++ (define-public gdm (package (name "gdm") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4412,7 +4412,7 @@ (define-public gdm name "-" version ".tar.xz")) (sha256 (base32 - "1hnkv4j4m6z9l2y1rzxn674ir34k57apz1ybr15m11ksn05vlky6")))) + "17vqcnqnwx7s5xzgn358gsgbmpz7k90sh1qrwrh3wnj5r0pm38hh")))) (build-system gnu-build-system) (arguments '(#:configure-flags -- cgit v1.2.3 From 8b6b7c73617b3f066de09300eedd3b0851e1a5de Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 10:20:52 +0800 Subject: gnu: gnome-control-center: Update to 3.20.1. * gnu/packages/gnome.scm (gnome-control-center): Update to 3.20.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index a1de99db3f..2d43ac03da 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4524,7 +4524,7 @@ (define-public gnome-bluetooth (define-public gnome-control-center (package (name "gnome-control-center") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4532,7 +4532,7 @@ (define-public gnome-control-center name "-" version ".tar.xz")) (sha256 (base32 - "10yncjq5hmaqbr8kjf8s729kn11as705vfx32nxahi7229v31rxp")))) + "1vd1h31vwyq7ss5f1151gx1vdsy35sjmapjmmz7x73ppc3y78r6f")))) (build-system glib-or-gtk-build-system) (arguments '(#:phases -- cgit v1.2.3 From 82ab76474d73a9c3e2d5b4ca8600e1f23885d277 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 10:21:25 +0800 Subject: gnu: gnome-shell: Update to 3.20.1. * gnu/packages/gnome.scm (gnome-shell): Update to 3.20.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 2d43ac03da..1b6b165316 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4594,7 +4594,7 @@ (define-public gnome-control-center (define-public gnome-shell (package (name "gnome-shell") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4602,7 +4602,7 @@ (define-public gnome-shell name "-" version ".tar.xz")) (sha256 (base32 - "125qjrbw40r8rpri9y0yrl5yqs2q4x0l5inzi3vwl0rxvmhz8sgf")))) + "08cgbr15cim3rgcngrv98rm48pkdxwj4nqx5za1lsnv376m4x5bs")))) (build-system glib-or-gtk-build-system) (arguments '(#:phases -- cgit v1.2.3 From 758da0fe8eb2a03431f37816e1d578bf72c21940 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 10:22:15 +0800 Subject: gnu: baobab: Update to 3.20.1. * gnu/packages/gnome.scm (baobab): Update to 3.20.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 1b6b165316..00a445a0e9 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4759,7 +4759,7 @@ (define-public nautilus (define-public baobab (package (name "baobab") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append @@ -4768,7 +4768,7 @@ (define-public baobab name "-" version ".tar.xz")) (sha256 (base32 - "01vxc9z87i2dsvydm6p1sh4m7bpbggy70q9bx6pxz707hyr6bpaw")))) + "07wx4jb3nmipd4caybv21hl8h0gb282qc5a24b731mxhfqmg3pz9")))) (build-system glib-or-gtk-build-system) (native-inputs `(("intltool" ,intltool) -- cgit v1.2.3 From 0ddba7070771baee03745e9756fc4faefcf37701 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 10:22:48 +0800 Subject: gnu: dconf-editor: Update to 3.20.1. * gnu/packages/gnome.scm (dconf-editor): Update to 3.20.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 00a445a0e9..0cc5ced1d2 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4850,7 +4850,7 @@ (define-public gnome-screenshot (define-public dconf-editor (package (name "dconf-editor") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) @@ -4859,7 +4859,7 @@ (define-public dconf-editor name "-" version ".tar.xz")) (sha256 (base32 - "0q57wmlab01rmwbwlih5mh9fa1nwc2abfz0vl374lkljw9acim13")))) + "0pfpmvpv57a01nsd1fah3np33avihm5ic43fi6b60dyw6c5z953p")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0. -- cgit v1.2.3 From f3045a5ba3da10bc971075ea206e55e8d21f5422 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 12:13:26 +0800 Subject: gnu: librsvg: Drop 'loaders.cache' file. This is a followup to 05c4b7e93. * gnu/packages/gnome.scm (librsvg)[arguments]: Don't install 'loaders.cache' file. * gnu/packages/gnome.scm (gnome-themes-standard), gnu/packages/key-mon.scm (keymon), gnu/packages/music.scm (solfege): Remove wrap phase for SVG support. --- gnu/packages/gnome.scm | 34 ++++------------------------------ gnu/packages/key-mon.scm | 13 ------------- gnu/packages/music.scm | 12 +++--------- 3 files changed, 7 insertions(+), 52 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 0cc5ced1d2..2d7c206f8f 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -880,7 +880,7 @@ (define-public librsvg (arguments `(#:phases (alist-cons-before - 'configure 'augment-gir-search-path + 'configure 'pre-configure (lambda* (#:key inputs #:allow-other-keys) (substitute* "gdk-pixbuf-loader/Makefile.in" ;; By default the gdk-pixbuf loader is installed under @@ -889,24 +889,10 @@ (define-public librsvg (string-append "gdk_pixbuf_moduledir = " "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/" "loaders\n")) - ;; Likewise, create a separate 'loaders.cache' file. + ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg. (("gdk_pixbuf_cache_file = .*$") - "gdk_pixbuf_cache_file = $(gdk_pixbuf_moduledir).cache\n"))) - (alist-cons-after - 'install 'generate-full-cache - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((loaders-directory - (string-append (assoc-ref outputs "out") - "/lib/gdk-pixbuf-2.0/2.10.0/loaders"))) - (zero? - (system - (string-append - "gdk-pixbuf-query-loaders " - loaders-directory "/libpixbufloader-svg.so " - (string-join (find-files (assoc-ref inputs "gdk-pixbuf") - "libpixbufloader-.*\\.so") " ") - "> " loaders-directory ".cache"))))) - %standard-phases)))) + "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))) + %standard-phases))) (native-inputs `(("pkg-config" ,pkg-config) ("glib" ,glib "bin") ; glib-mkenums, etc. @@ -1627,18 +1613,6 @@ (define-public gnome-themes-standard `(("intltool" ,intltool) ("glib:bin" ,glib "bin") ("pkg-config" ,pkg-config))) - (arguments - `(#:phases - (alist-cons-before - 'build 'use-full-cache - ;; Use librsvg's loaders.cache instead of the one provided by - ;; gdk-pixbuf because the latter does not include support for SVG - ;; files. - (lambda* (#:key inputs #:allow-other-keys) - (setenv "GDK_PIXBUF_MODULE_FILE" - (car (find-files (assoc-ref inputs "librsvg") - "loaders\\.cache")))) - %standard-phases))) (home-page "https://launchpad.net/gnome-themes-standard") (synopsis "Default GNOME 3 themes") (description diff --git a/gnu/packages/key-mon.scm b/gnu/packages/key-mon.scm index dbfee050a9..c76360ce08 100644 --- a/gnu/packages/key-mon.scm +++ b/gnu/packages/key-mon.scm @@ -41,25 +41,12 @@ (define-public key-mon (build-system python-build-system) (arguments `(#:python ,python-2 ;uses the Python 2 'print' syntax - #:phases (modify-phases %standard-phases - (add-after 'install 'wrap - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - (rsvg (assoc-ref inputs "librsvg")) - (pixbuf (find-files - rsvg "^loaders\\.cache$"))) - ;; Allow key-mon to load SVGs. - (wrap-program (string-append bin "/key-mon") - `("GDK_PIXBUF_MODULE_FILE" ":" - prefix ,pixbuf)))))) #:tests? #f)) ;no tests (native-inputs `(("python2-setuptools" ,python2-setuptools))) (inputs `(("python2-xlib" ,python2-xlib) ("python2-pygtk" ,python2-pygtk) - ("librsvg" ,librsvg) ("python2-rsvg" ,python2-rsvg))) (home-page "http://code.google.com/p/key-mon") (synopsis "Show keyboard and mouse status") diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 95f52c5dd6..346fefccdb 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -548,15 +548,11 @@ (define-public solfege (alist-cons-after 'install 'wrap-program (lambda* (#:key inputs outputs #:allow-other-keys) - ;; Make sure 'solfege' runs with the correct PYTHONPATH. We - ;; also need to modify GDK_PIXBUF_MODULE_FILE for SVG support. + ;; Make sure 'solfege' runs with the correct PYTHONPATH. (let* ((out (assoc-ref outputs "out")) - (path (getenv "PYTHONPATH")) - (rsvg (assoc-ref inputs "librsvg")) - (pixbuf (find-files rsvg "^loaders\\.cache$"))) + (path (getenv "PYTHONPATH"))) (wrap-program (string-append out "/bin/solfege") - `("PYTHONPATH" ":" prefix (,path)) - `("GDK_PIXBUF_MODULE_FILE" ":" prefix ,pixbuf)))) + `("PYTHONPATH" ":" prefix (,path))))) %standard-phases))))))) (inputs `(("python" ,python-2) @@ -564,8 +560,6 @@ (define-public solfege ("gettext" ,gnu-gettext) ("gtk" ,gtk+) ("lilypond" ,lilypond) - ("librsvg" ,librsvg) ; needed at runtime for icons - ("libpng" ,libpng) ; needed at runtime for icons ;; players needed at runtime ("aplay" ,alsa-utils) ("csound" ,csound) ; optional, needed for some exercises -- cgit v1.2.3 From 142bdcbc04712a51ab9b5766eeddd75122688936 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 16:24:51 +0800 Subject: gnu: network-manager: Update to 1.2.0. * gnu/packages/gnome.scm (network-manager): Update to 1.2.0. [inputs]: Add modem-manager. --- gnu/packages/gnome.scm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 2d7c206f8f..732afbba79 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4224,7 +4224,7 @@ (define-public caribou (define-public network-manager (package (name "network-manager") - (version "1.0.12") + (version "1.2.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/NetworkManager/" @@ -4232,7 +4232,7 @@ (define-public network-manager "NetworkManager-" version ".tar.xz")) (sha256 (base32 - "17jan0g5jzp8mrpklyacwdgnnw016m1c5pc4az5im6qhc260yirs")))) + "101axwk3bc1pm9m98vwrnxyjna6w0qgzaskgivldq69xz8qcyiz9")))) (build-system gnu-build-system) (outputs '("out" "doc")) ; 8 MiB of gtk-doc HTML @@ -4262,7 +4262,8 @@ (define-public network-manager ;; cope with being already in the Guix build jail as that jail ;; lacks some features that they would like to proxy over (like ;; a /sys mount). - (substitute* '("src/platform/Makefile.in") + (substitute* '("src/platform/Makefile.in" + "src/devices/Makefile.in") (("SUBDIRS = tests") "")) (substitute* '("src/tests/Makefile.in") (("\ttest-route-manager-linux") "\t") @@ -4277,7 +4278,8 @@ (define-public network-manager (lambda _ (zero? (system* "make" "sysconfdir=/tmp" - "localstatedir=/tmp" + "rundir=/tmp" + "statedir=/tmp" "install"))))))) (native-inputs `(("glib:bin" ,glib "bin") ; for gdbus-codegen @@ -4299,6 +4301,7 @@ (define-public network-manager ("libndp" ,libndp) ("libnl" ,libnl) ("libsoup" ,libsoup) + ("modem-manager" ,modem-manager) ("polkit" ,polkit) ("ppp" ,ppp) ("readline" ,readline) -- cgit v1.2.3 From 2ed6522ac3e188729ea7ce833f126f438697b4a5 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Fri, 29 Apr 2016 09:59:31 +0800 Subject: gnu: libpeas: Add inputs. * gnu/packages/gnome.scm (libpeas)[inputs]: Add glade, libxml2, python and python-pygobject. --- gnu/packages/gnome.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 732afbba79..24708e3f21 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -709,11 +709,11 @@ (define-public libpeas "09jy2rwwgp0xx7cnypxl56m7zzxnj3j4v58xqjxjasf3chn88jdz")))) (build-system gnu-build-system) (inputs - `(("atk" ,atk) - ("gdk-pixbuf" ,gdk-pixbuf) - ("glib" ,glib) - ("gtk+" ,gtk+) - ("pango" ,pango))) + `(("gtk+" ,gtk+) + ("glade" ,glade3) + ("libxml2" ,libxml2) ; XXX: required by gladeui-2.0.pc + ("python" ,python) + ("python-pygobject" ,python-pygobject))) (native-inputs `(("pkg-config" ,pkg-config) ("glib:bin" ,glib "bin") -- cgit v1.2.3 From afc25242a1a195fe197c626b8e4860e17a42cabd Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Fri, 29 Apr 2016 10:37:53 +0800 Subject: gnu: gedit: Enable Python Console plugin. * gnu/packages/gnome.scm (gedit)[arguments]: Wrap with PYTHONPATH. --- gnu/packages/gnome.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 24708e3f21..f54fd29305 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3944,9 +3944,12 @@ (define-public gedit (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) (gtksourceview (assoc-ref inputs "gtksourceview")) - (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) + (gi-typelib-path (getenv "GI_TYPELIB_PATH")) + (python-path (getenv "PYTHONPATH"))) (wrap-program (string-append out "/bin/gedit") + ;; For plugins. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)) + `("PYTHONPATH" ":" prefix (,python-path)) ;; For language-specs. `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview "/share"))))) -- cgit v1.2.3 From 5ed159c5e4319d9aae1eb041791f03dabf92a25a Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Fri, 29 Apr 2016 11:27:04 +0800 Subject: gnu: grilo: Update to 0.3.0. * gnu/packages/gnome.scm (grilo): Update to 0.3.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index f54fd29305..53c199fc57 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2945,7 +2945,7 @@ (define-public gnome-klotski (define-public grilo (package (name "grilo") - (version "0.2.15") + (version "0.3.0") (source (origin (method url-fetch) @@ -2954,7 +2954,7 @@ (define-public grilo name "-" version ".tar.xz")) (sha256 (base32 - "05b8sqfmywg45b9frya6xmw5l3c8vf5a1nhy51nyfs0a4n1japbg")))) + "0q5wcvnckpfks48hy0gvlfdmvqm67vnblm3912rssmkgc1ysil8z")))) (build-system gnu-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal -- cgit v1.2.3 From 924ae80f3d914f7609124ba6199c67e20572d8f3 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Fri, 29 Apr 2016 11:27:36 +0800 Subject: gnu: grilo-plugins: Update to 0.3.1. * gnu/packages/gnome.scm (grilo-plugins): Update to 0.3.1. [inputs]: Add nettle. --- gnu/packages/gnome.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 53c199fc57..7c1a2f9923 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2996,7 +2996,7 @@ (define-public grilo (define-public grilo-plugins (package (name "grilo-plugins") - (version "0.2.17") + (version "0.3.1") (source (origin (method url-fetch) @@ -3005,7 +3005,7 @@ (define-public grilo-plugins name "-" version ".tar.xz")) (sha256 (base32 - "109pf4sz320jiqs1nzszpj2flkwrgwfsm64kza24mxnxih4njxik")))) + "1akd7q6pqnkcnayrdfjb0qx5w5yyl06kxzwhqp2gxm4y1b208pb0")))) (build-system gnu-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal @@ -3014,6 +3014,7 @@ (define-public grilo-plugins ("pkg-config" ,pkg-config))) (inputs `(("grilo" ,grilo) + ("nettle" ,nettle) ; XXX: required by libgrlpls-0.3.la ("glib" ,glib) ("libxml2" ,libxml2) ("sqlite" ,sqlite) -- cgit v1.2.3 From a829a053e2a08472989e9646b890e10982a89bf4 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Fri, 29 Apr 2016 11:31:23 +0800 Subject: gnu: nautilus: Update to 3.20.1. * gnu/packages/gnome.scm (nautilus): Update to 3.20.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 7c1a2f9923..ea94582b41 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4695,7 +4695,7 @@ (define-public gtk-vnc (define-public nautilus (package (name "nautilus") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4703,7 +4703,7 @@ (define-public nautilus name "-" version ".tar.xz")) (sha256 (base32 - "14s234b4l7hsxng1n3kkj4c8sjsq2vl2l2fw0caqfxva9md9k9vw")))) + "1s41bsihacs7cywm60vqgv46m22gmga4b0bwxnki4r02jjwhgagj")))) (build-system glib-or-gtk-build-system) (arguments '(#:configure-flags -- cgit v1.2.3 From 05f651c4e972f11800ff904175c6357e7cf9bd25 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Fri, 29 Apr 2016 15:45:54 +0800 Subject: gnu: gnome: Add baobab, gnome-backgrounds and gvfs. * gnu/packages/gnome.scm (gnome)[propagated-inputs]: Add baobab, gnome-backgrounds and gvfs. --- gnu/packages/gnome.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index ea94582b41..056bd399f3 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4869,6 +4869,7 @@ (define-public gnome ;; TODO: Add more packages according to: ;; . `(("adwaita-icon-theme" ,adwaita-icon-theme) + ("baobab" ,baobab) ("font-cantarell" ,font-cantarell) ("at-spi2-core" ,at-spi2-core) ("dbus" ,dbus) @@ -4878,6 +4879,7 @@ (define-public gnome ("evince" ,evince) ("gedit" ,gedit) ("glib-networking" ,glib-networking) + ("gnome-backgrounds" ,gnome-backgrounds) ("gnome-control-center" ,gnome-control-center) ("gnome-keyring" ,gnome-keyring) ("gnome-session" ,gnome-session) @@ -4885,6 +4887,7 @@ (define-public gnome ("gnome-shell" ,gnome-shell) ("gnome-terminal" ,gnome-terminal) ("gnome-themes-standard" ,gnome-themes-standard) + ("gvfs" ,gvfs) ("hicolor-icon-theme" ,hicolor-icon-theme) ("nautilus" ,nautilus) ("pulseaudio" ,pulseaudio) -- cgit v1.2.3 From fc185ca65be3d6576de5c886a8ff52c28aa3b0a4 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Fri, 29 Apr 2016 15:59:48 +0800 Subject: gnu: udisks: Update to 2.1.7. * gnu/packages/freedesktop.scm (udisks): Update to 2.1.7. --- gnu/packages/freedesktop.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 24c4564689..0b4eca9a5a 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -338,14 +338,14 @@ (define-public libatasmart (define-public udisks (package (name "udisks") - (version "2.1.6") + (version "2.1.7") (source (origin (method url-fetch) (uri (string-append "https://udisks.freedesktop.org/releases/" name "-" version ".tar.bz2")) (sha256 (base32 - "0spl155k0g2l2hvqf8xyjv08i68gfyhzpjva6cwlzxx0bz4gbify")))) + "119pr2zbff8vkwlhghim7d7ir24c1dil9hp4q49wm4f6pnrjpbmb")))) (build-system gnu-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums -- cgit v1.2.3 From 616fc48f26d6302cf65358aa23a927909797dbeb Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Fri, 29 Apr 2016 16:36:41 +0800 Subject: gnu: gst-plugins-good: Disable a failing rtprtx test. * gnu/packages/gstreamer.scm (gst-plugins-good)[arguments]: Disable 'test_rtxreceive_data_reconstruction'. --- gnu/packages/gstreamer.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 97900958c8..483710f6fe 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -244,6 +244,9 @@ (define-public gst-plugins-good ;; XXX FIXME: Try removing this for version > 1.8.0. (substitute* "tests/check/elements/rtprtx.c" (("tcase_add_test \\(tc_chain, test_push_forward_seq\\);" all) + (string-append "/* " all " */")) + (("tcase_add_test \ +\\(tc_chain, test_rtxreceive_data_reconstruction\\);" all) (string-append "/* " all " */"))) (substitute* "tests/check/elements/splitmux.c" (("tcase_add_test \\(tc_chain, test_splitmuxsink\\);" all) -- cgit v1.2.3 From 842cb82097288265270db3228f8231676107a8b5 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 4 Feb 2016 15:33:07 +0800 Subject: profiles: Add xdg-desktop-database hook. * guix/profiles.scm (xdg-desktop-database): New function. (%default-profile-hooks): Add it. --- guix/profiles.scm | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index a3277cef71..c298bacdfc 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -686,13 +686,49 @@ (define build #:substitutable? #f) (return #f)))) +(define (xdg-desktop-database manifest) + "Return a derivation that builds the @file{mimeinfo.cache} database from +desktop files. It's used to query what applications can handle a given +MIME type." + (define desktop-file-utils + (module-ref (resolve-interface '(gnu packages gnome)) + 'desktop-file-utils)) + + (define build + #~(begin + (use-modules (srfi srfi-26) + (guix build utils) + (guix build union)) + (let* ((destdir (string-append #$output "/share/applications")) + (appdirs (filter file-exists? + (map (cut string-append <> + "/share/applications") + '#$(manifest-inputs manifest)))) + (update-desktop-database (string-append + #+desktop-file-utils + "/bin/update-desktop-database"))) + (mkdir-p (string-append #$output "/share")) + (union-build destdir appdirs + #:log-port (%make-void-port "w")) + (zero? (system* update-desktop-database destdir))))) + + ;; Don't run the hook when 'desktop-file-utils' is not installed. + (if (manifest-lookup manifest (manifest-pattern (name "desktop-file-utils"))) + (gexp->derivation "xdg-desktop-database" build + #:modules '((guix build utils) + (guix build union)) + #:local-build? #t + #:substitutable? #f) + (with-monad %store-monad (return #f)))) + (define %default-profile-hooks ;; This is the list of derivation-returning procedures that are called by ;; default when making a non-empty profile. (list info-dir-file ghc-package-cache-file ca-certificate-bundle - gtk-icon-themes)) + gtk-icon-themes + xdg-desktop-database)) (define* (profile-derivation manifest #:key -- cgit v1.2.3 From 6c06b1fdac1a00385e393e1ad4735212b3ab63ad Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 4 Feb 2016 15:35:03 +0800 Subject: profiles: Add xdg-mime-database hook. * guix/profiles.scm (xdg-mime-database): New function. (%default-profile-hooks): Add it. --- guix/profiles.scm | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index c298bacdfc..93d03ce959 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -721,6 +721,42 @@ (define build #:substitutable? #f) (with-monad %store-monad (return #f)))) +(define (xdg-mime-database manifest) + "Return a derivation that builds the @file{mime.cache} database from manifest +entries. It's used to query the MIME type of a given file." + (define shared-mime-info + (module-ref (resolve-interface '(gnu packages gnome)) + 'shared-mime-info)) + + (define build + #~(begin + (use-modules (srfi srfi-26) + (guix build utils) + (guix build union)) + (let* ((datadir (string-append #$output "/share")) + (destdir (string-append datadir "/mime")) + (mimedirs (filter file-exists? + (map (cut string-append <> + "/share/mime") + '#$(manifest-inputs manifest)))) + (update-mime-database (string-append + #+shared-mime-info + "/bin/update-mime-database"))) + (mkdir-p datadir) + (union-build destdir mimedirs + #:log-port (%make-void-port "w")) + (setenv "XDG_DATA_HOME" datadir) + (zero? (system* update-mime-database destdir))))) + + ;; Don't run the hook when 'shared-mime-info' is not installed. + (if (manifest-lookup manifest (manifest-pattern (name "shared-mime-info"))) + (gexp->derivation "xdg-mime-database" build + #:modules '((guix build utils) + (guix build union)) + #:local-build? #t + #:substitutable? #f) + (with-monad %store-monad (return #f)))) + (define %default-profile-hooks ;; This is the list of derivation-returning procedures that are called by ;; default when making a non-empty profile. @@ -728,7 +764,8 @@ (define %default-profile-hooks ghc-package-cache-file ca-certificate-bundle gtk-icon-themes - xdg-desktop-database)) + xdg-desktop-database + xdg-mime-database)) (define* (profile-derivation manifest #:key -- cgit v1.2.3 From 7236045314fdadb7a8e142496a7b6fd479d87a12 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Fri, 29 Apr 2016 17:01:09 +0800 Subject: gnu: gnome: Add desktop-file-utils. * gnu/packages/gnome.scm (gnome)[propagated-inputs]: Add desktop-file-utils. --- gnu/packages/gnome.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 056bd399f3..6990ab647b 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4874,6 +4874,7 @@ (define-public gnome ("at-spi2-core" ,at-spi2-core) ("dbus" ,dbus) ("dconf" ,dconf) + ("desktop-file-utils" ,desktop-file-utils) ("eog" ,eog) ("epiphany" ,epiphany) ("evince" ,evince) -- cgit v1.2.3 From d72d783301df0f519ac1e303c70c8e82e32388e0 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 30 Apr 2016 14:52:30 +0800 Subject: profiles: Factor out 'manifest-lookup-package'. * guix/profiles.scm (manifest-lookup-package): New procedure. (gtk-icon-themes, xdg-desktop-database, xdg-mime-database): Use it. --- guix/profiles.scm | 190 +++++++++++++++++++++++++++--------------------------- 1 file changed, 94 insertions(+), 96 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index 93d03ce959..8355af7a48 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -445,6 +445,40 @@ (define (manifest-inputs manifest) (cons (gexp-input thing output) deps))) (manifest-entries manifest))) +(define (manifest-lookup-package manifest name) + "Return as a monadic value the first package or store path referenced by +MANIFEST that named NAME, or #f if not found." + ;; Return as a monadic value the package or store path referenced by the + ;; manifest ENTRY, or #f if not referenced. + (define (entry-lookup-package entry) + (define (find-among-inputs inputs) + (find (lambda (input) + (and (package? input) + (equal? name (package-name input)))) + inputs)) + (define (find-among-store-items items) + (find (lambda (item) + (equal? name (package-name->name+version + (store-path-package-name item)))) + items)) + + ;; TODO: Factorize. + (define references* + (store-lift references)) + + (with-monad %store-monad + (match (manifest-entry-item entry) + ((? package? package) + (match (package-transitive-inputs package) + (((labels inputs . _) ...) + (return (find-among-inputs inputs))))) + ((? string? item) + (mlet %store-monad ((refs (references* item))) + (return (find-among-store-items refs))))))) + + (anym %store-monad + entry-lookup-package (manifest-entries manifest))) + (define (info-dir-file manifest) "Return a derivation that builds the 'dir' file for all the entries of MANIFEST." @@ -608,41 +642,7 @@ (define (dump file port) (define (gtk-icon-themes manifest) "Return a derivation that unions all icon themes from manifest entries and creates the GTK+ 'icon-theme.cache' file for each theme." - ;; Return as a monadic value the GTK+ package or store path referenced by the - ;; manifest ENTRY, or #f if not referenced. - (define (entry-lookup-gtk+ entry) - (define (find-among-inputs inputs) - (find (lambda (input) - (and (package? input) - (string=? "gtk+" (package-name input)))) - inputs)) - - (define (find-among-store-items items) - (find (lambda (item) - (equal? "gtk+" - (package-name->name+version - (store-path-package-name item)))) - items)) - - ;; TODO: Factorize. - (define references* - (store-lift references)) - - (with-monad %store-monad - (match (manifest-entry-item entry) - ((? package? package) - (match (package-transitive-inputs package) - (((labels inputs . _) ...) - (return (find-among-inputs inputs))))) - ((? string? item) - (mlet %store-monad ((refs (references* item))) - (return (find-among-store-items refs))))))) - - (define (manifest-lookup-gtk+ manifest) - (anym %store-monad - entry-lookup-gtk+ (manifest-entries manifest))) - - (mlet %store-monad ((gtk+ (manifest-lookup-gtk+ manifest))) + (mlet %store-monad ((gtk+ (manifest-lookup-package manifest "gtk+"))) (define build #~(begin (use-modules (guix build utils) @@ -690,72 +690,70 @@ (define (xdg-desktop-database manifest) "Return a derivation that builds the @file{mimeinfo.cache} database from desktop files. It's used to query what applications can handle a given MIME type." - (define desktop-file-utils - (module-ref (resolve-interface '(gnu packages gnome)) - 'desktop-file-utils)) + (mlet %store-monad ((desktop-file-utils + (manifest-lookup-package + manifest "desktop-file-utils"))) + (define build + #~(begin + (use-modules (srfi srfi-26) + (guix build utils) + (guix build union)) + (let* ((destdir (string-append #$output "/share/applications")) + (appdirs (filter file-exists? + (map (cut string-append <> + "/share/applications") + '#$(manifest-inputs manifest)))) + (update-desktop-database (string-append + #+desktop-file-utils + "/bin/update-desktop-database"))) + (mkdir-p (string-append #$output "/share")) + (union-build destdir appdirs + #:log-port (%make-void-port "w")) + (zero? (system* update-desktop-database destdir))))) - (define build - #~(begin - (use-modules (srfi srfi-26) - (guix build utils) - (guix build union)) - (let* ((destdir (string-append #$output "/share/applications")) - (appdirs (filter file-exists? - (map (cut string-append <> - "/share/applications") - '#$(manifest-inputs manifest)))) - (update-desktop-database (string-append - #+desktop-file-utils - "/bin/update-desktop-database"))) - (mkdir-p (string-append #$output "/share")) - (union-build destdir appdirs - #:log-port (%make-void-port "w")) - (zero? (system* update-desktop-database destdir))))) - - ;; Don't run the hook when 'desktop-file-utils' is not installed. - (if (manifest-lookup manifest (manifest-pattern (name "desktop-file-utils"))) - (gexp->derivation "xdg-desktop-database" build - #:modules '((guix build utils) - (guix build union)) - #:local-build? #t - #:substitutable? #f) - (with-monad %store-monad (return #f)))) + ;; Don't run the hook when 'desktop-file-utils' is not referenced. + (if desktop-file-utils + (gexp->derivation "xdg-desktop-database" build + #:modules '((guix build utils) + (guix build union)) + #:local-build? #t + #:substitutable? #f) + (return #f)))) (define (xdg-mime-database manifest) "Return a derivation that builds the @file{mime.cache} database from manifest entries. It's used to query the MIME type of a given file." - (define shared-mime-info - (module-ref (resolve-interface '(gnu packages gnome)) - 'shared-mime-info)) - - (define build - #~(begin - (use-modules (srfi srfi-26) - (guix build utils) - (guix build union)) - (let* ((datadir (string-append #$output "/share")) - (destdir (string-append datadir "/mime")) - (mimedirs (filter file-exists? - (map (cut string-append <> - "/share/mime") - '#$(manifest-inputs manifest)))) - (update-mime-database (string-append - #+shared-mime-info - "/bin/update-mime-database"))) - (mkdir-p datadir) - (union-build destdir mimedirs - #:log-port (%make-void-port "w")) - (setenv "XDG_DATA_HOME" datadir) - (zero? (system* update-mime-database destdir))))) - - ;; Don't run the hook when 'shared-mime-info' is not installed. - (if (manifest-lookup manifest (manifest-pattern (name "shared-mime-info"))) - (gexp->derivation "xdg-mime-database" build - #:modules '((guix build utils) - (guix build union)) - #:local-build? #t - #:substitutable? #f) - (with-monad %store-monad (return #f)))) + (mlet %store-monad ((shared-mime-info + (manifest-lookup-package + manifest "shared-mime-info"))) + (define build + #~(begin + (use-modules (srfi srfi-26) + (guix build utils) + (guix build union)) + (let* ((datadir (string-append #$output "/share")) + (destdir (string-append datadir "/mime")) + (mimedirs (filter file-exists? + (map (cut string-append <> + "/share/mime") + '#$(manifest-inputs manifest)))) + (update-mime-database (string-append + #+shared-mime-info + "/bin/update-mime-database"))) + (mkdir-p datadir) + (union-build destdir mimedirs + #:log-port (%make-void-port "w")) + (setenv "XDG_DATA_HOME" datadir) + (zero? (system* update-mime-database destdir))))) + + ;; Don't run the hook when 'shared-mime-info' is referenced. + (if shared-mime-info + (gexp->derivation "xdg-mime-database" build + #:modules '((guix build utils) + (guix build union)) + #:local-build? #t + #:substitutable? #f) + (return #f)))) (define %default-profile-hooks ;; This is the list of derivation-returning procedures that are called by -- cgit v1.2.3 From 0510440b4ecdb16264f63cf292a069a149002897 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 30 Apr 2016 17:15:18 +0800 Subject: gnu: gom: Update to 0.3.2. * gnu/packages/gnome.scm (gom): Update to 0.3.2. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 6990ab647b..9b07f37a39 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2882,7 +2882,7 @@ (define-public libchamplain (define-public gom (package (name "gom") - (version "0.3.1") + (version "0.3.2") (source (origin (method url-fetch) @@ -2891,7 +2891,7 @@ (define-public gom name "-" version ".tar.xz")) (sha256 (base32 - "1x9qgviszzh59d009jd13k0pdxzv9w4dmwp3wszbsk3qxr3fnlbr")))) + "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w")))) (build-system gnu-build-system) (native-inputs `(("intltool" ,intltool) -- cgit v1.2.3 From ad1b7d8bafe96241fd87a74baec0a38ed4389e4b Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 30 Apr 2016 18:39:03 +0800 Subject: gnu: yelp: Add gsettings-desktop-schemas to inputs. * gnu/packages/gnome.scm (yelp)[inputs]: Add gsettings-desktop-schemas. --- gnu/packages/gnome.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 9b07f37a39..132fcc3b13 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3593,7 +3593,8 @@ (define-public yelp (propagated-inputs `(("dconf" ,dconf))) (inputs - `(("libxslt" ,libxslt) + `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("libxslt" ,libxslt) ("sqlite" ,sqlite) ("webkitgtk" ,webkitgtk) ("yelp-xsl" ,yelp-xsl))) -- cgit v1.2.3 From 04100c3bbb1c4269da282e8b46bd55e1c9c892b4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 22 Apr 2016 16:07:38 +0200 Subject: gnu: Add java-qdox-1.12. * gnu/packages/java.scm (java-qdox-1.12): New variable. --- gnu/packages/java.scm | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index c94f2e4b28..eea50950ce 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -859,3 +859,44 @@ (define-public java-xz compression in pure Java. Single-threaded streamed compression and decompression and random access decompression have been fully implemented.") (license license:public-domain))) + +;; java-hamcrest-core uses qdox version 1.12. We package this version instead +;; of the latest release. +(define-public java-qdox-1.12 + (package + (name "java-qdox") + (version "1.12.1") + (source (origin + (method url-fetch) + (uri (string-append "http://central.maven.org/maven2/" + "com/thoughtworks/qdox/qdox/" version + "/qdox-" version "-sources.jar")) + (sha256 + (base32 + "0hlfbqq2avf5s26wxkksqmkdyk6zp9ggqn37c468m96mjv0n9xfl")))) + (build-system ant-build-system) + (arguments + `(;; Tests require junit + #:tests? #f + #:jar-name "qdox.jar" + #:phases + (modify-phases %standard-phases + (replace 'unpack + (lambda* (#:key source #:allow-other-keys) + (mkdir "src") + (with-directory-excursion "src" + (zero? (system* "jar" "-xf" source))))) + ;; At this point we don't have junit, so we must remove the API + ;; tests. + (add-after 'unpack 'delete-tests + (lambda _ + (delete-file-recursively "src/com/thoughtworks/qdox/junit") + #t))))) + (home-page "http://qdox.codehaus.org/") + (synopsis "Parse definitions from Java source files") + (description + "QDox is a high speed, small footprint parser for extracting +class/interface/method definitions from source files complete with JavaDoc +@code{@tags}. It is designed to be used by active code generators or +documentation tools.") + (license license:asl2.0))) -- cgit v1.2.3 From e7e28510bb8f5bd3b5d36413d9e82f081ff55baf Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 22 Apr 2016 16:08:14 +0200 Subject: gnu: Add java-jarjar. * gnu/packages/java.scm (java-jarjar): New variable. --- gnu/packages/java.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index eea50950ce..bc96d74edd 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -900,3 +900,39 @@ (define-public java-qdox-1.12 @code{@tags}. It is designed to be used by active code generators or documentation tools.") (license license:asl2.0))) + +(define-public java-jarjar + (package + (name "java-jarjar") + (version "1.4") + (source (origin + (method url-fetch) + (uri (string-append + "https://storage.googleapis.com/google-code-archive-downloads/v2/" + "code.google.com/jarjar/jarjar-src-" version ".zip")) + (sha256 + (base32 + "1v8irhni9cndcw1l1wxqgry013s2kpj0qqn57lj2ji28xjq8ndjl")))) + (build-system ant-build-system) + (arguments + `(;; Tests require junit, which ultimately depends on this package. + #:tests? #f + #:build-target "jar" + #:phases + (modify-phases %standard-phases + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((target (string-append (assoc-ref outputs "out") + "/share/java"))) + (install-file (string-append "dist/jarjar-" ,version ".jar") + target)) + #t))))) + (native-inputs + `(("unzip" ,unzip))) + (home-page "https://code.google.com/archive/p/jarjar/") + (synopsis "Repackage Java libraries") + (description + "Jar Jar Links is a utility that makes it easy to repackage Java +libraries and embed them into your own distribution. Jar Jar Links includes +an Ant task that extends the built-in @code{jar} task.") + (license license:asl2.0))) -- cgit v1.2.3 From 87c31a21a5d8cb75f907fdffaac6dad2c7c6fdad Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 22 Apr 2016 16:08:41 +0200 Subject: gnu: Add java-hamcrest-core. * gnu/packages/java.scm (java-hamcrest-core): New variable. --- gnu/packages/java.scm | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index bc96d74edd..e8dcd7e670 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -936,3 +936,84 @@ (define-public java-jarjar libraries and embed them into your own distribution. Jar Jar Links includes an Ant task that extends the built-in @code{jar} task.") (license license:asl2.0))) + +(define-public java-hamcrest-core + (package + (name "java-hamcrest-core") + (version "1.3") + (source (origin + (method url-fetch) + (uri (string-append "https://hamcrest.googlecode.com/files/" + "hamcrest-" version ".tgz")) + (sha256 + (base32 + "1hi0jv0zrgsf4l25aizxrgvxpsrmdklsmvw0jzwz7zv9s108whn6")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete bundled jar archives. + (for-each delete-file (find-files "." "\\.jar$")) + #t)))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; Tests require junit + #:make-flags (list (string-append "-Dversion=" ,version)) + #:build-target "core" + #:phases + (modify-phases %standard-phases + ;; Disable unit tests, because they require junit, which requires + ;; hamcrest-core. We also give a fixed value to the "Built-Date" + ;; attribute from the manifest for reproducibility. + (add-before 'configure 'patch-build.xml + (lambda _ + (substitute* "build.xml" + (("unit-test, ") "") + (("\\$\\{build.timestamp\\}") "guix")) + #t)) + ;; Java's "getMethods()" returns methods in an unpredictable order. + ;; To make the output of the generated code deterministic we must + ;; sort the array of methods. + (add-after 'unpack 'make-method-order-deterministic + (lambda _ + (substitute* "hamcrest-generator/src/main/java/org/hamcrest/generator/ReflectiveFactoryReader.java" + (("import java\\.util\\.Iterator;" line) + (string-append line "\n" + "import java.util.Arrays; import java.util.Comparator;")) + (("allMethods = cls\\.getMethods\\(\\);" line) + (string-append "_" line + " +private Method[] getSortedMethods() { + Arrays.sort(_allMethods, new Comparator() { + @Override + public int compare(Method a, Method b) { + return a.toString().compareTo(b.toString()); + } + }); + return _allMethods; +} + +private Method[] allMethods = getSortedMethods();"))))) + (add-before 'build 'do-not-use-bundled-qdox + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "build.xml" + (("lib/generator/qdox-1.12.jar") + (string-append (assoc-ref inputs "java-qdox-1.12") + "/share/java/qdox.jar"))) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (install-file (string-append "build/hamcrest-core-" + ,version ".jar") + (string-append (assoc-ref outputs "out") + "/share/java"))))))) + (native-inputs + `(("java-qdox-1.12" ,java-qdox-1.12) + ("java-jarjar" ,java-jarjar))) + (home-page "http://hamcrest.org/") + (synopsis "Library of matchers for building test expressions") + (description + "This package provides a library of matcher objects (also known as +constraints or predicates) allowing @code{match} rules to be defined +declaratively, to be used in other frameworks. Typical scenarios include +testing frameworks, mocking libraries and UI validation rules.") + (license license:bsd-2))) -- cgit v1.2.3 From d0184f44d3c1cc2f143e48d769c11f77666bcd68 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 22 Apr 2016 16:09:17 +0200 Subject: gnu: Add java-junit. * gnu/packages/java.scm (java-junit): New variable. --- gnu/packages/java.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index e8dcd7e670..fbee1a3fb3 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1017,3 +1017,35 @@ (define-public java-hamcrest-core declaratively, to be used in other frameworks. Typical scenarios include testing frameworks, mocking libraries and UI validation rules.") (license license:bsd-2))) + +(define-public java-junit + (package + (name "java-junit") + (version "4.12") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/junit-team/junit/" + "archive/r" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "090dn5v1vs0b3acyaqc0gjf6p8lmd2h24wfzsbq7sly6b214anws")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete bundled jar archives. + (delete-file-recursively "lib") + #t)))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests + #:jar-name "junit.jar")) + (inputs + `(("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://junit.org/") + (synopsis "Test framework for Java") + (description + "JUnit is a simple framework to write repeatable tests for Java projects. +JUnit provides assertions for testing expected results, test fixtures for +sharing common test data, and test runners for running tests.") + (license license:epl1.0))) -- cgit v1.2.3 From 4c48bf55020d5900c67b37be0b7380455de88a51 Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Mon, 18 Apr 2016 17:00:44 +0200 Subject: gnu: powertop: Patch absolute file names. * gnu/packages/linux.scm (powertop)[inputs]: Add kmod. [arguments]: Patch absolute file names. --- gnu/packages/linux.scm | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index a26e641342..aa778beefb 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1203,11 +1203,31 @@ (define-public powertop (base32 "0nlwazxbnn0k6q5f5b09wdhw0f194lpzkp3l7vxansqhfczmcyx8")))) (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; TODO: Patch some hardcoded "wlan0" in calibrate/calibrate.cpp to + ;; allow calibrating the network interface in GuixSD. + (add-after 'unpack 'patch-absolute-file-names + (lambda* (#:key inputs #:allow-other-keys) + (let ((kmod (assoc-ref inputs "kmod"))) + (substitute* (find-files "src" "\\.cpp$") + ;; Give the right 'modprobe' file name so that essential + ;; modules such as msr.ko can be loaded. + (("/sbin/modprobe") (string-append kmod "/bin/modprobe")) + ;; These programs are only needed to calibrate, so using + ;; relative file names avoids adding extra inputs. When they + ;; are missing powertop gracefully handles it. + (("/usr/bin/hcitool") "hcitool") + (("/usr/bin/xset") "xset") + (("/usr/sbin/hciconfig") "hciconfig")) + #t)))))) (inputs - `(("zlib" ,zlib) - ("pciutils" ,pciutils) + `(("kmod" ,kmod) + ("libnl" ,libnl) ("ncurses" ,ncurses) - ("libnl" ,libnl))) + ("pciutils" ,pciutils) + ("zlib" ,zlib))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://01.org/powertop/") -- cgit v1.2.3 From 62063d8546bec2d528ba56dabbe97e57332e782a Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Fri, 8 Apr 2016 00:16:37 +0200 Subject: gnu: Add reposurgeon. * gnu/packages/version-control.scm (reposurgeon): New variable. --- gnu/packages/version-control.scm | 56 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 94339012f5..fb85d933f9 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2013 Cyril Roelandt ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2013, 2014 Andreas Enge -;;; Copyright © 2015 Mathieu Lirzin +;;; Copyright © 2015, 2016 Mathieu Lirzin ;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2014, 2016 Eric Bavier ;;; Copyright © 2015, 2016 Efraim Flashner @@ -27,7 +27,7 @@ (define-module (gnu packages version-control) #:use-module ((guix licenses) - #:select (asl2.0 bsd-2 + #:select (asl2.0 bsd-2 bsd-3 gpl1+ gpl2 gpl2+ gpl3+ lgpl2.1 public-domain x11-style)) #:use-module (guix utils) @@ -1012,6 +1012,58 @@ (define-public aegis any project with more than one developer, is one of Aegis's major functions.") (license gpl3+))) +(define-public reposurgeon + (package + (name "reposurgeon") + (version "3.37") + (source (origin + (method url-fetch) + (uri (string-append "http://www.catb.org/~esr/" name "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "14asjg4xy3mhh5z0r3k7c1wv9y803j2zfq32g5q5m95sf7yzygan")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ;no test suite distributed + #:make-flags + (list (string-append "target=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'fix-docbook + (lambda* (#:key inputs #:allow-other-keys) + (substitute* (find-files "." "\\.xml$") + (("docbook/docbookx.dtd") + (string-append (assoc-ref inputs "docbook-xml") + "/xml/dtd/docbook/docbookx.dtd"))) + #t)) + (add-after 'install 'install-emacs-data + (lambda* (#:key outputs #:allow-other-keys) + (install-file "reposurgeon-mode.el" + (string-append (assoc-ref outputs "out") + "/share/emacs/site-lisp"))))))) + (inputs + `(("python" ,python-wrapper))) + (native-inputs + `(("asciidoc" ,asciidoc) + ("docbook-xml" ,docbook-xml-4.1.2) + ("docbook-xsl" ,docbook-xsl) + ("libxml2" ,libxml2) + ("xmlto" ,xmlto))) + (home-page "http://www.catb.org/~esr/reposurgeon/") + (synopsis "Edit version-control repository history") + (description "Reposurgeon enables risky operations that version-control +systems don't want to let you do, such as editing past comments and metadata +and removing commits. It works with any version control system that can +export and import Git fast-import streams, including Git, Mercurial, Fossil, +Bazaar, CVS, RCS, and Src. It can also read Subversion dump files directly +and can thus be used to script production of very high-quality conversions +from Subversion to any supported Distributed Version Control System (DVCS).") + ;; Most files are distributed under bsd-2, except 'repocutter' which is + ;; under bsd-3. + (license (list bsd-2 bsd-3)))) + (define-public tig (package (name "tig") -- cgit v1.2.3 From aacb52fb0fe8ad48b923daa500f021dc99661fda Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 27 Apr 2016 21:20:07 +0200 Subject: gnu: Add portmidi. * gnu/packages/music.scm (portmidi): New variable. * gnu/packages/patches/portmidi-modular-build.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + gnu/packages/music.scm | 30 ++ gnu/packages/patches/portmidi-modular-build.patch | 325 ++++++++++++++++++++++ 3 files changed, 356 insertions(+) create mode 100644 gnu/packages/patches/portmidi-modular-build.patch diff --git a/gnu/local.mk b/gnu/local.mk index 702c9a602e..7fefdf4349 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -682,6 +682,7 @@ dist_patch_DATA = \ gnu/packages/patches/polkit-drop-test.patch \ gnu/packages/patches/poppler-CVE-2015-8868.patch \ gnu/packages/patches/portaudio-audacity-compat.patch \ + gnu/packages/patches/portmidi-modular-build.patch \ gnu/packages/patches/procmail-ambiguous-getline-debian.patch \ gnu/packages/patches/pt-scotch-build-parallelism.patch \ gnu/packages/patches/pulseaudio-fix-mult-test.patch \ diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 95f52c5dd6..96495bf660 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -958,6 +958,36 @@ (define-public pd projects.") (license license:bsd-3))) +(define-public portmidi + (package + (name "portmidi") + (version "217") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/portmedia/portmidi/" + version "/portmidi-src-" version ".zip")) + (sha256 + (base32 + "03rfsk7z6rdahq2ihy5k13qjzgx757f75yqka88v3gc0pn9ais88")) + (patches (list (search-patch "portmidi-modular-build.patch"))))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; tests cannot be linked + #:configure-flags + (list "-DPORTMIDI_ENABLE_JAVA=Off" + "-DCMAKE_BUILD_TYPE=Release" ; needed to have PMALSA set + "-DPORTMIDI_ENABLE_TEST=Off"))) ; tests fail linking + (inputs + `(("alsa-lib" ,alsa-lib))) + (native-inputs + `(("unzip" ,unzip))) + (home-page "http://portmedia.sourceforge.net/portmidi/") + (synopsis "Library for MIDI I/O") + (description + "PortMidi is a library supporting real-time input and output of MIDI data +using a system-independent interface.") + (license license:expat))) + (define-public frescobaldi (package (name "frescobaldi") diff --git a/gnu/packages/patches/portmidi-modular-build.patch b/gnu/packages/patches/portmidi-modular-build.patch new file mode 100644 index 0000000000..25e64ae317 --- /dev/null +++ b/gnu/packages/patches/portmidi-modular-build.patch @@ -0,0 +1,325 @@ +We took this patch from Gentoo to break apart the portmidi build, so that we +can disable the Java parts and cleanly disable the tests which fail to link +(possibly because they are linked before “-lportmidi” is available). The +patch was downloaded from here: + +https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/portmidi/files/portmidi-217-cmake.patch?id=56bd759df1d0c750a065b8c845e93d5dfa6b549d + +--- portmidi/CMakeLists.txt ++++ portmidi/CMakeLists.txt +@@ -9,12 +9,11 @@ + set(CMAKE_BUILD_TYPE Release CACHE STRING + "Semicolon-separate list of supported configuration types") + # set default directories but don't override cached values... +- set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CACHEFILE_DIR}/${CMAKE_BUILD_TYPE} ++ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + CACHE STRING "libraries go here") +- set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CACHEFILE_DIR}/${CMAKE_BUILD_TYPE} ++ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + CACHE STRING "libraries go here") +- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY +- ${CMAKE_CACHEFILE_DIR}/${CMAKE_BUILD_TYPE} ++ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + CACHE STRING "executables go here") + + else(UNIX) +@@ -68,10 +67,20 @@ + include_directories(pm_common porttime) + add_subdirectory(pm_common) + +-add_subdirectory(pm_test) ++option(PORTMIDI_ENABLE_JAVA "Enable Java bindings support" ON) ++option(PORTMIDI_ENABLE_STATIC "Build and install static libraries" OFF) ++option(PORTMIDI_ENABLE_TEST "Build test programs" ON) ++ ++if(PORTMIDI_ENABLE_TEST) ++ add_subdirectory(pm_test) ++endif(PORTMIDI_ENABLE_TEST) + + add_subdirectory(pm_dylib) + + # Cannot figure out how to make an xcode Java application with CMake +-add_subdirectory(pm_java) ++if(PORTMIDI_ENABLE_JAVA) ++ set(JAR_INSTALL_DIR share/java ++ CACHE STRING "Define directory name for jar installation") ++ add_subdirectory(pm_java) ++endif(PORTMIDI_ENABLE_JAVA) + +--- portmidi/pm_common/CMakeLists.txt ++++ portmidi/pm_common/CMakeLists.txt +@@ -44,9 +44,6 @@ + + # first include the appropriate system-dependent file: + if(UNIX) +- # add the -g switch for Linux and Mac OS X (not used in Win32) +- set (CMAKE_C_FLAGS_DEBUG "-g ${CMAKE_C_FLAGS_DEBUG}" +- CACHE STRING "enable extra checks for debugging" FORCE) + if(APPLE) + set(MACSRC pmmacosxcm pmmac readbinaryplist finddefault) + prepend_path(LIBSRC ../pm_mac/ ${MACSRC}) +@@ -62,19 +59,23 @@ + ${COREMIDI_LIB} ${CORESERVICES_LIB} + CACHE INTERNAL "") + +- set(JAVAVM_LIB "${FRAMEWORK_PATH}/JavaVM.framework") +- set(JAVA_INCLUDE_PATHS ${JAVAVM_LIB}/Headers) ++ if(PORTMIDI_ENABLE_JAVA) ++ set(JAVAVM_LIB "${FRAMEWORK_PATH}/JavaVM.framework") ++ set(JAVA_INCLUDE_PATHS ${JAVAVM_LIB}/Headers) ++ endif(PORTMIDI_ENABLE_JAVA) + message(STATUS "SYSROOT: " ${CMAKE_OSX_SYSROOT}) + else(APPLE) + # LINUX settings... +- include(FindJNI) +- message(STATUS "JAVA_JVM_LIB_PATH is " ${JAVA_JVM_LIB_PATH}) +- message(STATUS "JAVA_INCLUDE_PATH is " ${JAVA_INCLUDE_PATH}) +- message(STATUS "JAVA_INCLUDE_PATH2 is " ${JAVA_INCLUDE_PATH2}) +- message(STATUS "JAVA_JVM_LIBRARY is " ${JAVA_JVM_LIBRARY}) +- set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2}) +- # libjvm.so is found relative to JAVA_INCLUDE_PATH: +- set(JAVAVM_LIB ${JAVA_JVM_LIBRARY}/libjvm.so) ++ if(PORTMIDI_ENABLE_JAVA) ++ include(FindJNI) ++ message(STATUS "JAVA_JVM_LIB_PATH is " ${JAVA_JVM_LIB_PATH}) ++ message(STATUS "JAVA_INCLUDE_PATH is " ${JAVA_INCLUDE_PATH}) ++ message(STATUS "JAVA_INCLUDE_PATH2 is " ${JAVA_INCLUDE_PATH2}) ++ message(STATUS "JAVA_JVM_LIBRARY is " ${JAVA_JVM_LIBRARY}) ++ set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2}) ++ # libjvm.so is found relative to JAVA_INCLUDE_PATH: ++ set(JAVAVM_LIB ${JAVA_JVM_LIBRARY}/libjvm.so) ++ endif(PORTMIDI_ENABLE_JAVA) + + set(LINUXSRC pmlinuxalsa pmlinux finddefault) + prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC}) +@@ -88,10 +89,12 @@ + # /MD is multithread DLL, /MT is multithread. Change to static: + include(../pm_win/static.cmake) + +- include(FindJNI) ++ if(PORTMIDI_ENABLE_JAVA) ++ include(FindJNI) + +- set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2}) +- # message(STATUS "JAVA_INCLUDE_PATHS: " ${JAVA_INCLUDE_PATHS}) ++ set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2}) ++ # message(STATUS "JAVA_INCLUDE_PATHS: " ${JAVA_INCLUDE_PATHS}) ++ endif(PORTMIDI_ENABLE_JAVA) + + set(WINSRC pmwin pmwinmm) + prepend_path(LIBSRC ../pm_win/ ${WINSRC}) +@@ -99,29 +102,43 @@ + set(PM_NEEDED_LIBS winmm.lib) + endif(WIN32) + endif(UNIX) +-set(JNI_EXTRA_LIBS ${PM_NEEDED_LIBS} ${JAVA_JVM_LIBRARY}) ++ ++if(PORTMIDI_ENABLE_JAVA) ++ set(JNI_EXTRA_LIBS ${PM_NEEDED_LIBS} ${JAVA_JVM_LIBRARY}) ++endif(PORTMIDI_ENABLE_JAVA) + + # this completes the list of library sources by adding shared code + list(APPEND LIBSRC pmutil portmidi) + + # now add the shared files to make the complete list of library sources +-add_library(portmidi-static ${LIBSRC}) +-set_target_properties(portmidi-static PROPERTIES OUTPUT_NAME "portmidi_s") +-target_link_libraries(portmidi-static ${PM_NEEDED_LIBS}) +- +-# define the jni library +-include_directories(${JAVA_INCLUDE_PATHS}) +- +-set(JNISRC ${LIBSRC} ../pm_java/pmjni/pmjni.c) +-add_library(pmjni SHARED ${JNISRC}) +-target_link_libraries(pmjni ${JNI_EXTRA_LIBS}) +-set_target_properties(pmjni PROPERTIES EXECUTABLE_EXTENSION "jnilib") ++if(PORTMIDI_ENABLE_STATIC) ++ add_library(portmidi-static ${LIBSRC}) ++ set_target_properties(portmidi-static PROPERTIES OUTPUT_NAME "portmidi") ++ target_link_libraries(portmidi-static ${PM_NEEDED_LIBS}) ++endif(PORTMIDI_ENABLE_STATIC) ++ ++if(PORTMIDI_ENABLE_JAVA) ++ # define the jni library ++ include_directories(${JAVA_INCLUDE_PATHS}) ++ ++ set(JNISRC ${LIBSRC} ../pm_java/pmjni/pmjni.c) ++ add_library(pmjni SHARED ${JNISRC}) ++ target_link_libraries(pmjni ${JNI_EXTRA_LIBS}) ++ set_target_properties(pmjni PROPERTIES EXECUTABLE_EXTENSION "jnilib") ++endif(PORTMIDI_ENABLE_JAVA) + + # install the libraries (Linux and Mac OS X command line) + if(UNIX) +- INSTALL(TARGETS portmidi-static pmjni +- LIBRARY DESTINATION /usr/local/lib +- ARCHIVE DESTINATION /usr/local/lib) ++ if(PORTMIDI_ENABLE_STATIC) ++ INSTALL(TARGETS portmidi-static ++ LIBRARY DESTINATION lib${LIB_SUFFIX} ++ ARCHIVE DESTINATION lib${LIB_SUFFIX}) ++ endif(PORTMIDI_ENABLE_STATIC) ++ if(PORTMIDI_ENABLE_JAVA) ++ INSTALL(TARGETS pmjni ++ LIBRARY DESTINATION lib${LIB_SUFFIX} ++ ARCHIVE DESTINATION lib${LIB_SUFFIX}) ++ endif(PORTMIDI_ENABLE_JAVA) + # .h files installed by pm_dylib/CMakeLists.txt, so don't need them here + # INSTALL(FILES portmidi.h ../porttime/porttime.h + # DESTINATION /usr/local/include) +--- portmidi/pm_dylib/CMakeLists.txt ++++ portmidi/pm_dylib/CMakeLists.txt +@@ -39,9 +39,6 @@ + + # first include the appropriate system-dependent file: + if(UNIX) +- # add the -g switch for Linux and Mac OS X (not used in Win32) +- set (CMAKE_C_FLAGS_DEBUG "-g ${CMAKE_C_FLAGS_DEBUG}" +- CACHE STRING "enable extra checks for debugging" FORCE) + if(APPLE) + set(MACSRC pmmacosxcm pmmac readbinaryplist finddefault) + prepend_path(LIBSRC ../pm_mac/ ${MACSRC}) +@@ -63,7 +60,8 @@ + message(STATUS "SYSROOT: " ${CMAKE_OSX_SYSROOT}) + else(APPLE) + # LINUX settings... +- include(FindJNI) ++ if(PORTMIDI_ENABLE_JAVA) ++ include(FindJNI) + # message(STATUS "JAVA_JVM_LIB_PATH is " ${JAVA_JVM_LIB_PATH}) + # message(STATUS "JAVA_INCLUDE_PATH is " ${JAVA_INCLUDE_PATH}) + # note: should use JAVA_JVM_LIB_PATH, but it is not set properly +@@ -75,11 +73,8 @@ + # JAVA_INCLUDE_PATH2; if no, then we need to make both JAVA_INCLUDE_PATH + # and JAVA_INCLUDE_PATH2 set by user (will need clear documentation + # because JAVA_INCLUDE_PATH2 is pretty obscure) +- set(JAVA_INCLUDE_PATH ${JAVA_INCLUDE_PATH-UNKNOWN} +- CACHE STRING "where to find Java SDK include directory") +- set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH}/linux) +- # libjvm.so is found relative to JAVA_INCLUDE_PATH: +- set(JAVAVM_LIB ${JAVA_INCLUDE_PATH}/../jre/lib/i386/client/libjvm.so) ++ set(JAVAVM_LIB ${JAVA_JVM_LIBRARY}) ++ endif(PORTMIDI_ENABLE_JAVA) + + set(LINUXSRC pmlinuxalsa pmlinux finddefault) + prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC}) +@@ -91,13 +86,15 @@ + if(WIN32) + # /MDd is multithread debug DLL, /MTd is multithread debug + # /MD is multithread DLL, /MT is multithread +- +- include(FindJNI) +- # note: should use JAVA_JVM_LIB_PATH, but it is not set properly +- set(JAVAVM_LIB ${JAVA_INCLUDE_PATH}/../lib/jvm.lib) + +- set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2}) +- # message(STATUS "JAVA_INCLUDE_PATHS: " ${JAVA_INCLUDE_PATHS}) ++ if(PORTMIDI_ENABLE_JAVA) ++ include(FindJNI) ++ # note: should use JAVA_JVM_LIB_PATH, but it is not set properly ++ set(JAVAVM_LIB ${JAVA_INCLUDE_PATH}/../lib/jvm.lib) ++ ++ set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2}) ++ # message(STATUS "JAVA_INCLUDE_PATHS: " ${JAVA_INCLUDE_PATHS}) ++ endif(PORTMIDI_ENABLE_JAVA) + + set(WINSRC pmwin pmwinmm) + prepend_path(LIBSRC ../pm_win/ ${WINSRC}) +@@ -106,7 +103,10 @@ + # message(STATUS "JAVAVM_LIB: " ${JAVAVM_LIB}) + endif(WIN32) + endif(UNIX) ++ ++if(PORTMIDI_ENABLE_JAVA) + set(JNI_EXTRA_LIBS ${PM_NEEDED_LIBS} ${JAVAVM_LIB}) ++endif(PORTMIDI_ENABLE_JAVA) + + # this completes the list of library sources by adding shared code + set(SHARED_FILES pmutil portmidi) +@@ -120,8 +120,8 @@ + # install the libraries (Linux and Mac OS X command line) + if(UNIX) + INSTALL(TARGETS portmidi-dynamic +- LIBRARY DESTINATION /usr/local/lib +- ARCHIVE DESTINATION /usr/local/lib) ++ LIBRARY DESTINATION lib${LIB_SUFFIX} ++ ARCHIVE DESTINATION lib${LIB_SUFFIX}) + INSTALL(FILES ../pm_common/portmidi.h ../porttime/porttime.h +- DESTINATION /usr/local/include) ++ DESTINATION include) + endif(UNIX) +--- portmidi/pm_java/CMakeLists.txt ++++ portmidi/pm_java/CMakeLists.txt +@@ -5,43 +5,24 @@ + # java not dealt with in CMake -- see pm_mac/pm_mac.xcodeproj + else(APPLE) + # linux +- set(JPORTMIDICLASS JPortMidi.class JPortMidiException.class +- JPortMidiApi.class) +- set(PMDEFAULTSCLASS PmDefaultsFrame.class PmDefaults.class) +- prepend_path(JPORTMIDICLASS2 jportmidi/ ${JPORTMIDICLASS}) +- prepend_path(PMDEFAULTSCLASS2 pmdefaults/ ${PMDEFAULTSCLASS}) +- set(PMDEFAULTS_ALL_CLASSES ${JPORTMIDICLASS2} ${PMDEFAULTSCLASS2}) +- # message(STATUS "PMDEFAULTS_ALL_CLASSES is " ${PMDEFAULTS_ALL_CLASSES}) +- add_custom_command(OUTPUT pmdefaults/PmDefaultsFrame.class +- COMMAND javac -classpath . pmdefaults/PmDefaultsFrame.java +- MAIN_DEPENDENCY pmdefaults/PmDefaultsFrame.java +- DEPENDS pmdefaults/PmDefaults.java +- WORKING_DIRECTORY pm_java) +- add_custom_command(OUTPUT pmdefaults/PmDefaults.class +- COMMAND javac -classpath . pmdefaults/PmDefaults.java +- MAIN_DEPENDENCY pmdefaults/PmDefaults.java +- DEPENDS pmdefaults/PmDefaultsFrame.java +- WORKING_DIRECTORY pm_java) +- add_custom_command(OUTPUT ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults.jar +- COMMAND cp pmdefaults/portmusic_logo.png . +- COMMAND jar cmf pmdefaults/manifest.txt pmdefaults.jar +- pmdefaults/*.class portmusic_logo.png jportmidi/*.class +- COMMAND chmod +x pmdefaults/pmdefaults +- COMMAND cp pmdefaults/pmdefaults ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} +- COMMAND mv pmdefaults.jar ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} +- COMMAND rm portmusic_logo.png +- MAIN_DEPENDENCY pmdefaults/PmDefaults.class +- DEPENDS ${PMDEFAULTS_ALL_CLASSES} +- WORKING_DIRECTORY pm_java) +- add_custom_target(pmdefaults_target ALL +- DEPENDS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults.jar) +- # message(STATUS "add_custom_target: pmdefaults.jar") ++ set(JAVA_CLASSES jportmidi pmdefaults) ++ add_custom_command(OUTPUT ${JAVA_CLASSES} ++ COMMAND javac -d ${CMAKE_CURRENT_BINARY_DIR} jportmidi/*.java pmdefaults/*.java ++ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) ++ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/pmdefaults.jar ++ DEPENDS ${JAVA_CLASSES} ++ COMMAND jar cmf pmdefaults/manifest.txt ${CMAKE_CURRENT_BINARY_DIR}/pmdefaults.jar ++ -C pmdefaults portmusic_logo.png -C ${CMAKE_CURRENT_BINARY_DIR} jportmidi ++ -C ${CMAKE_CURRENT_BINARY_DIR} pmdefaults ++ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) ++ add_custom_target(pmdefaults.jar ALL ++ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/pmdefaults.jar) + + # install the libraries (Linux only) +- INSTALL(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults.jar +- DESTINATION /usr/share/java) +- INSTALL(PROGRAMS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pmdefaults +- DESTINATION /usr/local/bin) ++ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/pmdefaults.jar ++ DESTINATION ${JAR_INSTALL_DIR}) ++ INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/pmdefaults/pmdefaults ++ DESTINATION bin) + endif(APPLE) + endif(UNIX) + # In windows, use pm_java/make.bat +--- portmidi/pm_test/CMakeLists.txt ++++ portmidi/pm_test/CMakeLists.txt +@@ -12,8 +12,8 @@ + + macro(make_a_test name) + add_executable(${name} ${name}.c) +- target_link_libraries(${name} portmidi-static ${PM_NEEDED_LIBS}) +- add_dependencies(${name} portmidi-static) ++ target_link_libraries(${name} portmidi ${PM_NEEDED_LIBS}) ++ add_dependencies(${name} portmidi) + endmacro(make_a_test) + + make_a_test(test) -- cgit v1.2.3 From f65d59fc8e72f13933a9a9b795ef12b0f67d1f36 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 27 Apr 2016 21:25:14 +0200 Subject: gnu: Add python-pyportmidi. * gnu/packages/music.scm (python-pyportmidi): New variable. --- gnu/packages/music.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 96495bf660..fba43368a7 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -988,6 +988,40 @@ (define-public portmidi using a system-independent interface.") (license license:expat))) +(define-public python-pyportmidi + (package + (name "python-pyportmidi") + (version (package-version portmidi)) + (source (package-source portmidi)) + (build-system python-build-system) + (arguments + `(#:tests? #f ; no tests included + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'enter-dir + (lambda _ (chdir "pm_python") #t)) + (add-after 'enter-dir 'fix-setup.py + (lambda _ + (substitute* "setup.py" + ;; Use Python 3 syntax + (("print (\".*\")" _ text) + (string-append "print(" text ")\n")) + ;; TODO.txt and CHANGES.txt don't exist + (("CHANGES =.*") "CHANGES = \"\"\n") + (("TODO =.*") "TODO = \"\"\n")) + #t))))) + (inputs + `(("portmidi" ,portmidi) + ("alsa-lib" ,alsa-lib) + ("python-cython" ,python-cython))) + (native-inputs + `(("unzip" ,unzip))) + (home-page "http://portmedia.sourceforge.net/portmidi/") + (synopsis "Python bindings to PortMidi") + (description + "This package provides Python bindings to the PortMidi library.") + (license license:expat))) + (define-public frescobaldi (package (name "frescobaldi") -- cgit v1.2.3 From 6855b34754e5560040717922bdbc810547e2cc79 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 27 Apr 2016 21:25:42 +0200 Subject: gnu: frescobaldi: Add MIDI support. * gnu/packages/music.scm (frescobaldi)[inputs]: Add portmidi and python-pyportmidi. --- gnu/packages/music.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index fba43368a7..8465954dc7 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1037,8 +1037,10 @@ (define-public frescobaldi (build-system python-build-system) (inputs `(("lilypond" ,lilypond) + ("portmidi" ,portmidi) ("python-pyqt-4" ,python-pyqt-4) ("python-ly" ,python-ly) + ("python-pyportmidi" ,python-pyportmidi) ("poppler" ,poppler) ("python-poppler-qt4" ,python-poppler-qt4) ("python-sip" ,python-sip))) -- cgit v1.2.3 From 73124d34227a7df8a5319c5497f62c6323a64800 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 2 May 2016 19:41:55 +0200 Subject: gnu: bristol: Do not check for JACK with ldd. * gnu/packages/music.scm (bristol)[arguments]: Add build phase to disable runtime check for JACK. --- gnu/packages/music.scm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 8465954dc7..4946024264 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -831,6 +831,13 @@ (define-public bristol (string-prefix? "i686" system))) (substitute* "bristol/Makefile.in" (("-msse -mfpmath=sse") ""))) + #t)) + ;; We know that Bristol has been linked with JACK and we don't have + ;; ldd, so we can just skip this check. + (add-after 'unpack 'do-not-grep-for-jack + (lambda _ + (substitute* "bin/startBristol.in" + (("ldd `which bristol` | grep jack") "echo guix")) #t))))) (inputs `(("alsa-lib" ,alsa-lib) -- cgit v1.2.3 From 3854f3d7e4c6a23923c46806469678c63c392143 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 29 Apr 2016 20:55:19 -0400 Subject: gnu: ocaml: Fix CVE-2015-8869. * gnu/packages/patches/ocaml-CVE-2015-8869.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/ocaml.scm (ocaml): Use it. --- gnu/local.mk | 1 + gnu/packages/ocaml.scm | 3 +- gnu/packages/patches/ocaml-CVE-2015-8869.patch | 72 ++++++++++++++++++++++++++ 3 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/ocaml-CVE-2015-8869.patch diff --git a/gnu/local.mk b/gnu/local.mk index 7fefdf4349..a8d156dd89 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -642,6 +642,7 @@ dist_patch_DATA = \ gnu/packages/patches/nvi-assume-preserve-path.patch \ gnu/packages/patches/nvi-dbpagesize-binpower.patch \ gnu/packages/patches/nvi-db4.patch \ + gnu/packages/patches/ocaml-CVE-2015-8869.patch \ gnu/packages/patches/ocaml-findlib-make-install.patch \ gnu/packages/patches/openexr-missing-samples.patch \ gnu/packages/patches/openimageio-boost-1.60.patch \ diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 5d489532f7..434fb132bb 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -60,7 +60,8 @@ (define-public ocaml "/ocaml-" version ".tar.xz")) (sha256 (base32 - "1qwwvy8nzd87hk8rd9sm667nppakiapnx4ypdwcrlnav2dz6kil3")))) + "1qwwvy8nzd87hk8rd9sm667nppakiapnx4ypdwcrlnav2dz6kil3")) + (patches (search-patches "ocaml-CVE-2015-8869.patch")))) (build-system gnu-build-system) (native-search-paths (list (search-path-specification diff --git a/gnu/packages/patches/ocaml-CVE-2015-8869.patch b/gnu/packages/patches/ocaml-CVE-2015-8869.patch new file mode 100644 index 0000000000..0a4cb34d25 --- /dev/null +++ b/gnu/packages/patches/ocaml-CVE-2015-8869.patch @@ -0,0 +1,72 @@ +Adapted from upstream commit 659615c7b100a89eafe6253e7a5b9d84d0e8df74, +this patch omits the upstream changes to 'Changes' and 'VERSION'. + +http://seclists.org/oss-sec/2016/q2/170 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-8869 +https://github.com/ocaml/ocaml/commit/659615c7b100a89eafe6253e7a5b9d84d0e8df74 +--- + byterun/alloc.c | 4 ++-- + byterun/intern.c | 2 +- + byterun/str.c | 4 ++-- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/byterun/alloc.c b/byterun/alloc.c +index 96a21bf..0db9947 100644 +--- a/byterun/alloc.c ++++ b/byterun/alloc.c +@@ -153,7 +153,7 @@ CAMLexport int caml_convert_flag_list(value list, int *flags) + /* [size] is a [value] representing number of words (fields) */ + CAMLprim value caml_alloc_dummy(value size) + { +- mlsize_t wosize = Int_val(size); ++ mlsize_t wosize = Long_val(size); + + if (wosize == 0) return Atom(0); + return caml_alloc (wosize, 0); +@@ -169,7 +169,7 @@ CAMLprim value caml_alloc_dummy_function(value size,value arity) + /* [size] is a [value] representing number of floats. */ + CAMLprim value caml_alloc_dummy_float (value size) + { +- mlsize_t wosize = Int_val(size) * Double_wosize; ++ mlsize_t wosize = Long_val(size) * Double_wosize; + + if (wosize == 0) return Atom(0); + return caml_alloc (wosize, 0); +diff --git a/byterun/intern.c b/byterun/intern.c +index 89d13d1..7b8d049 100644 +--- a/byterun/intern.c ++++ b/byterun/intern.c +@@ -291,7 +291,7 @@ static void intern_rec(value *dest) + case OFreshOID: + /* Refresh the object ID */ + /* but do not do it for predefined exception slots */ +- if (Int_val(Field((value)dest, 1)) >= 0) ++ if (Long_val(Field((value)dest, 1)) >= 0) + caml_set_oo_id((value)dest); + /* Pop item and iterate */ + sp--; +diff --git a/byterun/str.c b/byterun/str.c +index 5ad4e29..885772f 100644 +--- a/byterun/str.c ++++ b/byterun/str.c +@@ -266,7 +266,7 @@ CAMLprim value caml_string_greaterequal(value s1, value s2) + CAMLprim value caml_blit_string(value s1, value ofs1, value s2, value ofs2, + value n) + { +- memmove(&Byte(s2, Long_val(ofs2)), &Byte(s1, Long_val(ofs1)), Int_val(n)); ++ memmove(&Byte(s2, Long_val(ofs2)), &Byte(s1, Long_val(ofs1)), Long_val(n)); + return Val_unit; + } + +@@ -278,7 +278,7 @@ CAMLprim value caml_fill_string(value s, value offset, value len, value init) + + CAMLprim value caml_bitvect_test(value bv, value n) + { +- int pos = Int_val(n); ++ intnat pos = Long_val(n); + return Val_int(Byte_u(bv, pos >> 3) & (1 << (pos & 7))); + } + +-- +2.7.4 + -- cgit v1.2.3 From 4c6aa73b8f9a16130ae9546efd8fdcb99fc034d9 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Wed, 27 Apr 2016 00:44:22 +0200 Subject: gnu: Add 4store. * gnu/packages/databases.scm (4store): New variable. * gnu/packages/patches/4store-fix-buildsystem.patch: New file. * gnu/local.mk (dist_patch_DATA): Add patch file entry. Signed-off-by: Leo Famulari --- gnu/local.mk | 1 + gnu/packages/databases.scm | 53 +++++++++++++++++++++ gnu/packages/patches/4store-fix-buildsystem.patch | 56 +++++++++++++++++++++++ 3 files changed, 110 insertions(+) create mode 100644 gnu/packages/patches/4store-fix-buildsystem.patch diff --git a/gnu/local.mk b/gnu/local.mk index a8d156dd89..4a36bb5a36 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -403,6 +403,7 @@ GNU_SYSTEM_MODULES = \ patchdir = $(guilemoduledir)/gnu/packages/patches dist_patch_DATA = \ + gnu/packages/patches/4store-fix-buildsystem.patch \ gnu/packages/patches/abiword-explictly-cast-bools.patch \ gnu/packages/patches/abiword-wmf-version-lookup-fix.patch \ gnu/packages/patches/acl-hurd-path-max.patch \ diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 9aee7b796a..63ca754688 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2015 Leo Famulari ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Nils Gillmann +;;; Copyright © 2016 Roel Janssen ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,8 +28,12 @@ (define-module (gnu packages databases) #:use-module (gnu packages) + #:use-module (gnu packages autotools) + #:use-module (gnu packages avahi) #:use-module (gnu packages bash) #:use-module (gnu packages boost) + #:use-module (gnu packages gettext) + #:use-module (gnu packages glib) #:use-module (gnu packages perl) #:use-module (gnu packages language) #:use-module (gnu packages linux) @@ -40,9 +45,12 @@ (define-module (gnu packages databases) #:use-module (gnu packages check) #:use-module (gnu packages algebra) #:use-module (gnu packages curl) + #:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages gnupg) #:use-module (gnu packages python) #:use-module (gnu packages pcre) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages rdf) #:use-module (gnu packages xml) #:use-module (gnu packages bison) #:use-module (gnu packages jemalloc) @@ -58,6 +66,51 @@ (define-module (gnu packages databases) #:use-module (srfi srfi-26) #:use-module (ice-9 match)) +(define-public 4store + (package + (name "4store") + (version "1.1.6") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/garlik/4store/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "004fmcf1w75zhc1x3zc6kc97j4jqn2v5nhk6yb3z3cpfrhzi9j50")) + (patches (list (search-patch "4store-fix-buildsystem.patch"))))) + (build-system gnu-build-system) + (native-inputs + `(("perl" ,perl) + ("python" ,python-2) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("gettext" ,gnu-gettext) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (inputs + `(("glib" ,glib) + ("rasqal" ,rasqal) + ("libxml2" ,libxml2) + ("raptor2" ,raptor2) + ("readline" ,readline) + ("avahi" ,avahi) + ("pcre" ,pcre) + ("cyrus-sasl" ,cyrus-sasl) + ("openssl" ,openssl) + ("util-linux" ,util-linux))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'generate-configure + (lambda _ + (zero? (system* "./autogen.sh"))))))) + ;; http://www.4store.org has been down for a while now. + (home-page "https://github.com/garlik/4store") + (synopsis "Clustered RDF storage and query engine") + (description "4store is a RDF/SPARQL store written in C, supporting +either single machines or networked clusters.") + (license gpl3+))) + (define-public gdbm (package (name "gdbm") diff --git a/gnu/packages/patches/4store-fix-buildsystem.patch b/gnu/packages/patches/4store-fix-buildsystem.patch new file mode 100644 index 0000000000..383baa9461 --- /dev/null +++ b/gnu/packages/patches/4store-fix-buildsystem.patch @@ -0,0 +1,56 @@ +This patch sets a fixed version to avoid needing Git and the .git/ folder. +It also removes the creation of "/var/lib/4store", which is not available +during the install phase in GNU Guix. + +Patch by Roel Janssen +*** a/configure.ac Wed Feb 4 19:05:24 2015 +--- b/configure.ac Wed Mar 23 11:20:38 2016 +*************** +*** 2,13 **** + # Process this file with autoconf to produce a configure script. + + AC_PREREQ([2.50]) +! AC_INIT([4store], m4_esyscmd([./version.sh .version]), [http://4store.org/support/], [4store]) + AC_CONFIG_SRCDIR([src/backend/backend-intl.h]) +! AM_INIT_AUTOMAKE([1.7 std-options -Wall]) + AC_CONFIG_HEADERS(4store-config.h) + + # Checks for programs. + AC_PROG_LIBTOOL + AC_PROG_AWK + AC_PROG_CC +--- 2,14 ---- + # Process this file with autoconf to produce a configure script. + + AC_PREREQ([2.50]) +! AC_INIT([4store], [1.1.6], [http://4store.org/support/], [4store]) + AC_CONFIG_SRCDIR([src/backend/backend-intl.h]) +! AM_INIT_AUTOMAKE([1.7 std-options foreign -Wall]) + AC_CONFIG_HEADERS(4store-config.h) + + # Checks for programs. ++ AM_PROG_AR + AC_PROG_LIBTOOL + AC_PROG_AWK + AC_PROG_CC + +*** a/src/utilities/Makefile.am Wed Feb 4 19:05:24 2015 +--- b/src/utilities/Makefile.am Wed Mar 23 14:05:56 2016 +*************** +*** 13,20 **** + noinst_PROGRAMS = lex-file-verify 4s-rid + + install-data-local: +! mkdir -p $(DESTDIR)@FS_STORE_ROOT@ +! chmod 1777 $(DESTDIR)@FS_STORE_ROOT@ + + 4s_backend_destroy_SOURCES = backend-destroy.c + 4s_backend_destroy_LDADD = ../common/lib4sintl.a +--- 13,19 ---- + noinst_PROGRAMS = lex-file-verify 4s-rid + + install-data-local: +! echo "Please create the following directory: " $(DESTDIR)@FS_STORE_ROOT@ + + 4s_backend_destroy_SOURCES = backend-destroy.c + 4s_backend_destroy_LDADD = ../common/lib4sintl.a -- cgit v1.2.3 From 0a17fd7c0b82ac315b68c88e6f206e0051dcd661 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 3 May 2016 09:33:47 -0400 Subject: gnu: wpa-supplicant: Add fixes for CVE-2016-{4476,4477}. * gnu/packages/patches/wpa-supplicant-CVE-2016-4476.patch, gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt1.patch, gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt2.patch, gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt3.patch, gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt4.patch: New files. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/admin.scm (wpa-supplicant-minimal)[source]: Add patches. --- gnu/local.mk | 5 ++ gnu/packages/admin.scm | 7 +- .../patches/wpa-supplicant-CVE-2016-4476.patch | 82 ++++++++++++++++++++++ .../patches/wpa-supplicant-CVE-2016-4477-pt1.patch | 51 ++++++++++++++ .../patches/wpa-supplicant-CVE-2016-4477-pt2.patch | 82 ++++++++++++++++++++++ .../patches/wpa-supplicant-CVE-2016-4477-pt3.patch | 62 ++++++++++++++++ .../patches/wpa-supplicant-CVE-2016-4477-pt4.patch | 50 +++++++++++++ 7 files changed, 338 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/wpa-supplicant-CVE-2016-4476.patch create mode 100644 gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt1.patch create mode 100644 gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt2.patch create mode 100644 gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt3.patch create mode 100644 gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt4.patch diff --git a/gnu/local.mk b/gnu/local.mk index 4a36bb5a36..a01efa9224 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -794,6 +794,11 @@ dist_patch_DATA = \ gnu/packages/patches/wpa-supplicant-CVE-2015-5314.patch \ gnu/packages/patches/wpa-supplicant-CVE-2015-5315.patch \ gnu/packages/patches/wpa-supplicant-CVE-2015-5316.patch \ + gnu/packages/patches/wpa-supplicant-CVE-2016-4476.patch \ + gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt1.patch \ + gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt2.patch \ + gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt3.patch \ + gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt4.patch \ gnu/packages/patches/xdotool-fix-makefile.patch \ gnu/packages/patches/xf86-video-ark-remove-mibstore.patch \ gnu/packages/patches/xf86-video-ast-remove-mibstore.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 11a2d1622b..d815dfb8b5 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -874,7 +874,12 @@ (define-public wpa-supplicant-minimal (search-patches "wpa-supplicant-CVE-2015-5310.patch" "wpa-supplicant-CVE-2015-5314.patch" "wpa-supplicant-CVE-2015-5315.patch" - "wpa-supplicant-CVE-2015-5316.patch")))) + "wpa-supplicant-CVE-2015-5316.patch" + "wpa-supplicant-CVE-2016-4476.patch" + "wpa-supplicant-CVE-2016-4477-pt1.patch" + "wpa-supplicant-CVE-2016-4477-pt2.patch" + "wpa-supplicant-CVE-2016-4477-pt3.patch" + "wpa-supplicant-CVE-2016-4477-pt4.patch")))) (build-system gnu-build-system) (arguments '(#:phases (alist-replace diff --git a/gnu/packages/patches/wpa-supplicant-CVE-2016-4476.patch b/gnu/packages/patches/wpa-supplicant-CVE-2016-4476.patch new file mode 100644 index 0000000000..acad6be0a4 --- /dev/null +++ b/gnu/packages/patches/wpa-supplicant-CVE-2016-4476.patch @@ -0,0 +1,82 @@ +From ecbb0b3dc122b0d290987cf9c84010bbe53e1022 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Fri, 4 Mar 2016 17:20:18 +0200 +Subject: [PATCH 1/5] WPS: Reject a Credential with invalid passphrase + +WPA/WPA2-Personal passphrase is not allowed to include control +characters. Reject a Credential received from a WPS Registrar both as +STA (Credential) and AP (AP Settings) if the credential is for WPAPSK or +WPA2PSK authentication type and includes an invalid passphrase. + +This fixes an issue where hostapd or wpa_supplicant could have updated +the configuration file PSK/passphrase parameter with arbitrary data from +an external device (Registrar) that may not be fully trusted. Should +such data include a newline character, the resulting configuration file +could become invalid and fail to be parsed. + +Signed-off-by: Jouni Malinen +--- + src/utils/common.c | 12 ++++++++++++ + src/utils/common.h | 1 + + src/wps/wps_attr_process.c | 10 ++++++++++ + 3 files changed, 23 insertions(+) + +diff --git a/src/utils/common.c b/src/utils/common.c +index 450e2c6..27b7c02 100644 +--- a/src/utils/common.c ++++ b/src/utils/common.c +@@ -697,6 +697,18 @@ int is_hex(const u8 *data, size_t len) + } + + ++int has_ctrl_char(const u8 *data, size_t len) ++{ ++ size_t i; ++ ++ for (i = 0; i < len; i++) { ++ if (data[i] < 32 || data[i] == 127) ++ return 1; ++ } ++ return 0; ++} ++ ++ + size_t merge_byte_arrays(u8 *res, size_t res_len, + const u8 *src1, size_t src1_len, + const u8 *src2, size_t src2_len) +diff --git a/src/utils/common.h b/src/utils/common.h +index 701dbb2..a972240 100644 +--- a/src/utils/common.h ++++ b/src/utils/common.h +@@ -488,6 +488,7 @@ const char * wpa_ssid_txt(const u8 *ssid, size_t ssid_len); + + char * wpa_config_parse_string(const char *value, size_t *len); + int is_hex(const u8 *data, size_t len); ++int has_ctrl_char(const u8 *data, size_t len); + size_t merge_byte_arrays(u8 *res, size_t res_len, + const u8 *src1, size_t src1_len, + const u8 *src2, size_t src2_len); +diff --git a/src/wps/wps_attr_process.c b/src/wps/wps_attr_process.c +index eadb22f..e8c4579 100644 +--- a/src/wps/wps_attr_process.c ++++ b/src/wps/wps_attr_process.c +@@ -229,6 +229,16 @@ static int wps_workaround_cred_key(struct wps_credential *cred) + cred->key_len--; + #endif /* CONFIG_WPS_STRICT */ + } ++ ++ ++ if (cred->auth_type & (WPS_AUTH_WPAPSK | WPS_AUTH_WPA2PSK) && ++ (cred->key_len < 8 || has_ctrl_char(cred->key, cred->key_len))) { ++ wpa_printf(MSG_INFO, "WPS: Reject credential with invalid WPA/WPA2-Personal passphrase"); ++ wpa_hexdump_ascii_key(MSG_INFO, "WPS: Network Key", ++ cred->key, cred->key_len); ++ return -1; ++ } ++ + return 0; + } + +-- +1.9.1 + diff --git a/gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt1.patch b/gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt1.patch new file mode 100644 index 0000000000..507a96e47c --- /dev/null +++ b/gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt1.patch @@ -0,0 +1,51 @@ +From 73e4abb24a936014727924d8b0b2965edfc117dd Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Fri, 4 Mar 2016 18:46:41 +0200 +Subject: [PATCH 2/5] Reject psk parameter set with invalid passphrase + character + +WPA/WPA2-Personal passphrase is not allowed to include control +characters. Reject a passphrase configuration attempt if that passphrase +includes an invalid passphrase. + +This fixes an issue where wpa_supplicant could have updated the +configuration file psk parameter with arbitrary data from the control +interface or D-Bus interface. While those interfaces are supposed to be +accessible only for trusted users/applications, it may be possible that +an untrusted user has access to a management software component that +does not validate the passphrase value before passing it to +wpa_supplicant. + +This could allow such an untrusted user to inject up to 63 characters of +almost arbitrary data into the configuration file. Such configuration +file could result in wpa_supplicant trying to load a library (e.g., +opensc_engine_path, pkcs11_engine_path, pkcs11_module_path, +load_dynamic_eap) from user controlled location when starting again. +This would allow code from that library to be executed under the +wpa_supplicant process privileges. + +Signed-off-by: Jouni Malinen +--- + wpa_supplicant/config.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c +index b1c7870..fdd9643 100644 +--- a/wpa_supplicant/config.c ++++ b/wpa_supplicant/config.c +@@ -478,6 +478,12 @@ static int wpa_config_parse_psk(const struct parse_data *data, + } + wpa_hexdump_ascii_key(MSG_MSGDUMP, "PSK (ASCII passphrase)", + (u8 *) value, len); ++ if (has_ctrl_char((u8 *) value, len)) { ++ wpa_printf(MSG_ERROR, ++ "Line %d: Invalid passphrase character", ++ line); ++ return -1; ++ } + if (ssid->passphrase && os_strlen(ssid->passphrase) == len && + os_memcmp(ssid->passphrase, value, len) == 0) { + /* No change to the previously configured value */ +-- +1.9.1 + diff --git a/gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt2.patch b/gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt2.patch new file mode 100644 index 0000000000..684d25de96 --- /dev/null +++ b/gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt2.patch @@ -0,0 +1,82 @@ +From 0fe5a234240a108b294a87174ad197f6b5cb38e9 Mon Sep 17 00:00:00 2001 +From: Paul Stewart +Date: Thu, 3 Mar 2016 15:40:19 -0800 +Subject: [PATCH 3/5] Remove newlines from wpa_supplicant config network + output + +Spurious newlines output while writing the config file can corrupt the +wpa_supplicant configuration. Avoid writing these for the network block +parameters. This is a generic filter that cover cases that may not have +been explicitly addressed with a more specific commit to avoid control +characters in the psk parameter. + +Signed-off-by: Paul Stewart +--- + src/utils/common.c | 11 +++++++++++ + src/utils/common.h | 1 + + wpa_supplicant/config.c | 15 +++++++++++++-- + 3 files changed, 25 insertions(+), 2 deletions(-) + +diff --git a/src/utils/common.c b/src/utils/common.c +index 27b7c02..9856463 100644 +--- a/src/utils/common.c ++++ b/src/utils/common.c +@@ -709,6 +709,17 @@ int has_ctrl_char(const u8 *data, size_t len) + } + + ++int has_newline(const char *str) ++{ ++ while (*str) { ++ if (*str == '\n' || *str == '\r') ++ return 1; ++ str++; ++ } ++ return 0; ++} ++ ++ + size_t merge_byte_arrays(u8 *res, size_t res_len, + const u8 *src1, size_t src1_len, + const u8 *src2, size_t src2_len) +diff --git a/src/utils/common.h b/src/utils/common.h +index a972240..d19927b 100644 +--- a/src/utils/common.h ++++ b/src/utils/common.h +@@ -489,6 +489,7 @@ const char * wpa_ssid_txt(const u8 *ssid, size_t ssid_len); + char * wpa_config_parse_string(const char *value, size_t *len); + int is_hex(const u8 *data, size_t len); + int has_ctrl_char(const u8 *data, size_t len); ++int has_newline(const char *str); + size_t merge_byte_arrays(u8 *res, size_t res_len, + const u8 *src1, size_t src1_len, + const u8 *src2, size_t src2_len); +diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c +index fdd9643..eb97cd5 100644 +--- a/wpa_supplicant/config.c ++++ b/wpa_supplicant/config.c +@@ -2699,8 +2699,19 @@ char * wpa_config_get(struct wpa_ssid *ssid, const char *var) + + for (i = 0; i < NUM_SSID_FIELDS; i++) { + const struct parse_data *field = &ssid_fields[i]; +- if (os_strcmp(var, field->name) == 0) +- return field->writer(field, ssid); ++ if (os_strcmp(var, field->name) == 0) { ++ char *ret = field->writer(field, ssid); ++ ++ if (ret && has_newline(ret)) { ++ wpa_printf(MSG_ERROR, ++ "Found newline in value for %s; not returning it", ++ var); ++ os_free(ret); ++ ret = NULL; ++ } ++ ++ return ret; ++ } + } + + return NULL; +-- +1.9.1 + diff --git a/gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt3.patch b/gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt3.patch new file mode 100644 index 0000000000..2dd38fee31 --- /dev/null +++ b/gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt3.patch @@ -0,0 +1,62 @@ +From b166cd84a77a6717be9600bf95378a0055d6f5a5 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Tue, 5 Apr 2016 23:33:10 +0300 +Subject: [PATCH 4/5] Reject SET_CRED commands with newline characters in the + string values + +Most of the cred block parameters are written as strings without +filtering and if there is an embedded newline character in the value, +unexpected configuration file data might be written. + +This fixes an issue where wpa_supplicant could have updated the +configuration file cred parameter with arbitrary data from the control +interface or D-Bus interface. While those interfaces are supposed to be +accessible only for trusted users/applications, it may be possible that +an untrusted user has access to a management software component that +does not validate the credential value before passing it to +wpa_supplicant. + +This could allow such an untrusted user to inject almost arbitrary data +into the configuration file. Such configuration file could result in +wpa_supplicant trying to load a library (e.g., opensc_engine_path, +pkcs11_engine_path, pkcs11_module_path, load_dynamic_eap) from user +controlled location when starting again. This would allow code from that +library to be executed under the wpa_supplicant process privileges. + +Signed-off-by: Jouni Malinen +--- + wpa_supplicant/config.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c +index eb97cd5..69152ef 100644 +--- a/wpa_supplicant/config.c ++++ b/wpa_supplicant/config.c +@@ -2896,6 +2896,8 @@ int wpa_config_set_cred(struct wpa_cred *cred, const char *var, + + if (os_strcmp(var, "password") == 0 && + os_strncmp(value, "ext:", 4) == 0) { ++ if (has_newline(value)) ++ return -1; + str_clear_free(cred->password); + cred->password = os_strdup(value); + cred->ext_password = 1; +@@ -2946,9 +2948,14 @@ int wpa_config_set_cred(struct wpa_cred *cred, const char *var, + } + + val = wpa_config_parse_string(value, &len); +- if (val == NULL) { ++ if (val == NULL || ++ (os_strcmp(var, "excluded_ssid") != 0 && ++ os_strcmp(var, "roaming_consortium") != 0 && ++ os_strcmp(var, "required_roaming_consortium") != 0 && ++ has_newline(val))) { + wpa_printf(MSG_ERROR, "Line %d: invalid field '%s' string " + "value '%s'.", line, var, value); ++ os_free(val); + return -1; + } + +-- +1.9.1 + diff --git a/gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt4.patch b/gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt4.patch new file mode 100644 index 0000000000..5f42aa9219 --- /dev/null +++ b/gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt4.patch @@ -0,0 +1,50 @@ +From 2a3f56502b52375c3bf113cf92adfa99bad6b488 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Tue, 5 Apr 2016 23:55:48 +0300 +Subject: [PATCH 5/5] Reject SET commands with newline characters in the + string values + +Many of the global configuration parameters are written as strings +without filtering and if there is an embedded newline character in the +value, unexpected configuration file data might be written. + +This fixes an issue where wpa_supplicant could have updated the +configuration file global parameter with arbitrary data from the control +interface or D-Bus interface. While those interfaces are supposed to be +accessible only for trusted users/applications, it may be possible that +an untrusted user has access to a management software component that +does not validate the value of a parameter before passing it to +wpa_supplicant. + +This could allow such an untrusted user to inject almost arbitrary data +into the configuration file. Such configuration file could result in +wpa_supplicant trying to load a library (e.g., opensc_engine_path, +pkcs11_engine_path, pkcs11_module_path, load_dynamic_eap) from user +controlled location when starting again. This would allow code from that +library to be executed under the wpa_supplicant process privileges. + +Signed-off-by: Jouni Malinen +--- + wpa_supplicant/config.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c +index 69152ef..d9a1603 100644 +--- a/wpa_supplicant/config.c ++++ b/wpa_supplicant/config.c +@@ -3764,6 +3764,12 @@ static int wpa_global_config_parse_str(const struct global_parse_data *data, + return -1; + } + ++ if (has_newline(pos)) { ++ wpa_printf(MSG_ERROR, "Line %d: invalid %s value with newline", ++ line, data->name); ++ return -1; ++ } ++ + tmp = os_strdup(pos); + if (tmp == NULL) + return -1; +-- +1.9.1 + -- cgit v1.2.3 From a8f3424b25cbbc585126420bcc1434c4a2398588 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 2 May 2016 08:59:57 +0200 Subject: syscalls: Wrap TCSA* constants in 'tcsetattr-action' macro. * guix/build/syscalls.scm (tcsetattr-action): New macro. (TCSANOW, TCSADRAIN, TCSAFLUSH): Remove. (tcsetattr): Adjust docstring accordingly. * tests/syscalls.scm ("tcsetattr"): Adjust accordingly. --- guix/build/syscalls.scm | 16 ++++++++-------- tests/syscalls.scm | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm index 4e543d70d8..a9cd6e93c8 100644 --- a/guix/build/syscalls.scm +++ b/guix/build/syscalls.scm @@ -110,9 +110,7 @@ (define-module (guix build syscalls) termios-input-speed termios-output-speed local-flags - TCSANOW - TCSADRAIN - TCSAFLUSH + tcsetattr-action tcgetattr tcsetattr @@ -1059,9 +1057,11 @@ (define IEXTEN #o0100000) (define EXTPROC #o0200000)) ;; "Actions" values for 'tcsetattr'. -(define TCSANOW 0) -(define TCSADRAIN 1) -(define TCSAFLUSH 2) +(define-bits tcsetattr-action + %unused-tcsetattr-action->symbols + (define TCSANOW 0) + (define TCSADRAIN 1) + (define TCSAFLUSH 2)) (define-record-type (termios input-flags output-flags control-flags local-flags @@ -1107,8 +1107,8 @@ (define tcgetattr (define tcsetattr (let ((proc (syscall->procedure int "tcsetattr" (list int int '*)))) (lambda (fd actions termios) - "Use TERMIOS for the tty at FD. ACTIONS is one of 'TCSANOW', -'TCSADRAIN', or 'TCSAFLUSH'; see tcsetattr(3) for details." + "Use TERMIOS for the tty at FD. ACTIONS is one of of the values +produced by 'tcsetattr-action'; see tcsetattr(3) for details." (define bv (make-bytevector sizeof-termios)) diff --git a/tests/syscalls.scm b/tests/syscalls.scm index ab1e13984d..0b73fb4b0c 100644 --- a/tests/syscalls.scm +++ b/tests/syscalls.scm @@ -281,7 +281,7 @@ (define perform-container-tests? (test-assert "tcsetattr" (let ((first (tcgetattr 0))) - (tcsetattr 0 TCSANOW first) + (tcsetattr 0 (tcsetattr-action TCSANOW) first) (equal? first (tcgetattr 0)))) (test-assert "terminal-window-size ENOTTY" -- cgit v1.2.3 From efc4eb147512fa7a2c6d74d9b296cfc22b1ef198 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Fri, 29 Apr 2016 17:12:22 +0200 Subject: gnu: cross: Use CROSS_*_INCLUDE_PATH for system headers. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/patches/gcc-cross-environment-variables.patch: Also use CROSS_ variants: CROSS_C_INCLUDE_PATH, CROSS_CPLUS_INCLUDE_PATH, CROSS_OBJC_INCLUDE_PATH, CROSS_OBJCPLUS_INCLUDE_PATH to be used for system libraries, see https://lists.gnu.org/archive/html/guix-devel/2016-04/msg00620.html. * gnu/packages/cross-base.scm (cross-gcc, cross-gcc-arguments, cross-libc): Use CROSS_*_INCLUDE_PATH (WAS: CPATH). Signed-off-by: Ludovic Courtès --- gnu/packages/cross-base.scm | 71 ++++++++++++++-------- .../patches/gcc-cross-environment-variables.patch | 51 ++++++++++------ 2 files changed, 79 insertions(+), 43 deletions(-) diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index aa67d21c19..7c76f60a4f 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2016 Jan Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -166,36 +167,40 @@ (define (cross-gcc-arguments target libc) `(alist-cons-before 'configure 'set-cross-path (lambda* (#:key inputs #:allow-other-keys) - ;; Add the cross Linux headers to CROSS_CPATH, and remove them - ;; from CPATH. + ;; Add the cross Linux headers to CROSS_C_*_INCLUDE_PATH, + ;; and remove them from C_*INCLUDE_PATH. (let ((libc (assoc-ref inputs "libc")) (linux (assoc-ref inputs "xlinux-headers"))) (define (cross? x) ;; Return #t if X is a cross-libc or cross Linux. (or (string-prefix? libc x) (string-prefix? linux x))) - - (setenv "CROSS_CPATH" - (string-append libc "/include:" - linux "/include")) + (let ((cpath (string-append + libc "/include" + ":" linux "/include"))) + (for-each (cut setenv <> cpath) + '("CROSS_C_INCLUDE_PATH" + "CROSS_CPLUS_INCLUDE_PATH" + "CROSS_OBJC_INCLUDE_PATH" + "CROSS_OBJCPLUS_INCLUDE_PATH"))) (setenv "CROSS_LIBRARY_PATH" (string-append libc "/lib")) - - (let ((cpath (search-path-as-string->list - (getenv "C_INCLUDE_PATH"))) - (libpath (search-path-as-string->list - (getenv "LIBRARY_PATH")))) - (setenv "CPATH" - (list->search-path-as-string - (remove cross? cpath) ":")) - (for-each unsetenv - '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH")) - (setenv "LIBRARY_PATH" - (list->search-path-as-string - (remove cross? libpath) ":")) - #t))) - ,phases) - phases))))))) + (for-each + (lambda (var) + (and=> (getenv var) + (lambda (value) + (let* ((path (search-path-as-string->list value)) + (native-path (list->search-path-as-string + (remove cross? path) ":"))) + (setenv var native-path))))) + '("C_INCLUDE_PATH" + "CPLUS_INCLUDE_PATH" + "OBJC_INCLUDE_PATH" + "OBJCPLUS_INCLUDE_PATH" + "LIBRARY_PATH")) + #t)) + ,phases)) + (else phases))))))) (define (cross-gcc-patches target) "Return GCC patches needed for TARGET." @@ -259,9 +264,19 @@ (define* (cross-gcc target (inputs '()) ;; Only search target inputs, not host inputs. + ;; Note: See for why not 'CPATH'. (search-paths (list (search-path-specification - (variable "CROSS_CPATH") + (variable "CROSS_C_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "CROSS_CPLUS_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "CROSS_OBJC_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "CROSS_OBJCPLUS_INCLUDE_PATH") (files '("include"))) (search-path-specification (variable "CROSS_LIBRARY_PATH") @@ -316,9 +331,13 @@ (define xlinux-headers `(alist-cons-before 'configure 'set-cross-linux-headers-path (lambda* (#:key inputs #:allow-other-keys) - (let ((linux (assoc-ref inputs "linux-headers"))) - (setenv "CROSS_CPATH" - (string-append linux "/include")) + (let* ((linux (assoc-ref inputs "linux-headers")) + (cpath (string-append linux "/include"))) + (for-each (cut setenv <> cpath) + '("CROSS_C_INCLUDE_PATH" + "CROSS_CPLUS_INCLUDE_PATH" + "CROSS_OBJC_INCLUDE_PATH" + "CROSS_OBJCPLUS_INCLUDE_PATH")) #t)) ,phases)))) diff --git a/gnu/packages/patches/gcc-cross-environment-variables.patch b/gnu/packages/patches/gcc-cross-environment-variables.patch index 0bd0be5984..ec4378e2d2 100644 --- a/gnu/packages/patches/gcc-cross-environment-variables.patch +++ b/gnu/packages/patches/gcc-cross-environment-variables.patch @@ -1,9 +1,23 @@ Search path environment variables for cross-compilers. See the discussion at . ---- gcc-4.7.2/gcc/incpath.c 2012-01-27 00:34:58.000000000 +0100 -+++ gcc-4.7.2/gcc/incpath.c 2013-02-12 10:11:27.000000000 +0100 -@@ -452,7 +452,7 @@ register_include_chains (cpp_reader *pfi +Note: Touch 'C_INCLUDE_PATH' et al. rather than 'CPATH', as discussed +at . + +--- a/gcc/incpath.c ++++ b/gcc/incpath.c +@@ -461,8 +461,8 @@ register_include_chains (cpp_reader *pfile, const char *sysroot, + int stdinc, int cxx_stdinc, int verbose) + { + static const char *const lang_env_vars[] = +- { "C_INCLUDE_PATH", "CPLUS_INCLUDE_PATH", +- "OBJC_INCLUDE_PATH", "OBJCPLUS_INCLUDE_PATH" }; ++ { "CROSS_C_INCLUDE_PATH", "CROSS_CPLUS_INCLUDE_PATH", ++ "CROSS_OBJC_INCLUDE_PATH", "CROSS_OBJCPLUS_INCLUDE_PATH" }; + cpp_options *cpp_opts = cpp_get_options (pfile); + size_t idx = (cpp_opts->objc ? 2: 0); + +@@ -473,7 +473,7 @@ register_include_chains (cpp_reader *pfile, const char *sysroot, /* CPATH and language-dependent environment variables may add to the include chain. */ @@ -12,20 +26,22 @@ at . add_env_var_paths (lang_env_vars[idx], SYSTEM); target_c_incpath.extra_pre_includes (sysroot, iprefix, stdinc); - ---- gcc-4.7.2/gcc/system.h 2012-02-17 00:16:28.000000000 +0100 -+++ gcc-4.7.2/gcc/system.h 2013-02-12 10:22:17.000000000 +0100 -@@ -1023,4 +1023,6 @@ helper_const_non_const_cast (const char - #define DEBUG_VARIABLE - #endif +diff --git a/gcc/system.h b/gcc/system.h +index 42bc509..af3b9ad 100644 +--- a/gcc/system.h ++++ b/gcc/system.h +@@ -1063,4 +1063,6 @@ helper_const_non_const_cast (const char *p) + /* Get definitions of HOST_WIDE_INT and HOST_WIDEST_INT. */ + #include "hwint.h" +#define LIBRARY_PATH_ENV "CROSS_LIBRARY_PATH" + #endif /* ! GCC_SYSTEM_H */ - ---- gcc-4.7.2/gcc/tlink.c 2012-02-11 09:50:23.000000000 +0100 -+++ gcc-4.7.2/gcc/tlink.c 2013-05-23 22:06:19.000000000 +0200 -@@ -461,7 +461,7 @@ recompile_files (void) +diff --git a/gcc/tlink.c b/gcc/tlink.c +index bc358b8..ad6242f 100644 +--- a/gcc/tlink.c ++++ b/gcc/tlink.c +@@ -458,7 +458,7 @@ recompile_files (void) file *f; putenv (xstrdup ("COMPILER_PATH=")); @@ -34,10 +50,11 @@ at . while ((f = file_pop ()) != NULL) { - ---- gcc-4.7.3/gcc/gcc.c 2013-03-08 08:25:09.000000000 +0100 -+++ gcc-4.7.3/gcc/gcc.c 2013-05-24 08:58:16.000000000 +0200 -@@ -3726,7 +3726,7 @@ process_command (unsigned int decoded_op +diff --git a/gcc/gcc.c b/gcc/gcc.c +index adbf0c4..70448c6 100644 +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -3853,7 +3853,7 @@ process_command (unsigned int decoded_options_count, } temp = getenv (LIBRARY_PATH_ENV); -- cgit v1.2.3 From e760ec4187244c0960f21803abef1849c97a8203 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 3 May 2016 17:34:54 +0200 Subject: gnu: gcc: Add 6.1.0. * gnu/packages/gcc.scm (gcc-6): New variable. * gnu/packages/commencement.scm (gcc-toolchain-6): New variable. --- gnu/packages/commencement.scm | 3 +++ gnu/packages/gcc.scm | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 6dfe5c9cb7..c52b6e8389 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -879,4 +879,7 @@ (define-public gcc-toolchain-4.9 (define-public gcc-toolchain-5 (gcc-toolchain gcc-5)) +(define-public gcc-toolchain-6 + (gcc-toolchain gcc-6)) + ;;; commencement.scm ends here diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index a2b8126872..c390a6659b 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2014, 2015, 2016 Ricardo Wurmus ;;; Copyright © 2015 Andreas Enge @@ -354,6 +354,19 @@ (define-public gcc-5 "1ny4smkp5bzs3cp8ss7pl6lk8yss0d9m4av1mvdp72r1x695akxq")) (patches (search-patches "gcc-5.0-libvtv-runpath.patch")))))) +(define-public gcc-6 + (package + (inherit gcc-5) + (version "6.1.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gcc/gcc-" + version "/gcc-" version ".tar.bz2")) + (sha256 + (base32 + "0ld3y4rgimyqgx1nwvzqyl5gr4wzc0ch4akkvsqp3fgbmdfcii09")) + (patches (search-patches "gcc-5.0-libvtv-runpath.patch")))))) + ;; Note: When changing the default gcc version, update ;; the gcc-toolchain-* definitions accordingly. (define-public gcc gcc-4.9) -- cgit v1.2.3 From 3c1d2981ff0cc63c74d10e78fe9e2b056e9f4ac0 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 3 May 2016 13:06:00 -0400 Subject: gnu: openssl: Replace with 1.0.2h [security fixes]. Fixes CVE-2016-{2105,2106,2107,2109,2176}. * gnu/packages/tls.scm (openssl)[replacement]: New field. (openssl/fixed): New variable. --- gnu/packages/tls.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 0f4441d70c..6685ee0349 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -198,6 +198,7 @@ (define-public openssl (package (name "openssl") (version "1.0.2g") + (replacement openssl/fixed) (source (origin (method url-fetch) (uri (list (string-append "ftp://ftp.openssl.org/source/" @@ -298,6 +299,25 @@ (define-public openssl (license license:openssl) (home-page "http://www.openssl.org/"))) +(define openssl/fixed + (package + (inherit openssl) + (source + (let ((name "openssl") + (version "1.0.2h")) + (origin + (method url-fetch) + (uri (list (string-append "ftp://ftp.openssl.org/source/" + name "-" version ".tar.gz") + (string-append "ftp://ftp.openssl.org/source/old/" + (string-trim-right version char-set:letter) + "/" name "-" version ".tar.gz"))) + (sha256 + (base32 + "06996ds1rk8xhnyb5y273a7xkcxhggp4bq1g02rab55d7bjhfh0x")) + (patches (search-patches "openssl-runpath.patch" + "openssl-c-rehash-in.patch"))))))) + (define-public libressl (package (name "libressl") -- cgit v1.2.3 From 5b8a85431dd746eb975d70fe31aeb05609946d80 Mon Sep 17 00:00:00 2001 From: Kei Yamashita Date: Tue, 3 May 2016 12:04:38 -0400 Subject: gnu: Rename redeclipse package to red-eclipse. * gnu/packages/games.scm (redeclipse): Rename to... (red-eclipse): ...this. Signed-off-by: Andreas Enge --- gnu/packages/games.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 34998cea28..52a7f9b73e 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2133,7 +2133,7 @@ (define-public redeclipse ("weapons" "1ghn6nfcnd5lyl8dnj22csldvf9hrb32wjzpab4sjjz3iyv0zmr3") ("wicked" "0q9badvg6ix5rhl05s83kw2v6a49jpnbkqk4ls89qahaddfagi8g")))) (package - (name "redeclipse") + (name "red-eclipse") (version "1.5.3") (source (origin (method url-fetch) -- cgit v1.2.3 From 5ef819cc01126fd28938ec5d148ae4c1a3f6a912 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Tue, 3 May 2016 21:25:31 +0200 Subject: gnu: redeclipse: Rename to red-eclipse. * gnu/packages/games.scm (redeclipse): Rename to... (red-eclipse): ...this. This is a follow-up to commit 5b8a85431dd746eb975d70fe31aeb05609946d80, which changed only the name field of the package. --- gnu/packages/games.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 52a7f9b73e..55bffe9539 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2097,7 +2097,7 @@ (define-public powwow http://lavachat.symlynx.com/unix/") (license license:gpl2+))) -(define-public redeclipse +(define-public red-eclipse (let ((data-sources '(("acerspyro" "0gxxr6nbac918b49x1cp72nw951hqm5m4iyi2shb1612ly384w8q") ("actors" "1jq9q82m6nx07nwpb5cnpdcwa33jrcgg0j2yir8zk6zpnxdmp0il") -- cgit v1.2.3 From 1b39a196f82a4ce2d2e93b244c278e55650f65c5 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Tue, 3 May 2016 14:30:25 +0200 Subject: gnu: Add nlopt. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/maths.scm (nlopt): New variable. Co-authored-by: Ludovic Courtès --- gnu/packages/maths.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index d37897da20..9ba7138f88 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -59,6 +59,7 @@ (define-module (gnu packages maths) #:use-module (gnu packages less) #:use-module (gnu packages lisp) #:use-module (gnu packages gnome) + #:use-module (gnu packages guile) #:use-module (gnu packages xorg) #:use-module (gnu packages gl) #:use-module (gnu packages m4) @@ -430,6 +431,44 @@ (define-public hdf5 (license (license:x11-style "http://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/COPYING")))) +(define-public nlopt + (package + (name "nlopt") + (version "2.4.2") + (source (origin + (method url-fetch) + (uri (string-append "http://ab-initio.mit.edu/nlopt/nlopt-" + version ".tar.gz")) + (sha256 + (base32 "12cfkkhcdf4zmb6h7y6qvvdvqjs2xf9sjpa3rl3bq76px4yn76c0")))) + (build-system gnu-build-system) + (arguments + `(;; Shared libraries are not built by default. They are required to + ;; build the Guile, Octave, and Python bindings. + #:configure-flags '("--enable-shared") + + #:phases + (modify-phases %standard-phases + (add-before 'configure 'set-libnlopt-file-name + (lambda* (#:key outputs #:allow-other-keys) + ;; Make sure the Scheme module refers to the library by its + ;; absolute file name (we cannot do that from a snippet + ;; because the expansion of @libdir@ contains + ;; ${exec_prefix}.) + (let ((out (assoc-ref outputs "out"))) + (substitute* "swig/nlopt.scm.in" + (("libnlopt") + (string-append out "/lib/libnlopt"))) + #t)))))) + (inputs `(("guile" ,guile-2.0))) + (native-inputs `(("pkg-config" ,pkg-config))) + (home-page "http://ab-initio.mit.edu/wiki/") + (synopsis "Library for nonlinear optimization") + (description "NLopt is a library for nonlinear optimization, providing a +common interface for a number of different free optimization routines available +online as well as original implementations of various other algorithms.") + (license license:lgpl2.1+))) + ;; For a fully featured Octave, users are strongly recommended also to install ;; the following packages: texinfo, less, ghostscript, gnuplot. -- cgit v1.2.3 From 0a0884c9916d2d4632c6b86a917ce1fa038cf7a7 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 3 May 2016 23:43:49 +0200 Subject: gnu: cross: Fix typo. * gnu/packages/cross-base.scm (cross-gcc-arguments): Remove erroneous 'else' introduced in efc4eb147512fa7a2c6d74d9b296cfc22b1ef198. --- gnu/packages/cross-base.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index 7c76f60a4f..73ac76a48a 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -199,8 +199,8 @@ (define (cross? x) "OBJCPLUS_INCLUDE_PATH" "LIBRARY_PATH")) #t)) - ,phases)) - (else phases))))))) + ,phases) + phases))))))) (define (cross-gcc-patches target) "Return GCC patches needed for TARGET." -- cgit v1.2.3 From 940f8d39a5a39a7ef1a67323d6a4070440402ab6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 28 Apr 2016 05:20:45 +0300 Subject: gnu: pinentry: Rename to pinentry-gtk2. * gnu/packages/gnupg.scm (pinentry): Rename to pinentry-gtk2. Define pinentry as pinentry-gtk2. --- gnu/packages/gnupg.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index d447007260..6e16429126 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -568,9 +568,9 @@ (define-public signing-party (license license:gpl2) (home-page "http://pgp-tools.alioth.debian.org/"))) -(define-public pinentry +(define-public pinentry-gtk2 (package - (name "pinentry") + (name "pinentry-gtk2") (version "0.9.7") (source (origin (method url-fetch) @@ -595,6 +595,10 @@ (define-public pinentry enter a passphrase when `gpg' or `gpg2' is run and needs it.") (license license:gpl2+))) +(define-public pinentry + (package (inherit pinentry-gtk2) + (name "pinentry"))) + (define-public paperkey (package (name "paperkey") -- cgit v1.2.3 From c607b7011c55932b46c2279b6fe013d730b78a50 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 26 Apr 2016 16:29:21 +0300 Subject: gnu: Add pinentry-tty. * gnu/packages/gnupg.scm (pinentry-tty): New variable. [arguments]: Add pinentry-tty flag. (pinentry-gtk2): Inherit from pinentry-tty. [inputs]: Use gtk+-2, glib for pinentry-gtk2 only. [description]: Modify description based on inputs. --- gnu/packages/gnupg.scm | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 6e16429126..28ab67ce17 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -568,9 +568,9 @@ (define-public signing-party (license license:gpl2) (home-page "http://pgp-tools.alioth.debian.org/"))) -(define-public pinentry-gtk2 +(define-public pinentry-tty (package - (name "pinentry-gtk2") + (name "pinentry-tty") (version "0.9.7") (source (origin (method url-fetch) @@ -580,21 +580,33 @@ (define-public pinentry-gtk2 (base32 "1cp7wjqr6nx31mdclr61s2h84ijqjl0ph99kgj4vyawpjj1j1633")))) (build-system gnu-build-system) + (arguments + `(#:configure-flags '("--enable-pinentry-tty"))) (inputs `(("ncurses" ,ncurses) ("libassuan" ,libassuan) - ("libsecret" ,libsecret "out") - ("gtk+" ,gtk+-2) - ("glib" ,glib))) + ("libsecret" ,libsecret "out"))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://gnupg.org/aegypten2/") (synopsis "GnuPG's interface to passphrase input") (description - "Pinentry provides a console and a GTK+ GUI that allows users to -enter a passphrase when `gpg' or `gpg2' is run and needs it.") + "Pinentry provides a console that allows users to enter a passphrase when +@code{gpg} or @code{gpg2} is run and needs it.") (license license:gpl2+))) +(define-public pinentry-gtk2 + (package + (inherit pinentry-tty) + (name "pinentry-gtk2") + (inputs + `(("gtk+" ,gtk+-2) + ("glib" ,glib) + ,@(package-inputs pinentry-tty))) + (description + "Pinentry provides a console and a GTK+ GUI that allows users to enter a +passphrase when @code{gpg} or @code{gpg2} is run and needs it."))) + (define-public pinentry (package (inherit pinentry-gtk2) (name "pinentry"))) -- cgit v1.2.3 From 54df75582f224d896bb39eb37c9243971fa607bc Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 26 Apr 2016 16:39:31 +0300 Subject: gnu: Add pinentry-qt. * gnu/packages/gnupg.scm (pinentry-qt): New variable. --- gnu/packages/gnupg.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 28ab67ce17..b7c661257c 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -31,6 +31,7 @@ (define-module (gnu packages gnupg) #:use-module (gnu packages perl) #:use-module (gnu packages pth) #:use-module (gnu packages python) + #:use-module (gnu packages qt) #:use-module (gnu packages readline) #:use-module (gnu packages compression) #:use-module (gnu packages databases) @@ -607,6 +608,17 @@ (define-public pinentry-gtk2 "Pinentry provides a console and a GTK+ GUI that allows users to enter a passphrase when @code{gpg} or @code{gpg2} is run and needs it."))) +(define-public pinentry-qt + (package + (inherit pinentry-tty) + (name "pinentry-qt") + (inputs + `(("qt" ,qt) + ,@(package-inputs pinentry-tty))) + (description + "Pinentry provides a console and a Qt GUI that allows users to enter a +passphrase when @code{gpg} or @code{gpg2} is run and needs it."))) + (define-public pinentry (package (inherit pinentry-gtk2) (name "pinentry"))) -- cgit v1.2.3 From 83b84fa8122352ef77348e540b9bc8fcc94914b8 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 4 May 2016 16:44:55 +0200 Subject: gnu: edirect: Update to 4.10. * gnu/packages/bioinformatics.scm (edirect): Update to 4.10. --- gnu/packages/bioinformatics.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 079fd467cc..5c1ad57a80 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -1535,14 +1535,14 @@ (define-public diamond (define-public edirect (package (name "edirect") - (version "3.50") + (version "4.10") (source (origin (method url-fetch) - ;; Note: older versions are not retained. - (uri "ftp://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/edirect.tar.gz") + (uri (string-append "ftp://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/" + "versions/2016-05-03/edirect.tar.gz")) (sha256 (base32 - "1cr3gzcs3flmgnnbj5iz93vh9w0fca1ilzi2q82cl63ln3mwvpz0")))) + "15zsprak5yh8c1yrz4r1knmb5s8qcmdid4xdhkh3lqcv64l60hli")))) (build-system perl-build-system) (arguments `(#:tests? #f ;no "check" target -- cgit v1.2.3 From ac47ad99a4045262e235b7ae0b6f868944aad071 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Wed, 20 Apr 2016 09:38:46 +0200 Subject: gnu: bitlbee: Update to 3.4.2. * gnu/packages/messaging.scm (bitlbee): Update to 3.4.2. --- gnu/packages/messaging.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index fbe84f58b2..f094f8537d 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -94,13 +94,13 @@ (define-public libotr (define-public bitlbee (package (name "bitlbee") - (version "3.4.1") + (version "3.4.2") (source (origin (method url-fetch) (uri (string-append "https://get.bitlbee.org/src/bitlbee-" version ".tar.gz")) (sha256 - (base32 "1qf0ypa9ba5jvsnpg9slmaran16hcc5fnfzbb1sdch1hjhchn2jh")))) + (base32 "0mza8lnfwibmklz8hdzg4f7p83hblf4h6fbf7d732kzpvra5bj39")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("check" ,check))) -- cgit v1.2.3 From 11057c4b58d766f358bc439690b9765bee735772 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Wed, 20 Apr 2016 10:17:28 +0200 Subject: gnu: bitlbee: Incorporate upstream pre-release patches. * gnu/packages/messaging.scm (%bitlbee-buddy-nick-change-patch): (%bitlbee-always-use-nicks-patch): New variables. (bitlbee): Add new patches. --- gnu/packages/messaging.scm | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index f094f8537d..a79efc3366 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -91,6 +91,24 @@ (define-public libotr (home-page "https://otr.cypherpunks.ca/") (license (list lgpl2.1 gpl2)))) +;; These patches together fix https://github.com/bitlbee/bitlbee/pull/55, are +;; already upstream, and should be unnecessary when the next bitlbee comes +;; out. +(define %bitlbee-buddy-nick-change-patch + (origin + (method url-fetch) + (uri "https://github.com/bitlbee/bitlbee/commit/a42fda42.patch") + (sha256 + (base32 + "1mzjhcdn0rxir5mzgqz9kv142ai38p1iq2lajqx89wb7x0bp51zx")))) +(define %bitlbee-always-use-nicks-patch + (origin + (method url-fetch) + (uri "https://github.com/bitlbee/bitlbee/commit/3320d6d9.patch") + (sha256 + (base32 + "14d9kb5zdzh5hzakdvrbviz83rix0j2lq9rzb58b2fn92fp8yixd")))) + (define-public bitlbee (package (name "bitlbee") @@ -100,7 +118,10 @@ (define-public bitlbee (uri (string-append "https://get.bitlbee.org/src/bitlbee-" version ".tar.gz")) (sha256 - (base32 "0mza8lnfwibmklz8hdzg4f7p83hblf4h6fbf7d732kzpvra5bj39")))) + (base32 "0mza8lnfwibmklz8hdzg4f7p83hblf4h6fbf7d732kzpvra5bj39")) + (patches + (list %bitlbee-buddy-nick-change-patch + %bitlbee-always-use-nicks-patch)))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("check" ,check))) -- cgit v1.2.3 From d663e5e6001fa3d23bb80848cd46560c92ea92c8 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Wed, 4 May 2016 12:46:01 -0400 Subject: gnu: imagemagick: Update to 6.9.3-10. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes CVE-2016–3714. * gnu/packages/imagemagick.scm (imagemagick): Update to 6.9.3-10. [source]: Remove patch. * gnu/packages/patches/imagemagick-test-segv.patch: Delete. * gnu/local.mk (dist_patch_DATA): Remove patch file from distribution. --- gnu/local.mk | 1 - gnu/packages/imagemagick.scm | 5 ++--- gnu/packages/patches/imagemagick-test-segv.patch | 20 -------------------- 3 files changed, 2 insertions(+), 24 deletions(-) delete mode 100644 gnu/packages/patches/imagemagick-test-segv.patch diff --git a/gnu/local.mk b/gnu/local.mk index a01efa9224..6f9b1b1019 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -544,7 +544,6 @@ dist_patch_DATA = \ gnu/packages/patches/icu4c-CVE-2015-1270.patch \ gnu/packages/patches/icu4c-CVE-2015-4760.patch \ gnu/packages/patches/ilmbase-fix-tests.patch \ - gnu/packages/patches/imagemagick-test-segv.patch \ gnu/packages/patches/imlib2-CVE-2016-4024.patch \ gnu/packages/patches/irrlicht-mesa-10.patch \ gnu/packages/patches/jasper-CVE-2007-2721.patch \ diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index 2bdc333d91..095f662376 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -40,15 +40,14 @@ (define-module (gnu packages imagemagick) (define-public imagemagick (package (name "imagemagick") - (version "6.9.2-1") + (version "6.9.3-10") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) (sha256 (base32 - "159afhqrj22jlz745ccbgnkdiwvn8pjcc96jic0iv9ms7gqxwln5")) - (patches (search-patches "imagemagick-test-segv.patch")))) + "0sik2jl1cywnpr5xm28mjhs1l8kxry65f3v2kqzp0cczhwf04gz3")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths") diff --git a/gnu/packages/patches/imagemagick-test-segv.patch b/gnu/packages/patches/imagemagick-test-segv.patch deleted file mode 100644 index 6626e54828..0000000000 --- a/gnu/packages/patches/imagemagick-test-segv.patch +++ /dev/null @@ -1,20 +0,0 @@ -This patch works around a segmentation fault in 'Magick++/tests/color' when -running 'Magick++/tests/tests.tap'. Here we get an exception early on, which -is supposedly harmless: - - Caught exception: color: UnableToOpenConfigureFile `colors.xml' @ warning/configure.c/GetConfigureOptions/706 - -However, when the stack unwinders run, 'UnregisterDOTImage' gets called even -though 'RegisterDOTImage' hadn't been called yet; thus, 'graphic_context' in -coders/dot.c is NULL, leading to the segfault. - ---- ImageMagick-6.9.2-1/coders/dot.c 2015-09-16 17:32:42.900323334 +0200 -+++ ImageMagick-6.9.2-1/coders/dot.c 2015-09-16 17:32:48.312367636 +0200 -@@ -240,6 +240,7 @@ ModuleExport void UnregisterDOTImage(voi - (void) UnregisterMagickInfo("GV"); - (void) UnregisterMagickInfo("DOT"); - #if defined(MAGICKCORE_GVC_DELEGATE) -+ if (graphic_context != NULL) - gvFreeContext(graphic_context); - #endif - } -- cgit v1.2.3 From 8c15e084fe5fd9492f61128c9995bb1741d225e3 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 4 May 2016 13:49:10 -0400 Subject: gnu: imlib2: Update to 1.4.9 [fixes CVE-2011-5326, CVE-2016-{3993,3994}]. * gnu/packages/image.scm (imlib2): Update to 1.4.9. [source]: Remove patch. * gnu/packages/patches/imlib2-CVE-2016-4024.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/image.scm | 5 +-- gnu/packages/patches/imlib2-CVE-2016-4024.patch | 52 ------------------------- 3 files changed, 2 insertions(+), 56 deletions(-) delete mode 100644 gnu/packages/patches/imlib2-CVE-2016-4024.patch diff --git a/gnu/local.mk b/gnu/local.mk index 6f9b1b1019..f6d365847f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -544,7 +544,6 @@ dist_patch_DATA = \ gnu/packages/patches/icu4c-CVE-2015-1270.patch \ gnu/packages/patches/icu4c-CVE-2015-4760.patch \ gnu/packages/patches/ilmbase-fix-tests.patch \ - gnu/packages/patches/imlib2-CVE-2016-4024.patch \ gnu/packages/patches/irrlicht-mesa-10.patch \ gnu/packages/patches/jasper-CVE-2007-2721.patch \ gnu/packages/patches/jasper-CVE-2008-3520.patch \ diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index db64ea0c9b..669c360b96 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -459,7 +459,7 @@ (define-public libungif (define-public imlib2 (package (name "imlib2") - (version "1.4.8") + (version "1.4.9") (source (origin (method url-fetch) (uri (string-append @@ -467,8 +467,7 @@ (define-public imlib2 version ".tar.bz2")) (sha256 (base32 - "0xxhgkd1axlcmf3kp1d7naiygparpg8l3sg3d263rhl2z0gm7aw9")) - (patches (search-patches "imlib2-CVE-2016-4024.patch")))) + "08809xxk2555yj6glixzw9a0x3x8cx55imd89kj3r0h152bn8a3x")))) (build-system gnu-build-system) (native-inputs `(("pkgconfig" ,pkg-config))) diff --git a/gnu/packages/patches/imlib2-CVE-2016-4024.patch b/gnu/packages/patches/imlib2-CVE-2016-4024.patch deleted file mode 100644 index c4f1f21b28..0000000000 --- a/gnu/packages/patches/imlib2-CVE-2016-4024.patch +++ /dev/null @@ -1,52 +0,0 @@ -Fix CVE-2016-4024 (integer overflow in lib/image.h). - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-4024 - -Upstream source: -https://git.enlightenment.org/legacy/imlib2.git/commit/?id=7eba2e4c8ac0e20838947f10f29d0efe1add8227 - -From 7eba2e4c8ac0e20838947f10f29d0efe1add8227 Mon Sep 17 00:00:00 2001 -From: "Yuriy M. Kaminskiy" -Date: Wed, 6 Apr 2016 03:34:01 +0300 -Subject: Fix integer overflow resulting in insufficient heap allocation - -IMAGE_DIMENSIONS_OK ensures that image width and height are less then -46340, so that maximum number of pixels is ~2**31. - -Unfortunately, there are a lot of code that allocates image data with -something like - - malloc(w * h * sizeof(DATA32)); - -Obviously, on 32-bit machines this results in integer overflow, -insufficient heap allocation, with [massive] out-of-bounds heap -overwrite. -Either X_MAX should be reduced to 32767, or (w)*(h) should be checked to -not exceed ULONG_MAX/sizeof(DATA32). - -Security implications: -*) for 32-bit machines: insufficient heap allocation and heap overwrite -in many image loaders, with escalation potential to remote code -execution; -*) for 64-bit machines: it seems, no impact. ---- - src/lib/image.h | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/lib/image.h b/src/lib/image.h -index e9eb678..5fae6ed 100644 ---- a/src/lib/image.h -+++ b/src/lib/image.h -@@ -188,7 +188,8 @@ void __imlib_SaveImage(ImlibImage * im, const char *file, - - /* The maximum pixmap dimension is 65535. */ - /* However, for now, use 46340 (46340^2 < 2^31) to avoid buffer overflow issues. */ --#define X_MAX_DIM 46340 -+/* Reduced further to 32767, so that (w * h * sizeof(DATA32)) won't exceed ULONG_MAX */ -+#define X_MAX_DIM 32767 - - #define IMAGE_DIMENSIONS_OK(w, h) \ - ( ((w) > 0) && ((h) > 0) && ((w) < X_MAX_DIM) && ((h) < X_MAX_DIM) ) --- -cgit v0.12 - -- cgit v1.2.3 From cbb6239bed4713e9bc7197377487f2fcbd907a9d Mon Sep 17 00:00:00 2001 From: Jelle Licht Date: Sun, 1 May 2016 00:09:41 +0200 Subject: gnu: jemalloc: Update to 4.1.0. * gnu/packages/jemalloc.scm (jemalloc): Upodate to 4.1.0. Signed-off-by: Efraim Flashner --- gnu/packages/jemalloc.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/jemalloc.scm b/gnu/packages/jemalloc.scm index 5b4c2e0853..143c80c2cb 100644 --- a/gnu/packages/jemalloc.scm +++ b/gnu/packages/jemalloc.scm @@ -27,7 +27,7 @@ (define-module (gnu packages jemalloc) (define-public jemalloc (package (name "jemalloc") - (version "3.6.0") + (version "4.1.0") (source (origin (method url-fetch) (uri (string-append @@ -35,7 +35,7 @@ (define-public jemalloc name "-" version ".tar.bz2")) (sha256 (base32 - "1zl4vxxjvhg72bdl53sl0idz9wp18c6yzjdmqcnwm09wvmcj2v71")))) + "13pc6gcs5d6ws63jv83vslrb1vlqdnf1dg43awkb9bbj9xqnvl7s")))) (build-system gnu-build-system) ;; XXX FIXME: Use gcc-4.8 on i686 to work around ;; . -- cgit v1.2.3 From 8c3e9a6a8d206e0185c1dffff7220ba28cdcaac4 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 4 May 2016 22:19:52 +0300 Subject: gnu: gnupg: Update to 2.1.12. * gnu/packages/gnupg.scm (gnupg): Update to 2.1.12. [source]: Remove patch. * gnu/packages/patches/gnupg-simple-query-ignore-status-messages.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Remove reference. --- gnu/local.mk | 1 - gnu/packages/gnupg.scm | 6 +- ...gnupg-simple-query-ignore-status-messages.patch | 142 --------------------- 3 files changed, 2 insertions(+), 147 deletions(-) delete mode 100644 gnu/packages/patches/gnupg-simple-query-ignore-status-messages.patch diff --git a/gnu/local.mk b/gnu/local.mk index f6d365847f..63d11b024b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -507,7 +507,6 @@ dist_patch_DATA = \ gnu/packages/patches/gmp-arm-asm-nothumb.patch \ gnu/packages/patches/gmp-faulty-test.patch \ gnu/packages/patches/gnucash-price-quotes-perl.patch \ - gnu/packages/patches/gnupg-simple-query-ignore-status-messages.patch \ gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch \ gnu/packages/patches/gobject-introspection-cc.patch \ gnu/packages/patches/gobject-introspection-girepository.patch \ diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index b7c661257c..7bf6566be9 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -208,16 +208,14 @@ (define-public npth (define-public gnupg (package (name "gnupg") - (version "2.1.11") + (version "2.1.12") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnupg/gnupg-" version ".tar.bz2")) (sha256 (base32 - "06mn2viiwsyq991arh5i5fhr9jyxq2bi0jkdj7ndfisxihngpc5p")) - (patches (search-patches - "gnupg-simple-query-ignore-status-messages.patch")))) + "01n5py45x0r97l4dzmd803jpbpbcxr1591k3k4s8m9804jfr4d5c")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/patches/gnupg-simple-query-ignore-status-messages.patch b/gnu/packages/patches/gnupg-simple-query-ignore-status-messages.patch deleted file mode 100644 index 153f71c38f..0000000000 --- a/gnu/packages/patches/gnupg-simple-query-ignore-status-messages.patch +++ /dev/null @@ -1,142 +0,0 @@ -Copied from upstream: -http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=commitdiff;h=acac103ba5772ae738ce5409d17feab80596cde6 - -Fixes: https://debbugs.gnu.org/22558 -Upstream bug: https://bugs.gnupg.org/gnupg/issue2229 - -From acac103ba5772ae738ce5409d17feab80596cde6 Mon Sep 17 00:00:00 2001 -From: "Neal H. Walfield" -Date: Fri, 12 Feb 2016 22:12:21 +0100 -Subject: [PATCH] common: Change simple_query to ignore status messages. - -* common/simple-pwquery.c (simple_query): Ignore status messages. - --- -Signed-off-by: Neal H. Walfield -GnuPG-bug-id: 2229 ---- - common/simple-pwquery.c | 95 ++++++++++++++++++++++++++++++++++--------------- - 1 file changed, 67 insertions(+), 28 deletions(-) - -diff --git a/common/simple-pwquery.c b/common/simple-pwquery.c -index 90d04c0..b2d666c 100644 ---- a/common/simple-pwquery.c -+++ b/common/simple-pwquery.c -@@ -618,6 +618,7 @@ simple_query (const char *query) - int fd = -1; - int nread; - char response[500]; -+ int have = 0; - int rc; - - rc = agent_open (&fd); -@@ -628,40 +629,78 @@ simple_query (const char *query) - if (rc) - goto leave; - -- /* get response */ -- nread = readline (fd, response, 499); -- if (nread < 0) -- { -- rc = -nread; -- goto leave; -- } -- if (nread < 3) -+ while (1) - { -- rc = SPWQ_PROTOCOL_ERROR; -- goto leave; -- } -+ if (! have || ! strchr (response, '\n')) -+ /* get response */ -+ { -+ nread = readline (fd, &response[have], -+ sizeof (response) - 1 /* NUL */ - have); -+ if (nread < 0) -+ { -+ rc = -nread; -+ goto leave; -+ } -+ have += nread; -+ if (have < 3) -+ { -+ rc = SPWQ_PROTOCOL_ERROR; -+ goto leave; -+ } -+ response[have] = 0; -+ } - -- if (response[0] == 'O' && response[1] == 'K') -- /* OK, do nothing. */; -- else if ((nread > 7 && !memcmp (response, "ERR 111", 7) -- && (response[7] == ' ' || response[7] == '\n') ) -- || ((nread > 4 && !memcmp (response, "ERR ", 4) -- && (strtoul (response+4, NULL, 0) & 0xffff) == 99)) ) -- { -- /* 111 is the old Assuan code for canceled which might still -- be in use by old installations. 99 is GPG_ERR_CANCELED as -- used by modern gpg-agents; 0xffff is used to mask out the -- error source. */ -+ if (response[0] == 'O' && response[1] == 'K') -+ /* OK, do nothing. */; -+ else if ((nread > 7 && !memcmp (response, "ERR 111", 7) -+ && (response[7] == ' ' || response[7] == '\n') ) -+ || ((nread > 4 && !memcmp (response, "ERR ", 4) -+ && (strtoul (response+4, NULL, 0) & 0xffff) == 99)) ) -+ { -+ /* 111 is the old Assuan code for canceled which might still -+ be in use by old installations. 99 is GPG_ERR_CANCELED as -+ used by modern gpg-agents; 0xffff is used to mask out the -+ error source. */ - #ifdef SPWQ_USE_LOGGING -- log_info (_("canceled by user\n") ); -+ log_info (_("canceled by user\n") ); - #endif -- } -- else -- { -+ } -+ else if (response[0] == 'S' && response[1] == ' ') -+ { -+ char *nextline; -+ int consumed; -+ -+ nextline = strchr (response, '\n'); -+ if (! nextline) -+ /* Point to the NUL. */ -+ nextline = &response[have]; -+ else -+ /* Move past the \n. */ -+ nextline ++; -+ -+ consumed = (size_t) nextline - (size_t) response; -+ -+ /* Skip any additional newlines. */ -+ while (consumed < have && response[consumed] == '\n') -+ consumed ++; -+ -+ have -= consumed; -+ -+ if (have) -+ memmove (response, &response[consumed], have + 1); -+ -+ continue; -+ } -+ else -+ { - #ifdef SPWQ_USE_LOGGING -- log_error (_("problem with the agent\n")); -+ log_error (_("problem with the agent (unexpected response \"%s\"\n"), -+ response); - #endif -- rc = SPWQ_ERR_RESPONSE; -+ rc = SPWQ_ERR_RESPONSE; -+ } -+ -+ break; - } - - leave: --- -2.6.3 - -- cgit v1.2.3 From ee5f1e520430142a28a2a9e3d50fa61a650d8fe2 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 29 Apr 2016 12:34:25 +0300 Subject: Update .mailmap. * .mailmap: Add new entries for Danny Milosavljevic, Nils Gillmann and Raymond Nicholson. --- .mailmap | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.mailmap b/.mailmap index 93cb24bbba..8f61e0efae 100644 --- a/.mailmap +++ b/.mailmap @@ -12,6 +12,7 @@ Ben Woodcroft Ben Woodcroft Claes Wallin (韋嘉誠) Cyprien Nicolas +Danny Milosavljevic David Thompson David Thompson David Thompson @@ -28,10 +29,12 @@ Ludovic Courtès Mathieu Lirzin Mathieu Lirzin Nikita Karetnikov -Nils Gillmann +Nils Gillmann +Nils Gillmann Pjotr Prins Pjotr Prins Raimon Grau +Raymond Nicholson Ricardo Wurmus Ricardo Wurmus Sou Bunnbu (宋文武) -- cgit v1.2.3 From 41447b3199a1455c26639d535c6397d991611274 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Mon, 2 May 2016 11:06:08 +0300 Subject: gnu: libcue: Update to 2.1.0. * gnu/packages/cdrom.scm (libcue): Update to 2.1.0. [build-system]: Use 'cmake-build-system' (the upstream moved to it). [native-inputs]: Add 'bison' and 'flex'. --- gnu/packages/cdrom.scm | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 4eff2d5cb0..70772bf157 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015 Paul van der Walt ;;; Copyright © 2015, 2016 Efraim Flashner +;;; Copyright © 2016 Alex Kost ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,10 +25,13 @@ (define-module (gnu packages cdrom) #:use-module (guix download) #:use-module (guix packages) #:use-module ((guix licenses) #:select (lgpl2.1+ gpl2 gpl2+ gpl3+)) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (gnu packages) #:use-module (gnu packages acl) + #:use-module (gnu packages bison) #:use-module (gnu packages compression) + #:use-module (gnu packages flex) #:use-module (gnu packages gettext) #:use-module (gnu packages gtk) #:use-module (gnu packages man) @@ -230,16 +234,20 @@ (define-public dvdisaster (define-public libcue (package (name "libcue") - (version "1.4.0") + (version "2.1.0") (source (origin (method url-fetch) - (uri (string-append "https://github.com/lipnitsk/libcue/releases/" - "download/v" version "/libcue-" - version ".tar.bz2")) + (uri (string-append + "https://github.com/lipnitsk/libcue/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "17kjd7rjz1bvfn44n3n2bjb7a1ywd0yc0g4sqp5ihf9b5bn7cwlb")))) - (build-system gnu-build-system) + "1fradl3dx0pyy9rn1a0gak9gzgg40wax61f2s00zks7rwl0xv398")))) + (build-system cmake-build-system) + (native-inputs + `(("bison" ,bison) + ("flex" ,flex))) (home-page "https://github.com/lipnitsk/libcue") (synopsis "C library to parse cue sheets") (description "Libcue is a C library to parse so-called @dfn{cue sheets} -- cgit v1.2.3 From af5640d1dd18328dbfec5cb11f73224efd47f1aa Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Mon, 2 May 2016 13:42:33 +0300 Subject: gnu: tvtime: Update to 1.0.10. * gnu/packages/tv.scm (tvtime): Update to 1.0.10. [source]: Remove patches. [inputs]: Add 'alsa-lib'. * gnu/packages/patches/tvtime-gcc41.patch, gnu/packages/patches/tvtime-pngoutput.patch, gnu/packages/patches/tvtime-videodev2.patch, gnu/packages/patches/tvtime-xmltv.patch: Remove files. * gnu/local.mk (dist_patch_DATA): Remove them. --- gnu/local.mk | 4 -- gnu/packages/patches/tvtime-gcc41.patch | 58 ----------------------------- gnu/packages/patches/tvtime-pngoutput.patch | 15 -------- gnu/packages/patches/tvtime-videodev2.patch | 15 -------- gnu/packages/patches/tvtime-xmltv.patch | 28 -------------- gnu/packages/tv.scm | 25 ++++++------- 6 files changed, 12 insertions(+), 133 deletions(-) delete mode 100644 gnu/packages/patches/tvtime-gcc41.patch delete mode 100644 gnu/packages/patches/tvtime-pngoutput.patch delete mode 100644 gnu/packages/patches/tvtime-videodev2.patch delete mode 100644 gnu/packages/patches/tvtime-xmltv.patch diff --git a/gnu/local.mk b/gnu/local.mk index 63d11b024b..2f77c50940 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -752,10 +752,6 @@ dist_patch_DATA = \ gnu/packages/patches/ttfautohint-source-date-epoch.patch \ gnu/packages/patches/tophat-build-with-later-seqan.patch \ gnu/packages/patches/torsocks-dns-test.patch \ - gnu/packages/patches/tvtime-gcc41.patch \ - gnu/packages/patches/tvtime-pngoutput.patch \ - gnu/packages/patches/tvtime-videodev2.patch \ - gnu/packages/patches/tvtime-xmltv.patch \ gnu/packages/patches/unzip-CVE-2014-8139.patch \ gnu/packages/patches/unzip-CVE-2014-8140.patch \ gnu/packages/patches/unzip-CVE-2014-8141.patch \ diff --git a/gnu/packages/patches/tvtime-gcc41.patch b/gnu/packages/patches/tvtime-gcc41.patch deleted file mode 100644 index d6e42721b8..0000000000 --- a/gnu/packages/patches/tvtime-gcc41.patch +++ /dev/null @@ -1,58 +0,0 @@ -Source: https://projects.archlinux.org/svntogit/community.git/tree/trunk/tvtime-1.0.2-gcc41.patch?h=packages/tvtime - ---- tvtime-1.0.1/plugins/greedyh.asm 2005-08-14 18:16:43.000000000 +0200 -+++ tvtime-1.0.1-gcc41/plugins/greedyh.asm 2005-11-28 17:53:09.210774544 +0100 -@@ -18,7 +18,7 @@ - - #include "x86-64_macros.inc" - --void DScalerFilterGreedyH::FUNCT_NAME(TDeinterlaceInfo* pInfo) -+void FUNCT_NAME(TDeinterlaceInfo* pInfo) - { - int64_t i; - bool InfoIsOdd = (pInfo->PictureHistory[0]->Flags & PICTURE_INTERLACED_ODD) ? 1 : 0; -diff -Naur tvtime-1.0.1/plugins/tomsmocomp/TomsMoCompAll2.inc tvtime-1.0.1-gcc41/plugins/tomsmocomp/TomsMoCompAll2.inc ---- tvtime-1.0.1/plugins/tomsmocomp/TomsMoCompAll2.inc 2004-10-20 17:31:05.000000000 +0200 -+++ tvtime-1.0.1-gcc41/plugins/tomsmocomp/TomsMoCompAll2.inc 2005-11-28 17:53:33.251119856 +0100 -@@ -5,9 +5,9 @@ - #endif - - #ifdef USE_STRANGE_BOB --#define SEARCH_EFFORT_FUNC(n) DScalerFilterTomsMoComp::SEFUNC(n##_SB) -+#define SEARCH_EFFORT_FUNC(n) SEFUNC(n##_SB) - #else --#define SEARCH_EFFORT_FUNC(n) DScalerFilterTomsMoComp::SEFUNC(n) -+#define SEARCH_EFFORT_FUNC(n) SEFUNC(n) - #endif - - int SEARCH_EFFORT_FUNC(0) // we don't try at all ;-) -diff -Naur tvtime-1.0.1/plugins/tomsmocomp.cpp tvtime-1.0.1-gcc41/plugins/tomsmocomp.cpp ---- tvtime-1.0.1/plugins/tomsmocomp.cpp 2004-10-20 19:38:04.000000000 +0200 -+++ tvtime-1.0.1-gcc41/plugins/tomsmocomp.cpp 2005-11-28 17:52:53.862107896 +0100 -@@ -31,7 +31,7 @@ - - #define IS_MMX - #define SSE_TYPE MMX --#define FUNCT_NAME DScalerFilterTomsMoComp::filterDScaler_MMX -+#define FUNCT_NAME filterDScaler_MMX - #include "tomsmocomp/TomsMoCompAll.inc" - #undef IS_MMX - #undef SSE_TYPE -@@ -39,7 +39,7 @@ - - #define IS_3DNOW - #define SSE_TYPE 3DNOW --#define FUNCT_NAME DScalerFilterTomsMoComp::filterDScaler_3DNOW -+#define FUNCT_NAME filterDScaler_3DNOW - #include "tomsmocomp/TomsMoCompAll.inc" - #undef IS_3DNOW - #undef SSE_TYPE -@@ -47,7 +47,7 @@ - - #define IS_SSE - #define SSE_TYPE SSE --#define FUNCT_NAME DScalerFilterTomsMoComp::filterDScaler_SSE -+#define FUNCT_NAME filterDScaler_SSE - #include "tomsmocomp/TomsMoCompAll.inc" - #undef IS_SSE - #undef SSE_TYPE diff --git a/gnu/packages/patches/tvtime-pngoutput.patch b/gnu/packages/patches/tvtime-pngoutput.patch deleted file mode 100644 index 0d14f77ca1..0000000000 --- a/gnu/packages/patches/tvtime-pngoutput.patch +++ /dev/null @@ -1,15 +0,0 @@ -Source: https://sources.debian.net/src/tvtime/1.0.2-14/debian/patches/libpng.diff - -From: Nobuhiro Iwamatsu -Date: Mon, 14 May 2012 19:01:31 +0900 -Prepares the package for libpng 1.5. Closes: #650582. - ---- tvtime-1.0.2.orig/src/pngoutput.c -+++ tvtime-1.0.2/src/pngoutput.c -@@ -18,5 +18,6 @@ - - #include - #include -+#include - #include - #include "pngoutput.h" diff --git a/gnu/packages/patches/tvtime-videodev2.patch b/gnu/packages/patches/tvtime-videodev2.patch deleted file mode 100644 index 74131f25d0..0000000000 --- a/gnu/packages/patches/tvtime-videodev2.patch +++ /dev/null @@ -1,15 +0,0 @@ -Fix compilation error: non-existing header file. - -This is an excerpt from the debian patch: -http://http.debian.net/debian/pool/main/t/tvtime/tvtime_1.0.2-14.diff.gz - ---- tvtime-1.0.2.orig/src/videodev2.h -+++ tvtime-1.0.2/src/videodev2.h -@@ -16,7 +16,6 @@ - #ifdef __KERNEL__ - #include /* need struct timeval */ - #endif --#include /* need __user */ - - /* for kernel versions 2.4.26 and below: */ - #ifndef __user diff --git a/gnu/packages/patches/tvtime-xmltv.patch b/gnu/packages/patches/tvtime-xmltv.patch deleted file mode 100644 index 2f4afc6e5a..0000000000 --- a/gnu/packages/patches/tvtime-xmltv.patch +++ /dev/null @@ -1,28 +0,0 @@ -Fix compilation error: conflicting types for 'locale_t'. - -This is an excerpt from the debian patch ... -http://http.debian.net/debian/pool/main/t/tvtime/tvtime_1.0.2-14.diff.gz - ---- tvtime-1.0.2.orig/src/xmltv.c -+++ tvtime-1.0.2/src/xmltv.c -@@ -118,9 +118,9 @@ - typedef struct { - const char *code; - const char *name; --} locale_t; -+} tvtime_locale_t; - --static locale_t locale_table[] = { -+static tvtime_locale_t locale_table[] = { - {"AA", "Afar"}, {"AB", "Abkhazian"}, {"AF", "Afrikaans"}, - {"AM", "Amharic"}, {"AR", "Arabic"}, {"AS", "Assamese"}, - {"AY", "Aymara"}, {"AZ", "Azerbaijani"}, {"BA", "Bashkir"}, -@@ -168,7 +168,7 @@ - {"XH", "Xhosa"}, {"YO", "Yoruba"}, {"ZH", "Chinese"}, - {"ZU", "Zulu"} }; - --const int num_locales = sizeof( locale_table ) / sizeof( locale_t ); -+const int num_locales = sizeof( locale_table ) / sizeof( tvtime_locale_t ); - - /** - * Timezone parsing code based loosely on the algorithm in diff --git a/gnu/packages/tv.scm b/gnu/packages/tv.scm index f58c03623e..2db71b8491 100644 --- a/gnu/packages/tv.scm +++ b/gnu/packages/tv.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Alex Kost +;;; Copyright © 2015, 2016 Alex Kost ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,30 +22,29 @@ (define-module (gnu packages tv) #:use-module (guix build-system gnu) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) - #:use-module (gnu packages xorg) - #:use-module (gnu packages image) #:use-module (gnu packages compression) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages image) + #:use-module (gnu packages linux) #:use-module (gnu packages xml) - #:use-module (gnu packages fontutils)) + #:use-module (gnu packages xorg)) (define-public tvtime (package (name "tvtime") - (version "1.0.2") + (version "1.0.10") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/tvtime/tvtime-" - version ".tar.gz")) + (uri (string-append + "http://linuxtv.org/downloads/tvtime/tvtime-" + version ".tar.gz")) (sha256 (base32 - "08q5gzbyz0lxb730rz6d6amkzimlc7nanv6n50j2bpw4n2xa9wmf")) - (patches (search-patches "tvtime-videodev2.patch" - "tvtime-pngoutput.patch" - "tvtime-xmltv.patch" - "tvtime-gcc41.patch")))) + "1mk6dni82n8jv5wsrrpqzcwrg9ccx9vijb5sbm7gqm2y0h40q5y9")))) (build-system gnu-build-system) (inputs - `(("libx11" ,libx11) + `(("alsa-lib" ,alsa-lib) + ("libx11" ,libx11) ("libxext" ,libxext) ("libxt" ,libxt) ("libxtst" ,libxtst) -- cgit v1.2.3 From 8bf92e3904cb656d4c2160fc8befebaf21a65492 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 4 May 2016 16:38:22 +0200 Subject: services: herd: Move UI handling to 'guix system'. This makes (gnu services herd) independent of (guix ui). * gnu/services/herd.scm (&shepherd-error, &service-not-found-error) (&action-not-found-error, &action-exception-error) (&unknown-shepherd-error): New error condition types. (report-action-error): Remove. (raise-shepherd-error): New procedure. (display-message): Do not use 'info' and '_'. (invoke-action): Use 'raise-shepherd-error' instead of 'report-action-error'. Do not use 'warning'. (current-services): Do not use 'warning'. * guix/scripts/system.scm (with-shepherd-error-handling): New macro. (report-shepherd-error, call-with-service-upgrade-info): New procedures. (upgrade-shepherd-services): Use it. --- gnu/services/herd.scm | 80 ++++++++++++++++++++------- guix/scripts/system.scm | 142 ++++++++++++++++++++++++++++++++---------------- 2 files changed, 153 insertions(+), 69 deletions(-) diff --git a/gnu/services/herd.scm b/gnu/services/herd.scm index 9cb33a9fd0..c06e98800e 100644 --- a/gnu/services/herd.scm +++ b/gnu/services/herd.scm @@ -17,12 +17,27 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu services herd) - #:use-module (guix ui) #:use-module (guix utils) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) + #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35) #:use-module (ice-9 match) - #:export (current-services + #:export (shepherd-error? + service-not-found-error? + service-not-found-error-service + action-not-found-error? + action-not-found-error-service + action-not-found-error-action + action-exception-error? + action-exception-error-service + action-exception-error-action + action-exception-error-key + action-exception-error-arguments + unknown-shepherd-error? + unknown-shepherd-error-sexp + + current-services unload-services unload-service load-services @@ -61,31 +76,54 @@ (define-syntax-rule (with-shepherd connection body ...) (let ((connection (open-connection))) body ...)) -(define (report-action-error error) - "Report ERROR, an sexp received by a shepherd client in reply to COMMAND, a -command object." +(define-condition-type &shepherd-error &error + shepherd-error?) + +(define-condition-type &service-not-found-error &shepherd-error + service-not-found-error? + (service service-not-found-error-service)) + +(define-condition-type &action-not-found-error &shepherd-error + action-not-found-error? + (service action-not-found-error-service) + (action action-not-found-error-action)) + +(define-condition-type &action-exception-error &shepherd-error + action-exception-error? + (service action-exception-error-service) + (action action-exception-error-action) + (key action-exception-error-key) + (args action-exception-error-arguments)) + +(define-condition-type &unknown-shepherd-error &shepherd-error + unknown-shepherd-error? + (sexp unknown-shepherd-error-sexp)) + +(define (raise-shepherd-error error) + "Raise an error condition corresponding to ERROR, an sexp received by a +shepherd client in reply to COMMAND, a command object. Return #t if ERROR +does not denote an error." (match error (('error ('version 0 x ...) 'service-not-found service) - (report-error (_ "service '~a' could not be found~%") - service)) + (raise (condition (&service-not-found-error + (service service))))) (('error ('version 0 x ...) 'action-not-found action service) - (report-error (_ "service '~a' does not have an action '~a'~%") - service action)) + (raise (condition (&action-not-found-error + (service service) + (action action))))) (('error ('version 0 x ...) 'action-exception action service key (args ...)) - (report-error (_ "exception caught while executing '~a' \ -on service '~a':~%") - action service) - (print-exception (current-error-port) #f key args)) + (raise (condition (&action-exception-error + (service service) + (action action) + (key key) (args args))))) (('error . _) - (report-error (_ "something went wrong: ~s~%") - error)) + (raise (condition (&unknown-shepherd-error (sexp error))))) (#f ;not an error #t))) (define (display-message message) - ;; TRANSLATORS: Nothing to translate here. - (info (_ "shepherd: ~a~%") message)) + (format (current-error-port) "shepherd: ~a~%" message)) (define* (invoke-action service action arguments cont) "Invoke ACTION on SERVICE with ARGUMENTS. On success, call CONT with the @@ -107,10 +145,10 @@ (define* (invoke-action service action arguments cont) (('reply ('version 0 x ...) ('result y) ('error error) ('messages messages)) (for-each display-message messages) - (report-action-error error) + (raise-shepherd-error error) #f) (x - (warning (_ "invalid shepherd reply~%")) + ;; invalid reply #f)))) (define-syntax-rule (with-shepherd-action service (action args ...) @@ -129,7 +167,8 @@ (define-syntax alist-let* (define (current-services) "Return two lists: the list of currently running services, and the list of -currently stopped services." +currently stopped services. Return #f and #f if the list of services could +not be obtained." (with-shepherd-action 'root ('status) services (match services ((('service ('version 0 _ ...) _ ...) ...) @@ -144,7 +183,6 @@ (define (current-services) '() services)) (x - (warning (_ "failed to obtain list of shepherd services~%")) (values #f #f))))) (define (unload-service service) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index e5d754a6fa..dd1e534c9b 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -236,6 +236,72 @@ (define-syntax-rule (warn-on-system-error body ...) (with-monad %store-monad (return #f))))) +(define-syntax-rule (with-shepherd-error-handling body ...) + (warn-on-system-error + (guard (c ((shepherd-error? c) + (report-shepherd-error c))) + body ...))) + +(define (report-shepherd-error error) + "Report ERROR, a '&shepherd-error' error condition object." + (cond ((service-not-found-error? error) + (report-error (_ "service '~a' could not be found~%") + (service-not-found-error-service error))) + ((action-not-found-error? error) + (report-error (_ "service '~a' does not have an action '~a'~%") + (action-not-found-error-service error) + (action-not-found-error-action error))) + ((action-exception-error? error) + (report-error (_ "exception caught while executing '~a' \ +on service '~a':~%") + (action-exception-error-action error) + (action-exception-error-service error)) + (print-exception (current-error-port) #f + (action-exception-error-key error) + (action-exception-error-arguments error))) + ((unknown-shepherd-error? error) + (report-error (_ "something went wrong: ~s~%") + (unknown-shepherd-error-sexp error))) + ((shepherd-error? error) + (report-error (_ "shepherd error~%"))) + ((not error) ;not an error + #t))) + +(define (call-with-service-upgrade-info new-services mproc) + "Call MPROC, a monadic procedure in %STORE-MONAD, passing it the list of +names of services to load (upgrade), and the list of names of services to +unload." + (define (essential? service) + (memq service '(root shepherd))) + + (define new-service-names + (map (compose first shepherd-service-provision) + new-services)) + + (let-values (((running stopped) (current-services))) + (if (and running stopped) + (let* ((to-load + ;; Only load services that are either new or currently stopped. + (remove (lambda (service) + (memq (first (shepherd-service-provision service)) + running)) + new-services)) + (to-unload + ;; Unload services that are (1) no longer required, or (2) are + ;; in TO-LOAD. + (remove essential? + (append (remove (lambda (service) + (memq service new-service-names)) + (append running stopped)) + (filter (lambda (service) + (memq service stopped)) + (map shepherd-service-canonical-name + to-load)))))) + (mproc to-load to-unload)) + (with-monad %store-monad + (warning (_ "failed to obtain list of shepherd services~%")) + (return #f))))) + (define (upgrade-shepherd-services os) "Upgrade the Shepherd (PID 1) by unloading obsolete services and loading new services specified in OS and not currently running. @@ -243,59 +309,35 @@ (define (upgrade-shepherd-services os) This is currently very conservative in that it does not stop or unload any running service. Unloading or stopping the wrong service ('udev', say) could bring the system down." - (define (essential? service) - (memq service '(root shepherd))) - (define new-services (service-parameters (fold-services (operating-system-services os) #:target-type shepherd-root-service-type))) - (define new-service-names - (map (compose first shepherd-service-provision) - new-services)) - - ;; Arrange to simply emit a warning if we cannot connect to the shepherd. - (warn-on-system-error - (let-values (((running stopped) (current-services))) - (define to-load - ;; Only load services that are either new or currently stopped. - (remove (lambda (service) - (memq (first (shepherd-service-provision service)) - running)) - new-services)) - (define to-unload - ;; Unload services that are (1) no longer required, or (2) are in - ;; TO-LOAD. - (remove essential? - (append (remove (lambda (service) - (memq service new-service-names)) - (append running stopped)) - (filter (lambda (service) - (memq service stopped)) - (map shepherd-service-canonical-name - to-load))))) - - (for-each (lambda (unload) - (info (_ "unloading service '~a'...~%") unload) - (unload-service unload)) - to-unload) - - (with-monad %store-monad - (munless (null? to-load) - (let ((to-load-names (map shepherd-service-canonical-name to-load)) - (to-start (filter shepherd-service-auto-start? to-load))) - (info (_ "loading new services:~{ ~a~}...~%") to-load-names) - (mlet %store-monad ((files (mapm %store-monad shepherd-service-file - to-load))) - ;; Here we assume that FILES are exactly those that were computed - ;; as part of the derivation that built OS, which is normally the - ;; case. - (load-services (map derivation->output-path files)) - - (for-each start-service - (map shepherd-service-canonical-name to-start)) - (return #t)))))))) + ;; Arrange to simply emit a warning if the service upgrade fails. + (with-shepherd-error-handling + (call-with-service-upgrade-info new-services + (lambda (to-load to-unload) + (for-each (lambda (unload) + (info (_ "unloading service '~a'...~%") unload) + (unload-service unload)) + to-unload) + + (with-monad %store-monad + (munless (null? to-load) + (let ((to-load-names (map shepherd-service-canonical-name to-load)) + (to-start (filter shepherd-service-auto-start? to-load))) + (info (_ "loading new services:~{ ~a~}...~%") to-load-names) + (mlet %store-monad ((files (mapm %store-monad shepherd-service-file + to-load))) + ;; Here we assume that FILES are exactly those that were computed + ;; as part of the derivation that built OS, which is normally the + ;; case. + (load-services (map derivation->output-path files)) + + (for-each start-service + (map shepherd-service-canonical-name to-start)) + (return #t))))))))) (define* (switch-to-system os #:optional (profile %system-profile)) @@ -839,4 +881,8 @@ (define (fail) (parameterize ((%graft? (assoc-ref opts 'graft?))) (process-command command args opts))))) +;;; Local Variables: +;;; eval: (put 'call-with-service-upgrade-info 'scheme-indent-function 1) +;;; End: + ;;; system.scm ends here -- cgit v1.2.3 From 6aaf3ea62d883a717a3459b6c6da3c1cfede55e2 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 4 May 2016 16:59:31 +0200 Subject: environment: Use 'break' instead of 'split'. * guix/scripts/environment.scm (parse-args): Use 'break' instead of 'split'. --- guix/scripts/environment.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index d4c09ef54c..9ba487d1eb 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -25,7 +25,6 @@ (define-module (guix scripts environment) #:use-module (guix packages) #:use-module (guix profiles) #:use-module (guix search-paths) - #:use-module (guix utils) #:use-module (guix build utils) #:use-module (guix monads) #:use-module ((guix gexp) #:select (lower-inputs)) @@ -499,12 +498,13 @@ (define (handle-argument arg result) ;; The '--' token is used to separate the command to run from the rest of ;; the operands. - (let-values (((args command) (split args "--"))) + (let-values (((args command) (break (cut string=? "--" <>) args))) (let ((opts (parse-command-line args %options (list %default-options) #:argument-handler handle-argument))) - (if (null? command) - opts - (alist-cons 'exec command opts))))) + (match command + (() opts) + (("--") opts) + (("--" command ...) (alist-cons 'exec command opts)))))) (define (assert-container-features) "Check if containers can be created and exit with an informative error -- cgit v1.2.3 From 4b6fa8b33970be414ae035f63ed80b147dcd8200 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 4 May 2016 17:02:15 +0200 Subject: utils: Remove 'split'. This procedure was redundant with SRFI-1's 'break'. * guix/utils.scm (split): Remove. * tests/utils.scm ("split, element is in list") ("split, element is not in list"): Remove. --- guix/utils.scm | 18 ------------------ tests/utils.scm | 14 -------------- 2 files changed, 32 deletions(-) diff --git a/guix/utils.scm b/guix/utils.scm index 6c01edde21..725f4346c3 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -85,7 +85,6 @@ (define-module (guix utils) fold2 fold-tree fold-tree-leaves - split cache-directory readlink* edit-expression @@ -788,23 +787,6 @@ (define (fold-tree-leaves proc init children roots) (else result))) init children roots)) -(define (split lst e) - "Return two values, a list containing the elements of the list LST that -appear before the first occurence of the object E and a list containing the -elements after E." - (define (same? x) - (equal? e x)) - - (let loop ((rest lst) - (acc '())) - (match rest - (() - (values lst '())) - (((? same?) . tail) - (values (reverse acc) tail)) - ((head . tail) - (loop tail (cons head acc)))))) - (define (cache-directory) "Return the cache directory for Guix, by default ~/.cache/guix." (or (getenv "XDG_CONFIG_HOME") diff --git a/tests/utils.scm b/tests/utils.scm index d0ee02a1cf..854999f670 100644 --- a/tests/utils.scm +++ b/tests/utils.scm @@ -122,20 +122,6 @@ (define temp-file '(0 1 2 3))) list)) -(test-equal "split, element is in list" - '((foo) (baz)) - (call-with-values - (lambda () - (split '(foo bar baz) 'bar)) - list)) - -(test-equal "split, element is not in list" - '((foo bar baz) ()) - (call-with-values - (lambda () - (split '(foo bar baz) 'quux)) - list)) - (test-equal "strip-keyword-arguments" '(a #:b b #:c c) (strip-keyword-arguments '(#:foo #:bar #:baz) -- cgit v1.2.3 From 958dd3ce68733bcd5c1231424c7e4ad39e67594a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 4 May 2016 17:35:47 +0200 Subject: utils: Move combinators to (guix combinators). * guix/utils.scm (compile-time-value, memoize, fold2) (fold-tree, fold-tree-leaves): Move to... * guix/combinators: ... here. New file. * tests/utils.scm ("fold2, 1 list", "fold2, 2 lists") (fold-tree tests): Move to... * tests/combinators.scm: ... here. New file. * Makefile.am (MODULES, SCM_TESTS): Add them. * gnu/packages.scm, gnu/packages/bootstrap.scm, gnu/services/herd.scm, guix/build-system/gnu.scm, guix/build-system/python.scm, guix/derivations.scm, guix/gnu-maintenance.scm, guix/import/elpa.scm, guix/scripts/archive.scm, guix/scripts/build.scm, guix/scripts/graph.scm, guix/scripts/lint.scm, guix/scripts/size.scm, guix/scripts/substitute.scm, guix/serialization.scm, guix/store.scm, guix/ui.scm: Adjust imports accordingly. --- Makefile.am | 2 + gnu/packages.scm | 1 + gnu/packages/bootstrap.scm | 3 +- gnu/services/herd.scm | 2 +- guix/build-system/gnu.scm | 1 + guix/build-system/python.scm | 1 + guix/combinators.scm | 116 +++++++++++++++++++++++++++++++++++++++++++ guix/derivations.scm | 1 + guix/gnu-maintenance.scm | 3 +- guix/import/elpa.scm | 4 +- guix/scripts/archive.scm | 1 + guix/scripts/build.scm | 1 + guix/scripts/graph.scm | 2 +- guix/scripts/lint.scm | 1 + guix/scripts/size.scm | 2 +- guix/scripts/substitute.scm | 1 + guix/serialization.scm | 4 +- guix/store.scm | 1 + guix/ui.scm | 1 + guix/utils.scm | 98 +++--------------------------------- tests/combinators.scm | 85 +++++++++++++++++++++++++++++++ tests/utils.scm | 56 --------------------- 22 files changed, 231 insertions(+), 156 deletions(-) create mode 100644 guix/combinators.scm create mode 100644 tests/combinators.scm diff --git a/Makefile.am b/Makefile.am index d0c1826782..4685fe1650 100644 --- a/Makefile.am +++ b/Makefile.am @@ -38,6 +38,7 @@ MODULES = \ guix/hash.scm \ guix/pk-crypto.scm \ guix/pki.scm \ + guix/combinators.scm \ guix/utils.scm \ guix/sets.scm \ guix/download.scm \ @@ -231,6 +232,7 @@ SCM_TESTS = \ tests/ui.scm \ tests/records.scm \ tests/upstream.scm \ + tests/combinators.scm \ tests/utils.scm \ tests/build-utils.scm \ tests/packages.scm \ diff --git a/gnu/packages.scm b/gnu/packages.scm index 1e3f383cbc..7130f58fdd 100644 --- a/gnu/packages.scm +++ b/gnu/packages.scm @@ -24,6 +24,7 @@ (define-module (gnu packages) #:use-module (guix packages) #:use-module (guix ui) #:use-module (guix utils) + #:use-module (guix combinators) #:use-module ((guix build utils) #:select ((package-name->name+version . hyphen-separated-name->name+version))) diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index a3cd18519c..6a4eba99ef 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -27,7 +27,8 @@ (define-module (gnu packages bootstrap) #:use-module (guix build-system trivial) #:use-module ((guix store) #:select (add-to-store add-text-to-store)) #:use-module ((guix derivations) #:select (derivation)) - #:use-module (guix utils) + #:use-module ((guix utils) #:select (gnu-triplet->nix-system)) + #:use-module (guix combinators) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (ice-9 match) diff --git a/gnu/services/herd.scm b/gnu/services/herd.scm index c06e98800e..7a9db90012 100644 --- a/gnu/services/herd.scm +++ b/gnu/services/herd.scm @@ -17,7 +17,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu services herd) - #:use-module (guix utils) + #:use-module (guix combinators) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (srfi srfi-34) diff --git a/guix/build-system/gnu.scm b/guix/build-system/gnu.scm index a7d1952b57..f6df183da4 100644 --- a/guix/build-system/gnu.scm +++ b/guix/build-system/gnu.scm @@ -19,6 +19,7 @@ (define-module (guix build-system gnu) #:use-module (guix store) #:use-module (guix utils) + #:use-module (guix combinators) #:use-module (guix derivations) #:use-module (guix search-paths) #:use-module (guix build-system) diff --git a/guix/build-system/python.scm b/guix/build-system/python.scm index 326e6fd429..c3d6c62404 100644 --- a/guix/build-system/python.scm +++ b/guix/build-system/python.scm @@ -21,6 +21,7 @@ (define-module (guix build-system python) #:use-module (guix store) #:use-module (guix utils) + #:use-module (guix combinators) #:use-module (guix packages) #:use-module (guix derivations) #:use-module (guix search-paths) diff --git a/guix/combinators.scm b/guix/combinators.scm new file mode 100644 index 0000000000..9e4689ba9c --- /dev/null +++ b/guix/combinators.scm @@ -0,0 +1,116 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2014 Eric Bavier +;;; +;;; 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 . + +(define-module (guix combinators) + #:use-module (ice-9 match) + #:use-module (ice-9 vlist) + #:export (memoize + fold2 + fold-tree + fold-tree-leaves + compile-time-value)) + +;;; Commentary: +;;; +;;; This module provides useful combinators that complement SRFI-1 and +;;; friends. +;;; +;;; Code: + +(define (memoize proc) + "Return a memoizing version of PROC." + (let ((cache (make-hash-table))) + (lambda args + (let ((results (hash-ref cache args))) + (if results + (apply values results) + (let ((results (call-with-values (lambda () + (apply proc args)) + list))) + (hash-set! cache args results) + (apply values results))))))) + +(define fold2 + (case-lambda + ((proc seed1 seed2 lst) + "Like `fold', but with a single list and two seeds." + (let loop ((result1 seed1) + (result2 seed2) + (lst lst)) + (if (null? lst) + (values result1 result2) + (call-with-values + (lambda () (proc (car lst) result1 result2)) + (lambda (result1 result2) + (loop result1 result2 (cdr lst))))))) + ((proc seed1 seed2 lst1 lst2) + "Like `fold', but with a two lists and two seeds." + (let loop ((result1 seed1) + (result2 seed2) + (lst1 lst1) + (lst2 lst2)) + (if (or (null? lst1) (null? lst2)) + (values result1 result2) + (call-with-values + (lambda () (proc (car lst1) (car lst2) result1 result2)) + (lambda (result1 result2) + (fold2 proc result1 result2 (cdr lst1) (cdr lst2))))))))) + +(define (fold-tree proc init children roots) + "Call (PROC NODE RESULT) for each node in the tree that is reachable from +ROOTS, using INIT as the initial value of RESULT. The order in which nodes +are traversed is not specified, however, each node is visited only once, based +on an eq? check. Children of a node to be visited are generated by +calling (CHILDREN NODE), the result of which should be a list of nodes that +are connected to NODE in the tree, or '() or #f if NODE is a leaf node." + (let loop ((result init) + (seen vlist-null) + (lst roots)) + (match lst + (() result) + ((head . tail) + (if (not (vhash-assq head seen)) + (loop (proc head result) + (vhash-consq head #t seen) + (match (children head) + ((or () #f) tail) + (children (append tail children)))) + (loop result seen tail)))))) + +(define (fold-tree-leaves proc init children roots) + "Like fold-tree, but call (PROC NODE RESULT) only for leaf nodes." + (fold-tree + (lambda (node result) + (match (children node) + ((or () #f) (proc node result)) + (else result))) + init children roots)) + +(define-syntax compile-time-value ;not quite at home + (syntax-rules () + "Evaluate the given expression at compile time. The expression must +evaluate to a simple datum." + ((_ exp) + (let-syntax ((v (lambda (s) + (let ((val exp)) + (syntax-case s () + (_ #`'#,(datum->syntax s val))))))) + v)))) + +;;; combinators.scm ends here diff --git a/guix/derivations.scm b/guix/derivations.scm index 2d8584e72d..d4f697477b 100644 --- a/guix/derivations.scm +++ b/guix/derivations.scm @@ -30,6 +30,7 @@ (define-module (guix derivations) #:use-module (ice-9 vlist) #:use-module (guix store) #:use-module (guix utils) + #:use-module (guix combinators) #:use-module (guix monads) #:use-module (guix hash) #:use-module (guix base32) diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index 8021d99c8b..adb62aa68c 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2010, 2011, 2012, 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2012, 2013 Nikita Karetnikov ;;; ;;; This file is part of GNU Guix. @@ -30,6 +30,7 @@ (define-module (guix gnu-maintenance) #:use-module (guix http-client) #:use-module (guix ftp-client) #:use-module (guix utils) + #:use-module (guix combinators) #:use-module (guix records) #:use-module (guix upstream) #:use-module (guix packages) diff --git a/guix/import/elpa.scm b/guix/import/elpa.scm index ccc4063a53..320a09e8c6 100644 --- a/guix/import/elpa.scm +++ b/guix/import/elpa.scm @@ -35,8 +35,8 @@ (define-module (guix import elpa) #:use-module (guix base32) #:use-module (guix upstream) #:use-module (guix packages) - #:use-module ((guix utils) #:select (call-with-temporary-output-file - memoize)) + #:use-module ((guix combinators) #:select (memoize)) + #:use-module ((guix utils) #:select (call-with-temporary-output-file)) #:export (elpa->guix-package %elpa-updater)) diff --git a/guix/scripts/archive.scm b/guix/scripts/archive.scm index 3fb210ee91..e06c38aaab 100644 --- a/guix/scripts/archive.scm +++ b/guix/scripts/archive.scm @@ -19,6 +19,7 @@ (define-module (guix scripts archive) #:use-module (guix config) #:use-module (guix utils) + #:use-module (guix combinators) #:use-module ((guix build utils) #:select (mkdir-p)) #:use-module ((guix serialization) #:select (restore-file)) #:use-module (guix store) diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index 9a6b427fc5..320ec39be2 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -24,6 +24,7 @@ (define-module (guix scripts build) #:use-module (guix derivations) #:use-module (guix packages) #:use-module (guix grafts) + #:use-module (guix combinators) ;; Use the procedure that destructures "NAME-VERSION" forms. #:use-module ((guix utils) #:hide (package-name->name+version)) diff --git a/guix/scripts/graph.scm b/guix/scripts/graph.scm index b0d7c08582..ba63780e2b 100644 --- a/guix/scripts/graph.scm +++ b/guix/scripts/graph.scm @@ -21,7 +21,7 @@ (define-module (guix scripts graph) #:use-module (guix graph) #:use-module (guix grafts) #:use-module (guix scripts) - #:use-module (guix utils) + #:use-module (guix combinators) #:use-module (guix packages) #:use-module (guix monads) #:use-module (guix store) diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index c581586ac3..06001d3eae 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -31,6 +31,7 @@ (define-module (guix scripts lint) #:use-module (guix records) #:use-module (guix ui) #:use-module (guix utils) + #:use-module (guix combinators) #:use-module (guix scripts) #:use-module (guix gnu-maintenance) #:use-module (guix monads) diff --git a/guix/scripts/size.scm b/guix/scripts/size.scm index 8f0cb7decd..be1e8ca087 100644 --- a/guix/scripts/size.scm +++ b/guix/scripts/size.scm @@ -21,7 +21,7 @@ (define-module (guix scripts size) #:use-module (guix scripts) #:use-module (guix store) #:use-module (guix monads) - #:use-module (guix utils) + #:use-module (guix combinators) #:use-module (guix grafts) #:use-module (guix packages) #:use-module (guix derivations) diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm index 1cfab81dbd..d46d610347 100755 --- a/guix/scripts/substitute.scm +++ b/guix/scripts/substitute.scm @@ -21,6 +21,7 @@ (define-module (guix scripts substitute) #:use-module (guix ui) #:use-module ((guix store) #:hide (close-connection)) #:use-module (guix utils) + #:use-module (guix combinators) #:use-module (guix config) #:use-module (guix records) #:use-module (guix serialization) diff --git a/guix/serialization.scm b/guix/serialization.scm index 7a3defc03d..286b4cbf30 100644 --- a/guix/serialization.scm +++ b/guix/serialization.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -17,7 +17,7 @@ ;;; along with GNU Guix. If not, see . (define-module (guix serialization) - #:use-module (guix utils) + #:use-module (guix combinators) #:use-module (rnrs bytevectors) #:use-module (rnrs io ports) #:use-module (srfi srfi-1) diff --git a/guix/store.scm b/guix/store.scm index 8d1099dab2..f352a99cbd 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -19,6 +19,7 @@ (define-module (guix store) #:use-module (guix utils) #:use-module (guix config) + #:use-module (guix combinators) #:use-module (guix serialization) #:use-module (guix monads) #:autoload (guix base32) (bytevector->base32-string) diff --git a/guix/ui.scm b/guix/ui.scm index 04ac43723e..8310974ac7 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -30,6 +30,7 @@ (define-module (guix ui) #:use-module (guix packages) #:use-module (guix profiles) #:use-module (guix derivations) + #:use-module (guix combinators) #:use-module (guix build-system) #:use-module (guix serialization) #:use-module ((guix build utils) #:select (mkdir-p)) diff --git a/guix/utils.scm b/guix/utils.scm index 725f4346c3..f18bbd19ac 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -32,6 +32,7 @@ (define-module (guix utils) #:use-module (rnrs bytevectors) #:use-module (rnrs io ports) #:use-module ((rnrs bytevectors) #:select (bytevector-u8-set!)) + #:use-module (guix combinators) #:use-module ((guix build utils) #:select (dump-port)) #:use-module ((guix build syscalls) #:select (errno mkdtemp!)) #:use-module (ice-9 vlist) @@ -46,9 +47,7 @@ (define-module (guix utils) #:export (bytevector->base16-string base16-string->bytevector - compile-time-value fcntl-flock - memoize strip-keyword-arguments default-keyword-arguments substitute-keyword-arguments @@ -82,9 +81,6 @@ (define-module (guix utils) call-with-temporary-output-file call-with-temporary-directory with-atomic-file-output - fold2 - fold-tree - fold-tree-leaves cache-directory readlink* edit-expression @@ -97,22 +93,6 @@ (define-module (guix utils) call-with-compressed-output-port canonical-newline-port)) - -;;; -;;; Compile-time computations. -;;; - -(define-syntax compile-time-value - (syntax-rules () - "Evaluate the given expression at compile time. The expression must -evaluate to a simple datum." - ((_ exp) - (let-syntax ((v (lambda (s) - (let ((val exp)) - (syntax-case s () - (_ #`'#,(datum->syntax s val))))))) - v)))) - ;;; ;;; Base 16. @@ -432,22 +412,9 @@ (define fd ;;; -;;; Miscellaneous. +;;; Keyword arguments. ;;; -(define (memoize proc) - "Return a memoizing version of PROC." - (let ((cache (make-hash-table))) - (lambda args - (let ((results (hash-ref cache args))) - (if results - (apply values results) - (let ((results (call-with-values (lambda () - (apply proc args)) - list))) - (hash-set! cache args results) - (apply values results))))))) - (define (strip-keyword-arguments keywords args) "Remove all of the keyword arguments listed in KEYWORDS from ARGS." (let loop ((args args) @@ -533,6 +500,11 @@ (define (ensure-keyword-arguments args kw/values) (#f (loop rest kw/values (cons* value kw result)))))))) + +;;; +;;; System strings. +;;; + (define* (nix-system->gnu-triplet #:optional (system (%current-system)) (vendor "unknown")) "Return a guess of the GNU triplet corresponding to Nix system @@ -731,62 +703,6 @@ (define (with-atomic-file-output file proc) (lambda (key . args) (false-if-exception (delete-file template)))))) -(define fold2 - (case-lambda - ((proc seed1 seed2 lst) - "Like `fold', but with a single list and two seeds." - (let loop ((result1 seed1) - (result2 seed2) - (lst lst)) - (if (null? lst) - (values result1 result2) - (call-with-values - (lambda () (proc (car lst) result1 result2)) - (lambda (result1 result2) - (loop result1 result2 (cdr lst))))))) - ((proc seed1 seed2 lst1 lst2) - "Like `fold', but with a two lists and two seeds." - (let loop ((result1 seed1) - (result2 seed2) - (lst1 lst1) - (lst2 lst2)) - (if (or (null? lst1) (null? lst2)) - (values result1 result2) - (call-with-values - (lambda () (proc (car lst1) (car lst2) result1 result2)) - (lambda (result1 result2) - (fold2 proc result1 result2 (cdr lst1) (cdr lst2))))))))) - -(define (fold-tree proc init children roots) - "Call (PROC NODE RESULT) for each node in the tree that is reachable from -ROOTS, using INIT as the initial value of RESULT. The order in which nodes -are traversed is not specified, however, each node is visited only once, based -on an eq? check. Children of a node to be visited are generated by -calling (CHILDREN NODE), the result of which should be a list of nodes that -are connected to NODE in the tree, or '() or #f if NODE is a leaf node." - (let loop ((result init) - (seen vlist-null) - (lst roots)) - (match lst - (() result) - ((head . tail) - (if (not (vhash-assq head seen)) - (loop (proc head result) - (vhash-consq head #t seen) - (match (children head) - ((or () #f) tail) - (children (append tail children)))) - (loop result seen tail)))))) - -(define (fold-tree-leaves proc init children roots) - "Like fold-tree, but call (PROC NODE RESULT) only for leaf nodes." - (fold-tree - (lambda (node result) - (match (children node) - ((or () #f) (proc node result)) - (else result))) - init children roots)) - (define (cache-directory) "Return the cache directory for Guix, by default ~/.cache/guix." (or (getenv "XDG_CONFIG_HOME") diff --git a/tests/combinators.scm b/tests/combinators.scm new file mode 100644 index 0000000000..1e4bb236b7 --- /dev/null +++ b/tests/combinators.scm @@ -0,0 +1,85 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2014 Eric Bavier +;;; +;;; 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 . + +(define-module (test-combinators) + #:use-module (guix combinators) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-64) + #:use-module (ice-9 vlist)) + +(test-begin "combinators") + +(test-equal "fold2, 1 list" + (list (reverse (iota 5)) + (map - (reverse (iota 5)))) + (call-with-values + (lambda () + (fold2 (lambda (i r1 r2) + (values (cons i r1) + (cons (- i) r2))) + '() '() + (iota 5))) + list)) + +(test-equal "fold2, 2 lists" + (list (reverse '((a . 0) (b . 1) (c . 2) (d . 3))) + (reverse '((a . 0) (b . -1) (c . -2) (d . -3)))) + (call-with-values + (lambda () + (fold2 (lambda (k v r1 r2) + (values (alist-cons k v r1) + (alist-cons k (- v) r2))) + '() '() + '(a b c d) + '(0 1 2 3))) + list)) + +(let* ((tree (alist->vhash + '((0 2 3) (1 3 4) (2) (3 5 6) (4 6) (5) (6)) + hashq)) + (add-one (lambda (_ r) (1+ r))) + (tree-lookup (lambda (n) (cdr (vhash-assq n tree))))) + (test-equal "fold-tree, single root" + 5 (fold-tree add-one 0 tree-lookup '(0))) + (test-equal "fold-tree, two roots" + 7 (fold-tree add-one 0 tree-lookup '(0 1))) + (test-equal "fold-tree, sum" + 16 (fold-tree + 0 tree-lookup '(0))) + (test-equal "fold-tree, internal" + 18 (fold-tree + 0 tree-lookup '(3 4))) + (test-equal "fold-tree, cons" + '(1 3 4 5 6) + (sort (fold-tree cons '() tree-lookup '(1)) <)) + (test-equal "fold-tree, overlapping paths" + '(1 3 4 5 6) + (sort (fold-tree cons '() tree-lookup '(1 4)) <)) + (test-equal "fold-tree, cons, two roots" + '(0 2 3 4 5 6) + (sort (fold-tree cons '() tree-lookup '(0 4)) <)) + (test-equal "fold-tree-leaves, single root" + 2 (fold-tree-leaves add-one 0 tree-lookup '(1))) + (test-equal "fold-tree-leaves, single root, sum" + 11 (fold-tree-leaves + 0 tree-lookup '(1))) + (test-equal "fold-tree-leaves, two roots" + 3 (fold-tree-leaves add-one 0 tree-lookup '(0 1))) + (test-equal "fold-tree-leaves, two roots, sum" + 13 (fold-tree-leaves + 0 tree-lookup '(0 1)))) + +(test-end) + diff --git a/tests/utils.scm b/tests/utils.scm index 854999f670..a54482e94c 100644 --- a/tests/utils.scm +++ b/tests/utils.scm @@ -97,31 +97,6 @@ (define temp-file (string-replace-substring "/nix/store/chbouib" "/nix/" "/gnu/") (string-replace-substring "" "foo" "bar"))) -(test-equal "fold2, 1 list" - (list (reverse (iota 5)) - (map - (reverse (iota 5)))) - (call-with-values - (lambda () - (fold2 (lambda (i r1 r2) - (values (cons i r1) - (cons (- i) r2))) - '() '() - (iota 5))) - list)) - -(test-equal "fold2, 2 lists" - (list (reverse '((a . 0) (b . 1) (c . 2) (d . 3))) - (reverse '((a . 0) (b . -1) (c . -2) (d . -3)))) - (call-with-values - (lambda () - (fold2 (lambda (k v r1 r2) - (values (alist-cons k v r1) - (alist-cons k (- v) r2))) - '() '() - '(a b c d) - '(0 1 2 3))) - list)) - (test-equal "strip-keyword-arguments" '(a #:b b #:c c) (strip-keyword-arguments '(#:foo #:bar #:baz) @@ -136,37 +111,6 @@ (define temp-file (ensure-keyword-arguments '(#:foo 2) '(#:bar 3)) (ensure-keyword-arguments '(#:foo 2) '(#:bar 3 #:foo 42)))) -(let* ((tree (alist->vhash - '((0 2 3) (1 3 4) (2) (3 5 6) (4 6) (5) (6)) - hashq)) - (add-one (lambda (_ r) (1+ r))) - (tree-lookup (lambda (n) (cdr (vhash-assq n tree))))) - (test-equal "fold-tree, single root" - 5 (fold-tree add-one 0 tree-lookup '(0))) - (test-equal "fold-tree, two roots" - 7 (fold-tree add-one 0 tree-lookup '(0 1))) - (test-equal "fold-tree, sum" - 16 (fold-tree + 0 tree-lookup '(0))) - (test-equal "fold-tree, internal" - 18 (fold-tree + 0 tree-lookup '(3 4))) - (test-equal "fold-tree, cons" - '(1 3 4 5 6) - (sort (fold-tree cons '() tree-lookup '(1)) <)) - (test-equal "fold-tree, overlapping paths" - '(1 3 4 5 6) - (sort (fold-tree cons '() tree-lookup '(1 4)) <)) - (test-equal "fold-tree, cons, two roots" - '(0 2 3 4 5 6) - (sort (fold-tree cons '() tree-lookup '(0 4)) <)) - (test-equal "fold-tree-leaves, single root" - 2 (fold-tree-leaves add-one 0 tree-lookup '(1))) - (test-equal "fold-tree-leaves, single root, sum" - 11 (fold-tree-leaves + 0 tree-lookup '(1))) - (test-equal "fold-tree-leaves, two roots" - 3 (fold-tree-leaves add-one 0 tree-lookup '(0 1))) - (test-equal "fold-tree-leaves, two roots, sum" - 13 (fold-tree-leaves + 0 tree-lookup '(0 1)))) - (test-assert "filtered-port, file" (let* ((file (search-path %load-path "guix.scm")) (input (open-file file "r0b"))) -- cgit v1.2.3 From 4d9ed58498e3acb5bad1c5b862853f72bd3312aa Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 4 May 2016 17:49:32 +0200 Subject: build: Preserve stderr for shell tests. Fixes a regression introduced in a9edb211e733b8b34e67ec3b4450567e9376986f where the .log files of the .sh tests would not contain stderr. * build-aux/test-env.in: Redirect stderr only when --quiet-stderr is passed. * Makefile.am (SCM_LOG_DRIVER): Add --quiet-stderr. --- Makefile.am | 7 +++++-- build-aux/test-env.in | 14 ++++++++++---- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/Makefile.am b/Makefile.am index 4685fe1650..6e8dfd318f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -297,8 +297,11 @@ TESTS = $(SCM_TESTS) $(SH_TESTS) AM_TESTS_ENVIRONMENT = abs_top_srcdir="$(abs_top_srcdir)" GUILE_AUTO_COMPILE=0 -SCM_LOG_DRIVER = $(top_builddir)/test-env $(GUILE) --no-auto-compile \ - -e main $(top_srcdir)/build-aux/test-driver.scm +SCM_LOG_DRIVER = \ + $(top_builddir)/test-env --quiet-stderr \ + $(GUILE) --no-auto-compile -e main \ + $(top_srcdir)/build-aux/test-driver.scm + AM_SCM_LOG_DRIVER_FLAGS = --brief=yes SH_LOG_COMPILER = $(top_builddir)/test-env $(SHELL) diff --git a/build-aux/test-env.in b/build-aux/test-env.in index c3f60f7283..c153763a56 100644 --- a/build-aux/test-env.in +++ b/build-aux/test-env.in @@ -29,12 +29,18 @@ # stdout. unset CDPATH +case "$1" in + --quiet-stderr) + # Silence the daemon's output, which is often useless, as well as that + # of Bash (such as "Terminated" messages when 'guix-daemon' is + # killed.) + exec 2> /dev/null + shift + ;; +esac + if [ -x "@abs_top_builddir@/guix-daemon" ] then - # Silence the daemon's output, which is often useless, as well as that of - # Bash (such as "Terminated" messages when 'guix-daemon' is killed.) - exec 2> /dev/null - NIX_STORE_DIR="@GUIX_TEST_ROOT@/store" # Do that because store.scm calls `canonicalize-path' on it. -- cgit v1.2.3 From b13cf17fcfb62e82efd7477c0da7a56b11ff4288 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 4 May 2016 17:51:44 +0200 Subject: gnu: java-qdox: Escape "@" in description. * gnu/packages/java.scm (java-qdox-1.12)[description]: Use "@@tag", not "@tag". --- gnu/packages/java.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index fbee1a3fb3..e715798691 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -897,7 +897,7 @@ (define-public java-qdox-1.12 (description "QDox is a high speed, small footprint parser for extracting class/interface/method definitions from source files complete with JavaDoc -@code{@tags}. It is designed to be used by active code generators or +@code{@@tags}. It is designed to be used by active code generators or documentation tools.") (license license:asl2.0))) -- cgit v1.2.3 From b2fef041fcfbb63d7901c25647373aeda56b026e Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 4 May 2016 22:48:28 +0200 Subject: system: Add procedures to access user accounts and service names. * gnu/system.scm (operating-system-user-accounts) (operating-system-shepherd-service-names): New procedures. --- gnu/system.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gnu/system.scm b/gnu/system.scm index 768ca9cab2..96ea153cd0 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -82,6 +82,8 @@ (define-module (gnu system) operating-system-file-systems operating-system-store-file-system operating-system-activation-script + operating-system-user-accounts + operating-system-shepherd-service-names operating-system-derivation operating-system-profile @@ -578,6 +580,22 @@ (define* (operating-system-boot-script os #:key container?) ;; BOOT is the script as a monadic value. (service-parameters boot))) +(define (operating-system-user-accounts os) + "Return the list of user accounts of OS." + (let* ((services (operating-system-services os)) + (account (fold-services services + #:target-type account-service-type))) + (filter user-account? + (service-parameters account)))) + +(define (operating-system-shepherd-service-names os) + "Return the list of Shepherd service names for OS." + (append-map shepherd-service-provision + (service-parameters + (fold-services (operating-system-services os) + #:target-type + shepherd-root-service-type)))) + (define* (operating-system-derivation os #:key container?) "Return a derivation that builds OS." (let* ((services (operating-system-services os #:container? container?)) -- cgit v1.2.3 From 957afcae3cded622f4260385f69b40dbdcaade9f Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 4 May 2016 23:31:08 +0200 Subject: Add (gnu tests) and (gnu build marionette). * gnu/build/marionette.scm, gnu/tests.scm: New files. * gnu/local.mk (GNU_SYSTEM_MODULES): Add them. * gnu/system/vm.scm (common-qemu-options): Remove '-serial stdio'. --- gnu/build/marionette.scm | 206 +++++++++++++++++++++++++++++++++++++++++++++++ gnu/local.mk | 5 +- gnu/system/vm.scm | 2 +- gnu/tests.scm | 130 ++++++++++++++++++++++++++++++ 4 files changed, 341 insertions(+), 2 deletions(-) create mode 100644 gnu/build/marionette.scm create mode 100644 gnu/tests.scm diff --git a/gnu/build/marionette.scm b/gnu/build/marionette.scm new file mode 100644 index 0000000000..9399c55313 --- /dev/null +++ b/gnu/build/marionette.scm @@ -0,0 +1,206 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu build marionette) + #:use-module (srfi srfi-9) + #:use-module (srfi srfi-26) + #:use-module (rnrs io ports) + #:use-module (ice-9 match) + #:export (marionette? + make-marionette + marionette-eval + marionette-control + %qwerty-us-keystrokes + marionette-type)) + +;;; Commentary: +;;; +;;; Instrumentation tools for QEMU virtual machines (VMs). A "marionette" is +;;; essentially a VM (a QEMU instance) with its monitor connected to a +;;; Unix-domain socket, and with a REPL inside the guest listening on a +;;; virtual console, which is itself connected to the host via a Unix-domain +;;; socket--these are the marionette's strings, connecting it to the almighty +;;; puppeteer. +;;; +;;; Code: + +(define-record-type + (marionette command pid monitor repl) + marionette? + (command marionette-command) ;list of strings + (pid marionette-pid) ;integer + (monitor marionette-monitor) ;port + (repl marionette-repl)) ;port + +(define* (wait-for-monitor-prompt port #:key (quiet? #t)) + "Read from PORT until we have seen all of QEMU's monitor prompt. When +QUIET? is false, the monitor's output is written to the current output port." + (define full-prompt + (string->list "(qemu) ")) + + (let loop ((prompt full-prompt) + (matches '()) + (prefix '())) + (match prompt + (() + ;; It's useful to set QUIET? so we don't display the echo of our own + ;; commands. + (unless quiet? + (for-each (lambda (line) + (format #t "qemu monitor: ~a~%" line)) + (string-tokenize (list->string (reverse prefix)) + (char-set-complement (char-set #\newline)))))) + ((chr rest ...) + (let ((read (read-char port))) + (cond ((eqv? read chr) + (loop rest (cons read matches) prefix)) + ((eof-object? read) + (error "EOF while waiting for QEMU monitor prompt" + (list->string (reverse prefix)))) + (else + (loop full-prompt + '() + (cons read (append matches prefix)))))))))) + +(define* (make-marionette command + #:key (socket-directory "/tmp") (timeout 20)) + "Return a QEMU marionette--i.e., a virtual machine with open connections to the +QEMU monitor and to the guest's backdoor REPL." + (define (file->sockaddr file) + (make-socket-address AF_UNIX + (string-append socket-directory "/" file))) + + (define extra-options + (list "-nographic" + "-monitor" (string-append "unix:" socket-directory "/monitor") + "-chardev" (string-append "socket,id=repl,path=" socket-directory + "/repl") + "-device" "virtio-serial" + "-device" "virtconsole,chardev=repl")) + + (let ((monitor (socket AF_UNIX SOCK_STREAM 0)) + (repl (socket AF_UNIX SOCK_STREAM 0))) + (bind monitor (file->sockaddr "monitor")) + (listen monitor 1) + (bind repl (file->sockaddr "repl")) + (listen repl 1) + + (match (primitive-fork) + (0 + (catch #t + (lambda () + (close monitor) + (close repl) + (match command + ((program . args) + (apply execl program program + (append args extra-options))))) + (lambda (key . args) + (print-exception (current-error-port) + (stack-ref (make-stack #t) 1) + key args) + (primitive-exit 1)))) + (pid + (format #t "QEMU runs as PID ~a~%" pid) + (sigaction SIGALRM + (lambda (signum) + (display "time is up!\n") ;FIXME: break + #t)) + (alarm timeout) + + (match (accept monitor) + ((monitor-conn . _) + (display "connected to QEMU's monitor\n") + (close-port monitor) + (wait-for-monitor-prompt monitor-conn) + (display "read QEMU monitor prompt\n") + (match (accept repl) + ((repl-conn . addr) + (display "connected to guest REPL\n") + (close-port repl) + (match (read repl-conn) + ('ready + (alarm 0) + (sigaction SIGALRM SIG_DFL) + (display "marionette is ready\n") + (marionette (append command extra-options) pid + monitor-conn repl-conn))))))))))) + +(define (marionette-eval exp marionette) + "Evaluate EXP in MARIONETTE's backdoor REPL. Return the result." + (match marionette + (($ command pid monitor repl) + (write exp repl) + (newline repl) + (read repl)))) + +(define (marionette-control command marionette) + "Run COMMAND in the QEMU monitor of MARIONETTE. COMMAND is a string such as +\"sendkey ctrl-alt-f1\" or \"screendump foo.ppm\" (info \"(qemu-doc) +pcsys_monitor\")." + (match marionette + (($ _ _ monitor) + (display command monitor) + (newline monitor) + (wait-for-monitor-prompt monitor)))) + +(define %qwerty-us-keystrokes + ;; Maps "special" characters to their keystrokes. + '((#\newline . "ret") + (#\space . "spc") + (#\- . "minus") + (#\+ . "shift-equal") + (#\* . "shift-8") + (#\= . "equal") + (#\? . "shift-slash") + (#\[ . "bracket_left") + (#\] . "bracket_right") + (#\( . "shift-9") + (#\) . "shift-0") + (#\/ . "slash") + (#\< . "less") + (#\> . "shift-less") + (#\. . "dot") + (#\, . "comma") + (#\; . "semicolon") + (#\bs . "backspace") + (#\tab . "tab"))) + +(define* (string->keystroke-commands str + #:optional + (keystrokes + %qwerty-us-keystrokes)) + "Return a list of QEMU monitor commands to send the keystrokes corresponding +to STR. KEYSTROKES is an alist specifying a mapping from characters to +keystrokes." + (string-fold-right (lambda (chr result) + (cons (string-append "sendkey " + (or (assoc-ref keystrokes chr) + (string chr))) + result)) + '() + str)) + +(define* (marionette-type str marionette + #:key (keystrokes %qwerty-us-keystrokes)) + "Type STR on MARIONETTE's keyboard, using the KEYSTROKES alist to map characters +to actual keystrokes." + (for-each (cut marionette-control <> marionette) + (string->keystroke-commands str keystrokes))) + +;;; marionette.scm ends here diff --git a/gnu/local.mk b/gnu/local.mk index 2f77c50940..d7797602e9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -398,7 +398,10 @@ GNU_SYSTEM_MODULES = \ gnu/build/linux-container.scm \ gnu/build/linux-initrd.scm \ gnu/build/linux-modules.scm \ - gnu/build/vm.scm + gnu/build/marionette.scm \ + gnu/build/vm.scm \ + \ + gnu/tests.scm patchdir = $(guilemoduledir)/gnu/packages/patches diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 2fbef6a3fc..e6ce42467a 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -468,7 +468,7 @@ (define (virtfs-option fs) " -no-reboot -net nic,model=virtio \ " #$@(map virtfs-option shared-fs) " \ -net user \ - -serial stdio -vga std \ + -vga std \ -drive file=" #$image ",if=virtio,cache=writeback,werror=report,readonly \ -m 256")) diff --git a/gnu/tests.scm b/gnu/tests.scm new file mode 100644 index 0000000000..08d8315ea0 --- /dev/null +++ b/gnu/tests.scm @@ -0,0 +1,130 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu tests) + #:use-module (guix gexp) + #:use-module (gnu system) + #:use-module (gnu services) + #:use-module (gnu services shepherd) + #:export (backdoor-service-type + marionette-operating-system)) + +;;; Commentary: +;;; +;;; This module provides the infrastructure to run operating system tests. +;;; The most important part of that is tools to instrument the OS under test, +;;; essentially allowing to run in a virtual machine controlled by the host +;;; system--hence the name "marionette". +;;; +;;; Code: + +(define (marionette-shepherd-service imported-modules) + "Return the Shepherd service for the marionette REPL" + (define device + "/dev/hvc0") + + (list (shepherd-service + (provision '(marionette)) + (requirement '(udev)) ;so that DEVICE is available + (modules '((ice-9 match) + (srfi srfi-9 gnu) + (guix build syscalls) + (rnrs bytevectors))) + (imported-modules `((guix build syscalls) + ,@imported-modules)) + (start + #~(lambda () + (define (clear-echo termios) + (set-field termios (termios-local-flags) + (logand (lognot (local-flags ECHO)) + (termios-local-flags termios)))) + + (define (self-quoting? x) + (letrec-syntax ((one-of (syntax-rules () + ((_) #f) + ((_ pred rest ...) + (or (pred x) + (one-of rest ...)))))) + (one-of symbol? string? pair? null? vector? + bytevector? number? boolean?))) + + (match (primitive-fork) + (0 + (dynamic-wind + (const #t) + (lambda () + (let* ((repl (open-file #$device "r+0")) + (termios (tcgetattr (fileno repl))) + (console (open-file "/dev/console" "r+0"))) + ;; Don't echo input back. + (tcsetattr (fileno repl) (tcsetattr-action TCSANOW) + (clear-echo termios)) + + ;; Redirect output to the console. + (close-fdes 1) + (close-fdes 2) + (dup2 (fileno console) 1) + (dup2 (fileno console) 2) + (close-port console) + + (display 'ready repl) + (let loop () + (newline repl) + + (match (read repl) + ((? eof-object?) + (primitive-exit 0)) + (expr + (catch #t + (lambda () + (let ((result (primitive-eval expr))) + (write (if (self-quoting? result) + result + (object->string result)) + repl))) + (lambda (key . args) + (print-exception (current-error-port) + (stack-ref (make-stack #t) 1) + key args) + (write #f repl))))) + (loop)))) + (lambda () + (primitive-exit 1)))) + (pid + pid)))) + (stop #~(make-kill-destructor))))) + +(define marionette-service-type + ;; This is the type of the "marionette" service, allowing a guest system to + ;; be manipulated from the host. This marionette REPL is essentially a + ;; universal marionette. + (service-type (name 'marionette-repl) + (extensions + (list (service-extension shepherd-root-service-type + marionette-shepherd-service))))) + +(define* (marionette-operating-system os + #:key (imported-modules '())) + "Return a marionetteed variant of OS such that OS can be used as a marionette +in a virtual machine--i.e., controlled from the host system." + (operating-system + (inherit os) + (services (cons (service marionette-service-type imported-modules) + (operating-system-user-services os))))) + +;;; tests.scm ends here -- cgit v1.2.3 From e9f693d06f94bd96488c3910dba6504f94a6b6f9 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 4 May 2016 23:33:59 +0200 Subject: tests: Add whole-system test. * gnu/system/vm.scm (virtualized-operating-system): Export. * gnu/tests/base.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * Makefile.am (check-system): New target. --- Makefile.am | 7 +++ gnu/local.mk | 3 +- gnu/system/vm.scm | 1 + gnu/tests/base.scm | 168 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 178 insertions(+), 1 deletion(-) create mode 100644 gnu/tests/base.scm diff --git a/Makefile.am b/Makefile.am index 6e8dfd318f..e0be844bfd 100644 --- a/Makefile.am +++ b/Makefile.am @@ -330,6 +330,13 @@ check-local: endif !CAN_RUN_TESTS +check-system: $(GOBJECTS) + $(AM_V_at)echo "Running system tests..." + $(AM_V_at)$(top_builddir)/pre-inst-env \ + $(GUILE) --no-auto-compile \ + -e '(@@ (run-system-tests) run-system-tests)' \ + $(top_srcdir)/build-aux/run-system-tests.scm + # Public key used to sign substitutes from hydra.gnu.org. dist_pkgdata_DATA = hydra.gnu.org.pub diff --git a/gnu/local.mk b/gnu/local.mk index d7797602e9..0292b39508 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -401,7 +401,8 @@ GNU_SYSTEM_MODULES = \ gnu/build/marionette.scm \ gnu/build/vm.scm \ \ - gnu/tests.scm + gnu/tests.scm \ + gnu/tests/base.scm patchdir = $(guilemoduledir)/gnu/packages/patches diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index e6ce42467a..676e89df98 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -58,6 +58,7 @@ (define-module (gnu system vm) #:export (expression->derivation-in-linux-vm qemu-image + virtualized-operating-system system-qemu-image system-qemu-image/shared-store diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm new file mode 100644 index 0000000000..bf2d095709 --- /dev/null +++ b/gnu/tests/base.scm @@ -0,0 +1,168 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu tests base) + #:use-module (gnu tests) + #:use-module (gnu system) + #:use-module (gnu system grub) + #:use-module (gnu system file-systems) + #:use-module (gnu system shadow) + #:use-module (gnu system vm) + #:use-module (gnu services) + #:use-module (gnu services shepherd) + #:use-module (guix gexp) + #:use-module (guix store) + #:use-module (guix monads) + #:use-module (guix packages) + #:use-module (srfi srfi-1) + #:export (%test-basic-os)) + +(define %simple-os + (operating-system + (host-name "komputilo") + (timezone "Europe/Berlin") + (locale "en_US.UTF-8") + + (bootloader (grub-configuration (device "/dev/sdX"))) + (file-systems (cons (file-system + (device "my-root") + (title 'label) + (mount-point "/") + (type "ext4")) + %base-file-systems)) + (firmware '()) + + (users (cons (user-account + (name "alice") + (comment "Bob's sister") + (group "users") + (supplementary-groups '("wheel" "audio" "video")) + (home-directory "/home/alice")) + %base-user-accounts)))) + + +(define %test-basic-os + ;; Monadic derivation that instruments %SIMPLE-OS, runs it in a VM, and runs + ;; a series of basic functionality tests. + (mlet* %store-monad ((os -> (marionette-operating-system + %simple-os + #:imported-modules '((gnu services herd) + (guix combinators)))) + (run (system-qemu-image/shared-store-script + os #:graphic? #f))) + (define test + #~(begin + (use-modules (gnu build marionette) + (srfi srfi-1) + (srfi srfi-26) + (srfi srfi-64) + (ice-9 match)) + + (define marionette + (make-marionette (list #$run))) + + (mkdir #$output) + (chdir #$output) + + (test-begin "basic") + + (test-assert "uname" + (match (marionette-eval '(uname) marionette) + (#("Linux" "komputilo" version _ "x86_64") + (string-prefix? #$(package-version + (operating-system-kernel os)) + version)))) + + (test-assert "shell and user commands" + ;; Is everything in $PATH? + (zero? (marionette-eval '(system " +. /etc/profile +set -e -x +guix --version +ls --version +grep --version +info --version") + marionette))) + + (test-assert "accounts" + (let ((users (marionette-eval '(begin + (use-modules (ice-9 match)) + (let loop ((result '())) + (match (getpw) + (#f (reverse result)) + (x (loop (cons x result)))))) + marionette))) + (lset= string=? + (map passwd:name users) + (list + #$@(map user-account-name + (operating-system-user-accounts os)))))) + + (test-assert "shepherd services" + (let ((services (marionette-eval '(begin + (use-modules (gnu services herd)) + (call-with-values current-services + append)) + marionette))) + (lset= eq? + (pk 'services services) + '(root #$@(operating-system-shepherd-service-names + (virtualized-operating-system os '())))))) + + (test-equal "login on tty1" + "root\n" + (begin + (marionette-control "sendkey ctrl-alt-f1" marionette) + ;; Wait for the 'term-tty1' service to be running + (marionette-eval + '(begin + (use-modules (gnu services herd)) + + (let loop ((i 0)) + (when (> i 10) + (error "terminal service not running" (current-services))) + (unless (memq 'term-tty1 (current-services)) + (sleep 1) + (loop (+ i 1))))) + marionette) + + ;; Now we can type. + (marionette-type "root\n\nid -un > logged-in\n" marionette) + + ;; It can take a while before the shell commands are executed. + (let loop ((i 0)) + (unless (or (file-exists? "/root/logged-in") (> i 15)) + (sleep 1) + (loop (+ i 1)))) + (marionette-eval '(use-modules (rnrs io ports)) marionette) + (marionette-eval '(call-with-input-file "/root/logged-in" + get-string-all) + marionette))) + + (test-assert "screendump" + (begin + (marionette-control (string-append "screendump " #$output + "/tty1.ppm") + marionette) + (file-exists? "tty1.ppm"))) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0)))) + + (gexp->derivation "basic" test + #:modules '((gnu build marionette))))) -- cgit v1.2.3 From 41c569d9b9c47ce8f2fb280f24c0a6d4e76f8bc7 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 4 May 2016 23:56:42 +0200 Subject: build: Add 'run-system-tests.scm'. This file was meant to be added as part of commit e9f693d06f94bd96488c3910dba6504f94a6b6f9. * build-aux/run-system-tests.scm: New file. * Makefile.am (EXTRA_DIST): Add it. --- Makefile.am | 1 + build-aux/run-system-tests.scm | 71 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 build-aux/run-system-tests.scm diff --git a/Makefile.am b/Makefile.am index e0be844bfd..dfd486b256 100644 --- a/Makefile.am +++ b/Makefile.am @@ -361,6 +361,7 @@ EXTRA_DIST = \ build-aux/make-binary-tarball.scm \ build-aux/generate-authors.scm \ build-aux/test-driver.scm \ + build-aux/run-system-tests.scm \ srfi/srfi-37.scm.in \ srfi/srfi-64.scm \ srfi/srfi-64.upstream.scm \ diff --git a/build-aux/run-system-tests.scm b/build-aux/run-system-tests.scm new file mode 100644 index 0000000000..e98de9cb7e --- /dev/null +++ b/build-aux/run-system-tests.scm @@ -0,0 +1,71 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Ludovic Courtès +;;; +;;; 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 . + +(define-module (run-system-tests) + #:use-module (gnu tests base) + #:use-module (guix store) + #:use-module (guix monads) + #:use-module (guix derivations) + #:use-module (guix ui) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-34) + #:export (run-system-tests)) + +(define (built-derivations* drv) + (lambda (store) + (guard (c ((nix-protocol-error? c) + (values #f store))) + (values (build-derivations store drv) store)))) + +(define (filterm mproc lst) ;XXX: move to (guix monads) + (with-monad %store-monad + (>>= (foldm %store-monad + (lambda (item result) + (mlet %store-monad ((keep? (mproc item))) + (return (if keep? + (cons item result) + result)))) + '() + lst) + (lift1 reverse %store-monad)))) + +(define %system-tests + (list %test-basic-os)) + +(define (run-system-tests . args) + (with-store store + (run-with-store store + (mlet* %store-monad ((drv (sequence %store-monad %system-tests)) + (out -> (map derivation->output-path drv))) + (mbegin %store-monad + (show-what-to-build* drv) + (set-build-options* #:keep-going? #t #:keep-failed? #t) + (built-derivations* drv) + (mlet %store-monad ((valid (filterm (store-lift valid-path?) + out)) + (failed (filterm (store-lift + (negate valid-path?)) + out))) + (format #t "TOTAL: ~a\n" (length drv)) + (for-each (lambda (item) + (format #t "PASS: ~a~%" item)) + valid) + (for-each (lambda (item) + (format #t "FAIL: ~a~%" item)) + failed) + (exit (null? failed)))))))) -- cgit v1.2.3 From 1a957c21c693283f6c34cbf78b447d62a047e7b7 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 5 May 2016 02:16:17 -0400 Subject: gnu: libressl: Update to 2.3.4 [security fixes]. Fixes CVE-2016-{2105, 2106, 2107, 2108, 2109}. * gnu/packages/tls.scm (libressl): Update to 2.3.4. --- gnu/packages/tls.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 6685ee0349..885552bcb7 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -321,15 +321,16 @@ (define openssl/fixed (define-public libressl (package (name "libressl") - (version "2.3.3") + (version "2.3.4") (source (origin (method url-fetch) (uri (string-append "http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-" version ".tar.gz")) - (sha256 (base32 - "1a8anm8nsfyxds03csk738m2cmzjbsb867my1rz5ij3w31k32wvn")))) + (sha256 + (base32 + "1ag65pbvdikqj5y1w780jicl3ngi9ld2332ki6794y0gcar3a4bs")))) (build-system gnu-build-system) (native-search-paths ;; FIXME: These two variables must designate a single file or directory -- cgit v1.2.3 From 86670ca4b7c1c5c86bcffd0d82fc5940d5bf4f1d Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 5 May 2016 11:26:55 +0300 Subject: emacs: main: Use (guix combinators). Reported by rsiddharth on #guix. This is a followup to commit 958dd3ce68733bcd5c1231424c7e4ad39e67594a. * emacs/guix-main.scm: Use (guix combinators) module as 'memoize' moved there. --- emacs/guix-main.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm index 5358f3bfa4..2be86f026b 100644 --- a/emacs/guix-main.scm +++ b/emacs/guix-main.scm @@ -52,6 +52,7 @@ (srfi srfi-19) (srfi srfi-26) (guix) + (guix combinators) (guix git-download) (guix packages) (guix profiles) -- cgit v1.2.3 From a82f322b1cc70063a648046963af2129162a7c04 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 5 May 2016 07:56:37 -0400 Subject: gnu: linux-libre-4.1: Update to 4.1.23. * gnu/packages/linux.scm (linux-libre-4.1): Update to 4.1.23. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index aa778beefb..186c9e7dad 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -354,13 +354,13 @@ (define-public linux-libre-4.4 (define-public linux-libre-4.1 (package (inherit linux-libre) - (version "4.1.22") + (version "4.1.23") (source (origin (method url-fetch) (uri (linux-libre-urls version)) (sha256 (base32 - "0bn6qba7q4i3yn3zx2p56gawnb2gczrf4vyrjggirj4d60gvng7y")))) + "0f9ilyr05jmc3416sjy3n42zwch2h7mwg9wazaawjwc7905n8yy0")))) (native-inputs (let ((conf (kernel-config (or (%current-target-system) (%current-system)) -- cgit v1.2.3 From a6b3c07a7a2634c017b877c0ceb89b9b53feed13 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 5 May 2016 08:44:52 -0400 Subject: gnu: linux-libre-4.4: Update to 4.4.9. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.9. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 186c9e7dad..bcf73f0a9e 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -337,13 +337,13 @@ (define-public linux-libre (define-public linux-libre-4.4 (package (inherit linux-libre) - (version "4.4.8") + (version "4.4.9") (source (origin (method url-fetch) (uri (linux-libre-urls version)) (sha256 (base32 - "0zyhdy01gjglgmlrmpqa1sdnm0z91mzwspbksj6zvcamczb8ml53")))) + "04zwmqp5ib19jmbv2b1zzxdp4zhjkmx408mjky92dkyj33j43iki")))) (native-inputs (let ((conf (kernel-config (or (%current-target-system) (%current-system)) -- cgit v1.2.3 From c041dcd133db262aff996d4ae8b251d52ad07374 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 5 May 2016 08:48:07 -0400 Subject: gnu: linux-libre: Update to 4.5.3. * gnu/packages/linux.scm (linux-libre): Update to 4.5.3. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index bcf73f0a9e..e80c9004ed 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -222,7 +222,7 @@ (define* (kernel-config system #:key variant) (search-path %load-path file))) (define-public linux-libre - (let* ((version "4.5.2") + (let* ((version "4.5.3") (build-phase '(lambda* (#:key system inputs #:allow-other-keys #:rest args) ;; Avoid introducing timestamps @@ -300,7 +300,7 @@ (define-public linux-libre (uri (linux-libre-urls version)) (sha256 (base32 - "0mw8n5pms33k3m3aamlryahrcbhfnqbzvkglgw3j4dhaja3hwr7n")))) + "1zb1qvbzkzih8fdfcvaxcgbhm5kckl6n8d312pbd478svx6fqi2s")))) (build-system gnu-build-system) (supported-systems '("x86_64-linux" "i686-linux")) (native-inputs `(("perl" ,perl) -- cgit v1.2.3 From 7309045cd31bd75ae7e0bd727af59e7615bbb0ae Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Tue, 3 May 2016 18:48:40 +0200 Subject: gnu: Add libiconv. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/base.scm (libiconv): New variable. Co-authored-by: Ludovic Courtès --- gnu/packages/base.scm | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 1c4ebbf64f..beb689ea95 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2014 Alex Kost ;;; Copyright © 2014, 2015 Manolis Fragkiskos Ragkousis ;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016 Jan Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,7 +25,7 @@ (define-module (gnu packages base) #:use-module ((guix licenses) - #:select (gpl3+ lgpl2.0+ public-domain)) + #:select (gpl3+ lgpl2.0+ lgpl3+ public-domain)) #:use-module (gnu packages) #:use-module (gnu packages acl) #:use-module (gnu packages bash) @@ -936,6 +937,33 @@ (define-public tzdata and daylight-saving rules.") (license public-domain))) +(define-public libiconv + (package + (name "libiconv") + (version "1.14") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/libiconv/libiconv-" + version ".tar.gz")) + (sha256 + (base32 + "04q6lgl3kglmmhw59igq1n7v3rp1rpkypl366cy1k1yn2znlvckj")) + (modules '((guix build utils))) + (snippet + ;; Work around "declared gets" error on glibc systems (fixed by + ;; Gnulib commit 66712c23388e93e5c518ebc8515140fa0c807348.) + '(substitute* "srclib/stdio.in.h" + (("^#undef gets") "") + (("^_GL_WARN_ON_USE \\(gets.*") ""))))) + (build-system gnu-build-system) + (synopsis "Character set conversion library") + (description + "libiconv provides an implementation of the iconv function for systems +that lack it. iconv is used to convert between character encodings in a +program. It supports a wide variety of different encodings.") + (home-page "http://www.gnu.org/software/libiconv/") + (license lgpl3+))) + (define-public (canonical-package package) ;; Avoid circular dependency by lazily resolving 'commencement'. (let* ((iface (resolve-interface '(gnu packages commencement))) -- cgit v1.2.3 From 9c61acf2c111377303d0ac9179c1980b4f2316a3 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 5 May 2016 19:43:29 +0300 Subject: gnu: mercurial: Update to 3.8.1 [fixes CVE-2016-3105]. * gnu/packages/version-control.scm (mercurial): Update to 3.8.1. --- gnu/packages/version-control.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index fb85d933f9..944eb7ae24 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -605,14 +605,14 @@ (define-public gitolite (define-public mercurial (package (name "mercurial") - (version "3.7.3") + (version "3.8.1") (source (origin (method url-fetch) (uri (string-append "https://www.mercurial-scm.org/" "release/mercurial-" version ".tar.gz")) (sha256 (base32 - "0c2vkad9piqkggyk8y310rf619qgdfcwswnk3nv21mg2fhnw96f0")))) + "156m6269xdqq7mpw01c6b065k29xnb8b9lyzn1b0nlz5il2izkps")))) (build-system python-build-system) (arguments `(;; Restrict to Python 2, as Python 3 would require -- cgit v1.2.3 From ddba00cdf06df0a4bf7067b5d76d143cb3b1c93d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 5 May 2016 12:09:22 -0400 Subject: gnu: ntp: Update to 4.2.8p7 [security fixes]. This fixes CVE-2015-7704 and CVE-2016-{1547,1548,1549,1551,2516,2517, 2518,2519}. * gnu/packages/ntp.scm (ntp): Update to 4.2.8.p7. --- gnu/packages/ntp.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm index f38fa22b5b..6dbb93f439 100644 --- a/gnu/packages/ntp.scm +++ b/gnu/packages/ntp.scm @@ -38,7 +38,7 @@ (define-module (gnu packages ntp) (define-public ntp (package (name "ntp") - (version "4.2.8p6") + (version "4.2.8p7") (source (origin (method url-fetch) (uri (string-append @@ -47,7 +47,7 @@ (define-public ntp "/ntp-" version ".tar.gz")) (sha256 (base32 - "0j509gd0snj8dq15rhfv2v4wisfaabya1gmgqslk1kisawf0wgaq")) + "1p100856h17nb0kpnppy70nja57hbcc95h7shhxvw6mhl030rll1")) (modules '((guix build utils))) (snippet '(begin -- cgit v1.2.3 From 9478c9d834498f6c7353e56145412435869746e6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 31 Dec 2015 17:25:41 +0200 Subject: gnu: Add connman. * gnu/packages/connman.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. --- gnu/local.mk | 1 + gnu/packages/connman.scm | 89 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 gnu/packages/connman.scm diff --git a/gnu/local.mk b/gnu/local.mk index 0292b39508..cea6a73a55 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -73,6 +73,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/compression.scm \ gnu/packages/conkeror.scm \ gnu/packages/conky.scm \ + gnu/packages/connman.scm \ gnu/packages/cook.scm \ gnu/packages/cpio.scm \ gnu/packages/cppi.scm \ diff --git a/gnu/packages/connman.scm b/gnu/packages/connman.scm new file mode 100644 index 0000000000..2625ae8760 --- /dev/null +++ b/gnu/packages/connman.scm @@ -0,0 +1,89 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Efraim Flashner +;;; +;;; 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 . + +(define-module (gnu packages connman) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (guix licenses) + #:use-module (guix utils) + #:use-module (gnu packages) + #:use-module (gnu packages admin) + #:use-module (gnu packages glib) + #:use-module (gnu packages linux) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages readline) + #:use-module (gnu packages samba) + #:use-module (gnu packages tls) + #:use-module (gnu packages vpn)) + +(define-public connman + (package + (name "connman") + (version "1.32") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kernel.org/pub/linux/network/connman/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0k4kw2j78gwxf0rq79a099qkzl6wi4v5i7rfs4rn0si0fd68d19i")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list "--enable-nmcompat" + ;; "--enable-polkit" + "--enable-openconnect" + "--enable-openvpn" + "--enable-vpnc" + "--enable-pptp" + "--enable-l2tp" + (string-append + "--with-dbusconfdir=" (assoc-ref %outputs "out") "/etc") + (string-append + "--with-dbusdatadir=" (assoc-ref %outputs "out") "/share")))) + (native-inputs + `(("pkg-config", pkg-config) + ("python" ,python-2))) + (inputs + `(("dbus" ,dbus) + ("glib" ,glib) + ("gnutls" ,gnutls) + ("iptables" ,iptables) + ;; ("polkit" ,polkit) ; pkg-config cannot find polkit.pc + ("readline" ,readline) + ;; These inputs are needed for connman to include the interface to + ;; these technologies so IF they are installed they can be used. + ;; TODO: add neard, ofono + ("openconnect" ,openconnect) + ("openvpn" ,openvpn) + ("ppp", ppp) + ("vpnc" ,vpnc) + ("wpa-supplicant" ,wpa-supplicant))) + (home-page "https://01.org/connman") + (synopsis "Connection management daemon") + (description "Connman provides a daemon for managing Internet connections. +The Connection Manager is designed to be slim and to use as few resources as +possible. It is fully modular system that can be extended through plug-ins. +The plug-in approach allows for easy adaption and modification for various use +cases. Connman implements DNS resolving and caching, DHCP clients for both +IPv4 and IPv6, link-local IPv4 address handling and tethering (IP connection +sharing) to clients via USB, ethernet, WiFi, cellular and Bluetooth.") + (license gpl2))) -- cgit v1.2.3 From 76192896e9fa9a79e76752b60b96a911a3e632ee Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 31 Dec 2015 22:10:11 +0200 Subject: services: Add connman-service. * gnu/services/networking.scm (connman-service): New procedure. (connman-service-type, %connman-activation): New variables. (connman-shepherd-service): New procedure. * doc/guix.texi (Networking Services): Document it. --- doc/guix.texi | 14 ++++++++++++- gnu/services/networking.scm | 49 ++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 61 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 0d72574619..b575faffd7 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -18,7 +18,8 @@ Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016 Leo Famulari@* Copyright @copyright{} 2016 Ben Woodcroft@* -Copyright @copyright{} 2016 Chris Marusich +Copyright @copyright{} 2016 Chris Marusich@* +Copyright @copyright{} 2016 Efraim Flashner Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -7390,6 +7391,17 @@ Return a service that runs NetworkManager, a network connection manager attempting to keep network connectivity active when available. @end deffn +@cindex Connman +@deffn {Scheme Procedure} connman-service @ + [#:connman @var{connman}] +Return a service that runs @url{https://01.org/connman,Connman}, a network +connection manager. + +This service adds the @var{connman} package to the global profile, providing +several the @command{connmanctl} command to interact with the daemon and +configure networking." +@end deffn + @deffn {Scheme Procedure} ntp-service [#:ntp @var{ntp}] @ [#:name-service @var{%ntp-servers}] Return a service that runs the daemon from @var{ntp}, the diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 5a0a211236..af2a60936b 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès ;;; Copyright © 2015 Mark H Weaver +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,6 +25,7 @@ (define-module (gnu services networking) #:use-module (gnu system shadow) #:use-module (gnu system pam) #:use-module (gnu packages admin) + #:use-module (gnu packages connman) #:use-module (gnu packages linux) #:use-module (gnu packages tor) #:use-module (gnu packages messaging) @@ -45,7 +47,8 @@ (define-module (gnu services networking) tor-service bitlbee-service wicd-service - network-manager-service)) + network-manager-service + connman-service)) ;;; Commentary: ;;; @@ -652,4 +655,48 @@ (define* (network-manager-service #:key (network-manager network-manager)) that attempting to keep active network connectivity when available." (service network-manager-service-type network-manager)) + +;;; +;;; Connman +;;; + +(define %connman-activation + ;; Activation gexp for Connman. + #~(begin + (use-modules (guix build utils)) + (mkdir-p "/var/lib/connman/") + (mkdir-p "/var/lib/connman-vpn/"))) + +(define (connman-shepherd-service connman) + "Return a shepherd service for Connman" + (list (shepherd-service + (documentation "Run Connman") + (provision '(networking)) + (requirement '(user-processes dbus-system loopback)) + (start #~(make-forkexec-constructor + (list (string-append #$connman + "/sbin/connmand") + "-n" "-r"))) + (stop #~(make-kill-destructor))))) + +(define connman-service-type + (service-type (name 'connman) + (extensions + (list (service-extension shepherd-root-service-type + connman-shepherd-service) + (service-extension dbus-root-service-type list) + (service-extension activation-service-type + (const %connman-activation)) + ;; Add connman to the system profile. + (service-extension profile-service-type list))))) + +(define* (connman-service #:key (connman connman)) + "Return a service that runs @url{https://01.org/connman,Connman}, a network +connection manager. + +This service adds the @var{connman} package to the global profile, providing +several the @command{connmanctl} command to interact with the daemon and +configure networking." + (service connman-service-type connman)) + ;;; networking.scm ends here -- cgit v1.2.3 From 82047474ea4913ca0a67da410fcb2622c82afa14 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Wed, 4 May 2016 15:55:23 +0200 Subject: gnu: Add r-coda. * gnu/packages/statistics.scm (r-coda): New variable. Signed-off-by: Leo Famulari --- gnu/packages/statistics.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 3d0faf7572..a362b32478 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016 Andreas Enge ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Pjotr Prins +;;; Copyright © 2016 Roel Janssen ;;; ;;; This file is part of GNU Guix. ;;; @@ -1239,6 +1240,27 @@ (define-public python2-statsmodels `(("python2-setuptools" ,python2-setuptools) ,@(package-native-inputs stats)))))) +(define-public r-coda + (package + (name "r-coda") + (version "0.18-1") + (source (origin + (method url-fetch) + (uri (cran-uri "coda" version)) + (sha256 + (base32 + "03sc780734zj2kqcm8lkyvf76fql0jbfhkblpn8l58zmb6cqi958")))) + (build-system r-build-system) + (propagated-inputs + `(("r-lattice" ,r-lattice))) + (home-page "http://cran.r-project.org/web/packages/coda") + (synopsis "This is a package for Output Analysis and Diagnostics for MCMC") + (description "This package provides functions for summarizing and plotting +the output from Markov Chain Monte Carlo (MCMC) simulations, as well as +diagnostic tests of convergence to the equilibrium distribution of the Markov +chain.") + (license license:gpl2+))) + (define-public r-xml2 (package (name "r-xml2") -- cgit v1.2.3 From 52ad9cb60efd28e70c29a9e70a94cc20af6860bc Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Tue, 3 May 2016 15:06:42 +0200 Subject: gnu: Add r-estimability. * gnu/packages/statistics.scm (r-estimability): New variable. Signed-off-by: Leo Famulari --- gnu/packages/statistics.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index a362b32478..90dc4144ef 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -253,6 +253,24 @@ (define-public r-digest OpenSSL should be used.") (license license:gpl2+))) +(define-public r-estimability + (package + (name "r-estimability") + (version "1.1-1") + (source (origin + (method url-fetch) + (uri (cran-uri "estimability" version)) + (sha256 + (base32 + "049adh8i0ad0m0qln2ylqdxcs5v2q9zfignn2a50r5f93ip2ay6w")))) + (build-system r-build-system) + (home-page "http://cran.r-project.org/web/packages/estimability") + (synopsis "Tools for assessing estimability of linear predictions") + (description "Provides tools for determining estimability of linear +functions of regression coefficients, and 'epredict' methods that handle +non-estimable cases correctly.") + (license license:gpl2+))) + (define-public r-gtable (package (name "r-gtable") -- cgit v1.2.3 From 8658d403508a9ec63a7f23e3086be49b977799d8 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 6 May 2016 01:11:28 -0400 Subject: gnu: i3-wm: Use https URLs. * gnu/packages/wm.scm (i3-wm)[source]: Use https URL. [home-page]: Use https URL. --- gnu/packages/wm.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 60842efab2..cdd3bde14b 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -148,7 +148,7 @@ (define-public i3-wm (version "4.12") (source (origin (method url-fetch) - (uri (string-append "http://i3wm.org/downloads/i3-" + (uri (string-append "https://i3wm.org/downloads/i3-" version ".tar.bz2")) (sha256 (base32 @@ -182,7 +182,7 @@ (define-public i3-wm `(("which" ,which) ("perl" ,perl) ("pkg-config" ,pkg-config))) - (home-page "http://i3wm.org/") + (home-page "https://i3wm.org/") (synopsis "Improved tiling window manager") (description "A tiling window manager, completely written from scratch. i3 is primarily targeted at advanced users and -- cgit v1.2.3 From fdad1f3c42b73c3ced7fe09fb880cb3989d381c5 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 6 May 2016 01:13:11 -0400 Subject: gnu: i3status: Use https URLs. * gnu/packages/wm.scm (i3status)[source]: Use https URL. [home-page]: Use https URL. --- gnu/packages/wm.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index cdd3bde14b..da64a6e872 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -111,7 +111,7 @@ (define-public i3status (version "2.9") (source (origin (method url-fetch) - (uri (string-append "http://i3wm.org/i3status/i3status-" + (uri (string-append "https://i3wm.org/i3status/i3status-" version ".tar.bz2")) (sha256 (base32 @@ -131,7 +131,7 @@ (define-public i3status ("wireless-tools" ,wireless-tools) ("libcap" ,libcap) ("asciidoc" ,asciidoc))) - (home-page "http://i3wm.org/i3status/") + (home-page "https://i3wm.org/i3status/") (synopsis "Status bar for i3bar, dzen2, xmobar or similar programs") (description "i3status is a small program for generating a status bar for i3bar, dzen2, xmobar or similar programs. It is designed to be very efficient -- cgit v1.2.3 From 766a22fb4d12f9da526afb2232e1ec19d3fd926b Mon Sep 17 00:00:00 2001 From: Al McElrath Date: Tue, 5 Apr 2016 16:21:19 -0700 Subject: gnu: i3status: Update to 2.10. Signed-off-by: Leo Famulari --- gnu/packages/wm.scm | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index da64a6e872..694db4794a 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2015 Paul van der Walt ;;; Copyright © 2016 Danny Milosavljevic ;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016 Al McElrath ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,6 +34,7 @@ (define-module (gnu packages wm) #:use-module (gnu packages base) #:use-module (gnu packages pkg-config) #:use-module (gnu packages perl) + #:use-module (gnu packages pulseaudio) #:use-module (gnu packages xorg) #:use-module (gnu packages xdisorg) #:use-module (gnu packages qt) @@ -108,14 +110,14 @@ (define-public bspwm (define-public i3status (package (name "i3status") - (version "2.9") + (version "2.10") (source (origin (method url-fetch) (uri (string-append "https://i3wm.org/i3status/i3status-" version ".tar.bz2")) (sha256 (base32 - "1qwxbrga2fi5wf742hh9ajwa8b2kpzkjjnhjlz4wlpv21i80kss2")))) + "1497dsvb32z9xljmxz95dnyvsbayn188ilm3l4ys8m5h25vd1xfs")))) (build-system gnu-build-system) (arguments `(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output)) @@ -128,9 +130,12 @@ (define-public i3status ("libconfuse" ,libconfuse) ("libyajl" ,libyajl) ("alsa-lib" ,alsa-lib) - ("wireless-tools" ,wireless-tools) + ("pulseaudio" ,pulseaudio) + ("libnl" ,libnl) ("libcap" ,libcap) ("asciidoc" ,asciidoc))) + (native-inputs + `(("pkg-config" ,pkg-config))) (home-page "https://i3wm.org/i3status/") (synopsis "Status bar for i3bar, dzen2, xmobar or similar programs") (description "i3status is a small program for generating a status bar for -- cgit v1.2.3 From ba2613bb4e47938044a3c96b92debf1bddcf0140 Mon Sep 17 00:00:00 2001 From: Alex Griffin Date: Thu, 5 May 2016 09:59:03 -0500 Subject: system: Do not export PS1 in /etc/skel/.bashrc. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/system/shadow.scm (default-skeletons)[bashrc]: Remove "export" for 'PS1'. Signed-off-by: Ludovic Courtès --- gnu/system/shadow.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm index a13ef1192c..b8837c63f0 100644 --- a/gnu/system/shadow.scm +++ b/gnu/system/shadow.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2016 Alex Griffin ;;; ;;; This file is part of GNU Guix. ;;; @@ -166,9 +167,9 @@ (define copy-guile-wm # Adjust the prompt depending on whether we're in 'guix environment'. if [ -n \"$GUIX_ENVIRONMENT\" ] then - export PS1='\\u@\\h \\w [env]\\$ ' + PS1='\\u@\\h \\w [env]\\$ ' else - export PS1='\\u@\\h \\w\\$ ' + PS1='\\u@\\h \\w\\$ ' fi alias ls='ls -p --color' alias ll='ls -l'\n")) -- cgit v1.2.3 From 4e0ea3eb288c2143b44bf324c64047762c72d3b3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 6 May 2016 13:12:45 +0200 Subject: utils: Move 'fcntl-flock' to (guix build syscalls). * guix/utils.scm (%struct-flock, F_SETLKW, F_SETLK, F_xxLCK) (fcntl-flock): Move to... * guix/build/syscalls.scm: ... here. New variables. * guix/nar.scm: Adjust imports accordingly. * tests/utils.scm ("fcntl-flock wait", "fcntl-flock non-blocking"): Move to... * tests/syscalls.scm: ... here. New tests. (temp-file): New variable. --- guix/build/syscalls.scm | 69 ++++++++++++++++++++++++++++++++++++++ guix/nar.scm | 4 +-- guix/utils.scm | 75 +---------------------------------------- tests/syscalls.scm | 88 +++++++++++++++++++++++++++++++++++++++++++++++++ tests/utils.scm | 82 --------------------------------------------- 5 files changed, 160 insertions(+), 158 deletions(-) diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm index a9cd6e93c8..86723c23c7 100644 --- a/guix/build/syscalls.scm +++ b/guix/build/syscalls.scm @@ -65,6 +65,7 @@ (define-module (guix build syscalls) processes mkdtemp! pivot-root + fcntl-flock CLONE_CHILD_CLEARTID CLONE_CHILD_SETTID @@ -637,6 +638,74 @@ (define pivot-root (list new-root put-old (strerror err)) (list err))))))) + +;;; +;;; Advisory file locking. +;;; + +(define %struct-flock + ;; 'struct flock' from . + (list short ; l_type + short ; l_whence + size_t ; l_start + size_t ; l_len + int)) ; l_pid + +(define F_SETLKW + ;; On Linux-based systems, this is usually 7, but not always + ;; (exceptions include SPARC.) On GNU/Hurd, it's 9. + (cond ((string-contains %host-type "sparc") 9) ; sparc-*-linux-gnu + ((string-contains %host-type "linux") 7) ; *-linux-gnu + (else 9))) ; *-gnu* + +(define F_SETLK + ;; Likewise: GNU/Hurd and SPARC use 8, while the others typically use 6. + (cond ((string-contains %host-type "sparc") 8) ; sparc-*-linux-gnu + ((string-contains %host-type "linux") 6) ; *-linux-gnu + (else 8))) ; *-gnu* + +(define F_xxLCK + ;; The F_RDLCK, F_WRLCK, and F_UNLCK constants. + (cond ((string-contains %host-type "sparc") #(1 2 3)) ; sparc-*-linux-gnu + ((string-contains %host-type "hppa") #(1 2 3)) ; hppa-*-linux-gnu + ((string-contains %host-type "linux") #(0 1 2)) ; *-linux-gnu + (else #(1 2 3)))) ; *-gnu* + +(define fcntl-flock + (let ((proc (syscall->procedure int "fcntl" `(,int ,int *)))) + (lambda* (fd-or-port operation #:key (wait? #t)) + "Perform locking OPERATION on the file beneath FD-OR-PORT. OPERATION +must be a symbol, one of 'read-lock, 'write-lock, or 'unlock. When WAIT? is +true, block until the lock is acquired; otherwise, thrown an 'flock-error' +exception if it's already taken." + (define (operation->int op) + (case op + ((read-lock) (vector-ref F_xxLCK 0)) + ((write-lock) (vector-ref F_xxLCK 1)) + ((unlock) (vector-ref F_xxLCK 2)) + (else (error "invalid fcntl-flock operation" op)))) + + (define fd + (if (port? fd-or-port) + (fileno fd-or-port) + fd-or-port)) + + ;; XXX: 'fcntl' is a vararg function, but here we happily use the + ;; standard ABI; crossing fingers. + (let ((err (proc fd + (if wait? + F_SETLKW ; lock & wait + F_SETLK) ; non-blocking attempt + (make-c-struct %struct-flock + (list (operation->int operation) + SEEK_SET + 0 0 ; whole file + 0))))) + (or (zero? err) + + ;; Presumably we got EAGAIN or so. + (throw 'flock-error (errno))))))) + ;;; ;;; Network interfaces. diff --git a/guix/nar.scm b/guix/nar.scm index 43e5210752..739d3d3a57 100644 --- a/guix/nar.scm +++ b/guix/nar.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2014 Mark H Weaver ;;; ;;; This file is part of GNU Guix. @@ -18,8 +18,8 @@ ;;; along with GNU Guix. If not, see . (define-module (guix nar) - #:use-module (guix utils) #:use-module (guix serialization) + #:use-module (guix build syscalls) #:use-module ((guix build utils) #:select (delete-file-recursively with-directory-excursion)) #:use-module (guix store) diff --git a/guix/utils.scm b/guix/utils.scm index f18bbd19ac..d924e434bd 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -34,7 +34,7 @@ (define-module (guix utils) #:use-module ((rnrs bytevectors) #:select (bytevector-u8-set!)) #:use-module (guix combinators) #:use-module ((guix build utils) #:select (dump-port)) - #:use-module ((guix build syscalls) #:select (errno mkdtemp!)) + #:use-module ((guix build syscalls) #:select (mkdtemp!)) #:use-module (ice-9 vlist) #:use-module (ice-9 format) #:autoload (ice-9 popen) (open-pipe*) @@ -47,7 +47,6 @@ (define-module (guix utils) #:export (bytevector->base16-string base16-string->bytevector - fcntl-flock strip-keyword-arguments default-keyword-arguments substitute-keyword-arguments @@ -338,78 +337,6 @@ (define* (edit-expression source-properties proc #:key (encoding "UTF-8")) (put-bytevector out post-bv)) #t)))))) - -;;; -;;; Advisory file locking. -;;; - -(define %struct-flock - ;; 'struct flock' from . - (list short ; l_type - short ; l_whence - size_t ; l_start - size_t ; l_len - int)) ; l_pid - -(define F_SETLKW - ;; On Linux-based systems, this is usually 7, but not always - ;; (exceptions include SPARC.) On GNU/Hurd, it's 9. - (compile-time-value - (cond ((string-contains %host-type "sparc") 9) ; sparc-*-linux-gnu - ((string-contains %host-type "linux") 7) ; *-linux-gnu - (else 9)))) ; *-gnu* - -(define F_SETLK - ;; Likewise: GNU/Hurd and SPARC use 8, while the others typically use 6. - (compile-time-value - (cond ((string-contains %host-type "sparc") 8) ; sparc-*-linux-gnu - ((string-contains %host-type "linux") 6) ; *-linux-gnu - (else 8)))) ; *-gnu* - -(define F_xxLCK - ;; The F_RDLCK, F_WRLCK, and F_UNLCK constants. - (compile-time-value - (cond ((string-contains %host-type "sparc") #(1 2 3)) ; sparc-*-linux-gnu - ((string-contains %host-type "hppa") #(1 2 3)) ; hppa-*-linux-gnu - ((string-contains %host-type "linux") #(0 1 2)) ; *-linux-gnu - (else #(1 2 3))))) ; *-gnu* - -(define fcntl-flock - (let* ((ptr (dynamic-func "fcntl" (dynamic-link))) - (proc (pointer->procedure int ptr `(,int ,int *)))) - (lambda* (fd-or-port operation #:key (wait? #t)) - "Perform locking OPERATION on the file beneath FD-OR-PORT. OPERATION -must be a symbol, one of 'read-lock, 'write-lock, or 'unlock. When WAIT? is -true, block until the lock is acquired; otherwise, thrown an 'flock-error' -exception if it's already taken." - (define (operation->int op) - (case op - ((read-lock) (vector-ref F_xxLCK 0)) - ((write-lock) (vector-ref F_xxLCK 1)) - ((unlock) (vector-ref F_xxLCK 2)) - (else (error "invalid fcntl-flock operation" op)))) - - (define fd - (if (port? fd-or-port) - (fileno fd-or-port) - fd-or-port)) - - ;; XXX: 'fcntl' is a vararg function, but here we happily use the - ;; standard ABI; crossing fingers. - (let ((err (proc fd - (if wait? - F_SETLKW ; lock & wait - F_SETLK) ; non-blocking attempt - (make-c-struct %struct-flock - (list (operation->int operation) - SEEK_SET - 0 0 ; whole file - 0))))) - (or (zero? err) - - ;; Presumably we got EAGAIN or so. - (throw 'flock-error (errno))))))) - ;;; ;;; Keyword arguments. diff --git a/tests/syscalls.scm b/tests/syscalls.scm index 0b73fb4b0c..73fa8a7acf 100644 --- a/tests/syscalls.scm +++ b/tests/syscalls.scm @@ -29,6 +29,10 @@ (define-module (test-syscalls) ;; Test the (guix build syscalls) module, although there's not much that can ;; actually be tested without being root. +(define temp-file + (string-append "t-utils-" (number->string (getpid)))) + + (test-begin "syscalls") (test-equal "mount, ENOENT" @@ -172,6 +176,88 @@ (define perform-container-tests? (status:exit-val status)))) (eq? #t result)))))))) +(false-if-exception (delete-file temp-file)) +(test-equal "fcntl-flock wait" + 42 ; the child's exit status + (let ((file (open-file temp-file "w0b"))) + ;; Acquire an exclusive lock. + (fcntl-flock file 'write-lock) + (match (primitive-fork) + (0 + (dynamic-wind + (const #t) + (lambda () + ;; Reopen FILE read-only so we can have a read lock. + (let ((file (open-file temp-file "r0b"))) + ;; Wait until we can acquire the lock. + (fcntl-flock file 'read-lock) + (primitive-exit (read file))) + (primitive-exit 1)) + (lambda () + (primitive-exit 2)))) + (pid + ;; Write garbage and wait. + (display "hello, world!" file) + (force-output file) + (sleep 1) + + ;; Write the real answer. + (seek file 0 SEEK_SET) + (truncate-file file 0) + (write 42 file) + (force-output file) + + ;; Unlock, which should let the child continue. + (fcntl-flock file 'unlock) + + (match (waitpid pid) + ((_ . status) + (let ((result (status:exit-val status))) + (close-port file) + result))))))) + +(test-equal "fcntl-flock non-blocking" + EAGAIN ; the child's exit status + (match (pipe) + ((input . output) + (match (primitive-fork) + (0 + (dynamic-wind + (const #t) + (lambda () + (close-port output) + + ;; Wait for the green light. + (read-char input) + + ;; Open FILE read-only so we can have a read lock. + (let ((file (open-file temp-file "w0"))) + (catch 'flock-error + (lambda () + ;; This attempt should throw EAGAIN. + (fcntl-flock file 'write-lock #:wait? #f)) + (lambda (key errno) + (primitive-exit (pk 'errno errno))))) + (primitive-exit -1)) + (lambda () + (primitive-exit -2)))) + (pid + (close-port input) + (let ((file (open-file temp-file "w0"))) + ;; Acquire an exclusive lock. + (fcntl-flock file 'write-lock) + + ;; Tell the child to continue. + (write 'green-light output) + (force-output output) + + (match (waitpid pid) + ((_ . status) + (let ((result (status:exit-val status))) + (fcntl-flock file 'unlock) + (close-port file) + result))))))))) + (test-assert "all-network-interface-names" (match (all-network-interface-names) (((? string? names) ..1) @@ -303,3 +389,5 @@ (define perform-container-tests? 0)) (test-end) + +(false-if-exception (delete-file temp-file)) diff --git a/tests/utils.scm b/tests/utils.scm index a54482e94c..6590ed91cf 100644 --- a/tests/utils.scm +++ b/tests/utils.scm @@ -168,88 +168,6 @@ (define temp-file (call-with-decompressed-port 'xz (open-file temp-file "r0b") get-bytevector-all)))) -(false-if-exception (delete-file temp-file)) -(test-equal "fcntl-flock wait" - 42 ; the child's exit status - (let ((file (open-file temp-file "w0b"))) - ;; Acquire an exclusive lock. - (fcntl-flock file 'write-lock) - (match (primitive-fork) - (0 - (dynamic-wind - (const #t) - (lambda () - ;; Reopen FILE read-only so we can have a read lock. - (let ((file (open-file temp-file "r0b"))) - ;; Wait until we can acquire the lock. - (fcntl-flock file 'read-lock) - (primitive-exit (read file))) - (primitive-exit 1)) - (lambda () - (primitive-exit 2)))) - (pid - ;; Write garbage and wait. - (display "hello, world!" file) - (force-output file) - (sleep 1) - - ;; Write the real answer. - (seek file 0 SEEK_SET) - (truncate-file file 0) - (write 42 file) - (force-output file) - - ;; Unlock, which should let the child continue. - (fcntl-flock file 'unlock) - - (match (waitpid pid) - ((_ . status) - (let ((result (status:exit-val status))) - (close-port file) - result))))))) - -(test-equal "fcntl-flock non-blocking" - EAGAIN ; the child's exit status - (match (pipe) - ((input . output) - (match (primitive-fork) - (0 - (dynamic-wind - (const #t) - (lambda () - (close-port output) - - ;; Wait for the green light. - (read-char input) - - ;; Open FILE read-only so we can have a read lock. - (let ((file (open-file temp-file "w0"))) - (catch 'flock-error - (lambda () - ;; This attempt should throw EAGAIN. - (fcntl-flock file 'write-lock #:wait? #f)) - (lambda (key errno) - (primitive-exit (pk 'errno errno))))) - (primitive-exit -1)) - (lambda () - (primitive-exit -2)))) - (pid - (close-port input) - (let ((file (open-file temp-file "w0"))) - ;; Acquire an exclusive lock. - (fcntl-flock file 'write-lock) - - ;; Tell the child to continue. - (write 'green-light output) - (force-output output) - - (match (waitpid pid) - ((_ . status) - (let ((result (status:exit-val status))) - (fcntl-flock file 'unlock) - (close-port file) - result))))))))) - ;; This is actually in (guix store). (test-equal "store-path-package-name" "bash-4.2-p24" -- cgit v1.2.3 From d33c8b464915fb9bbe07434116fd6f3428e8cef0 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 6 May 2016 13:23:54 +0200 Subject: syscalls: Use 'define-c-struct' for 'fcntl-flock'. * guix/build/syscalls.scm (%struct-flock): Use 'define-c-struct'. (fcntl-flock): Use 'write-flock!' and 'make-bytevector' instead of 'make-c-struct'. --- guix/build/syscalls.scm | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm index 86723c23c7..48ff227e10 100644 --- a/guix/build/syscalls.scm +++ b/guix/build/syscalls.scm @@ -643,13 +643,16 @@ (define pivot-root ;;; Advisory file locking. ;;; -(define %struct-flock - ;; 'struct flock' from . - (list short ; l_type - short ; l_whence - size_t ; l_start - size_t ; l_len - int)) ; l_pid +(define-c-struct %struct-flock ; + sizeof-flock + list + read-flock + write-flock! + (type short) + (whence short) + (start size_t) + (length size_t) + (pid int)) (define F_SETLKW ;; On Linux-based systems, this is usually 7, but not always @@ -690,21 +693,25 @@ (define fd (fileno fd-or-port) fd-or-port)) + (define bv + (make-bytevector sizeof-flock)) + + (write-flock! bv 0 + (operation->int operation) SEEK_SET + 0 0 ;whole file + 0) + ;; XXX: 'fcntl' is a vararg function, but here we happily use the ;; standard ABI; crossing fingers. - (let ((err (proc fd + (let ((ret (proc fd (if wait? F_SETLKW ; lock & wait F_SETLK) ; non-blocking attempt - (make-c-struct %struct-flock - (list (operation->int operation) - SEEK_SET - 0 0 ; whole file - 0))))) - (or (zero? err) - - ;; Presumably we got EAGAIN or so. - (throw 'flock-error (errno))))))) + (bytevector->pointer bv))) + (err (errno))) + (unless (zero? ret) + ;; Presumably we got EAGAIN or so. + (throw 'flock-error err)))))) ;;; -- cgit v1.2.3 From e42eb908f6133c4c192b4a4ff17d52a4819c2a2e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 6 May 2016 14:44:51 +0200 Subject: gnu: r: Update to 3.3.0. * gnu/packages/statistics.scm (r): Update to 3.3.0. [inputs]: Add curl and tzdata. [arguments]: Set TZDIR in "set-timezone" phase. --- gnu/packages/statistics.scm | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 90dc4144ef..04274f279a 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -99,7 +99,7 @@ (define-public pspp (define-public r (package (name "r") - (version "3.2.5") + (version "3.3.0") (source (origin (method url-fetch) (uri (string-append "mirror://cran/src/base/R-" @@ -107,7 +107,7 @@ (define-public r version ".tar.gz")) (sha256 (base32 - "1dc0iybjk9kr1nghz3fpir6mb9hb9rnrz9bgh00w5pg5vir5cx30")))) + "1r0i0cqs3p0vrpiwq0zg5kbrmja9rmaijyzf9f23v6d5n5ab2mlj")))) (build-system gnu-build-system) (arguments `(#:make-flags @@ -121,10 +121,14 @@ (define-public r ;; Set default pager to "cat", because otherwise it is "false", ;; making "help()" print nothing at all. (lambda _ (setenv "PAGER" "cat") #t)) - (add-before - 'check 'set-timezone + (add-before 'check 'set-timezone ;; Some tests require the timezone to be set. - (lambda _ (setenv "TZ" "UTC") #t)) + (lambda* (#:key inputs #:allow-other-keys) + (setenv "TZ" "UTC") + (setenv "TZDIR" + (string-append (assoc-ref inputs "tzdata") + "/share/zoneinfo")) + #t)) (add-after 'build 'make-info (lambda _ (zero? (system* "make" "info")))) (add-after 'build 'install-info @@ -161,6 +165,8 @@ (define-public r ("xz" ,xz))) (inputs `(("cairo" ,cairo) + ("curl" ,curl) + ("tzdata" ,tzdata) ("gfortran" ,gfortran) ("icu4c" ,icu4c) ("libjpeg" ,libjpeg) -- cgit v1.2.3 From 218a21069ad5bb34e6d2a36a9d126fc3056d7c58 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Fri, 6 May 2016 09:11:08 -0400 Subject: gnu: redis: Update to 3.2.0. --- gnu/packages/databases.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 63ca754688..a8998d803d 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès ;;; Copyright © 2012, 2014, 2015 Andreas Enge ;;; Copyright © 2013 Cyril Roelandt -;;; Copyright © 2014 David Thompson +;;; Copyright © 2014, 2016 David Thompson ;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2015 Eric Bavier ;;; Copyright © 2015 Sou Bunnbu @@ -863,14 +863,14 @@ (define-public unqlite (define-public redis (package (name "redis") - (version "3.0.7") + (version "3.2.0") (source (origin (method url-fetch) (uri (string-append "http://download.redis.io/releases/redis-" version".tar.gz")) (sha256 (base32 - "08vzfdr67gp3lvk770qpax2c5g2sx8hn6p64jn3jddrvxb2939xj")))) + "0ql7zp061xr66a1dzpa6a0ijm8zm133dd364va7q5h8avkrim7wq")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; tests related to master/slave and replication fail -- cgit v1.2.3 From 04d1a0dc0cf23d64c446757e4c7185c18428910c Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 26 Apr 2016 18:38:48 -0400 Subject: gnu: nginx: Update to 1.10.0. * gnu/packages/web.scm (nginx): Update to 1.10.0. --- gnu/packages/web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index a0e1ec9422..0c2798f1a8 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -109,14 +109,14 @@ (define-public httpd (define-public nginx (package (name "nginx") - (version "1.8.1") + (version "1.10.0") (source (origin (method url-fetch) (uri (string-append "http://nginx.org/download/nginx-" version ".tar.gz")) (sha256 (base32 - "1dwpyw4pvhj68vxramqxm8f79pqz9lrm8mvifbn49h3615ikqjwg")))) + "0kdyqa5xaxvhz6y75ixs05mzygk3kszzdq5h0gnlrg35vp1lgmlf")))) (build-system gnu-build-system) (inputs `(("pcre" ,pcre) ("openssl" ,openssl) -- cgit v1.2.3 From ef3b904770a0b456d2846fdddfb477ea63ea85b2 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 6 May 2016 15:00:35 -0400 Subject: gnu: isc-dhcp: Update to 4.3.4 [with mitigation for CVE-2016-2774]. * gnu/packages/admin.scm (isc-dhcp): Update to 4.3.4. Update bundled 'bind' to 9.9.9. --- gnu/packages/admin.scm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index d815dfb8b5..303e9978a5 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -486,9 +486,9 @@ (define-public alive (define-public isc-dhcp (let* ((bind-major-version "9") (bind-minor-version "9") - (bind-patch-version "8") - (bind-release-type "-P") - (bind-release-version "4") + (bind-patch-version "9") + (bind-release-type "") ; for patch release, use "-P" + (bind-release-version "") ; for patch release, e.g. "4" (bind-version (string-append bind-major-version "." bind-minor-version @@ -498,14 +498,14 @@ (define-public isc-dhcp bind-release-version))) (package (name "isc-dhcp") - (version "4.3.3-P1") + (version "4.3.4") (source (origin (method url-fetch) (uri (string-append "http://ftp.isc.org/isc/dhcp/" version "/dhcp-" version ".tar.gz")) (sha256 (base32 - "08crcsmg4dm2v533aq3883ik8mf4vvvd6r998r4vrgx1zxnqj7n1")))) + "0zk0imll6bfyp9p4ndn8h6s4ifijnw5bhixswifr5rnk7pp5l4gm")))) (build-system gnu-build-system) (arguments `(#:parallel-build? #f @@ -604,7 +604,7 @@ (define-public isc-dhcp "/bind-" bind-version ".tar.gz")) (sha256 (base32 - "1wl9kl0630dc1qjrf7fnp8cscagfm5qgmisi0zhr1p6iwi9bil2y")))) + "0w8qqm6p2y6x57j2l0a3278g173wd84dsr4py9z00191f3wra74q")))) ;; When cross-compiling, we need the cross Coreutils and sed. ;; Otherwise just use those from %FINAL-INPUTS. -- cgit v1.2.3 From 9fab7937294edcb50d62297356091266a5586ff3 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 6 May 2016 15:03:37 -0400 Subject: gnu: bind-utils: Update to 9.10.4. * gnu/packages/dns.scm (bind-utils): Update to 9.10.4. --- gnu/packages/dns.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 5c0bfc3f87..e92d8d26b8 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -66,14 +66,14 @@ (define-public dnsmasq (define-public bind-utils (package (name "bind-utils") - (version "9.10.3-P4") + (version "9.10.4") (source (origin (method url-fetch) (uri (string-append "http://ftp.isc.org/isc/bind9/" version "/bind-" version ".tar.gz")) (sha256 (base32 - "0giys46ifypysf799w9v58kbaz1v3fbdzw3s212znifzzfsl9h1a")))) + "0mmhzi4483mkak47wj255a36g3v0yilxwfwlbckr1hssinri5m7q")))) (build-system gnu-build-system) (inputs ;; it would be nice to add GeoIP and gssapi once there is package -- cgit v1.2.3 From aa206271cf369250f347be50b5a0733d95b30d4e Mon Sep 17 00:00:00 2001 From: Alex Griffin Date: Thu, 5 May 2016 18:25:45 -0500 Subject: gnu: wesnoth: Update to 1.12.5. * gnu/packages/games.scm (wesnoth): Update to 1.12.5. Signed-off-by: Leo Famulari --- gnu/packages/games.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 55bffe9539..a298f03512 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2016 Nils Gillmann ;;; Copyright © 2016 Albin Söderqvist ;;; Copyright © 2016 Kei Yamashita +;;; Copyright © 2016 Alex Griffin ;;; ;;; This file is part of GNU Guix. ;;; @@ -1021,14 +1022,14 @@ (define-public gnujump (define-public wesnoth (package (name "wesnoth") - (version "1.12.4") + (version "1.12.5") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/wesnoth/" name "-" version ".tar.bz2")) (sha256 (base32 - "19qyylylaljhk45lk2ja0xp7cx9iy4hx07l65zkg20a2v9h50lmz")))) + "07d8ms9ayswg2g530p0zwmz3d77zv68l6nmc718iq9sbv90av6jr")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no check target -- cgit v1.2.3 From 70dced54edc923ec8da86ae1c18ac50a7832b039 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 6 May 2016 16:46:35 -0400 Subject: gnu: msmtp: Update to 1.6.4. * gnu/packages/mail.scm (msmtp): Update to 1.6.4. --- gnu/packages/mail.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 56e85712db..c34296cef2 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -622,14 +622,14 @@ (define-public claws-mail (define-public msmtp (package (name "msmtp") - (version "1.6.3") + (version "1.6.4") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/msmtp/msmtp-" version ".tar.xz")) (sha256 (base32 - "0mbkflxv2swjz4185inis83v6pxcblpmapwjhgpc6wh7kh3bx0pr")))) + "1kfihblm769s4hv8iah5mqynqd6hfwlyz5rcg2v423a4llic0jcv")))) (build-system gnu-build-system) (inputs `(("libidn" ,libidn) -- cgit v1.2.3 From bdb2d56ee72f00a21047999a35ac7db714d8937c Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 6 May 2016 17:01:35 -0400 Subject: gnu: mutt: Update to 1.6.1. * gnu/packages/mail.scm (mutt): Update to 1.6.1. --- gnu/packages/mail.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index c34296cef2..17dd0adc04 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -177,14 +177,14 @@ (define-public fetchmail (define-public mutt (package (name "mutt") - (version "1.6.0") + (version "1.6.1") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.mutt.org/pub/mutt/mutt-" version ".tar.gz")) (sha256 (base32 - "06bc2drbgalkk68rzg7hq2v5m5qgjxff5357wg0419dpi8ivdbr9")) + "087dz1y9qhl4ikhsnnb4xmyvs82w6kx480w8zj130wdiqvn6rclq")) (patches (search-patches "mutt-store-references.patch")))) (build-system gnu-build-system) (inputs -- cgit v1.2.3 From 13416a10afdbad6546ef7943d93aba795ee5703b Mon Sep 17 00:00:00 2001 From: Kei Yamashita Date: Fri, 6 May 2016 18:57:42 -0400 Subject: gnu: Add moc. * gnu/packages/music.scm (moc): New variable. Signed-off-by: Leo Famulari --- gnu/packages/music.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 4946024264..7e0ea6210e 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -45,8 +45,10 @@ (define-module (gnu packages music) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages curl) + #:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages docbook) #:use-module (gnu packages doxygen) + #:use-module (gnu packages file) #:use-module (gnu packages flex) #:use-module (gnu packages fltk) #:use-module (gnu packages fonts) @@ -84,6 +86,7 @@ (define-module (gnu packages music) #:use-module (gnu packages tcl) #:use-module (gnu packages texinfo) #:use-module (gnu packages texlive) + #:use-module (gnu packages tls) #:use-module (gnu packages video) #:use-module (gnu packages web) #:use-module (gnu packages wxwidgets) @@ -1547,3 +1550,44 @@ (define-public milkytracker (home-page "http://milkytracker.org/") ;; 'src/milkyplay' is under Modified BSD, the rest is under GPL3 or later. (license (list license:bsd-3 license:gpl3+)))) + +(define-public moc + (package + (name "moc") + (version "2.5.1") + (source (origin + (method url-fetch) + (uri (string-append "http://ftp.daper.net/pub/soft/" + name "/stable/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "1wn4za08z64bhsgfhr9c0crfyvy8c3b6a337wx7gz19am5srqh8v")))) + (build-system gnu-build-system) + (inputs + `(("alsa-lib" ,alsa-lib) + ("curl" ,curl) + ("faad2" ,faad2) + ("ffmpeg" ,ffmpeg) + ("file" ,file) + ("jack" ,jack-1) + ("libid3tag" ,libid3tag) + ("libltdl" ,libltdl) + ("libmodplug" ,libmodplug) + ("libmpcdec" ,libmpcdec) + ("libmad" ,libmad) + ("ncurses" ,ncurses) + ("openssl" ,openssl) + ("sasl" ,cyrus-sasl) + ("speex" ,speex) + ("taglib" ,taglib) + ("wavpack" ,wavpack) + ("zlib" ,zlib))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (synopsis "Console audio player designed to be powerful and easy to use") + (description + "Music on Console is a console audio player that supports many file +formats, including most audio formats recognized by FFMpeg.") + (home-page "http://moc.daper.net") + (license license:gpl2+))) -- cgit v1.2.3 From d17ae8c0c3023683a3175246a8ceedac237b5dd0 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sat, 30 Apr 2016 10:31:13 +0200 Subject: gnu: Add thinkfan. * gnu/packages/linux.scm (thinkfan): New variable. Signed-off-by: Leo Famulari --- gnu/packages/linux.scm | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index e80c9004ed..fcea499227 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2016 Alex Kost ;;; Copyright © 2016 Raymond Nicholson ;;; Copyright © 2016 Mathieu Lirzin +;;; Copyright © 2016 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -63,6 +64,7 @@ (define-module (gnu packages linux) #:use-module (gnu packages readline) #:use-module (gnu packages calendar) #:use-module (gnu packages tls) + #:use-module (gnu packages freedesktop) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix utils) @@ -2591,3 +2593,53 @@ (define-public freefall drive that supports the ATA/ATAPI-7 IDLE IMMEDIATE command with unload feature, and a laptop with an accelerometer. It has no effect on SSDs.") (license license:gpl2))) + +(define-public thinkfan + (package + (name "thinkfan") + (version "0.9.3") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/thinkfan/" + version "/thinkfan-" version ".tar.gz")) + (sha256 + (base32 + "0nz4c48f0i0dljpk5y33c188dnnwg8gz82s4grfl8l64jr4n675n")) + (modules '((guix build utils))) + ;; Fix erroneous man page location in Makefile leading to + ;; a compilation failure. + (snippet + '(substitute* "CMakeLists.txt" + (("thinkfan\\.1") "src/thinkfan.1"))))) + (build-system cmake-build-system) + (arguments + `(#:modules ((guix build cmake-build-system) + (guix build utils) + (srfi srfi-26)) + #:tests? #f ;no test target + #:configure-flags + ;; Enable reading temperatures from hard disks via S.M.A.R.T. + `("-DUSE_ATASMART:BOOL=ON") + #:phases + (modify-phases %standard-phases + ;; Install scripts for various foreign init systems. + (add-after 'install 'install-rc-scripts + (lambda* (#:key outputs #:allow-other-keys) + (for-each (cute install-file <> + (string-append (assoc-ref outputs "out") + "/share/thinkfan")) + (find-files (string-append "../thinkfan-" ,version + "/rcscripts") + ".*")) + #t))))) + (inputs + `(("libatasmart" ,libatasmart))) + (home-page "http://thinkfan.sourceforge.net/") + (synopsis "Simple fan control program") + (description + "Thinkfan is a simple fan control program. It reads temperatures, +checks them against configured limits and switches to appropriate (also +pre-configured) fan level. It requires a working @code{thinkpad_acpi} or any +other @code{hwmon} driver that enables temperature reading and fan control +from userspace.") + (license license:gpl3+))) -- cgit v1.2.3 From b5f13fdb9632524453031960fd5052a79a2ec1d5 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Sat, 7 May 2016 18:45:47 +0200 Subject: gnu: Add r-mvtnorm. * gnu/packages/statistics.scm (r-mvtnorm): New variable. Signed-off-by: Leo Famulari --- gnu/packages/statistics.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 04274f279a..7b3483206f 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2439,6 +2439,25 @@ (define-public r-r-rsp vignettes.") (license license:lgpl2.1+))) +(define-public r-mvtnorm + (package + (name "r-mvtnorm") + (version "1.0-5") + (source (origin + (method url-fetch) + (uri (cran-uri "mvtnorm" version)) + (sha256 + (base32 + "1pc1mi2h063gh4a40009xk5j6pf5bm4274i5kycln38dixsry3yh")))) + (build-system r-build-system) + (inputs + `(("gfortran" ,gfortran))) + (home-page "http://mvtnorm.R-forge.R-project.org") + (synopsis "Package for multivariate normal and t-distributions") + (description "This package can compute multivariate normal and +t-probabilities, quantiles, random deviates and densities.") + (license license:gpl2))) + (define-public r-matrixstats (package (name "r-matrixstats") -- cgit v1.2.3 From 2d4422d5b53276661a68f65b91daa854de88c165 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Sat, 7 May 2016 19:12:42 +0200 Subject: gnu: Add bash-tap. * gnu/packages/bash.scm (bash-tap): New variable. Signed-off-by: Leo Famulari --- gnu/packages/bash.scm | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm index cad66da70b..ff3acfc0e4 100644 --- a/gnu/packages/bash.scm +++ b/gnu/packages/bash.scm @@ -318,3 +318,46 @@ (define-public bash-completion completion for many common commands.") (home-page "http://bash-completion.alioth.debian.org/") (license gpl2+))) + +(define-public bash-tap + (package + (name "bash-tap") + (version "1.0.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/illusori/bash-tap/" + "archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0qs1qi38bl3ns4mpagcawv618dsk2q1lgrbddgvs0wl3ia12cyz5")))) + ;; There is no compilation process to use this package, however, the bash + ;; scripts installed by this package start with "#!/bin/bash". To fix + ;; these lines, we use the patch-shebangs of the GNU build system. The + ;; project does not use a Makefile. + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; There is no test suite. + #:phases + (modify-phases %standard-phases + ;; Because there are no configure scripts or Makefile, we can + ;; remove these phases. + (delete 'configure) + (delete 'build) + ;; The installation involves manually copying the files to a location. + ;; To make them easily accessible by setting PATH, we add the scripts + ;; to the "bin" folder. + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (install-file "bash-tap" bin) + (install-file "bash-tap-bootstrap" bin) + (install-file "bash-tap-mock" bin))))))) + (home-page "http://www.illusori.co.uk/projects/bash-tap/") + (synopsis "Bash port of a Test::More/Test::Builder-style TAP-compliant +test library") + (description "Bash TAP is a TAP-compliant Test::More-style testing library +for Bash shell scripts and functions. Along with the Test::More-style testing +helpers it provides helper functions for mocking commands and in-process output +capturing.") + (license expat))) -- cgit v1.2.3 From f8cf897582d457363ad4f3f1ae32c11c5554eae1 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sun, 8 May 2016 18:13:13 +0800 Subject: gnu: Unregister poppler-CVE-2015-8868.patch. * gnu/local.mk (dist_patch_DATA): Unregister poppler-CVE-2015-8868.patch. --- gnu/local.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/gnu/local.mk b/gnu/local.mk index ef747dcab0..ed3f0610f6 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -682,7 +682,6 @@ dist_patch_DATA = \ gnu/packages/patches/plink-1.07-unclobber-i.patch \ gnu/packages/patches/plotutils-libpng-jmpbuf.patch \ gnu/packages/patches/polkit-drop-test.patch \ - gnu/packages/patches/poppler-CVE-2015-8868.patch \ gnu/packages/patches/portaudio-audacity-compat.patch \ gnu/packages/patches/portmidi-modular-build.patch \ gnu/packages/patches/procmail-ambiguous-getline-debian.patch \ -- cgit v1.2.3 From 041d0ff8806ccf0690e55a1daab2f378cc57fc75 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sun, 8 May 2016 21:20:55 +0800 Subject: gnu: poppler: Update to 0.43.0. * gnu/packages/pdf.scm (poppler): Update to 0.43.0. --- gnu/packages/pdf.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 74840f1c95..ef05def693 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -52,14 +52,14 @@ (define-module (gnu packages pdf) (define-public poppler (package (name "poppler") - (version "0.42.0") + (version "0.43.0") (source (origin (method url-fetch) (uri (string-append "https://poppler.freedesktop.org/poppler-" version ".tar.xz")) (sha256 (base32 - "044084dbp804flwf7bw3lbwfdigm9s0psm6sw2j1hkrazrphgvwz")))) + "0mi4zf0pz3x3fx3ir7szz1n57nywgbpd4mp2r7mvf47f4rmf4867")))) (build-system gnu-build-system) ;; FIXME: ;; use libcurl: no -- cgit v1.2.3 From f09520db01822f338e1e7391d257a15165fb37a3 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sun, 8 May 2016 23:00:12 +0800 Subject: gnu: Add libgames-support. * gnu/packages/gnome.scm (libgames-support): New variable. --- gnu/packages/gnome.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 132fcc3b13..65ff4518d5 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2911,6 +2911,42 @@ (define-public gom queries upon that data.") (license license:lgpl2.1+))) +(define-public libgames-support + (package + (name "libgames-support") + (version "1.0.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0rms2ksiv7j9944km7r87q22nh05si1fisn5xm3z4zy5vpcfi5mh")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + ;; tests require a writable HOME. + (setenv "HOME" (getcwd)) + #t))))) + (native-inputs + `(("intltool" ,intltool) + ("pkg-config" ,pkg-config) + ("vala" ,vala))) + (propagated-inputs + ;; Required by libgames-support-1.0.pc + `(("gtk+" ,gtk+) + ("libgee" ,libgee))) + (home-page "https://www.gnome.org/") + (synopsis "Useful functionality shared among GNOME games") + (description + "libgames-support is a small library intended for internal use by +GNOME Games, but it may be used by others.") + (license license:lgpl3+))) + (define-public gnome-klotski (package (name "gnome-klotski") -- cgit v1.2.3 From 4e823eae64a17d3b536ee734e14d309ffdf5f832 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sun, 8 May 2016 23:00:37 +0800 Subject: gnu: gnome-klotski: Fix build. * gnu/packages/gnome.scm (gnome-klotski)[inputs]: Add libgames-support. --- gnu/packages/gnome.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 65ff4518d5..a7020a632b 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2968,6 +2968,7 @@ (define-public gnome-klotski ("xmllint" ,libxml2))) (inputs `(("gtk+" ,gtk+) + ("libgames-support" ,libgames-support) ("librsvg" ,librsvg))) (home-page "https://wiki.gnome.org/Apps/Klotski") (synopsis "Sliding block puzzles") -- cgit v1.2.3 From 738fea308688fac5994653b1fe98dc90a2a22455 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sun, 8 May 2016 12:35:35 -0400 Subject: gnu: tiled: Update to 0.16.1. * gnu/packages/game-development.scm (tiled): Update to 0.16.1. --- gnu/packages/game-development.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 414af14f28..86cbb2d41e 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -129,7 +129,7 @@ (define-public gzochi (define-public tiled (package (name "tiled") - (version "0.15.1") + (version "0.16.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/bjorn/tiled/archive/v" @@ -137,7 +137,7 @@ (define-public tiled (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "10bbjdv5r36229r1dqg32bxcj9yvpkx9jgs9v4s1qb71v856b15h")))) + "0s1i6yhm1z9ayzjh8cprcc9jvj5m87l9snyqg6w7zlj3q9zn4rn6")))) (build-system gnu-build-system) (inputs `(("qt" ,qt) ("zlib" ,zlib))) -- cgit v1.2.3 From 6cd6d1ad5e23db1489bc5ff5a38f3c100052cb08 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 8 May 2016 23:51:42 +0300 Subject: gnu: obs: Update to 0.14.1. * gnu/packages/video.scm (obs): Update to 0.14.1. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 6060702022..9f9855c4d9 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1349,7 +1349,7 @@ (define-public v4l-utils (define-public obs (package (name "obs") - (version "0.13.2") + (version "0.14.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/jp9000/obs-studio" @@ -1357,7 +1357,7 @@ (define-public obs (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1awaqlhlzlqqnwqixw54z40hqcnr3fwlclq4vlsy2kvsfyqjfr2b")))) + "1w07ign2swfigmsjd2jyaqqdnj2zpzs8hzsjzzk5l377jbx3ml5g")))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; no tests (native-inputs -- cgit v1.2.3 From b8785cb944ac51c30672b7293c09311bffbb5308 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 8 May 2016 23:48:17 +0200 Subject: doc: Suggest long OpenPGP key ID. * doc/guix.texi (Binary Installation): Use long OpenPGP key ID. --- doc/guix.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index b575faffd7..88bb0277c8 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -375,7 +375,7 @@ If that command fails because you do not have the required public key, then run this command to import it: @example -$ gpg --keyserver keys.gnupg.net --recv-keys 3D9AEBB5 +$ gpg --keyserver keys.gnupg.net --recv-keys 090B11993D9AEBB5 @end example @noindent -- cgit v1.2.3 From 5a555642179c5aa39849b9fbc03d7d0253e16d5c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 8 May 2016 23:49:02 +0200 Subject: system: tests: Use 'start-service' to wait for service. * gnu/tests/base.scm (%test-basic-os): Use 'start-service' instead of a busy loop to wait for 'term-tty1'. --- gnu/tests/base.scm | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index bf2d095709..0f19449508 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -128,17 +128,13 @@ (define marionette "root\n" (begin (marionette-control "sendkey ctrl-alt-f1" marionette) - ;; Wait for the 'term-tty1' service to be running + ;; Wait for the 'term-tty1' service to be running (using + ;; 'start-service' is the simplest and most reliable way to do + ;; that.) (marionette-eval '(begin (use-modules (gnu services herd)) - - (let loop ((i 0)) - (when (> i 10) - (error "terminal service not running" (current-services))) - (unless (memq 'term-tty1 (current-services)) - (sleep 1) - (loop (+ i 1))))) + (start-service 'term-tty1)) marionette) ;; Now we can type. -- cgit v1.2.3 From 1d4ac724b8d9fd603b1cf5f430da92a8b6d542f6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 9 May 2016 02:10:32 +0300 Subject: gnu: v4l-utils: Update to 1.10.0. * gnu/packages/video.scm (v4l-utils): Update to 1.10.0. [source]: Use https. --- gnu/packages/video.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 9f9855c4d9..acefb917eb 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1316,14 +1316,14 @@ (define-public mlt (define-public v4l-utils (package (name "v4l-utils") - (version "1.8.1") + (version "1.10.0") (source (origin (method url-fetch) - (uri (string-append "http://linuxtv.org/downloads/v4l-utils" + (uri (string-append "https://linuxtv.org/downloads/v4l-utils" "/v4l-utils-" version ".tar.bz2")) (sha256 (base32 - "0cqv8drw0z0kfmz4f50a8kzbrz6vbj6j6q78030hgshr7yq1jqig")))) + "0srkwh3r6f0bkb4kp0d7i0mlmp8babs3qc22cdy1sw4awmzd5skq")))) (build-system gnu-build-system) (arguments '(#:configure-flags -- cgit v1.2.3 From 4c7729dc5602d1552df63fa3e8e10db3f5883a44 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 9 May 2016 02:26:12 +0300 Subject: gnu: mlt: Update to 6.2.0. * gnu/packages/video.scm (mlt): Update to 6.2.0. [source]: Download from github. [inputs]: Add pulseaudio. --- gnu/packages/video.scm | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index acefb917eb..e76db5f1a8 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1266,14 +1266,15 @@ (define-public livestreamer (define-public mlt (package (name "mlt") - (version "0.9.8") + (version "6.2.0") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/mlt/mlt/mlt-" - version ".tar.gz")) + (uri (string-append "https://github.com/mltframework/mlt/" + "archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0rmrkj7z9g3nr4099f3ff0r14l3ixcfnlx2cdbkqa6pxin0pv9bz")))) + "1zwzfgxrcbwkxnkiwv0a1rzxdnnaly90yyarl9wdw84nx11ffbnx")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests @@ -1299,11 +1300,12 @@ (define-public mlt ("jack" ,jack-1) ("ladspa" ,ladspa) ("libsamplerate" ,libsamplerate) + ("pulseaudio" ,pulseaudio) ("sdl" ,sdl) ("sox" ,sox))) (native-inputs `(("pkg-config" ,pkg-config))) - (home-page "http://www.mltframework.org/") + (home-page "https://www.mltframework.org/") (synopsis "Author, manage, and run multitrack audio/video compositions") (description "MLT is a multimedia framework, designed and developed for television -- cgit v1.2.3 From e3dba5ac75fd27acbf2067dcdb61a49f59cc33e6 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Wed, 20 Apr 2016 19:27:44 +0300 Subject: emacs: Add 'guix-version' command. * emacs/guix-config.el.in (guix-config-name, guix-config-version): New constants. * emacs/guix-about.el (guix-version): New command. New file. * emacs/local.mk (ELFILES): Add it. --- emacs/guix-about.el | 37 +++++++++++++++++++++++++++++++++++++ emacs/guix-config.el.in | 8 +++++++- emacs/local.mk | 1 + 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 emacs/guix-about.el diff --git a/emacs/guix-about.el b/emacs/guix-about.el new file mode 100644 index 0000000000..27a79fe162 --- /dev/null +++ b/emacs/guix-about.el @@ -0,0 +1,37 @@ +;;; guix-about.el --- Various info about Guix + +;; Copyright © 2016 Alex Kost + +;; 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 Location as published by +;; the Free Software Foundation, either version 3 of the Location, 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 Location for more details. + +;; You should have received a copy of the GNU General Public Location +;; along with this program. If not, see . + +;;; Commentary: + +;; This file provides the code to display various info about Guix (e.g., its +;; version). + +;;; Code: + +(require 'guix-config) + +;;;###autoload +(defun guix-version () + "Display Guix version in the echo area." + (interactive) + (message "%s %s" guix-config-name guix-config-version)) + +(provide 'guix-about) + +;;; guix-about.el ends here diff --git a/emacs/guix-config.el.in b/emacs/guix-config.el.in index d03df9ce63..c09c2fe86a 100644 --- a/emacs/guix-config.el.in +++ b/emacs/guix-config.el.in @@ -1,7 +1,7 @@ ;;; guix-config.el --- Compile-time configuration of Guix. ;; Copyright © 2015 Mathieu Lirzin -;; Copyright © 2015 Alex Kost +;; Copyright © 2015, 2016 Alex Kost ;; This file is part of GNU Guix. @@ -20,6 +20,12 @@ ;;; Code: +(defconst guix-config-name "@PACKAGE_NAME@" + "Guix full name.") + +(defconst guix-config-version "@PACKAGE_VERSION@" + "Guix version.") + (defconst guix-config-emacs-interface-directory (replace-regexp-in-string "${prefix}" "@prefix@" "@emacsuidir@")) diff --git a/emacs/local.mk b/emacs/local.mk index 62e33e4fd2..f83063cf5f 100644 --- a/emacs/local.mk +++ b/emacs/local.mk @@ -20,6 +20,7 @@ AUTOLOADS = emacs/guix-autoloads.el ELFILES = \ + emacs/guix-about.el \ emacs/guix-backend.el \ emacs/guix-base.el \ emacs/guix-build-log.el \ -- cgit v1.2.3 From 19e1d5f7f90194f1ac7e783b28a688ce1441786d Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 6 May 2016 21:19:06 +0300 Subject: guix: utils: Re-export 'memoize'. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Suggested by Ludovic Courtès . * guix/utils.scm: Re-export 'memoize' to avoid a potential breakage of emacs interface. See for details. --- guix/utils.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/guix/utils.scm b/guix/utils.scm index d924e434bd..c77da5d846 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -44,6 +44,7 @@ (define-module (guix utils) #:use-module (ice-9 format) #:use-module ((ice-9 iconv) #:select (bytevector->string)) #:use-module (system foreign) + #:re-export (memoize) ; for backwards compatibility #:export (bytevector->base16-string base16-string->bytevector -- cgit v1.2.3 From 9c6b7ef54fa5e4dac0e21e16dee4dc54858250a2 Mon Sep 17 00:00:00 2001 From: Kei Yamashita Date: Sat, 7 May 2016 14:20:35 -0400 Subject: gnu: Add wmfire. * gnu/packages/gnustep.scm (wmfire): New variable. Signed-off-by: Alex Kost --- gnu/packages/gnustep.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/gnustep.scm b/gnu/packages/gnustep.scm index f4a2b266a3..31fca5b504 100644 --- a/gnu/packages/gnustep.scm +++ b/gnu/packages/gnustep.scm @@ -24,6 +24,7 @@ (define-module (gnu packages gnustep) #:use-module (guix licenses) #:use-module (gnu packages xorg) #:use-module (gnu packages gnome) + #:use-module (gnu packages gtk) #:use-module (gnu packages texinfo) #:use-module (gnu packages autotools) #:use-module (gnu packages glib) @@ -216,3 +217,31 @@ (define-public wmclock a dockable tile. It features multiple language support, 24h or 12h time display, and can run a user-specified program on mouse click.") (license gpl2+))) + +(define-public wmfire + (package + (name "wmfire") + (version "1.2.4") + (source (origin + (method url-fetch) + (uri (string-append "http://www.improbability.net/" + name "/" name "-" version ".tar.gz")) + (sha256 + (base32 + "101grahd80n97y2dczb629clmcgiavdpbbwy78kk5wgs362m12z3")))) + (build-system gnu-build-system) + (inputs + `(("gtk+" ,gtk+-2) + ("libgtop" ,libgtop))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://www.improbability.net/") + (synopsis "Display flames to represent CPU usage, memory usage, etc.") + (description + "wmfire is an applet for Window Maker that can monitor the average cpu +load, or individual cpu load on SMP computers. Additionally it can monitor the +memory, network load, a file or just be set to show a pretty flame. On +entering the dock a burning spot replaces the cursor, and after two seconds +symbols to represent the current monitor are \"burnt\" onscreen. The flame +colour can also be changed.") + (license gpl2+))) -- cgit v1.2.3 From 4acbd2062198ff5eacaa6f0bbba9096b228badde Mon Sep 17 00:00:00 2001 From: Al McElrath Date: Sat, 7 May 2016 19:59:00 -0700 Subject: gnu: Add surf. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/suckless.scm (surf): New variable. Signed-off-by: 宋文武 --- gnu/packages/suckless.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index c921f8e767..f582aea42f 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Cyril Roelandt ;;; Copyright © 2015 Amirouche Boubekki +;;; Copyright © 2016 Al McElrath ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,10 +23,13 @@ (define-module (gnu packages suckless) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) + #:use-module (guix build-system glib-or-gtk) #:use-module (gnu packages) + #:use-module (gnu packages gnome) #:use-module (gnu packages xorg) #:use-module (gnu packages fonts) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages webkit) #:use-module (gnu packages fontutils)) (define-public dwm @@ -189,3 +193,38 @@ (define-public st antialiased fonts (using fontconfig), fallback fonts, resizing, and line drawing.") (license license:x11))) + +(define-public surf + (package + (name "surf") + (version "0.7") + (source + (origin + (method url-fetch) + (uri (string-append "http://dl.suckless.org/surf/surf-" + version ".tar.gz")) + (sha256 + (base32 + "0jj93izd8fizxfa6ln9w1h9bwki81sz5dhskh5x1rl34zd38aq4m")))) + (build-system glib-or-gtk-build-system) + (arguments + '(#:tests? #f ; no tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (inputs + `(("glib-networking" ,glib-networking) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("webkitgtk" ,webkitgtk/gtk+-2))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://surf.suckless.org/") + (synopsis "Simple web browser") + (description + "Surf is a simple web browser based on WebKit/GTK+. It is able to +display websites and follow links. It supports the XEmbed protocol which +makes it possible to embed it in another application. Furthermore, one can +point surf to another URI by setting its XProperties.") + (license license:x11))) -- cgit v1.2.3 From cdda334ec2fcdd5946ba60853b7312283bf89712 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 9 May 2016 11:04:29 +0300 Subject: gnu: libva: Update to 1.7.0. * gnu/packages/video.scm (libva): Update to 1.7.0. [home-page]: Use https. --- gnu/packages/video.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index e76db5f1a8..a5b160e8b1 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -323,7 +323,7 @@ (define-public libdv (define-public libva (package (name "libva") - (version "1.6.1") + (version "1.7.0") (source (origin (method url-fetch) @@ -331,7 +331,7 @@ (define-public libva "https://www.freedesktop.org/software/vaapi/releases/libva/libva-" version".tar.bz2")) (sha256 - (base32 "0bjfb5s8dk3lql843l91ffxzlq47isqks5sj19cxh7j3nhzw58kz")))) + (base32 "0py9igf4kicj7ji22bjawkpd6my013qpg0s4ir2np9l1rk5vr2d6")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -362,7 +362,7 @@ (define-public libva #:make-flags (list (string-append "dummy_drv_video_ladir=" (assoc-ref %outputs "out") "/lib/dri")))) - (home-page "http://www.freedesktop.org/wiki/Software/vaapi/") + (home-page "https://www.freedesktop.org/wiki/Software/vaapi/") (synopsis "Video acceleration library") (description "The main motivation for VA-API (Video Acceleration API) is to enable hardware accelerated video decode/encode at various -- cgit v1.2.3 From 702bfbf1eea724b49cc02ccb0111ed637acb1144 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 9 May 2016 12:02:49 +0300 Subject: gnu: ffmpeg: Update to 3.0.2. * gnu/packages/video.scm (ffmpeg): Update to 3.0.2. [home-page]: Use https. --- gnu/packages/video.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index a5b160e8b1..6fe9932d0a 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -373,14 +373,14 @@ (define-public libva (define-public ffmpeg (package (name "ffmpeg") - (version "3.0") + (version "3.0.2") (source (origin (method url-fetch) (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" version ".tar.xz")) (sha256 (base32 - "0w74b165l4ry4y72f4xmgd357pvbc7yr61y313v3ai6787p2rwqj")))) + "08sjp4dxgcinmv9ly7nm24swmn2cnbbhvph44ihlplf4n33kr542")))) (build-system gnu-build-system) (inputs `(("fontconfig" ,fontconfig) @@ -529,7 +529,7 @@ (define-public ffmpeg (format #t "setting LD_LIBRARY_PATH to ~s~%" path) (setenv "LD_LIBRARY_PATH" path) #t)))))) - (home-page "http://www.ffmpeg.org/") + (home-page "https://www.ffmpeg.org/") (synopsis "Audio and video framework") (description "FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video. It includes the libavcodec -- cgit v1.2.3 From e20a94aa8841561d62cb63c34c18be6dcd34ec22 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 9 May 2016 13:49:49 +0300 Subject: gnu: youtube-dl: Update to 2016.05.01. * gnu/packages/video.scm (youtube-dl): Update to 2016.05.01. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 6fe9932d0a..1bd5198d5b 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -860,7 +860,7 @@ (define-public libvpx (define-public youtube-dl (package (name "youtube-dl") - (version "2016.04.06") + (version "2016.05.01") (source (origin (method url-fetch) (uri (string-append "http://youtube-dl.org/downloads/" @@ -868,7 +868,7 @@ (define-public youtube-dl version ".tar.gz")) (sha256 (base32 - "1kdrjwrn0x1wmvansvd2222gfqnld4zdihf2jwnz36112r1p8nhi")))) + "1w04afmwq5pjvp3nl2k59q0cigqrj9n8fwkydcfldwpq83l15j5d")))) (build-system python-build-system) (home-page "http://youtube-dl.org") (arguments -- cgit v1.2.3 From ac10a81ad4289bc69189298a4ec00ffcd7e42ffb Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 9 May 2016 14:43:52 +0300 Subject: gnu: openntpd: Update to 5.9p1. * gnu/packages/ntp.scm (openntpd): Update to 5.9p1. --- gnu/packages/ntp.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm index 6dbb93f439..4ae25450e8 100644 --- a/gnu/packages/ntp.scm +++ b/gnu/packages/ntp.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015 Ludovic Courtès +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -92,7 +93,7 @@ (define-public ntp (define-public openntpd (package (name "openntpd") - (version "5.7p3") + (version "5.9p1") (source (origin (method url-fetch) ;; XXX Use mirror://openbsd @@ -101,7 +102,7 @@ (define-public openntpd version ".tar.gz")) (sha256 (base32 - "0filjmb3b8rc39bvhm8q2azzj10ljfgq41qih71pxv919j57qhag")))) + "1cwp6vxv7nj039kgbf0mgfm06f8zc4axawdc7ijl2r2ddl2h8310")))) (build-system gnu-build-system) (home-page "http://www.openntpd.org/") (synopsis "NTP client and server by the OpenBSD Project") -- cgit v1.2.3 From f2bca8db37ecddbb3bde0c4a22c3d9010a65528b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 9 May 2016 17:02:51 +0300 Subject: gnu: connman: Fix url. * gnu/packages/connman.scm (connman)[source]: Remove extra "/pub" from the download url. --- gnu/packages/connman.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/connman.scm b/gnu/packages/connman.scm index 2625ae8760..cd0f6a9e2b 100644 --- a/gnu/packages/connman.scm +++ b/gnu/packages/connman.scm @@ -40,7 +40,7 @@ (define-public connman (source (origin (method url-fetch) - (uri (string-append "mirror://kernel.org/pub/linux/network/connman/" + (uri (string-append "mirror://kernel.org/linux/network/connman/" name "-" version ".tar.xz")) (sha256 (base32 -- cgit v1.2.3 From cc6561e6a1426a183a9b2c0756c86c83a9c4199e Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 9 May 2016 20:43:35 +0300 Subject: gnu: qemu: Update to 2.5.1. * gnu/packages/qemu.scm (qemu): Update to 2.5.1. [source]: Remove patches. * gnu/packages/patches/qemu-usb-ehci-oob-read.patch, gnu/packages/patches/qemu-virtio-9p-use-accessor-to-get-thread-pool.patch, gnu/packages/patches/qemu-CVE-2015-8558.patch, gnu/packages/patches/qemu-CVE-2015-8567.patch, gnu/packages/patches/qemu-CVE-2015-8613.patch, gnu/packages/patches/qemu-CVE-2015-8619.patch, gnu/packages/patches/qemu-CVE-2015-8701.patch, gnu/packages/patches/qemu-CVE-2015-8743.patch, gnu/packages/patches/qemu-CVE-2016-1568.patch, gnu/packages/patches/qemu-CVE-2016-1922.patch, gnu/packages/patches/qemu-CVE-2016-1981.patch, gnu/packages/patches/qemu-CVE-2016-2197.patch: Remove files. * gnu/local.mk (dist_patch_DATA): Remove them. --- gnu/local.mk | 12 --- gnu/packages/patches/qemu-CVE-2015-8558.patch | 48 --------- gnu/packages/patches/qemu-CVE-2015-8567.patch | 93 ---------------- gnu/packages/patches/qemu-CVE-2015-8613.patch | 35 ------ gnu/packages/patches/qemu-CVE-2015-8619.patch | 119 --------------------- gnu/packages/patches/qemu-CVE-2015-8701.patch | 47 -------- gnu/packages/patches/qemu-CVE-2015-8743.patch | 48 --------- gnu/packages/patches/qemu-CVE-2016-1568.patch | 39 ------- gnu/packages/patches/qemu-CVE-2016-1922.patch | 65 ----------- gnu/packages/patches/qemu-CVE-2016-1981.patch | 95 ---------------- gnu/packages/patches/qemu-CVE-2016-2197.patch | 40 ------- gnu/packages/patches/qemu-usb-ehci-oob-read.patch | 49 --------- ...virtio-9p-use-accessor-to-get-thread-pool.patch | 34 ------ gnu/packages/qemu.scm | 18 +--- 14 files changed, 3 insertions(+), 739 deletions(-) delete mode 100644 gnu/packages/patches/qemu-CVE-2015-8558.patch delete mode 100644 gnu/packages/patches/qemu-CVE-2015-8567.patch delete mode 100644 gnu/packages/patches/qemu-CVE-2015-8613.patch delete mode 100644 gnu/packages/patches/qemu-CVE-2015-8619.patch delete mode 100644 gnu/packages/patches/qemu-CVE-2015-8701.patch delete mode 100644 gnu/packages/patches/qemu-CVE-2015-8743.patch delete mode 100644 gnu/packages/patches/qemu-CVE-2016-1568.patch delete mode 100644 gnu/packages/patches/qemu-CVE-2016-1922.patch delete mode 100644 gnu/packages/patches/qemu-CVE-2016-1981.patch delete mode 100644 gnu/packages/patches/qemu-CVE-2016-2197.patch delete mode 100644 gnu/packages/patches/qemu-usb-ehci-oob-read.patch delete mode 100644 gnu/packages/patches/qemu-virtio-9p-use-accessor-to-get-thread-pool.patch diff --git a/gnu/local.mk b/gnu/local.mk index cea6a73a55..f2436edefc 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -711,18 +711,6 @@ dist_patch_DATA = \ gnu/packages/patches/python-paste-remove-timing-test.patch \ gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \ gnu/packages/patches/python-pandas-fix-tslib-test-failure.patch \ - gnu/packages/patches/qemu-CVE-2015-8558.patch \ - gnu/packages/patches/qemu-CVE-2015-8567.patch \ - gnu/packages/patches/qemu-CVE-2015-8613.patch \ - gnu/packages/patches/qemu-CVE-2015-8619.patch \ - gnu/packages/patches/qemu-CVE-2015-8701.patch \ - gnu/packages/patches/qemu-CVE-2015-8743.patch \ - gnu/packages/patches/qemu-CVE-2016-1568.patch \ - gnu/packages/patches/qemu-CVE-2016-1922.patch \ - gnu/packages/patches/qemu-CVE-2016-1981.patch \ - gnu/packages/patches/qemu-CVE-2016-2197.patch \ - gnu/packages/patches/qemu-usb-ehci-oob-read.patch \ - gnu/packages/patches/qemu-virtio-9p-use-accessor-to-get-thread-pool.patch \ gnu/packages/patches/qt4-ldflags.patch \ gnu/packages/patches/ratpoison-shell.patch \ gnu/packages/patches/readline-link-ncurses.patch \ diff --git a/gnu/packages/patches/qemu-CVE-2015-8558.patch b/gnu/packages/patches/qemu-CVE-2015-8558.patch deleted file mode 100644 index f755d735cb..0000000000 --- a/gnu/packages/patches/qemu-CVE-2015-8558.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 156a2e4dbffa85997636a7a39ef12da6f1b40254 Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Mon, 14 Dec 2015 09:21:23 +0100 -Subject: [PATCH] ehci: make idt processing more robust - -Make ehci_process_itd return an error in case we didn't do any actual -iso transfer because we've found no active transaction. That'll avoid -ehci happily run in circles forever if the guest builds a loop out of -idts. - -This is CVE-2015-8558. - -Cc: qemu-stable@nongnu.org -Reported-by: Qinghao Tang -Tested-by: P J P -Signed-off-by: Gerd Hoffmann ---- - hw/usb/hcd-ehci.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c -index 4e2161b..d07f228 100644 ---- a/hw/usb/hcd-ehci.c -+++ b/hw/usb/hcd-ehci.c -@@ -1389,7 +1389,7 @@ static int ehci_process_itd(EHCIState *ehci, - { - USBDevice *dev; - USBEndpoint *ep; -- uint32_t i, len, pid, dir, devaddr, endp; -+ uint32_t i, len, pid, dir, devaddr, endp, xfers = 0; - uint32_t pg, off, ptr1, ptr2, max, mult; - - ehci->periodic_sched_active = PERIODIC_ACTIVE; -@@ -1479,9 +1479,10 @@ static int ehci_process_itd(EHCIState *ehci, - ehci_raise_irq(ehci, USBSTS_INT); - } - itd->transact[i] &= ~ITD_XACT_ACTIVE; -+ xfers++; - } - } -- return 0; -+ return xfers ? 0 : -1; - } - - --- -2.6.3 - diff --git a/gnu/packages/patches/qemu-CVE-2015-8567.patch b/gnu/packages/patches/qemu-CVE-2015-8567.patch deleted file mode 100644 index 0cfd8e9627..0000000000 --- a/gnu/packages/patches/qemu-CVE-2015-8567.patch +++ /dev/null @@ -1,93 +0,0 @@ -From aa4a3dce1c88ed51b616806b8214b7c8428b7470 Mon Sep 17 00:00:00 2001 -From: P J P -Date: Tue, 15 Dec 2015 12:27:54 +0530 -Subject: [PATCH] net: vmxnet3: avoid memory leakage in activate_device - -Vmxnet3 device emulator does not check if the device is active -before activating it, also it did not free the transmit & receive -buffers while deactivating the device, thus resulting in memory -leakage on the host. This patch fixes both these issues to avoid -host memory leakage. - -Reported-by: Qinghao Tang -Reviewed-by: Dmitry Fleytman -Signed-off-by: Prasad J Pandit -Cc: qemu-stable@nongnu.org -Signed-off-by: Jason Wang ---- - hw/net/vmxnet3.c | 24 ++++++++++++++++-------- - 1 file changed, 16 insertions(+), 8 deletions(-) - -diff --git a/hw/net/vmxnet3.c b/hw/net/vmxnet3.c -index a5dd79a..9c1adfc 100644 ---- a/hw/net/vmxnet3.c -+++ b/hw/net/vmxnet3.c -@@ -1194,8 +1194,13 @@ static void vmxnet3_reset_mac(VMXNET3State *s) - - static void vmxnet3_deactivate_device(VMXNET3State *s) - { -- VMW_CBPRN("Deactivating vmxnet3..."); -- s->device_active = false; -+ if (s->device_active) { -+ VMW_CBPRN("Deactivating vmxnet3..."); -+ vmxnet_tx_pkt_reset(s->tx_pkt); -+ vmxnet_tx_pkt_uninit(s->tx_pkt); -+ vmxnet_rx_pkt_uninit(s->rx_pkt); -+ s->device_active = false; -+ } - } - - static void vmxnet3_reset(VMXNET3State *s) -@@ -1204,7 +1209,6 @@ static void vmxnet3_reset(VMXNET3State *s) - - vmxnet3_deactivate_device(s); - vmxnet3_reset_interrupt_states(s); -- vmxnet_tx_pkt_reset(s->tx_pkt); - s->drv_shmem = 0; - s->tx_sop = true; - s->skip_current_tx_pkt = false; -@@ -1431,6 +1435,12 @@ static void vmxnet3_activate_device(VMXNET3State *s) - return; - } - -+ /* Verify if device is active */ -+ if (s->device_active) { -+ VMW_CFPRN("Vmxnet3 device is active"); -+ return; -+ } -+ - vmxnet3_adjust_by_guest_type(s); - vmxnet3_update_features(s); - vmxnet3_update_pm_state(s); -@@ -1627,7 +1637,7 @@ static void vmxnet3_handle_command(VMXNET3State *s, uint64_t cmd) - break; - - case VMXNET3_CMD_QUIESCE_DEV: -- VMW_CBPRN("Set: VMXNET3_CMD_QUIESCE_DEV - pause the device"); -+ VMW_CBPRN("Set: VMXNET3_CMD_QUIESCE_DEV - deactivate the device"); - vmxnet3_deactivate_device(s); - break; - -@@ -1741,7 +1751,7 @@ vmxnet3_io_bar1_write(void *opaque, - * shared address only after we get the high part - */ - if (val == 0) { -- s->device_active = false; -+ vmxnet3_deactivate_device(s); - } - s->temp_shared_guest_driver_memory = val; - s->drv_shmem = 0; -@@ -2021,9 +2031,7 @@ static bool vmxnet3_peer_has_vnet_hdr(VMXNET3State *s) - static void vmxnet3_net_uninit(VMXNET3State *s) - { - g_free(s->mcast_list); -- vmxnet_tx_pkt_reset(s->tx_pkt); -- vmxnet_tx_pkt_uninit(s->tx_pkt); -- vmxnet_rx_pkt_uninit(s->rx_pkt); -+ vmxnet3_deactivate_device(s); - qemu_del_nic(s->nic); - } - --- -2.6.3 - diff --git a/gnu/packages/patches/qemu-CVE-2015-8613.patch b/gnu/packages/patches/qemu-CVE-2015-8613.patch deleted file mode 100644 index 3bcc6ab8d6..0000000000 --- a/gnu/packages/patches/qemu-CVE-2015-8613.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 36fef36b91f7ec0435215860f1458b5342ce2811 Mon Sep 17 00:00:00 2001 -From: P J P -Date: Mon, 21 Dec 2015 15:13:13 +0530 -Subject: [PATCH] scsi: initialise info object with appropriate size - -While processing controller 'CTRL_GET_INFO' command, the routine -'megasas_ctrl_get_info' overflows the '&info' object size. Use its -appropriate size to null initialise it. - -Reported-by: Qinghao Tang -Signed-off-by: Prasad J Pandit -Message-Id: -Cc: qemu-stable@nongnu.org -Signed-off-by: Paolo Bonzini -Signed-off-by: P J P ---- - hw/scsi/megasas.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c -index d7dc667..576f56c 100644 ---- a/hw/scsi/megasas.c -+++ b/hw/scsi/megasas.c -@@ -718,7 +718,7 @@ static int megasas_ctrl_get_info(MegasasState *s, MegasasCmd *cmd) - BusChild *kid; - int num_pd_disks = 0; - -- memset(&info, 0x0, cmd->iov_size); -+ memset(&info, 0x0, dcmd_size); - if (cmd->iov_size < dcmd_size) { - trace_megasas_dcmd_invalid_xfer_len(cmd->index, cmd->iov_size, - dcmd_size); --- -2.6.3 - diff --git a/gnu/packages/patches/qemu-CVE-2015-8619.patch b/gnu/packages/patches/qemu-CVE-2015-8619.patch deleted file mode 100644 index 5961343d1e..0000000000 --- a/gnu/packages/patches/qemu-CVE-2015-8619.patch +++ /dev/null @@ -1,119 +0,0 @@ -From: Wolfgang Bumiller -Date: Wed, 13 Jan 2016 09:09:58 +0100 -Subject: [PATCH] hmp: fix sendkey out of bounds write (CVE-2015-8619) - -When processing 'sendkey' command, hmp_sendkey routine null -terminates the 'keyname_buf' array. This results in an OOB -write issue, if 'keyname_len' was to fall outside of -'keyname_buf' array. - -Since the keyname's length is known the keyname_buf can be -removed altogether by adding a length parameter to -index_from_key() and using it for the error output as well. - -Reported-by: Ling Liu -Signed-off-by: Wolfgang Bumiller -Message-Id: <20160113080958.GA18934@olga> -[Comparison with "<" dumbed down, test for junk after strtoul() -tweaked] -Signed-off-by: Markus Armbruster - -(cherry picked from commit 64ffbe04eaafebf4045a3ace52a360c14959d196) ---- - hmp.c | 18 ++++++++---------- - include/ui/console.h | 2 +- - ui/input-legacy.c | 5 +++-- - 3 files changed, 12 insertions(+), 13 deletions(-) - -diff --git a/hmp.c b/hmp.c -index 2140605..1904203 100644 ---- a/hmp.c -+++ b/hmp.c -@@ -1734,21 +1734,18 @@ void hmp_sendkey(Monitor *mon, const QDict *qdict) - int has_hold_time = qdict_haskey(qdict, "hold-time"); - int hold_time = qdict_get_try_int(qdict, "hold-time", -1); - Error *err = NULL; -- char keyname_buf[16]; - char *separator; - int keyname_len; - - while (1) { - separator = strchr(keys, '-'); - keyname_len = separator ? separator - keys : strlen(keys); -- pstrcpy(keyname_buf, sizeof(keyname_buf), keys); - - /* Be compatible with old interface, convert user inputted "<" */ -- if (!strncmp(keyname_buf, "<", 1) && keyname_len == 1) { -- pstrcpy(keyname_buf, sizeof(keyname_buf), "less"); -+ if (keys[0] == '<' && keyname_len == 1) { -+ keys = "less"; - keyname_len = 4; - } -- keyname_buf[keyname_len] = 0; - - keylist = g_malloc0(sizeof(*keylist)); - keylist->value = g_malloc0(sizeof(*keylist->value)); -@@ -1761,16 +1758,17 @@ void hmp_sendkey(Monitor *mon, const QDict *qdict) - } - tmp = keylist; - -- if (strstart(keyname_buf, "0x", NULL)) { -+ if (strstart(keys, "0x", NULL)) { - char *endp; -- int value = strtoul(keyname_buf, &endp, 0); -- if (*endp != '\0') { -+ int value = strtoul(keys, &endp, 0); -+ assert(endp <= keys + keyname_len); -+ if (endp != keys + keyname_len) { - goto err_out; - } - keylist->value->type = KEY_VALUE_KIND_NUMBER; - keylist->value->u.number = value; - } else { -- int idx = index_from_key(keyname_buf); -+ int idx = index_from_key(keys, keyname_len); - if (idx == Q_KEY_CODE_MAX) { - goto err_out; - } -@@ -1792,7 +1790,7 @@ out: - return; - - err_out: -- monitor_printf(mon, "invalid parameter: %s\n", keyname_buf); -+ monitor_printf(mon, "invalid parameter: %.*s\n", keyname_len, keys); - goto out; - } - -diff --git a/include/ui/console.h b/include/ui/console.h -index c249db4..5739bdd 100644 ---- a/include/ui/console.h -+++ b/include/ui/console.h -@@ -433,7 +433,7 @@ static inline int vnc_display_pw_expire(const char *id, time_t expires) - void curses_display_init(DisplayState *ds, int full_screen); - - /* input.c */ --int index_from_key(const char *key); -+int index_from_key(const char *key, size_t key_length); - - /* gtk.c */ - void early_gtk_display_init(int opengl); -diff --git a/ui/input-legacy.c b/ui/input-legacy.c -index e0a39f0..3f28bbc 100644 ---- a/ui/input-legacy.c -+++ b/ui/input-legacy.c -@@ -57,12 +57,13 @@ struct QEMUPutLEDEntry { - static QTAILQ_HEAD(, QEMUPutLEDEntry) led_handlers = - QTAILQ_HEAD_INITIALIZER(led_handlers); - --int index_from_key(const char *key) -+int index_from_key(const char *key, size_t key_length) - { - int i; - - for (i = 0; QKeyCode_lookup[i] != NULL; i++) { -- if (!strcmp(key, QKeyCode_lookup[i])) { -+ if (!strncmp(key, QKeyCode_lookup[i], key_length) && -+ !QKeyCode_lookup[i][key_length]) { - break; - } - } diff --git a/gnu/packages/patches/qemu-CVE-2015-8701.patch b/gnu/packages/patches/qemu-CVE-2015-8701.patch deleted file mode 100644 index c7ab7b68b0..0000000000 --- a/gnu/packages/patches/qemu-CVE-2015-8701.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 007cd223de527b5f41278f2d886c1a4beb3e67aa Mon Sep 17 00:00:00 2001 -From: Prasad J Pandit -Date: Mon, 28 Dec 2015 16:24:08 +0530 -Subject: [PATCH] net: rocker: fix an incorrect array bounds check - -While processing transmit(tx) descriptors in 'tx_consume' routine -the switch emulator suffers from an off-by-one error, if a -descriptor was to have more than allowed(ROCKER_TX_FRAGS_MAX=16) -fragments. Fix an incorrect bounds check to avoid it. - -Reported-by: Qinghao Tang -Cc: qemu-stable@nongnu.org -Signed-off-by: Prasad J Pandit -Signed-off-by: Jason Wang ---- - hw/net/rocker/rocker.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/hw/net/rocker/rocker.c b/hw/net/rocker/rocker.c -index c57f1a6..2e77e50 100644 ---- a/hw/net/rocker/rocker.c -+++ b/hw/net/rocker/rocker.c -@@ -232,6 +232,9 @@ static int tx_consume(Rocker *r, DescInfo *info) - frag_addr = rocker_tlv_get_le64(tlvs[ROCKER_TLV_TX_FRAG_ATTR_ADDR]); - frag_len = rocker_tlv_get_le16(tlvs[ROCKER_TLV_TX_FRAG_ATTR_LEN]); - -+ if (iovcnt >= ROCKER_TX_FRAGS_MAX) { -+ goto err_too_many_frags; -+ } - iov[iovcnt].iov_len = frag_len; - iov[iovcnt].iov_base = g_malloc(frag_len); - if (!iov[iovcnt].iov_base) { -@@ -244,10 +247,7 @@ static int tx_consume(Rocker *r, DescInfo *info) - err = -ROCKER_ENXIO; - goto err_bad_io; - } -- -- if (++iovcnt > ROCKER_TX_FRAGS_MAX) { -- goto err_too_many_frags; -- } -+ iovcnt++; - } - - if (iovcnt) { --- -2.6.3 - diff --git a/gnu/packages/patches/qemu-CVE-2015-8743.patch b/gnu/packages/patches/qemu-CVE-2015-8743.patch deleted file mode 100644 index 4a9d0e2f2d..0000000000 --- a/gnu/packages/patches/qemu-CVE-2015-8743.patch +++ /dev/null @@ -1,48 +0,0 @@ -From aa7f9966dfdff500bbbf1956d9e115b1fa8987a6 Mon Sep 17 00:00:00 2001 -From: Prasad J Pandit -Date: Thu, 31 Dec 2015 17:05:27 +0530 -Subject: [PATCH] net: ne2000: fix bounds check in ioport operations - -While doing ioport r/w operations, ne2000 device emulation suffers -from OOB r/w errors. Update respective array bounds check to avoid -OOB access. - -Reported-by: Ling Liu -Cc: qemu-stable@nongnu.org -Signed-off-by: Prasad J Pandit -Signed-off-by: Jason Wang ---- - hw/net/ne2000.c | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - -diff --git a/hw/net/ne2000.c b/hw/net/ne2000.c -index 010f9ef..a3dffff 100644 ---- a/hw/net/ne2000.c -+++ b/hw/net/ne2000.c -@@ -467,8 +467,9 @@ static inline void ne2000_mem_writel(NE2000State *s, uint32_t addr, - uint32_t val) - { - addr &= ~1; /* XXX: check exact behaviour if not even */ -- if (addr < 32 || -- (addr >= NE2000_PMEM_START && addr < NE2000_MEM_SIZE)) { -+ if (addr < 32 -+ || (addr >= NE2000_PMEM_START -+ && addr + sizeof(uint32_t) <= NE2000_MEM_SIZE)) { - stl_le_p(s->mem + addr, val); - } - } -@@ -497,8 +498,9 @@ static inline uint32_t ne2000_mem_readw(NE2000State *s, uint32_t addr) - static inline uint32_t ne2000_mem_readl(NE2000State *s, uint32_t addr) - { - addr &= ~1; /* XXX: check exact behaviour if not even */ -- if (addr < 32 || -- (addr >= NE2000_PMEM_START && addr < NE2000_MEM_SIZE)) { -+ if (addr < 32 -+ || (addr >= NE2000_PMEM_START -+ && addr + sizeof(uint32_t) <= NE2000_MEM_SIZE)) { - return ldl_le_p(s->mem + addr); - } else { - return 0xffffffff; --- -2.6.3 - diff --git a/gnu/packages/patches/qemu-CVE-2016-1568.patch b/gnu/packages/patches/qemu-CVE-2016-1568.patch deleted file mode 100644 index 53863704cd..0000000000 --- a/gnu/packages/patches/qemu-CVE-2016-1568.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 4ab0359a8ae182a7ac5c99609667273167703fab Mon Sep 17 00:00:00 2001 -From: Prasad J Pandit -Date: Mon, 11 Jan 2016 14:10:42 -0500 -Subject: [PATCH] ide: ahci: reset ncq object to unused on error - -When processing NCQ commands, AHCI device emulation prepares a -NCQ transfer object; To which an aio control block(aiocb) object -is assigned in 'execute_ncq_command'. In case, when the NCQ -command is invalid, the 'aiocb' object is not assigned, and NCQ -transfer object is left as 'used'. This leads to a use after -free kind of error in 'bdrv_aio_cancel_async' via 'ahci_reset_port'. -Reset NCQ transfer object to 'unused' to avoid it. - -[Maintainer edit: s/ACHI/AHCI/ in the commit message. --js] - -Reported-by: Qinghao Tang -Signed-off-by: Prasad J Pandit -Reviewed-by: John Snow -Message-id: 1452282511-4116-1-git-send-email-ppandit@redhat.com -Signed-off-by: John Snow ---- - hw/ide/ahci.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c -index dd1912e..17f1cbd 100644 ---- a/hw/ide/ahci.c -+++ b/hw/ide/ahci.c -@@ -910,6 +910,7 @@ static void ncq_err(NCQTransferState *ncq_tfs) - ide_state->error = ABRT_ERR; - ide_state->status = READY_STAT | ERR_STAT; - ncq_tfs->drive->port_regs.scr_err |= (1 << ncq_tfs->tag); -+ ncq_tfs->used = 0; - } - - static void ncq_finish(NCQTransferState *ncq_tfs) --- -2.6.3 - diff --git a/gnu/packages/patches/qemu-CVE-2016-1922.patch b/gnu/packages/patches/qemu-CVE-2016-1922.patch deleted file mode 100644 index 36d9bd2591..0000000000 --- a/gnu/packages/patches/qemu-CVE-2016-1922.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 4c1396cb576c9b14425558b73de1584c7a9735d7 Mon Sep 17 00:00:00 2001 -From: P J P -Date: Fri, 18 Dec 2015 11:35:07 +0530 -Subject: [PATCH] i386: avoid null pointer dereference - - Hello, - -A null pointer dereference issue was reported by Mr Ling Liu, CC'd here. It -occurs while doing I/O port write operations via hmp interface. In that, -'current_cpu' remains null as it is not called from cpu_exec loop, which -results in the said issue. - -Below is a proposed (tested)patch to fix this issue; Does it look okay? - -=== -From ae88a4947fab9a148cd794f8ad2d812e7f5a1d0f Mon Sep 17 00:00:00 2001 -From: Prasad J Pandit -Date: Fri, 18 Dec 2015 11:16:07 +0530 -Subject: [PATCH] i386: avoid null pointer dereference - -When I/O port write operation is called from hmp interface, -'current_cpu' remains null, as it is not called from cpu_exec() -loop. This leads to a null pointer dereference in vapic_write -routine. Add check to avoid it. - -Reported-by: Ling Liu -Signed-off-by: Prasad J Pandit -Message-Id: -Signed-off-by: Paolo Bonzini -Signed-off-by: P J P ---- - hw/i386/kvmvapic.c | 15 ++++++++++----- - 1 file changed, 10 insertions(+), 5 deletions(-) - -diff --git a/hw/i386/kvmvapic.c b/hw/i386/kvmvapic.c -index c6d34b2..f0922da 100644 ---- a/hw/i386/kvmvapic.c -+++ b/hw/i386/kvmvapic.c -@@ -634,13 +634,18 @@ static int vapic_prepare(VAPICROMState *s) - static void vapic_write(void *opaque, hwaddr addr, uint64_t data, - unsigned int size) - { -- CPUState *cs = current_cpu; -- X86CPU *cpu = X86_CPU(cs); -- CPUX86State *env = &cpu->env; -- hwaddr rom_paddr; - VAPICROMState *s = opaque; -+ X86CPU *cpu; -+ CPUX86State *env; -+ hwaddr rom_paddr; - -- cpu_synchronize_state(cs); -+ if (!current_cpu) { -+ return; -+ } -+ -+ cpu_synchronize_state(current_cpu); -+ cpu = X86_CPU(current_cpu); -+ env = &cpu->env; - - /* - * The VAPIC supports two PIO-based hypercalls, both via port 0x7E. --- -2.6.3 - diff --git a/gnu/packages/patches/qemu-CVE-2016-1981.patch b/gnu/packages/patches/qemu-CVE-2016-1981.patch deleted file mode 100644 index 03e7b333c9..0000000000 --- a/gnu/packages/patches/qemu-CVE-2016-1981.patch +++ /dev/null @@ -1,95 +0,0 @@ -From: Laszlo Ersek -Date: Tue, 19 Jan 2016 14:17:20 +0100 -Subject: [PATCH] e1000: eliminate infinite loops on out-of-bounds transfer - start - -The start_xmit() and e1000_receive_iov() functions implement DMA transfers -iterating over a set of descriptors that the guest's e1000 driver -prepares: - -- the TDLEN and RDLEN registers store the total size of the descriptor - area, - -- while the TDH and RDH registers store the offset (in whole tx / rx - descriptors) into the area where the transfer is supposed to start. - -Each time a descriptor is processed, the TDH and RDH register is bumped -(as appropriate for the transfer direction). - -QEMU already contains logic to deal with bogus transfers submitted by the -guest: - -- Normally, the transmit case wants to increase TDH from its initial value - to TDT. (TDT is allowed to be numerically smaller than the initial TDH - value; wrapping at or above TDLEN bytes to zero is normal.) The failsafe - that QEMU currently has here is a check against reaching the original - TDH value again -- a complete wraparound, which should never happen. - -- In the receive case RDH is increased from its initial value until - "total_size" bytes have been received; preferably in a single step, or - in "s->rxbuf_size" byte steps, if the latter is smaller. However, null - RX descriptors are skipped without receiving data, while RDH is - incremented just the same. QEMU tries to prevent an infinite loop - (processing only null RX descriptors) by detecting whether RDH assumes - its original value during the loop. (Again, wrapping from RDLEN to 0 is - normal.) - -What both directions miss is that the guest could program TDLEN and RDLEN -so low, and the initial TDH and RDH so high, that these registers will -immediately be truncated to zero, and then never reassume their initial -values in the loop -- a full wraparound will never occur. - -The condition that expresses this is: - - xdh_start >= s->mac_reg[XDLEN] / sizeof(desc) - -i.e., TDH or RDH start out after the last whole rx or tx descriptor that -fits into the TDLEN or RDLEN sized area. - -This condition could be checked before we enter the loops, but -pci_dma_read() / pci_dma_write() knows how to fill in buffers safely for -bogus DMA addresses, so we just extend the existing failsafes with the -above condition. - -This is CVE-2016-1981. - -Cc: "Michael S. Tsirkin" -Cc: Petr Matousek -Cc: Stefano Stabellini -Cc: Prasad Pandit -Cc: Michael Roth -Cc: Jason Wang -Cc: qemu-stable@nongnu.org -RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1296044 -Signed-off-by: Laszlo Ersek -Reviewed-by: Jason Wang -Signed-off-by: Jason Wang -(cherry picked from commit dd793a74882477ca38d49e191110c17dfee51dcc) ---- - hw/net/e1000.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/hw/net/e1000.c b/hw/net/e1000.c -index bec06e9..34d0823 100644 ---- a/hw/net/e1000.c -+++ b/hw/net/e1000.c -@@ -908,7 +908,8 @@ start_xmit(E1000State *s) - * bogus values to TDT/TDLEN. - * there's nothing too intelligent we could do about this. - */ -- if (s->mac_reg[TDH] == tdh_start) { -+ if (s->mac_reg[TDH] == tdh_start || -+ tdh_start >= s->mac_reg[TDLEN] / sizeof(desc)) { - DBGOUT(TXERR, "TDH wraparound @%x, TDT %x, TDLEN %x\n", - tdh_start, s->mac_reg[TDT], s->mac_reg[TDLEN]); - break; -@@ -1165,7 +1166,8 @@ e1000_receive_iov(NetClientState *nc, const struct iovec *iov, int iovcnt) - if (++s->mac_reg[RDH] * sizeof(desc) >= s->mac_reg[RDLEN]) - s->mac_reg[RDH] = 0; - /* see comment in start_xmit; same here */ -- if (s->mac_reg[RDH] == rdh_start) { -+ if (s->mac_reg[RDH] == rdh_start || -+ rdh_start >= s->mac_reg[RDLEN] / sizeof(desc)) { - DBGOUT(RXERR, "RDH wraparound @%x, RDT %x, RDLEN %x\n", - rdh_start, s->mac_reg[RDT], s->mac_reg[RDLEN]); - set_ics(s, 0, E1000_ICS_RXO); diff --git a/gnu/packages/patches/qemu-CVE-2016-2197.patch b/gnu/packages/patches/qemu-CVE-2016-2197.patch deleted file mode 100644 index d851e1ec75..0000000000 --- a/gnu/packages/patches/qemu-CVE-2016-2197.patch +++ /dev/null @@ -1,40 +0,0 @@ -From: John Snow -Date: Wed, 10 Feb 2016 13:29:40 -0500 -Subject: [PATCH] ahci: Do not unmap NULL addresses - -Definitely don't try to unmap a garbage address. - -Reported-by: Zuozhi fzz -Signed-off-by: John Snow -Message-id: 1454103689-13042-2-git-send-email-jsnow@redhat.com -(cherry picked from commit 99b4cb71069f109b79b27bc629fc0cf0886dbc4b) ---- - hw/ide/ahci.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c -index 17f1cbd..cdc9299 100644 ---- a/hw/ide/ahci.c -+++ b/hw/ide/ahci.c -@@ -661,6 +661,10 @@ static bool ahci_map_fis_address(AHCIDevice *ad) - - static void ahci_unmap_fis_address(AHCIDevice *ad) - { -+ if (ad->res_fis == NULL) { -+ DPRINTF(ad->port_no, "Attempt to unmap NULL FIS address\n"); -+ return; -+ } - dma_memory_unmap(ad->hba->as, ad->res_fis, 256, - DMA_DIRECTION_FROM_DEVICE, 256); - ad->res_fis = NULL; -@@ -677,6 +681,10 @@ static bool ahci_map_clb_address(AHCIDevice *ad) - - static void ahci_unmap_clb_address(AHCIDevice *ad) - { -+ if (ad->lst == NULL) { -+ DPRINTF(ad->port_no, "Attempt to unmap NULL CLB address\n"); -+ return; -+ } - dma_memory_unmap(ad->hba->as, ad->lst, 1024, - DMA_DIRECTION_FROM_DEVICE, 1024); - ad->lst = NULL; diff --git a/gnu/packages/patches/qemu-usb-ehci-oob-read.patch b/gnu/packages/patches/qemu-usb-ehci-oob-read.patch deleted file mode 100644 index d63c0832b8..0000000000 --- a/gnu/packages/patches/qemu-usb-ehci-oob-read.patch +++ /dev/null @@ -1,49 +0,0 @@ -From: Prasad J Pandit -Date: Wed, 20 Jan 2016 01:26:46 +0530 -Subject: [PATCH] usb: check page select value while processing iTD - -While processing isochronous transfer descriptors(iTD), the page -select(PG) field value could lead to an OOB read access. Add -check to avoid it. - -Reported-by: Qinghao Tang -Signed-off-by: Prasad J Pandit -Message-id: 1453233406-12165-1-git-send-email-ppandit@redhat.com -Signed-off-by: Gerd Hoffmann -(cherry picked from commit 49d925ce50383a286278143c05511d30ec41a36e) ---- - hw/usb/hcd-ehci.c | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - -diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c -index d07f228..c40013e 100644 ---- a/hw/usb/hcd-ehci.c -+++ b/hw/usb/hcd-ehci.c -@@ -1404,21 +1404,23 @@ static int ehci_process_itd(EHCIState *ehci, - if (itd->transact[i] & ITD_XACT_ACTIVE) { - pg = get_field(itd->transact[i], ITD_XACT_PGSEL); - off = itd->transact[i] & ITD_XACT_OFFSET_MASK; -- ptr1 = (itd->bufptr[pg] & ITD_BUFPTR_MASK); -- ptr2 = (itd->bufptr[pg+1] & ITD_BUFPTR_MASK); - len = get_field(itd->transact[i], ITD_XACT_LENGTH); - - if (len > max * mult) { - len = max * mult; - } -- -- if (len > BUFF_SIZE) { -+ if (len > BUFF_SIZE || pg > 6) { - return -1; - } - -+ ptr1 = (itd->bufptr[pg] & ITD_BUFPTR_MASK); - qemu_sglist_init(&ehci->isgl, ehci->device, 2, ehci->as); - if (off + len > 4096) { - /* transfer crosses page border */ -+ if (pg == 6) { -+ return -1; /* avoid page pg + 1 */ -+ } -+ ptr2 = (itd->bufptr[pg + 1] & ITD_BUFPTR_MASK); - uint32_t len2 = off + len - 4096; - uint32_t len1 = len - len2; - qemu_sglist_add(&ehci->isgl, ptr1 + off, len1); diff --git a/gnu/packages/patches/qemu-virtio-9p-use-accessor-to-get-thread-pool.patch b/gnu/packages/patches/qemu-virtio-9p-use-accessor-to-get-thread-pool.patch deleted file mode 100644 index 497e49f1d9..0000000000 --- a/gnu/packages/patches/qemu-virtio-9p-use-accessor-to-get-thread-pool.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 4b3a4f2d458ca5a7c6c16ac36a8d9ac22cc253d6 Mon Sep 17 00:00:00 2001 -From: Greg Kurz -Date: Wed, 23 Dec 2015 10:56:58 +0100 -Subject: [PATCH] virtio-9p: use accessor to get thread_pool - -The aio_context_new() function does not allocate a thread pool. This is -deferred to the first call to the aio_get_thread_pool() accessor. It is -hence forbidden to access the thread_pool field directly, as it may be -NULL. The accessor *must* be used always. - -Fixes: ebac1202c95a4f1b76b6ef3f0f63926fa76e753e -Reviewed-by: Michael Tokarev -Tested-by: Michael Tokarev -Cc: qemu-stable@nongnu.org -Signed-off-by: Greg Kurz ---- - hw/9pfs/virtio-9p-coth.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/hw/9pfs/virtio-9p-coth.c b/hw/9pfs/virtio-9p-coth.c -index fb6e8f8..ab9425c 100644 ---- a/hw/9pfs/virtio-9p-coth.c -+++ b/hw/9pfs/virtio-9p-coth.c -@@ -36,6 +36,6 @@ static int coroutine_enter_func(void *arg) - void co_run_in_worker_bh(void *opaque) - { - Coroutine *co = opaque; -- thread_pool_submit_aio(qemu_get_aio_context()->thread_pool, -+ thread_pool_submit_aio(aio_get_thread_pool(qemu_get_aio_context()), - coroutine_enter_func, co, coroutine_enter_cb, co); - } --- -2.6.3 - diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm index c0ee504b24..d9429519a8 100644 --- a/gnu/packages/qemu.scm +++ b/gnu/packages/qemu.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès ;;; Copyright © 2015, 2016 Mark H Weaver +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -54,27 +55,14 @@ (define (qemu-patch commit file-name sha256) (define-public qemu (package (name "qemu") - (version "2.5.0") + (version "2.5.1") (source (origin (method url-fetch) (uri (string-append "http://wiki.qemu-project.org/download/qemu-" version ".tar.bz2")) (sha256 (base32 - "1m3j6xl7msrniidkvr5pw9d44yba5m7hm42xz8xy77v105s8hhrl")) - (patches (search-patches - "qemu-virtio-9p-use-accessor-to-get-thread-pool.patch" - "qemu-CVE-2015-8558.patch" - "qemu-CVE-2015-8567.patch" - "qemu-CVE-2016-1922.patch" - "qemu-CVE-2015-8613.patch" - "qemu-CVE-2015-8701.patch" - "qemu-CVE-2015-8743.patch" - "qemu-CVE-2016-1568.patch" - "qemu-CVE-2015-8619.patch" - "qemu-CVE-2016-1981.patch" - "qemu-usb-ehci-oob-read.patch" - "qemu-CVE-2016-2197.patch")))) + "0b2xa8604absdmzpcyjs7fix19y5blqmgflnwjzsp1mp7g1m51q2")))) (build-system gnu-build-system) (arguments '(#:phases (alist-replace -- cgit v1.2.3 From 4176eb1918ef831f2b5c4c24f591eecff6fe8121 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 10 May 2016 07:21:58 +0300 Subject: gnu: guile-ncurses: Update to 1.7. * gnu/packages/guile.scm (guile-ncurses): Update to 1.7. [arguments]: Remove work-around for buggy test. commit fixes http://bugs.gnu.org/21677 --- gnu/packages/guile.scm | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 53ea3e53bb..954700f764 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2016 Alex Sassmannshausen ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2016 Erik Edrosa +;;; Copyright © 2016 Eraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -362,14 +363,14 @@ (define-public guile-reader (define-public guile-ncurses (package (name "guile-ncurses") - (version "1.6") + (version "1.7") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/guile-ncurses/guile-ncurses-" version ".tar.gz")) (sha256 (base32 - "0wmk681zzi1wxw543r2s2r84ndnzxp69kr7pc01aw4l55hg7jn73")))) + "153vv75gb7l62sp3666rc97i63rnaqbx2rjar7d9b5w81fhwv4r5")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses) ("guile" ,guile-2.0))) @@ -378,10 +379,6 @@ (define-public guile-ncurses (string-append "--with-guilesitedir=" (assoc-ref %outputs "out") "/share/guile/site/2.0")) - - ;; Work around . - #:make-flags '("XFAIL_TESTS=curses_034_util.test") - #:phases (alist-cons-after 'install 'post-install (lambda* (#:key outputs #:allow-other-keys) -- cgit v1.2.3 From fa37f21bda179b560da0a2377f876a473c9718a4 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 10 May 2016 07:41:27 +0300 Subject: gnu: guile-ncurses: Use 'modify-phases'. * gnu/packages/guile.scm (guile-ncurses)[arguments]: Use 'modify-phases'. --- gnu/packages/guile.scm | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 954700f764..cf79d4e255 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -379,17 +379,17 @@ (define-public guile-ncurses (string-append "--with-guilesitedir=" (assoc-ref %outputs "out") "/share/guile/site/2.0")) - #:phases (alist-cons-after - 'install 'post-install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (dir (string-append out "/share/guile/site/")) - (files (find-files dir ".scm"))) - (substitute* files - (("\"libguile-ncurses\"") - (format #f "\"~a/lib/libguile-ncurses\"" - out))))) - %standard-phases))) + #:phases + (modify-phases %standard-phases + (add-after 'install 'post-install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (dir (string-append out "/share/guile/site/")) + (files (find-files dir ".scm"))) + (substitute* files + (("\"libguile-ncurses\"") + (format #f "\"~a/lib/libguile-ncurses\"" + out))))))))) (home-page "http://www.gnu.org/software/guile-ncurses/") (synopsis "Guile bindings to ncurses") (description -- cgit v1.2.3 From b6449e61262374581b342aa4920bd37f2292923e Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 9 May 2016 20:48:36 -0400 Subject: gnu: qemu: Update to 2.5.1.1 [fixes CVE-2015-8558, CVE-2016-{3710, 3712}]. * gnu/packages/qemu.scm (qemu): Update to 2.5.1.1. [arguments]: Disable parallel tests. --- gnu/packages/qemu.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm index d9429519a8..9e3fbf462c 100644 --- a/gnu/packages/qemu.scm +++ b/gnu/packages/qemu.scm @@ -55,17 +55,20 @@ (define (qemu-patch commit file-name sha256) (define-public qemu (package (name "qemu") - (version "2.5.1") + (version "2.5.1.1") (source (origin (method url-fetch) (uri (string-append "http://wiki.qemu-project.org/download/qemu-" version ".tar.bz2")) (sha256 (base32 - "0b2xa8604absdmzpcyjs7fix19y5blqmgflnwjzsp1mp7g1m51q2")))) + "1rpgr1v6gnsdb4bcxwn1krsz4d4h9xgvlg6ark648nkn8dp99n98")))) (build-system gnu-build-system) (arguments - '(#:phases (alist-replace + '(;; FIXME: On x86_64, the test 'check-qtest-x86_64' sometimes fails when + ;; parallel builds are enabled. + #:parallel-tests? #f + #:phases (alist-replace 'configure (lambda* (#:key inputs outputs (configure-flags '()) #:allow-other-keys) -- cgit v1.2.3 From 26fceae21a26b3bc1e0ccfceb65b9c4be15733b1 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 10 May 2016 11:48:12 +0300 Subject: Revert "gnu: libva: Update to 1.7.0." This reverts commit cdda334ec2fcdd5946ba60853b7312283bf89712. --- gnu/packages/video.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 1bd5198d5b..6578a4031f 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -323,7 +323,7 @@ (define-public libdv (define-public libva (package (name "libva") - (version "1.7.0") + (version "1.6.1") (source (origin (method url-fetch) @@ -331,7 +331,7 @@ (define-public libva "https://www.freedesktop.org/software/vaapi/releases/libva/libva-" version".tar.bz2")) (sha256 - (base32 "0py9igf4kicj7ji22bjawkpd6my013qpg0s4ir2np9l1rk5vr2d6")))) + (base32 "0bjfb5s8dk3lql843l91ffxzlq47isqks5sj19cxh7j3nhzw58kz")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -362,7 +362,7 @@ (define-public libva #:make-flags (list (string-append "dummy_drv_video_ladir=" (assoc-ref %outputs "out") "/lib/dri")))) - (home-page "https://www.freedesktop.org/wiki/Software/vaapi/") + (home-page "http://www.freedesktop.org/wiki/Software/vaapi/") (synopsis "Video acceleration library") (description "The main motivation for VA-API (Video Acceleration API) is to enable hardware accelerated video decode/encode at various -- cgit v1.2.3 From 10b0c31d6b14e01f6fd5e9c5ba90efab6d5641d0 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Sat, 7 May 2016 21:23:42 +0300 Subject: emacs: Simplify 'guix-guile-boolean'. * emacs/guix-guile.el (guix-guile-boolean): Use straightforward way to define true/false value. --- emacs/guix-guile.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emacs/guix-guile.el b/emacs/guix-guile.el index cd6c54d87e..792f825ca5 100644 --- a/emacs/guix-guile.el +++ b/emacs/guix-guile.el @@ -57,7 +57,7 @@ Return nil, if current buffer does not define a module." (defun guix-guile-boolean (arg) "Return a string with guile boolean value. Transform elisp ARG (nil or non-nil) to the guile boolean (#f or #t)." - (concat "#" (prin1-to-string (if arg 't 'f)))) + (if arg "#t" "#f")) (defun guix-guile-keyword-regexp (keyword) "Return regexp to find guile KEYWORD." -- cgit v1.2.3 From 3be33289272beda681afa9a48d52fa9a84bcd049 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 6 May 2016 20:36:42 +0300 Subject: emacs: main: Remove top-level package tables. * emacs/guix-main.scm (%package-vhash, package-vhash, %package-table) (package-table, name+version->key, key->name+version): Remove. (package-by-address, packages-by-name+version): Adjust by using delayed local package tables. --- emacs/guix-main.scm | 73 ++++++++++++++++++----------------------------------- 1 file changed, 24 insertions(+), 49 deletions(-) diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm index 2be86f026b..5d7df2a7f9 100644 --- a/emacs/guix-main.scm +++ b/emacs/guix-main.scm @@ -32,14 +32,6 @@ ;; still "name-version" string. So ‘id’ package parameter in the code ;; below is either an object-address number or a full-name string. -;; To speed-up the process of getting information, the following -;; auxiliary variables are used: -;; -;; - `%packages' - VHash of "package address"/"package" pairs. -;; -;; - `%package-table' - Hash table of -;; "name+version key"/"list of packages" pairs. - ;;; Code: (use-modules @@ -101,38 +93,6 @@ (define* (make-package-specification name #:optional version output) (string-append full-name ":" output) full-name))) -(define name+version->key cons) -(define key->name+version car+cdr) - -(define %package-vhash - (delay - (fold-packages (lambda (pkg res) - (vhash-consq (object-address pkg) pkg res)) - vlist-null))) - -(define (package-vhash) - "Return vhash of 'package ID (address)'/'package' pairs." - (force %package-vhash)) - -(define %package-table - (delay - (let ((table (make-hash-table (vlist-length (package-vhash))))) - (vlist-for-each - (lambda (elem) - (match elem - ((address . pkg) - (let* ((key (name+version->key (package-name pkg) - (package-version pkg))) - (ref (hash-ref table key))) - (hash-set! table key - (if ref (cons pkg ref) (list pkg))))))) - (package-vhash)) - table))) - -(define (package-table) - "Return hash table of 'name+version key'/'list of packages' pairs." - (force %package-table)) - (define (manifest-entry->name+version+output entry) (values (manifest-entry-name entry) @@ -340,15 +300,30 @@ (define (package-param package param) ;;; Finding packages. -(define (package-by-address address) - (match (vhash-assq address (package-vhash)) - ((_ . package) package) - (_ #f))) - -(define (packages-by-name+version name version) - (or (hash-ref (package-table) - (name+version->key name version)) - '())) +(define package-by-address + (let ((table (delay (fold-packages + (lambda (package table) + (vhash-consq (object-address package) + package table)) + vlist-null)))) + (lambda (address) + "Return package by its object ADDRESS." + (match (vhash-assq address (force table)) + ((_ . package) package) + (_ #f))))) + +(define packages-by-name+version + (let ((table (delay (fold-packages + (lambda (package table) + (let ((file (location-file + (package-location package)))) + (vhash-cons (cons (package-name package) + (package-version package)) + package table))) + vlist-null)))) + (lambda (name version) + "Return packages matching NAME and VERSION." + (vhash-fold* cons '() (cons name version) (force table))))) (define (packages-by-full-name full-name) (call-with-values -- cgit v1.2.3 From f8476e17a70ecc7d46c746480130477b7c35306b Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Tue, 5 Apr 2016 23:39:03 +0300 Subject: emacs: Add 'guix-package-from-file' command. * emacs/guix-main.scm (register-package, packages-from-file): New procedures. (%patterns-makers): Add 'from-file' search type. * emacs/guix-messages.el (guix-messages): Add messages for it. * emacs/guix-ui-package.el (guix-package-from-file): New command. (guix-package-info-insert-location): Adjust for 'from-file' type. * doc/emacs.texi (Emacs Commands): Document it. --- doc/emacs.texi | 5 +++++ emacs/guix-main.scm | 34 ++++++++++++++++++++++++++++------ emacs/guix-messages.el | 7 +++++++ emacs/guix-ui-package.el | 33 ++++++++++++++++++++++++--------- 4 files changed, 64 insertions(+), 15 deletions(-) diff --git a/doc/emacs.texi b/doc/emacs.texi index 575e87c262..d124eca3cb 100644 --- a/doc/emacs.texi +++ b/doc/emacs.texi @@ -166,6 +166,11 @@ Display package(s) located in the specified file. These files usually have the following form: @file{gnu/packages/emacs.scm}, but don't type them manually! Press @key{TAB} to complete the file name. +@item M-x guix-package-from-file +Display package that the code within the specified file evaluates to. +@xref{Invoking guix package, @code{--install-from-file}}, for an example +of what such a file may look like. + @item M-x guix-search-by-regexp Search for packages by a specified regexp. By default ``name'', ``synopsis'' and ``description'' of the packages will be searched. This diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm index 5d7df2a7f9..e645a85e7d 100644 --- a/emacs/guix-main.scm +++ b/emacs/guix-main.scm @@ -300,17 +300,26 @@ (define (package-param package param) ;;; Finding packages. -(define package-by-address +(define-values (package-by-address + register-package) (let ((table (delay (fold-packages (lambda (package table) (vhash-consq (object-address package) package table)) vlist-null)))) - (lambda (address) - "Return package by its object ADDRESS." - (match (vhash-assq address (force table)) - ((_ . package) package) - (_ #f))))) + (values + (lambda (address) + "Return package by its object ADDRESS." + (match (vhash-assq address (force table)) + ((_ . package) package) + (_ #f))) + (lambda (package) + "Register PACKAGE by its 'object-address', so that later +'package-by-address' can be used to access it." + (let ((table* (force table))) + (set! table + (delay (vhash-consq (object-address package) + package table*)))))))) (define packages-by-name+version (let ((table (delay (fold-packages @@ -410,6 +419,15 @@ (define (newest-available-packages) '() (find-newest-available-packages))) +(define (packages-from-file file) + "Return a list of packages from FILE." + (let ((package (load (canonicalize-path file)))) + (if (package? package) + (begin + (register-package package) + (list package)) + '()))) + ;;; Making package/output patterns. @@ -662,6 +680,8 @@ (define %patterns-makers (lookup-license license-name)))) (location-proc (lambda (_ location) (packages-by-location-file location))) + (file-proc (lambda (_ file) + (packages-from-file file))) (all-proc (lambda _ (all-available-packages))) (newest-proc (lambda _ (newest-available-packages)))) `((package @@ -672,6 +692,7 @@ (define %patterns-makers (regexp . ,regexp-proc) (license . ,license-proc) (location . ,location-proc) + (from-file . ,file-proc) (all-available . ,all-proc) (newest-available . ,newest-proc)) (output @@ -682,6 +703,7 @@ (define %patterns-makers (regexp . ,regexp-proc) (license . ,license-proc) (location . ,location-proc) + (from-file . ,file-proc) (all-available . ,all-proc) (newest-available . ,newest-proc))))) diff --git a/emacs/guix-messages.el b/emacs/guix-messages.el index 7ebe7e8b5c..52436af9e4 100644 --- a/emacs/guix-messages.el +++ b/emacs/guix-messages.el @@ -44,6 +44,9 @@ ,(lambda (_ entries locations) (apply #'guix-message-packages-by-location entries 'package locations))) + (from-file + (0 "No package in file '%s'." val) + (1 "Package from file '%s'." val)) (regexp (0 "No packages matching '%s'." val) (1 "A single package matching '%s'." val) @@ -80,6 +83,10 @@ ,(lambda (_ entries locations) (apply #'guix-message-packages-by-location entries 'output locations))) + (from-file + (0 "No package in file '%s'." val) + (1 "Package from file '%s'." val) + (many "Package outputs from file '%s'." val)) (regexp (0 "No package outputs matching '%s'." val) (1 "A single package output matching '%s'." val) diff --git a/emacs/guix-ui-package.el b/emacs/guix-ui-package.el index 38f0c08fc7..edc36486fc 100644 --- a/emacs/guix-ui-package.el +++ b/emacs/guix-ui-package.el @@ -393,15 +393,17 @@ formatted with this string, an action button is inserted.") (guix-format-insert nil) (let ((location-file (car (split-string location ":")))) (guix-info-insert-value-indent location 'guix-package-location) - (guix-info-insert-indent) - (guix-info-insert-action-button - "Packages" - (lambda (btn) - (guix-package-get-display (guix-ui-current-profile) - 'location - (button-get btn 'location))) - (format "Display packages from location '%s'" location-file) - 'location location-file)))) + ;; Do not show "Packages" button if a package 'from file' is displayed. + (unless (eq (guix-ui-current-search-type) 'from-file) + (guix-info-insert-indent) + (guix-info-insert-action-button + "Packages" + (lambda (btn) + (guix-package-get-display (guix-ui-current-profile) + 'location + (button-get btn 'location))) + (format "Display packages from location '%s'" location-file) + 'location location-file))))) (defun guix-package-info-insert-systems (systems entry) "Insert supported package SYSTEMS at point." @@ -1000,6 +1002,19 @@ Interactively with prefix, prompt for PROFILE." (guix-ui-read-profile))) (guix-package-get-display profile 'location location)) +;;;###autoload +(defun guix-package-from-file (file &optional profile) + "Display Guix package that the code from FILE evaluates to. +If PROFILE is nil, use `guix-current-profile'. +Interactively with prefix, prompt for PROFILE." + (interactive + (list (read-file-name "File with package: ") + (guix-ui-read-profile))) + (guix-buffer-get-display-entries + 'info 'package + (list (or profile guix-current-profile) 'from-file file) + 'add)) + ;;;###autoload (defun guix-search-by-regexp (regexp &optional params profile) "Search for Guix packages by REGEXP. -- cgit v1.2.3 From cf316a59389b4851743f0bbc39854abb96a4c068 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 10 May 2016 16:44:41 -0400 Subject: gnu: exim: Update to 4.87. * gnu/packages/mail.scm (exim): Update to 4.87. --- gnu/packages/mail.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 17dd0adc04..13749aa1f8 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -667,7 +667,7 @@ (define-public msmtp (define-public exim (package (name "exim") - (version "4.86.2") + (version "4.87") (source (origin (method url-fetch) @@ -677,7 +677,7 @@ (define-public exim version ".tar.bz2"))) (sha256 (base32 - "1cvfcc1hi60lydv8h3a2rxlfc0v2nflwpvzjj7h7cdsqs2pxwmkp")))) + "1jbxn13shq90kpn0s73qpjnx5xm8jrpwhcwwgqw5s6sdzw6iwsbl")))) (build-system gnu-build-system) (inputs `(("bdb" ,bdb) -- cgit v1.2.3 From 424fbe807f4cc597a7a09f714cdfdbfbef2b5e16 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 10 May 2016 17:48:57 -0400 Subject: gnu: libksba: Upsate to 1.3.4. * gnu/packages/gnupg.scm (libksba): Update to 1.3.4. --- gnu/packages/gnupg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 7bf6566be9..e6583e5e6f 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -148,7 +148,7 @@ (define-public libassuan (define-public libksba (package (name "libksba") - (version "1.3.3") + (version "1.3.4") (source (origin (method url-fetch) @@ -157,7 +157,7 @@ (define-public libksba version ".tar.bz2")) (sha256 (base32 - "11kp3h9l3b8ikydkcdkwgx45r662zi30m26ra5llyhfh6kz5yzqc")))) + "0kxdb02z41cwm1xbwfwj9nbc0dzjhwyq8c475mlhhmpcxcy8ihpn")))) (build-system gnu-build-system) (propagated-inputs `(("libgpg-error" ,libgpg-error))) -- cgit v1.2.3 From 1aaf116d3158bf822d1da1b0f17b48a064bb8dd1 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 9 May 2016 23:10:27 +0200 Subject: doc: Fix typo. * doc/guix.texi (Base Services): "gpm-service", not "gmp-service-type". --- doc/guix.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 88bb0277c8..0e63ecadfd 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7331,7 +7331,7 @@ See @code{man loadkeys} for details. @end deffn -@deffn {Scheme Procedure} gpm-service-type [#:gpm @var{gpm}] @ +@deffn {Scheme Procedure} gpm-service [#:gpm @var{gpm}] @ [#:options] Run @var{gpm}, the general-purpose mouse daemon, with the given command-line @var{options}. GPM allows users to use the mouse in the console, -- cgit v1.2.3 From 22c161d0a881bd86f02494c5512ee6310d326b4d Mon Sep 17 00:00:00 2001 From: Kei Yamashita Date: Tue, 10 May 2016 16:56:42 -0400 Subject: gnu: libical: Correct zoneinfo search path. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/calendar.scm (libical)[arguments]: substitute FHS-compliant zoneinfo folders with location of tzdata's zoneinfo folder. Signed-off-by: Ludovic Courtès --- gnu/packages/calendar.scm | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm index 5ef5ec9271..5ddd358607 100644 --- a/gnu/packages/calendar.scm +++ b/gnu/packages/calendar.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 David Thompson ;;; Copyright © 2015, 2016 Leo Famulari +;;; Copyright © 2016 Kei Yamashita ;;; ;;; This file is part of GNU Guix. ;;; @@ -47,11 +48,23 @@ (define-public libical "14lmjj63zyx88rf1z71l0v9ms4c2vpdhmixksjjxgywp5p2f7708")))) (build-system cmake-build-system) (arguments - '(#:tests? #f)) ; test suite appears broken + '(#:tests? #f ; test suite appears broken + #:phases + (modify-phases %standard-phases + (add-before 'configure 'patch-paths + (lambda _ + (let ((tzdata (assoc-ref %build-inputs "tzdata"))) + (substitute* "src/libical/icaltz-util.c" + (("char \\*search_paths \\[\\] =.*$") + (string-append + "char *search_paths [] = " + "{\"" tzdata "/share/zoneinfo\"};\n")))) + #t))))) (native-inputs `(("perl" ,perl))) (inputs - `(("icu4c" ,icu4c))) + `(("icu4c" ,icu4c) + ("tzdata" ,tzdata))) (home-page "https://libical.github.io/libical/") (synopsis "iCalendar protocols and data formats implementation") (description -- cgit v1.2.3 From 93d2456cfc6cffa5b0c2d521542f80a04ef087ce Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Tue, 10 May 2016 15:54:01 +0200 Subject: gnu: graphviz: Build the Guile bindings. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/graphviz.scm (graphviz)[inputs]: Add SWIG and GUILE-2.0. [arguments]: Add 'move-guile-bindings' phase. Co-authored-by: Ludovic Courtès --- gnu/packages/graphviz.scm | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm index 09f475bd90..e4b9094632 100644 --- a/gnu/packages/graphviz.scm +++ b/gnu/packages/graphviz.scm @@ -25,6 +25,7 @@ (define-module (gnu packages graphviz) #:use-module (gnu packages gtk) #:use-module (gnu packages xml) #:use-module (gnu packages glib) + #:use-module (gnu packages guile) #:use-module (gnu packages bison) #:use-module (gnu packages image) #:use-module (gnu packages autotools) @@ -32,6 +33,7 @@ (define-module (gnu packages graphviz) #:use-module (gnu packages fontutils) #:use-module (gnu packages compression) #:use-module (gnu packages gd) + #:use-module (gnu packages swig) #:use-module ((guix licenses) #:select (lgpl2.0+ epl1.0))) (define-public graphviz @@ -69,12 +71,26 @@ (define-public graphviz (rename-file (string-append out "/share/graphviz/doc") (string-append doc "/share/graphviz/doc")) #t)) - %standard-phases)))) + (alist-cons-after + 'move-docs 'move-guile-bindings + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib")) + (extdir (string-append lib + "/guile/2.0/extensions"))) + (mkdir-p extdir) + (rename-file (string-append + lib "/graphviz/guile/libgv_guile.so") + (string-append extdir + "/libgv_guile.so")))) + %standard-phases))))) (inputs `(("libXrender" ,libxrender) ("libX11" ,libx11) ("gts" ,gts) ("gd" ,gd) ; FIXME: Our GD is too old + ("guile" ,guile-2.0) ;Guile bindings + ("swig" ,swig) ("pango" ,pango) ("fontconfig" ,fontconfig) ("freetype" ,freetype) -- cgit v1.2.3 From e2b89203db6c2056c9658be40ab1be471769d9eb Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 11 May 2016 03:17:56 -0400 Subject: gnu: totem: Fix build on i686. * gnu/packages/patches/totem-debug-format-fix.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/gnome.scm (totem)[source]: Add patch. --- gnu/local.mk | 1 + gnu/packages/gnome.scm | 3 ++- gnu/packages/patches/totem-debug-format-fix.patch | 11 +++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/totem-debug-format-fix.patch diff --git a/gnu/local.mk b/gnu/local.mk index ed3f0610f6..183ddb8354 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -754,6 +754,7 @@ dist_patch_DATA = \ gnu/packages/patches/ttfautohint-source-date-epoch.patch \ gnu/packages/patches/tophat-build-with-later-seqan.patch \ gnu/packages/patches/torsocks-dns-test.patch \ + gnu/packages/patches/totem-debug-format-fix.patch \ gnu/packages/patches/unzip-CVE-2014-8139.patch \ gnu/packages/patches/unzip-CVE-2014-8140.patch \ gnu/packages/patches/unzip-CVE-2014-8141.patch \ diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index a7020a632b..ad5dd947bc 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3095,7 +3095,8 @@ (define-public totem name "-" version ".tar.xz")) (sha256 (base32 - "09swnhp46cyy2svqx02fzy555pjgc61lyjw56v9rz1mfc41lh8kg")))) + "09swnhp46cyy2svqx02fzy555pjgc61lyjw56v9rz1mfc41lh8kg")) + (patches (search-patches "totem-debug-format-fix.patch")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) diff --git a/gnu/packages/patches/totem-debug-format-fix.patch b/gnu/packages/patches/totem-debug-format-fix.patch new file mode 100644 index 0000000000..7ddd31ee10 --- /dev/null +++ b/gnu/packages/patches/totem-debug-format-fix.patch @@ -0,0 +1,11 @@ +--- totem-3.20.1/src/backend/bacon-video-widget.c.orig 2016-03-22 12:45:32.000000000 -0400 ++++ totem-3.20.1/src/backend/bacon-video-widget.c 2016-05-11 02:49:55.299109551 -0400 +@@ -2334,7 +2334,7 @@ + if (!gst_toc_entry_get_start_stop_times (entry, &start, &stop)) { + GST_DEBUG ("Chapter #%d (couldn't get times)", i); + } else { +- GST_DEBUG ("Chapter #%d (start: %li stop: %li)", i, start, stop); ++ GST_DEBUG ("Chapter #%d (start: %li stop: %li)", i, (long) start, (long) stop); + } + } + -- cgit v1.2.3 From 75e56aedf0f021df02f98fb3e07de83c6e3fd0e1 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Tue, 10 May 2016 21:20:49 +0200 Subject: gnu: thinkfan: Fix daemon path in init scripts. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/linux.scm (thinkfan): Fix daemon path in init scripts. Signed-off-by: Ludovic Courtès --- gnu/packages/linux.scm | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index fcea499227..550068156c 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2622,15 +2622,20 @@ (define-public thinkfan `("-DUSE_ATASMART:BOOL=ON") #:phases (modify-phases %standard-phases - ;; Install scripts for various foreign init systems. + ;; Install scripts for various foreign init systems. Also fix + ;; hard-coded path for daemon. (add-after 'install 'install-rc-scripts (lambda* (#:key outputs #:allow-other-keys) - (for-each (cute install-file <> - (string-append (assoc-ref outputs "out") - "/share/thinkfan")) - (find-files (string-append "../thinkfan-" ,version - "/rcscripts") - ".*")) + (let ((out (assoc-ref outputs "out")) + (files (find-files + (string-append "../thinkfan-" ,version "/rcscripts") + ".*"))) + (substitute* files + (("/usr/sbin/(\\$NAME|thinkfan)" _ name) + (string-append out "/sbin/" name))) + (for-each (cute install-file <> + (string-append out "/share/thinkfan")) + files)) #t))))) (inputs `(("libatasmart" ,libatasmart))) -- cgit v1.2.3 From 5d38aa082641ba99ff30e508393f33f6ca4789a1 Mon Sep 17 00:00:00 2001 From: Matthew Jordan Date: Wed, 11 May 2016 09:25:13 -0400 Subject: gnu: Add entr. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/entr.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. Co-authored-by: Ludovic Courtès --- gnu/local.mk | 1 + gnu/packages/entr.scm | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 gnu/packages/entr.scm diff --git a/gnu/local.mk b/gnu/local.mk index f2436edefc..5462b43a72 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -108,6 +108,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/enchant.scm \ gnu/packages/engineering.scm \ gnu/packages/enlightenment.scm \ + gnu/packages/entr.scm \ gnu/packages/fcitx.scm \ gnu/packages/feh.scm \ gnu/packages/figlet.scm \ diff --git a/gnu/packages/entr.scm b/gnu/packages/entr.scm new file mode 100644 index 0000000000..0e0f875267 --- /dev/null +++ b/gnu/packages/entr.scm @@ -0,0 +1,66 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Matthew Jordan +;;; Copyright © 2016 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages entr) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public entr + (package + (name "entr") + (version "3.5") + (source (origin + (method url-fetch) + (uri (string-append "http://entrproject.org/code/entr-" + version ".tar.gz")) + (sha256 + (base32 + "05k4jyjna0pr2dalwc1l1dhrcyk6pw7hbss7jl4ykwfadcs5br73")))) + (build-system gnu-build-system) + (arguments + `(#:test-target "test" + #:phases (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (setenv "CONFIG_SHELL" (which "bash")) + (setenv "CC" (which "gcc")) + (setenv "DESTDIR" (string-append out "/")) + (setenv "PREFIX" "") + (setenv "MANPREFIX" "man") + (zero? (system* "./configure"))))) + (add-before 'build 'remove-fhs-file-names + (lambda _ + ;; Use the tools available in $PATH. + (substitute* "entr.c" + (("/bin/cat") "cat") + (("/usr/bin/clear") "clear"))))))) + (home-page "http://entrproject.org/") + (synopsis "Run arbitrary commands when files change") + (description + "entr is a zero-configuration tool with no external build- or run-time +dependencies. The interface to entr is not only minimal, it aims to be simple +enough to create a new category of ad hoc automation. These micro-tests +reduce keystrokes, but more importantly they emphasize the utility of +automated checks.") + + ;; Per 'LICENSE', portability code under missing/ is under BSD-2. + (license isc))) -- cgit v1.2.3 From cf60e76a9503156a8c1047fa446525b28842f7e8 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 11 May 2016 18:24:53 +0200 Subject: gnu: libxkbcommon: Move to (gnu packages xdisorg). * gnu/packages/qt.scm (libxkbcommon): Move to... * gnu/packages/xdisorg.scm (libxkbcommon): ... here. New variable. * gnu/packages/wm.scm, gnu/packages/gnome.scm, gnu/packages/games.scm: Adjust accordingly. --- gnu/packages/games.scm | 1 + gnu/packages/gnome.scm | 1 - gnu/packages/qt.scm | 38 -------------------------------------- gnu/packages/wm.scm | 1 - gnu/packages/xdisorg.scm | 42 ++++++++++++++++++++++++++++++++++++++++-- 5 files changed, 41 insertions(+), 42 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index a298f03512..75f926edce 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -93,6 +93,7 @@ (define-module (gnu packages games) #:use-module (gnu packages xml) #:use-module (gnu packages tcl) #:use-module (gnu packages fribidi) + #:use-module (gnu packages xdisorg) #:use-module (guix build-system trivial) #:use-module (guix build-system gnu) #:use-module (guix build-system haskell) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 0fd1d5bb29..5169368562 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -93,7 +93,6 @@ (define-module (gnu packages gnome) #:use-module (gnu packages xml) #:use-module (gnu packages geeqie) #:use-module (gnu packages gl) - #:use-module (gnu packages qt) ; for libxkbcommon #:use-module (gnu packages compression) #:use-module (gnu packages texlive) #:use-module (gnu packages tls) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 7b2be4f4e9..097ec06d2a 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -56,44 +56,6 @@ (define-module (gnu packages qt) #:use-module (gnu packages xorg) #:use-module (gnu packages xml)) -(define-public libxkbcommon - (package - (name "libxkbcommon") - (version "0.5.0") - (source (origin - (method url-fetch) - (uri (string-append "http://xkbcommon.org/download/" name "-" - version ".tar.xz")) - (sha256 - (base32 - "176ii5dn2wh74q48sd8ac37ljlvgvp5f506glr96z6ibfhj7igch")))) - (build-system gnu-build-system) - (inputs - `(("libx11" ,libx11) - ("libxcb" ,libxcb) - ("xkeyboard-config" ,xkeyboard-config))) - (native-inputs - `(("bison" ,bison) - ("pkg-config" ,pkg-config))) - (arguments - `(#:configure-flags - (list (string-append "--with-xkb-config-root=" - (assoc-ref %build-inputs "xkeyboard-config") - "/share/X11/xkb") - (string-append "--with-x-locale-root=" - (assoc-ref %build-inputs "libx11") - "/share/X11/locale")))) - (home-page "http://xkbcommon.org/") - (synopsis "Library to handle keyboard descriptions") - (description "Xkbcommon is a library to handle keyboard descriptions, -including loading them from disk, parsing them and handling their -state. It is mainly meant for client toolkits, window systems, and other -system applications; currently that includes Wayland, kmscon, GTK+, Qt, -Clutter, and more. Despite the name, it is not currently used by anything -X11 (yet).") - (license (x11-style "file://COPYING" - "See 'COPYING' in the distribution.")))) - (define-public qt (package (name "qt") diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 694db4794a..1a0529c640 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -37,7 +37,6 @@ (define-module (gnu packages wm) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages xorg) #:use-module (gnu packages xdisorg) - #:use-module (gnu packages qt) #:use-module (gnu packages asciidoc) #:use-module (gnu packages xml) #:use-module (gnu packages m4) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 126e997673..e69e6d98d4 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -54,8 +54,8 @@ (define-module (gnu packages xdisorg) #:use-module (gnu packages guile) #:use-module (gnu packages xml) #:use-module (gnu packages gtk) - #:use-module (gnu packages qt) - #:use-module (gnu packages xorg)) + #:use-module (gnu packages xorg) + #:use-module (gnu packages bison)) ;; packages outside the x.org system proper @@ -122,6 +122,44 @@ (define-public xclip avoiding password prompts when X11 forwarding has already been setup.") (license license:gpl2+))) +(define-public libxkbcommon + (package + (name "libxkbcommon") + (version "0.5.0") + (source (origin + (method url-fetch) + (uri (string-append "http://xkbcommon.org/download/" name "-" + version ".tar.xz")) + (sha256 + (base32 + "176ii5dn2wh74q48sd8ac37ljlvgvp5f506glr96z6ibfhj7igch")))) + (build-system gnu-build-system) + (inputs + `(("libx11" ,libx11) + ("libxcb" ,libxcb) + ("xkeyboard-config" ,xkeyboard-config))) + (native-inputs + `(("bison" ,bison) + ("pkg-config" ,pkg-config))) + (arguments + `(#:configure-flags + (list (string-append "--with-xkb-config-root=" + (assoc-ref %build-inputs "xkeyboard-config") + "/share/X11/xkb") + (string-append "--with-x-locale-root=" + (assoc-ref %build-inputs "libx11") + "/share/X11/locale")))) + (home-page "http://xkbcommon.org/") + (synopsis "Library to handle keyboard descriptions") + (description "Xkbcommon is a library to handle keyboard descriptions, +including loading them from disk, parsing them and handling their +state. It is mainly meant for client toolkits, window systems, and other +system applications; currently that includes Wayland, kmscon, GTK+, Qt, +Clutter, and more. Despite the name, it is not currently used by anything +X11 (yet).") + (license (license:x11-style "file://COPYING" + "See 'COPYING' in the distribution.")))) + (define-public xdotool (package (name "xdotool") -- cgit v1.2.3 From de1d68a2955ab1934338bee185fdba6c8934bd6e Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 12 May 2016 09:28:14 +0800 Subject: gnu: aseprite: Fix build. * gnu/packages/game-development.scm (aseprite)[arguments]: Remove #:phases. --- gnu/packages/game-development.scm | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 86cbb2d41e..bc0051d4c6 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -374,15 +374,7 @@ (define-public aseprite "-DENABLE_UPDATER=0" ; no auto-updates (string-append "-DFREETYPE_INCLUDE_DIR=" (assoc-ref %build-inputs "freetype") - "/include/freetype2")) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-freetype-utils - (lambda _ - ;; Fix C preprocessor include directive. - (substitute* '("src/app/util/freetype_utils.cpp") - (("freetype/") "")) - #t))))) + "/include/freetype2")))) (native-inputs `(("pkg-config" ,pkg-config))) ;; TODO: Use a patched Allegro 4 that supports window resizing. This -- cgit v1.2.3 From e7806e6caad62e0bea6790271ac8db37f5168750 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 10 May 2016 16:15:06 -0400 Subject: gnu: libarchive: Fix CVE-2016-1541. * gnu/packages/backup.scm (libarchive)[replacement]: New field. (libarchive/fixed): New variable. * gnu/packages/patches/libarchive-CVE-2016-1541.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/backup.scm | 9 +++ .../patches/libarchive-CVE-2016-1541.patch | 67 ++++++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 gnu/packages/patches/libarchive-CVE-2016-1541.patch diff --git a/gnu/local.mk b/gnu/local.mk index 5462b43a72..871174b46f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -573,6 +573,7 @@ dist_patch_DATA = \ gnu/packages/patches/liba52-use-mtune-not-mcpu.patch \ gnu/packages/patches/libarchive-bsdtar-test.patch \ gnu/packages/patches/libarchive-CVE-2013-0211.patch \ + gnu/packages/patches/libarchive-CVE-2016-1541.patch \ gnu/packages/patches/libarchive-fix-lzo-test-case.patch \ gnu/packages/patches/libarchive-mtree-filename-length-fix.patch \ gnu/packages/patches/libbonobo-activation-test-race.patch \ diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index a7b48f1154..917bee78d9 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -136,6 +136,7 @@ (define-public hdup (define-public libarchive (package (name "libarchive") + (replacement libarchive/fixed) (version "3.1.2") (source (origin @@ -193,6 +194,14 @@ (define-public libarchive random access nor for in-place modification.") (license license:bsd-2))) +(define libarchive/fixed + (package + (inherit libarchive) + (source (origin + (inherit (package-source libarchive)) + (patches (cons (search-patch "libarchive-CVE-2016-1541.patch") + (origin-patches (package-source libarchive)))))))) + (define-public rdup (package (name "rdup") diff --git a/gnu/packages/patches/libarchive-CVE-2016-1541.patch b/gnu/packages/patches/libarchive-CVE-2016-1541.patch new file mode 100644 index 0000000000..6ac8773244 --- /dev/null +++ b/gnu/packages/patches/libarchive-CVE-2016-1541.patch @@ -0,0 +1,67 @@ +Fix CVE-2016-1541 (buffer overflow zip_read_mac_metadata) + +Taken from upstream source repository: +https://github.com/libarchive/libarchive/commit/d0331e8e5b05b475f20b1f3101fe1ad772d7e7e7 + +When reading OS X metadata entries in Zip archives that were stored +without compression, libarchive would use the uncompressed entry size +to allocate a buffer but would use the compressed entry size to limit +the amount of data copied into that buffer. Since the compressed +and uncompressed sizes are provided by data in the archive itself, +an attacker could manipulate these values to write data beyond +the end of the allocated buffer. + +This fix provides three new checks to guard against such +manipulation and to make libarchive generally more robust when +handling this type of entry: + 1. If an OS X metadata entry is stored without compression, + abort the entire archive if the compressed and uncompressed + data sizes do not match. + 2. When sanity-checking the size of an OS X metadata entry, + abort this entry if either the compressed or uncompressed + size is larger than 4MB. + 3. When copying data into the allocated buffer, check the copy + size against both the compressed entry size and uncompressed + entry size. +--- + libarchive/archive_read_support_format_zip.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +diff --git a/libarchive/archive_read_support_format_zip.c b/libarchive/archive_read_support_format_zip.c +index 0f8262c..0a0be96 100644 +--- a/libarchive/archive_read_support_format_zip.c ++++ b/libarchive/archive_read_support_format_zip.c +@@ -2778,6 +2778,11 @@ zip_read_mac_metadata(struct archive_read *a, struct archive_entry *entry, + + switch(rsrc->compression) { + case 0: /* No compression. */ ++ if (rsrc->uncompressed_size != rsrc->compressed_size) { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, ++ "Malformed OS X metadata entry: inconsistent size"); ++ return (ARCHIVE_FATAL); ++ } + #ifdef HAVE_ZLIB_H + case 8: /* Deflate compression. */ + #endif +@@ -2798,6 +2803,12 @@ zip_read_mac_metadata(struct archive_read *a, struct archive_entry *entry, + (intmax_t)rsrc->uncompressed_size); + return (ARCHIVE_WARN); + } ++ if (rsrc->compressed_size > (4 * 1024 * 1024)) { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, ++ "Mac metadata is too large: %jd > 4M bytes", ++ (intmax_t)rsrc->compressed_size); ++ return (ARCHIVE_WARN); ++ } + + metadata = malloc((size_t)rsrc->uncompressed_size); + if (metadata == NULL) { +@@ -2836,6 +2847,8 @@ zip_read_mac_metadata(struct archive_read *a, struct archive_entry *entry, + bytes_avail = remaining_bytes; + switch(rsrc->compression) { + case 0: /* No compression. */ ++ if ((size_t)bytes_avail > metadata_bytes) ++ bytes_avail = metadata_bytes; + memcpy(mp, p, bytes_avail); + bytes_used = (size_t)bytes_avail; + metadata_bytes -= bytes_used; -- cgit v1.2.3 From a8cdc49e59fb988f31fa5dfda9e805ccc3461c5b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 12 May 2016 06:52:18 +0300 Subject: gnu: openvpn: Update to 2.3.9. * gnu/packages/vpn.scm (openvpn): Update to 2.3.9. --- gnu/packages/vpn.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index d7c2616dfe..4be4a1d7dc 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2013, 2016 Ludovic Courtès ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2015 Jeff Mickey +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -148,7 +149,7 @@ (define-public openconnect (define-public openvpn (package (name "openvpn") - (version "2.3.6") + (version "2.3.9") (source (origin (method url-fetch) (uri (string-append @@ -156,7 +157,7 @@ (define-public openvpn version ".tar.xz")) (sha256 (base32 - "1v8h2nshxnvn2zyr08vzkfby1kc7ma6bi0s6hix389cj9krjxbmd")))) + "1hfwmdsp7s34qx34qgwrpp89h30744lbsks6y619cdh27bpnpwaj")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--enable-iproute2=yes"))) -- cgit v1.2.3 From 7e19194d07f336dc044052d44d6a49076131801d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 12 May 2016 06:59:49 +0300 Subject: gnu: tinc: Update to 1.0.28. --- gnu/packages/vpn.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index 4be4a1d7dc..477b05189c 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -179,14 +179,14 @@ (define-public openvpn (define-public tinc (package (name "tinc") - (version "1.0.26") + (version "1.0.28") (source (origin (method url-fetch) (uri (string-append "http://tinc-vpn.org/packages/" name "-" version ".tar.gz")) (sha256 (base32 - "08ds8s32cjslms1q227ihd6jz35583v378ij4pknfa5xngfijhrb")))) + "0i5kx3hza359nclyhb60kxlzqyx0phmg175350hww28g6scjcl0b")))) (build-system gnu-build-system) (arguments '(#:configure-flags -- cgit v1.2.3 From dbffd7d775627ee3e39420761ca1abf0e8570a4c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 12 May 2016 08:51:10 +0300 Subject: gnu: nmap: Update to 7.12. * gnu/packages/admin.scm (nmap): Update to 7.12. --- gnu/packages/admin.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 303e9978a5..633606e840 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1569,14 +1569,14 @@ (define-public audit (define-public nmap (package (name "nmap") - (version "7.11") + (version "7.12") (source (origin (method url-fetch) (uri (string-append "https://nmap.org/dist/nmap-" version ".tar.bz2")) (sha256 (base32 - "0jlmq1w0gjqpa7qa523kdj73ndm1xzww2wjvb94hxh6yalargyhk")) + "014vagh9ak10hidwzp9s6g30y5h5fhsh8wykcnc1hnn9hwm0ipv3")) (modules '((guix build utils))) (snippet '(map delete-file-recursively -- cgit v1.2.3 From f6292baf922da363351066a7d280722068b246e4 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Thu, 12 May 2016 01:07:06 -0500 Subject: gnu: claws-mail: Add shared-mime-info input. * gnu/packages/mail.scm (claws-mail)[inputs]: Add shared-mime-info. [arguments]: Add 'patch-mime' phase. --- gnu/packages/mail.scm | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 13749aa1f8..b127419d7b 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2014 Julien Lepiller ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015 Paul van der Walt -;;; Copyright © 2015 Eric Bavier +;;; Copyright © 2015, 2016 Eric Bavier ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015, 2016 Efraim Flashner ;;; Copyright © 2016 Christopher Allan Webber @@ -605,10 +605,18 @@ (define-public claws-mail ("libsm" ,libsm) ("libxml2" ,libxml2) ("perl" ,perl) - ("python-2" ,python-2))) + ("python-2" ,python-2) + ("mime-info" ,shared-mime-info))) (arguments '(#:configure-flags - '("--enable-gnutls" "--enable-pgpmime-plugin" "--enable-enchant"))) + '("--enable-gnutls" "--enable-pgpmime-plugin" "--enable-enchant") + #:phases (modify-phases %standard-phases + (add-before 'build 'patch-mime + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/procmime.c" + (("/usr/share/mime/globs") + (string-append (assoc-ref inputs "mime-info") + "/share/mime/globs")))))))) (synopsis "GTK-based Email client") (description "Claws-Mail is an email client (and news reader) based on GTK+. The -- cgit v1.2.3 From 0573a923def01e54bf104e0015ade44ab42f694f Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Wed, 16 Mar 2016 10:12:47 -0500 Subject: gnu: Move asciidoc and doxygen to new module. * gnu/packages/asciidoc.scm (asciidoc): Move this... * gnu/packages/doxygen.scm (doxygen): ...and this... * gnu/packages/documentation.scm: ...to here. New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add accordingly. --- gnu/local.mk | 3 +- gnu/packages/asciidoc.scm | 52 ------------------------ gnu/packages/documentation.scm | 89 ++++++++++++++++++++++++++++++++++++++++++ gnu/packages/doxygen.scm | 59 ---------------------------- 4 files changed, 90 insertions(+), 113 deletions(-) delete mode 100644 gnu/packages/asciidoc.scm create mode 100644 gnu/packages/documentation.scm delete mode 100644 gnu/packages/doxygen.scm diff --git a/gnu/local.mk b/gnu/local.mk index 871174b46f..8012fa32b3 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -40,7 +40,6 @@ GNU_SYSTEM_MODULES = \ gnu/packages/anthy.scm \ gnu/packages/apl.scm \ gnu/packages/apr.scm \ - gnu/packages/asciidoc.scm \ gnu/packages/aspell.scm \ gnu/packages/attr.scm \ gnu/packages/audacity.scm \ @@ -98,7 +97,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/dns.scm \ gnu/packages/docbook.scm \ gnu/packages/docker.scm \ - gnu/packages/doxygen.scm \ + gnu/packages/documentation.scm \ gnu/packages/dunst.scm \ gnu/packages/dvtm.scm \ gnu/packages/ebook.scm \ diff --git a/gnu/packages/asciidoc.scm b/gnu/packages/asciidoc.scm deleted file mode 100644 index 5bc5cfa7f9..0000000000 --- a/gnu/packages/asciidoc.scm +++ /dev/null @@ -1,52 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 Ludovic Courtès -;;; -;;; 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 . - -(define-module (gnu packages asciidoc) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (gnu packages python) - #:use-module (guix build-system gnu) - #:autoload (gnu packages zip) (unzip)) - -(define-public asciidoc - (package - (name "asciidoc") - (version "8.6.9") - (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/asciidoc/asciidoc-" - version ".tar.gz")) - (sha256 - (base32 - "1w71nk527lq504njmaf0vzr93pgahkgzzxzglrq6bay8cw2rvnvq")))) - (build-system gnu-build-system) - (arguments '(#:tests? #f)) ; no 'check' target - (inputs `(("python" ,python-2))) - (home-page "http://www.methods.co.nz/asciidoc/") - (synopsis "Text-based document generation system") - (description - "AsciiDoc is a text document format for writing notes, documentation, -articles, books, ebooks, slideshows, web pages, man pages and blogs. -AsciiDoc files can be translated to many formats including HTML, PDF, -EPUB, man page. - -AsciiDoc is highly configurable: both the AsciiDoc source file syntax and -the backend output markups (which can be almost any type of SGML/XML -markup) can be customized and extended by the user.") - (license gpl2+))) diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm new file mode 100644 index 0000000000..567669a3b6 --- /dev/null +++ b/gnu/packages/documentation.scm @@ -0,0 +1,89 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Ludovic Courtès +;;; Copyright © 2014, 2016 Andreas Enge +;;; +;;; 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 . + +(define-module (gnu packages documentation) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) + #:use-module (gnu packages) + #:use-module (gnu packages python) + #:use-module (gnu packages bison) + #:use-module (gnu packages flex) + #:use-module (gnu packages graphviz) + #:use-module (gnu packages perl) + #:use-module (gnu packages xml) + #:autoload (gnu packages zip) (unzip)) + +(define-public asciidoc + (package + (name "asciidoc") + (version "8.6.9") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/asciidoc/asciidoc-" + version ".tar.gz")) + (sha256 + (base32 + "1w71nk527lq504njmaf0vzr93pgahkgzzxzglrq6bay8cw2rvnvq")))) + (build-system gnu-build-system) + (arguments '(#:tests? #f)) ; no 'check' target + (inputs `(("python" ,python-2))) + (home-page "http://www.methods.co.nz/asciidoc/") + (synopsis "Text-based document generation system") + (description + "AsciiDoc is a text document format for writing notes, documentation, +articles, books, ebooks, slideshows, web pages, man pages and blogs. +AsciiDoc files can be translated to many formats including HTML, PDF, +EPUB, man page. + +AsciiDoc is highly configurable: both the AsciiDoc source file syntax and +the backend output markups (which can be almost any type of SGML/XML +markup) can be customized and extended by the user.") + (license gpl2+))) + +(define-public doxygen + (package + (name "doxygen") + (version "1.8.11") + (source (origin + (method url-fetch) + (uri (string-append "http://ftp.stack.nl/pub/users/dimitri/" + name "-" version ".src.tar.gz")) + (sha256 + (base32 + "0ja02pm3fpfhc5dkry00kq8mn141cqvdqqpmms373ncbwi38pl35")) + (patches (search-patches "doxygen-test.patch")))) + (build-system cmake-build-system) + (native-inputs + `(("bison" ,bison) + ("flex" ,flex) + ("libxml2" ,libxml2) ; provides xmllint for the tests + ("python" ,python-2))) ; for creating the documentation + (arguments + `(#:test-target "tests")) + (home-page "http://www.stack.nl/~dimitri/doxygen/") + (synopsis "Generate documentation from annotated sources") + (description "Doxygen is the de facto standard tool for generating +documentation from annotated C++ sources, but it also supports other popular +programming languages such as C, Objective-C, C#, PHP, Java, Python, +IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl, +and to some extent D.") + (license gpl3+))) diff --git a/gnu/packages/doxygen.scm b/gnu/packages/doxygen.scm deleted file mode 100644 index 8e4cbb936c..0000000000 --- a/gnu/packages/doxygen.scm +++ /dev/null @@ -1,59 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2016 Andreas Enge -;;; -;;; 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 . - -(define-module (gnu packages doxygen) - #:use-module ((guix licenses) #:select (gpl3+)) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system cmake) - #:use-module (gnu packages) - #:use-module (gnu packages bison) - #:use-module (gnu packages flex) - #:use-module (gnu packages graphviz) - #:use-module (gnu packages perl) - #:use-module (gnu packages xml) - #:use-module (gnu packages python)) - -(define-public doxygen - (package - (name "doxygen") - (version "1.8.11") - (source (origin - (method url-fetch) - (uri (string-append "http://ftp.stack.nl/pub/users/dimitri/" - name "-" version ".src.tar.gz")) - (sha256 - (base32 - "0ja02pm3fpfhc5dkry00kq8mn141cqvdqqpmms373ncbwi38pl35")) - (patches (search-patches "doxygen-test.patch")))) - (build-system cmake-build-system) - (native-inputs - `(("bison" ,bison) - ("flex" ,flex) - ("libxml2" ,libxml2) ; provides xmllint for the tests - ("python" ,python-2))) ; for creating the documentation - (arguments - `(#:test-target "tests")) - (home-page "http://www.stack.nl/~dimitri/doxygen/") - (synopsis "Generate documentation from annotated sources") - (description "Doxygen is the de facto standard tool for generating -documentation from annotated C++ sources, but it also supports other popular -programming languages such as C, Objective-C, C#, PHP, Java, Python, -IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl, -and to some extent D.") - (license gpl3+))) -- cgit v1.2.3 From b4e655e5f1ce3064c805f1ff4c0b6693d52814e0 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Wed, 16 Mar 2016 10:18:21 -0500 Subject: gnu: Add doc++. * gnu/packages/documentation.scm (doc++): New variable. * gnu/packages/patches/doc++-include-directives.patch, gnu/packages/patches/doc++-segfault-fix.patch: New files. * gnu-system.am (dist_patch_DATA): Add them. --- gnu/local.mk | 2 + gnu/packages/documentation.scm | 28 +++ .../patches/doc++-include-directives.patch | 224 +++++++++++++++++++++ gnu/packages/patches/doc++-segfault-fix.patch | 169 ++++++++++++++++ 4 files changed, 423 insertions(+) create mode 100644 gnu/packages/patches/doc++-include-directives.patch create mode 100644 gnu/packages/patches/doc++-segfault-fix.patch diff --git a/gnu/local.mk b/gnu/local.mk index 8012fa32b3..d243a1c635 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -458,6 +458,8 @@ dist_patch_DATA = \ gnu/packages/patches/dico-libtool-deterministic.patch \ gnu/packages/patches/diffutils-gets-undeclared.patch \ gnu/packages/patches/dfu-programmer-fix-libusb.patch \ + gnu/packages/patches/doc++-include-directives.patch \ + gnu/packages/patches/doc++-segfault-fix.patch \ gnu/packages/patches/doxygen-test.patch \ gnu/packages/patches/duplicity-piped-password.patch \ gnu/packages/patches/duplicity-test_selection-tmp.patch \ diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm index 567669a3b6..17a69e2c25 100644 --- a/gnu/packages/documentation.scm +++ b/gnu/packages/documentation.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Ludovic Courtès ;;; Copyright © 2014, 2016 Andreas Enge +;;; Copyright © 2016 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,6 +29,7 @@ (define-module (gnu packages documentation) #:use-module (gnu packages bison) #:use-module (gnu packages flex) #:use-module (gnu packages graphviz) + #:use-module (gnu packages gettext) #:use-module (gnu packages perl) #:use-module (gnu packages xml) #:autoload (gnu packages zip) (unzip)) @@ -87,3 +89,29 @@ (define-public doxygen IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl, and to some extent D.") (license gpl3+))) + +(define-public doc++ + (package + (name "doc++") + (version "3.4.10") + (source (origin + (method url-fetch) + (uri (string-append "https://sourceforge.net/projects/docpp/" + "files/doc++-" version ".tar.gz")) + (sha256 + (base32 + "0i37zlxl8g352s4hzpdx0657k5x3czh3xcsfr27irc708gb277pn")) + (patches (search-patches "doc++-include-directives.patch" + "doc++-segfault-fix.patch")))) + (build-system gnu-build-system) + (native-inputs + `(("flex" ,flex) + ("gettext" ,gnu-gettext))) + (home-page "http://docpp.sourceforge.net/") + (synopsis "Documentation system for C, C++, IDL, and Java") + (description + "DOC++ is a documentation system for C, C++, IDL, and Java. It can +generate both TeX output for high-quality hardcopies or HTML output for online +brwosing. The documentation is extracted directly from the C/C++/IDL source +or Java class files.") + (license gpl2+))) diff --git a/gnu/packages/patches/doc++-include-directives.patch b/gnu/packages/patches/doc++-include-directives.patch new file mode 100644 index 0000000000..a59a907c3b --- /dev/null +++ b/gnu/packages/patches/doc++-include-directives.patch @@ -0,0 +1,224 @@ +Adapted from https://sourceforge.net/p/docpp/patches/1/ + +--- doc++-3.4.10/src/comment.ll 2000-06-24 18:50:23.000000000 +0200 ++++ doc++-3.4.10/src/comment.ll 2012-09-17 11:14:50.744922841 +0200 +@@ -24,7 +24,7 @@ + + #include + #include +-#include ++#include + #include + #include + +--- doc++-3.4.10/src/cpp.ll 2002-05-09 08:11:14.000000000 +0200 ++++ doc++-3.4.10/src/cpp.ll 2012-09-17 11:15:21.184333236 +0200 +@@ -26,7 +26,7 @@ + + #include + #include +-#include ++#include + #include + #include + +--- doc++-3.4.10/src/datahashtable.h 2000-08-27 21:44:34.000000000 +0200 ++++ doc++-3.4.10/src/datahashtable.h 2012-09-17 11:22:59.442589960 +0200 +@@ -26,11 +26,13 @@ + #define _DATAHASHTABLE_H + + #include +-#include ++#include + #include + + #include "McDArray.h" + ++using namespace std; ++ + /* This should be a private subclass of #DataHashTable#. However, since cfront + is not able to compile this constrution, we had move the class to global + scope. +--- doc++-3.4.10/src/doc2dbsgml.ll 2002-05-09 08:11:14.000000000 +0200 ++++ doc++-3.4.10/src/doc2dbsgml.ll 2012-09-17 11:20:49.077259414 +0200 +@@ -22,8 +22,8 @@ + + %{ + #include +-#include +-#include ++#include ++#include + #include + #include + #include +@@ -36,6 +36,8 @@ + #undef YY_INPUT + #define YY_INPUT(buf, result, max_size) result = yyread(buf, max_size); + ++using namespace std; ++ + static Entry* current; + static int inPos; + static int lastContext; +--- doc++-3.4.10/src/doc2dbxml.ll 2002-05-09 08:11:14.000000000 +0200 ++++ doc++-3.4.10/src/doc2dbxml.ll 2012-09-17 11:20:22.264831159 +0200 +@@ -25,8 +25,8 @@ + + %{ + #include +-#include +-#include ++#include ++#include + #include + #include + #include +@@ -39,6 +39,8 @@ + #undef YY_INPUT + #define YY_INPUT(buf, result, max_size) result = yyread(buf, max_size); + ++using namespace std; ++ + static Entry* current; + static int inPos; + static int lastContext; +--- doc++-3.4.10/src/doc2html.ll 2000-07-17 23:17:24.000000000 +0200 ++++ doc++-3.4.10/src/doc2html.ll 2012-09-17 11:22:40.354469631 +0200 +@@ -29,6 +29,8 @@ + #include "doc.h" + #include "nametable.h" + ++using namespace std; ++ + extern NameTable gifs; + + #define YY_DECL int yylex() +--- doc++-3.4.10/src/doc2tex.ll 2000-11-05 17:21:16.000000000 +0100 ++++ doc++-3.4.10/src/doc2tex.ll 2012-09-17 11:23:22.210701715 +0200 +@@ -23,8 +23,8 @@ + + %{ + #include +-#include +-#include ++#include ++#include + #include + #include + #include +@@ -38,6 +38,8 @@ + #undef YY_INPUT + #define YY_INPUT(buf, result, max_size) result = yyread(buf, max_size); + ++using namespace std; ++ + static Entry* current; + static int inPos; + static int lastContext; +--- doc++-3.4.10/src/doc.ll 2000-09-17 21:41:17.000000000 +0200 ++++ doc++-3.4.10/src/doc.ll 2012-09-17 11:15:37.068009454 +0200 +@@ -23,8 +23,8 @@ + + %{ + #include +-#include +-#include ++#include ++#include + #include + #include + #include +--- doc++-3.4.10/src/equate.cc 2002-05-02 21:13:10.000000000 +0200 ++++ doc++-3.4.10/src/equate.cc 2012-09-17 11:25:42.850669366 +0200 +@@ -23,9 +23,9 @@ + + #include "config.h" + +-#include ++#include + #include +-#include ++#include + #include + #include + +--- doc++-3.4.10/src/html.cc 2001-02-17 07:34:49.000000000 +0100 ++++ doc++-3.4.10/src/html.cc 2012-09-17 11:24:07.978824681 +0200 +@@ -31,7 +31,7 @@ + #include + #endif + #include +-#include ++#include + #include + #include + #include +--- doc++-3.4.10/src/java.ll 2001-11-25 18:04:12.000000000 +0100 ++++ doc++-3.4.10/src/java.ll 2012-09-17 11:24:19.138834603 +0200 +@@ -26,7 +26,7 @@ + + #include + #include +-#include ++#include + #include + + #include "doc.h" +--- doc++-3.4.10/src/main.cc 2002-05-09 08:11:14.000000000 +0200 ++++ doc++-3.4.10/src/main.cc 2012-09-17 11:25:30.650719070 +0200 +@@ -25,7 +25,7 @@ + #include "config.h" + + #include +-#include ++#include + #include + #include + #include +--- doc++-3.4.10/src/nametable.cc 2000-04-08 23:11:54.000000000 +0200 ++++ doc++-3.4.10/src/nametable.cc 2012-09-17 11:25:58.894591128 +0200 +@@ -22,7 +22,7 @@ + */ + + #include +-#include ++#include + #include + #include + +--- doc++-3.4.10/src/nametable.h 2000-04-08 23:11:56.000000000 +0200 ++++ doc++-3.4.10/src/nametable.h 2012-09-17 11:22:07.826207198 +0200 +@@ -25,7 +25,7 @@ + #define _NAME_TABLE_H + + #include +-#include ++#include + + #include "datahashtable.h" + +--- doc++-3.4.10/src/php.ll 2001-02-16 23:34:47.000000000 +0100 ++++ doc++-3.4.10/src/php.ll 2012-09-17 11:25:18.582759801 +0200 +@@ -23,7 +23,7 @@ + %{ + #include + #include +-#include ++#include + #include + + #include "doc.h" +--- doc++-3.4.10/src/tex2gif.cc 2001-08-07 20:55:40.000000000 +0200 ++++ doc++-3.4.10/src/tex2gif.cc 2012-09-17 11:26:06.698547836 +0200 +@@ -21,8 +21,8 @@ + Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +-#include +-#include ++#include ++#include + #include + #include + diff --git a/gnu/packages/patches/doc++-segfault-fix.patch b/gnu/packages/patches/doc++-segfault-fix.patch new file mode 100644 index 0000000000..bad34c814e --- /dev/null +++ b/gnu/packages/patches/doc++-segfault-fix.patch @@ -0,0 +1,169 @@ +Adapted from https://sources.debian.net/data/main/d/doc%2B%2B/3.4.10-3.4/debian/patches/segfault_fix.patch + +--- doc++-3.4.10/src/McDArray.h 2000-07-30 12:40:48.000000000 +0200 ++++ doc++-3.4.10/src/McDArray.h 2005-05-10 15:02:06.000000000 +0200 +@@ -80,9 +80,14 @@ + McDArray(const McDArray& old) : memFactor(old.memFactor), + thesize(old.thesize), themax(old.themax) + { +- data = (T*)malloc(themax * sizeof(T)); +- if(thesize) +- memcpy(data, old.data, thesize * sizeof(T)); ++ if (themax) ++ { ++ data = (T*)malloc(themax * sizeof(T)); ++ if(thesize) ++ memcpy(data, old.data, thesize * sizeof(T)); ++ } ++ else ++ data = 0; + assert(isConsistent()); + } + +--- doc++-3.4.10/src/McDirectory.cc 2000-03-14 22:17:36.000000000 +0100 ++++ doc++-3.4.10/src/McDirectory.cc 2005-05-10 15:02:18.000000000 +0200 +@@ -23,12 +23,13 @@ + */ + + #include "McDirectory.h" +-#include "McSorter.h" + #include "McString.h" + #include "doc.h" + + #include + ++#include ++ + #ifdef WIN32 + #include + #ifdef __BORLANDC__ +@@ -62,7 +63,7 @@ + FindClose(searchHandle); + StringCompare comp; + if(list.size()) +- sort((char **)list, list.size(), comp, 0); ++ std::sort((char **)list, (char **)list + list.size(), comp); + return 0; + } + +@@ -107,7 +108,7 @@ + closedir(dir); + StringCompare comp; + if(list.size()) +- sort((char **)list, list.size(), comp, 0); ++ std::sort((char **)list, (char **)list + list.size(), comp); + return list.size(); + } + +--- doc++-3.4.10/src/McDirectory.h 2000-06-28 21:54:58.000000000 +0200 ++++ doc++-3.4.10/src/McDirectory.h 2005-05-10 15:02:18.000000000 +0200 +@@ -59,9 +59,9 @@ + class StringCompare + { + public: +- int operator()(const char *t1, const char *t2) ++ bool operator()(const char *t1, const char *t2) + { +- return strcmp(t1, t2); ++ return strcmp(t1, t2) < 0; + } + }; + }; +--- doc++-3.4.10/src/html.cc 2001-02-17 07:34:49.000000000 +0100 ++++ doc++-3.4.10/src/html.cc 2005-05-10 15:02:18.000000000 +0200 +@@ -38,9 +38,10 @@ + #include + #include + ++#include ++ + #include "McDirectory.h" + #include "McHashTable.h" +-#include "McSorter.h" + #include "classgraph.h" + #include "doc.h" + #include "gifs.h" +@@ -314,9 +315,11 @@ + virtual void writeMember(Entry *e, bool links, bool withSub = true); + class EntryCompare { + public: +- int operator()(const MemberWriterListEntry& l1, const MemberWriterListEntry& l2) ++ bool operator()(const MemberWriterListEntry& l1, const MemberWriterListEntry& l2) + { +- return strcmp(l1.entry->fullName.c_str(), l2.entry->fullName.c_str()); ++ const char *s1 = l1.entry->fullName.c_str(); ++ const char *s2 = l2.entry->fullName.c_str(); ++ return strcmp(s1, s2) < 0; + } + }; + public: +@@ -324,7 +327,7 @@ + { + EntryCompare comp; + if(list.size()) +- ::sort((MemberWriterListEntry *)list, list.size(), comp, 0); ++ std::sort((MemberWriterListEntry *)list, (MemberWriterListEntry *)list + list.size(), comp); + } + virtual void startList(FILE *f, char *heading, bool withLinks); + virtual void addMember(Entry *e, bool links, bool withSub = true) +@@ -376,7 +379,7 @@ + int lp; + + if(list.size() > 1) +- ::sort((TOCListEntry *)list, list.size(), comp, 0); ++ std::sort((TOCListEntry *)list, (TOCListEntry *)list + list.size(), comp); + + // Sort subsections + for(lp = 0; lp < list.size(); lp++) +@@ -385,9 +388,9 @@ + } + class EntryCompare { + public: +- int operator()(TOCListEntry& l1, TOCListEntry& l2) ++ bool operator()(const TOCListEntry& l1, const TOCListEntry& l2) + { +- return strcmp(l1.name, l2.name); ++ return strcmp(l1.name, l2.name) < 0; + } + }; + void addEntry(Entry *entry, TOClist *tl); +@@ -487,7 +490,7 @@ + + for(i = 0; i < list.size(); i++) + if(list[i].tl) +- free(list[i].tl); ++ delete list[i].tl; + } + + class HIERlist; +@@ -509,7 +512,7 @@ + int i; + + if(list.size() > 1) +- ::sort((HIERListEntry *)list, list.size(), comp, 0); ++ std::sort((HIERListEntry *)list, (HIERListEntry *)list + list.size(), comp); + + // Sort subentries + for(i = 0; i < list.size(); i++) +@@ -519,9 +522,9 @@ + class EntryCompare + { + public: +- int operator()(HIERListEntry& l1, HIERListEntry& l2) ++ bool operator()(const HIERListEntry& l1, const HIERListEntry& l2) + { +- return strcmp(l1.name, l2.name); ++ return strcmp(l1.name, l2.name) < 0; + } + }; + void addEntry(Entry *entry, HIERlist *hl); +--- doc++-3.4.10/src/readfiles.ll 2001-11-25 18:04:48.000000000 +0100 ++++ doc++-3.4.10/src/readfiles.ll 2005-05-10 15:02:18.000000000 +0200 +@@ -28,7 +28,6 @@ + #include + + #include "McDirectory.h" +-#include "McSorter.h" + #include "McString.h" + #include "doc.h" + #include "nametable.h" -- cgit v1.2.3 From 528bb46436be39a4f4d3e7b3e908c34e92cca5f8 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Thu, 17 Mar 2016 09:15:18 -0500 Subject: gnu: Add HYPRE. * gnu/packages/maths.scm (hypre, hypre-openmpi): New variables. * gnu/packages/patches/hypre-doc-tables.patch, gnu/packages/patches/hypre-ldflags.patch: New files. * gnu-system.am (dist_patch_DATA): Add them. --- gnu/local.mk | 2 + gnu/packages/maths.scm | 115 ++++++++++++++++++++++++++++ gnu/packages/patches/hypre-doc-tables.patch | 25 ++++++ gnu/packages/patches/hypre-ldflags.patch | 9 +++ 4 files changed, 151 insertions(+) create mode 100644 gnu/packages/patches/hypre-doc-tables.patch create mode 100644 gnu/packages/patches/hypre-ldflags.patch diff --git a/gnu/local.mk b/gnu/local.mk index d243a1c635..76d596de53 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -535,6 +535,8 @@ dist_patch_DATA = \ gnu/packages/patches/hop-linker-flags.patch \ gnu/packages/patches/hydra-automake-1.15.patch \ gnu/packages/patches/hydra-disable-darcs-test.patch \ + gnu/packages/patches/hypre-doc-tables.patch \ + gnu/packages/patches/hypre-ldflags.patch \ gnu/packages/patches/icecat-avoid-bundled-includes.patch \ gnu/packages/patches/icecat-re-enable-DHE-cipher-suites.patch \ gnu/packages/patches/icecat-update-bundled-graphite2.patch \ diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 9ba7138f88..dc01b59d68 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -46,6 +46,7 @@ (define-module (gnu packages maths) #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages curl) + #:use-module (gnu packages documentation) #:use-module (gnu packages elf) #:use-module (gnu packages flex) #:use-module (gnu packages fltk) @@ -65,6 +66,7 @@ (define-module (gnu packages maths) #:use-module (gnu packages m4) #:use-module (gnu packages mpi) #:use-module (gnu packages multiprecision) + #:use-module (gnu packages netpbm) #:use-module (gnu packages pcre) #:use-module (gnu packages popt) #:use-module (gnu packages perl) @@ -2158,3 +2160,116 @@ (define-public xaos set.") (home-page "http://www.gnu.org/software/xaos/") (license license:gpl2+))) + +(define-public hypre + (package + (name "hypre") + (version "2.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/LLNL/hypre/archive/" + "v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0q69ia0jivzcr8p049dn3mg8yjpn6nwq4sw9iqac8vr63vi54l6m")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove use of __DATE__ and __TIME__ for reproducibility; + ;; substitute the tarball creation time. + (substitute* "src/utilities/HYPRE_utilities.h" + (("Date Compiled: .*$") + "Date Compiled: Mar 28 2016 20:19:59 +0000\"\n")) + #t)))) + (build-system gnu-build-system) + (outputs '("out" ;6.1 MiB of headers and libraries + "doc")) ;4.8 MiB of documentation + (native-inputs + `(("doc++" ,doc++) + ("netpbm" ,netpbm) + ("texlive" ,texlive) ;full package required for fonts + ("ghostscript" ,ghostscript))) + (inputs + `(("blas" ,openblas) + ("lapack" ,lapack))) + (arguments + `(#:modules ((srfi srfi-1) + ,@%gnu-build-system-modules) + #:configure-flags '("--enable-shared" + "--disable-fortran" + "--without-MPI" + "--with-openmp" + "--with-fei" + "--with-lapack" + "--with-blas") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir-src + (lambda _ (chdir "src"))) + (replace 'configure + (lambda* (#:key build target configure-flags + #:allow-other-keys #:rest args) + (let* ((configure (assoc-ref %standard-phases 'configure))) + (apply configure + (append args + (list #:configure-flags + (cons (string-append + "--host=" (or target build)) + configure-flags))))))) + (add-after 'build 'build-docs + (lambda _ + (zero? (system* "make" "-Cdocs" "pdf" "html")))) + (replace 'check + (lambda _ + (setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/hypre/lib")) + (setenv "PATH" (string-append "." ":" (getenv "PATH"))) + (and (system* "make" "check" "CHECKRUN=") + (fold (lambda (filename result) + (and result + (let ((size (stat:size (stat filename)))) + (when (not (zero? size)) + (format #t "~a size ~d; error indication~%" + filename size)) + (zero? size)))) + #t + (find-files "test" ".*\\.err$"))))) + (add-after 'install 'install-docs + (lambda* (#:key outputs #:allow-other-keys) + ;; Custom install because docs/Makefile doesn't honor ${docdir}. + (let* ((doc (assoc-ref outputs "doc")) + (docdir (string-append doc "/share/doc/hypre-" ,version))) + (mkdir-p docdir) + (with-directory-excursion "docs" + (for-each (lambda (base) + (install-file (string-append base ".pdf") docdir) + (copy-recursively base docdir)) ;html docs + '("HYPRE_usr_manual" + "HYPRE_ref_manual"))) + #t)))))) + (home-page "http://www.llnl.gov/casc/hypre/") + (synopsis "Library of solvers and preconditioners for linear equations") + (description + "HYPRE is a software library of high performance preconditioners and +solvers for the solution of large, sparse linear systems of equations. It +features multigrid solvers for both structured and unstructured grid +problems.") + (license license:lgpl2.1))) + +(define-public hypre-openmpi + (package (inherit hypre) + (name "hypre-openmpi") + (inputs + `(("mpi" ,openmpi) + ,@(package-inputs hypre))) + (arguments + (substitute-keyword-arguments (package-arguments hypre) + ((#:configure-flags flags) + ``("--with-MPI" + ,@(delete "--without-MPI" ,flags))))) + (synopsis "Parallel solvers and preconditioners for linear equations") + (description + "HYPRE is a software library of high performance preconditioners and +solvers for the solution of large, sparse linear systems of equations on +parallel computers. It features parallel multigrid solvers for both +structured and unstructured grid problems."))) diff --git a/gnu/packages/patches/hypre-doc-tables.patch b/gnu/packages/patches/hypre-doc-tables.patch new file mode 100644 index 0000000000..6a852ee78e --- /dev/null +++ b/gnu/packages/patches/hypre-doc-tables.patch @@ -0,0 +1,25 @@ +Fixes doc++'s treatment of tabular within a parameter block. + +From commit 883925f8a at http://github.com/LLNL/hypre + +--- hypre-2.10.1/src/parcsr_ls/HYPRE_parcsr_ls.h 2015-12-04 22:12:19.000000000 -0600 ++++ hypre-2.10.1/src/parcsr_ls/HYPRE_parcsr_ls.h 2016-03-16 09:02:58.547501336 -0500 +@@ -1154,8 +1154,6 @@ + * Set the symmetry parameter for the + * ParaSails preconditioner. + * +- * @param solver [IN] Preconditioner object for which to set symmetry parameter. +- * @param sym [IN] Value of the symmetry parameter: + * \begin{tabular}{|c|l|} \hline + * value & meaning \\ \hline + * 0 & nonsymmetric and/or indefinite problem, and nonsymmetric preconditioner\\ +@@ -1163,6 +1161,9 @@ + * 2 & nonsymmetric, definite problem, and SPD (factored) preconditioner \\ + * \hline + * \end{tabular} ++ * ++ * @param solver [IN] Preconditioner object for which to set symmetry parameter. ++ * @param sym [IN] Value of the symmetry parameter: + **/ + HYPRE_Int HYPRE_ParaSailsSetSym(HYPRE_Solver solver, + HYPRE_Int sym); diff --git a/gnu/packages/patches/hypre-ldflags.patch b/gnu/packages/patches/hypre-ldflags.patch new file mode 100644 index 0000000000..a94fafa463 --- /dev/null +++ b/gnu/packages/patches/hypre-ldflags.patch @@ -0,0 +1,9 @@ +--- hypre-2.10.1/src/lib/Makefile.orig 2016-03-11 16:04:03.740259228 -0600 ++++ hypre-2.10.1/src/lib/Makefile 2016-03-11 16:04:57.296260190 -0600 +@@ -107,5 +107,5 @@ + + libHYPRE.so: ${FILES_HYPRE} + @echo "Building $@ ... " +- ${BUILD_CC_SHARED} -o ${SONAME} ${FILES_HYPRE} ${SOLIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS} ++ ${BUILD_CC_SHARED} ${LDFLAGS} -o ${SONAME} ${FILES_HYPRE} ${SOLIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS} + ln -s ${SONAME} $@ -- cgit v1.2.3 From 04b7a7cd10ee2509d350ac4933b8964235376d41 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Thu, 17 Mar 2016 09:32:29 -0500 Subject: gnu: hdf5: Update to 1.8.17. * gnu/packages/maths.scm (hdf5): Update to 1.8.17. --- gnu/packages/maths.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index dc01b59d68..877bfd400b 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -406,7 +406,7 @@ (define-public gnuplot (define-public hdf5 (package (name "hdf5") - (version "1.8.12") + (version "1.8.17") (source (origin (method url-fetch) @@ -414,7 +414,7 @@ (define-public hdf5 version "/src/hdf5-" version ".tar.bz2")) (sha256 - (base32 "0f9n0v3p3lwc7564791a39c6cn1d3dbrn7d1j3ikqsi27a8hy23d")))) + (base32 "0sj8x0gfs5fb28gipnynb9wpkz113h8wq9sva9mxx66kv27xsdgw")))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib))) -- cgit v1.2.3 From f622e2123b578d9fea6d967a69492cc2041ce348 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 12 Apr 2016 10:02:22 -0500 Subject: gnu: hdf5: Patch output references to zlib. * gnu/packages/maths.scm (hdf5)[arguments]: Use modify-phases. Add 'patch-references' phase. --- gnu/packages/maths.scm | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 877bfd400b..4a10f6feb0 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -420,12 +420,19 @@ (define-public hdf5 `(("zlib" ,zlib))) (arguments `(#:phases - (alist-cons-before - 'configure 'patch-configure - (lambda _ - (substitute* "configure" - (("/bin/mv") "mv"))) - %standard-phases))) + (modify-phases %standard-phases + (add-before 'configure 'patch-configure + (lambda _ + (substitute* "configure" + (("/bin/mv") "mv")))) + (add-after 'install 'patch-references + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin")) + (zlib (assoc-ref inputs "zlib"))) + (substitute* (find-files bin "h5p?cc") + (("-lz" lib) + (string-append "-L" zlib "/lib " lib))) + #t)))))) (home-page "http://www.hdfgroup.org") (synopsis "Management suite for extremely large and complex data") (description "HDF5 is a suite that makes possible the management of -- cgit v1.2.3 From b8d9c93bde155af13e633f8b84b56372c2044c43 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Fri, 15 Apr 2016 10:39:54 -0500 Subject: gnu: hdf5: Have configure honor SOURCE_DATE_EPOCH. * gnu/packages/patches/hdf5-config-date.patch: New patch. * gnu/packages/maths.scm (hdf5)[source]: Use it. * gnu-system.am (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/maths.scm | 6 ++++-- gnu/packages/patches/hdf5-config-date.patch | 21 +++++++++++++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/hdf5-config-date.patch diff --git a/gnu/local.mk b/gnu/local.mk index 76d596de53..0582d9ea8c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -531,6 +531,7 @@ dist_patch_DATA = \ gnu/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \ gnu/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \ gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \ + gnu/packages/patches/hdf5-config-date.patch \ gnu/packages/patches/hop-bigloo-4.0b.patch \ gnu/packages/patches/hop-linker-flags.patch \ gnu/packages/patches/hydra-automake-1.15.patch \ diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 4a10f6feb0..df21d5ea5b 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -414,7 +414,8 @@ (define-public hdf5 version "/src/hdf5-" version ".tar.bz2")) (sha256 - (base32 "0sj8x0gfs5fb28gipnynb9wpkz113h8wq9sva9mxx66kv27xsdgw")))) + (base32 "0sj8x0gfs5fb28gipnynb9wpkz113h8wq9sva9mxx66kv27xsdgw")) + (patches (list (search-patch "hdf5-config-date.patch"))))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib))) @@ -424,7 +425,8 @@ (define-public hdf5 (add-before 'configure 'patch-configure (lambda _ (substitute* "configure" - (("/bin/mv") "mv")))) + (("/bin/mv") "mv")) + #t)) (add-after 'install 'patch-references (lambda* (#:key inputs outputs #:allow-other-keys) (let ((bin (string-append (assoc-ref outputs "out") "/bin")) diff --git a/gnu/packages/patches/hdf5-config-date.patch b/gnu/packages/patches/hdf5-config-date.patch new file mode 100644 index 0000000000..c105435dc2 --- /dev/null +++ b/gnu/packages/patches/hdf5-config-date.patch @@ -0,0 +1,21 @@ +Honor SOURCE_DATE_EPOCH when exporting configuration date. +Autoconf-level patch submitted upstream on Wed Apr 13 17:03:23 UTC 2016 + +--- a/configure ++++ b/configure +@@ -27737,7 +28573,14 @@ + + + ## Configuration date +- CONFIG_DATE="`date`" ++ CONFIG_DATE="`date -u`" ++if test -n "$SOURCE_DATE_EPOCH"; then ++ CONFIG_DATE=`date -u -d "@$SOURCE_DATE_EPOCH" 2>/dev/null \ ++ || date -u -r "$SOURCE_DATE_EPOCH" 2>/dev/null` ++ if test -z "$CONFIG_DATE"; then ++ as_fn_error $? "malformed SOURCE_DATE_EPOCH" "$LINENO" 5 ++ fi ++fi + + ## User doing the configuration + CONFIG_USER="`whoami`@`hostname`" -- cgit v1.2.3 From c8378eea10fa57c207550978dcf2998f3fc6b81c Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Thu, 17 Mar 2016 09:35:38 -0500 Subject: gnu: Add hdf5-openmpi. * gnu/packages/maths.scm (hdf5-openmpi): New variable. --- gnu/packages/maths.scm | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index df21d5ea5b..fce03ac5b8 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -442,6 +442,33 @@ (define-public hdf5 (license (license:x11-style "http://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/COPYING")))) +(define-public hdf5-parallel-openmpi + (package (inherit hdf5) + (name "hdf5-parallel-openmpi") + (inputs + `(("mpi" ,openmpi) + ,@(package-inputs hdf5))) + (arguments + (substitute-keyword-arguments `(#:configure-flags '("--enable-parallel") + ,@(package-arguments hdf5)) + ((#:phases phases) + `(modify-phases ,phases + (add-before 'check 'patch-tests + (lambda _ + ;; OpenMPI's mpirun will exit with non-zero status if it + ;; detects an "abnormal termination", i.e. any process not + ;; calling MPI_Finalize(). Since the test is explicitely + ;; avoiding MPI_Finalize so as not to have at_exit and thus + ;; H5C_flush_cache from being called, mpirun will always + ;; complain, so turn this test off. + (substitute* "testpar/Makefile" + (("(^TEST_PROG_PARA.*)t_pflush1(.*)" front back) + (string-append front back "\n"))) + (substitute* "tools/h5diff/testph5diff.sh" + (("/bin/sh") (which "sh"))) + #t)))))) + (synopsis "Management suite for data with parallel IO support"))) + (define-public nlopt (package (name "nlopt") @@ -480,7 +507,6 @@ (define-public nlopt online as well as original implementations of various other algorithms.") (license license:lgpl2.1+))) - ;; For a fully featured Octave, users are strongly recommended also to install ;; the following packages: texinfo, less, ghostscript, gnuplot. (define-public octave -- cgit v1.2.3 From 00775104ee652edbfe711568d8bbeb15a29920d2 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 12 Apr 2016 10:01:52 -0500 Subject: gnu: Add h5check. * gnu/packages/maths.scm (h5check): New variable. --- gnu/packages/maths.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index fce03ac5b8..76aecbc49e 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -469,6 +469,26 @@ (define-public hdf5-parallel-openmpi #t)))))) (synopsis "Management suite for data with parallel IO support"))) +(define-public h5check + (package + (name "h5check") + (version "2.0.1") + (source + (origin + (method url-fetch) + (uri (string-append "http://www.hdfgroup.org/ftp/HDF5/tools/" + "h5check/src/h5check-" version ".tar.gz")) + (sha256 + (base32 + "1gm76jbwhz9adbxgn14zx8cj33dmjdr2g5xcy0m9c2gakp8w59kj")))) + (build-system gnu-build-system) + (inputs `(("hdf5" ,hdf5))) ;h5cc for tests + (home-page "https://www.hdfgroup.org/products/hdf5_tools/h5check.html") + (synopsis "HDF5 format checker") + (description "@code{h5check} is a validation tool for verifying that an +HDF5 file is encoded according to the HDF File Format Specification.") + (license (license:x11-style "file://COPYING")))) + (define-public nlopt (package (name "nlopt") -- cgit v1.2.3 From 6c90e183cf2729c046ec31fff4ef3293d0052b11 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 12 Apr 2016 09:59:26 -0500 Subject: gnu: Add Matio. * gnu/packages/maths.scm (matio): New variable. --- gnu/packages/maths.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 76aecbc49e..57d27a11d7 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2328,3 +2328,25 @@ (define-public hypre-openmpi solvers for the solution of large, sparse linear systems of equations on parallel computers. It features parallel multigrid solvers for both structured and unstructured grid problems."))) + +(define-public matio + (package + (name "matio") + (version "1.5.6") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/matio/" version "/" + "matio-" version ".tar.gz")) + (sha256 + (base32 + "0y2qymgxank8wdiwc68ap8bxdzrhvyw86i29yh3xgn4z1njfd9ir")))) + (build-system gnu-build-system) + (inputs + `(("zlib" ,zlib) + ("hdf5" ,hdf5))) + (home-page "http://matio.sourceforge.net/") + (synopsis "Library for reading and writing MAT files") + (description "Matio is a library for reading and writing MAT files. It +supports compressed MAT files, as well as newer (version 7.3) MAT files.") + (license license:bsd-2))) -- cgit v1.2.3 From 889187a464d83475715a124805c99fb57ee99c31 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 12 Apr 2016 10:04:01 -0500 Subject: gnu: Add NetCDF. * gnu/packages/maths.scm (netcdf, netcdf-parallel-openmpi): New variables. --- gnu/local.mk | 1 + gnu/packages/maths.scm | 51 +++++++++++++++++++++++++++ gnu/packages/patches/netcdf-config-date.patch | 47 ++++++++++++++++++++++++ 3 files changed, 99 insertions(+) create mode 100644 gnu/packages/patches/netcdf-config-date.patch diff --git a/gnu/local.mk b/gnu/local.mk index 0582d9ea8c..e7001ec455 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -643,6 +643,7 @@ dist_patch_DATA = \ gnu/packages/patches/mupen64plus-ui-console-notice.patch \ gnu/packages/patches/mutt-store-references.patch \ gnu/packages/patches/net-tools-bitrot.patch \ + gnu/packages/patches/netcdf-config-date.patch \ gnu/packages/patches/ngircd-handle-zombies.patch \ gnu/packages/patches/ngircd-no-dns-in-tests.patch \ gnu/packages/patches/ninja-tests.patch \ diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 57d27a11d7..10b1e9be45 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -55,6 +55,7 @@ (define-module (gnu packages maths) #:use-module (gnu packages gcc) #:use-module (gnu packages gd) #:use-module (gnu packages ghostscript) + #:use-module (gnu packages graphviz) #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages less) @@ -489,6 +490,56 @@ (define-public h5check HDF5 file is encoded according to the HDF File Format Specification.") (license (license:x11-style "file://COPYING")))) +(define-public netcdf + (package + (name "netcdf") + (version "4.4.0") + (source + (origin + (method url-fetch) + (uri (string-append "ftp://ftp.unidata.ucar.edu/pub/netcdf/" + "netcdf-" version ".tar.gz")) + (sha256 + (base32 + "0y6gdcplarwqqnrav2xg1xd6ih732rzzbmdw78v3rl5b8mwcnh0d")) + (patches (list (search-patch "netcdf-config-date.patch"))))) + (build-system gnu-build-system) + (native-inputs + `(("m4" ,m4) + ("doxygen" ,doxygen) + ("graphviz" ,graphviz))) + (inputs + `(("hdf5" ,hdf5) + ("zlib" ,zlib))) + (arguments + `(#:configure-flags '("--enable-doxygen" "--enable-dot") + #:parallel-tests? #f)) ;various race conditions + (home-page "http://www.unidata.ucar.edu/software/netcdf/") + (synopsis "Library for scientific data") + (description "NetCDF is an interface for scientific data access and a +software library that provides an implementation of the interface. The netCDF +library defines a machine-independent format for representing scientific data. +Together, the interface, library, and format support the creation, access, and +sharing of scientific data.") + (license (license:x11-style "file://COPYRIGHT")))) + +(define-public netcdf-parallel-openmpi + (package (inherit netcdf) + (name "netcdf-parallel-openmpi") + (inputs + `(("mpi" ,openmpi) + ,@(alist-replace "hdf5" (list hdf5-parallel-openmpi) + (package-inputs netcdf)))) + ;; TODO: Replace pkg-config references in nc-config with absolute references + (arguments + (substitute-keyword-arguments (package-arguments netcdf) + ((#:configure-flags flags) + `(cons* "CC=mpicc" "CXX=mpicxx" + "--enable-parallel-tests" + ;; Shared libraries not supported with parallel IO. + "--disable-shared" "--with-pic" + ,flags)))))) + (define-public nlopt (package (name "nlopt") diff --git a/gnu/packages/patches/netcdf-config-date.patch b/gnu/packages/patches/netcdf-config-date.patch new file mode 100644 index 0000000000..5054612e95 --- /dev/null +++ b/gnu/packages/patches/netcdf-config-date.patch @@ -0,0 +1,47 @@ +Honor SOURCE_DATE_EPOCH when exporting configuration date. +Autoconf-level patch submitted upstream on Fri Apr 15 23:07:42 UTC 2016 + +--- a/configure ++++ b/configure +@@ -2866,7 +2866,17 @@ + + + # Configuration Date +- CONFIG_DATE="`date`" ++ CONFIG_DATE="`date -u`" ++if test -n "$SOURCE_DATE_EPOCH"; then ++ CONFIG_DATE=`date -u -d "@$SOURCE_DATE_EPOCH" 2>/dev/null \ ++ || date -u -r "$SOURCE_DATE_EPOCH" 2>/dev/null` ++ if test -z "$CONFIG_DATE"; then ++ as_fn_error $? "malformed SOURCE_DATE_EPOCH" "$LINENO" 5 ++ fi ++fi ++cat >>confdefs.h <<_ACEOF ++#define CONFIG_DATE "$CONFIG_DATE" ++_ACEOF + + # Find out about the host we're building on. + ac_aux_dir= +--- a/libdispatch/derror.c ++++ b/libdispatch/derror.c +@@ -13,7 +13,7 @@ + #endif + + /* Tell the user the version of netCDF. */ +-static const char nc_libvers[] = PACKAGE_VERSION " of "__DATE__" "__TIME__" $"; ++static const char nc_libvers[] = PACKAGE_VERSION " of "CONFIG_DATE" $"; + + /** + \defgroup lib_version Library Version +--- a/config.h.in ++++ b/config.h.in +@@ -393,6 +393,9 @@ + /* Define to the version of this package. */ + #undef PACKAGE_VERSION + ++/* Define to the configuration date */ ++#undef CONFIG_DATE ++ + /* The size of `double', as computed by sizeof. */ + #undef SIZEOF_DOUBLE + -- cgit v1.2.3 From ef06d54a9b9ee4fb5015c78ab94f8df1d3a72f1d Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 12 May 2016 18:11:35 -0400 Subject: gnu: icecat: Update to 38.8.0-gnu1. * gnu/packages/patches/icecat-CVE-2016-2805.patch, gnu/packages/patches/icecat-CVE-2016-2807-pt1.patch, gnu/packages/patches/icecat-CVE-2016-2807-pt2.patch, gnu/packages/patches/icecat-CVE-2016-2807-pt3.patch, gnu/packages/patches/icecat-CVE-2016-2807-pt4.patch, gnu/packages/patches/icecat-CVE-2016-2807-pt5.patch, gnu/packages/patches/icecat-CVE-2016-2808.patch, gnu/packages/patches/icecat-CVE-2016-2814.patch, gnu/packages/patches/icecat-re-enable-DHE-cipher-suites.patch, gnu/packages/patches/icecat-update-bundled-graphite2.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them. * gnu/packages/gnuzilla.scm (icecat): Update to 38.8.0-gnu1. [source] Remove deleted patches. --- gnu/local.mk | 10 - gnu/packages/gnuzilla.scm | 16 +- gnu/packages/patches/icecat-CVE-2016-2805.patch | 75 - .../patches/icecat-CVE-2016-2807-pt1.patch | 35 - .../patches/icecat-CVE-2016-2807-pt2.patch | 69 - .../patches/icecat-CVE-2016-2807-pt3.patch | 33 - .../patches/icecat-CVE-2016-2807-pt4.patch | 37 - .../patches/icecat-CVE-2016-2807-pt5.patch | 35 - gnu/packages/patches/icecat-CVE-2016-2808.patch | 389 --- gnu/packages/patches/icecat-CVE-2016-2814.patch | 35 - .../icecat-re-enable-DHE-cipher-suites.patch | 24 - .../patches/icecat-update-bundled-graphite2.patch | 2488 -------------------- 12 files changed, 3 insertions(+), 3243 deletions(-) delete mode 100644 gnu/packages/patches/icecat-CVE-2016-2805.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2016-2807-pt1.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2016-2807-pt2.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2016-2807-pt3.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2016-2807-pt4.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2016-2807-pt5.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2016-2808.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2016-2814.patch delete mode 100644 gnu/packages/patches/icecat-re-enable-DHE-cipher-suites.patch delete mode 100644 gnu/packages/patches/icecat-update-bundled-graphite2.patch diff --git a/gnu/local.mk b/gnu/local.mk index 688632928f..8611158c66 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -532,16 +532,6 @@ dist_patch_DATA = \ gnu/packages/patches/hydra-automake-1.15.patch \ gnu/packages/patches/hydra-disable-darcs-test.patch \ gnu/packages/patches/icecat-avoid-bundled-includes.patch \ - gnu/packages/patches/icecat-re-enable-DHE-cipher-suites.patch \ - gnu/packages/patches/icecat-update-bundled-graphite2.patch \ - gnu/packages/patches/icecat-CVE-2016-2805.patch \ - gnu/packages/patches/icecat-CVE-2016-2807-pt1.patch \ - gnu/packages/patches/icecat-CVE-2016-2807-pt2.patch \ - gnu/packages/patches/icecat-CVE-2016-2807-pt3.patch \ - gnu/packages/patches/icecat-CVE-2016-2807-pt4.patch \ - gnu/packages/patches/icecat-CVE-2016-2807-pt5.patch \ - gnu/packages/patches/icecat-CVE-2016-2808.patch \ - gnu/packages/patches/icecat-CVE-2016-2814.patch \ gnu/packages/patches/icu4c-CVE-2014-6585.patch \ gnu/packages/patches/icu4c-CVE-2015-1270.patch \ gnu/packages/patches/icu4c-CVE-2015-4760.patch \ diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index abefd90304..df1075c370 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -287,7 +287,7 @@ (define-public nss (define-public icecat (package (name "icecat") - (version "38.7.1-gnu1") + (version "38.8.0-gnu1") (source (origin (method url-fetch) @@ -296,19 +296,9 @@ (define-public icecat name "-" version ".tar.bz2")) (sha256 (base32 - "1wdmd6hasra36g86ha1dw8sl7a5mvr7c4jbjx4zyg9629y5gqr8g")) + "0v4k47ziqsyfksv9sn4v1xvk4q414rc883hb1qzld63grj2nxxwp")) (patches (search-patches - "icecat-avoid-bundled-includes.patch" - "icecat-re-enable-DHE-cipher-suites.patch" - "icecat-update-bundled-graphite2.patch" - "icecat-CVE-2016-2805.patch" - "icecat-CVE-2016-2807-pt1.patch" - "icecat-CVE-2016-2807-pt2.patch" - "icecat-CVE-2016-2807-pt3.patch" - "icecat-CVE-2016-2807-pt4.patch" - "icecat-CVE-2016-2807-pt5.patch" - "icecat-CVE-2016-2808.patch" - "icecat-CVE-2016-2814.patch")) + "icecat-avoid-bundled-includes.patch")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/patches/icecat-CVE-2016-2805.patch b/gnu/packages/patches/icecat-CVE-2016-2805.patch deleted file mode 100644 index 5e4150f00c..0000000000 --- a/gnu/packages/patches/icecat-CVE-2016-2805.patch +++ /dev/null @@ -1,75 +0,0 @@ -Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/bf34b97757b3 - -# HG changeset patch -# User Jon Coppeard -# Date 1453890675 0 -# Node ID bf34b97757b334af1f9f53b9b59e0b6902e7ed6f -# Parent 228ca3f46cabaf3f388f6c6640690772aa13c1a5 -Bug 1241731 - Handle incomplete buffer in DiscardTransferables r=sfink a=abillings a=sylvestre - -diff --git a/js/src/jit-test/tests/gc/bug-1241731.js b/js/src/jit-test/tests/gc/bug-1241731.js -new file mode 100644 ---- /dev/null -+++ b/js/src/jit-test/tests/gc/bug-1241731.js -@@ -0,0 +1,4 @@ -+if (!('oomTest' in this)) -+ quit(); -+ -+oomTest(() => serialize(0, [{}])); -diff --git a/js/src/vm/StructuredClone.cpp b/js/src/vm/StructuredClone.cpp ---- a/js/src/vm/StructuredClone.cpp -+++ b/js/src/vm/StructuredClone.cpp -@@ -379,39 +379,50 @@ ReadStructuredClone(JSContext* cx, uint6 - - // If the given buffer contains Transferables, free them. Note that custom - // Transferables will use the JSStructuredCloneCallbacks::freeTransfer() to - // delete their transferables. - static void - Discard(uint64_t* buffer, size_t nbytes, const JSStructuredCloneCallbacks* cb, void* cbClosure) - { - MOZ_ASSERT(nbytes % sizeof(uint64_t) == 0); -- if (nbytes < sizeof(uint64_t)) -+ uint64_t* end = buffer + nbytes / sizeof(uint64_t); -+ uint64_t* point = buffer; -+ if (point == end) - return; // Empty buffer - -- uint64_t* point = buffer; - uint32_t tag, data; - SCInput::getPair(point++, &tag, &data); - if (tag != SCTAG_TRANSFER_MAP_HEADER) - return; - - if (TransferableMapHeader(data) == SCTAG_TM_TRANSFERRED) - return; - - // freeTransfer should not GC - JS::AutoSuppressGCAnalysis nogc; - -+ if (point == end) -+ return; -+ - uint64_t numTransferables = LittleEndian::readUint64(point++); - while (numTransferables--) { -+ if (point == end) -+ return; -+ - uint32_t ownership; - SCInput::getPair(point++, &tag, &ownership); - MOZ_ASSERT(tag >= SCTAG_TRANSFER_MAP_PENDING_ENTRY); -+ if (point == end) -+ return; - - void* content; - SCInput::getPtr(point++, &content); -+ if (point == end) -+ return; - - uint64_t extraData = LittleEndian::readUint64(point++); - - if (ownership < JS::SCTAG_TMO_FIRST_OWNED) - continue; - - if (ownership == JS::SCTAG_TMO_ALLOC_DATA) { - js_free(content); - diff --git a/gnu/packages/patches/icecat-CVE-2016-2807-pt1.patch b/gnu/packages/patches/icecat-CVE-2016-2807-pt1.patch deleted file mode 100644 index 0a6bee378b..0000000000 --- a/gnu/packages/patches/icecat-CVE-2016-2807-pt1.patch +++ /dev/null @@ -1,35 +0,0 @@ -Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/e7c23c08bf84 - -# HG changeset patch -# User Randell Jesup -# Date 1458543433 14400 -# Node ID e7c23c08bf84a02d9154f31e0c5d121a45884a69 -# Parent a6de1f453712edabff597879398606708c191098 -Bug 1254876: assert windows recording is shut down r=pkerr a=ritu - -MozReview-Commit-ID: JRqxBb5TgrE - -diff --git a/media/webrtc/trunk/webrtc/modules/audio_device/win/audio_device_core_win.cc b/media/webrtc/trunk/webrtc/modules/audio_device/win/audio_device_core_win.cc ---- a/media/webrtc/trunk/webrtc/modules/audio_device/win/audio_device_core_win.cc -+++ b/media/webrtc/trunk/webrtc/modules/audio_device/win/audio_device_core_win.cc -@@ -567,16 +567,19 @@ AudioDeviceWindowsCore::AudioDeviceWindo - // ---------------------------------------------------------------------------- - - AudioDeviceWindowsCore::~AudioDeviceWindowsCore() - { - WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s destroyed", __FUNCTION__); - - Terminate(); - -+ // Recording thread should be shut down before this! -+ assert(_hRecThread == NULL); -+ - // The IMMDeviceEnumerator is created during construction. Must release - // it here and not in Terminate() since we don't recreate it in Init(). - SAFE_RELEASE(_ptrEnumerator); - - _ptrAudioBuffer = NULL; - - if (NULL != _hRenderSamplesReadyEvent) - { - diff --git a/gnu/packages/patches/icecat-CVE-2016-2807-pt2.patch b/gnu/packages/patches/icecat-CVE-2016-2807-pt2.patch deleted file mode 100644 index f4b4c0d4eb..0000000000 --- a/gnu/packages/patches/icecat-CVE-2016-2807-pt2.patch +++ /dev/null @@ -1,69 +0,0 @@ -Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/3d2b62083a6a - -# HG changeset patch -# User Shu-yu Guo -# Date 1459741387 -7200 -# Node ID 3d2b62083a6a4fb43cb330d77142f9dce0959a23 -# Parent 9d4364f6b55c6ee65c13c491292c3abe1ee2c993 -Bug 1254164 - Make aliasedBodyLevelLexicalBegin a uint32. r=Waldo, a=ritu - -diff --git a/js/src/jit-test/tests/parser/bug-1254164.js b/js/src/jit-test/tests/parser/bug-1254164.js -new file mode 100644 ---- /dev/null -+++ b/js/src/jit-test/tests/parser/bug-1254164.js -@@ -0,0 +1,6 @@ -+// |jit-test| slow; -+ -+var s = ''; -+for (var i = 0; i < 70000; i++) -+ s += 'function x' + i + '() { x' + i + '(); }\n'; -+eval("(function() { " + s + " })();"); -diff --git a/js/src/jsscript.cpp b/js/src/jsscript.cpp ---- a/js/src/jsscript.cpp -+++ b/js/src/jsscript.cpp -@@ -111,17 +111,20 @@ Bindings::initWithTemporaryStorage(Exclu - // JITs when interpreting/compiling aliasedvar ops.) - - // Since unaliased variables are, by definition, only accessed by local - // operations and never through the scope chain, only give shapes to - // aliased variables. While the debugger may observe any scope object at - // any time, such accesses are mediated by DebugScopeProxy (see - // DebugScopeProxy::handleUnaliasedAccess). - uint32_t nslots = CallObject::RESERVED_SLOTS; -- uint32_t aliasedBodyLevelLexicalBegin = UINT16_MAX; -+ -+ // Unless there are aliased body-level lexical bindings at all, set the -+ // begin index to an impossible slot number. -+ uint32_t aliasedBodyLevelLexicalBegin = LOCALNO_LIMIT; - for (BindingIter bi(self); bi; bi++) { - if (bi->aliased()) { - // Per ES6, lexical bindings cannot be accessed until - // initialized. Remember the first aliased slot that is a - // body-level lexical, so that they may be initialized to sentinel - // magic values. - if (numBodyLevelLexicals > 0 && - nslots < aliasedBodyLevelLexicalBegin && -diff --git a/js/src/jsscript.h b/js/src/jsscript.h ---- a/js/src/jsscript.h -+++ b/js/src/jsscript.h -@@ -201,18 +201,18 @@ class Bindings - friend class BindingIter; - friend class AliasedFormalIter; - - RelocatablePtrShape callObjShape_; - uintptr_t bindingArrayAndFlag_; - uint16_t numArgs_; - uint16_t numBlockScoped_; - uint16_t numBodyLevelLexicals_; -- uint16_t aliasedBodyLevelLexicalBegin_; - uint16_t numUnaliasedBodyLevelLexicals_; -+ uint32_t aliasedBodyLevelLexicalBegin_; - uint32_t numVars_; - uint32_t numUnaliasedVars_; - - #if JS_BITS_PER_WORD == 32 - // Bindings is allocated inline inside JSScript, which needs to be - // gc::Cell aligned. - uint32_t padding_; - #endif - diff --git a/gnu/packages/patches/icecat-CVE-2016-2807-pt3.patch b/gnu/packages/patches/icecat-CVE-2016-2807-pt3.patch deleted file mode 100644 index a5a4212c28..0000000000 --- a/gnu/packages/patches/icecat-CVE-2016-2807-pt3.patch +++ /dev/null @@ -1,33 +0,0 @@ -Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/88f1eb2c3f4b - -# HG changeset patch -# User Timothy Nikkel -# Date 1457637807 21600 -# Node ID 88f1eb2c3f4b4b57365ed88223cf8adc2bec4610 -# Parent bf34b97757b334af1f9f53b9b59e0b6902e7ed6f -Bug 1187420. r=drc r=jmuizelaar a=sylvestre - -MozReview-Commit-ID: Hh0Khqfj8Bf - -diff --git a/media/libjpeg/jstdhuff.c b/media/libjpeg/jstdhuff.c ---- a/media/libjpeg/jstdhuff.c -+++ b/media/libjpeg/jstdhuff.c -@@ -36,16 +36,17 @@ add_huff_table (j_common_ptr cinfo, - */ - nsymbols = 0; - for (len = 1; len <= 16; len++) - nsymbols += bits[len]; - if (nsymbols < 1 || nsymbols > 256) - ERREXIT(cinfo, JERR_BAD_HUFF_TABLE); - - MEMCOPY((*htblptr)->huffval, val, nsymbols * sizeof(UINT8)); -+ MEMZERO(&((*htblptr)->huffval[nsymbols]), (256 - nsymbols) * sizeof(UINT8)); - - /* Initialize sent_table FALSE so table will be written to JPEG file. */ - (*htblptr)->sent_table = FALSE; - } - - - LOCAL(void) - std_huff_tables (j_common_ptr cinfo) - diff --git a/gnu/packages/patches/icecat-CVE-2016-2807-pt4.patch b/gnu/packages/patches/icecat-CVE-2016-2807-pt4.patch deleted file mode 100644 index 5eff4fe99c..0000000000 --- a/gnu/packages/patches/icecat-CVE-2016-2807-pt4.patch +++ /dev/null @@ -1,37 +0,0 @@ -Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/5c312182da90 - -# HG changeset patch -# User Jan de Mooij -# Date 1458828581 -3600 -# Node ID 5c312182da9020504103aa329360abaffa7e232d -# Parent fa4efccde9b7efde8763a178a6cf422b6d37a0e9 -Bug 1254622 - Relookup group->newScript in CreateThisForFunctionWithGroup. r=bhackett a=sylvestre - -MozReview-Commit-ID: KXd7kB70f1Z - -diff --git a/js/src/jsobj.cpp b/js/src/jsobj.cpp ---- a/js/src/jsobj.cpp -+++ b/js/src/jsobj.cpp -@@ -1574,18 +1574,19 @@ CreateThisForFunctionWithGroup(JSContext - // Not enough objects with this group have been created yet, so make a - // plain object and register it with the group. Use the maximum number - // of fixed slots, as is also required by the TypeNewScript. - gc::AllocKind allocKind = GuessObjectGCKind(NativeObject::MAX_FIXED_SLOTS); - PlainObject* res = NewObjectWithGroup(cx, group, parent, allocKind, newKind); - if (!res) - return nullptr; - -- if (newKind != SingletonObject) -- newScript->registerNewObject(res); -+ // Make sure group->newScript is still there. -+ if (newKind != SingletonObject && group->newScript()) -+ group->newScript()->registerNewObject(res); - - return res; - } - - gc::AllocKind allocKind = NewObjectGCKind(&PlainObject::class_); - - if (newKind == SingletonObject) { - Rooted protoRoot(cx, group->proto()); - diff --git a/gnu/packages/patches/icecat-CVE-2016-2807-pt5.patch b/gnu/packages/patches/icecat-CVE-2016-2807-pt5.patch deleted file mode 100644 index 00718ebaac..0000000000 --- a/gnu/packages/patches/icecat-CVE-2016-2807-pt5.patch +++ /dev/null @@ -1,35 +0,0 @@ -Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/3fdd280fa099 - -# HG changeset patch -# User Carsten "Tomcat" Book -# Date 1461123938 -7200 -# Node ID 3fdd280fa099b6453ce9fd9905af883bc2ebce24 -# Parent 52dfdd37150d62f708dc5bf61dd28f3967596788 -Bug 1252707 - a=sylvestre - -diff --git a/js/src/vm/Shape.cpp b/js/src/vm/Shape.cpp ---- a/js/src/vm/Shape.cpp -+++ b/js/src/vm/Shape.cpp -@@ -382,18 +382,20 @@ NativeObject::getChildPropertyOnDictiona - - if (obj->inDictionaryMode()) { - MOZ_ASSERT(parent == obj->lastProperty()); - RootedGeneric childRoot(cx, &child); - shape = childRoot->isAccessorShape() ? NewGCAccessorShape(cx) : NewGCShape(cx); - if (!shape) - return nullptr; - if (childRoot->hasSlot() && childRoot->slot() >= obj->lastProperty()->base()->slotSpan()) { -- if (!obj->setSlotSpan(cx, childRoot->slot() + 1)) -+ if (!obj->setSlotSpan(cx, childRoot->slot() + 1)) { -+ new (shape) Shape(obj->lastProperty()->base()->unowned(), 0); - return nullptr; -+ } - } - shape->initDictionaryShape(*childRoot, obj->numFixedSlots(), &obj->shape_); - } - - return shape; - } - - /* static */ Shape* - diff --git a/gnu/packages/patches/icecat-CVE-2016-2808.patch b/gnu/packages/patches/icecat-CVE-2016-2808.patch deleted file mode 100644 index ae190b8b4c..0000000000 --- a/gnu/packages/patches/icecat-CVE-2016-2808.patch +++ /dev/null @@ -1,389 +0,0 @@ -Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/71f611fd27c7 - -# HG changeset patch -# User Jeff Walden -# Date 1458941573 25200 -# Node ID 71f611fd27c7d6cb7d6dab9895c2922948042543 -# Parent 861f6b83ce1deade2a976cabe059776ad51ce370 -Bug 1246061. r=luke, r=froydnj, a=sylvestre - -diff --git a/js/public/HashTable.h b/js/public/HashTable.h ---- a/js/public/HashTable.h -+++ b/js/public/HashTable.h -@@ -8,16 +8,17 @@ - #define js_HashTable_h - - #include "mozilla/Alignment.h" - #include "mozilla/Assertions.h" - #include "mozilla/Attributes.h" - #include "mozilla/Casting.h" - #include "mozilla/MemoryReporting.h" - #include "mozilla/Move.h" -+#include "mozilla/Opaque.h" - #include "mozilla/PodOperations.h" - #include "mozilla/ReentrancyGuard.h" - #include "mozilla/TemplateLib.h" - #include "mozilla/TypeTraits.h" - - #include "js/Utility.h" - - namespace js { -@@ -27,16 +28,18 @@ template struct DefaultHasher; - template class HashMapEntry; - namespace detail { - template class HashTableEntry; - template class HashTable; - } - - /*****************************************************************************/ - -+using Generation = mozilla::Opaque; -+ - // A JS-friendly, STL-like container providing a hash-based map from keys to - // values. In particular, HashMap calls constructors and destructors of all - // objects added so non-PODs may be used safely. - // - // Key/Value requirements: - // - movable, destructible, assignable - // HashPolicy requirements: - // - see Hash Policy section below -@@ -200,17 +203,19 @@ class HashMap - return impl.sizeOfExcludingThis(mallocSizeOf); - } - size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const { - return mallocSizeOf(this) + impl.sizeOfExcludingThis(mallocSizeOf); - } - - // If |generation()| is the same before and after a HashMap operation, - // pointers into the table remain valid. -- uint32_t generation() const { return impl.generation(); } -+ Generation generation() const { -+ return impl.generation(); -+ } - - /************************************************** Shorthand operations */ - - bool has(const Lookup& l) const { - return impl.lookup(l).found(); - } - - // Overwrite existing value with v. Return false on oom. -@@ -431,17 +436,19 @@ class HashSet - return impl.sizeOfExcludingThis(mallocSizeOf); - } - size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const { - return mallocSizeOf(this) + impl.sizeOfExcludingThis(mallocSizeOf); - } - - // If |generation()| is the same before and after a HashSet operation, - // pointers into the table remain valid. -- uint32_t generation() const { return impl.generation(); } -+ Generation generation() const { -+ return impl.generation(); -+ } - - /************************************************** Shorthand operations */ - - bool has(const Lookup& l) const { - return impl.lookup(l).found(); - } - - // Add |u| if it is not present already. Return false on oom. -@@ -766,17 +773,17 @@ class HashTable : private AllocPolicy - // table operations unless |generation()| is tested. - class Ptr - { - friend class HashTable; - - Entry* entry_; - #ifdef JS_DEBUG - const HashTable* table_; -- uint32_t generation; -+ Generation generation; - #endif - - protected: - Ptr(Entry& entry, const HashTable& tableArg) - : entry_(&entry) - #ifdef JS_DEBUG - , table_(&tableArg) - , generation(tableArg.generation()) -@@ -873,17 +880,17 @@ class HashTable : private AllocPolicy - while (cur < end && !cur->isLive()) - ++cur; - } - - Entry* cur, *end; - #ifdef JS_DEBUG - const HashTable* table_; - uint64_t mutationCount; -- uint32_t generation; -+ Generation generation; - bool validEntry; - #endif - - public: - Range() - : cur(nullptr) - , end(nullptr) - #ifdef JS_DEBUG -@@ -1012,18 +1019,18 @@ class HashTable : private AllocPolicy - // HashTable is not copyable or assignable - HashTable(const HashTable&) = delete; - void operator=(const HashTable&) = delete; - - private: - static const size_t CAP_BITS = 24; - - public: -- Entry* table; // entry storage -- uint32_t gen; // entry storage generation number -+ uint64_t gen; // entry storage generation number -+ Entry* table; // entry storage - uint32_t entryCount; // number of entries in table - uint32_t removedCount:CAP_BITS; // removed entry sentinels in table - uint32_t hashShift:8; // multiplicative hash shift - - #ifdef JS_DEBUG - uint64_t mutationCount; - mutable bool mEntered; - mutable struct Stats -@@ -1097,18 +1104,18 @@ class HashTable : private AllocPolicy - for (Entry* e = oldTable, *end = e + capacity; e < end; ++e) - e->destroyIfLive(); - alloc.free_(oldTable); - } - - public: - explicit HashTable(AllocPolicy ap) - : AllocPolicy(ap) -+ , gen(0) - , table(nullptr) -- , gen(0) - , entryCount(0) - , removedCount(0) - , hashShift(sHashBits) - #ifdef JS_DEBUG - , mutationCount(0) - , mEntered(false) - #endif - {} -@@ -1524,20 +1531,20 @@ class HashTable : private AllocPolicy - } - - uint32_t capacity() const - { - MOZ_ASSERT(table); - return JS_BIT(sHashBits - hashShift); - } - -- uint32_t generation() const -+ Generation generation() const - { - MOZ_ASSERT(table); -- return gen; -+ return Generation(gen); - } - - size_t sizeOfExcludingThis(mozilla::MallocSizeOf mallocSizeOf) const - { - return mallocSizeOf(table); - } - - size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const -diff --git a/js/src/jsapi.h b/js/src/jsapi.h ---- a/js/src/jsapi.h -+++ b/js/src/jsapi.h -@@ -270,20 +270,16 @@ class AutoHashMapRooter : protected Auto - - size_t sizeOfExcludingThis(mozilla::MallocSizeOf mallocSizeOf) const { - return map.sizeOfExcludingThis(mallocSizeOf); - } - size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const { - return map.sizeOfIncludingThis(mallocSizeOf); - } - -- uint32_t generation() const { -- return map.generation(); -- } -- - /************************************************** Shorthand operations */ - - bool has(const Lookup& l) const { - return map.has(l); - } - - template - bool put(const KeyInput& k, const ValueInput& v) { -@@ -385,20 +381,16 @@ class AutoHashSetRooter : protected Auto - - size_t sizeOfExcludingThis(mozilla::MallocSizeOf mallocSizeOf) const { - return set.sizeOfExcludingThis(mallocSizeOf); - } - size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const { - return set.sizeOfIncludingThis(mallocSizeOf); - } - -- uint32_t generation() const { -- return set.generation(); -- } -- - /************************************************** Shorthand operations */ - - bool has(const Lookup& l) const { - return set.has(l); - } - - bool put(const T& t) { - return set.put(t); -diff --git a/js/src/jscntxt.h b/js/src/jscntxt.h ---- a/js/src/jscntxt.h -+++ b/js/src/jscntxt.h -@@ -30,21 +30,21 @@ class DebugModeOSRVolatileJitFrameIterat - } - - typedef HashSet ObjectSet; - typedef HashSet ShapeSet; - - /* Detects cycles when traversing an object graph. */ - class AutoCycleDetector - { -+ Generation hashsetGenerationAtInit; - JSContext* cx; - RootedObject obj; -+ ObjectSet::AddPtr hashsetAddPointer; - bool cyclic; -- uint32_t hashsetGenerationAtInit; -- ObjectSet::AddPtr hashsetAddPointer; - MOZ_DECL_USE_GUARD_OBJECT_NOTIFIER - - public: - AutoCycleDetector(JSContext* cx, HandleObject objArg - MOZ_GUARD_OBJECT_NOTIFIER_PARAM) - : cx(cx), obj(cx, objArg), cyclic(true) - { - MOZ_GUARD_OBJECT_NOTIFIER_INIT; -diff --git a/js/src/jswatchpoint.cpp b/js/src/jswatchpoint.cpp ---- a/js/src/jswatchpoint.cpp -+++ b/js/src/jswatchpoint.cpp -@@ -22,25 +22,25 @@ DefaultHasher::hash(const Look - { - return DefaultHasher::hash(key.object.get()) ^ HashId(key.id.get()); - } - - namespace { - - class AutoEntryHolder { - typedef WatchpointMap::Map Map; -+ Generation gen; - Map& map; - Map::Ptr p; -- uint32_t gen; - RootedObject obj; - RootedId id; - - public: - AutoEntryHolder(JSContext* cx, Map& map, Map::Ptr p) -- : map(map), p(p), gen(map.generation()), obj(cx, p->key().object), id(cx, p->key().id) -+ : gen(map.generation()), map(map), p(p), obj(cx, p->key().object), id(cx, p->key().id) - { - MOZ_ASSERT(!p->value().held); - p->value().held = true; - } - - ~AutoEntryHolder() { - if (gen != map.generation()) - p = map.lookup(WatchKey(obj, id)); -diff --git a/js/src/shell/jsheaptools.cpp b/js/src/shell/jsheaptools.cpp ---- a/js/src/shell/jsheaptools.cpp -+++ b/js/src/shell/jsheaptools.cpp -@@ -267,17 +267,17 @@ HeapReverser::traverseEdge(void* cell, J - Map::AddPtr a = map.lookupForAdd(cell); - if (!a) { - /* - * We've never visited this cell before. Add it to the map (thus - * marking it as visited), and put it on the work stack, to be - * visited from the main loop. - */ - Node n(kind); -- uint32_t generation = map.generation(); -+ Generation generation = map.generation(); - if (!map.add(a, cell, Move(n)) || - !work.append(Child(cell, kind))) - return false; - /* If the map has been resized, re-check the pointer. */ - if (map.generation() != generation) - a = map.lookupForAdd(cell); - } - -diff --git a/mfbt/Opaque.h b/mfbt/Opaque.h -new file mode 100644 ---- /dev/null -+++ b/mfbt/Opaque.h -@@ -0,0 +1,44 @@ -+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -+/* vim: set ts=8 sts=2 et sw=2 tw=80: */ -+/* This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -+ -+/* An opaque integral type supporting only comparison operators. */ -+ -+#ifndef mozilla_Opaque_h -+#define mozilla_Opaque_h -+ -+#include "mozilla/TypeTraits.h" -+ -+namespace mozilla { -+ -+/** -+ * Opaque is a replacement for integral T in cases where only comparisons -+ * must be supported, and it's desirable to prevent accidental dependency on -+ * exact values. -+ */ -+template -+class Opaque final -+{ -+ static_assert(mozilla::IsIntegral::value, -+ "mozilla::Opaque only supports integral types"); -+ -+ T mValue; -+ -+public: -+ Opaque() {} -+ explicit Opaque(T aValue) : mValue(aValue) {} -+ -+ bool operator==(const Opaque& aOther) const { -+ return mValue == aOther.mValue; -+ } -+ -+ bool operator!=(const Opaque& aOther) const { -+ return !(*this == aOther); -+ } -+}; -+ -+} // namespace mozilla -+ -+#endif /* mozilla_Opaque_h */ -diff --git a/mfbt/moz.build b/mfbt/moz.build ---- a/mfbt/moz.build -+++ b/mfbt/moz.build -@@ -48,16 +48,17 @@ EXPORTS.mozilla = [ - 'MathAlgorithms.h', - 'Maybe.h', - 'MaybeOneOf.h', - 'MemoryChecking.h', - 'MemoryReporting.h', - 'Move.h', - 'NullPtr.h', - 'NumericLimits.h', -+ 'Opaque.h', - 'Pair.h', - 'PodOperations.h', - 'Poison.h', - 'Range.h', - 'RangedPtr.h', - 'RefCountType.h', - 'ReentrancyGuard.h', - 'RefPtr.h', - diff --git a/gnu/packages/patches/icecat-CVE-2016-2814.patch b/gnu/packages/patches/icecat-CVE-2016-2814.patch deleted file mode 100644 index 5f197f25e6..0000000000 --- a/gnu/packages/patches/icecat-CVE-2016-2814.patch +++ /dev/null @@ -1,35 +0,0 @@ - -# HG changeset patch -# User Jean-Yves Avenard -# Date 1460655260 25200 -# Node ID a13c0bc84d6eb132f4199f563fbe228d2d3b3a51 -# Parent 88f1eb2c3f4b4b57365ed88223cf8adc2bec4610 -Bug 1254721: Ensure consistency between Cenc offsets and sizes table. r=gerald a=sylvestre - -MozReview-Commit-ID: E1KbKIIBR87 - -diff --git a/media/libstagefright/frameworks/av/media/libstagefright/SampleTable.cpp b/media/libstagefright/frameworks/av/media/libstagefright/SampleTable.cpp ---- a/media/libstagefright/frameworks/av/media/libstagefright/SampleTable.cpp -+++ b/media/libstagefright/frameworks/av/media/libstagefright/SampleTable.cpp -@@ -612,18 +612,18 @@ status_t - SampleTable::parseSampleCencInfo() { - if ((!mCencDefaultSize && !mCencInfoCount) || mCencOffsets.isEmpty()) { - // We don't have all the cenc information we need yet. Quietly fail and - // hope we get the data we need later in the track header. - ALOGV("Got half of cenc saio/saiz pair. Deferring parse until we get the other half."); - return OK; - } - -- if (!mCencSizes.isEmpty() && mCencOffsets.size() > 1 && -- mCencSizes.size() != mCencOffsets.size()) { -+ if ((mCencOffsets.size() > 1 && mCencOffsets.size() < mCencInfoCount) || -+ (!mCencDefaultSize && mCencSizes.size() < mCencInfoCount)) { - return ERROR_MALFORMED; - } - - if (mCencInfoCount > kMAX_ALLOCATION / sizeof(SampleCencInfo)) { - // Avoid future OOM. - return ERROR_MALFORMED; - } - - diff --git a/gnu/packages/patches/icecat-re-enable-DHE-cipher-suites.patch b/gnu/packages/patches/icecat-re-enable-DHE-cipher-suites.patch deleted file mode 100644 index 5c869bf510..0000000000 --- a/gnu/packages/patches/icecat-re-enable-DHE-cipher-suites.patch +++ /dev/null @@ -1,24 +0,0 @@ -Re-enable the DHE (Ephemeral Diffie-Hellman) cipher suites, which IceCat -38.6.0 disabled by default to avoid the Logjam attack. This issue was -fixed in NSS version 3.19.1 by limiting the lower strength of supported -DHE keys to use 1023 bit primes, so we can enable these cipher suites -safely. The DHE cipher suites are needed to allow IceCat to connect to -many sites, including https://gnupg.org/. - -Patch by Mark H Weaver - ---- icecat-38.6.0/browser/app/profile/icecat.js.orig 1969-12-31 19:00:00.000000000 -0500 -+++ icecat-38.6.0/browser/app/profile/icecat.js 2016-02-06 00:48:23.826170154 -0500 -@@ -2061,12 +2061,6 @@ - pref("security.ssl3.rsa_des_ede3_sha", false); - pref("security.ssl3.ecdhe_ecdsa_rc4_128_sha", false); - pref("security.ssl3.ecdhe_rsa_rc4_128_sha", false); --// https://directory.fsf.org/wiki/Disable_DHE --// Avoid logjam attack --pref("security.ssl3.dhe_rsa_aes_128_sha", false); --pref("security.ssl3.dhe_rsa_aes_256_sha", false); --pref("security.ssl3.dhe_dss_aes_128_sha", false); --pref("security.ssl3.dhe_rsa_des_ede3_sha", false); - //Optional - //Perfect forward secrecy - // pref("security.ssl3.rsa_aes_256_sha", false); diff --git a/gnu/packages/patches/icecat-update-bundled-graphite2.patch b/gnu/packages/patches/icecat-update-bundled-graphite2.patch deleted file mode 100644 index c3ab920335..0000000000 --- a/gnu/packages/patches/icecat-update-bundled-graphite2.patch +++ /dev/null @@ -1,2488 +0,0 @@ - -# HG changeset patch -# User Jonathan Kew -# Date 1460660890 -3600 -# Node ID 7330633d20ffb33941e41ea0666c4099b6e6d317 -# Parent 5c312182da9020504103aa329360abaffa7e232d -Bug 1262846 (patch for ESR trees) - Update Graphite2 library to 1.3.8. r=jrmuizel a=sledru - -diff --git a/gfx/graphite2/README.mozilla b/gfx/graphite2/README.mozilla ---- a/gfx/graphite2/README.mozilla -+++ b/gfx/graphite2/README.mozilla -@@ -1,3 +1,3 @@ --This directory contains the Graphite2 library release 1.3.6 from --https://github.com/silnrsi/graphite/releases/download/1.3.6/graphite-minimal-1.3.6.tgz -+This directory contains the Graphite2 library release 1.3.8 from -+https://github.com/silnrsi/graphite/releases/download/1.3.8/graphite2-minimal-1.3.8.tgz - See gfx/graphite2/moz-gr-update.sh for update procedure. -diff --git a/gfx/graphite2/include/graphite2/Font.h b/gfx/graphite2/include/graphite2/Font.h ---- a/gfx/graphite2/include/graphite2/Font.h -+++ b/gfx/graphite2/include/graphite2/Font.h -@@ -25,17 +25,17 @@ - either version 2 of the License or (at your option) any later version. - */ - #pragma once - - #include "graphite2/Types.h" - - #define GR2_VERSION_MAJOR 1 - #define GR2_VERSION_MINOR 3 --#define GR2_VERSION_BUGFIX 6 -+#define GR2_VERSION_BUGFIX 8 - - #ifdef __cplusplus - extern "C" - { - #endif - - typedef struct gr_face gr_face; - typedef struct gr_font gr_font; -diff --git a/gfx/graphite2/moz-gr-update.sh b/gfx/graphite2/moz-gr-update.sh ---- a/gfx/graphite2/moz-gr-update.sh -+++ b/gfx/graphite2/moz-gr-update.sh -@@ -14,17 +14,17 @@ - RELEASE=$1 - - if [ "x$RELEASE" == "x" ] - then - echo "Must provide the version number to be used." - exit 1 - fi - --TARBALL="https://github.com/silnrsi/graphite/releases/download/$RELEASE/graphite-minimal-$RELEASE.tgz" -+TARBALL="https://github.com/silnrsi/graphite/releases/download/$RELEASE/graphite2-minimal-$RELEASE.tgz" - - foo=`basename $0` - TMPFILE=`mktemp -t ${foo}` || exit 1 - - curl -L "$TARBALL" -o "$TMPFILE" - tar -x -z -C gfx/graphite2/ --strip-components 1 -f "$TMPFILE" || exit 1 - rm "$TMPFILE" - -diff --git a/gfx/graphite2/src/CachedFace.cpp b/gfx/graphite2/src/CachedFace.cpp ---- a/gfx/graphite2/src/CachedFace.cpp -+++ b/gfx/graphite2/src/CachedFace.cpp -@@ -64,20 +64,20 @@ bool CachedFace::runGraphite(Segment *se - return false; - - assert(m_cacheStore); - // find where the segment can be broken - Slot * subSegStartSlot = seg->first(); - Slot * subSegEndSlot = subSegStartSlot; - uint16 cmapGlyphs[eMaxSpliceSize]; - int subSegStart = 0; -- for (unsigned int i = 0; i < seg->charInfoCount(); ++i) -+ for (unsigned int i = 0; i < seg->charInfoCount() && subSegEndSlot; ++i) - { - const unsigned int length = i - subSegStart + 1; -- if (length < eMaxSpliceSize) -+ if (length < eMaxSpliceSize && subSegEndSlot->gid() < m_cacheStore->maxCmapGid()) - cmapGlyphs[length-1] = subSegEndSlot->gid(); - else return false; - const bool spaceOnly = m_cacheStore->isSpaceGlyph(subSegEndSlot->gid()); - // at this stage the character to slot mapping is still 1 to 1 - const int breakWeight = seg->charinfo(i)->breakWeight(), - nextBreakWeight = (i + 1 < seg->charInfoCount())? - seg->charinfo(i+1)->breakWeight() : 0; - const uint8 f = seg->charinfo(i)->flags(); -diff --git a/gfx/graphite2/src/Code.cpp b/gfx/graphite2/src/Code.cpp ---- a/gfx/graphite2/src/Code.cpp -+++ b/gfx/graphite2/src/Code.cpp -@@ -61,93 +61,88 @@ inline bool is_return(const instr i) { - const instr pop_ret = *opmap[POP_RET].impl, - ret_zero = *opmap[RET_ZERO].impl, - ret_true = *opmap[RET_TRUE].impl; - return i == pop_ret || i == ret_zero || i == ret_true; - } - - struct context - { -- context(uint8 ref=0) : codeRef(ref) {flags.changed=false; flags.referenced=false; flags.inserted=false;} -+ context(uint8 ref=0) : codeRef(ref) {flags.changed=false; flags.referenced=false;} - struct { - uint8 changed:1, -- referenced:1, -- inserted:1; -+ referenced:1; - } flags; - uint8 codeRef; - }; - - } // end namespace - - - class Machine::Code::decoder - { - public: - struct limits; -- struct analysis -- { -- static const int NUMCONTEXTS = 256; -- uint8 slotref; -- context contexts[NUMCONTEXTS]; -- byte max_ref; -- -- analysis() : slotref(0), max_ref(0) {}; -- void set_ref(int index, bool incinsert=false) throw(); -- void set_noref(int index) throw(); -- void set_changed(int index) throw(); -- -- }; -+ static const int NUMCONTEXTS = 256; - - decoder(limits & lims, Code &code, enum passtype pt) throw(); - - bool load(const byte * bc_begin, const byte * bc_end); - void apply_analysis(instr * const code, instr * code_end); -- byte max_ref() { return _analysis.max_ref; } -- int pre_context() const { return _pre_context; } -+ byte max_ref() { return _max_ref; } -+ int out_index() const { return _out_index; } - - private: -+ void set_ref(int index) throw(); -+ void set_noref(int index) throw(); -+ void set_changed(int index) throw(); - opcode fetch_opcode(const byte * bc); - void analyse_opcode(const opcode, const int8 * const dp) throw(); - bool emit_opcode(opcode opc, const byte * & bc); -- bool validate_opcode(const opcode opc, const byte * const bc); -+ bool validate_opcode(const byte opc, const byte * const bc); - bool valid_upto(const uint16 limit, const uint16 x) const throw(); - bool test_context() const throw(); -+ bool test_ref(int8 index) const throw(); - void failure(const status_t s) const throw() { _code.failure(s); } - - Code & _code; -- int _pre_context; -- uint16 _rule_length; -+ int _out_index; -+ uint16 _out_length; - instr * _instr; - byte * _data; - limits & _max; -- analysis _analysis; - enum passtype _passtype; - int _stack_depth; - bool _in_ctxt_item; -+ int16 _slotref; -+ context _contexts[NUMCONTEXTS]; -+ byte _max_ref; - }; - - - struct Machine::Code::decoder::limits - { - const byte * bytecode; - const uint8 pre_context; - const uint16 rule_length, - classes, - glyf_attrs, - features; - const byte attrid[gr_slatMax]; - }; - - inline Machine::Code::decoder::decoder(limits & lims, Code &code, enum passtype pt) throw() - : _code(code), -- _pre_context(code._constraint ? 0 : lims.pre_context), -- _rule_length(code._constraint ? 1 : lims.rule_length), -+ _out_index(code._constraint ? 0 : lims.pre_context), -+ _out_length(code._constraint ? 1 : lims.rule_length), - _instr(code._code), _data(code._data), _max(lims), _passtype(pt), - _stack_depth(0), -- _in_ctxt_item(false) -+ _in_ctxt_item(false), -+ _slotref(0), -+ _max_ref(0) - { } - - - - Machine::Code::Code(bool is_constraint, const byte * bytecode_begin, const byte * const bytecode_end, - uint8 pre_context, uint16 rule_length, const Silf & silf, const Face & face, - enum passtype pt, byte * * const _out) - : _code(0), _data(0), _data_size(0), _instr_count(0), _max_ref(0), _status(loaded), -@@ -163,17 +158,17 @@ Machine::Code::Code(bool is_constraint, - return; - } - assert(bytecode_end > bytecode_begin); - const opcode_t * op_to_fn = Machine::getOpcodeTable(); - - // Allocate code and data target buffers, these sizes are a worst case - // estimate. Once we know their real sizes the we'll shrink them. - if (_out) _code = reinterpret_cast(*_out); -- else _code = static_cast(malloc(estimateCodeDataOut(bytecode_end-bytecode_begin))); -+ else _code = static_cast(malloc(estimateCodeDataOut(bytecode_end-bytecode_begin, 1, is_constraint ? 0 : rule_length))); - _data = reinterpret_cast(_code + (bytecode_end - bytecode_begin)); - - if (!_code || !_data) { - failure(alloc_failed); - return; - } - - decoder::limits lims = { -@@ -266,23 +261,23 @@ bool Machine::Code::decoder::load(const - return bool(_code); - } - - // Validation check and fixups. - // - - opcode Machine::Code::decoder::fetch_opcode(const byte * bc) - { -- const opcode opc = opcode(*bc++); -+ const byte opc = *bc++; - - // Do some basic sanity checks based on what we know about the opcode - if (!validate_opcode(opc, bc)) return MAX_OPCODE; - - // And check it's arguments as far as possible -- switch (opc) -+ switch (opcode(opc)) - { - case NOP : - break; - case PUSH_BYTE : - case PUSH_BYTEU : - case PUSH_SHORT : - case PUSH_SHORTU : - case PUSH_LONG : -@@ -319,47 +314,57 @@ opcode Machine::Code::decoder::fetch_opc - case COND : - _stack_depth -= 2; - if (_stack_depth <= 0) - failure(underfull_stack); - break; - case NEXT : - case NEXT_N : // runtime checked - case COPY_NEXT : -- test_context(); -- ++_pre_context; -+ ++_out_index; -+ if (_out_index < -1 || _out_index > _out_length || _slotref > _max.rule_length) -+ failure(out_of_range_data); - break; - case PUT_GLYPH_8BIT_OBS : - valid_upto(_max.classes, bc[0]); - test_context(); - break; - case PUT_SUBS_8BIT_OBS : -- valid_upto(_rule_length, _pre_context + int8(bc[0])); -+ test_ref(int8(bc[0])); - valid_upto(_max.classes, bc[1]); - valid_upto(_max.classes, bc[2]); - test_context(); - break; - case PUT_COPY : -- valid_upto(_rule_length, _pre_context + int8(bc[0])); -+ test_ref(int8(bc[0])); - test_context(); - break; - case INSERT : - if (_passtype >= PASS_TYPE_POSITIONING) - failure(invalid_opcode); -- else -- --_pre_context; -+ ++_out_length; -+ if (_out_index < 0) ++_out_index; -+ if (_out_index < -1 || _out_index >= _out_length) -+ failure(out_of_range_data); - break; - case DELETE : - if (_passtype >= PASS_TYPE_POSITIONING) - failure(invalid_opcode); -- test_context(); -+ if (_out_index < _max.pre_context) -+ failure(out_of_range_data); -+ --_out_index; -+ --_out_length; -+ if (_out_index < -1 || _out_index > _out_length) -+ failure(out_of_range_data); - break; - case ASSOC : -+ if (bc[0] == 0) -+ failure(out_of_range_data); - for (uint8 num = bc[0]; num; --num) -- valid_upto(_rule_length, _pre_context + int8(bc[num])); -+ test_ref(int8(bc[num])); - test_context(); - break; - case CNTXT_ITEM : - valid_upto(_max.rule_length, _max.pre_context + int8(bc[0])); - if (bc + 2 + bc[1] >= _max.bytecode) failure(jump_past_end); - if (_in_ctxt_item) failure(nested_context_item); - break; - case ATTR_SET : -@@ -378,52 +383,43 @@ opcode Machine::Code::decoder::fetch_opc - failure(underfull_stack); - if (valid_upto(gr_slatMax, bc[0])) - valid_upto(_max.attrid[bc[0]], bc[1]); - test_context(); - break; - case PUSH_SLOT_ATTR : - ++_stack_depth; - valid_upto(gr_slatMax, bc[0]); -- valid_upto(_rule_length, _pre_context + int8(bc[1])); -+ test_ref(int8(bc[1])); - if (attrCode(bc[0]) == gr_slatUserDefn) // use IATTR for user attributes - failure(out_of_range_data); - break; - case PUSH_GLYPH_ATTR_OBS : -+ case PUSH_ATT_TO_GATTR_OBS : - ++_stack_depth; - valid_upto(_max.glyf_attrs, bc[0]); -- valid_upto(_rule_length, _pre_context + int8(bc[1])); -+ test_ref(int8(bc[1])); - break; -+ case PUSH_ATT_TO_GLYPH_METRIC : - case PUSH_GLYPH_METRIC : - ++_stack_depth; - valid_upto(kgmetDescent, bc[0]); -- valid_upto(_rule_length, _pre_context + int8(bc[1])); -+ test_ref(int8(bc[1])); - // level: dp[2] no check necessary - break; - case PUSH_FEAT : - ++_stack_depth; - valid_upto(_max.features, bc[0]); -- valid_upto(_rule_length, _pre_context + int8(bc[1])); -- break; -- case PUSH_ATT_TO_GATTR_OBS : -- ++_stack_depth; -- valid_upto(_max.glyf_attrs, bc[0]); -- valid_upto(_rule_length, _pre_context + int8(bc[1])); -- break; -- case PUSH_ATT_TO_GLYPH_METRIC : -- ++_stack_depth; -- valid_upto(kgmetDescent, bc[0]); -- valid_upto(_rule_length, _pre_context + int8(bc[1])); -- // level: dp[2] no check necessary -+ test_ref(int8(bc[1])); - break; - case PUSH_ISLOT_ATTR : - ++_stack_depth; - if (valid_upto(gr_slatMax, bc[0])) - { -- valid_upto(_rule_length, _pre_context + int8(bc[1])); -+ test_ref(int8(bc[1])); - valid_upto(_max.attrid[bc[0]], bc[2]); - } - break; - case PUSH_IGLYPH_ATTR :// not implemented - ++_stack_depth; - break; - case POP_RET : - if (--_stack_depth < 0) -@@ -442,118 +438,107 @@ opcode Machine::Code::decoder::fetch_opc - valid_upto(_max.attrid[bc[0]], bc[1]); - test_context(); - break; - case PUSH_PROC_STATE : // dummy: dp[0] no check necessary - case PUSH_VERSION : - ++_stack_depth; - break; - case PUT_SUBS : -- valid_upto(_rule_length, _pre_context + int8(bc[0])); -+ test_ref(int8(bc[0])); - valid_upto(_max.classes, uint16(bc[1]<< 8) | bc[2]); - valid_upto(_max.classes, uint16(bc[3]<< 8) | bc[4]); - test_context(); - break; - case PUT_SUBS2 : // not implemented - case PUT_SUBS3 : // not implemented - break; - case PUT_GLYPH : - valid_upto(_max.classes, uint16(bc[0]<< 8) | bc[1]); - test_context(); - break; - case PUSH_GLYPH_ATTR : - case PUSH_ATT_TO_GLYPH_ATTR : - ++_stack_depth; - valid_upto(_max.glyf_attrs, uint16(bc[0]<< 8) | bc[1]); -- valid_upto(_rule_length, _pre_context + int8(bc[2])); -+ test_ref(int8(bc[2])); -+ break; -+ case SET_FEAT : -+ valid_upto(_max.features, bc[0]); -+ test_ref(int8(bc[1])); - break; - default: - failure(invalid_opcode); - break; - } - -- return bool(_code) ? opc : MAX_OPCODE; -+ return bool(_code) ? opcode(opc) : MAX_OPCODE; - } - - - void Machine::Code::decoder::analyse_opcode(const opcode opc, const int8 * arg) throw() - { -- if (_code._constraint) return; -- - switch (opc) - { - case DELETE : - _code._delete = true; - break; -+ case ASSOC : -+ set_changed(0); -+// for (uint8 num = arg[0]; num; --num) -+// _analysis.set_noref(num); -+ break; - case PUT_GLYPH_8BIT_OBS : - case PUT_GLYPH : - _code._modify = true; -- _analysis.set_changed(0); -+ set_changed(0); - break; - case ATTR_SET : - case ATTR_ADD : -+ case ATTR_SUB : - case ATTR_SET_SLOT : - case IATTR_SET_SLOT : - case IATTR_SET : - case IATTR_ADD : - case IATTR_SUB : -- _analysis.set_noref(0); -+ set_noref(0); - break; - case NEXT : - case COPY_NEXT : -- if (!_analysis.contexts[_analysis.slotref].flags.inserted) -- ++_analysis.slotref; -- _analysis.contexts[_analysis.slotref] = context(_code._instr_count+1); -+ ++_slotref; -+ _contexts[_slotref] = context(_code._instr_count+1); - // if (_analysis.slotref > _analysis.max_ref) _analysis.max_ref = _analysis.slotref; - break; - case INSERT : -- _analysis.contexts[_analysis.slotref].flags.inserted = true; -+ if (_slotref >= 0) --_slotref; - _code._modify = true; - break; - case PUT_SUBS_8BIT_OBS : // slotref on 1st parameter - case PUT_SUBS : - _code._modify = true; -- _analysis.set_changed(0); -+ set_changed(0); - GR_FALLTHROUGH; - // no break - case PUT_COPY : -- { -- if (arg[0] != 0) { _analysis.set_changed(0); _code._modify = true; } -- if (arg[0] <= 0 && -arg[0] <= _analysis.slotref - _analysis.contexts[_analysis.slotref].flags.inserted) -- _analysis.set_ref(arg[0], true); -- else if (arg[0] > 0) -- _analysis.set_ref(arg[0], true); -+ if (arg[0] != 0) { set_changed(0); _code._modify = true; } -+ set_ref(arg[0]); - break; -- } -- case PUSH_ATT_TO_GATTR_OBS : // slotref on 2nd parameter -- if (_code._constraint) return; -- GR_FALLTHROUGH; -- // no break - case PUSH_GLYPH_ATTR_OBS : - case PUSH_SLOT_ATTR : - case PUSH_GLYPH_METRIC : -+ case PUSH_ATT_TO_GATTR_OBS : - case PUSH_ATT_TO_GLYPH_METRIC : - case PUSH_ISLOT_ATTR : - case PUSH_FEAT : -- if (arg[1] <= 0 && -arg[1] <= _analysis.slotref - _analysis.contexts[_analysis.slotref].flags.inserted) -- _analysis.set_ref(arg[1], true); -- else if (arg[1] > 0) -- _analysis.set_ref(arg[1], true); -+ case SET_FEAT : -+ set_ref(arg[1]); - break; - case PUSH_ATT_TO_GLYPH_ATTR : -- if (_code._constraint) return; -- GR_FALLTHROUGH; -- // no break - case PUSH_GLYPH_ATTR : -- if (arg[2] <= 0 && -arg[2] <= _analysis.slotref - _analysis.contexts[_analysis.slotref].flags.inserted) -- _analysis.set_ref(arg[2], true); -- else if (arg[2] > 0) -- _analysis.set_ref(arg[2], true); -- break; -- case ASSOC : // slotrefs in varargs -+ set_ref(arg[2]); - break; - default: - break; - } - } - - - bool Machine::Code::decoder::emit_opcode(opcode opc, const byte * & bc) -@@ -579,81 +564,89 @@ bool Machine::Code::decoder::emit_opcode - _data += param_sz; - _code._data_size += param_sz; - } - - // recursively decode a context item so we can split the skip into - // instruction and data portions. - if (opc == CNTXT_ITEM) - { -- assert(_pre_context == 0); -+ assert(_out_index == 0); - _in_ctxt_item = true; -- _pre_context = _max.pre_context + int8(_data[-2]); -- _rule_length = _max.rule_length; -+ _out_index = _max.pre_context + int8(_data[-2]); -+ _slotref = int8(_data[-2]); -+ _out_length = _max.rule_length; - - const size_t ctxt_start = _code._instr_count; - byte & instr_skip = _data[-1]; - byte & data_skip = *_data++; - ++_code._data_size; - const byte *curr_end = _max.bytecode; - - if (load(bc, bc + instr_skip)) - { - bc += instr_skip; - data_skip = instr_skip - (_code._instr_count - ctxt_start); - instr_skip = _code._instr_count - ctxt_start; - _max.bytecode = curr_end; - -- _rule_length = 1; -- _pre_context = 0; -+ _out_length = 1; -+ _out_index = 0; -+ _slotref = 0; - _in_ctxt_item = false; - } - else - { -- _pre_context = 0; -+ _out_index = 0; -+ _slotref = 0; - return false; - } - } - - return bool(_code); - } - - - void Machine::Code::decoder::apply_analysis(instr * const code, instr * code_end) - { - // insert TEMP_COPY commands for slots that need them (that change and are referenced later) - int tempcount = 0; - if (_code._constraint) return; - - const instr temp_copy = Machine::getOpcodeTable()[TEMP_COPY].impl[0]; -- for (const context * c = _analysis.contexts, * const ce = c + _analysis.slotref; c != ce; ++c) -+ for (const context * c = _contexts, * const ce = c + _slotref; c < ce; ++c) - { - if (!c->flags.referenced || !c->flags.changed) continue; - - instr * const tip = code + c->codeRef + tempcount; - memmove(tip+1, tip, (code_end - tip) * sizeof(instr)); - *tip = temp_copy; - ++code_end; - ++tempcount; - _code._delete = true; - } - - _code._instr_count = code_end - code; - } - - - inline --bool Machine::Code::decoder::validate_opcode(const opcode opc, const byte * const bc) -+bool Machine::Code::decoder::validate_opcode(const byte opc, const byte * const bc) - { - if (opc >= MAX_OPCODE) - { - failure(invalid_opcode); - return false; - } - const opcode_t & op = Machine::getOpcodeTable()[opc]; -+ if (op.impl[_code._constraint] == 0) -+ { -+ failure(unimplemented_opcode_used); -+ return false; -+ } - if (op.param_sz == VARARGS && bc >= _max.bytecode) - { - failure(arguments_exhausted); - return false; - } - const size_t param_sz = op.param_sz == VARARGS ? bc[0] + 1 : op.param_sz; - if (bc - 1 + param_sz >= _max.bytecode) - { -@@ -666,56 +659,69 @@ bool Machine::Code::decoder::validate_op - - bool Machine::Code::decoder::valid_upto(const uint16 limit, const uint16 x) const throw() - { - const bool t = (limit != 0) && (x < limit); - if (!t) failure(out_of_range_data); - return t; - } - -+inline -+bool Machine::Code::decoder::test_ref(int8 index) const throw() -+{ -+ if (_code._constraint && !_in_ctxt_item) -+ { -+ if (index > 0 || -index > _max.pre_context) -+ { -+ failure(out_of_range_data); -+ return false; -+ } -+ } -+ else -+ return valid_upto(_max.rule_length, _slotref + _max.pre_context + index); -+ return true; -+} -+ - bool Machine::Code::decoder::test_context() const throw() - { -- if (_pre_context >= _rule_length || _analysis.slotref >= analysis::NUMCONTEXTS - 1) -+ if (_out_index >= _out_length || _out_index < 0 || _slotref >= NUMCONTEXTS - 1) - { - failure(out_of_range_data); - return false; - } - return true; - } - - inline - void Machine::Code::failure(const status_t s) throw() { - release_buffers(); - _status = s; - } - - - inline --void Machine::Code::decoder::analysis::set_ref(int index, bool incinsert) throw() { -- if (incinsert && contexts[slotref].flags.inserted) --index; -- if (index + slotref < 0 || index + slotref >= NUMCONTEXTS) return; -- contexts[index + slotref].flags.referenced = true; -- if ((index > 0 || !contexts[index + slotref].flags.inserted) && index + slotref > max_ref) max_ref = index + slotref; -+void Machine::Code::decoder::set_ref(int index) throw() { -+ if (index + _slotref < 0 || index + _slotref >= NUMCONTEXTS) return; -+ _contexts[index + _slotref].flags.referenced = true; -+ if (index + _slotref > _max_ref) _max_ref = index + _slotref; - } - - - inline --void Machine::Code::decoder::analysis::set_noref(int index) throw() { -- if (contexts[slotref].flags.inserted) --index; -- if (index + slotref < 0 || index + slotref >= NUMCONTEXTS) return; -- if ((index > 0 || !contexts[index + slotref].flags.inserted) && index + slotref > max_ref) max_ref = index + slotref; -+void Machine::Code::decoder::set_noref(int index) throw() { -+ if (index + _slotref < 0 || index + _slotref >= NUMCONTEXTS) return; -+ if (index + _slotref > _max_ref) _max_ref = index + _slotref; - } - - - inline --void Machine::Code::decoder::analysis::set_changed(int index) throw() { -- if (contexts[slotref].flags.inserted) --index; -- if (index + slotref < 0 || index + slotref >= NUMCONTEXTS) return; -- contexts[index + slotref].flags.changed = true; -- if ((index > 0 || !contexts[index + slotref].flags.inserted) && index + slotref > max_ref) max_ref = index + slotref; -+void Machine::Code::decoder::set_changed(int index) throw() { -+ if (index + _slotref < 0 || index + _slotref >= NUMCONTEXTS) return; -+ _contexts[index + _slotref].flags.changed= true; -+ if (index + _slotref > _max_ref) _max_ref = index + _slotref; - } - - - void Machine::Code::release_buffers() throw() - { - if (_own) - free(_code); - _code = 0; -diff --git a/gfx/graphite2/src/Collider.cpp b/gfx/graphite2/src/Collider.cpp ---- a/gfx/graphite2/src/Collider.cpp -+++ b/gfx/graphite2/src/Collider.cpp -@@ -21,17 +21,17 @@ - - Alternatively, the contents of this file may be used under the terms of the - Mozilla Public License (http://mozilla.org/MPL) or the GNU General Public - License, as published by the Free Software Foundation, either version 2 - of the License or (at your option) any later version. - */ - #include - #include --#include -+#include - #include - #include - #include "inc/Collider.h" - #include "inc/Segment.h" - #include "inc/Slot.h" - #include "inc/GlyphCache.h" - #include "inc/Sparse.h" - -@@ -824,43 +824,43 @@ bool KernCollider::initSlot(Segment *seg - if (margin < 10) margin = 10; - - _limit = limit; - _offsetPrev = offsetPrev; // kern from a previous pass - - // Calculate the height of the glyph and how many horizontal slices to use. - if (_maxy >= 1e37f) - { -- _maxy = ymax; -- _miny = ymin; - _sliceWidth = margin / 1.5f; -+ _maxy = ymax + margin; -+ _miny = ymin - margin; - numSlices = int((_maxy - _miny + 2) / (_sliceWidth / 1.5f) + 1.f); // +2 helps with rounding errors - _edges.clear(); - _edges.insert(_edges.begin(), numSlices, (dir & 1) ? 1e38f : -1e38f); - _xbound = (dir & 1) ? (float)1e38f : (float)-1e38f; - } - else if (_maxy != ymax || _miny != ymin) - { - if (_miny != ymin) - { -- numSlices = int((ymin - _miny) / _sliceWidth - 1); -+ numSlices = int((ymin - margin - _miny) / _sliceWidth - 1); - _miny += numSlices * _sliceWidth; - if (numSlices < 0) - _edges.insert(_edges.begin(), -numSlices, (dir & 1) ? 1e38f : -1e38f); - else if ((unsigned)numSlices < _edges.size()) // this shouldn't fire since we always grow the range - { - Vector::iterator e = _edges.begin(); - while (numSlices--) - ++e; - _edges.erase(_edges.begin(), e); - } - } - if (_maxy != ymax) - { -- numSlices = int((ymax - _miny) / _sliceWidth + 1); -+ numSlices = int((ymax + margin - _miny) / _sliceWidth + 1); - _maxy = numSlices * _sliceWidth + _miny; - if (numSlices > (int)_edges.size()) - _edges.insert(_edges.end(), numSlices - _edges.size(), (dir & 1) ? 1e38f : -1e38f); - else if (numSlices < (int)_edges.size()) // this shouldn't fire since we always grow the range - { - while ((int)_edges.size() > numSlices) - _edges.pop_back(); - } -@@ -930,53 +930,60 @@ bool KernCollider::initSlot(Segment *seg - // Return false if we know there is no collision, true if we think there might be one. - bool KernCollider::mergeSlot(Segment *seg, Slot *slot, const Position &currShift, float currSpace, int dir, GR_MAYBE_UNUSED json * const dbgout) - { - int rtl = (dir & 1) * 2 - 1; - if (!seg->getFace()->glyphs().check(slot->gid())) - return false; - const Rect &bb = seg->theGlyphBBoxTemporary(slot->gid()); - const float sx = slot->origin().x + currShift.x; -- float x = sx + (rtl > 0 ? bb.tr.x : bb.bl.x); -+ float x = (sx + (rtl > 0 ? bb.tr.x : bb.bl.x)) * rtl; - // this isn't going to reduce _mingap so skip -- if ((rtl > 0 && x < _xbound - _mingap - currSpace) || (rtl <= 0 && x > _xbound + _mingap + currSpace)) -+ if (x < rtl * (_xbound - _mingap - currSpace)) - return false; - - const float sy = slot->origin().y + currShift.y; -- int smin = max(0, int((bb.bl.y + (1 - _miny + sy)) / _sliceWidth + 1)); -- int smax = min((int)_edges.size() - 1, int((bb.tr.y + (1 - _miny + sy)) / _sliceWidth + 1)); -+ int smin = max(1, int((bb.bl.y + (1 - _miny + sy)) / _sliceWidth + 1)) - 1; -+ int smax = min((int)_edges.size() - 2, int((bb.tr.y + (1 - _miny + sy)) / _sliceWidth + 1)) + 1; -+ if (smin > smax) -+ return false; - bool collides = false; -+ float below = smin > 0 ? _edges[smin-1] * rtl : 1e38f; -+ float here = _edges[smin] * rtl; -+ float above = smin < (int)_edges.size() - 1 ? _edges[smin+1] * rtl : 1e38f; - - for (int i = smin; i <= smax; ++i) - { - float t; - float y = (float)(_miny - 1 + (i + .5f) * _sliceWidth); // vertical center of slice -- if (x * rtl > _edges[i] * rtl - _mingap - currSpace) -+ if ( (x > here - _mingap - currSpace) -+ || (x > below - _mingap - currSpace) -+ || (x > above - _mingap - currSpace)) - { - // 2 * currSpace to account for the space that is already separating them and the space we want to add -- float m = get_edge(seg, slot, currShift, y, _sliceWidth, rtl > 0) + 2 * rtl * currSpace; -- t = rtl * (_edges[i] - m); -+ float m = get_edge(seg, slot, currShift, y, _sliceWidth, rtl > 0) * rtl + 2 * currSpace; - // Check slices above and below (if any). -- if (i < (int)_edges.size() - 1) t = min(t, rtl * (_edges[i+1] - m)); -- if (i > 0) t = min(t, rtl * (_edges[i-1] - m)); -+ t = min(min(here, below), above) - m; - // _mingap is positive to shrink - if (t < _mingap) - { - _mingap = t; - collides = true; - } - #if !defined GRAPHITE2_NTRACING - // Debugging - remember the closest neighboring edge for this slice. -- if (rtl * m > rtl * _nearEdges[i]) -+ if (m > rtl * _nearEdges[i]) - { - _slotNear[i] = slot; -- _nearEdges[i] = m; -+ _nearEdges[i] = m * rtl; - } - #endif - } -+ below = here; here = above; -+ above = i < (int)_edges.size() - 2 ? _edges[i+2] * rtl : 1e38f; - } - return collides; // note that true is not a necessarily reliable value - - } // end of KernCollider::mergeSlot - - - // Return the amount to kern by. - Position KernCollider::resolve(GR_MAYBE_UNUSED Segment *seg, GR_MAYBE_UNUSED Slot *slot, -diff --git a/gfx/graphite2/src/Face.cpp b/gfx/graphite2/src/Face.cpp ---- a/gfx/graphite2/src/Face.cpp -+++ b/gfx/graphite2/src/Face.cpp -@@ -178,17 +178,18 @@ bool Face::runGraphite(Segment *seg, con - if ((seg->dir() & 3) == 3 && aSilf->bidiPass() == 0xFF) - seg->doMirror(aSilf->aMirror()); - bool res = aSilf->runGraphite(seg, 0, aSilf->positionPass(), true); - if (res) - { - seg->associateChars(0, seg->charInfoCount()); - if (aSilf->flags() & 0x20) - res &= seg->initCollisions(); -- res &= aSilf->runGraphite(seg, aSilf->positionPass(), aSilf->numPasses(), false); -+ if (res) -+ res &= aSilf->runGraphite(seg, aSilf->positionPass(), aSilf->numPasses(), false); - } - - #if !defined GRAPHITE2_NTRACING - if (dbgout) - { - seg->positionSlots(0, 0, 0, aSilf->dir()); - *dbgout << json::item - << json::close // Close up the passes array -@@ -226,17 +227,17 @@ const Silf *Face::chooseSilf(uint32 scri - return m_silfs; - } - - uint16 Face::findPseudo(uint32 uid) const - { - return (m_numSilf) ? m_silfs[0].findPseudo(uid) : 0; - } - --uint16 Face::getGlyphMetric(uint16 gid, uint8 metric) const -+int32 Face::getGlyphMetric(uint16 gid, uint8 metric) const - { - switch (metrics(metric)) - { - case kgmetAscent : return m_ascent; - case kgmetDescent : return m_descent; - default: - if (gid >= glyphs().numGlyphs()) return 0; - return glyphs().glyph(gid)->getMetric(metric); -@@ -277,17 +278,17 @@ Face::Table::Table(const Face & face, co - : _f(&face), _compressed(false) - { - size_t sz = 0; - _p = static_cast((*_f->m_ops.get_table)(_f->m_appFaceHandle, n, &sz)); - _sz = uint32(sz); - - if (!TtfUtil::CheckTable(n, _p, _sz)) - { -- this->~Table(); // Make sure we release the table buffer even if the table filed it's checks -+ releaseBuffers(); // Make sure we release the table buffer even if the table failed it's checks - return; - } - - if (be::peek(_p) >= version) - decompress(); - } - - void Face::Table::releaseBuffers() -@@ -324,17 +325,18 @@ Error Face::Table::decompress() - switch(compression(hdr >> 27)) - { - case NONE: return e; - - case LZ4: - { - uncompressed_size = hdr & 0x07ffffff; - uncompressed_table = gralloc(uncompressed_size); -- if (!e.test(!uncompressed_table, E_OUTOFMEM)) -+ if (!e.test(!uncompressed_table || uncompressed_size < 4, E_OUTOFMEM)) -+ memset(uncompressed_table, 0, 4); // make sure version number is initialised - // coverity[forward_null : FALSE] - uncompressed_table has been checked so can't be null - // coverity[checked_return : FALSE] - we test e later - e.test(lz4::decompress(p, _sz - 2*sizeof(uint32), uncompressed_table, uncompressed_size) != signed(uncompressed_size), E_SHRINKERFAILED); - break; - } - - default: - e.error(E_BADSCHEME); -diff --git a/gfx/graphite2/src/GlyphCache.cpp b/gfx/graphite2/src/GlyphCache.cpp ---- a/gfx/graphite2/src/GlyphCache.cpp -+++ b/gfx/graphite2/src/GlyphCache.cpp -@@ -111,18 +111,20 @@ private: - _num_glyphs_attributes, - _num_attrs; // number of glyph attributes per glyph - }; - - - - GlyphCache::GlyphCache(const Face & face, const uint32 face_options) - : _glyph_loader(new Loader(face, bool(face_options & gr_face_dumbRendering))), -- _glyphs(_glyph_loader && *_glyph_loader ? grzeroalloc(_glyph_loader->num_glyphs()) : 0), -- _boxes(_glyph_loader && _glyph_loader->has_boxes() ? grzeroalloc(_glyph_loader->num_glyphs()) : 0), -+ _glyphs(_glyph_loader && *_glyph_loader && _glyph_loader->num_glyphs() -+ ? grzeroalloc(_glyph_loader->num_glyphs()) : 0), -+ _boxes(_glyph_loader && _glyph_loader->has_boxes() && _glyph_loader->num_glyphs() -+ ? grzeroalloc(_glyph_loader->num_glyphs()) : 0), - _num_glyphs(_glyphs ? _glyph_loader->num_glyphs() : 0), - _num_attrs(_glyphs ? _glyph_loader->num_attrs() : 0), - _upem(_glyphs ? _glyph_loader->units_per_em() : 0) - { - if ((face_options & gr_face_preloadGlyphs) && _glyph_loader && _glyphs) - { - int numsubs = 0; - GlyphFace * const glyphs = new GlyphFace [_num_glyphs]; -@@ -139,17 +141,17 @@ GlyphCache::GlyphCache(const Face & face - for (uint16 gid = 1; loaded && gid != _num_glyphs; ++gid) - _glyphs[gid] = loaded = _glyph_loader->read_glyph(gid, glyphs[gid], &numsubs); - - if (!loaded) - { - _glyphs[0] = 0; - delete [] glyphs; - } -- else if (numsubs > 0) -+ else if (numsubs > 0 && _boxes) - { - GlyphBox * boxes = (GlyphBox *)gralloc(_num_glyphs * sizeof(GlyphBox) + numsubs * 8 * sizeof(float)); - GlyphBox * currbox = boxes; - - for (uint16 gid = 0; currbox && gid != _num_glyphs; ++gid) - { - _boxes[gid] = currbox; - currbox = _glyph_loader->read_box(gid, currbox, *_glyphs[gid]); -@@ -204,16 +206,18 @@ GlyphCache::~GlyphCache() - free(_boxes[0]); - free(_boxes); - } - delete _glyph_loader; - } - - const GlyphFace *GlyphCache::glyph(unsigned short glyphid) const //result may be changed by subsequent call with a different glyphid - { -+ if (glyphid >= numGlyphs()) -+ return _glyphs[0]; - const GlyphFace * & p = _glyphs[glyphid]; - if (p == 0 && _glyph_loader) - { - int numsubs = 0; - GlyphFace * g = new GlyphFace(); - if (g) p = _glyph_loader->read_glyph(glyphid, *g, &numsubs); - if (!p) - { -@@ -280,26 +284,27 @@ GlyphCache::Loader::Loader(const Face & - _long_fmt = flags & 1; - int tmpnumgattrs = (m_pGloc.size() - - (p - m_pGloc) - - sizeof(uint16)*(flags & 0x2 ? _num_attrs : 0)) - / (_long_fmt ? sizeof(uint32) : sizeof(uint16)) - 1; - - if (version >= 0x00020000 || tmpnumgattrs < 0 || tmpnumgattrs > 65535 - || _num_attrs == 0 || _num_attrs > 0x3000 // is this hard limit appropriate? -- || _num_glyphs_graphics > tmpnumgattrs) -+ || _num_glyphs_graphics > tmpnumgattrs -+ || m_pGlat.size() < 4) - { - _head = Face::Table(); - return; - } - - _num_glyphs_attributes = static_cast(tmpnumgattrs); - p = m_pGlat; - version = be::read(p); -- if (version >= 0x00040000) // reject Glat tables that are too new -+ if (version >= 0x00040000 || (version >= 0x00030000 && m_pGlat.size() < 8)) // reject Glat tables that are too new - { - _head = Face::Table(); - return; - } - else if (version >= 0x00030000) - { - unsigned int glatflags = be::read(p); - _has_boxes = glatflags & 1; -@@ -381,22 +386,24 @@ const GlyphFace * GlyphCache::Loader::re - } - else - { - be::skip(gloc, glyphid); - glocs = be::read(gloc); - gloce = be::peek(gloc); - } - -- if (glocs >= m_pGlat.size() || gloce > m_pGlat.size()) -+ if (glocs >= m_pGlat.size() - 1 || gloce > m_pGlat.size()) - return 0; - - const uint32 glat_version = be::peek(m_pGlat); -- if (glat_version == 0x00030000) -+ if (glat_version >= 0x00030000) - { -+ if (glocs >= gloce) -+ return 0; - const byte * p = m_pGlat + glocs; - uint16 bmap = be::read(p); - int num = bit_set_count((uint32)bmap); - if (numsubs) *numsubs += num; - glocs += 6 + 8 * num; - if (glocs > gloce) - return 0; - } -@@ -449,29 +456,31 @@ GlyphBox * GlyphCache::Loader::read_box( - } - else - { - be::skip(gloc, gid); - glocs = be::read(gloc); - gloce = be::peek(gloc); - } - -- if (glocs >= m_pGlat.size() || gloce > m_pGlat.size()) -+ if (gloce > m_pGlat.size() || glocs + 6 >= gloce) - return 0; - - const byte * p = m_pGlat + glocs; - uint16 bmap = be::read(p); - int num = bit_set_count((uint32)bmap); - - Rect bbox = glyph.theBBox(); - Rect diamax(Position(bbox.bl.x + bbox.bl.y, bbox.bl.x - bbox.tr.y), - Position(bbox.tr.x + bbox.tr.y, bbox.tr.x - bbox.bl.y)); - Rect diabound = readbox(diamax, p[0], p[2], p[1], p[3]); - ::new (curr) GlyphBox(num, bmap, &diabound); - be::skip(p, 4); -+ if (glocs + 6 + num * 8 >= gloce) -+ return 0; - - for (int i = 0; i < num * 2; ++i) - { - Rect box = readbox((i & 1) ? diamax : bbox, p[0], p[2], p[1], p[3]); - curr->addSubBox(i >> 1, i & 1, &box); - be::skip(p, 4); - } - return (GlyphBox *)((char *)(curr) + sizeof(GlyphBox) + 2 * num * sizeof(Rect)); -diff --git a/gfx/graphite2/src/GlyphFace.cpp b/gfx/graphite2/src/GlyphFace.cpp ---- a/gfx/graphite2/src/GlyphFace.cpp -+++ b/gfx/graphite2/src/GlyphFace.cpp -@@ -24,25 +24,25 @@ Mozilla Public License (http://mozilla.o - License, as published by the Free Software Foundation, either version 2 - of the License or (at your option) any later version. - */ - #include "inc/GlyphFace.h" - - - using namespace graphite2; - --uint16 GlyphFace::getMetric(uint8 metric) const -+int32 GlyphFace::getMetric(uint8 metric) const - { - switch (metrics(metric)) - { -- case kgmetLsb : return static_cast(m_bbox.bl.x); -- case kgmetRsb : return static_cast(m_advance.x - m_bbox.tr.x); -- case kgmetBbTop : return static_cast(m_bbox.tr.y); -- case kgmetBbBottom : return static_cast(m_bbox.bl.y); -- case kgmetBbLeft : return static_cast(m_bbox.bl.x); -- case kgmetBbRight : return static_cast(m_bbox.tr.x); -- case kgmetBbHeight : return static_cast(m_bbox.tr.y - m_bbox.bl.y); -- case kgmetBbWidth : return static_cast(m_bbox.tr.x - m_bbox.bl.x); -- case kgmetAdvWidth : return static_cast(m_advance.x); -- case kgmetAdvHeight : return static_cast(m_advance.y); -+ case kgmetLsb : return m_bbox.bl.x; -+ case kgmetRsb : return m_advance.x - m_bbox.tr.x; -+ case kgmetBbTop : return m_bbox.tr.y; -+ case kgmetBbBottom : return m_bbox.bl.y; -+ case kgmetBbLeft : return m_bbox.bl.x; -+ case kgmetBbRight : return m_bbox.tr.x; -+ case kgmetBbHeight : return m_bbox.tr.y - m_bbox.bl.y; -+ case kgmetBbWidth : return m_bbox.tr.x - m_bbox.bl.x; -+ case kgmetAdvWidth : return m_advance.x; -+ case kgmetAdvHeight : return m_advance.y; - default : return 0; - } - } -diff --git a/gfx/graphite2/src/Justifier.cpp b/gfx/graphite2/src/Justifier.cpp ---- a/gfx/graphite2/src/Justifier.cpp -+++ b/gfx/graphite2/src/Justifier.cpp -@@ -95,62 +95,63 @@ float Segment::justify(Slot *pSlot, cons - - end = pLast->nextSibling(); - pFirst = pFirst->nextSibling(); - - int icount = 0; - int numLevels = silf()->numJustLevels(); - if (!numLevels) - { -- for (s = pSlot; s != end; s = s->next()) -+ for (s = pSlot; s && s != end; s = s->nextSibling()) - { - CharInfo *c = charinfo(s->before()); - if (isWhitespace(c->unicodeChar())) - { - s->setJustify(this, 0, 3, 1); - s->setJustify(this, 0, 2, 1); - s->setJustify(this, 0, 0, -1); - ++icount; - } - } - if (!icount) - { -- for (s = pSlot; s != end; s = s->nextSibling()) -+ for (s = pSlot; s && s != end; s = s->nextSibling()) - { - s->setJustify(this, 0, 3, 1); - s->setJustify(this, 0, 2, 1); - s->setJustify(this, 0, 0, -1); - } - } - ++numLevels; - } - - Vector stats(numLevels); -- for (s = pFirst; s != end; s = s->nextSibling()) -+ for (s = pFirst; s && s != end; s = s->nextSibling()) - { - float w = s->origin().x / scale + s->advance() - base; - if (w > currWidth) currWidth = w; - for (int j = 0; j < numLevels; ++j) - stats[j].accumulate(s, this, j); - s->just(0); - } - - for (int i = (width < 0.0f) ? -1 : numLevels - 1; i >= 0; --i) - { - float diff; - float error = 0.; - float diffpw; - int tWeight = stats[i].weight(); -+ if (tWeight == 0) continue; - - do { - error = 0.; - diff = width - currWidth; - diffpw = diff / tWeight; - tWeight = 0; -- for (s = pFirst; s != end; s = s->nextSibling()) // don't include final glyph -+ for (s = pFirst; s && s != end; s = s->nextSibling()) // don't include final glyph - { - int w = s->getJustify(this, i, 3); - float pref = diffpw * w + error; - int step = s->getJustify(this, i, 2); - if (!step) step = 1; // handle lazy font developers - if (pref > 0) - { - float max = uint16(s->getJustify(this, i, 0)); -diff --git a/gfx/graphite2/src/NameTable.cpp b/gfx/graphite2/src/NameTable.cpp ---- a/gfx/graphite2/src/NameTable.cpp -+++ b/gfx/graphite2/src/NameTable.cpp -@@ -42,25 +42,26 @@ NameTable::NameTable(const void* data, s - memcpy(pdata, data, length); - m_table = reinterpret_cast(pdata); - - if ((length > sizeof(TtfUtil::Sfnt::FontNames)) && - (length > sizeof(TtfUtil::Sfnt::FontNames) + - sizeof(TtfUtil::Sfnt::NameRecord) * ( be::swap(m_table->count) - 1))) - { - uint16 offset = be::swap(m_table->string_offset); -- m_nameData = reinterpret_cast(pdata) + offset; -- setPlatformEncoding(platformId, encodingID); -- m_nameDataLength = length - offset; -+ if (offset < length) -+ { -+ m_nameData = reinterpret_cast(pdata) + offset; -+ setPlatformEncoding(platformId, encodingID); -+ m_nameDataLength = length - offset; -+ return; -+ } - } -- else -- { -- free(const_cast(m_table)); -- m_table = NULL; -- } -+ free(const_cast(m_table)); -+ m_table = NULL; - } - - uint16 NameTable::setPlatformEncoding(uint16 platformId, uint16 encodingID) - { - if (!m_nameData) return 0; - uint16 i = 0; - uint16 count = be::swap(m_table->count); - for (; i < count; i++) -@@ -139,28 +140,36 @@ void* NameTable::getName(uint16& languag - uint16 offset = be::swap(nameRecord.offset); - if(offset + utf16Length > m_nameDataLength) - { - languageId = 0; - length = 0; - return NULL; - } - utf16Length >>= 1; // in utf16 units -- utf16::codeunit_t * utf16Name = gralloc(utf16Length); -+ utf16::codeunit_t * utf16Name = gralloc(utf16Length + 1); - if (!utf16Name) - { - languageId = 0; - length = 0; - return NULL; - } - const uint8* pName = m_nameData + offset; - for (size_t i = 0; i < utf16Length; i++) - { - utf16Name[i] = be::read(pName); - } -+ utf16Name[utf16Length] = 0; -+ if (!utf16::validate(utf16Name, utf16Name + utf16Length)) -+ { -+ free(utf16Name); -+ languageId = 0; -+ length = 0; -+ return NULL; -+ } - switch (enc) - { - case gr_utf8: - { - utf8::codeunit_t* uniBuffer = gralloc(3 * utf16Length + 1); - if (!uniBuffer) - { - free(utf16Name); -diff --git a/gfx/graphite2/src/Pass.cpp b/gfx/graphite2/src/Pass.cpp ---- a/gfx/graphite2/src/Pass.cpp -+++ b/gfx/graphite2/src/Pass.cpp -@@ -96,17 +96,17 @@ bool Pass::readPass(const byte * const p - const byte * p = pass_start, - * const pass_end = p + pass_length; - size_t numRanges; - - if (e.test(pass_length < 40, E_BADPASSLENGTH)) return face.error(e); - // Read in basic values - const byte flags = be::read(p); - if (e.test((flags & 0x1f) && -- (pt < PASS_TYPE_POSITIONING || !m_silf->aCollision() || !face.glyphs().hasBoxes()), -+ (pt < PASS_TYPE_POSITIONING || !m_silf->aCollision() || !face.glyphs().hasBoxes() || !(m_silf->flags() & 0x20)), - E_BADCOLLISIONPASS)) - return face.error(e); - m_numCollRuns = flags & 0x7; - m_kernColls = (flags >> 3) & 0x3; - m_isReverseDir = (flags >> 5) & 0x1; - m_iMaxLoop = be::read(p); - if (m_iMaxLoop < 1) m_iMaxLoop = 1; - be::skip(p,2); // skip maxContext & maxBackup -@@ -226,17 +226,21 @@ bool Pass::readRules(const byte * rule_m - // Load rules. - const byte * ac_begin = 0, * rc_begin = 0, - * ac_end = ac_data + be::peek(o_action), - * rc_end = rc_data + be::peek(o_constraint); - - // Allocate pools - m_rules = new Rule [m_numRules]; - m_codes = new Code [m_numRules*2]; -- const size_t prog_pool_sz = vm::Machine::Code::estimateCodeDataOut(ac_end - ac_data + rc_end - rc_data); -+ int totalSlots = 0; -+ const uint16 *tsort = sort_key; -+ for (int i = 0; i < m_numRules; ++i) -+ totalSlots += be::peek(--tsort); -+ const size_t prog_pool_sz = vm::Machine::Code::estimateCodeDataOut(ac_end - ac_data + rc_end - rc_data, 2 * m_numRules, totalSlots); - m_progs = gralloc(prog_pool_sz); - byte * prog_pool_free = m_progs, - * prog_pool_end = m_progs + prog_pool_sz; - if (e.test(!(m_rules && m_codes && m_progs), E_OUTOFMEM)) return face.error(e); - - Rule * r = m_rules + m_numRules - 1; - for (size_t n = m_numRules; r >= m_rules; --n, --r, ac_end = ac_begin, rc_end = rc_begin) - { -@@ -249,17 +253,17 @@ bool Pass::readRules(const byte * rule_m - if (r->sort > 63 || r->preContext >= r->sort || r->preContext > m_maxPreCtxt || r->preContext < m_minPreCtxt) - return false; - ac_begin = ac_data + be::peek(--o_action); - --o_constraint; - rc_begin = be::peek(o_constraint) ? rc_data + be::peek(o_constraint) : rc_end; - - if (ac_begin > ac_end || ac_begin > ac_data_end || ac_end > ac_data_end - || rc_begin > rc_end || rc_begin > rc_data_end || rc_end > rc_data_end -- || vm::Machine::Code::estimateCodeDataOut(ac_end - ac_begin + rc_end - rc_begin) > size_t(prog_pool_end - prog_pool_free)) -+ || vm::Machine::Code::estimateCodeDataOut(ac_end - ac_begin + rc_end - rc_begin, 2, r->sort) > size_t(prog_pool_end - prog_pool_free)) - return false; - r->action = new (m_codes+n*2-2) vm::Machine::Code(false, ac_begin, ac_end, r->preContext, r->sort, *m_silf, face, pt, &prog_pool_free); - r->constraint = new (m_codes+n*2-1) vm::Machine::Code(true, rc_begin, rc_end, r->preContext, r->sort, *m_silf, face, pt, &prog_pool_free); - - if (e.test(!r->action || !r->constraint, E_OUTOFMEM) - || e.test(r->action->status() != Code::loaded, r->action->status() + E_CODEFAILURE) - || e.test(r->constraint->status() != Code::loaded, r->constraint->status() + E_CODEFAILURE) - || e.test(!r->constraint->immutable(), E_MUTABLECCODE)) -@@ -330,17 +334,17 @@ bool Pass::readStates(const byte * start - - // load state transition table. - for (uint16 * t = m_transitions, - * const t_end = t + m_numTransition*m_numColumns; t != t_end; ++t) - { - *t = be::read(states); - if (e.test(*t >= m_numStates, E_BADSTATE)) - { -- face.error_context((face.error_context() & 0xFFFF00) + EC_ATRANS + (((t - m_transitions) / m_numColumns) << 24)); -+ face.error_context((face.error_context() & 0xFFFF00) + EC_ATRANS + (((t - m_transitions) / m_numColumns) << 8)); - return face.error(e); - } - } - - State * s = m_states, - * const success_begin = m_states + m_numStates - m_numSuccess; - const RuleEntry * rule_map_end = m_ruleMap + be::peek(o_rule_map + m_numSuccess*sizeof(uint16)); - for (size_t n = m_numStates; n; --n, ++s) -@@ -351,17 +355,18 @@ bool Pass::readStates(const byte * start - if (e.test(begin >= rule_map_end || end > rule_map_end || begin > end, E_BADRULEMAPPING)) - { - face.error_context((face.error_context() & 0xFFFF00) + EC_ARULEMAP + (n << 24)); - return face.error(e); - } - s->rules = begin; - s->rules_end = (end - begin <= FiniteStateMachine::MAX_RULES)? end : - begin + FiniteStateMachine::MAX_RULES; -- qsort(begin, end - begin, sizeof(RuleEntry), &cmpRuleEntry); -+ if (begin) // keep UBSan happy can't call qsort with null begin -+ qsort(begin, end - begin, sizeof(RuleEntry), &cmpRuleEntry); - } - - return true; - } - - bool Pass::readRanges(const byte * ranges, size_t num_ranges, Error &e) - { - m_cols = gralloc(m_numGlyphs); -@@ -449,19 +454,19 @@ bool Pass::runFSM(FiniteStateMachine& fs - if (fsm.slots.context() < m_minPreCtxt) - return false; - - uint16 state = m_startStates[m_maxPreCtxt - fsm.slots.context()]; - uint8 free_slots = SlotMap::MAX_SLOTS; - do - { - fsm.slots.pushSlot(slot); -- if (--free_slots == 0 -- || slot->gid() >= m_numGlyphs -+ if (slot->gid() >= m_numGlyphs - || m_cols[slot->gid()] == 0xffffU -+ || --free_slots == 0 - || state >= m_numTransition) - return free_slots != 0; - - const uint16 * transitions = m_transitions + state*m_numColumns; - state = transitions[m_cols[slot->gid()]]; - if (state >= m_successStart) - fsm.rules.accumulate_rules(m_states[state]); - -@@ -627,37 +632,40 @@ bool Pass::testPassConstraint(Machine & - } - - - bool Pass::testConstraint(const Rule & r, Machine & m) const - { - const uint16 curr_context = m.slotMap().context(); - if (unsigned(r.sort - r.preContext) > m.slotMap().size() - curr_context - || curr_context - r.preContext < 0) return false; -+ -+ vm::slotref * map = m.slotMap().begin() + curr_context - r.preContext; -+ if (map[r.sort - 1] == 0) -+ return false; -+ - if (!*r.constraint) return true; - assert(r.constraint->constraint()); -- -- vm::slotref * map = m.slotMap().begin() + curr_context - r.preContext; - for (int n = r.sort; n && map; --n, ++map) - { - if (!*map) continue; - const int32 ret = r.constraint->run(m, map); - if (!ret || m.status() != Machine::finished) - return false; - } - - return true; - } - - - void SlotMap::collectGarbage(Slot * &aSlot) - { - for(Slot **s = begin(), *const *const se = end() - 1; s != se; ++s) { - Slot *& slot = *s; -- if(slot->isDeleted() || slot->isCopied()) -+ if(slot && (slot->isDeleted() || slot->isCopied())) - { - if (slot == aSlot) - aSlot = slot->prev() ? slot->prev() : slot->next(); - segment.freeSlot(slot); - } - } - } - -@@ -848,17 +856,16 @@ bool Pass::collisionShift(Segment *seg, - } - } - } - return true; - } - - bool Pass::collisionKern(Segment *seg, int dir, json * const dbgout) const - { -- KernCollider kerncoll(dbgout); - Slot *start = seg->first(); - float ymin = 1e38f; - float ymax = -1e38f; - const GlyphCache &gc = seg->getFace()->glyphs(); - - // phase 3 : handle kerning of clusters - #if !defined GRAPHITE2_NTRACING - if (dbgout) -@@ -871,17 +878,17 @@ bool Pass::collisionKern(Segment *seg, i - return false; - const SlotCollision * c = seg->collisionInfo(s); - const Rect &bbox = seg->theGlyphBBoxTemporary(s->gid()); - float y = s->origin().y + c->shift().y; - ymax = max(y + bbox.tr.y, ymax); - ymin = min(y + bbox.bl.y, ymin); - if (start && (c->flags() & (SlotCollision::COLL_KERN | SlotCollision::COLL_FIX)) - == (SlotCollision::COLL_KERN | SlotCollision::COLL_FIX)) -- resolveKern(seg, s, start, kerncoll, dir, ymin, ymax, dbgout); -+ resolveKern(seg, s, start, dir, ymin, ymax, dbgout); - if (c->flags() & SlotCollision::COLL_END) - start = NULL; - if (c->flags() & SlotCollision::COLL_START) - start = s; - } - - #if !defined GRAPHITE2_NTRACING - if (dbgout) -@@ -1010,17 +1017,17 @@ bool Pass::resolveCollisions(Segment *se - if (isCol) - { cFix->setFlags(cFix->flags() | SlotCollision::COLL_ISCOL | SlotCollision::COLL_KNOWN); } - else - { cFix->setFlags((cFix->flags() & ~SlotCollision::COLL_ISCOL) | SlotCollision::COLL_KNOWN); } - hasCol |= isCol; - return true; - } - --float Pass::resolveKern(Segment *seg, Slot *slotFix, GR_MAYBE_UNUSED Slot *start, KernCollider &coll, int dir, -+float Pass::resolveKern(Segment *seg, Slot *slotFix, GR_MAYBE_UNUSED Slot *start, int dir, - float &ymin, float &ymax, json *const dbgout) const - { - Slot *nbor; // neighboring slot - float currSpace = 0.; - bool collides = false; - unsigned int space_count = 0; - Slot *base = slotFix; - while (base->attachedTo()) -@@ -1030,16 +1037,17 @@ float Pass::resolveKern(Segment *seg, Sl - - if (base != slotFix) - { - cFix->setFlags(cFix->flags() | SlotCollision::COLL_KERN | SlotCollision::COLL_FIX); - return 0; - } - bool seenEnd = (cFix->flags() & SlotCollision::COLL_END) != 0; - bool isInit = false; -+ KernCollider coll(dbgout); - - for (nbor = slotFix->next(); nbor; nbor = nbor->next()) - { - if (nbor->isChildOf(base)) - continue; - if (!gc.check(nbor->gid())) - return 0.; - const Rect &bb = seg->theGlyphBBoxTemporary(nbor->gid()); -diff --git a/gfx/graphite2/src/Segment.cpp b/gfx/graphite2/src/Segment.cpp ---- a/gfx/graphite2/src/Segment.cpp -+++ b/gfx/graphite2/src/Segment.cpp -@@ -419,16 +419,19 @@ Position Segment::positionSlots(const Fo - reverseSlots(); - temp = iStart; - iStart = iEnd; - iEnd = temp; - } - if (!iStart) iStart = m_first; - if (!iEnd) iEnd = m_last; - -+ if (!iStart || !iEnd) // only true for empty segments -+ return currpos; -+ - if (isRtl) - { - for (Slot * s = iEnd, * const end = iStart->prev(); s && s != end; s = s->prev()) - { - if (s->isBase()) - currpos = s->finalise(this, font, currpos, bbox, 0, clusterMin = currpos.x, isRtl, isFinal); - } - } -@@ -526,11 +529,14 @@ void Segment::doMirror(uint16 aMirror) - } - - bool Segment::initCollisions() - { - m_collisions = grzeroalloc(slotCount()); - if (!m_collisions) return false; - - for (Slot *p = m_first; p; p = p->next()) -- ::new (collisionInfo(p)) SlotCollision(this, p); -+ if (p->index() < slotCount()) -+ ::new (collisionInfo(p)) SlotCollision(this, p); -+ else -+ return false; - return true; - } -diff --git a/gfx/graphite2/src/Silf.cpp b/gfx/graphite2/src/Silf.cpp ---- a/gfx/graphite2/src/Silf.cpp -+++ b/gfx/graphite2/src/Silf.cpp -@@ -350,20 +350,20 @@ uint16 Silf::getClassGlyph(uint16 cid, u - } - return 0; - } - - - bool Silf::runGraphite(Segment *seg, uint8 firstPass, uint8 lastPass, int dobidi) const - { - assert(seg != 0); -- SlotMap map(*seg, m_dir); -+ unsigned int maxSize = seg->slotCount() * MAX_SEG_GROWTH_FACTOR; -+ SlotMap map(*seg, m_dir, maxSize); - FiniteStateMachine fsm(map, seg->getFace()->logger()); - vm::Machine m(map); -- unsigned int initSize = seg->slotCount(); - uint8 lbidi = m_bPass; - #if !defined GRAPHITE2_NTRACING - json * const dbgout = seg->getFace()->logger(); - #endif - - if (lastPass == 0) - { - if (firstPass == lastPass && lbidi == 0xFF) -@@ -419,13 +419,13 @@ bool Silf::runGraphite(Segment *seg, uin - - // test whether to reorder, prepare for positioning - bool reverse = (lbidi == 0xFF) && (seg->currdir() != ((m_dir & 1) ^ m_passes[i].reverseDir())); - if ((i >= 32 || (seg->passBits() & (1 << i)) == 0 || m_passes[i].collisionLoops()) - && !m_passes[i].runGraphite(m, fsm, reverse)) - return false; - // only subsitution passes can change segment length, cached subsegments are short for their text - if (m.status() != vm::Machine::finished -- || (seg->slotCount() && seg->slotCount() * MAX_SEG_GROWTH_FACTOR < initSize)) -+ || (seg->slotCount() && seg->slotCount() > maxSize)) - return false; - } - return true; - } -diff --git a/gfx/graphite2/src/Slot.cpp b/gfx/graphite2/src/Slot.cpp ---- a/gfx/graphite2/src/Slot.cpp -+++ b/gfx/graphite2/src/Slot.cpp -@@ -80,20 +80,20 @@ void Slot::set(const Slot & orig, int ch - - void Slot::update(int /*numGrSlots*/, int numCharInfo, Position &relpos) - { - m_before += numCharInfo; - m_after += numCharInfo; - m_position = m_position + relpos; - } - --Position Slot::finalise(const Segment *seg, const Font *font, Position & base, Rect & bbox, uint8 attrLevel, float & clusterMin, bool rtl, bool isFinal) -+Position Slot::finalise(const Segment *seg, const Font *font, Position & base, Rect & bbox, uint8 attrLevel, float & clusterMin, bool rtl, bool isFinal, int depth) - { - SlotCollision *coll = NULL; -- if (attrLevel && m_attLevel > attrLevel) return Position(0, 0); -+ if (depth > 100 || (attrLevel && m_attLevel > attrLevel)) return Position(0, 0); - float scale = font ? font->scale() : 1.0f; - Position shift(m_shift.x * (rtl * -2 + 1) + m_just, m_shift.y); - float tAdvance = m_advance.x + m_just; - if (isFinal && (coll = seg->collisionInfo(this))) - { - const Position &collshift = coll->offset(); - if (!(coll->flags() & SlotCollision::COLL_KERN) || rtl) - shift = shift + collshift; -@@ -128,23 +128,23 @@ Position Slot::finalise(const Segment *s - if (glyphFace) - { - Rect ourBbox = glyphFace->theBBox() * scale + m_position; - bbox = bbox.widen(ourBbox); - } - - if (m_child && m_child != this && m_child->attachedTo() == this) - { -- Position tRes = m_child->finalise(seg, font, m_position, bbox, attrLevel, clusterMin, rtl, isFinal); -+ Position tRes = m_child->finalise(seg, font, m_position, bbox, attrLevel, clusterMin, rtl, isFinal, depth + 1); - if ((!m_parent || m_advance.x >= 0.5f) && tRes.x > res.x) res = tRes; - } - - if (m_parent && m_sibling && m_sibling != this && m_sibling->attachedTo() == m_parent) - { -- Position tRes = m_sibling->finalise(seg, font, base, bbox, attrLevel, clusterMin, rtl, isFinal); -+ Position tRes = m_sibling->finalise(seg, font, base, bbox, attrLevel, clusterMin, rtl, isFinal, depth + 1); - if (tRes.x > res.x) res = tRes; - } - - if (!m_parent && clusterMin < base.x) - { - Position adj = Position(m_position.x - clusterMin, 0.); - res += adj; - m_position += adj; -@@ -160,35 +160,35 @@ int32 Slot::clusterMetric(const Segment - return 0; - Rect bbox = seg->theGlyphBBoxTemporary(glyph()); - float clusterMin = 0.; - Position res = finalise(seg, NULL, base, bbox, attrLevel, clusterMin, rtl, false); - - switch (metrics(metric)) - { - case kgmetLsb : -- return static_cast(bbox.bl.x); -+ return bbox.bl.x; - case kgmetRsb : -- return static_cast(res.x - bbox.tr.x); -+ return res.x - bbox.tr.x; - case kgmetBbTop : -- return static_cast(bbox.tr.y); -+ return bbox.tr.y; - case kgmetBbBottom : -- return static_cast(bbox.bl.y); -+ return bbox.bl.y; - case kgmetBbLeft : -- return static_cast(bbox.bl.x); -+ return bbox.bl.x; - case kgmetBbRight : -- return static_cast(bbox.tr.x); -+ return bbox.tr.x; - case kgmetBbWidth : -- return static_cast(bbox.tr.x - bbox.bl.x); -+ return bbox.tr.x - bbox.bl.x; - case kgmetBbHeight : -- return static_cast(bbox.tr.y - bbox.bl.y); -+ return bbox.tr.y - bbox.bl.y; - case kgmetAdvWidth : -- return static_cast(res.x); -+ return res.x; - case kgmetAdvHeight : -- return static_cast(res.y); -+ return res.y; - default : - return 0; - } - } - - #define SLOTGETCOLATTR(x) { SlotCollision *c = seg->collisionInfo(this); return c ? int(c-> x) : 0; } - - int Slot::getAttr(const Segment *seg, attrCode ind, uint8 subindex) const -@@ -290,19 +290,32 @@ void Slot::setAttr(Segment *seg, attrCod - case gr_slatAdvX : m_advance.x = value; break; - case gr_slatAdvY : m_advance.y = value; break; - case gr_slatAttTo : - { - const uint16 idx = uint16(value); - if (idx < map.size() && map[idx]) - { - Slot *other = map[idx]; -- if (other == this || other == m_parent) break; -- if (m_parent) m_parent->removeChild(this); -- if (!other->isChildOf(this) && other->child(this)) -+ if (other == this || other == m_parent || other->isCopied()) break; -+ if (m_parent) { m_parent->removeChild(this); attachTo(NULL); } -+ Slot *pOther = other; -+ int count = 0; -+ bool foundOther = false; -+ while (pOther) -+ { -+ ++count; -+ if (pOther == this) foundOther = true; -+ pOther = pOther->attachedTo(); -+ } -+ for (pOther = m_child; pOther; pOther = pOther->m_child) -+ ++count; -+ for (pOther = m_sibling; pOther; pOther = pOther->m_sibling) -+ ++count; -+ if (count < 100 && !foundOther && other->child(this)) - { - attachTo(other); - if ((map.dir() != 0) ^ (idx > subindex)) - m_with = Position(advance(), 0); - else // normal match to previous root - m_attach = Position(other->advance(), 0); - } - } -@@ -416,41 +429,34 @@ bool Slot::sibling(Slot *ap) - m_sibling = ap; - else - return m_sibling->sibling(ap); - return true; - } - - bool Slot::removeChild(Slot *ap) - { -- if (this == ap || !m_child) return false; -+ if (this == ap || !m_child || !ap) return false; - else if (ap == m_child) - { - Slot *nSibling = m_child->nextSibling(); -- m_child->removeSibling(nSibling); -+ m_child->nextSibling(NULL); - m_child = nSibling; - return true; - } -- else -- return m_child->removeSibling(ap); -- return true; --} -- --bool Slot::removeSibling(Slot *ap) --{ -- if (this == ap || !m_sibling) return false; -- else if (ap == m_sibling) -+ for (Slot *p = m_child; p; p = p->m_sibling) - { -- m_sibling = m_sibling->nextSibling(); -- if (m_sibling) ap->removeSibling(m_sibling); -- return true; -+ if (p->m_sibling && p->m_sibling == ap) -+ { -+ p->m_sibling = p->m_sibling->m_sibling; -+ ap->nextSibling(NULL); -+ return true; -+ } - } -- else -- return m_sibling->removeSibling(ap); -- return true; -+ return false; - } - - void Slot::setGlyph(Segment *seg, uint16 glyphid, const GlyphFace * theGlyph) - { - m_glyphid = glyphid; - m_bidiCls = -1; - if (!theGlyph) - { -@@ -475,21 +481,23 @@ void Slot::setGlyph(Segment *seg, uint16 - if (seg->silf()->aPassBits()) - { - seg->mergePassBits(theGlyph->attrs()[seg->silf()->aPassBits()]); - if (seg->silf()->numPasses() > 16) - seg->mergePassBits(theGlyph->attrs()[seg->silf()->aPassBits()+1] << 16); - } - } - --void Slot::floodShift(Position adj) -+void Slot::floodShift(Position adj, int depth) - { -+ if (depth > 100) -+ return; - m_position += adj; -- if (m_child) m_child->floodShift(adj); -- if (m_sibling) m_sibling->floodShift(adj); -+ if (m_child) m_child->floodShift(adj, depth + 1); -+ if (m_sibling) m_sibling->floodShift(adj, depth + 1); - } - - void SlotJustify::LoadSlot(const Slot *s, const Segment *seg) - { - for (int i = seg->silf()->numJustLevels() - 1; i >= 0; --i) - { - Justinfo *justs = seg->silf()->justAttrs() + i; - int16 *v = values + i * NUMJUSTPARAMS; -@@ -514,15 +522,14 @@ Slot * Slot::nextInCluster(const Slot *s - return base->nextSibling(); - s = base; - } - return NULL; - } - - bool Slot::isChildOf(const Slot *base) const - { -- if (m_parent == base) -- return true; -- else if (!m_parent) -- return false; -- else -- return m_parent->isChildOf(base); -+ for (Slot *p = m_parent; p; p = p->m_parent) -+ if (p == base) -+ return true; -+ return false; - } -+ -diff --git a/gfx/graphite2/src/TtfUtil.cpp b/gfx/graphite2/src/TtfUtil.cpp ---- a/gfx/graphite2/src/TtfUtil.cpp -+++ b/gfx/graphite2/src/TtfUtil.cpp -@@ -891,25 +891,27 @@ const void * FindCmapSubtable(const void - ----------------------------------------------------------------------------------------------*/ - bool CheckCmapSubtable4(const void * pCmapSubtable4, const void * pCmapEnd /*, unsigned int maxgid*/) - { - size_t table_len = (const byte *)pCmapEnd - (const byte *)pCmapSubtable4; - if (!pCmapSubtable4) return false; - const Sfnt::CmapSubTable * pTable = reinterpret_cast(pCmapSubtable4); - // Bob H say some freeware TT fonts have version 1 (eg, CALIGULA.TTF) - // so don't check subtable version. 21 Mar 2002 spec changes version to language. -- if (be::swap(pTable->format) != 4) return false; -+ if (table_len < sizeof(*pTable) || be::swap(pTable->format) != 4) return false; - const Sfnt::CmapSubTableFormat4 * pTable4 = reinterpret_cast(pCmapSubtable4); -+ if (table_len < sizeof(*pTable4)) -+ return false; - uint16 length = be::swap(pTable4->length); - if (length > table_len) - return false; - if (length < sizeof(Sfnt::CmapSubTableFormat4)) - return false; - uint16 nRanges = be::swap(pTable4->seg_count_x2) >> 1; -- if (length < sizeof(Sfnt::CmapSubTableFormat4) + 4 * nRanges * sizeof(uint16)) -+ if (!nRanges || length < sizeof(Sfnt::CmapSubTableFormat4) + 4 * nRanges * sizeof(uint16)) - return false; - // check last range is properly terminated - uint16 chEnd = be::peek(pTable4->end_code + nRanges - 1); - if (chEnd != 0xFFFF) - return false; - #if 0 - int lastend = -1; - for (int i = 0; i < nRanges; ++i) -@@ -999,17 +1001,17 @@ gid16 CmapSubtable4Lookup(const void * p - uint16 idRangeOffset = be::peek(pMid += nSeg); - - if (idRangeOffset == 0) - return (uint16)(idDelta + nUnicodeId); // must use modulus 2^16 - - // Look up value in glyphIdArray - const ptrdiff_t offset = (nUnicodeId - chStart) + (idRangeOffset >> 1) + - (pMid - reinterpret_cast(pTable)); -- if (offset * 2 >= be::swap(pTable->length)) -+ if (offset * 2 + 1 >= be::swap(pTable->length)) - return 0; - gid16 nGlyphId = be::peek(reinterpret_cast(pTable)+offset); - // If this value is 0, return 0. Else add the idDelta - return nGlyphId ? nGlyphId + idDelta : 0; - } - - return 0; - } -@@ -1081,19 +1083,21 @@ unsigned int CmapSubtable4NextCodepoint( - /*---------------------------------------------------------------------------------------------- - Check the Microsoft UCS-4 subtable for expected values. - ----------------------------------------------------------------------------------------------*/ - bool CheckCmapSubtable12(const void *pCmapSubtable12, const void *pCmapEnd /*, unsigned int maxgid*/) - { - size_t table_len = (const byte *)pCmapEnd - (const byte *)pCmapSubtable12; - if (!pCmapSubtable12) return false; - const Sfnt::CmapSubTable * pTable = reinterpret_cast(pCmapSubtable12); -- if (be::swap(pTable->format) != 12) -+ if (table_len < sizeof(*pTable) || be::swap(pTable->format) != 12) - return false; - const Sfnt::CmapSubTableFormat12 * pTable12 = reinterpret_cast(pCmapSubtable12); -+ if (table_len < sizeof(*pTable12)) -+ return false; - uint32 length = be::swap(pTable12->length); - if (length > table_len) - return false; - if (length < sizeof(Sfnt::CmapSubTableFormat12)) - return false; - uint32 num_groups = be::swap(pTable12->num_groups); - if (num_groups > 0x10000000 || length != (sizeof(Sfnt::CmapSubTableFormat12) + (num_groups - 1) * sizeof(uint32) * 3)) - return false; -diff --git a/gfx/graphite2/src/inc/Code.h b/gfx/graphite2/src/inc/Code.h ---- a/gfx/graphite2/src/inc/Code.h -+++ b/gfx/graphite2/src/inc/Code.h -@@ -81,17 +81,17 @@ private: - _modify, - _delete; - mutable bool _own; - - void release_buffers() throw (); - void failure(const status_t) throw(); - - public: -- static size_t estimateCodeDataOut(size_t num_bytecodes); -+ static size_t estimateCodeDataOut(size_t num_bytecodes, int nRules, int nSlots); - - Code() throw(); - Code(bool is_constraint, const byte * bytecode_begin, const byte * const bytecode_end, - uint8 pre_context, uint16 rule_length, const Silf &, const Face &, - enum passtype pt, byte * * const _out = 0); - Code(const Machine::Code &) throw(); - ~Code() throw(); - -@@ -107,19 +107,21 @@ public: - void externalProgramMoved(ptrdiff_t) throw(); - - int32 run(Machine &m, slotref * & map) const; - - CLASS_NEW_DELETE; - }; - - inline --size_t Machine::Code::estimateCodeDataOut(size_t n_bc) -+size_t Machine::Code::estimateCodeDataOut(size_t n_bc, int nRules, int nSlots) - { -- return (n_bc + 1) * (sizeof(instr)+sizeof(byte)); -+ // max is: all codes are instructions + 1 for each rule + max tempcopies -+ // allocate space for separate maximal code and data then merge them later -+ return (n_bc + nRules + nSlots) * sizeof(instr) + n_bc * sizeof(byte); - } - - - inline Machine::Code::Code() throw() - : _code(0), _data(0), _data_size(0), _instr_count(0), _max_ref(0), - _status(loaded), _constraint(false), _modify(false), _delete(false), - _own(false) - { -diff --git a/gfx/graphite2/src/inc/Face.h b/gfx/graphite2/src/inc/Face.h ---- a/gfx/graphite2/src/inc/Face.h -+++ b/gfx/graphite2/src/inc/Face.h -@@ -82,17 +82,17 @@ public: - uint16 languageForLocale(const char * locale) const; - - // Features - uint16 numFeatures() const; - const FeatureRef * featureById(uint32 id) const; - const FeatureRef * feature(uint16 index) const; - - // Glyph related -- uint16 getGlyphMetric(uint16 gid, uint8 metric) const; -+ int32 getGlyphMetric(uint16 gid, uint8 metric) const; - uint16 findPseudo(uint32 uid) const; - - // Errors - unsigned int error() const { return m_error; } - bool error(Error e) { m_error = e.error(); return false; } - unsigned int error_context() const { return m_error; } - void error_context(unsigned int errcntxt) { m_errcntxt = errcntxt; } - -diff --git a/gfx/graphite2/src/inc/GlyphFace.h b/gfx/graphite2/src/inc/GlyphFace.h ---- a/gfx/graphite2/src/inc/GlyphFace.h -+++ b/gfx/graphite2/src/inc/GlyphFace.h -@@ -46,17 +46,17 @@ class GlyphFace - public: - GlyphFace(); - template - GlyphFace(const Rect & bbox, const Position & adv, I first, const I last); - - const Position & theAdvance() const; - const Rect & theBBox() const { return m_bbox; } - const sparse & attrs() const { return m_attrs; } -- uint16 getMetric(uint8 metric) const; -+ int32 getMetric(uint8 metric) const; - - CLASS_NEW_DELETE; - private: - Rect m_bbox; // bounding box metrics in design units - Position m_advance; // Advance width and height in design units - sparse m_attrs; - }; - -diff --git a/gfx/graphite2/src/inc/Machine.h b/gfx/graphite2/src/inc/Machine.h ---- a/gfx/graphite2/src/inc/Machine.h -+++ b/gfx/graphite2/src/inc/Machine.h -@@ -179,17 +179,17 @@ inline SlotMap& Machine::slotMap() const - return _map; - } - - inline Machine::status_t Machine::status() const throw() - { - return _status; - } - --inline void Machine::check_final_stack(const int32 * const sp) -+inline void Machine::check_final_stack(const stack_t * const sp) - { - stack_t const * const base = _stack + STACK_GUARD, - * const limit = base + STACK_MAX; - if (sp < base) _status = stack_underflow; // This should be impossible now. - else if (sp >= limit) _status = stack_overflow; // So should this. - else if (sp != base) _status = stack_not_empty; - } - -diff --git a/gfx/graphite2/src/inc/Pass.h b/gfx/graphite2/src/inc/Pass.h ---- a/gfx/graphite2/src/inc/Pass.h -+++ b/gfx/graphite2/src/inc/Pass.h -@@ -76,17 +76,17 @@ private: - void dumpRuleEventConsidered(const FiniteStateMachine & fsm, const RuleEntry & re) const; - void dumpRuleEventOutput(const FiniteStateMachine & fsm, vm::Machine & m, const Rule & r, Slot * os) const; - void adjustSlot(int delta, Slot * & slot_out, SlotMap &) const; - bool collisionShift(Segment *seg, int dir, json * const dbgout) const; - bool collisionKern(Segment *seg, int dir, json * const dbgout) const; - bool collisionFinish(Segment *seg, GR_MAYBE_UNUSED json * const dbgout) const; - bool resolveCollisions(Segment *seg, Slot *slot, Slot *start, ShiftCollider &coll, bool isRev, - int dir, bool &moved, bool &hasCol, json * const dbgout) const; -- float resolveKern(Segment *seg, Slot *slot, Slot *start, KernCollider &coll, int dir, -+ float resolveKern(Segment *seg, Slot *slot, Slot *start, int dir, - float &ymin, float &ymax, json *const dbgout) const; - - const Silf * m_silf; - uint16 * m_cols; - Rule * m_rules; // rules - RuleEntry * m_ruleMap; - uint16 * m_startStates; // prectxt length - uint16 * m_transitions; -diff --git a/gfx/graphite2/src/inc/Rule.h b/gfx/graphite2/src/inc/Rule.h ---- a/gfx/graphite2/src/inc/Rule.h -+++ b/gfx/graphite2/src/inc/Rule.h -@@ -97,17 +97,17 @@ bool State::empty() const - return rules_end == rules; - } - - - class SlotMap - { - public: - enum {MAX_SLOTS=64}; -- SlotMap(Segment & seg, uint8 direction); -+ SlotMap(Segment & seg, uint8 direction, int maxSize); - - Slot * * begin(); - Slot * * end(); - size_t size() const; - unsigned short context() const; - void reset(Slot &, unsigned short); - - Slot * const & operator[](int n) const; -@@ -116,23 +116,25 @@ public: - void collectGarbage(Slot *& aSlot); - - Slot * highwater() { return m_highwater; } - void highwater(Slot *s) { m_highwater = s; m_highpassed = false; } - bool highpassed() const { return m_highpassed; } - void highpassed(bool v) { m_highpassed = v; } - - uint8 dir() const { return m_dir; } -+ int decMax() { return --m_maxSize; } - - Segment & segment; - private: - Slot * m_slot_map[MAX_SLOTS+1]; - unsigned short m_size; - unsigned short m_precontext; - Slot * m_highwater; -+ int m_maxSize; - uint8 m_dir; - bool m_highpassed; - }; - - - class FiniteStateMachine - { - public: -@@ -237,18 +239,19 @@ void FiniteStateMachine::Rules::accumula - return; - } - } - while (rre != rrend && out != lrend) { *out++ = *rre++; } - m_end = out; - } - - inline --SlotMap::SlotMap(Segment & seg, uint8 direction) --: segment(seg), m_size(0), m_precontext(0), m_highwater(0), m_dir(direction), m_highpassed(false) -+SlotMap::SlotMap(Segment & seg, uint8 direction, int maxSize) -+: segment(seg), m_size(0), m_precontext(0), m_highwater(0), -+ m_maxSize(maxSize), m_dir(direction), m_highpassed(false) - { - m_slot_map[0] = 0; - } - - inline - Slot * * SlotMap::begin() - { - return &m_slot_map[1]; // allow map to go 1 before slot_map when inserting -diff --git a/gfx/graphite2/src/inc/Segment.h b/gfx/graphite2/src/inc/Segment.h ---- a/gfx/graphite2/src/inc/Segment.h -+++ b/gfx/graphite2/src/inc/Segment.h -@@ -35,17 +35,17 @@ of the License or (at your option) any l - #include "inc/FeatureVal.h" - #include "inc/GlyphCache.h" - #include "inc/GlyphFace.h" - #include "inc/Slot.h" - #include "inc/Position.h" - #include "inc/List.h" - #include "inc/Collider.h" - --#define MAX_SEG_GROWTH_FACTOR 256 -+#define MAX_SEG_GROWTH_FACTOR 64 - - namespace graphite2 { - - typedef Vector FeatureList; - typedef Vector SlotRope; - typedef Vector AttributeRope; - typedef Vector JustifyRope; - -@@ -154,17 +154,17 @@ public: - int8 getSlotBidiClass(Slot *s) const; - void doMirror(uint16 aMirror); - Slot *addLineEnd(Slot *nSlot); - void delLineEnd(Slot *s); - bool hasJustification() const { return m_justifies.size() != 0; } - void reverseSlots(); - - bool isWhitespace(const int cid) const; -- bool hasCollisionInfo() const { return (m_flags & SEG_HASCOLLISIONS); } -+ bool hasCollisionInfo() const { return (m_flags & SEG_HASCOLLISIONS) && m_collisions; } - SlotCollision *collisionInfo(const Slot *s) const { return m_collisions ? m_collisions + s->index() : 0; } - CLASS_NEW_DELETE - - public: //only used by: GrSegment* makeAndInitialize(const GrFont *font, const GrFace *face, uint32 script, const FeaturesHandle& pFeats/*must not be IsNull*/, encform enc, const void* pStart, size_t nChars, int dir); - bool read_text(const Face *face, const Features* pFeats/*must not be NULL*/, gr_encform enc, const void*pStart, size_t nChars); - void finalise(const Font *font, bool reverse=false); - float justify(Slot *pSlot, const Font *font, float width, enum justFlags flags, Slot *pFirst, Slot *pLast); - bool initCollisions(); -diff --git a/gfx/graphite2/src/inc/Slot.h b/gfx/graphite2/src/inc/Slot.h ---- a/gfx/graphite2/src/inc/Slot.h -+++ b/gfx/graphite2/src/inc/Slot.h -@@ -92,17 +92,17 @@ public: - void adjKern(const Position &pos) { m_shift = m_shift + pos; m_advance = m_advance + pos; } - void origin(const Position &pos) { m_position = pos + m_shift; } - void originate(int ind) { m_original = ind; } - int original() const { return m_original; } - void before(int ind) { m_before = ind; } - void after(int ind) { m_after = ind; } - bool isBase() const { return (!m_parent); } - void update(int numSlots, int numCharInfo, Position &relpos); -- Position finalise(const Segment* seg, const Font* font, Position & base, Rect & bbox, uint8 attrLevel, float & clusterMin, bool rtl, bool isFinal); -+ Position finalise(const Segment* seg, const Font* font, Position & base, Rect & bbox, uint8 attrLevel, float & clusterMin, bool rtl, bool isFinal, int depth = 0); - bool isDeleted() const { return (m_flags & DELETED) ? true : false; } - void markDeleted(bool state) { if (state) m_flags |= DELETED; else m_flags &= ~DELETED; } - bool isCopied() const { return (m_flags & COPIED) ? true : false; } - void markCopied(bool state) { if (state) m_flags |= COPIED; else m_flags &= ~COPIED; } - bool isPositioned() const { return (m_flags & POSITIONED) ? true : false; } - void markPositioned(bool state) { if (state) m_flags |= POSITIONED; else m_flags &= ~POSITIONED; } - bool isInsertBefore() const { return !(m_flags & INSERTED); } - uint8 getBidiLevel() const { return m_bidiLevel; } -@@ -123,20 +123,19 @@ public: - Position attachOffset() const { return m_attach - m_with; } - Slot* firstChild() const { return m_child; } - void firstChild(Slot *ap) { m_child = ap; } - bool child(Slot *ap); - Slot* nextSibling() const { return m_sibling; } - void nextSibling(Slot *ap) { m_sibling = ap; } - bool sibling(Slot *ap); - bool removeChild(Slot *ap); -- bool removeSibling(Slot *ap); - int32 clusterMetric(const Segment* seg, uint8 metric, uint8 attrLevel, bool rtl); - void positionShift(Position a) { m_position += a; } -- void floodShift(Position adj); -+ void floodShift(Position adj, int depth = 0); - float just() const { return m_just; } - void just(float j) { m_just = j; } - Slot *nextInCluster(const Slot *s) const; - bool isChildOf(const Slot *base) const; - - CLASS_NEW_DELETE - - private: -diff --git a/gfx/graphite2/src/inc/UtfCodec.h b/gfx/graphite2/src/inc/UtfCodec.h ---- a/gfx/graphite2/src/inc/UtfCodec.h -+++ b/gfx/graphite2/src/inc/UtfCodec.h -@@ -35,16 +35,17 @@ typedef uint32 uchar_t; - - template - struct _utf_codec - { - typedef uchar_t codeunit_t; - - static void put(codeunit_t * cp, const uchar_t , int8 & len) throw(); - static uchar_t get(const codeunit_t * cp, int8 & len) throw(); -+ static bool validate(const codeunit_t * s, const codeunit_t * e) throw(); - }; - - - template <> - struct _utf_codec<32> - { - private: - static const uchar_t limit = 0x110000; -@@ -58,16 +59,22 @@ public: - } - - inline - static uchar_t get(const codeunit_t * cp, int8 & l) throw() - { - if (cp[0] < limit) { l = 1; return cp[0]; } - else { l = -1; return 0xFFFD; } - } -+ -+ inline -+ static bool validate(codeunit_t * s, codeunit_t * e) throw() -+ { -+ return e > s; -+ } - }; - - - template <> - struct _utf_codec<16> - { - private: - static const int32 lead_offset = 0xD800 - (0x10000 >> 10); -@@ -88,22 +95,31 @@ public: - } - - inline - static uchar_t get(const codeunit_t * cp, int8 & l) throw() - { - const uint32 uh = cp[0]; - l = 1; - -- if (0xD800 > uh || uh > 0xDFFF) { return uh; } -+ if (uh < 0xD800|| uh > 0xDFFF) { return uh; } - const uint32 ul = cp[1]; -- if (uh > 0xDBFF || 0xDC00 > ul || ul > 0xDFFF) { l = -1; return 0xFFFD; } -+ if (uh > 0xDBFF || ul < 0xDC00 || ul > 0xDFFF) { l = -1; return 0xFFFD; } - ++l; - return (uh<<10) + ul + surrogate_offset; - } -+ -+ inline -+ static bool validate(codeunit_t * s, codeunit_t * e) throw() -+ { -+ const ptrdiff_t n = e-s; -+ if (n <= 0) return n == 0; -+ const uint32 u = *(s+(n-1)); // Get the last codepoint -+ return (u < 0xD800 || u > 0xDBFF); -+ } - }; - - - template <> - struct _utf_codec<8> - { - private: - static const int8 sz_lut[16]; -@@ -143,16 +159,34 @@ public: - - if (l != seq_sz || toolong) - { - l = -l; - return 0xFFFD; - } - return u; - } -+ -+ inline -+ static bool validate(codeunit_t * s, codeunit_t * e) throw() -+ { -+ const ptrdiff_t n = e-s; -+ if (n <= 0) return n == 0; -+ s += (n-1); -+ if (*s < 0x80) return true; -+ if (*s >= 0xC0) return false; -+ if (n == 1) return true; -+ if (*--s < 0x80) return true; -+ if (*s >= 0xe0) return false; -+ if (n == 2 || *s >= 0xC0) return true; -+ if (*--s < 0x80) return true; -+ if (*s >= 0xF0) return false; -+ return true; -+ } -+ - }; - - - template - class _utf_iterator - { - typedef _utf_codec codec; - -@@ -195,16 +229,21 @@ public: - - template - struct utf - { - typedef typename _utf_codec::codeunit_t codeunit_t; - - typedef _utf_iterator iterator; - typedef _utf_iterator const_iterator; -+ -+ inline -+ static bool validate(codeunit_t * s, codeunit_t * e) throw() { -+ return _utf_codec::validate(s,e); -+ } - }; - - - typedef utf utf32; - typedef utf utf16; - typedef utf utf8; - - } // namespace graphite2 -diff --git a/gfx/graphite2/src/inc/opcode_table.h b/gfx/graphite2/src/inc/opcode_table.h ---- a/gfx/graphite2/src/inc/opcode_table.h -+++ b/gfx/graphite2/src/inc/opcode_table.h -@@ -113,13 +113,13 @@ static const opcode_t opcode_table[] = - {{NILOP,NILOP}, 0, "PUT_SUBS3"}, - {{do_(put_glyph), NILOP}, 2, "PUT_GLYPH"}, // output_class output_class - {{do2(push_glyph_attr)}, 3, "PUSH_GLYPH_ATTR"}, // gattrnum gattrnum slot - {{do2(push_att_to_glyph_attr)}, 3, "PUSH_ATT_TO_GLYPH_ATTR"}, // gattrnum gattrnum slot - {{do2(bor)}, 0, "BITOR"}, - {{do2(band)}, 0, "BITAND"}, - {{do2(bnot)}, 0, "BITNOT"}, // 0x40 - {{do2(setbits)}, 4, "BITSET"}, -- {{do2(set_feat)}, 2, "SET_FEAT"}, -+ {{do_(set_feat), NILOP}, 2, "SET_FEAT"}, // featidx slot - // private opcodes for internal use only, comes after all other on disk opcodes. - {{do_(temp_copy), NILOP}, 0, "TEMP_COPY"} - }; - -diff --git a/gfx/graphite2/src/inc/opcodes.h b/gfx/graphite2/src/inc/opcodes.h ---- a/gfx/graphite2/src/inc/opcodes.h -+++ b/gfx/graphite2/src/inc/opcodes.h -@@ -62,17 +62,18 @@ of the License or (at your option) any l - // ip = The current instruction pointer - // endPos = Position of advance of last cluster - // dir = writing system directionality of the font - - - // #define NOT_IMPLEMENTED assert(false) - #define NOT_IMPLEMENTED - --#define binop(op) const int32 a = pop(); *sp = int32(*sp) op a -+#define binop(op) const uint32 a = pop(); *sp = uint32(*sp) op a -+#define sbinop(op) const int32 a = pop(); *sp = int32(*sp) op a - #define use_params(n) dp += n - - #define declare_params(n) const byte * param = dp; \ - use_params(n); - - #define push(n) { *++sp = n; } - #define pop() (*sp--) - #define slotat(x) (map[(x)]) -@@ -125,17 +126,17 @@ STARTOP(sub) - ENDOP - - STARTOP(mul) - binop(*); - ENDOP - - STARTOP(div_) - if (*sp == 0) DIE; -- binop(/); -+ sbinop(/); - ENDOP - - STARTOP(min_) - const int32 a = pop(), b = *sp; - if (a < b) *sp = a; - ENDOP - - STARTOP(max_) -@@ -176,29 +177,29 @@ STARTOP(equal) - binop(==); - ENDOP - - STARTOP(not_eq_) - binop(!=); - ENDOP - - STARTOP(less) -- binop(<); -+ sbinop(<); - ENDOP - - STARTOP(gtr) -- binop(>); -+ sbinop(>); - ENDOP - - STARTOP(less_eq) -- binop(<=); -+ sbinop(<=); - ENDOP - - STARTOP(gtr_eq) -- binop(>=); -+ sbinop(>=); - ENDOP - - STARTOP(next) - if (map - &smap[0] >= int(smap.size())) DIE - if (is) - { - if (is == smap.highwater()) - smap.highpassed(true); -@@ -237,17 +238,17 @@ STARTOP(put_subs_8bit_obs) - index = seg.findClassIndex(input_class, slot->gid()); - is->setGlyph(&seg, seg.getClassGlyph(output_class, index)); - } - ENDOP - - STARTOP(put_copy) - declare_params(1); - const int slot_ref = int8(*param); -- if (is) -+ if (is && !is->isDeleted()) - { - slotref ref = slotat(slot_ref); - if (ref && ref != is) - { - int16 *tempUserAttrs = is->userAttrs(); - if (is->attachedTo() || is->firstChild()) DIE - Slot *prev = is->prev(); - Slot *next = is->next(); -@@ -262,16 +263,17 @@ STARTOP(put_copy) - is->attachedTo()->child(is); - } - is->markCopied(false); - is->markDeleted(false); - } - ENDOP - - STARTOP(insert) -+ if (smap.decMax() <= 0) DIE; - Slot *newSlot = seg.newSlot(); - if (!newSlot) DIE; - Slot *iss = is; - while (iss && iss->isDeleted()) iss = iss->next(); - if (!iss) - { - if (seg.last()) - { -@@ -550,31 +552,31 @@ ENDOP - - STARTOP(iattr_add) - declare_params(2); - const attrCode slat = attrCode(uint8(param[0])); - const size_t idx = uint8(param[1]); - const int val = int(pop()); - if ((slat == gr_slatPosX || slat == gr_slatPosY) && (flags & POSITIONED) == 0) - { -- seg.positionSlots(0, *smap.begin(), *(smap.end()-1), dir); -+ seg.positionSlots(0, *smap.begin(), *(smap.end()-1), seg.currdir()); - flags |= POSITIONED; - } - int res = is->getAttr(&seg, slat, idx); - is->setAttr(&seg, slat, idx, val + res, smap); - ENDOP - - STARTOP(iattr_sub) - declare_params(2); - const attrCode slat = attrCode(uint8(param[0])); - const size_t idx = uint8(param[1]); - const int val = int(pop()); - if ((slat == gr_slatPosX || slat == gr_slatPosY) && (flags & POSITIONED) == 0) - { -- seg.positionSlots(0, *smap.begin(), *(smap.end()-1), dir); -+ seg.positionSlots(0, *smap.begin(), *(smap.end()-1), seg.currdir()); - flags |= POSITIONED; - } - int res = is->getAttr(&seg, slat, idx); - is->setAttr(&seg, slat, idx, res - val, smap); - ENDOP - - STARTOP(push_proc_state) - use_params(1); - -- cgit v1.2.3 From fffa33843975d7b7d93904d7689987b8335c8135 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 12 May 2016 18:34:41 -0400 Subject: gnu: linux-libre-4.1: Update to 4.1.24. * gnu/packages/linux.scm (linux-libre-4.1): Update to 4.1.24. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 550068156c..b1f3d8d2dd 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -356,13 +356,13 @@ (define-public linux-libre-4.4 (define-public linux-libre-4.1 (package (inherit linux-libre) - (version "4.1.23") + (version "4.1.24") (source (origin (method url-fetch) (uri (linux-libre-urls version)) (sha256 (base32 - "0f9ilyr05jmc3416sjy3n42zwch2h7mwg9wazaawjwc7905n8yy0")))) + "14jlnq0k86bl4wj8shmvgf34w90bbm9in44j1pdjwwvn169zh9ra")))) (native-inputs (let ((conf (kernel-config (or (%current-target-system) (%current-system)) -- cgit v1.2.3 From a23dc63bed598633f48b8fe1f96b066ef10d4d6a Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 12 May 2016 18:36:09 -0400 Subject: gnu: linux-libre-4.4: Update to 4.4.10. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.10. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index b1f3d8d2dd..0c356e7cac 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -339,13 +339,13 @@ (define-public linux-libre (define-public linux-libre-4.4 (package (inherit linux-libre) - (version "4.4.9") + (version "4.4.10") (source (origin (method url-fetch) (uri (linux-libre-urls version)) (sha256 (base32 - "04zwmqp5ib19jmbv2b1zzxdp4zhjkmx408mjky92dkyj33j43iki")))) + "1k7h632vgh3wlz44qqawy238f4mzn19bm9sz9zqq0ql6wwhkjdkj")))) (native-inputs (let ((conf (kernel-config (or (%current-target-system) (%current-system)) -- cgit v1.2.3 From 11d7d7b5d399f38712eb68ab9a20e5dc0d6ef30e Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 12 May 2016 18:37:32 -0400 Subject: gnu: linux-libre: Update to 4.5.4. * gnu/packages/linux.scm (linux-libre): Update to 4.5.4. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 0c356e7cac..79d675a830 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -224,7 +224,7 @@ (define* (kernel-config system #:key variant) (search-path %load-path file))) (define-public linux-libre - (let* ((version "4.5.3") + (let* ((version "4.5.4") (build-phase '(lambda* (#:key system inputs #:allow-other-keys #:rest args) ;; Avoid introducing timestamps @@ -302,7 +302,7 @@ (define-public linux-libre (uri (linux-libre-urls version)) (sha256 (base32 - "1zb1qvbzkzih8fdfcvaxcgbhm5kckl6n8d312pbd478svx6fqi2s")))) + "0c587v03kz5whh82apva6gwqvczdi6djy29gk0gfd9dbkb2518b1")))) (build-system gnu-build-system) (supported-systems '("x86_64-linux" "i686-linux")) (native-inputs `(("perl" ,perl) -- cgit v1.2.3 From 99828fa78896ef2f3ec9228a4093562726ad85c6 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 12 May 2016 20:18:15 -0400 Subject: gnu: Update module imports for asciidoc and doxygen. This is a followup to commit 0573a923def01e54bf104e0015ade44ab42f694f. * gnu/packages/algebra.scm, gnu/packages/bioinformatics.scm, gnu/packages/fcitx.scm, gnu/packages/fish.scm, gnu/packages/freedesktop.scm, gnu/packages/game-development.scm, gnu/packages/gcc.scm, gnu/packages/graphics.scm, gnu/packages/image.scm, gnu/packages/kodi.scm, gnu/packages/libreoffice.scm, gnu/packages/linux.scm, gnu/packages/messaging.scm, gnu/packages/mpd.scm, gnu/packages/music.scm, gnu/packages/rdf.scm, gnu/packages/serialization.scm, gnu/packages/version-control.scm, gnu/packages/web.scm, gnu/packages/wm.scm, gnu/packages/xdisorg.scm, gnu/packages/xiph.scm: Change imports of (gnu packages asciidoc) or (gnu packages doxygen) to (gnu packages documentation). --- gnu/packages/algebra.scm | 2 +- gnu/packages/bioinformatics.scm | 2 +- gnu/packages/fcitx.scm | 2 +- gnu/packages/fish.scm | 2 +- gnu/packages/freedesktop.scm | 2 +- gnu/packages/game-development.scm | 2 +- gnu/packages/gcc.scm | 2 +- gnu/packages/graphics.scm | 2 +- gnu/packages/image.scm | 2 +- gnu/packages/kodi.scm | 2 +- gnu/packages/libreoffice.scm | 2 +- gnu/packages/linux.scm | 2 +- gnu/packages/messaging.scm | 2 +- gnu/packages/mpd.scm | 2 +- gnu/packages/music.scm | 2 +- gnu/packages/rdf.scm | 2 +- gnu/packages/serialization.scm | 2 +- gnu/packages/version-control.scm | 2 +- gnu/packages/web.scm | 2 +- gnu/packages/wm.scm | 2 +- gnu/packages/xdisorg.scm | 2 +- gnu/packages/xiph.scm | 2 +- 22 files changed, 22 insertions(+), 22 deletions(-) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index f03c3c104e..53f6f3e3d2 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -24,7 +24,7 @@ (define-module (gnu packages algebra) #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages compression) - #:use-module (gnu packages doxygen) + #:use-module (gnu packages documentation) #:use-module (gnu packages fltk) #:use-module (gnu packages gl) #:use-module (gnu packages graphviz) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 5c1ad57a80..c7bf03bcbc 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -44,7 +44,7 @@ (define-module (gnu packages bioinformatics) #:use-module (gnu packages compression) #:use-module (gnu packages cpio) #:use-module (gnu packages curl) - #:use-module (gnu packages doxygen) + #:use-module (gnu packages documentation) #:use-module (gnu packages datastructures) #:use-module (gnu packages file) #:use-module (gnu packages gawk) diff --git a/gnu/packages/fcitx.scm b/gnu/packages/fcitx.scm index 925d5ac89b..c89896eafe 100644 --- a/gnu/packages/fcitx.scm +++ b/gnu/packages/fcitx.scm @@ -21,7 +21,7 @@ (define-module (gnu packages fcitx) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system cmake) - #:use-module (gnu packages doxygen) + #:use-module (gnu packages documentation) #:use-module (gnu packages enchant) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) diff --git a/gnu/packages/fish.scm b/gnu/packages/fish.scm index 6392efe308..72e2156a35 100644 --- a/gnu/packages/fish.scm +++ b/gnu/packages/fish.scm @@ -18,7 +18,7 @@ (define-module (gnu packages fish) #:use-module (guix licenses) - #:use-module (gnu packages doxygen) + #:use-module (gnu packages documentation) #:use-module (gnu packages ncurses) #:use-module (gnu packages python) #:use-module (guix packages) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 0b4eca9a5a..a610776096 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -46,7 +46,7 @@ (define-module (gnu packages freedesktop) #:use-module (gnu packages boost) #:use-module (gnu packages m4) #:use-module (gnu packages compression) - #:use-module (gnu packages doxygen) + #:use-module (gnu packages documentation) #:use-module (gnu packages libffi) #:use-module (gnu packages acl) #:use-module (gnu packages admin) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index bc0051d4c6..8bfd2f1cb0 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -33,7 +33,7 @@ (define-module (gnu packages game-development) #:use-module (gnu packages) #:use-module (gnu packages curl) #:use-module (gnu packages databases) - #:use-module (gnu packages doxygen) + #:use-module (gnu packages documentation) #:use-module (gnu packages glib) #:use-module (gnu packages gnunet) #:use-module (gnu packages guile) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index c390a6659b..740ed51485 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -29,7 +29,7 @@ (define-module (gnu packages gcc) #:use-module (gnu packages multiprecision) #:use-module (gnu packages texinfo) #:use-module (gnu packages dejagnu) - #:use-module (gnu packages doxygen) + #:use-module (gnu packages documentation) #:use-module (gnu packages xml) #:use-module (gnu packages docbook) #:use-module (gnu packages graphviz) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index f46dee36d2..d08542fd4a 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -33,7 +33,7 @@ (define-module (gnu packages graphics) #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages boost) - #:use-module (gnu packages doxygen) + #:use-module (gnu packages documentation) #:use-module (gnu packages haskell) #:use-module (gnu packages image) #:use-module (gnu packages python) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 669c360b96..264a8c88ac 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -30,7 +30,7 @@ (define-module (gnu packages image) #:use-module (gnu packages autotools) #:use-module (gnu packages boost) #:use-module (gnu packages compression) - #:use-module (gnu packages doxygen) + #:use-module (gnu packages documentation) #:use-module (gnu packages fontutils) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm index 0c30aa1977..0d5e0a3428 100644 --- a/gnu/packages/kodi.scm +++ b/gnu/packages/kodi.scm @@ -34,7 +34,7 @@ (define-module (gnu packages kodi) #:use-module (gnu packages compression) #:use-module (gnu packages curl) #:use-module (gnu packages databases) - #:use-module (gnu packages doxygen) + #:use-module (gnu packages documentation) #:use-module (gnu packages fontutils) #:use-module (gnu packages fribidi) #:use-module (gnu packages gettext) diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index 5256c49035..60a6d7df73 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -37,7 +37,7 @@ (define-module (gnu packages libreoffice) #:use-module (gnu packages curl) #:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages databases) - #:use-module (gnu packages doxygen) + #:use-module (gnu packages documentation) #:use-module (gnu packages flex) #:use-module (gnu packages fontutils) #:use-module (gnu packages ghostscript) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 79d675a830..192221de80 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -60,7 +60,7 @@ (define-module (gnu packages linux) #:use-module (gnu packages elf) #:use-module (gnu packages gtk) #:use-module (gnu packages docbook) - #:use-module (gnu packages asciidoc) + #:use-module (gnu packages documentation) #:use-module (gnu packages readline) #:use-module (gnu packages calendar) #:use-module (gnu packages tls) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index a79efc3366..3ac3888da4 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -37,7 +37,7 @@ (define-module (gnu packages messaging) #:use-module (gnu packages check) #:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages databases) - #:use-module (gnu packages doxygen) + #:use-module (gnu packages documentation) #:use-module (gnu packages enchant) #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index 4860325b56..3162cf18b8 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -35,7 +35,7 @@ (define-module (gnu packages mpd) #:use-module (gnu packages readline) #:use-module (gnu packages compression) #:use-module (gnu packages curl) - #:use-module (gnu packages doxygen) + #:use-module (gnu packages documentation) #:use-module (gnu packages glib) #:use-module (gnu packages linux) #:use-module (gnu packages mp3) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 9a958a37ae..39e261df8c 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -47,7 +47,7 @@ (define-module (gnu packages music) #:use-module (gnu packages curl) #:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages docbook) - #:use-module (gnu packages doxygen) + #:use-module (gnu packages documentation) #:use-module (gnu packages file) #:use-module (gnu packages flex) #:use-module (gnu packages fltk) diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm index 958716a447..4d5fd4d0ac 100644 --- a/gnu/packages/rdf.scm +++ b/gnu/packages/rdf.scm @@ -33,7 +33,7 @@ (define-module (gnu packages rdf) #:use-module (gnu packages compression) #:use-module (gnu packages curl) #:use-module (gnu packages cyrus-sasl) - #:use-module (gnu packages doxygen) + #:use-module (gnu packages documentation) #:use-module (gnu packages gnupg) #:use-module (gnu packages linux) #:use-module (gnu packages multiprecision) diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm index b03e27cb95..8dfd21d6a5 100644 --- a/gnu/packages/serialization.scm +++ b/gnu/packages/serialization.scm @@ -22,7 +22,7 @@ (define-module (gnu packages serialization) #:use-module (guix download) #:use-module (guix build-system cmake) #:use-module (gnu packages) - #:use-module (gnu packages doxygen)) + #:use-module (gnu packages documentation)) (define-public cereal (package diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 944eb7ae24..796fd7ad67 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -40,7 +40,7 @@ (define-module (gnu packages version-control) #:use-module (guix build-system trivial) #:use-module (gnu packages apr) #:use-module (gnu packages autotools) - #:use-module (gnu packages asciidoc) + #:use-module (gnu packages documentation) #:use-module (gnu packages base) #:use-module (gnu packages bison) #:use-module (gnu packages cook) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 0c2798f1a8..5df4765d3c 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -42,7 +42,7 @@ (define-module (gnu packages web) #:use-module (guix build-system r) #:use-module (gnu packages) #:use-module (gnu packages apr) - #:use-module (gnu packages asciidoc) + #:use-module (gnu packages documentation) #:use-module (gnu packages docbook) #:use-module (gnu packages autotools) #:use-module (gnu packages compression) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 1a0529c640..5f32fc478d 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -37,7 +37,7 @@ (define-module (gnu packages wm) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages xorg) #:use-module (gnu packages xdisorg) - #:use-module (gnu packages asciidoc) + #:use-module (gnu packages documentation) #:use-module (gnu packages xml) #:use-module (gnu packages m4) #:use-module (gnu packages docbook) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 4f508ad8c7..ca198c32cb 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -37,7 +37,7 @@ (define-module (gnu packages xdisorg) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system python) #:use-module (gnu packages) - #:use-module (gnu packages asciidoc) + #:use-module (gnu packages documentation) #:use-module (gnu packages algebra) #:use-module (gnu packages compression) #:use-module (gnu packages image) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index 244f0c84b4..68f76d5c5c 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -27,7 +27,7 @@ (define-module (gnu packages xiph) #:use-module (gnu packages bison) #:use-module (gnu packages compression) #:use-module (gnu packages curl) - #:use-module (gnu packages doxygen) + #:use-module (gnu packages documentation) #:use-module (gnu packages image) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) -- cgit v1.2.3 From e9017c98d61f305b624bacaa30e8891ec0100980 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 13 May 2016 01:18:42 -0400 Subject: gnu: jemalloc: No longer build with gcc-4.8 on i686. * gnu/packages/jemalloc.scm (jemalloc)[native-inputs]: Remove field. --- gnu/packages/jemalloc.scm | 6 ------ 1 file changed, 6 deletions(-) diff --git a/gnu/packages/jemalloc.scm b/gnu/packages/jemalloc.scm index 143c80c2cb..52d43e8bd3 100644 --- a/gnu/packages/jemalloc.scm +++ b/gnu/packages/jemalloc.scm @@ -37,12 +37,6 @@ (define-public jemalloc (base32 "13pc6gcs5d6ws63jv83vslrb1vlqdnf1dg43awkb9bbj9xqnvl7s")))) (build-system gnu-build-system) - ;; XXX FIXME: Use gcc-4.8 on i686 to work around - ;; . - (native-inputs (if (and (not (%current-target-system)) - (string-prefix? "i686-" (%current-system))) - `(("gcc" ,(canonical-package gcc-4.8))) - '())) (home-page "http://www.canonware.com/jemalloc/") (synopsis "General-purpose scalable concurrent malloc implementation") (description -- cgit v1.2.3