Merge branch 'master' into core-updates
author宋文武 <iyzsong@gmail.com>
Wed, 8 Apr 2015 08:04:37 +0000 (16:04 +0800)
committer宋文武 <iyzsong@gmail.com>
Wed, 8 Apr 2015 08:04:37 +0000 (16:04 +0800)
13 files changed:
1  2 
gnu-system.am
gnu/packages.scm
gnu/packages/commencement.scm
gnu/packages/emacs.scm
gnu/packages/gnome.scm
gnu/packages/gnuzilla.scm
gnu/packages/gtk.scm
gnu/packages/haskell.scm
gnu/packages/linux.scm
gnu/packages/node.scm
gnu/packages/video.scm
guix/build/glib-or-gtk-build-system.scm
guix/ui.scm

diff --combined gnu-system.am
@@@ -93,6 -93,7 +93,7 @@@ GNU_SYSTEM_MODULES =                          
    gnu/packages/enchant.scm                    \
    gnu/packages/engineering.scm                        \
    gnu/packages/enlightenment.scm              \
+   gnu/packages/fcitx.scm                      \
    gnu/packages/feh.scm                          \
    gnu/packages/file.scm                               \
    gnu/packages/firmware.scm                   \
    gnu/packages/kde.scm                                \
    gnu/packages/key-mon.scm                    \
    gnu/packages/language.scm                   \
 -  gnu/packages/ld-wrapper.scm                 \
    gnu/packages/less.scm                               \
    gnu/packages/lesstif.scm                    \
    gnu/packages/libcanberra.scm                        \
@@@ -411,7 -413,6 +412,7 @@@ dist_patch_DATA =                                          
    gnu/packages/patches/flex-bison-tests.patch                 \
    gnu/packages/patches/gawk-shell.patch                               \
    gnu/packages/patches/gcc-cross-environment-variables.patch  \
 +  gnu/packages/patches/ghostscript-runpath.patch              \
    gnu/packages/patches/glib-tests-desktop.patch                       \
    gnu/packages/patches/glib-tests-homedir.patch                       \
    gnu/packages/patches/glib-tests-prlimit.patch                       \
    gnu/packages/patches/guix-test-networking.patch             \
    gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \
    gnu/packages/patches/hop-bigloo-4.0b.patch                  \
-   gnu/packages/patches/icecat-bug-1127780.patch                       \
-   gnu/packages/patches/icecat-bug-1144991.patch                       \
-   gnu/packages/patches/icecat-bug-1145870.patch                       \
-   gnu/packages/patches/icecat-bug-1146339.patch                       \
-   gnu/packages/patches/icecat-CVE-2015-0817.patch             \
-   gnu/packages/patches/icecat-CVE-2015-0818-pt1.patch         \
-   gnu/packages/patches/icecat-CVE-2015-0818-pt2.patch         \
    gnu/packages/patches/irrlicht-mesa-10.patch                 \
    gnu/packages/patches/jbig2dec-ignore-testtest.patch         \
    gnu/packages/patches/kmod-module-directory.patch            \
    gnu/packages/patches/libevent-dns-tests.patch                       \
    gnu/packages/patches/liboop-mips64-deplibs-fix.patch                \
    gnu/packages/patches/libmad-mips-newgcc.patch                       \
-   gnu/packages/patches/librep-rules.mk.patch                  \
    gnu/packages/patches/libtheora-config-guess.patch           \
    gnu/packages/patches/libtool-skip-tests.patch                       \
    gnu/packages/patches/libssh-CVE-2014-0017.patch             \
    gnu/packages/patches/libvpx-fix-armhf-link.patch            \
    gnu/packages/patches/libvpx-fix-ssse3-quantize.patch                \
    gnu/packages/patches/libvpx-vp9-out-of-bounds-access.patch  \
+   gnu/packages/patches/linux-libre-libreboot-fix.patch                \
+   gnu/packages/patches/linux-libre-vblank-fix.patch           \
    gnu/packages/patches/lirc-localstatedir.patch                       \
    gnu/packages/patches/lm-sensors-hwmon-attrs.patch           \
    gnu/packages/patches/lua51-liblua-so.patch                    \
    gnu/packages/patches/nvi-dbpagesize-binpower.patch          \
    gnu/packages/patches/nvi-db4.patch                          \
    gnu/packages/patches/openexr-missing-samples.patch          \
 +  gnu/packages/patches/openssl-runpath.patch                  \
    gnu/packages/patches/orpheus-cast-errors-and-includes.patch \
    gnu/packages/patches/ots-no-include-missing-file.patch      \
    gnu/packages/patches/patchelf-page-size.patch                       \
    gnu/packages/patches/patchelf-rework-for-arm.patch          \
    gnu/packages/patches/patchutils-xfail-gendiff-tests.patch   \
    gnu/packages/patches/pavucontrol-sigsegv.patch              \
+   gnu/packages/patches/perl-gd-options-passthrough-and-fontconfig.patch \
    gnu/packages/patches/perl-no-sys-dirs.patch                 \
    gnu/packages/patches/perl-tk-x11-discover.patch             \
    gnu/packages/patches/petsc-fix-threadcomm.patch             \
    gnu/packages/patches/portaudio-audacity-compat.patch                \
    gnu/packages/patches/procps-make-3.82.patch                 \
    gnu/packages/patches/pulseaudio-fix-mult-test.patch         \
+   gnu/packages/patches/pulseaudio-longer-test-timeout.patch   \
    gnu/packages/patches/pybugz-encode-error.patch              \
    gnu/packages/patches/pybugz-stty.patch                      \
    gnu/packages/patches/pyqt-configure.patch                   \
    gnu/packages/patches/slim-config.patch                      \
    gnu/packages/patches/slim-sigusr1.patch                     \
    gnu/packages/patches/soprano-find-clucene.patch             \
-   gnu/packages/patches/source-highlight-regexrange-test.patch \
    gnu/packages/patches/superlu-dist-scotchmetis.patch         \
    gnu/packages/patches/tcsh-fix-autotest.patch                        \
    gnu/packages/patches/teckit-cstdio.patch                    \
    gnu/packages/patches/xf86-video-openchrome-glibc-2.20.patch \
    gnu/packages/patches/xf86-video-r128-glibc-2.20.patch               \
    gnu/packages/patches/xf86-video-siliconmotion-remove-mibstore.patch \
+   gnu/packages/patches/xf86-video-sis-fix-exa-crash.patch     \
    gnu/packages/patches/xf86-video-sis-update-api.patch                \
    gnu/packages/patches/xf86-video-tdfx-remove-mibstore.patch  \
    gnu/packages/patches/xf86-video-tga-remove-mibstore.patch   \
    gnu/packages/patches/xmodmap-asprintf.patch                         \
    gnu/packages/patches/zathura-plugindir-environment-variable.patch
  
 +MISC_DISTRO_FILES =                           \
 +  gnu/packages/ld-wrapper.in
 +
  bootstrapdir = $(guilemoduledir)/gnu/packages/bootstrap
  bootstrap_x86_64_linuxdir = $(bootstrapdir)/x86_64-linux
  bootstrap_i686_linuxdir = $(bootstrapdir)/i686-linux
diff --combined gnu/packages.scm
@@@ -35,7 -35,7 +35,7 @@@
    #:use-module (srfi srfi-39)
    #:export (search-patch
              search-bootstrap-binary
-             %patch-directory
+             %patch-path
              %bootstrap-binaries-path
              %package-module-path
  
