aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2016-05-11 13:37:47 -0400
committerMark H Weaver <mhw@netris.org>2016-05-11 13:37:47 -0400
commit9f5e79675367aedd6be89e07edbc08a6e3695fab (patch)
tree2679dfc572b7173ba6fe52611047a47283af119d
parente2b89203db6c2056c9658be40ab1be471769d9eb (diff)
parentcf60e76a9503156a8c1047fa446525b28842f7e8 (diff)
downloadguix-9f5e79675367aedd6be89e07edbc08a6e3695fab.tar
guix-9f5e79675367aedd6be89e07edbc08a6e3695fab.tar.gz
Merge branch 'master' into gnome-updates
-rw-r--r--doc/emacs.texi5
-rw-r--r--doc/guix.texi4
-rw-r--r--emacs/guix-about.el37
-rw-r--r--emacs/guix-config.el.in8
-rw-r--r--emacs/guix-guile.el2
-rw-r--r--emacs/guix-main.scm95
-rw-r--r--emacs/guix-messages.el7
-rw-r--r--emacs/guix-ui-package.el33
-rw-r--r--emacs/local.mk1
-rw-r--r--gnu/local.mk13
-rw-r--r--gnu/packages/calendar.scm17
-rw-r--r--gnu/packages/connman.scm2
-rw-r--r--gnu/packages/entr.scm66
-rw-r--r--gnu/packages/game-development.scm4
-rw-r--r--gnu/packages/games.scm1
-rw-r--r--gnu/packages/gnome.scm1
-rw-r--r--gnu/packages/gnupg.scm4
-rw-r--r--gnu/packages/gnustep.scm29
-rw-r--r--gnu/packages/graphviz.scm18
-rw-r--r--gnu/packages/guile.scm31
-rw-r--r--gnu/packages/linux.scm19
-rw-r--r--gnu/packages/mail.scm4
-rw-r--r--gnu/packages/ntp.scm5
-rw-r--r--gnu/packages/patches/qemu-CVE-2015-8558.patch48
-rw-r--r--gnu/packages/patches/qemu-CVE-2015-8567.patch93
-rw-r--r--gnu/packages/patches/qemu-CVE-2015-8613.patch35
-rw-r--r--gnu/packages/patches/qemu-CVE-2015-8619.patch119
-rw-r--r--gnu/packages/patches/qemu-CVE-2015-8701.patch47
-rw-r--r--gnu/packages/patches/qemu-CVE-2015-8743.patch48
-rw-r--r--gnu/packages/patches/qemu-CVE-2016-1568.patch39
-rw-r--r--gnu/packages/patches/qemu-CVE-2016-1922.patch65
-rw-r--r--gnu/packages/patches/qemu-CVE-2016-1981.patch95
-rw-r--r--gnu/packages/patches/qemu-CVE-2016-2197.patch40
-rw-r--r--gnu/packages/patches/qemu-usb-ehci-oob-read.patch49
-rw-r--r--gnu/packages/patches/qemu-virtio-9p-use-accessor-to-get-thread-pool.patch34
-rw-r--r--gnu/packages/qemu.scm23
-rw-r--r--gnu/packages/qt.scm38
-rw-r--r--gnu/packages/suckless.scm39
-rw-r--r--gnu/packages/video.scm32
-rw-r--r--gnu/packages/wm.scm1
-rw-r--r--gnu/packages/xdisorg.scm42
-rw-r--r--gnu/tests/base.scm12
-rw-r--r--guix/utils.scm1
43 files changed, 403 insertions, 903 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/doc/guix.texi b/doc/guix.texi
index b575faffd7..0e63ecadfd 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
@@ -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,
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 <alezost@gmail.com>
+
+;; 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 <http://www.gnu.org/locations/>.
+
+;;; 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 <mthl@openmailbox.org>
-;; Copyright © 2015 Alex Kost <alezost@gmail.com>
+;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
;; 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/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."
diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm
index 2be86f026b..e645a85e7d 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 @@ return two values: name and version. For example, for SPEC
(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,39 @@ Example:
;;; 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-values (package-by-address
+ register-package)
+ (let ((table (delay (fold-packages
+ (lambda (package table)
+ (vhash-consq (object-address package)
+ package table))
+ vlist-null))))
+ (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
+ (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
@@ -435,6 +419,15 @@ MATCH-PARAMS is a list of parameters that REGEXP can match."
'()
(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.
@@ -687,6 +680,8 @@ ENTRIES is a list of installed manifest entries."
(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
@@ -697,6 +692,7 @@ ENTRIES is a list of installed manifest entries."
(regexp . ,regexp-proc)
(license . ,license-proc)
(location . ,location-proc)
+ (from-file . ,file-proc)
(all-available . ,all-proc)
(newest-available . ,newest-proc))
(output
@@ -707,6 +703,7 @@ ENTRIES is a list of installed manifest entries."
(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."
@@ -1001,6 +1003,19 @@ Interactively with prefix, prompt for 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.
PARAMS are package parameters that should be searched.
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 \
diff --git a/gnu/local.mk b/gnu/local.mk
index 183ddb8354..688632928f 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 \
@@ -708,18 +709,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/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 <davet@gnu.org>
;;; Copyright © 2015, 2016 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -47,11 +48,23 @@
"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
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 @@
(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
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 <matthewjordandevops@yandex.com>
+;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages 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)))
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 @@ provide connectivity for client applications written in any language.")
(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 @@ provide connectivity for client applications written in any language.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "10bbjdv5r36229r1dqg32bxcj9yvpkx9jgs9v4s1qb71v856b15h"))))
+ "0s1i6yhm1z9ayzjh8cprcc9jvj5m87l9snyqg6w7zlj3q9zn4rn6"))))
(build-system gnu-build-system)
(inputs `(("qt" ,qt)
("zlib" ,zlib)))
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 @@
#: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 ad5dd947bc..83e4f83163 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -93,7 +93,6 @@
#: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/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 @@ provided.")
(define-public libksba
(package
(name "libksba")
- (version "1.3.3")
+ (version "1.3.4")
(source
(origin
(method url-fetch)
@@ -157,7 +157,7 @@ provided.")
version ".tar.bz2"))
(sha256
(base32
- "11kp3h9l3b8ikydkcdkwgx45r662zi30m26ra5llyhfh6kz5yzqc"))))
+ "0kxdb02z41cwm1xbwfwj9nbc0dzjhwyq8c475mlhhmpcxcy8ihpn"))))
(build-system gnu-build-system)
(propagated-inputs
`(("libgpg-error" ,libgpg-error)))
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 @@
#: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 @@ on.")
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+)))
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 @@
#: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 @@
#: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 @@
(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)
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 53ea3e53bb..cf79d4e255 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -5,6 +5,7 @@
;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Erik Edrosa <erik.edrosa@gmail.com>
+;;; Copyright © 2016 Eraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -362,14 +363,14 @@ many readers as needed).")
(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,21 +379,17 @@ many readers as needed).")
(string-append "--with-guilesitedir="
(assoc-ref %outputs "out")
"/share/guile/site/2.0"))
-
- ;; Work around <http://bugs.gnu.org/21677>.
- #:make-flags '("XFAIL_TESTS=curses_034_util.test")
-
- #: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
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 @@ feature, and a laptop with an accelerometer. It has no effect on SSDs.")
`("-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)))
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 @@ delivery.")
(define-public exim
(package
(name "exim")
- (version "4.86.2")
+ (version "4.87")
(source
(origin
(method url-fetch)
@@ -677,7 +677,7 @@ delivery.")
version ".tar.bz2")))
(sha256
(base32
- "1cvfcc1hi60lydv8h3a2rxlfc0v2nflwpvzjj7h7cdsqs2pxwmkp"))))
+ "1jbxn13shq90kpn0s73qpjnx5xm8jrpwhcwwgqw5s6sdzw6iwsbl"))))
(build-system gnu-build-system)
(inputs
`(("bdb" ,bdb)
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 <mhw@netris.org>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -92,7 +93,7 @@ computers over a network.")
(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 @@ computers over a network.")
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")
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 <kraxel@redhat.com>
-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 <luodalongde@gmail.com>
-Tested-by: P J P <ppandit@redhat.com>
-Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
----
- 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 <ppandit@redhat.com>
-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 <luodalongde@gmail.com>
-Reviewed-by: Dmitry Fleytman <dmitry@daynix.com>
-Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
-Cc: qemu-stable@nongnu.org
-Signed-off-by: Jason Wang <jasowang@redhat.com>
----
- 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 <ppandit@redhat.com>
-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 <luodalongde@gmail.com>
-Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
-Message-Id: <alpine.LFD.2.20.1512211501420.22471@wniryva>
-Cc: qemu-stable@nongnu.org
-Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-Signed-off-by: P J P <ppandit@redhat.com>
----
- 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 <w.bumiller@proxmox.com>
-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 <liuling-it@360.cn>
-Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
-Message-Id: <20160113080958.GA18934@olga>
-[Comparison with "<" dumbed down, test for junk after strtoul()
-tweaked]
-Signed-off-by: Markus Armbruster <armbru@redhat.com>
-
-(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 <pjp@fedoraproject.org>
-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 <luodalongde@gmail.com>
-Cc: qemu-stable@nongnu.org
-Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
-Signed-off-by: Jason Wang <jasowang@redhat.com>
----
- 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 <pjp@fedoraproject.org>
-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 <liuling-it@360.cn>
-Cc: qemu-stable@nongnu.org
-Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
-Signed-off-by: Jason Wang <jasowang@redhat.com>
----
- 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 <pjp@fedoraproject.org>
-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 <luodalongde@gmail.com>
-Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
-Reviewed-by: John Snow <jsnow@redhat.com>
-Message-id: 1452282511-4116-1-git-send-email-ppandit@redhat.com
-Signed-off-by: John Snow <jsnow@redhat.com>
----
- 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 <ppandit@redhat.com>
-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 <pjp@fedoraproject.org>
-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 <liuling-it@360.cn>
-Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
-Message-Id: <alpine.LFD.2.20.1512181129320.9805@wniryva>
-Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-Signed-off-by: P J P <ppandit@redhat.com>
----
- 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 <lersek@redhat.com>
-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" <mst@redhat.com>
-Cc: Petr Matousek <pmatouse@redhat.com>
-Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Cc: Prasad Pandit <ppandit@redhat.com>
-Cc: Michael Roth <mdroth@linux.vnet.ibm.com>
-Cc: Jason Wang <jasowang@redhat.com>
-Cc: qemu-stable@nongnu.org
-RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1296044
-Signed-off-by: Laszlo Ersek <lersek@redhat.com>
-Reviewed-by: Jason Wang <jasowang@redhat.com>
-Signed-off-by: Jason Wang <jasowang@redhat.com>
-(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 <jsnow@redhat.com>
-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 <zuozhi.fzz@alibaba-inc.com>
-Signed-off-by: John Snow <jsnow@redhat.com>
-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 <pjp@fedoraproject.org>
-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 <luodalongde@gmail.com>
-Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
-Message-id: 1453233406-12165-1-git-send-email-ppandit@redhat.com
-Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-(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 <gkurz@linux.vnet.ibm.com>
-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 <mjt@tls.msk.ru>
-Tested-by: Michael Tokarev <mjt@tls.msk.ru>
-Cc: qemu-stable@nongnu.org
-Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
----
- 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..9e3fbf462c 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 <ludo@gnu.org>
;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -54,30 +55,20 @@
(define-public qemu
(package
(name "qemu")
- (version "2.5.0")
+ (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
- "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"))))
+ "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)
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 @@
#: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/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 <tipecaml@gmail.com>
;;; Copyright © 2015 Amirouche Boubekki <amirouche@hypermove.net>
+;;; Copyright © 2016 Al McElrath <hello@yrns.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,10 +23,13 @@
#: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 @@ implements 256 colors, most VT10X escape sequences, utf8, X11 copy/paste,
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)))
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 6060702022..6578a4031f 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -373,14 +373,14 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
(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 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
(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
@@ -860,7 +860,7 @@ projects while introducing many more.")
(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 @@ projects while introducing many more.")
version ".tar.gz"))
(sha256
(base32
- "1kdrjwrn0x1wmvansvd2222gfqnld4zdihf2jwnz36112r1p8nhi"))))
+ "1w04afmwq5pjvp3nl2k59q0cigqrj9n8fwkydcfldwpq83l15j5d"))))
(build-system python-build-system)
(home-page "http://youtube-dl.org")
(arguments
@@ -1266,14 +1266,15 @@ from various services and pipes them into a video playing application.")
(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 @@ from various services and pipes them into a video playing application.")
("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
@@ -1316,14 +1318,14 @@ tools, XML authoring components, and an extensible plug-in based API.")
(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
@@ -1349,7 +1351,7 @@ be used for realtime video capture via Linux-specific APIs.")
(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 +1359,7 @@ be used for realtime video capture via Linux-specific APIs.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1awaqlhlzlqqnwqixw54z40hqcnr3fwlclq4vlsy2kvsfyqjfr2b"))))
+ "1w07ign2swfigmsjd2jyaqqdnj2zpzs8hzsjzzk5l377jbx3ml5g"))))
(build-system cmake-build-system)
(arguments '(#:tests? #f)) ; no tests
(native-inputs
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 @@
#: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 bb74485c76..4f508ad8c7 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -54,8 +54,8 @@
#: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 @@ can also be used for copying files, as an alternative to sftp/scp, thus
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")
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 @@ info --version")
"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.
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 @@
#: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