summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--build-aux/hydra/gnu-system.scm6
-rw-r--r--gnu-system.am2
-rw-r--r--gnu/packages/admin.scm4
-rw-r--r--gnu/packages/audio.scm81
-rw-r--r--gnu/packages/boost.scm22
-rw-r--r--gnu/packages/commencement.scm5
-rw-r--r--gnu/packages/databases.scm6
-rw-r--r--gnu/packages/freedesktop.scm4
-rw-r--r--gnu/packages/gcc.scm12
-rw-r--r--gnu/packages/julia.scm5
-rw-r--r--gnu/packages/lisp.scm16
-rw-r--r--gnu/packages/mail.scm17
-rw-r--r--gnu/packages/package-management.scm4
-rw-r--r--gnu/packages/patches/gitolite-openssh-6.8-compat.patch25
-rw-r--r--gnu/packages/patches/wpa-supplicant-CVE-2015-1863.patch42
-rw-r--r--gnu/packages/statistics.scm10
-rw-r--r--gnu/packages/version-control.scm60
-rw-r--r--gnu/packages/video.scm12
-rw-r--r--gnu/packages/web.scm11
-rw-r--r--gnu/packages/xfce.scm5
-rw-r--r--gnu/packages/xorg.scm32
-rw-r--r--guix/packages.scm2
-rw-r--r--tests/packages.scm6
23 files changed, 355 insertions, 34 deletions
diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm
index b1432f6660..9a47b4f423 100644
--- a/build-aux/hydra/gnu-system.scm
+++ b/build-aux/hydra/gnu-system.scm
@@ -210,6 +210,10 @@ valid."
              #f)))))
 
 
+(define %hydra-supported-systems
+  ;; This is the list of system types for which build slaves are available.
+  '("x86_64-linux" "i686-linux" "mips64el-linux"))
+
 ;;;
 ;;; Hydra entry point.
 ;;;
@@ -269,4 +273,4 @@ valid."
                            (cross-jobs system)))
                   (else
                    (error "unknown subset" subset))))
-              %supported-systems))
+              %hydra-supported-systems))
diff --git a/gnu-system.am b/gnu-system.am
index 723d25116b..ae6b4e2bab 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -422,6 +422,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/gcc-cross-environment-variables.patch	\
   gnu/packages/patches/geoclue-config.patch			\
   gnu/packages/patches/ghostscript-runpath.patch		\
+  gnu/packages/patches/gitolite-openssh-6.8-compat.patch	\
   gnu/packages/patches/glib-tests-desktop.patch			\
   gnu/packages/patches/glib-tests-homedir.patch			\
   gnu/packages/patches/glib-tests-prlimit.patch			\
@@ -555,6 +556,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/weex-vacopy.patch			\
   gnu/packages/patches/wicd-urwid-1.3.patch			\
   gnu/packages/patches/wmctrl-64-fix.patch			\
+  gnu/packages/patches/wpa-supplicant-CVE-2015-1863.patch	\
   gnu/packages/patches/xf86-video-ark-remove-mibstore.patch	\
   gnu/packages/patches/xf86-video-ast-remove-mibstore.patch	\
   gnu/packages/patches/xf86-video-geode-glibc-2.20.patch	\
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 3a0361299e..ffaf6b4fc7 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -702,7 +702,9 @@ commands and their arguments.")
                     ".tar.gz"))
               (sha256
                (base32
-                "0skvkl6c10ls4s48b2wmf47h9j1y40nlzxnzn8hyaw2j0prmpapa"))))
+                "0skvkl6c10ls4s48b2wmf47h9j1y40nlzxnzn8hyaw2j0prmpapa"))
+              (patches
+               (list (search-patch "wpa-supplicant-CVE-2015-1863.patch")))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (alist-replace
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 8fb3da7fa1..06f8bbdbea 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -236,6 +236,48 @@ bass section with five drawbars.  A standalone JACK application and LV2
 plugins are provided.")
     (license license:gpl2)))
 