@@@ -160,15 -160,9 +160,15 @@@ Optionally, narrow the search to SUB-DI
      (string-length directory))
  
    (filter-map (lambda (file)
 -                (let ((file (substring file prefix-len)))
 -                  (false-if-exception
 -                   (resolve-interface (file-name->module-name file)))))
 +                (let* ((file   (substring file prefix-len))
 +                       (module (file-name->module-name file)))
 +                  (catch #t
 +                    (lambda ()
 +                      (resolve-interface module))
 +                    (lambda args
 +                      ;; Report the error, but keep going.
 +                      (warn-about-load-error module args)
 +                      #f))))
                (scheme-files (if sub-directory
                                  (string-append directory "/" sub-directory)
                                  directory))))
@@@ -26,7 -26,6 +26,6 @@@
    #:use-module (gnu packages base)
    #:use-module (gnu packages bash)
    #:use-module (gnu packages gcc)
-   #:use-module (gnu packages ed)
    #:use-module (gnu packages m4)
    #:use-module (gnu packages file)
    #:use-module (gnu packages gawk)
                     (srfi srfi-1)
                     (srfi srfi-26))
          ,@(substitute-keyword-arguments (package-arguments gcc-4.8)
 +            ((#:validate-runpath? _)
 +             #t)
              ((#:configure-flags flags)
               `(append (list ,(string-append "--target=" (boot-triplet))
  
@@@ -526,11 -523,6 +525,11 @@@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic
                                               "/lib")
                                flag))
                          ,flags)))
 +           ((#:validate-runpath? _)
 +            ;; Things like libasan.so and libstdc++.so NEED ld.so and/or
 +            ;; libgcc_s.so but RUNPATH is empty.  This is a false positive, so
 +            ;; turn it off.
 +            #f)
             ((#:phases phases)
              `(alist-delete 'symlink-libgcc_eh ,phases)))))
  
  
  (define ld-wrapper-boot3
    ;; A linker wrapper that uses the bootstrap Guile.
 -  (package
 -    (name "ld-wrapper-boot3")
 -    (version "0")
 -    (source #f)
 -    (build-system trivial-build-system)
 -    (inputs `(("binutils" ,binutils-final)
 -              ("guile"    ,%bootstrap-guile)
 -              ("bash"     ,@(assoc-ref %boot2-inputs "bash"))
 -              ("wrapper"  ,(search-path %load-path
 -                                        "gnu/packages/ld-wrapper.scm"))))
 -    (arguments
 -     `(#:guile ,%bootstrap-guile
 -       #:modules ((guix build utils))
 -       #:builder (begin
 -                   (use-modules (guix build utils)
 -                                (system base compile))
 -
 -                   (let* ((out (assoc-ref %outputs "out"))
 -                          (bin (string-append out "/bin"))
 -                          (ld  (string-append bin "/ld"))
 -                          (go  (string-append bin "/ld.go")))
 -
 -                     (setvbuf (current-output-port) _IOLBF)
 -                     (format #t "building ~s/bin/ld wrapper in ~s~%"
 -                             (assoc-ref %build-inputs "binutils")
 -                             out)
 -
 -                     (mkdir-p bin)
 -                     (copy-file (assoc-ref %build-inputs "wrapper") ld)
 -                     (substitute* ld
 -                       (("@GUILE@")
 -                        (string-append (assoc-ref %build-inputs "guile")
 -                                       "/bin/guile"))
 -                       (("@BASH@")
 -                        (string-append (assoc-ref %build-inputs "bash")
 -                                       "/bin/bash"))
 -                       (("@LD@")
 -                        (string-append (assoc-ref %build-inputs "binutils")
 -                                       "/bin/ld")))
 -                     (chmod ld #o555)
 -                     (compile-file ld #:output-file go)))))
 -    (synopsis "The linker wrapper")
 -    (description
 -     "The linker wrapper (or `ld-wrapper') wraps the linker to add any
 -missing `-rpath' flags, and to detect any misuse of libraries outside of the
 -store.")
 -    (home-page #f)
 -    (license gpl3+)))
 +  (make-ld-wrapper "ld-wrapper-boot3"
 +                   #:binutils binutils-final
 +                   #:guile %bootstrap-guile
 +                   #:bash (car (assoc-ref %boot2-inputs "bash"))))
  
  (define %boot3-inputs
    ;; 4th stage inputs.
                                   (current-source-location)
                                   #:guile %bootstrap-guile)))
  
 -(define glibc-utf8-locales-final
 +(define-public glibc-utf8-locales-final
    ;; Now that we have GUILE-FINAL, build the UTF-8 locales.  They are needed
    ;; by the build processes afterwards so their 'scm_to_locale_string' works
    ;; with the full range of Unicode codepoints (remember
diff --combined gnu/packages/emacs.scm
@@@ -28,6 -28,7 +28,7 @@@
    #:use-module (guix build-system trivial)
    #:use-module (gnu packages)
    #:use-module (gnu packages gtk)
+   #:use-module (gnu packages gnome)
    #:use-module (gnu packages ncurses)
    #:use-module (gnu packages texinfo)
    #:use-module (gnu packages gnutls)
@@@ -92,6 -93,7 +93,7 @@@
         ("libpng" ,libpng)
         ("zlib" ,zlib)
  
+        ("librsvg" ,librsvg)
         ("libxpm" ,libxpm)
         ("libxml2" ,libxml2)
         ("libice" ,libice)
@@@ -126,7 -128,7 +128,7 @@@ editor (console only)"
      (inputs (fold alist-delete
                    (package-inputs emacs)
                    '("libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg"
-                     "libpng" "libxpm" "libice" "libsm"
+                     "libpng" "librsvg" "libxpm" "libice" "libsm"
  
                      ;; D-Bus depends on libx11, so remove it as well.
                      "dbus")))))
@@@ -247,7 -249,8 +249,7 @@@ when typing parentheses directly or com
       `(#:modules ((guix build gnu-build-system)
                    (guix build utils)
                    (guix build emacs-utils))
 -       #:imported-modules ((guix build gnu-build-system)
 -                           (guix build utils)
 +       #:imported-modules (,@%gnu-build-system-modules
                             (guix build emacs-utils))
         #:tests? #f  ; no check target
         #:phases
@@@ -307,7 -310,8 +309,7 @@@ operations."
       '(#:modules ((guix build gnu-build-system)
                    (guix build utils)
                    (guix build emacs-utils))
 -       #:imported-modules ((guix build gnu-build-system)
 -                           (guix build utils)
 +       #:imported-modules (,@%gnu-build-system-modules
                             (guix build emacs-utils))
         #:configure-flags
         (let ((out (assoc-ref %outputs "out")))
       '(#:modules ((guix build gnu-build-system)
                    (guix build utils)
                    (guix build emacs-utils))
 -       #:imported-modules ((guix build gnu-build-system)
 -                           (guix build utils)
 +       #:imported-modules (,%gnu-build-system-modules
                             (guix build emacs-utils))
         #:tests? #f  ; no check target
         #:phases
       '(#:modules ((guix build gnu-build-system)
                    (guix build utils)
                    (guix build emacs-utils))
 -       #:imported-modules ((guix build gnu-build-system)
 -                           (guix build utils)
 +       #:imported-modules (,%gnu-build-system-modules
                             (guix build emacs-utils))
  
         #:phases (alist-replace
diff --combined gnu/packages/gnome.scm
@@@ -5,6 -5,7 +5,7 @@@
  ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
  ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
  ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
+ ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
  ;;;
  ;;; This file is part of GNU Guix.
  ;;;
@@@ -30,6 -31,8 +31,8 @@@
    #:use-module (guix build-system glib-or-gtk)
    #:use-module (gnu packages)
    #:use-module (gnu packages bison)
+   #:use-module (gnu packages curl)
+   #:use-module (gnu packages databases)
    #:use-module (gnu packages flex)
    #:use-module (gnu packages docbook)
    #:use-module (gnu packages glib)
    #:use-module (gnu packages pdf)
    #:use-module (gnu packages popt)
    #:use-module (gnu packages ghostscript)
+   #:use-module (gnu packages gnutls)
    #:use-module (gnu packages iso-codes)
    #:use-module (gnu packages libcanberra)
+   #:use-module (gnu packages linux)
    #:use-module (gnu packages image)
    #:use-module (gnu packages perl)
    #:use-module (gnu packages pkg-config)
@@@ -48,6 -53,7 +53,7 @@@
    #:use-module (gnu packages xml)
    #:use-module (gnu packages gl)
    #:use-module (gnu packages compression)
+   #:use-module (gnu packages web)
    #:use-module (gnu packages xorg)
    #:use-module (gnu packages xdisorg)
    #:use-module (gnu packages ncurses))
@@@ -252,7 -258,7 +258,7 @@@ on the GNOME Desktop with a single simp
  (define-public gsettings-desktop-schemas
    (package
      (name "gsettings-desktop-schemas")
-     (version "3.10.0")
+     (version "3.16.0")
      (source
       (origin
        (method url-fetch)
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1km8qxwrzvravmg8j680qv64bwnwbdgrmy8bqmhs0dgxn2b1as6a"))))
+         "02dp1hl38k16m9abydfca1n236mdazqdz0p3n92s7haf9mdqsf16"))))
      (build-system gnu-build-system)
      (inputs
       `(("glib" ,glib)))
      (native-inputs
       `(("intltool" ,intltool)
         ("glib" ,glib "bin")                       ; glib-compile-schemas, etc.
+        ("gobject-introspection" ,gobject-introspection)
         ("pkg-config" ,pkg-config)))
      (home-page "https://launchpad.net/gsettings-desktop-schemas")
      (synopsis
@@@ -1398,7 -1405,7 +1405,7 @@@ libraries written in C."
  (define-public vte
    (package
      (name "vte")
-     (version "0.38.2")
+     (version "0.40.0")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "1rbxrigff9yszbgdw0gw4c2saz4d1hbbpz21phzxx14w49wvmnmj"))))
+                 "0lnq0bgkmsixjwmfacb2ch9qfjqjxa8zkk1hiv3l29kgca0n3nal"))))
      (build-system gnu-build-system)
      (native-inputs
       `(("pkg-config" ,pkg-config)
         ("glib" ,glib "bin") ; for glib-genmarshal, etc.
         ("xmllint" ,libxml2)))
      (propagated-inputs
-      `(("gtk+" ,gtk+))) ; required by libvte-2.91.pc
+      `(("gtk+" ,gtk+)                             ;required by vte-2.91.pc
+        ("gnutls" ,gnutls)))                       ;ditto
      (arguments
       `(#:phases
         (alist-cons-before
@@@ -1622,10 -1630,114 +1630,114 @@@ library."
      ;; of gnome-python-desktop is given in 'COPYING'.
      (license license:lgpl2.1+)))
  
+ (define-public glib-networking
+   (package
+     (name "glib-networking")
+     (version "2.44.0")
+     (source (origin
+               (method url-fetch)
+               (uri (string-append "mirror://gnome/sources/glib-networking/"
+                                   (version-major+minor version) "/"
+                                   name "-" version ".tar.xz"))
+               (sha256
+                (base32
+                 "0ij33bhvn7y5gagx4sbrw906dsjjjs9dllxn73pzv6x97c6k92lg"))))
+     (build-system gnu-build-system)
+     (arguments
+      `(#:configure-flags
+        ;; FIXME: ca-certificates.crt is not available in the build environment.
+        '("--with-ca-certificates=no")
+        #:phases
+        (modify-phases %standard-phases
+          (add-before configure patch-giomoduledir
+                      ;; Install GIO modules into $out/lib/gio/modules.
+                      (lambda _
+                        (substitute* "configure"
+                          (("GIO_MODULE_DIR=.*")
+                           (string-append "GIO_MODULE_DIR=" %output
+                                          "/lib/gio/modules\n"))))))))
+     (native-inputs
+      `(("pkg-config" ,pkg-config)
+        ("intltool" ,intltool)))
+     (inputs
+      `(("glib" ,glib)
+        ("gnutls" ,gnutls)
+        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+        ("p11-kit" ,p11-kit)))
+     (home-page "http://www.gnome.org")
+     (synopsis "Network-related GIO modules")
+     (description
+      "This package contains various network related extensions for the GIO
+ library.")
+     (license license:lgpl2.0+)))
+ (define-public libsoup
+   (package
+     (name "libsoup")
+     (version "2.50.0")
+     (source (origin
+               (method url-fetch)
+               (uri (string-append "mirror://gnome/sources/libsoup/"
+                                   (version-major+minor version) "/"
+                                   name "-" version ".tar.xz"))
+               (sha256
+                (base32
+                 "0yv61y5vfar1rfksa6f53zhfw9wcb39zjix8gqc1ff5gqid3c08y"))))
+     (build-system gnu-build-system)
+     (outputs '("out" "doc"))
+     (arguments
+      `(#:make-flags '("CC=gcc") ; for g-ir-scanner
+        #:configure-flags
+        (list (string-append "--with-html-dir="
+                             (assoc-ref %outputs "doc")
+                             "/share/gtk-doc/html")
+              ;; To find GIO modules from glib-networking.
+              (string-append "GIO_EXTRA_MODULES="
+                             (assoc-ref %build-inputs "glib-networking")
+                             "/lib/gio/modules"))
+        #:phases
+        (modify-phases %standard-phases
+          (add-before configure disable-unconnected-socket-test
+                      ;; This test fails due to missing /etc/nsswitch.conf
+                      ;; in the build environment.
+                      (lambda _
+                        (substitute* "tests/socket-test.c"
+                          ((".*/sockets/unconnected.*") ""))
+                        #t))
+          (add-before check unset-LC_ALL
+                      ;; The 'check-local' target runs 'env LANG=C sort -u',
+                      ;; unset 'LC_ALL' to make 'LANG' working.
+                      (lambda _
+                        (unsetenv "LC_ALL")
+                        #t)))))
+     (native-inputs
+      `(("glib:bin" ,glib "bin") ; for glib-mkenums
+        ("gobject-introspection" ,gobject-introspection)
+        ("intltool" ,intltool)
+        ("pkg-config" ,pkg-config)
+        ("python" ,python-wrapper)
+        ;; These are needed for the tests.
+        ;; FIXME: Add PHP once available.
+        ("curl" ,curl)
+        ("httpd" ,httpd)))
+     (propagated-inputs
+      ;; libsoup-2.4.pc refers to all these.
+      `(("glib" ,glib)
+        ("libxml2" ,libxml2)))
+     (inputs
+      `(("glib-networking" ,glib-networking)
+        ("sqlite" ,sqlite)))
+     (home-page "https://live.gnome.org/LibSoup/")
+     (synopsis "GLib-based HTTP Library")
+     (description
+      "LibSoup is an HTTP client/server library for GNOME.  It uses GObjects
+ and the GLib main loop, to integrate well with GNOME applications.")
+     (license license:lgpl2.0+)))
  (define-public gnome-mines
    (package
      (name "gnome-mines")
-     (version "3.14.1")
+     (version "3.16.0")
      (source
       (origin
         (method url-fetch)
                             name "-" version ".tar.xz"))
         (sha256
          (base32
-          "0nbgvzlsznn3v83pdcx2d52r4ig1mvaijh633rjddx9rgq2ja7kv"))))
+          "0wfvqyryc1093l4dr75zv9h0jyn28z6wirdq03lm5w24qf9lvjjx"))))
      (build-system glib-or-gtk-build-system)
      (arguments
       '(#:phases
         (modify-phases %standard-phases
 -         (add-before configure patch-/bin/true
 +         (add-before 'configure 'patch-/bin/true
                       (lambda _
                         (substitute* "configure"
                           (("/bin/true") (which "true")))))
 -         (add-after install wrap-pixbuf
 +         (add-after 'install 'wrap-pixbuf
                      ;; Use librsvg's loaders.cache to support SVG files.
                      (lambda* (#:key inputs outputs #:allow-other-keys)
                        (let* ((out    (assoc-ref outputs "out"))
       "Mines (previously gnomine) is a puzzle game where you locate mines
  floating in an ocean using only your brain and a little bit of luck.")
      (license license:gpl2+)))
+ (define-public gnome-terminal
+   (package
+     (name "gnome-terminal")
+     (version "3.16.0")
+     (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://gnome/sources/" name "/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "1s3zwqxs4crlqmh6l7s7n87pbmh2nnjdvhxlkalh58pbl0bk0qrd"))))
+     (build-system glib-or-gtk-build-system)
+     (arguments
+      '(#:configure-flags
+        (list "--disable-migration" "--disable-search-provider"
+              "--without-nautilus-extension")
+        #:phases
+        (modify-phases %standard-phases
+          (add-before configure patch-/bin/true
+                      (lambda _
+                        (substitute* "configure"
+                          (("/bin/true") (which "true"))))))))
+     (native-inputs
+      `(("pkg-config" ,pkg-config)
+        ("desktop-file-utils" ,desktop-file-utils)
+        ("intltool" ,intltool)
+        ("itstool" ,itstool)))
+     (inputs
+      `(("gtk+" ,gtk+)
+        ("vte" ,vte)
+        ("gnutls" ,gnutls)
+        ("dconf" ,dconf)
+        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+        ("util-linux" ,util-linux)
+        ("vala" ,vala)))
+     (home-page "https://wiki.gnome.org/Apps/Terminal")
+     (synopsis "Terminal emulator")
+     (description
+      "GNOME Terminal is a terminal emulator application for accessing a
+ UNIX shell environment which can be used to run programs available on
+ your system.
+ It supports several profiles, multiple tabs and implements several
+ keyboard shortcuts.")
+     (license license:gpl3+)))
@@@ -1,6 -1,6 +1,6 @@@
  ;;; GNU Guix --- Functional package management for GNU
  ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
 -;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
 +;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
  ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
  ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
  ;;;
@@@ -20,6 -20,7 +20,7 @@@
  ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
  
  (define-module (gnu packages gnuzilla)
+   #:use-module ((srfi srfi-1) #:hide (zip))
    #:use-module (gnu packages)
    #:use-module ((guix licenses) #:prefix license:)
    #:use-module (guix packages)
@@@ -122,15 -123,18 +123,18 @@@ in the Mozilla clients."
  (define-public nss
    (package
      (name "nss")
-     (version "3.17.4")
+     (version "3.18")
      (source (origin
                (method url-fetch)
-               (uri (string-append
-                     "ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/"
-                     "releases/NSS_3_17_4_RTM/src/nss-3.17.4.tar.gz"))
+               (uri (let ((version-with-underscores
+                           (string-join (string-split version #\.) "_")))
+                      (string-append
+                       "ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/"
+                       "releases/NSS_" version-with-underscores "_RTM/src/"
+                       "nss-" version ".tar.gz")))
                (sha256
                 (base32
-                 "0ycxzybgn4bq0i6j5zjdjl70n3s8a742yixyik4pw8x4h4cav60x"))
+                 "0h0xy9kvd2s8r438q4dfn25cgvv5dc1hkm9lb4bgrxpr5bxv13b1"))
                ;; Create nss.pc and nss-config.
                (patches (list (search-patch "nss-pkgconfig.patch")))))
      (build-system gnu-build-system)
                    (ice-9 ftw)
                    (ice-9 match)
                    (srfi srfi-26))
 -       #:imported-modules ((guix build gnu-build-system)
 -                           (guix build utils))
         #:phases
         (alist-replace
          'configure
@@@ -214,22 -220,16 +218,16 @@@ standards."
  (define-public icecat
    (package
      (name "icecat")
-     (version "31.5.0")
+     (version "31.6.0-gnu1")
      (source
       (origin
        (method url-fetch)
        (uri (string-append "mirror://gnu/gnuzilla/"
-                           version "/" name "-" version ".tar.bz2"))
+                           (first (string-split version #\-)) "/"
+                           name "-" version ".tar.bz2"))
        (sha256
         (base32
-         "1rr4axghaypdkrf60i1qp6dz4cd29ya02fs3vyffvp4x9kgcq2dd"))
-       (patches (map search-patch '("icecat-bug-1127780.patch"
-                                    "icecat-CVE-2015-0817.patch"
-                                    "icecat-bug-1144991.patch"
-                                    "icecat-CVE-2015-0818-pt1.patch"
-                                    "icecat-bug-1145870.patch"
-                                    "icecat-CVE-2015-0818-pt2.patch"
-                                    "icecat-bug-1146339.patch")))))
+         "1a4l23msg4cpc4yp59q2z6xv63r6advlbnjy65v4djv6yhgnqf1i"))))
      (build-system gnu-build-system)
      (inputs
       `(("alsa-lib" ,alsa-lib)
diff --combined gnu/packages/gtk.scm
@@@ -5,6 -5,7 +5,7 @@@
  ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
  ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
  ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
+ ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
  ;;;
  ;;; This file is part of GNU Guix.
  ;;;
@@@ -34,7 -35,6 +35,7 @@@
    #:use-module (gnu packages compression)
    #:use-module (gnu packages fontutils)
    #:use-module (gnu packages ghostscript)
 +  #:use-module (gnu packages gl)
    #:use-module (gnu packages glib)
    #:use-module (gnu packages gnome)
    #:use-module (gnu packages icu4c)
@@@ -52,7 -52,7 +53,7 @@@
  (define-public atk
    (package
     (name "atk")
-    (version "2.15.3")
+    (version "2.16.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/" name "/"
                                  name "-" version ".tar.xz"))
              (sha256
               (base32
-               "177a9x6lz2im0mfgxv2crv0l740wy7rg5vlnb8wyyf4fmnh0q19f")))) ; 2.15.3
+               "0qp5i91kfk6rhrlam3s8ha0cz88lkyp89vsyn4pb5856c1h9hpq9"))))
     (build-system gnu-build-system)
-    (inputs `(("glib" ,glib)))
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list (string-append "--with-html-dir="
+                            (assoc-ref %outputs "doc")
+                            "/share/gtk-doc/html"))))
+    (propagated-inputs `(("glib" ,glib))) ; required by atk.pc
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("glib" ,glib "bin")                               ; glib-mkenums, etc.
@@@ -78,14 -84,14 +85,14 @@@ tools have full access to view and cont
  (define-public cairo
    (package
     (name "cairo")
 -   (version "1.12.18")
 +   (version "1.14.2")
     (source (origin
              (method url-fetch)
              (uri (string-append "http://cairographics.org/releases/cairo-"
                                  version ".tar.xz"))
              (sha256
               (base32
 -              "1dpmlxmmigpiyv0jchjsn2l1a29655x24g5073hy8p4lmjvz0nfw"))))
 +              "1sycbq0agbwmg1bj9lhkgsf0glmblaf2jrdy9g6vxfxivncxj6f9"))))
     (build-system gnu-build-system)
     (propagated-inputs
      `(("fontconfig" ,fontconfig)
@@@ -333,7 -339,7 +340,7 @@@ in the GNOME project."
  (define-public at-spi2-core
    (package
     (name "at-spi2-core")
-    (version "2.10.0")
+    (version "2.16.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/" name "/"
                                  name "-" version ".tar.xz"))
              (sha256
               (base32
-               "1ns44yibdgcwzwri7sr075hfs5rh5lgxkh71247a0822az3mahcn"))))
+               "1l3l39mw23zyjlcqidvkyqlr4gwbhplzw2hcv3qvn6p8ikxpf2qw"))))
     (build-system gnu-build-system)
-    (inputs `(("dbus" ,dbus)
-              ("glib" ,glib)
-              ("libxi" ,libxi)
-              ("libxtst" ,libxtst)))
-    (native-inputs
-      `(("intltool" ,intltool)
-        ("pkg-config" ,pkg-config)))
+    (outputs '("out" "doc"))
     (arguments
-     `(#:tests? #f)) ; FIXME: dbind/dbtest fails; one should disable tests in
-                     ; a more fine-grained way.
+     '(#:make-flags '("CC=gcc") ; for g-ir-scanner
+       #:configure-flags
+       (list (string-append "--with-html-dir="
+                            (assoc-ref %outputs "doc")
+                            "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (replace check
+                  ;; Run test-suite under a dbus session.
+                  (lambda _
+                    (zero? (system* "dbus-launch" "make" "check")))))))
+    (propagated-inputs
+     ;; atspi-2.pc refers to all these.
+     `(("dbus" ,dbus)
+       ("glib" ,glib)))
+    (inputs
+     `(("libxi" ,libxi)
+       ("libxtst" ,libxtst)))
+    (native-inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
     (synopsis "Assistive Technology Service Provider Interface, core components")
     (description
      "The Assistive Technology Service Provider Interface, core components,
@@@ -363,7 -383,7 +384,7 @@@ is part of the GNOME accessibility proj
  (define-public at-spi2-atk
    (package
     (name "at-spi2-atk")
-    (version "2.10.0")
+    (version "2.16.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/" name "/"
                                  name "-" version ".tar.xz"))
              (sha256
               (base32
-               "150sqc21difazqd53llwfdaqnwfy73bic9hia41xpfy9kcpzz9yy"))))
+               "1y9gfz1iz3wpja7s000f0bmyyvc6im5fcdl6bxwbz0v3qdgc9vvq"))))
     (build-system gnu-build-system)
-    (inputs `(("atk" ,atk)
-              ("at-spi2-core" ,at-spi2-core)
-              ("dbus" ,dbus)
-              ("glib" ,glib)))
-    (native-inputs
-      `(("pkg-config" ,pkg-config)))
     (arguments
-     `(#:tests? #f)) ; FIXME: droute/droute-test fails; one should disable
-                     ; tests in a more fine-grained way.
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace check
+                  ;; Run test-suite under a dbus session.
+                  (lambda _
+                    (zero? (system* "dbus-launch" "make" "check")))))))
+    (propagated-inputs
+     `(("at-spi2-core" ,at-spi2-core))) ; required by atk-bridge-2.0.pc
+    (inputs
+     `(("atk" ,atk)))
+    (native-inputs
+     `(("dbus" ,dbus) ; for testing
+       ("pkg-config" ,pkg-config)))
     (synopsis "Assistive Technology Service Provider Interface, ATK bindings")
     (description
      "The Assistive Technology Service Provider Interface
@@@ -392,7 -417,7 +418,7 @@@ is part of the GNOME accessibility proj
  (define-public gtk+-2
    (package
     (name "gtk+")
-    (version "2.24.21")
+    (version "2.24.27")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/" name "/"
                                  name "-" version ".tar.xz"))
              (sha256
               (base32
-               "1qyw73pr9ryqhir2h1kbx3vm70km4dg2fxrgkrdlpv0rvlb94bih"))))
+               "1x14rnjvqslpa1q19fp1qalz5sxds72amsgjk8m7769rwk511jr0"))))
     (build-system gnu-build-system)
+    (outputs '("out" "doc"))
     (propagated-inputs
      `(("atk" ,atk)
        ("gdk-pixbuf" ,gdk-pixbuf)
        ("pango" ,pango)))
+    (inputs
+     `(("cups" ,cups)
+       ("libxcomposite" ,libxcomposite)
+       ("libxcursor" ,libxcursor)
+       ("libxdamage" ,libxdamage)
+       ("libxi" ,libxi)
+       ("libxinerama" ,libxinerama)
+       ("libxrandr" ,libxrandr)))
     (native-inputs
      `(("perl" ,perl)
+       ("gettext" ,gnu-gettext)
        ("glib" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("pkg-config" ,pkg-config)
        ("python-wrapper" ,python-wrapper)))
     (arguments
      `(#:make-flags '("CC=gcc")
+       #:configure-flags
+       (list "--with-xinput=yes"
+             (string-append "--with-html-dir="
+                            (assoc-ref %outputs "doc")
+                            "/share/gtk-doc/html"))
        #:phases
        (alist-cons-before
         'configure 'disable-tests
@@@ -434,7 -474,7 +475,7 @@@ application suites."
  (define-public gtk+
    (package (inherit gtk+-2)
     (name "gtk+")
 -   (version "3.14.7")
 +   (version "3.16.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/" name "/"
                                  name "-" version ".tar.xz"))
              (sha256
               (base32
 -              "0vm40n6nf0w3vv54wqy67jcxddka7hplksi093xim3119yq196gv"))))
 +              "1si6ihl1wlvag8qq3166skr9fnm9i33dimbfry1j628qzqc76qff"))))
     (propagated-inputs
      `(("at-spi2-atk" ,at-spi2-atk)
        ("atk" ,atk)
        ("gdk-pixbuf" ,gdk-pixbuf)
 +      ("libepoxy" ,libepoxy)
        ("libxi" ,libxi)
        ("libxinerama" ,libxinerama)
        ("libxdamage" ,libxdamage)
     (native-inputs
      `(("perl" ,perl)
        ("glib" ,glib "bin")
 +      ("gettext" ,gnu-gettext)
        ("pkg-config" ,pkg-config)
        ("gobject-introspection" ,gobject-introspection)
        ("python-wrapper" ,python-wrapper)
        ("xorg-server" ,xorg-server)))
     (arguments
      `(#:phases
 -      (alist-replace
 -       'configure
 -       (lambda* (#:key inputs #:allow-other-keys #:rest args)
 -         (let ((configure (assoc-ref %standard-phases 'configure)))
 -           ;; Disable most tests, failing in the chroot with the message:
 -           ;; D-Bus library appears to be incorrectly set up; failed to read
 -           ;; machine uuid: Failed to open "/etc/machine-id": No such file or
 -           ;; directory.
 -           ;; See the manual page for dbus-uuidgen to correct this issue.
 -           (substitute* "testsuite/Makefile.in"
 -             (("SUBDIRS = gdk gtk a11y css reftests")
 -              "SUBDIRS = gdk"))
 -           (apply configure args)))
 +      (alist-cons-before
 +       'configure 'pre-configure
 +       (lambda _
 +         ;; Disable most tests, failing in the chroot with the message:
 +         ;; D-Bus library appears to be incorrectly set up; failed to read
 +         ;; machine uuid: Failed to open "/etc/machine-id": No such file or
 +         ;; directory.
 +         ;; See the manual page for dbus-uuidgen to correct this issue.
 +         (substitute* "testsuite/Makefile.in"
 +           (("SUBDIRS = gdk gtk a11y css reftests")
 +            "SUBDIRS = gdk"))
 +         (substitute* '("demos/widget-factory/Makefile.in"
 +                        "demos/gtk-demo/Makefile.in")
 +           (("gtk-update-icon-cache") "$(bindir)/gtk-update-icon-cache"))
 +         #t)
         %standard-phases)))))
  
  ;;;
diff --combined gnu/packages/haskell.scm
    #:use-module (gnu packages ncurses)
    #:use-module (gnu packages python))
  
- ;; We use bootstrap binaries with a fix version which can be used to build
- ;; more versions of the GHC compiler.
- (define ghc-bootstrap-7.8.4
+ (define ghc-bootstrap-x86_64-7.8.4
    (origin
      (method url-fetch)
-     (uri (string-append "https://www.haskell.org/ghc/dist/"
-                         "7.8.4/ghc-7.8.4-"
-                         (if (string-match "x86_64" (%current-system))
-                             "x86_64"
-                             "i386")
-                         "-unknown-linux-deb7.tar.xz"))
+     (uri
+      "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-x86_64-unknown-linux-deb7.tar.xz")
      (sha256
       (base32
-       (if (string-match "x86_64" (%current-system))
-           "13azsl53xgj20mi1hj9x0xb32vvcvs6cpmvwx6znxhas7blh0bpn"
-           "0wj5s435j0zgww70bj1d3f6wvnnpzlxwvwcyh2qv4qjq5z8j64kg")))))
+       "13azsl53xgj20mi1hj9x0xb32vvcvs6cpmvwx6znxhas7blh0bpn"))))
+ (define ghc-bootstrap-i686-7.8.4
+   (origin
+     (method url-fetch)
+     (uri
+      "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-i386-unknown-linux-deb7.tar.xz")
+     (sha256
+      (base32
+       "0wj5s435j0zgww70bj1d3f6wvnnpzlxwvwcyh2qv4qjq5z8j64kg"))))
  
  ;; 43 tests out of 3965 fail.
  ;;
         ("ghostscript" ,ghostscript)        ; for tests
         ("patchelf" ,patchelf)
         ;; GHC is built with GHC. Therefore we need bootstrap binaries.
-        ("ghc-binary" ,ghc-bootstrap-7.8.4)))
+        ("ghc-binary"
+         ,(if (string-match "x86_64" (or (%current-target-system) (%current-system)))
+              ghc-bootstrap-x86_64-7.8.4
+              ghc-bootstrap-i686-7.8.4))))
      (arguments
       `(#:test-target "test"
         ;; We get a smaller number of test failures by disabling parallel test
                    (guix build rpath)
                    (srfi srfi-26)
                    (srfi srfi-1))
 -       #:imported-modules ((guix build gnu-build-system)
 -                           (guix build utils)
 +       #:imported-modules (,%gnu-build-system-modules
                             (guix build rpath))
         #:configure-flags
         (list
diff --combined gnu/packages/linux.scm
@@@ -91,7 -91,7 +91,7 @@@
           version "-gnu.tar.xz")))
  
  (define-public linux-libre-headers
 -  (let* ((version "3.3.8")
 +  (let* ((version "3.14.37")
           (build-phase
            (lambda (arch)
              `(lambda _
               (uri (linux-libre-urls version))
               (sha256
                (base32
 -               "0jkfh0z1s6izvdnc3njm39dhzp1cg8i06jv06izwqz9w9qsprvnl"))))
 +               "1blxr2bsvfqi9khj4cpspv434bmx252zak2wsbi2mgl60zh77gza"))))
      (build-system gnu-build-system)
      (native-inputs `(("perl" ,perl)))
      (arguments
@@@ -198,7 -198,7 +198,7 @@@ for SYSTEM, or #f if there is no config
       #f)))
  
  (define-public linux-libre
-   (let* ((version "3.18.10")
+   (let* ((version "3.19.3")
           (build-phase
            '(lambda* (#:key system inputs #:allow-other-keys #:rest args)
               ;; Apply the neat patch.
               (uri (linux-libre-urls version))
               (sha256
                (base32
-                "0ckbi94b56klp59wsfcmlkbyrj7hj7kb7ys2jjsrqsk39dd77zg5"))))
+                "13nq0wzkjy7hrhnnvxlwzs1awlqd81vzriqddjn6s9ma3fzj44bn"))
+              (patches
+               (list (search-patch "linux-libre-libreboot-fix.patch")
+                     (search-patch "linux-libre-vblank-fix.patch")))))
      (build-system gnu-build-system)
      (native-inputs `(("perl" ,perl)
                       ("bc" ,bc)
@@@ -402,14 -405,8 +405,14 @@@ providing the system administrator wit
                    (("build_kill=yes") "build_kill=no")))))
      (build-system gnu-build-system)
      (arguments
 -     `(#:configure-flags '("--disable-use-tty-group"
 -                           "--enable-ddate")
 +     `(#:configure-flags (list "--disable-use-tty-group"
 +                               "--enable-ddate"
 +
 +                               ;; Install completions where our
 +                               ;; bash-completion package expects them.
 +                               (string-append "--with-bashcompletiondir="
 +                                              (assoc-ref %outputs "out")
 +                                              "/etc/bash_completion.d"))
         #:phases (alist-cons-before
                   'check 'pre-check
                   (lambda* (#:key inputs outputs #:allow-other-keys)
@@@ -1373,14 -1370,14 +1376,14 @@@ system."
  (define-public kbd
    (package
      (name "kbd")
-     (version "2.0.1")
+     (version "2.0.2")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://kernel.org/linux/utils/kbd/kbd-"
-                                   version ".tar.gz"))
+                                   version ".tar.xz"))
                (sha256
                 (base32
-                 "0c34b0za2v0934acvgnva0vaqpghmmhz4zh7k0m9jd4mbc91byqm"))
+                 "04mrms12nm5sas0nxs94yrr3hz7gmqhnmfgb9ff34bh1jszxmzcx"))
                (modules '((guix build utils)))
                (snippet
                 '(begin
@@@ -2005,3 -2002,73 +2008,73 @@@ also contains the libsysfs library."
  information, and set the CPU frequency if supported, using the cpufreq
  capabilities of the Linux kernel.")
      (license gpl2)))
+ (define-public libraw1394
+   (package
+     (name "libraw1394")
+     (version "2.1.0")
+     (source (origin
+               (method url-fetch)
+               (uri (string-append
+                     "mirror://kernel.org/linux/libs/ieee1394/"
+                     name "-" version ".tar.xz"))
+               (sha256
+                (base32
+                 "0kwnf4ha45c04mhc4yla672aqmvqqihxix1gvblns5cd2pc2cc8b"))))
+     (build-system gnu-build-system)
+     (home-page "https://ieee1394.wiki.kernel.org/index.php/Main_Page")
+     (synopsis "Interface library for the Linux IEEE1394 drivers")
+     (description
+      "Libraw1394 is the only supported interface to the kernel side raw1394 of
+ the Linux IEEE-1394 subsystem, which provides direct access to the connected
+ 1394 buses to user space.  Through libraw1394/raw1394, applications can directly
+ send to and receive from other nodes without requiring a kernel driver for the
+ protocol in question.")
+     (license lgpl2.1+)))
+ (define-public libavc1394
+   (package
+     (name "libavc1394")
+     (version "0.5.4")
+     (source (origin
+               (method url-fetch)
+               (uri (string-append "mirror://sourceforge/libavc1394/"
+                                   name "-" version ".tar.gz"))
+               (sha256
+                (base32
+                 "0lsv46jdqvdx5hx92v0z2cz3yh6212pz9gk0k3513sbaa04zzcbw"))))
+     (build-system gnu-build-system)
+     (native-inputs
+      `(("pkg-config" ,pkg-config)))
+     (propagated-inputs
+      `(("libraw1394" ,libraw1394))) ; required by libavc1394.pc
+     (home-page "http://sourceforge.net/projects/libavc1394/")
+     (synopsis "AV/C protocol library for IEEE 1394")
+     (description
+      "Libavc1394 is a programming interface to the AV/C specification from
+ the 1394 Trade Assocation.  AV/C stands for Audio/Video Control.")
+     (license lgpl2.1+)))
+ (define-public libiec61883
+   (package
+     (name "libiec61883")
+     (version "1.2.0")
+     (source (origin
+               (method url-fetch)
+               (uri (string-append
+                     "mirror://kernel.org/linux/libs/ieee1394/"
+                     name "-" version ".tar.xz"))
+               (sha256
+                (base32
+                 "17ph458zya2l8dr2xwqnzy195qd9swrir31g78qkgb3g4xz2rq6i"))))
+     (build-system gnu-build-system)
+     (native-inputs
+      `(("pkg-config" ,pkg-config)))
+     (propagated-inputs
+      `(("libraw1394" ,libraw1394))) ; required by libiec61883.pc
+     (home-page "https://ieee1394.wiki.kernel.org/index.php/Main_Page")
+     (synopsis "Isochronous streaming media library for IEEE 1394")
+     (description
+      "The libiec61883 library provides a higher level API for streaming DV,
+ MPEG-2 and audio over Linux IEEE 1394.")
+     (license lgpl2.1+)))
diff --combined gnu/packages/node.scm
    #:use-module (guix packages)
    #:use-module (guix derivations)
    #:use-module (guix download)
 -  #:use-module (guix build gnu-build-system)
    #:use-module (guix build-system gnu))
  
  (define-public node
    (package
      (name "node")
-     (version "0.12.0")
+     (version "0.12.2")
      (source (origin
                (method url-fetch)
                (uri (string-append "http://nodejs.org/dist/v" version
                                    "/node-v" version ".tar.gz"))
                (sha256
                 (base32
-                 "0cifd2qhpyrbxx71a4hsagzk24qas8m5zvwcyhx69cz9yhxf404p"))))
+                 "0bbp58p3iwsp35c37brkkh6bmjjhwsw2nlr8srz3wqryx6nphzmc"))))
      (native-inputs `(("python" ,python-2)
                       ("perl" ,perl)
                       ("gcc" ,gcc-4.9)
diff --combined gnu/packages/video.scm
@@@ -21,9 -21,7 +21,7 @@@
  
  (define-module (gnu packages video)
    #:use-module (ice-9 match)
-   #:use-module ((guix licenses)
-                 #:select (gpl2 gpl2+ gpl3+ lgpl2.1+ bsd-3 public-domain
-                                fsf-free isc))
+   #:use-module ((guix licenses) #:prefix license:)
    #:use-module (guix utils)
    #:use-module (guix packages)
    #:use-module (guix download)
@@@ -68,6 -66,7 +66,7 @@@
    #:use-module (gnu packages samba)
    #:use-module (gnu packages sdl)
    #:use-module (gnu packages ssh)
+   #:use-module (gnu packages texinfo)
    #:use-module (gnu packages texlive)
    #:use-module (gnu packages textutils)
    #:use-module (gnu packages version-control)
    #:use-module (gnu packages yasm)
    #:use-module (gnu packages zip))
  
+ (define-public aalib
+   (package
+     (name "aalib")
+     (version "1.4rc5")
+     (source (origin
+               (method url-fetch)
+               (uri (string-append "mirror://sourceforge/aa-project/"
+                                   name "-" version ".tar.gz"))
+               (sha256
+                (base32
+                 "1vkh19gb76agvh4h87ysbrgy82hrw88lnsvhynjf4vng629dmpgv"))))
+     (build-system gnu-build-system)
+     (native-inputs
+      `(("makeinfo" ,texinfo)))
+     (inputs
+      `(("ncurses" ,ncurses)))
+     (arguments
+      '(#:phases
+        (modify-phases %standard-phases
+          (replace configure
+                   (lambda* (#:key inputs outputs #:allow-other-keys)
+                     ;; This old `configure' script doesn't support
+                     ;; variables passed as arguments.
+                     (let ((out     (assoc-ref outputs "out"))
+                           (ncurses (assoc-ref inputs "ncurses")))
+                       (setenv "CONFIG_SHELL" (which "bash"))
+                       (zero? (system* "./configure"
+                                       (string-append "--prefix=" out)
+                                       (string-append "--with-ncurses="
+                                                      ncurses)))))))))
+     (home-page "http://aa-project.sourceforge.net/aalib/")
+     (synopsis "ASCII-art library")
+     (description
+      "AA-lib is a low level gfx library which does not require graphics device.
+ In fact, there is no graphical output possible.  AA-lib replaces those
+ old-fashioned output methods with powerful ascii-art renderer.")
+     (license license:lgpl2.0+)))
  (define-public liba52
    (package
      (name "liba52")
      (description "liba52 is a library for decoding ATSC A/52 streams.  The
  A/52 standard is used in a variety of applications, including digital
  television and DVD.  It is also known as AC-3.")
-     (license gpl2+)))
+     (license license:gpl2+)))
  
  (define-public libass
    (package
      (synopsis "Subtitle rendering library for the ASS/SSA format")
      (description "libass is a subtitle rendering library for the
  ASS/SSA (Advanced Substation Alpha/SubStation Alpha) subtitle format.")
-     (license isc)))
+     (license license:isc)))
  
  (define-public libcaca
    (package
  pixels, so that it can work on older video cards or text terminals.  It
  supports Unicode, 2048 colors, dithering of color images, and advanced text
  canvas operations.")
-     (license (fsf-free "file://COPYING")))) ;WTFPL version 2
+     (license (license:fsf-free "file://COPYING")))) ;WTFPL version 2
  
  (define-public libdca
    (package
      (synopsis "DTS Coherent Acoustics decoder")
      (description "libdca is a library for decoding DTS Coherent Acoustics
  streams.")
-     (license gpl2+)))
+     (license license:gpl2+)))
  
  (define-public libdv
    (package
@@@ -204,7 -241,7 +241,7 @@@ video, the encoding format used by mos
  that support the IEEE 1394 (a.k.a. FireWire or i.Link) interface.  Libdv was
  developed according to the official standards for DV video: IEC 61834 and
  SMPTE 314M.")
-     (license lgpl2.1+)))
+     (license license:lgpl2.1+)))
  
  (define-public libva
    (package
  to enable hardware accelerated video decode/encode at various
  entry-points (VLD, IDCT, Motion Compensation etc.) for prevailing coding
  standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
-     (license expat)))
+     (license license:expat)))
  
  (define-public ffmpeg
    (package
                    (guix build utils)
                    (guix build rpath)
                    (srfi srfi-26))
 -       #:imported-modules ((guix build gnu-build-system)
 -                           (guix build utils)
 +       #:imported-modules (,@%gnu-build-system-modules
                             (guix build rpath))
         #:phases
           (alist-replace
      (description "FFmpeg is a complete, cross-platform solution to record,
  convert and stream audio and video.  It includes the libavcodec
  audio/video codec library.")
-     (license gpl2+)))
+     (license license:gpl2+)))
  
  ;; We need this older ffmpeg because vlc-2.1.5 doesn't work with ffmpeg-2.4.
  (define-public ffmpeg-2.2
      (description "VLC is a cross-platform multimedia player and framework
  that plays most multimedia files as well as DVD, Audio CD, VCD, and various
  treaming protocols.")
-     (license gpl2+)))
+     (license license:gpl2+)))
  
  (define-public mplayer
    (package
  Ogg/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, RealMedia, Matroska, NUT,
  NuppelVideo, FLI, YUV4MPEG, FILM, RoQ, PVA files.  One can watch VideoCD,
  SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
-     (license gpl2)))
+     (license license:gpl2)))
  
  ;;; This is not version 2; it's a fork literally named "mplayer2".
  (define-public mplayer2
@@@ -673,7 -711,7 +710,7 @@@ a fork of the original MPlayer project
  several areas.")
      ;; See file Copyright.  Most files are gpl2+ or compatible, but talloc.c
      ;; is under lgpl3+, thus the whole project becomes gpl3+.
-     (license gpl3+)))
+     (license license:gpl3+)))
  
  (define-public mpv
    (package
       '(#:phases
         (modify-phases %standard-phases
           (add-before
 -          configure setup-waf
 +          'configure 'setup-waf
            (lambda* (#:key inputs #:allow-other-keys)
              (copy-file (assoc-ref inputs "waf") "waf")
              (setenv "CC" "gcc")))
           (add-before
 -          configure patch-wscript
 +          'configure 'patch-wscript
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "wscript"
                ;; XXX Remove this when our Samba package provides a .pc file.
      (description "mpv is a general-purpose audio and video player.  It is a
  fork of mplayer2 and MPlayer.  It shares some features with the former
  projects while introducing many more.")
-     (license gpl2+)))
+     (license license:gpl2+)))
  
  (define-public libvpx
    (package
         ("yasm" ,yasm)))
      (synopsis "VP8/VP9 video codec")
      (description "libvpx is a codec for the VP8/VP9 video compression format.")
-     (license bsd-3)
+     (license license:bsd-3)
      (home-page "http://www.webmproject.org/")))
  
  (define-public youtube-dl
      (description
       "youtube-dl is a small command-line program to download videos from
  YouTube.com and a few more sites.")
-     (license public-domain)))
+     (license license:public-domain)))
  
  (define-public libbluray
    (package
      (description
       "libbluray is a library designed for Blu-Ray Disc playback for media
  players, like VLC or MPlayer.")
-     (license lgpl2.1+)))
+     (license license:lgpl2.1+)))
  
  (define-public libdvdread
    (package
@@@ -883,7 -921,7 +920,7 @@@ disks.  It provides the functionality t
  DVDs.  It parses IFO files, reads NAV-blocks, and performs CSS
  authentication and descrambling (if an external libdvdcss library is
  installed).")
-     (license gpl2+)))
+     (license license:gpl2+)))
  
  (define-public libdvdnav
    (package
@@@ -915,7 -953,7 +952,7 @@@ a loop regularly calling a function to 
  additional calls to tell the library of user interaction.  The whole
  DVD virtual machine and internal playback states are completely
  encapsulated.")
-     (license gpl2+)))
+     (license license:gpl2+)))
  
  (define-public libdvdnav-4
    (package
      (description
       "libdvdcss is a simple library designed for accessing DVDs like a block
  device without having to bother about the decryption.")
-     (license gpl2+)))
+     (license license:gpl2+)))
  
  (define-public srt2vtt
    (package
      (description "srt2vtt converts SubRip formatted subtitles to WebVTT format
  for use with HTML5 video.")
      (home-page "http://dthompson.us/pages/software/srt2vtt")
-     (license gpl3+)))
+     (license license:gpl3+)))
  
  (define-public avidemux
    (package
@@@ -1097,7 -1135,7 +1134,7 @@@ DVD compatible MPEG files, MP4 and ASF
  can be automated using projects, job queue and powerful scripting
  capabilities.")
      ;; Software with various licenses is included, see License.txt.
-     (license gpl2+)))
+     (license license:gpl2+)))
  
  (define-public avidemux-2.5
    (package (inherit avidemux)
       '(#:phases
         (modify-phases %standard-phases
           (add-after
 -          unpack autogen
 +          'unpack 'autogen
            (lambda _
              (zero? (system* "sh" "autogen.sh")))))))
      (home-page "http://www.vapoursynth.com/")
@@@ -1228,7 -1266,7 +1265,7 @@@ manipulation.  It aims to be a modern r
  multithreading, generalized colorspaces, per frame properties, and videos with
  format changes.")
      ;; As seen from the source files.
-     (license lgpl2.1+)))
+     (license license:lgpl2.1+)))
  
  (define-public xvid
    (package
  codec library.  It uses ASP features such as b-frames, global and quarter
  pixel motion compensation, lumi masking, trellis quantization, and H.263, MPEG
  and custom quantization matrices.")
-     (license gpl2+)))
+     (license license:gpl2+)))
+ (define-public livestreamer
+   (package
+     (name "livestreamer")
+     (version "1.12.1")
+     (source (origin
+               (method url-fetch)
+               (uri (string-append
+                     "https://github.com/chrippa/livestreamer/archive/v"
+                     version ".tar.gz"))
+               (file-name (string-append "livestreamer-" version ".tar.gz"))
+               (sha256
+                (base32
+                 "1dhgk8v8q1h3km4g5jc0cmjsxdaa2d456fvdb2wk7hmxmmwbqm9j"))))
+     (build-system python-build-system)
+     (arguments
+      '(#:tests? #f)) ; tests rely on external web servers
+     (native-inputs
+      `(("python-setuptools" ,python-setuptools)))
+     (propagated-inputs
+      `(("python-requests" ,python-requests)
+        ("python-singledispatch" ,python-singledispatch)))
+     (synopsis "Internet video stream viewer")
+     (description "Livestreamer is a command-line utility that extracts streams
+ from various services and pipes them into a video playing application.")
+     (home-page "http://livestreamer.io/")
+     (license license:bsd-2)))
@@@ -140,7 -140,9 +140,9 @@@ add a dependency of that output on GLi
       ((output . directory)
        (unless (member output glib-or-gtk-wrap-excluded-outputs)
          (let* ((bindir       (string-append directory "/bin"))
-                (bin-list     (find-files bindir ".*"))
+                (libexecdir   (string-append directory "/libexec"))
+                (bin-list     (append (find-files bindir ".*")
+                                      (find-files libexecdir ".*")))
                 (datadirs     (data-directories
                                (alist-cons output directory inputs)))
                 (gtk-mod-dirs (gtk-module-directories
@@@ -240,9 -242,9 +242,9 @@@ needed.
  
  (define %standard-phases
    (modify-phases gnu:%standard-phases
 -    (add-after install glib-or-gtk-compile-schemas compile-glib-schemas)
 -    (add-after install glib-or-gtk-icon-cache generate-icon-cache)
 -    (add-after install glib-or-gtk-wrap wrap-all-programs)))
 +    (add-after 'install 'glib-or-gtk-compile-schemas compile-glib-schemas)
 +    (add-after 'install 'glib-or-gtk-icon-cache generate-icon-cache)
 +    (add-after 'install 'glib-or-gtk-wrap wrap-all-programs)))
  
  (define* (glib-or-gtk-build #:key inputs (phases %standard-phases)
                              #:allow-other-keys #:rest args)
diff --combined guix/ui.scm
@@@ -47,8 -47,6 +47,8 @@@
              P_
              report-error
              leave
 +            report-load-error
 +            warn-about-load-error
              show-version-and-exit
              show-bug-report-information
              string->number*
@@@ -132,38 -130,6 +132,38 @@@ messages.
      (report-error args ...)
      (exit 1)))
  
 +(define (report-load-error file args)
 +  "Report the failure to load FILE, a user-provided Scheme file, and exit.
 +ARGS is the list of arguments received by the 'throw' handler."
 +  (match args
 +    (('system-error . _)
 +     (let ((err (system-error-errno args)))
 +       (leave (_ "failed to load '~a': ~a~%") file (strerror err))))
 +    (('syntax-error proc message properties form . rest)
 +     (let ((loc (source-properties->location properties)))
 +       (format (current-error-port) (_ "~a: error: ~a~%")
 +               (location->string loc) message)
 +       (exit 1)))
 +    ((error args ...)
 +     (report-error (_ "failed to load '~a':~%") file)
 +     (apply display-error #f (current-error-port) args)
 +     (exit 1))))
 +
 +(define (warn-about-load-error file args)         ;FIXME: factorize with ↑
 +  "Report the failure to load FILE, a user-provided Scheme file, without
 +exiting.  ARGS is the list of arguments received by the 'throw' handler."
 +  (match args
 +    (('system-error . _)
 +     (let ((err (system-error-errno args)))
 +       (warning (_ "failed to load '~a': ~a~%") file (strerror err))))
 +    (('syntax-error proc message properties form . rest)
 +     (let ((loc (source-properties->location properties)))
 +       (format (current-error-port) (_ "~a: warning: ~a~%")
 +               (location->string loc) message)))
 +    ((error args ...)
 +     (warning (_ "failed to load '~a':~%") file)
 +     (apply display-error #f (current-error-port) args))))
 +
  (define (install-locale)
    "Install the current locale settings."
    (catch 'system-error
@@@ -902,6 -868,8 +902,8 @@@ found.
         (format (current-error-port)
                 (_ "guix: unrecognized option '~a'~%") o)
         (show-guix-usage))
+       (("help" args ...)
+        (show-guix-help))
        ((command args ...)
         (apply run-guix-command
                (string->symbol command)