diff options
| author | Mark H Weaver <mhw@netris.org> | 2016-05-11 13:37:47 -0400 | 
|---|---|---|
| committer | Mark H Weaver <mhw@netris.org> | 2016-05-11 13:37:47 -0400 | 
| commit | 9f5e79675367aedd6be89e07edbc08a6e3695fab (patch) | |
| tree | 2679dfc572b7173ba6fe52611047a47283af119d | |
| parent | e2b89203db6c2056c9658be40ab1be471769d9eb (diff) | |
| parent | cf60e76a9503156a8c1047fa446525b28842f7e8 (diff) | |
Merge branch 'master' into gnome-updates
43 files changed, 402 insertions, 902 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-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 name version) -  (or (hash-ref (package-table) -                (name+version->key name version)) -      '())) +(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 | 