+(define-public calf
+  (package
+    (name "calf")
+    (version "0.0.60")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://sourceforge/calf/calf/"
+                    version "/calf-" version ".tar.gz"))
+              (sha256
+               (base32
+                "019fwg00jv217a5r767z7szh7vdrarybac0pr2sk26xp81kibrx9"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("fluidsynth" ,fluidsynth)
+       ("expat" ,expat)
+       ("glib" ,glib)
+       ("gtk" ,gtk+-2)
+       ("cairo" ,cairo)
+       ("lash" ,lash)
+       ("jack" ,jack-1)
+       ("lv2" ,lv2)
+       ("ladspa" ,ladspa)
+       ("fftw" ,fftw)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "LV2_PATH")
+            (files '("lib/lv2")))))
+    (home-page "http://calf.sourceforge.net/")
+    (synopsis "Audio plug-in pack for LV2 and JACK environments")
+    (description
+     "Calf Studio Gear is an audio plug-in pack for LV2 and JACK environments.
+The suite contains lots of effects (delay, modulation, signal processing,
+filters, equalizers, dynamics, distortion and mastering effects),
+instruments (SF2 player, organ simulator and a monophonic synthesizer) and
+tools (analyzer, mono/stereo tools, crossovers).")
+    ;; calfjackhost is released under GPLv2+
+    ;; The plugins are released under LGPLv2.1+
+    (license (list license:lgpl2.1+ license:gpl2+))))
+
 (define-public csound
   (package
     (name "csound")
@@ -314,6 +356,45 @@ language and software synthesizer.")
 ALSA PCM devices.")
     (license license:gpl2+)))
 
+(define-public fluidsynth
+  (package
+    (name "fluidsynth")
+    (version "1.1.6")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://sourceforge/fluidsynth/fluidsynth-"
+                    version "/fluidsynth-" version ".tar.gz"))
+              (sha256
+               (base32
+                "070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (alist-cons-after
+        'unpack
+        'remove-broken-symlinks
+        (lambda _ (delete-file-recursively "m4") #t)
+        %standard-phases)))
+    (inputs
+     `(("libsndfile" ,libsndfile)
+       ("alsa-lib" ,alsa-lib)
+       ("jack" ,jack-1)
+       ("ladspa" ,ladspa)
+       ("lash" ,lash)
+       ("readline" ,readline)
+       ("glib" ,glib)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.fluidsynth.org/")
+    (synopsis "SoundFont synthesizer")
+    (description
+     "FluidSynth is a real-time software synthesizer based on the SoundFont 2
+specifications.  FluidSynth reads and handles MIDI events from the MIDI input
+device.  It is the software analogue of a MIDI synthesizer. FluidSynth can
+also play midifiles using a Soundfont.")
+    (license license:gpl2+)))
+
 (define-public faad2
   (package
     (name "faad2")
diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm
index 10c88f3f2a..2bdd8f19f0 100644
--- a/gnu/packages/boost.scm
+++ b/gnu/packages/boost.scm
@@ -102,3 +102,25 @@
 across a broad spectrum of applications.")
     (license (license:x11-style "http://www.boost.org/LICENSE_1_0.txt"
                                 "Some components have other similar licences."))))
+
+(define-public mdds
+  (package
+    (name "mdds")
+    (version "0.12.0")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "http://kohei.us/files/mdds/src/mdds_" version ".tar.bz2"))
+             (sha256
+              (base32
+               "10ar7r0gkdl2r7916jlkl5c38cynrh7x9s90a5i8d242r8ixw8ia"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("boost" ,boost))) ; inclusion of header files
+    (home-page "https://code.google.com/p/multidimalgorithm/")
+    (synopsis "Multi-dimensional C++ data structures and indexing algorithms")
+    (description "Mdds (multi-dimensional data structure) provides a
+collection of multi-dimensional data structures and indexing algorithms
+for C++.  It includes flat segment trees, segment trees, rectangle sets,
+point quad trees, multi-type vectors and multi-type matrices.")
+    (license license:expat)))
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 22da2e0fb3..4a9fc5b205 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
-;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -770,4 +770,7 @@ and binaries, plus debugging symbols in the 'debug' output), and Binutils.")
 (define-public gcc-toolchain-4.9
   (gcc-toolchain gcc-4.9))
 
+(define-public gcc-toolchain-5.1
+  (gcc-toolchain gcc-5.1))
+
 ;;; commencement.scm ends here
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 9df4a14d26..aa0aa0d49f 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -228,14 +228,14 @@ as a drop-in replacement of MySQL.")
 (define-public postgresql
   (package
     (name "postgresql")
-    (version "9.3.5")
+    (version "9.3.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://ftp.postgresql.org/pub/source/v"
-                                  version "/postgresql-" version ".tar.gz"))
+                                  version "/postgresql-" version ".tar.bz2"))
               (sha256
                (base32
-                "08kga00izykgvnx7hn995wc4zjqslspapaa8z63045p1ya14mr4g"))))
+                "056ass7nnfyv7blv02anv795kgpz77gipdpxggd835cdwrhwns13"))))
     (build-system gnu-build-system)
     (inputs
      `(("readline" ,readline)
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index f65a5bbf9d..386f4c5972 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -53,14 +53,14 @@ freedesktop.org project.")
 (define-public libinput
   (package
     (name "libinput")
-    (version "0.13.0")
+    (version "0.14.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://freedesktop.org/software/libinput/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "06n6ih2bfr957rprsgjxhi6f7m96wmf4kgac8y0ispsjvrzszv3c"))))
+                "0r0v5jqbnwgndq6ns3ss3kv1438ny302m7bg1najcl1dpqp21v9b"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index cd6fc3b2fd..e712e43b1f 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -324,6 +324,18 @@ Go.  It also includes runtime support libraries for these languages.")
                "1pbjp4blk2ycaa6r3jmw4ky5f1s9ji3klbqgv8zs2sl5jn1cj810"))
              (patches (list (search-patch "gcc-arm-link-spec-fix.patch")))))))
 
+(define-public gcc-5.1
+  (package (inherit gcc-4.7)
+    (version "5.1.0")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://gnu/gcc/gcc-"
+                                 version "/gcc-" version ".tar.bz2"))
+             (sha256
+              (base32
+               "1bd5vj4px3s8nlakbgrh38ynxq4s654m6nxz7lrj03mvkkwgvnmp"))
+             (patches (list (search-patch "gcc-arm-link-spec-fix.patch")))))))
+
 (define* (custom-gcc gcc name languages #:key (separate-lib-output? #t))
   "Return a custom version of GCC that supports LANGUAGES."
   (package (inherit gcc)
diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm
index e5990441f5..c9428c4f12 100644
--- a/gnu/packages/julia.scm
+++ b/gnu/packages/julia.scm
@@ -118,7 +118,10 @@
         ,(match (or (%current-target-system)
                     (%current-system))
            ("x86_64-linux" "MARCH=x86-64")
-           ("i686-linux" "MARCH=pentium4"))
+           ("i686-linux" "MARCH=pentium4")
+           ;; Prevent errors when querying this package on unsupported
+           ;; platforms, e.g. when running "guix package --search="
+           (_ "MARCH=UNSUPPORTED"))
 
         "CONFIG_SHELL=bash"     ;needed to build bundled libraries
         "USE_SYSTEM_LIBUV=0"    ;Julia expects a modified libuv
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 8f12efb9eb..feaa08af38 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -343,9 +343,13 @@ statistical profiler, a code coverage tool, and many other extensions.")
             (chdir (string-append
                     "lisp-kernel/"
                     ,(match (or (%current-target-system) (%current-system))
-                       ("i686-linux" "linuxx8632")
+                       ("i686-linux"   "linuxx8632")
                        ("x86_64-linux" "linuxx8664")
-                       ("armhf-linux" "linuxarm"))))
+                       ("armhf-linux"  "linuxarm")
+                       ;; Prevent errors when querying this package
+                       ;; on unsupported platforms, e.g. when running
+                       ;; "guix package --search="
+                       (_              "UNSUPPORTED"))))
             (substitute* '("Makefile")
               (("/bin/rm") "rm"))
             (setenv "CC" "gcc")
@@ -366,9 +370,13 @@ statistical profiler, a code coverage tool, and many other extensions.")
                     (bash (assoc-ref inputs "bash"))
                     (kernel
                      ,(match (or (%current-target-system) (%current-system))
-                        ("i686-linux" "lx86cl")
+                        ("i686-linux"   "lx86cl")
                         ("x86_64-linux" "lx86cl64")
-                        ("armhf-linux" "armcl")))
+                        ("armhf-linux"  "armcl")
+                        ;; Prevent errors when querying this package
+                        ;; on unsupported platforms, e.g. when running
+                        ;; "guix package --search="
+                        (_              "UNSUPPORTED")))
                     (heap (string-append kernel ".image")))
                (mkdir-p libdir)
                (mkdir-p bindir)
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 9a61cf4580..170fbe4921 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -28,6 +28,7 @@
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages backup)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages databases)
@@ -361,27 +362,37 @@ attachments, create new maildirs, and so on.")
 (define-public notmuch
   (package
     (name "notmuch")
-    (version "0.18.1")
+    (version "0.19")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://notmuchmail.org/releases/notmuch-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1pdp9l7yv71d3fjb30qyccva8h03hvg88q4a00yi50v2j70kvmgj"))))
+                "1szf6c44g209pcjq5nvfhlp3nzcm3lrcwv4spsxmwy13hiaccvrr"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f ;; FIXME: Test suite hangs and times out.
        #:phases (alist-replace
                  'configure
                  (lambda* (#:key outputs #:allow-other-keys)
+                   (setenv "CC" "gcc")
                    (setenv "CONFIG_SHELL" (which "sh"))
+
+                   ;; XXX Should python-docutils make a symlink
+                   ;; for "rst2man" and other similar programs?
+                   (substitute* '("configure" "doc/prerst2man.py")
+                     ((" rst2man ") " rst2man.py "))
+
                    (let ((out (assoc-ref outputs "out")))
                      (zero? (system* "./configure"
                                      (string-append "--prefix=" out)))))
                  %standard-phases)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ("python" ,python-2)
+       ("python2-docutils" ,python2-docutils)
+       ("bash-completion" ,bash-completion)))
     (inputs
      `(("emacs" ,emacs)
        ("glib" ,glib)
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 29b2d93695..75efd0c448 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -148,7 +148,7 @@ the Nix package manager.")
   ;;
   ;; Note: use a short commit id; when using the long one, the limit on socket
   ;; file names is exceeded while running the tests.
-  (let ((commit "dd3a42e"))
+  (let ((commit "fc34dee"))
     (package (inherit guix-0.8.1)
       (version (string-append "0.8.1." commit))
       (source (origin
@@ -158,7 +158,7 @@ the Nix package manager.")
                       (commit commit)))
                 (sha256
                  (base32
-                  "0pamdfrdg5i01ghbkbbacfph98s7dc34irjj10s7pkn1r4fswzv8"))))
+                  "0nx60wwiar0s4bgwrm3nrskc54jig3vw7yzwxkwilc43cnlgpkja"))))
       (arguments
        (substitute-keyword-arguments (package-arguments guix-0.8.1)
          ((#:phases phases)
diff --git a/gnu/packages/patches/gitolite-openssh-6.8-compat.patch b/gnu/packages/patches/gitolite-openssh-6.8-compat.patch
new file mode 100644
index 0000000000..d7fc2e6b12
--- /dev/null
+++ b/gnu/packages/patches/gitolite-openssh-6.8-compat.patch
@@ -0,0 +1,25 @@
+From ed807a40c6683960e357bc995b3acf721ec088b4 Mon Sep 17 00:00:00 2001
+From: Sitaram Chamarty <sitaram@atc.tcs.com>
+Date: Thu, 19 Mar 2015 05:17:59 +0530
+Subject: [PATCH] openssh 6.8 compat
+
+---
+ src/triggers/post-compile/ssh-authkeys | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/triggers/post-compile/ssh-authkeys b/src/triggers/post-compile/ssh-authkeys
+index 84dda73..d5f5d8b 100755
+--- a/src/triggers/post-compile/ssh-authkeys
++++ b/src/triggers/post-compile/ssh-authkeys
+@@ -115,7 +115,7 @@ sub fp_file {
+     my $f  = shift;
+     my $fp = `ssh-keygen -l -f '$f'`;
+     chomp($fp);
+-    _die "fingerprinting failed for '$f'" unless $fp =~ /([0-9a-f][0-9a-f](:[0-9a-f][0-9a-f])+)/;
++    _die "fingerprinting failed for '$f'" unless $fp =~ /([0-9a-f][0-9a-f](:[0-9a-f][0-9a-f])+)/ or $fp =~ m(SHA256:([A-ZA-z0-9+/]+));
+     $fp = $1;
+     return $fp;
+ }
+--
+2.2.1
+
diff --git a/gnu/packages/patches/wpa-supplicant-CVE-2015-1863.patch b/gnu/packages/patches/wpa-supplicant-CVE-2015-1863.patch
new file mode 100644
index 0000000000..de1964ca76
--- /dev/null
+++ b/gnu/packages/patches/wpa-supplicant-CVE-2015-1863.patch
@@ -0,0 +1,42 @@
+From 9ed4eee345f85e3025c33c6e20aa25696e341ccd Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <jouni@qca.qualcomm.com>
+Date: Tue, 7 Apr 2015 11:32:11 +0300
+Subject: [PATCH] P2P: Validate SSID element length before copying it
+ (CVE-2015-1863)
+
+This fixes a possible memcpy overflow for P2P dev->oper_ssid in
+p2p_add_device(). The length provided by the peer device (0..255 bytes)
+was used without proper bounds checking and that could have resulted in
+arbitrary data of up to 223 bytes being written beyond the end of the
+dev->oper_ssid[] array (of which about 150 bytes would be beyond the
+heap allocation) when processing a corrupted management frame for P2P
+peer discovery purposes.
+
+This could result in corrupted state in heap, unexpected program
+behavior due to corrupted P2P peer device information, denial of service
+due to process crash, exposure of memory contents during GO Negotiation,
+and potentially arbitrary code execution.
+
+Thanks to Google security team for reporting this issue and smart
+hardware research group of Alibaba security team for discovering it.
+
+Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
+---
+ src/p2p/p2p.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/p2p/p2p.c b/src/p2p/p2p.c
+index f584fae..a45fe73 100644
+--- a/src/p2p/p2p.c
++++ b/src/p2p/p2p.c
+@@ -778,6 +778,7 @@ int p2p_add_device(struct p2p_data *p2p, const u8 *addr, int freq,
+ 	if (os_memcmp(addr, p2p_dev_addr, ETH_ALEN) != 0)
+ 		os_memcpy(dev->interface_addr, addr, ETH_ALEN);
+ 	if (msg.ssid &&
++	    msg.ssid[1] <= sizeof(dev->oper_ssid) &&
+ 	    (msg.ssid[1] != P2P_WILDCARD_SSID_LEN ||
+ 	     os_memcmp(msg.ssid + 2, P2P_WILDCARD_SSID, P2P_WILDCARD_SSID_LEN)
+ 	     != 0)) {
+-- 
+1.9.1
+
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 5fae6d7a3c..722e0dfa49 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -42,7 +42,7 @@
 (define-public r
   (package
     (name "r")
-    (version "3.1.2")
+    (version "3.2.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://cran/src/base/R-"
@@ -50,10 +50,14 @@
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0ypsm11c7n49pgh2ricyhhpfhas3famscdazzdp2zq70rapm1ldw"))))
+                "0dagyqgvi8i3nw158qi2zpwm04s4ffzvnmk5niaksvxs30zrbbpm"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:phases
+     `(#:make-flags
+       (list (string-append "LDFLAGS=-Wl,-rpath="
+                            (assoc-ref %outputs "out")
+                            "/lib/R/lib"))
+       #:phases
        (alist-cons-before
         'check 'set-timezone
         ;; Some tests require the timezone to be set.
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 2094ec0554..3cbd12f635 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -48,6 +48,7 @@
   #:use-module (gnu packages nano)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages openssl)
+  #:use-module (gnu packages ssh)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
@@ -401,6 +402,65 @@ linear.  It will test every change between two points in the DAG.  It will
 also walk each side of a merge and test those changes individually.")
       (license (x11-style "file://LICENSE")))))
 
+(define-public gitolite
+  (package
+    (name "gitolite")
+    (version "3.6.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/sitaramc/gitolite/archive/v"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              ;; Commit ed807a4 upstream
+              (patches
+               (list (search-patch "gitolite-openssh-6.8-compat.patch")))
+              (sha256
+               (base32
+                "1gsgzi9ayb4rablki3mqr11b0h8db4xg43df660marfpacmkfb01"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f ; no tests
+       #:phases (modify-phases %standard-phases
+                  (delete 'configure)
+                  (delete 'build)
+                  (add-before 'install 'patch-scripts
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (let ((perl (string-append (assoc-ref inputs "perl")
+                                                 "/bin/perl")))
+                        ;; This seems to take care of every shell script that
+                        ;; invokes Perl.
+                        (substitute* (find-files "." ".*")
+                          ((" perl -")
+                           (string-append " " perl " -"))))))
+                  (replace 'install
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let* ((output (assoc-ref outputs "out"))
+                             (sharedir (string-append output "/share/gitolite"))
+                             (bindir (string-append output "/bin")))
+                        (mkdir-p sharedir)
+                        (mkdir-p bindir)
+                        (system* "./install" "-to" sharedir)
+                        ;; Create symlinks for executable scripts in /bin.
+                        (for-each (lambda (script)
+                                    (symlink (string-append sharedir "/" script)
+                                             (string-append bindir "/" script)))
+                                  '("gitolite" "gitolite-shell"))
+                        #t))))))
+    (inputs
+     `(("perl" ,perl)))
+    ;; git and openssh are propagated because trying to patch the source via
+    ;; regexp matching is too brittle and prone to false positives.
+    (propagated-inputs
+     `(("git" ,git)
+       ("openssh" ,openssh)))
+    (home-page "http://gitolite.com")
+    (synopsis "Git access control layer")
+    (description
+     "Gitolite is an access control layer on top of Git, providing fine access
+control to Git repositories.")
+    (license gpl2)))
+
 (define-public mercurial
   (package
     (name "mercurial")
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 822d9021cb..8868713ba1 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -570,13 +570,13 @@ treaming protocols.")
                            '("--enable-runtime-cpudetection"
                              "--target=i686-linux"))
                           ("mips64el-linux"
-                           '("--target=mips3-linux")))
-                      "--disable-armv5te"
-                      "--disable-armv6"
-                      "--disable-armv6t2"
-                      "--disable-armvfp"
+                           '("--target=mips3-linux"))
+                          (_ (list (string-append
+                                    "--target="
+                                    (or (%current-target-system)
+                                        (nix-system->gnu-triplet
+                                         (%current-system)))))))
                       "--disable-neon"
-                      "--disable-thumb"
                       "--disable-iwmmxt"))))
           %standard-phases)))
     (home-page "http://www.mplayerhq.hu/design7/news.html")
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 0c22562aa6..fb3ff2d149 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -94,14 +94,14 @@ and its related documentation.")
 (define-public nginx
   (package
     (name "nginx")
-    (version "1.6.2")
+    (version "1.8.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://nginx.org/download/nginx-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "060s77qxhkn02fjkcndsr0xppj2bppjzkj0gn84svrykb4lqqq5m"))))
+                "1mgkkmmwkhmpn68sdvbd73ssv6lpqhh864fsyvc1ij4hk4is3k13"))))
     (build-system gnu-build-system)
     (inputs `(("pcre" ,pcre)
               ("openssl" ,openssl)
@@ -132,7 +132,12 @@ and its related documentation.")
                                                      (%current-system))
                                             ("x86_64-linux"   "x86_64")
                                             ("i686-linux"     "i686")
-                                            ("mips64el-linux" "mips64"))))
+                                            ("mips64el-linux" "mips64")
+                                            ;; Prevent errors when querying
+                                            ;; this package on unsupported
+                                            ;; platforms, e.g. when running
+                                            ;; "guix package --search="
+                                            (_                "UNSUPPORTED"))))
                              (string-append "--crossbuild="
                                             system ":" release ":" machine)))))
                (setenv "CC" "gcc")
diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm
index b39b903e9b..37f09579fe 100644
--- a/gnu/packages/xfce.scm
+++ b/gnu/packages/xfce.scm
@@ -397,8 +397,11 @@ allows you to shutdown the computer from Xfce.")
        ("libnotify" ,libnotify)
        ("libxcursor", libxcursor)
        ("libxi" ,libxi)
+       ("libxklavier" ,libxklavier)
        ("libxrandr" ,libxrandr)
-       ("libxfce4ui" ,libxfce4ui)))
+       ("libxfce4ui" ,libxfce4ui)
+       ("upower" ,upower)
+       ("xf86-input-libinput" ,xf86-input-libinput)))
     (home-page "http://www.xfce.org/")
     (synopsis "Xfce settings manager")
     (description
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 0f8708c77d..dc04bee20a 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -45,7 +45,8 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages ncurses)
-  #:use-module (gnu packages xdisorg))
+  #:use-module (gnu packages xdisorg)
+  #:use-module (gnu packages freedesktop))
 
 
 
@@ -2220,6 +2221,35 @@ devices, thus making direct access unnecessary.")
     (description "X.org provides an implementation of the X Window System")
     (license license:x11)))
 
+(define-public xf86-input-libinput
+  (package
+    (name "xf86-input-libinput")
+    (version "0.8.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://xorg/individual/driver/"
+                    name "-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "0fm4vrkw7azipbnwvc2l18g65z77pllsznaajd8q3zpg9ycb0li1"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags
+       (list (string-append "--with-sdkdir="
+                            %output "/include/xorg"))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libinput" ,libinput)
+       ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "Xorg input driver")
+    (description
+     "This is an Xorg input driver based on libinput.  It therefore supports
+all input devices that libinput can handle, including most mice, keyboards,
+tablets and touchscreens.")
+    (license license:x11)))
 
 (define-public xf86-input-joystick
   (package
diff --git a/guix/packages.scm b/guix/packages.scm
index fde46d5d6a..0e4cce17e1 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -208,7 +208,7 @@ corresponds to the arguments expected by `set-path-environment-variable'."
 (define %supported-systems
   ;; This is the list of system types that are supported.  By default, we
   ;; expect all packages to build successfully here.
-  '("x86_64-linux" "i686-linux" "mips64el-linux"))
+  '("x86_64-linux" "i686-linux" "armhf-linux" "mips64el-linux"))
 
 ;; A package.
 (define-record-type* <package>
diff --git a/tests/packages.scm b/tests/packages.scm
index 91910324fe..4e52813659 100644
--- a/tests/packages.scm
+++ b/tests/packages.scm
@@ -210,7 +210,11 @@
 (unless (network-reachable?) (test-skip 1))
 (test-equal "package-source-derivation, snippet"
   "OK"
-  (let* ((file   (search-bootstrap-binary "guile-2.0.9.tar.xz"
+  (let* ((file   (search-bootstrap-binary (match (%current-system)
+                                            ("armhf-linux"
+                                             "guile-2.0.11.tar.xz")
+                                            (_
+                                             "guile-2.0.9.tar.xz"))
                                           (%current-system)))
          (sha256 (call-with-input-file file port-sha256))
          (fetch  (lambda* (url hash-algo hash