summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am10
-rw-r--r--doc/guix.texi22
-rw-r--r--gnu/packages/autotools.scm4
-rw-r--r--gnu/packages/avahi.scm14
-rw-r--r--gnu/packages/base.scm96
-rw-r--r--gnu/packages/bootstrap.scm11
-rw-r--r--gnu/packages/cross-base.scm244
-rw-r--r--gnu/packages/curl.scm13
-rw-r--r--gnu/packages/dwm.scm86
-rw-r--r--gnu/packages/emacs.scm36
-rw-r--r--gnu/packages/fontutils.scm14
-rw-r--r--gnu/packages/gawk.scm6
-rw-r--r--gnu/packages/gcc.scm40
-rw-r--r--gnu/packages/ghostscript.scm42
-rw-r--r--gnu/packages/glib.scm56
-rw-r--r--gnu/packages/guile.scm23
-rw-r--r--gnu/packages/lesstif.scm50
-rw-r--r--gnu/packages/linux.scm25
-rw-r--r--gnu/packages/make-bootstrap.scm5
-rw-r--r--gnu/packages/multiprecision.scm15
-rw-r--r--gnu/packages/openldap.scm16
-rw-r--r--gnu/packages/patches/gcc-cross-environment-variables.patch24
-rw-r--r--gnu/packages/patches/python-fix-dbm.patch20
-rw-r--r--gnu/packages/patches/xpdf-constchar.patch15
-rw-r--r--gnu/packages/pdf.scm70
-rw-r--r--gnu/packages/perl.scm3
-rw-r--r--gnu/packages/pkg-config.scm5
-rw-r--r--gnu/packages/python.scm4
-rw-r--r--gnu/packages/ratpoison.scm71
-rw-r--r--gnu/packages/texlive.scm4
-rw-r--r--gnu/packages/wget.scm7
-rw-r--r--gnu/packages/xml.scm31
-rw-r--r--gnu/packages/xorg.scm4869
-rw-r--r--guix/build-system/cmake.scm6
-rw-r--r--guix/build-system/gnu.scm45
-rw-r--r--guix/build-system/perl.scm8
-rw-r--r--guix/build-system/trivial.scm6
-rw-r--r--guix/build/gnu-build-system.scm44
-rw-r--r--guix/build/perl-build-system.scm4
-rw-r--r--guix/build/utils.scm143
-rw-r--r--guix/download.scm3
-rw-r--r--guix/packages.scm49
-rw-r--r--guix/scripts/package.scm66
-rw-r--r--guix/utils.scm28
-rw-r--r--tests/builders.scm15
-rw-r--r--tests/guix-package.sh8
-rw-r--r--tests/packages.scm36
-rw-r--r--tests/utils.scm10
48 files changed, 6153 insertions, 269 deletions
diff --git a/Makefile.am b/Makefile.am
index 7a1cae6a8c..43f8c3fb82 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -81,10 +81,12 @@ MODULES =					\
   gnu/packages/compression.scm			\
   gnu/packages/cpio.scm				\
   gnu/packages/cppi.scm				\
+  gnu/packages/cross-base.scm			\
   gnu/packages/curl.scm				\
   gnu/packages/cyrus-sasl.scm			\
   gnu/packages/dejagnu.scm			\
   gnu/packages/ddrescue.scm			\
+  gnu/packages/dwm.scm				\
   gnu/packages/ed.scm				\
   gnu/packages/emacs.scm			\
   gnu/packages/fdisk.scm			\
@@ -114,6 +116,7 @@ MODULES =					\
   gnu/packages/irssi.scm 			\
   gnu/packages/ld-wrapper.scm			\
   gnu/packages/less.scm				\
+  gnu/packages/lesstif.scm			\
   gnu/packages/libapr.scm 			\
   gnu/packages/libdaemon.scm			\
   gnu/packages/libevent.scm			\
@@ -158,6 +161,7 @@ MODULES =					\
   gnu/packages/pth.scm				\
   gnu/packages/python.scm			\
   gnu/packages/qemu.scm				\
+  gnu/packages/ratpoison.scm			\
   gnu/packages/readline.scm			\
   gnu/packages/recutils.scm			\
   gnu/packages/rsync.scm			\
@@ -184,6 +188,7 @@ MODULES =					\
   gnu/packages/wget.scm				\
   gnu/packages/which.scm			\
   gnu/packages/xml.scm				\
+  gnu/packages/xorg.scm				\
   gnu/packages/zile.scm				\
   gnu/packages/zip.scm				\
   gnu/system/vm.scm
@@ -209,6 +214,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/flac-fix-memcmp-not-declared.patch	\
   gnu/packages/patches/flex-bison-tests.patch			\
   gnu/packages/patches/gawk-shell.patch				\
+  gnu/packages/patches/gcc-cross-environment-variables.patch	\
   gnu/packages/patches/gettext-gets-undeclared.patch		\
   gnu/packages/patches/glib-tests-desktop.patch			\
   gnu/packages/patches/glib-tests-homedir.patch			\
@@ -233,6 +239,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/make-impure-dirs.patch			\
   gnu/packages/patches/mcron-install.patch			\
   gnu/packages/patches/perl-no-sys-dirs.patch			\
+  gnu/packages/patches/python-fix-dbm.patch			\
   gnu/packages/patches/procps-make-3.82.patch			\
   gnu/packages/patches/qemu-multiple-smb-shares.patch		\
   gnu/packages/patches/readline-link-ncurses.patch		\
@@ -240,7 +247,8 @@ dist_patch_DATA =						\
   gnu/packages/patches/tcsh-fix-autotest.patch			\
   gnu/packages/patches/teckit-cstdio.patch			\
   gnu/packages/patches/vpnc-script.patch			\
-  gnu/packages/patches/w3m-fix-compile.patch
+  gnu/packages/patches/w3m-fix-compile.patch			\
+  gnu/packages/patches/xpdf-constchar.patch
 
 bootstrapdir = $(guilemoduledir)/gnu/packages/bootstrap
 bootstrap_x86_64_linuxdir = $(bootstrapdir)/x86_64-linux
diff --git a/doc/guix.texi b/doc/guix.texi
index e23eab0f81..d571de95a0 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -517,8 +517,13 @@ Thus, when installing MPC, the MPFR and GMP libraries also get installed
 in the profile; removing MPC also removes MPFR and GMP---unless they had
 also been explicitly installed independently.
 
+Besides, packages sometime rely on the definition of environment
+variables for their search paths (see explanation of
+@code{--search-paths} below.)  Any missing or possibly incorrect
+environment variable definitions are reported here.
+
 @c XXX: keep me up-to-date
-Besides, when installing a GNU package, the tool reports the
+Finally, when installing a GNU package, the tool reports the
 availability of a newer upstream version.  In the future, it may provide
 the option of installing directly from the upstream version, even if
 that version is not yet in the distribution.
@@ -566,6 +571,21 @@ Installing, removing, or upgrading packages from a generation that has
 been rolled back to overwrites previous future generations.  Thus, the
 history of a profile's generations is always linear.
 
+@item --search-paths
+@cindex search paths
+Report environment variable definitions, in Bash syntax, that may be
+needed in order to use the set of installed packages.  These environment
+variables are used to specify @dfn{search paths} for files used by some
+of the installed packages.
+
+For example, GCC needs the @code{CPATH} and @code{LIBRARY_PATH}
+environment variables to be defined so it can look for headers and
+libraries in the user's profile (@pxref{Environment Variables,,, gcc,
+Using the GNU Compiler Collection (GCC)}).  If GCC and, say, the C
+library are installed in the profile, then @code{--search-paths} will
+suggest setting these variables to @code{@var{profile}/include} and
+@code{@var{profile}/lib}, respectively.
+
 @item --profile=@var{profile}
 @itemx -p @var{profile}
 Use @var{profile} instead of the user's default profile.
diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm
index 4af6d2a6cf..3634338777 100644
--- a/gnu/packages/autotools.scm
+++ b/gnu/packages/autotools.scm
@@ -148,6 +148,10 @@ exec ~a --no-auto-compile \"$0\" \"$@\"
        ("perl" ,perl)
        ("patch/skip-amhello"
         ,(search-patch "automake-skip-amhello-tests.patch"))))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "ACLOCAL_PATH")
+            (directories '("share/aclocal")))))
     (arguments
      '(#:patches (list (assoc-ref %build-inputs "patch/skip-amhello"))
        #:modules ((guix build gnu-build-system)
diff --git a/gnu/packages/avahi.scm b/gnu/packages/avahi.scm
index f7ce908351..fbdc0e2834 100644
--- a/gnu/packages/avahi.scm
+++ b/gnu/packages/avahi.scm
@@ -48,19 +48,7 @@
                            "--disable-xmltoman"
                            "--enable-tests"
                            "--disable-qt3" "--disable-qt4"
-                           "--disable-gtk" "--disable-gtk3")
-       #:phases (alist-cons-before
-                 'configure 'set-perl-path
-                 (lambda* (#:key inputs #:allow-other-keys)
-                   ;; FIXME: Remove this phase when proper support for search
-                   ;; paths is available.
-                   (let ((xml-parser (assoc-ref inputs
-                                                "intltool/perl-xml-parser")))
-                     (setenv "PERL5LIB"
-                             (string-append xml-parser
-                                            "/lib/perl5/site_perl"))
-                     #t))
-                 %standard-phases)))
+                           "--disable-gtk" "--disable-gtk3")))
     (inputs
      `(("expat" ,expat)
        ("glib" ,glib)
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 3597e6fad1..34c4db98f9 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -90,14 +90,14 @@ lines.")
 (define-public sed
   (package
    (name "sed")
-   (version "4.2.1")
+   (version "4.2.2")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/sed/sed-" version
                                 ".tar.bz2"))
             (sha256
              (base32
-              "13wlsb4sf5d5a82xjhxqmdvrrn36rmw5f0pl9qyb9zkvldnb7hra"))))
+              "1myvrmh99jsvk7v3d7crm0gcrq51hmmm1r2kjyyci152in1x2j7h"))))
    (build-system gnu-build-system)
    (synopsis "Stream editor")
    (arguments
@@ -153,14 +153,14 @@ files (as archives).")
 (define-public patch
   (package
    (name "patch")
-   (version "2.6.1")
+   (version "2.7.1")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/patch/patch-"
                                 version ".tar.xz"))
             (sha256
              (base32
-              "18012gxs9wc96izskp1q7bclrwns6rdmkn4jj31c8jbyfz6l5npq"))))
+              "1sqckf560pzwgniy00vcpdv2c9c11s4cmhlm14yqgg8avd3bl94i"))))
    (build-system gnu-build-system)
    (native-inputs '())                      ; FIXME: needs `ed' for the tests
    (arguments
@@ -179,18 +179,15 @@ producing patched versions.")
 (define-public diffutils
   (package
    (name "diffutils")
-   (version "3.2")
+   (version "3.3")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/diffutils/diffutils-"
                                 version ".tar.xz"))
             (sha256
              (base32
-              "0jci0wv68025xd0s0rq4s5qxpx56dd9d730lka63qpzk1rfvfkxb"))))
+              "1761vymxbp4wb5rzjvabhdkskk95pghnn67464byvzb5mfl8jpm2"))))
    (build-system gnu-build-system)
-   (inputs `(("patch/gets"
-              ,(search-patch "diffutils-gets-undeclared.patch"))))
-   (arguments `(#:patches (list (assoc-ref %build-inputs "patch/gets"))))
    (synopsis "Comparing and merging files")
    (description
     "GNU Diffutils is a package of several programs related to finding
@@ -264,14 +261,14 @@ The tools supplied with this package are:
 (define-public coreutils
   (package
    (name "coreutils")
-   (version "8.20")
+   (version "8.21")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/coreutils/coreutils-"
                                 version ".tar.xz"))
             (sha256
              (base32
-              "1cly97xdy3v4nbbx631k43smqw0nnpn651kkprs0yyl2cj3pkjyv"))))
+              "064f512185iysqqcvhnhaf3bfmzrvcgs7n405qsyp99zmfyl9amd"))))
    (build-system gnu-build-system)
    (inputs `(("acl"  ,acl)
              ("gmp"  ,gmp)
@@ -340,14 +337,14 @@ that it is possible to use Make to build and install the program.")
 (define-public binutils
   (package
    (name "binutils")
-   (version "2.22")
+   (version "2.23.2")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/binutils/binutils-"
                                 version ".tar.bz2"))
             (sha256
              (base32
-              "1a9w66v5dwvbnawshjwqcgz7km6kw6ihkzp6sswv9ycc3knzhykc"))))
+              "15qhbkz3r266xaa52slh857qn3abw7rb2x2jnhpfrafpzrb4x4gy"))))
    (build-system gnu-build-system)
 
    ;; Split Binutils in several outputs, mostly to avoid collisions in
@@ -365,7 +362,11 @@ that it is possible to use Make to build and install the program.")
                           "LDFLAGS=-static-libgcc"
 
                           ;; Don't search under /usr/lib & co.
-                          "--with-lib-path=/no-ld-lib-path")))
+                          "--with-lib-path=/no-ld-lib-path"
+
+                          ;; Glibc 2.17 has a "comparison of unsigned
+                          ;; expression >= 0 is always true" in wchar.h.
+                          "--disable-werror")))
 
    (synopsis "Binary utilities: bfd gas gprof ld")
    (description
@@ -375,17 +376,6 @@ BFD (Binary File Descriptor) library, `gprof', `nm', `strip', etc.")
    (license gpl3+)
    (home-page "http://www.gnu.org/software/binutils/")))
 
-(define-public binutils-2.23
-  (package (inherit binutils)
-    (version "2.23.2")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnu/binutils/binutils-"
-                                 version ".tar.bz2"))
-             (sha256
-              (base32
-               "15qhbkz3r266xaa52slh857qn3abw7rb2x2jnhpfrafpzrb4x4gy"))))))
-
 (define-public glibc
   (package
    (name "glibc")
@@ -403,13 +393,28 @@ BFD (Binary File Descriptor) library, `gprof', `nm', `strip', etc.")
    ;; users should automatically pull Linux headers as well.
    (propagated-inputs `(("linux-headers" ,linux-libre-headers)))
 
+   ;; Store the locales separately (~100 MiB).  Note that "out" retains a
+   ;; reference to them anyway, so there's no space savings here.
+   ;; TODO: Eventually we may want to add a $LOCALE_ARCHIVE search path like
+   ;; Nixpkgs does.
+   (outputs '("out" "locales"))
+
    (arguments
     `(#:out-of-source? #t
       #:patches (list (assoc-ref %build-inputs "patch/ld.so.cache"))
       #:configure-flags
       (list "--enable-add-ons"
             "--sysconfdir=/etc"
-            "--localedir=/var/run/current-system/sw/lib/locale" ; XXX
+            (string-append "--localedir=" (assoc-ref %outputs "locales")
+                           "/share/locale")
+
+            ;; `--localedir' is not honored, so work around it.
+            ;; See <http://sourceware.org/ml/libc-alpha/2013-03/msg00093.html>.
+            (string-append "libc_cv_localedir="
+                           (assoc-ref %outputs "locales")
+                           "/share/locale")
+
+
             (string-append "--with-headers="
                            (assoc-ref %build-inputs "linux-headers")
                            "/include")
@@ -475,7 +480,12 @@ BFD (Binary File Descriptor) library, `gprof', `nm', `strip', etc.")
                     (substitute* "libio/iopopen.c"
                       (("/bin/sh")
                        (string-append out "/bin/bash")))))
-                %standard-phases)))
+                (alist-cons-after
+                 'install 'install-locales
+                 (lambda _
+                   (zero? (system* "make" "localedata/install-locales")))
+                 %standard-phases))))
+
    (inputs `(("patch/ld.so.cache"
               ,(search-patch "glibc-no-ld-so-cache.patch"))
              ("static-bash" ,(static-package bash-light))))
@@ -578,7 +588,8 @@ identifier SYSTEM."
         #:implicit-inputs? #f
         ,@(substitute-keyword-arguments (package-arguments binutils)
             ((#:configure-flags cf)
-             `(list ,(string-append "--target=" (boot-triplet)))))))
+             `(cons ,(string-append "--target=" (boot-triplet))
+                    ,cf)))))
      (inputs %boot0-inputs))))
 
 (define gcc-boot0
@@ -940,35 +951,6 @@ store.")
               ,@(fold alist-delete (package-inputs ld-wrapper-boot3)
                       '("guile" "bash"))))))
 
-(define-public ld-wrapper-2.23         ; TODO: remove when Binutils is updated
-  (package (inherit ld-wrapper)
-    (inputs `(("binutils" ,binutils-2.23)
-              ,@(alist-delete "binutils" (package-inputs ld-wrapper))))))
-
-(define-public gcc-4.8
-  ;; FIXME: Move to gcc.scm when Binutils is updated.
-  (package (inherit gcc-4.7)
-    (version "4.8.0")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnu/gcc/gcc-"
-                                 version "/gcc-" version ".tar.bz2"))
-             (sha256
-              (base32
-               "0b6cp9d1sas3vq6dj3zrgd134p9b569fqhbixb9cl7mp698zwdxh"))))
-    (inputs `(("gmp" ,gmp)
-              ("mpfr" ,mpfr)
-              ("mpc" ,mpc)
-              ("isl" ,isl)
-              ("cloog" ,cloog)
-              ("zlib" ,(@ (gnu packages compression) zlib))
-
-              ;; With ld from Binutils 2.22, we get the following error while
-              ;; linking gcov:
-              ;; ld: gcov: hidden symbol `__deregister_frame_info' in /nix/store/47myfniw4x7kfc601d7q1yvz5mixlr00-gcc-4.7.2/lib/gcc/x86_64-unknown-linux-gnu/4.7.2/libgcc_eh.a(unwind-dw2-fde-dip.o) is referenced by DSO
-              ;; See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57015>.
-              ("ld-wrapper" ,ld-wrapper-2.23)))))
-
 (define-public %final-inputs
   ;; Final derivations used as implicit inputs by `gnu-build-system'.
   (let ((finalize (cut package-with-explicit-inputs <> %boot4-inputs
diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index ffe1ec6528..eaad45a741 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -135,6 +135,7 @@ check whether everything is alright."
   "Return the name of Glibc's dynamic linker for SYSTEM."
   (cond ((string=? system "x86_64-linux") "/lib/ld-linux-x86-64.so.2")
         ((string=? system "i686-linux") "/lib/ld-linux.so.2")
+        ((string=? system "mips64el-linux") "/lib/ld.so.1")
         (else (error "dynamic linker name not known for this system"
                      system))))
 
@@ -153,7 +154,8 @@ check whether everything is alright."
   (let ((raw (build-system
               (name "raw")
               (description "Raw build system with direct store access")
-              (build (lambda* (store name source inputs #:key outputs system)
+              (build (lambda* (store name source inputs
+                                     #:key outputs system search-paths)
                        (define (->store file)
                          (add-to-store store file #t "sha256"
                                        (or (search-bootstrap-binary file
@@ -351,6 +353,13 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
                         ("i686-linux"
                          (base32
                           "06wqs0xxnpw3hn0xjb4c9cs0899p1xwkcysa2rvzhvpra0c5vsg2")))))))))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "CPATH")
+            (directories '("include")))
+           (search-path-specification
+            (variable "LIBRARY_PATH")
+            (directories '("lib" "lib64")))))
     (synopsis "Bootstrap binaries of the GNU Compiler Collection")
     (description #f)
     (home-page #f)
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
new file mode 100644
index 0000000000..55670fad96
--- /dev/null
+++ b/gnu/packages/cross-base.scm
@@ -0,0 +1,244 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages cross-base)
+  #:use-module (guix licenses)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages gcc)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages linux)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix utils)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build-system trivial)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-26)
+  #:use-module (ice-9 match))
+
+(define (cross p target)
+  (package (inherit p)
+    (location (source-properties->location (current-source-location)))
+    (name (string-append (package-name p) "-cross-" target))
+    (arguments
+     (substitute-keyword-arguments (package-arguments p)
+       ((#:configure-flags flags)
+        `(cons ,(string-append "--target=" target)
+               ,flags))))))
+
+(define cross-binutils
+  (cut cross binutils <>))
+
+(define* (cross-gcc target
+                    #:optional (xbinutils (cross-binutils target)) libc)
+  "Return a cross-compiler for TARGET, where TARGET is a GNU triplet.  Use
+XBINUTILS as the associated cross-Binutils.  If LIBC is false, then build a
+GCC that does not target a libc; otherwise, target that libc."
+  (define args
+    ;; Get the arguments as if we were building for TARGET.  In particular, we
+    ;; want `glibc-dynamic-linker' to return the right thing.
+    (parameterize ((%current-system (gnu-triplet->nix-system target)))
+      (package-arguments gcc-4.7)))
+
+  (package (inherit gcc-4.7)
+    (name (string-append "gcc-cross-"
+                         (if libc "" "sans-libc-")
+                         target))
+    (arguments
+     `(#:implicit-inputs? #f
+       #:modules ((guix build gnu-build-system)
+                  (guix build utils)
+                  (ice-9 regex)
+                  (srfi srfi-1)
+                  (srfi srfi-26))
+       #:patches (list (assoc-ref %build-inputs "patch/cross-env-vars"))
+
+       ,@(substitute-keyword-arguments args
+           ((#:configure-flags flags)
+            `(append (list ,(string-append "--target=" target)
+                           ,@(if libc
+                                 '()
+                                 `( ;; Disable features not needed at this stage.
+                                   "--disable-shared" "--enable-static"
+
+                                   ;; Disable C++ because libstdc++'s
+                                   ;; configure script otherwise fails with
+                                   ;; "Link tests are not allowed after
+                                   ;; GCC_NO_EXECUTABLES."
+                                   "--enable-languages=c"
+
+                                   "--disable-threads" ; libgcc, would need libc
+                                   "--disable-libmudflap"
+                                   "--disable-libgomp"
+                                   "--disable-libssp"
+                                   "--disable-libquadmath"
+                                   "--disable-decimal-float" ; would need libc
+                                   )))
+
+                     ,(if libc
+                          flags
+                          `(remove (cut string-match "--enable-languages.*" <>)
+                                   ,flags))))
+           ((#:make-flags flags)
+            (if libc
+                `(let ((libc (assoc-ref %build-inputs "libc")))
+                   ;; FLAGS_FOR_TARGET are needed for the target libraries to
+                   ;; receive the -Bxxx for the startfiles.
+                   (cons (string-append "FLAGS_FOR_TARGET=-B" libc "/lib")
+                         ,flags))
+                flags))
+           ((#:phases phases)
+            (let ((phases
+                   `(alist-cons-after
+                     'install 'make-cross-binutils-visible
+                     (lambda* (#:key outputs inputs #:allow-other-keys)
+                       (let* ((out      (assoc-ref outputs "out"))
+                              (libexec  (string-append out "/libexec/gcc/"
+                                                       ,target))
+                              (binutils (string-append
+                                         (assoc-ref inputs "binutils-cross")
+                                         "/bin/" ,target "-")))
+                         (for-each (lambda (file)
+                                     (symlink (string-append binutils file)
+                                              (string-append libexec "/"
+                                                             file)))
+                                   '("as" "ld" "nm"))
+                         #t))
+                     ,phases)))
+             (if libc
+                 `(alist-cons-before
+                   'configure 'set-cross-path
+                   (lambda* (#:key inputs #:allow-other-keys)
+                     ;; Add the cross Linux headers to CROSS_CPATH, and remove
+                     ;; them from CPATH.
+                     (let ((libc  (assoc-ref inputs "libc"))
+                           (linux (assoc-ref inputs
+                                             "libc/cross-linux-headers")))
+                       (define (cross? x)
+                         ;; Return #t if X is a cross-libc or cross Linux.
+                         (or (string-prefix? libc x)
+                             (string-prefix? linux x)))
+
+                       (setenv "CROSS_CPATH"
+                               (string-append libc "/include:"
+                                              linux "/include"))
+                       (setenv "CROSS_LIBRARY_PATH"
+                               (string-append libc "/lib"))
+
+                       (let ((cpath   (search-path-as-string->list
+                                       (getenv "CPATH")))
+                             (libpath (search-path-as-string->list
+                                       (getenv "LIBRARY_PATH"))))
+                         (setenv "CPATH"
+                                 (list->search-path-as-string
+                                  (remove cross? cpath) ":"))
+                         (setenv "LIBRARY_PATH"
+                                 (list->search-path-as-string
+                                  (remove cross? libpath) ":"))
+                         #t)))
+                   ,phases)
+                 phases)))
+           ((#:strip-binaries? _)
+            ;; Disable stripping as this can break binaries, with object files
+            ;; of libgcc.a showing up as having an unknown architecture.  See
+            ;; <http://lists.fedoraproject.org/pipermail/arm/2010-August/000663.html>
+            ;; for instance.
+            #f))))
+    (inputs
+     `(("patch/cross-env-vars"
+        ,(search-patch "gcc-cross-environment-variables.patch"))
+
+       ("binutils-cross" ,xbinutils)
+
+       ;; Call it differently so that the builder can check whether the "libc"
+       ;; input is #f.
+       ("libc-native" ,@(assoc-ref %final-inputs "libc"))
+
+       ;; Remaining inputs.
+       ,@(let ((inputs (append (package-inputs gcc-4.7)
+                               (alist-delete "libc" %final-inputs))))
+           (if libc
+               `(("libc" ,libc)
+                 ,@inputs)
+               inputs))))))
+
+(define* (cross-libc target
+                     #:optional
+                     (xgcc (cross-gcc target))
+                     (xbinutils (cross-binutils target)))
+  "Return a libc cross-built for TARGET, a GNU triplet.  Use XGCC and
+XBINUTILS and the cross tool chain."
+  (define xlinux-headers
+    (package (inherit linux-libre-headers)
+      (name (string-append (package-name linux-libre-headers)
+                           "-cross-" target))
+      (arguments
+       (substitute-keyword-arguments (package-arguments linux-libre-headers)
+         ((#:phases phases)
+          `(alist-replace
+            'build
+            (lambda _
+              (setenv "ARCH" ,(system->linux-architecture target))
+              (format #t "`ARCH' set to `~a' (cross compiling)~%" (getenv "ARCH"))
+
+              (and (zero? (system* "make" "defconfig"))
+                   (zero? (system* "make" "mrproper" "headers_check"))))
+            ,phases))))
+      (inputs `(("cross-gcc" ,xgcc)
+                ("cross-binutils" ,xbinutils)
+                ,@(package-inputs linux-libre-headers)))))
+
+  (package (inherit glibc)
+    (name (string-append "glibc-cross-" target))
+    (arguments
+     (substitute-keyword-arguments
+         `(#:strip-binaries? #f                ; disable stripping (see above)
+           ,@(package-arguments glibc))
+       ((#:configure-flags flags)
+        `(cons ,(string-append "--host=" target)
+               ,flags))
+       ((#:phases phases)
+        `(alist-cons-before
+          'configure 'set-cross-linux-headers-path
+          (lambda* (#:key inputs #:allow-other-keys)
+            (let ((linux (assoc-ref inputs "cross-linux-headers")))
+              (setenv "CROSS_CPATH"
+                      (string-append linux "/include"))
+              #t))
+          ,phases))))
+    (propagated-inputs `(("cross-linux-headers" ,xlinux-headers)))
+    (inputs `(("cross-gcc" ,xgcc)
+              ("cross-binutils" ,xbinutils)
+              ,@(package-inputs glibc)))))
+
+
+;;;
+;;; Concrete cross toolchains.
+;;;
+
+(define-public xgcc-mips64el
+  (let ((triplet "mips64el-linux-gnu"))
+    (cross-gcc triplet
+               (cross-binutils triplet)
+               (cross-libc triplet))))
+
+;; (define-public xgcc-armel
+;;   (let ((triplet "armel-linux-gnueabi"))
+;;     (cross-gcc triplet
+;;                (cross-binutils triplet)
+;;                (cross-libc triplet))))
diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index 00fd0f3232..4f5d96087e 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -55,18 +55,7 @@
              ("pkg-config" ,pkg-config)
              ("zlib" ,zlib)))
    (arguments
-    `(#:configure-flags '("--with-gnutls" "--with-gssapi")
-      #:phases
-       (alist-replace
-        'unpack
-        (lambda* (#:key #:allow-other-keys #:rest args)
-         (let ((unpack (assoc-ref %standard-phases 'unpack)))
-           (apply unpack args)
-           ;; The following patch-shebang phase will replace perl
-           ;; by the correct path.
-           (substitute* "tests/runtests.pl"
-                         (("#!/usr/bin/env perl") "#!/usr/bin/perl"))))
-       %standard-phases)))
+    `(#:configure-flags '("--with-gnutls" "--with-gssapi")))
    (synopsis "curl, command line tool for transferring data with URL syntax")
    (description
     "curl is a command line tool for transferring data with URL syntax,
diff --git a/gnu/packages/dwm.scm b/gnu/packages/dwm.scm
new file mode 100644
index 0000000000..ce87b14e5f
--- /dev/null
+++ b/gnu/packages/dwm.scm
@@ -0,0 +1,86 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages dwm)
+  #:use-module (guix licenses)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages xorg))
+
+(define-public dwm
+  (package
+    (name "dwm")
+    (version "6.0")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "http://dl.suckless.org/dwm/dwm-"
+                                 version ".tar.gz"))
+             (sha256
+              (base32 "0mpbivy9j80l1jqq4bd4g4z8s5c54fxrjj44avmfwncjwqylifdj"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f
+       #:phases
+       (alist-replace
+        'configure
+        (lambda _
+         (substitute* "Makefile" (("\\$\\{CC\\}") "gcc"))
+         #t)
+        (alist-replace
+         'install
+         (lambda* (#:key outputs #:allow-other-keys)
+          (let ((out (assoc-ref outputs "out")))
+           (zero?
+            (system* "make" "install"
+                     (string-append "DESTDIR=" out) "PREFIX="))))
+         %standard-phases))))
+    (inputs
+     `(("libx11" ,libx11)
+       ("libxinerama" ,libxinerama)))
+    (home-page "http://dwm.suckless.org/")
+    (synopsis "Dynamic window manager")
+    (description
+     "dwm is a dynamic window manager for X. It manages windows in tiled,
+monocle and floating layouts. All of the layouts can be applied dynamically,
+optimising the environment for the application in use and the task performed.
+
+In tiled layout windows are managed in a master and stacking area. The master
+area contains the window which currently needs most attention, whereas the
+stacking area contains all other windows. In monocle layout all windows are
+maximised to the screen size. In floating layout windows can be resized and
+moved freely. Dialog windows are always managed floating, regardless of the
+layout applied.
+
+Windows are grouped by tags. Each window can be tagged with one or multiple
+tags. Selecting certain tags displays all windows with these tags.
+
+Each screen contains a small status bar which displays all available tags, the
+layout, the number of visible windows, the title of the focused window, and the
+text read from the root window name property, if the screen is focused. A
+floating window is indicated with an empty square and a maximised floating
+window is indicated with a filled square before the windows title. The selected
+tags are indicated with a different color. The tags of the focused window are
+indicated with a filled square in the top left corner. The tags which are
+applied to one or more windows are indicated with an empty square in the top
+left corner.
+
+dwm draws a small customizable border around windows to indicate the focus
+state.")
+    (license x11)))
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 250fcf2401..932fb2be75 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -26,7 +26,16 @@
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages gnutls)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages guile))
+  #:use-module (gnu packages guile)
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages lesstif)
+  #:use-module (gnu packages libjpeg)
+  #:use-module (gnu packages libtiff)
+  #:use-module (gnu packages libpng)
+  #:use-module ((gnu packages compression)
+                #:renamer (symbol-prefix-proc 'compression:))
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages glib))
 
 (define-public emacs
   (package
@@ -43,7 +52,8 @@
     (arguments
      '(#:configure-flags
        (list (string-append "--with-crt-dir=" (assoc-ref %build-inputs "libc")
-                            "/lib"))
+                            "/lib")
+             "--with-gif=no")                     ; XXX: add libungif
        #:patches (list (assoc-ref %build-inputs "patch/epaths"))
        #:phases (alist-cons-before
                  'configure 'fix-/bin/pwd
@@ -60,16 +70,22 @@
        ("ncurses" ,ncurses)
 
        ;; TODO: Add the optional dependencies.
-       ;; ("xlibs" ,xlibs)
+       ("xlibs" ,libx11)
+       ("libXaw" ,libxaw)                    ; XXX: eventually replace by GTK+
        ;; ("gtk+" ,gtk+)
-       ;; ("libXft" ,libXft)
-       ;; ("libtiff" ,libtiff)
+       ("libXft" ,libxft)
+       ("libtiff" ,libtiff)
        ;; ("libungif" ,libungif)
-       ;; ("libjpeg" ,libjpeg)
-       ;; ("libpng" ,libpng)
-       ;; ("libXpm" ,libXpm)
-       ;; ("libxml2" ,libxml2)
-       ;; ("dbus-library" ,dbus-library)
+       ("libjpeg" ,libjpeg-8)
+
+       ;; When looking for libpng `configure' links with `-lpng -lz', so we
+       ;; must also provide zlib as an input.
+       ("libpng" ,libpng)
+       ("zlib" ,compression:zlib)
+
+       ("libXpm" ,libxpm)
+       ("libxml2" ,libxml2)
+       ("dbus" ,dbus)
 
        ("patch/epaths" ,(search-patch "emacs-configure-sh.patch"))
        ))
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index 551d4ac167..14f8250357 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -38,6 +38,20 @@
             (sha256 (base32
                      "0gpcz6swir64kp0dk3rwgqqkmf48b90dqgczdmznjjryhrahx9r9"))))
    (build-system gnu-build-system)
+   (arguments
+    `(#:phases
+       (alist-replace
+        'install
+        (lambda* (#:key outputs #:allow-other-keys #:rest args)
+         (let ((install (assoc-ref %standard-phases 'install))
+               (include (string-append (assoc-ref outputs "out") "/include")))
+           (apply install args)
+           ;; Unravel one directory, since ft2build.h includes directly from
+           ;; freetype/, not freetype2/freetype; this is announced in the file
+           ;; to be changed in a future release.
+           (symlink (string-append include "/freetype2/freetype")
+                    (string-append include "/freetype"))))
+       %standard-phases)))
    (synopsis "Freetype, a library to render fonts")
    (description
     "Freetype is a library that can be used by applications to access the
diff --git a/gnu/packages/gawk.scm b/gnu/packages/gawk.scm
index 15ff2a4401..bba2ea1af0 100644
--- a/gnu/packages/gawk.scm
+++ b/gnu/packages/gawk.scm
@@ -26,13 +26,13 @@
 (define-public gawk
   (package
    (name "gawk")
-   (version "4.0.0")
+   (version "4.0.2")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/gawk/gawk-" version
-                                ".tar.bz2"))
+                                ".tar.xz"))
             (sha256
-             (base32 "0sss7rhpvizi2a88h6giv0i7w5h07s2fxkw3s6n1hqvcnhrfgbb0"))))
+             (base32 "04vd0axif762mf781pj3days6ilv2333b9zi9c50y5mma66g5q91"))))
    (build-system gnu-build-system)
    (arguments
     `(#:parallel-tests? #f                ; test suite fails in parallel
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index a784118dd6..d239b5a9ab 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -35,18 +35,22 @@
   (let ((stripped? #t))                         ; TODO: make this a parameter
     (package
      (name "gcc")
-     (version "4.7.2")
+     (version "4.7.3")
      (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/gcc/gcc-"
                                   version "/gcc-" version ".tar.bz2"))
               (sha256
                (base32
-                "115h03hil99ljig8lkrq4qk426awmzh0g99wrrggxf8g07bq74la"))))
+                "1hx9h64ivarlzi4hxvq42as5m9vlr5cyzaaq4gzj4i619zmkfz1g"))))
      (build-system gnu-build-system)
-     (inputs `(("gmp" ,gmp)
-               ("mpfr" ,mpfr)
-               ("mpc" ,mpc)))           ; TODO: libelf, ppl, cloog, zlib, etc.
+    (inputs `(("gmp" ,gmp)
+              ("mpfr" ,mpfr)
+              ("mpc" ,mpc)
+              ("isl" ,isl)
+              ("cloog" ,cloog)
+              ("libelf" ,libelf)
+              ("zlib" ,zlib)))
      (arguments
       `(#:out-of-source? #t
         #:strip-binaries? ,stripped?
@@ -65,8 +69,8 @@
         #:make-flags
         (let ((libc (assoc-ref %build-inputs "libc")))
           `(,@(if libc
-                  (list (string-append "LDFLAGS_FOR_BUILD="
-                                       "-L" libc "/lib "
+                  (list (string-append "LDFLAGS_FOR_TARGET="
+                                       "-B" libc "/lib "
                                        "-Wl,-dynamic-linker "
                                        "-Wl," libc
                                        ,(glibc-dynamic-linker)))
@@ -102,7 +106,7 @@
                   ;; RUNPATH to GCC even when `libgcc_s' is not NEEDED.
                   ;; There's not much that can be done to avoid it, though.
                   (format #f "#define LIB_SPEC \"-L~a/lib %{!static:-rpath=~a/lib \
-%{!static-libgcc:-rpath=~a/lib64 -rpath=~a/lib}} \" ~a~%"
+%{!static-libgcc:-rpath=~a/lib64 -rpath=~a/lib}} \" ~a"
                           libc libc out out suffix))
                  (("#define STARTFILE_SPEC.*$" line)
                   (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\"
@@ -132,6 +136,14 @@
                                           "install"))))
                          %standard-phases)))))
 
+     (native-search-paths
+      (list (search-path-specification
+             (variable "CPATH")
+             (directories '("include")))
+            (search-path-specification
+             (variable "LIBRARY_PATH")
+             (directories '("lib" "lib64")))))
+
      (properties `((gcc-libc . ,(assoc-ref inputs "libc"))))
      (synopsis "GNU Compiler Collection")
      (description
@@ -144,6 +156,18 @@ used in the GNU system including the GNU/Linux variant.")
      (license gpl3+)
      (home-page "http://gcc.gnu.org/"))))
 
+(define-public gcc-4.8
+  ;; FIXME: Move to gcc.scm when Binutils is updated.
+  (package (inherit gcc-4.7)
+    (version "4.8.0")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://gnu/gcc/gcc-"
+                                 version "/gcc-" version ".tar.bz2"))
+             (sha256
+              (base32
+               "0b6cp9d1sas3vq6dj3zrgd134p9b569fqhbixb9cl7mp698zwdxh"))))))
+
 (define-public isl
   (package
     (name "isl")
diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm
index 2c58bca0bd..1f4aa2f77a 100644
--- a/gnu/packages/ghostscript.scm
+++ b/gnu/packages/ghostscript.scm
@@ -171,3 +171,45 @@ It consists of a PostScript interpreter layer, and a graphics
 library.")
    (license license:gpl3+)
    (home-page "http://www.gnu.org/software/ghostscript/")))
+
+(define-public gs-fonts
+  (package
+   (name "gs-fonts")
+   (version "8.11")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append "mirror://sourceforge/gs-fonts/gs-fonts/"
+                                version
+                                "%20%28base%2035%2C%20GPL%29/ghostscript-fonts-std-"
+                                version
+                                ".tar.gz"))
+            (sha256 (base32
+                     "00f4l10xd826kak51wsmaz69szzm2wp8a41jasr4jblz25bg7dhf"))))
+   (build-system gnu-build-system)
+   (arguments
+    `(#:tests? #f ; nothing to check, just files to copy
+      #:modules ((guix build gnu-build-system)
+                 (guix build utils)
+                 (srfi srfi-1)) ; for alist-delete
+      #:phases
+       (alist-delete
+        'configure
+       (alist-delete
+        'build
+       (alist-replace
+        'install
+        (lambda* (#:key outputs #:allow-other-keys)
+          (let* ((out (assoc-ref outputs "out"))
+                 (dir (string-append out "/share/fonts/type1/ghostscript")))
+            (mkdir-p dir)
+            (for-each
+              (lambda (file)
+                (copy-file file (string-append dir "/" file)))
+              (find-files "." "pfb|afm"))))
+       %standard-phases)))))
+   (synopsis "free replacements for the PostScript fonts")
+   (description
+    "gs-fonts provides fonts and font metrics customarily distributed with
+Ghostscript. It currently includes the 35 standard PostScript fonts.")
+   (license license:gpl2)
+   (home-page "http://sourceforge.net/projects/gs-fonts/")))
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index d594a1b068..f951fe7b71 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -18,7 +19,8 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages glib)
-  #:use-module ((guix licenses) #:select (lgpl2.0+ gpl2+ gpl2))
+  #:use-module ((guix licenses)
+                #:renamer (symbol-prefix-proc 'license:))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
@@ -28,11 +30,10 @@
   #:use-module ((gnu packages gettext)
                 #:renamer (symbol-prefix-proc 'guix:))
   #:use-module (gnu packages libffi)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages perl)
-  #:use-module ((gnu packages xml)
-                #:renamer (symbol-prefix-proc 'xml:)))
+  #:use-module (gnu packages xml))
 
 (define-public dbus
   (package
@@ -48,7 +49,7 @@
                "1wacqyfkcpayg7f8rvx9awqg275n5pksxq5q7y21lxjx85x6pfjz"))))
     (build-system gnu-build-system)
     (inputs
-     `(("expat" ,xml:expat)
+     `(("expat" ,expat)
        ("pkg-config" ,pkg-config)))
     (home-page "http://dbus.freedesktop.org/")
     (synopsis "Message bus for inter-process communication (IPC)")
@@ -68,7 +69,7 @@ to communicate directly (without going through the message bus
 daemon). Currently the communicating applications are on one computer,
 or through unencrypted TCP/IP suitable for use behind a firewall with
 shared NFS home directories.")
-    (license gpl2+)))                     ; or Academic Free License 2.1
+    (license license:gpl2+)))                     ; or Academic Free License 2.1
 
 (define-public glib
   (package
@@ -126,43 +127,32 @@ shared NFS home directories.")
 and interfaces for such runtime functionality as an event loop, threads,
 dynamic loading, and an object system.")
    (home-page "http://developer.gnome.org/glib/")
-   (license lgpl2.0+)))                        ; some files are under lgpl2.1+
+   (license license:lgpl2.0+)))                        ; some files are under lgpl2.1+
 
 (define-public intltool
   (package
     (name "intltool")
-    (version "0.40.6")
+    (version "0.50.2")
     (source (origin
              (method url-fetch)
-             (uri (string-append
-                   "mirror://gnome/sources/intltool/0.40/intltool-"
-                   version
-                   ".tar.bz2"))
+             (uri (string-append "https://launchpad.net/intltool/trunk/"
+                                 version "/+download/intltool-"
+                                 version ".tar.gz"))
              (sha256
               (base32
-               "0r1vkvy5xzqk01yl6a0xlrry39bra24alkrx6279b77hc62my7jd"))))
+               "01j4yd7i84n9nk4ccs6yifg84pp68nr9by57jdbhj7dpdxf5rwk7"))))
     (build-system gnu-build-system)
-    (arguments
-     '(#:phases (alist-cons-before
-                 'configure 'set-perl-path
-                 (lambda* (#:key inputs #:allow-other-keys)
-                   ;; FIXME: Remove this phase when proper support for search
-                   ;; paths is available.
-                   (let ((xml-parser (assoc-ref inputs "perl-xml-parser")))
-                     (setenv "PERL5LIB"
-                             (string-append xml-parser
-                                            "/lib/perl5/site_perl"))
-                     #t))
-                 %standard-phases)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
     (propagated-inputs
-     `(("gettext" ,guix:gettext)
-       ("perl-xml-parser" ,xml:perl-xml-parser)
+     `(;; Propagate gettext because users expect it to be there, and so does
+       ;; the `intltool-update' script.
+       ("gettext" ,guix:gettext)
+
+       ("perl-xml-parser" ,perl-xml-parser)
        ("perl" ,perl)))
-    (home-page "http://freedesktop.org/wiki/Software/intltool")
-    (synopsis "Tools to centralize translation of many different file formats")
+    (home-page "https://launchpad.net/intltool/+download")
+    (synopsis "Tools to centralise translations of different file formats")
     (description
-     "intltool is a set of tools to centralize translation of many different
+     "intltool is a set of tools to centralise translations of many different
 file formats using GNU gettext-compatible PO files.
 
 The intltool collection can be used to do these things:
@@ -175,4 +165,4 @@ The intltool collection can be used to do these things:
 
     Merge back the translations from .po files into .xml, .desktop and
     oaf files. This merge step will happen at build resp. installation time.")
-    (license gpl2)))
+    (license license:gpl2+)))
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index e0896ec6e8..c8604f88f4 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -88,6 +88,11 @@
    ;; When cross-compiling, a native version of Guile itself is needed.
    (self-native-input? #t)
 
+   (native-search-paths
+    (list (search-path-specification
+           (variable "GUILE_LOAD_PATH")
+           (directories '("share/guile/site")))))
+
    (synopsis "Scheme implementation intended especially for extensions")
    (description
 "GNU Guile 1.8 is an interpreter for the Scheme programming language,
@@ -137,6 +142,14 @@ extensible.  It supports many SRFIs.")
                        (string-append bash "/bin/bash")))))
                 %standard-phases)))
 
+   (native-search-paths
+    (list (search-path-specification
+           (variable "GUILE_LOAD_PATH")
+           (directories '("share/guile/site/2.0")))
+          (search-path-specification
+           (variable "GUILE_LOAD_COMPILED_PATH")
+           (directories '("share/guile/site/2.0")))))
+
    (synopsis "Scheme implementation intended especially for extensions")
    (description
 "GNU Guile is an implementation of the Scheme programming language, with
@@ -151,15 +164,7 @@ call interface, and powerful string processing.")
 (define-public guile-2.0/fixed
   ;; A package of Guile 2.0 that's rarely changed.  It is the one used
   ;; in the `base' module, and thus changing it entails a full rebuild.
-  (package (inherit guile-2.0)
-    (version "2.0.7")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnu/guile/guile-" version
-                                 ".tar.xz"))
-             (sha256
-              (base32
-               "0f53pxkia4v17n0avwqlcjpy0n89hkazm2xsa6p84lv8k6k8y9vg"))))))
+  guile-2.0)
 
 
 ;;;
diff --git a/gnu/packages/lesstif.scm b/gnu/packages/lesstif.scm
new file mode 100644
index 0000000000..d15549454f
--- /dev/null
+++ b/gnu/packages/lesstif.scm
@@ -0,0 +1,50 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages lesstif)
+  #:use-module ((guix licenses)
+                #:renamer (symbol-prefix-proc 'license:))
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages xorg))
+
+
+(define-public lesstif
+  (package
+    (name "lesstif")
+    (version "0.95.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://sourceforge/lesstif/lesstif/" version
+               "/lesstif-" version ".tar.bz2"))
+        (sha256
+          (base32
+            "1qzpxjjf7ri1jzv71mvq5m9g8hfaj5yzwp30rwxlm6n2b24a6jpb"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+     `(("printproto" ,printproto)))
+    (inputs
+      `(("libxext" ,libxext)
+        ("libxt" ,libxt)))
+    (home-page "http://lesstif.sourceforge.net/")
+    (synopsis "Clone of the Motif toolkit for the X window system")
+    (description "Clone of the Motif toolkit for the X window system")
+    (license license:gpl2+))) ; some files are lgpl2.1+ or x11
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index ca4ca563a3..91f7125e8a 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -31,18 +31,25 @@
   #:use-module (guix download)
   #:use-module (guix build-system gnu))
 
+(define-public (system->linux-architecture arch)
+  "Return the Linux architecture name for ARCH, a Guix system name such as
+\"x86_64-linux\"."
+  (let ((arch (car (string-split arch #\-))))
+    (cond ((string=? arch "i686") "i386")
+          ((string-prefix? "mips" arch) "mips")
+          ((string-prefix? "arm" arch) "arm")
+          (else arch))))
+
 (define-public linux-libre-headers
   (let* ((version* "3.3.8")
          (build-phase
-          '(lambda* (#:key system #:allow-other-keys)
-             (let ((arch (car (string-split system #\-))))
-               (setenv "ARCH"
-                       (cond ((string=? arch "i686") "i386")
-                             (else arch)))
-               (format #t "`ARCH' set to `~a'~%" (getenv "ARCH")))
+          (lambda (arch)
+            `(lambda _
+               (setenv "ARCH" ,(system->linux-architecture arch))
+               (format #t "`ARCH' set to `~a'~%" (getenv "ARCH"))
 
-             (and (zero? (system* "make" "defconfig"))
-                  (zero? (system* "make" "mrproper" "headers_check")))))
+               (and (zero? (system* "make" "defconfig"))
+                    (zero? (system* "make" "mrproper" "headers_check"))))))
          (install-phase
           `(lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -73,7 +80,7 @@
                   (guix build utils)
                   (srfi srfi-1))
        #:phases (alist-replace
-                 'build ,build-phase
+                 'build ,(build-phase (%current-system))
                  (alist-replace
                   'install ,install-phase
                   (alist-delete 'configure %standard-phases)))
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index 40e3e21210..de4e0dcbeb 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -324,7 +324,10 @@
                                (string-append incdir "/asm-generic"))
              #t))))
       (inputs `(("libc" ,glibc)
-                ("linux-headers" ,linux-libre-headers))))))
+                ("linux-headers" ,linux-libre-headers)))
+
+      ;; Only one output.
+      (outputs '("out")))))
 
 (define %gcc-static
   ;; A statically-linked GCC, with stripped-down functionality.
diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm
index a6130dccfa..19c32352b3 100644
--- a/gnu/packages/multiprecision.scm
+++ b/gnu/packages/multiprecision.scm
@@ -27,18 +27,15 @@
 (define-public gmp
   (package
    (name "gmp")
-   (version "5.1.0")
+   (version "5.1.1")
    (source (origin
             (method url-fetch)
             (uri
-             ;; Note: this version is not available from GNU mirrors
-             ;; because it was made with an Automake affected by
-             ;; CVE-2012-3386.
-             (string-append "ftp://ftp.gmplib.org/pub/gmp-"
-                            version "/gmp-" version ".tar.bz2"))
+             (string-append "mirror://gnu/gmp/gmp-"
+                            version ".tar.xz"))
             (sha256
              (base32
-              "15n7xxgasbxdch8ii8z9ic6fxc2ysk3q8iavf55abjp5iylspnfz"))))
+              "1hili06lcf0clg5qfvz7knm6pmj6ab54yhsvskp1mdny5xw4vmjb"))))
    (build-system gnu-build-system)
    (native-inputs `(("m4" ,m4)))
    (arguments `(#:configure-flags
@@ -73,13 +70,13 @@ faster algorithms.")
 (define-public mpfr
   (package
    (name "mpfr")
-   (version "3.1.1")
+   (version "3.1.2")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/mpfr/mpfr-" version
                                 ".tar.xz"))
             (sha256 (base32
-                     "0ym1ylcq803n52qrggxqmkz66gbn8ncc3ybawal31v5y5p1srma9"))))
+                     "0fs501qi8l523gs3cpy4jjcnvwxggyfbklcys80wq236xx3hz79r"))))
    (build-system gnu-build-system)
    (propagated-inputs `(("gmp" ,gmp)))            ; <mpfr.h> refers to <gmp.h>
    (synopsis "C library for arbitrary precision floating-point arithmetic")
diff --git a/gnu/packages/openldap.scm b/gnu/packages/openldap.scm
index d2525a6310..a4a28ccf1b 100644
--- a/gnu/packages/openldap.scm
+++ b/gnu/packages/openldap.scm
@@ -55,7 +55,7 @@
              ("libtool" ,libtool "bin")
              ("zlib" ,zlib)))
    (arguments
-    `(#:parallel-tests? #f
+    `(#:tests? #f
       #:phases
        (alist-replace
         'configure
@@ -63,19 +63,7 @@
          (let ((configure (assoc-ref %standard-phases 'configure)))
            (apply configure args)
            (copy-file (which "libtool") "libtool")))
-       (alist-replace
-        'check
-        (lambda* (#:key #:allow-other-keys #:rest args)
-         (let ((check (assoc-ref %standard-phases 'check)))
-           (for-each (lambda (f)
-                       (substitute* (string-append "tests/scripts/" f)
-                                    (("/bin/rm") "rm")))
-                       '("all" "its-all" "passwd-search" "sql-all" "test027-emptydn"))
-           ;; disable especially finicky tests
-           (delete-file "tests/scripts/test058-syncrepl-asymmetric")
-           (delete-file "tests/scripts/test061-syncreplication-initiation")
-           (apply check args)))
-       %standard-phases))))
+       %standard-phases)))
    (synopsis "openldap, an implementation of the Lightweight Directory Access Protocol")
    (description
     "OpenLDAP is a free implementation of the Lightweight Directory Access Protocol.")
diff --git a/gnu/packages/patches/gcc-cross-environment-variables.patch b/gnu/packages/patches/gcc-cross-environment-variables.patch
new file mode 100644
index 0000000000..30a07ec3db
--- /dev/null
+++ b/gnu/packages/patches/gcc-cross-environment-variables.patch
@@ -0,0 +1,24 @@
+Search path environment variables for cross-compilers.  See the discussion
+at <http://gcc.gnu.org/ml/gcc/2013-02/msg00124.html>.
+
+--- gcc-4.7.2/gcc/incpath.c	2012-01-27 00:34:58.000000000 +0100
++++ gcc-4.7.2/gcc/incpath.c	2013-02-12 10:11:27.000000000 +0100
+@@ -452,7 +452,7 @@ register_include_chains (cpp_reader *pfi
+ 
+   /* CPATH and language-dependent environment variables may add to the
+      include chain.  */
+-  add_env_var_paths ("CPATH", BRACKET);
++  add_env_var_paths ("CROSS_CPATH", BRACKET);
+   add_env_var_paths (lang_env_vars[idx], SYSTEM);
+ 
+   target_c_incpath.extra_pre_includes (sysroot, iprefix, stdinc);
+
+--- gcc-4.7.2/gcc/system.h	2012-02-17 00:16:28.000000000 +0100
++++ gcc-4.7.2/gcc/system.h	2013-02-12 10:22:17.000000000 +0100
+@@ -1023,4 +1023,6 @@ helper_const_non_const_cast (const char
+ #define DEBUG_VARIABLE
+ #endif
+ 
++#define LIBRARY_PATH_ENV "CROSS_LIBRARY_PATH"
++
+ #endif /* ! GCC_SYSTEM_H */
diff --git a/gnu/packages/patches/python-fix-dbm.patch b/gnu/packages/patches/python-fix-dbm.patch
new file mode 100644
index 0000000000..29e4521f3f
--- /dev/null
+++ b/gnu/packages/patches/python-fix-dbm.patch
@@ -0,0 +1,20 @@
+This patch allows the dbm module to be built using the compatibility mode of
+gdbm. It will not be needed any more with Python 2.7.4.
+--- setup.py	2013-04-06 00:53:37.000000000 +0200
++++ setup.py.new	2013-04-06 19:55:05.000000000 +0200
+@@ -1158,10 +1158,14 @@
+             for cand in dbm_order:
+                 if cand == "ndbm":
+                     if find_file("ndbm.h", inc_dirs, []) is not None:
+-                        # Some systems have -lndbm, others don't
++                        # Some systems have -lndbm, some have -lgdbm_compat,
++                        # others have no particular linker flags.
+                         if self.compiler.find_library_file(lib_dirs,
+                                                                'ndbm'):
+                             ndbm_libs = ['ndbm']
++                        elif self.compiler.find_library_file(lib_dirs,
++                                                             'gdbm_compat'):
++                            ndbm_libs = ['gdbm_compat']
+                         else:
+                             ndbm_libs = []
+                         print "building dbm using ndbm"
diff --git a/gnu/packages/patches/xpdf-constchar.patch b/gnu/packages/patches/xpdf-constchar.patch
new file mode 100644
index 0000000000..95dbe73c71
--- /dev/null
+++ b/gnu/packages/patches/xpdf-constchar.patch
@@ -0,0 +1,15 @@
+This patch circumvents an error with 'const char *' to 'char *' conversion,
+see http://gnats.netbsd.org/45562 .
+
+diff -u a/xpdf/XPDFViewer.cc b/xpdf/XPDFViewer.cc
+--- a/xpdf/XPDFViewer.cc        2011-08-15 23:08:53.000000000 +0200
++++ b/xpdf/XPDFViewer.cc        2013-03-31 15:13:21.000000000 +0200
+@@ -1803,7 +1803,7 @@
+   menuPane = XmCreatePulldownMenu(toolBar, "zoomMenuPane", args, n);
+   for (i = 0; i < nZoomMenuItems; ++i) {
+     n = 0;
+-    s = XmStringCreateLocalized(zoomMenuInfo[i].label);
++    s = XmStringCreateLocalized((char *) zoomMenuInfo[i].label);
+     XtSetArg(args[n], XmNlabelString, s); ++n;
+     XtSetArg(args[n], XmNuserData, (XtPointer)i); ++n;
+     sprintf(buf, "zoom%d", i);
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 5a9d513336..820a879288 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -17,16 +17,21 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages pdf)
-  #:use-module ((guix licenses) #:select (gpl2+))
+  #:use-module ((guix licenses)
+                #:renamer (symbol-prefix-proc 'license:))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages ghostscript)
+  #:use-module (gnu packages lesstif)
   #:use-module (gnu packages libjpeg)
+  #:use-module (gnu packages libpng)
   #:use-module (gnu packages libtiff)
-  #:use-module (gnu packages pkg-config))
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages xorg))
 
 (define-public poppler
   (package
@@ -40,17 +45,74 @@
                      "1rmrspavldlpqi6g76fijcmshy80m0kxd01nc1dmy4id3h4las44"))))
    (build-system gnu-build-system)
    ;; FIXME: more dependencies could  be added
+   ;;  cairo output:       no (requires cairo >= 1.10.0)
+   ;;  qt4 wrapper:        no
+   ;;  glib wrapper:       no (requires cairo output)
+   ;;    introspection:    no
+   ;;  use gtk-doc:        no
+   ;;  use libcurl:        no
+   ;;  use libopenjpeg:    no
    (inputs `(("fontconfig" ,fontconfig)
              ("freetype" ,freetype)
              ("libjpeg-8" ,libjpeg-8)
+             ("libpng" ,libpng)
              ("libtiff" ,libtiff)
              ("pkg-config" ,pkg-config)
              ("zlib" ,zlib)))
    (arguments
     `(#:tests? #f ; no test data provided with the tarball
-      #:configure-flags '("--enable-xpdf-headers"))) ; to install header files
+      #:configure-flags
+       '("--enable-xpdf-headers" ; to install header files
+         "--enable-zlib")))
    (synopsis "Poppler, a pdf rendering library")
    (description
     "Poppler is a PDF rendering library based on the xpdf-3.0 code base.")
-   (license gpl2+)
+   (license license:gpl2+)
    (home-page "http://poppler.freedesktop.org/")))
+
+(define-public xpdf
+  (package
+   (name "xpdf")
+   (version "3.03")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append "ftp://ftp.foolabs.com/pub/xpdf/xpdf-"
+                                version ".tar.gz"))
+            (sha256 (base32
+                     "1jnfzdqc54wa73lw28kjv0m7120mksb0zkcn81jdlvijyvc67kq2"))))
+   (build-system gnu-build-system)
+   (inputs `(("freetype" ,freetype)
+             ("gs-fonts" ,gs-fonts)
+             ("lesstif" ,lesstif)
+             ("libpaper" ,libpaper)
+             ("libx11" ,libx11)
+             ("libxext" ,libxext)
+             ("libxp" ,libxp)
+             ("libxpm" ,libxpm)
+             ("libxt" ,libxt)
+             ("zlib" ,zlib)
+             ("patch/constchar"
+                 ,(search-patch "xpdf-constchar.patch"))))
+   (arguments
+    `(#:tests? #f ; there is no check target
+      #:patches (list (assoc-ref %build-inputs
+                                 "patch/constchar"))
+      #:phases
+       (alist-replace
+        'install
+        (lambda* (#:key outputs inputs #:allow-other-keys #:rest args)
+         (let* ((install (assoc-ref %standard-phases 'install))
+                (out (assoc-ref outputs "out"))
+                (xpdfrc (string-append out "/etc/xpdfrc"))
+                (gs-fonts (assoc-ref inputs "gs-fonts")))
+               (apply install args)
+               (substitute* xpdfrc
+                (("/usr/local/share/ghostscript/fonts")
+                 (string-append gs-fonts "/share/fonts/type1/ghostscript"))
+                (("#fontFile") "fontFile"))))
+        %standard-phases)))
+   (synopsis "Viewer for pdf files based on the Motif toolkit.")
+   (description
+    "Xpdf is a viewer for Portable Document Format (PDF) files")
+   (license license:gpl3) ; or gpl2, but not gpl2+
+   (home-page "http://www.foolabs.com/xpdf/")))
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 624d228059..c677a1b7e2 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -63,6 +63,9 @@
                       (string-append "-Dloclibpth=" libc "/lib")))))
         %standard-phases)))
     (inputs `(("patch/no-sys-dirs" ,(search-patch "perl-no-sys-dirs.patch"))))
+    (native-search-paths (list (search-path-specification
+                                (variable "PERL5LIB")
+                                (directories '("lib/perl5/site_perl")))))
     (synopsis "Implementation of the Perl programming language")
     (description
      "Perl 5 is a highly capable, feature-rich programming language with over
diff --git a/gnu/packages/pkg-config.scm b/gnu/packages/pkg-config.scm
index 0910a410ee..294163b474 100644
--- a/gnu/packages/pkg-config.scm
+++ b/gnu/packages/pkg-config.scm
@@ -36,6 +36,11 @@
               "05wc5nwkqz7saj2v33ydmz1y6jdg659dll4jjh91n41m63gx0qsg"))))
    (build-system gnu-build-system)
    (arguments `(#:configure-flags '("--with-internal-glib")))
+   (native-search-paths
+    (list (search-path-specification
+           (variable "PKG_CONFIG_PATH")
+           (directories '("lib/pkgconfig" "lib64/pkgconfig"
+                          "share/pkgconfig")))))
    (home-page "http://www.freedesktop.org/wiki/Software/pkg-config")
    (license gpl2+)
    (synopsis "a helper tool used when compiling applications and
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 8b4515930e..4dff1b4475 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -67,6 +67,10 @@
        ("openssl" ,openssl)
        ("readline" ,readline)
        ("zlib" ,zlib)))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "PYTHONPATH")
+            (directories '("lib/python2.7/site-packages")))))
     (home-page "http://python.org")
     (synopsis
      "Python, a high-level dynamically-typed programming language")
diff --git a/gnu/packages/ratpoison.scm b/gnu/packages/ratpoison.scm
new file mode 100644
index 0000000000..30e6c224d6
--- /dev/null
+++ b/gnu/packages/ratpoison.scm
@@ -0,0 +1,71 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages ratpoison)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module ((guix licenses) #:select (gpl2+))
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages readline)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages fontutils))
+
+(define-public ratpoison
+  (package
+    (name "ratpoison")
+    (version "1.4.6")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://savannah/ratpoison/ratpoison-"
+                                 version ".tar.xz"))
+             (sha256
+              (base32
+               "0v4mh8d3vsh5xbbycfdl3g8zfygi1rkslh1x7k5hi1d05bfq3cdr"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("libXi" ,libxi)
+       ("readline" ,readline)
+       ("xextproto" ,xextproto)
+       ("libXtst" ,libxtst)
+       ("freetype" ,freetype)
+       ("fontconfig" ,fontconfig)
+       ("libXft" ,libxft)
+       ("libXpm" ,libxpm)
+       ("libXt" ,libxt)
+       ("inputproto" ,inputproto)
+       ("libX11" ,libx11)))
+    (home-page "http://www.nongnu.org/ratpoison/")
+    (synopsis "A simple mouse-free tiling window manager")
+    (description
+     "Ratpoison is a simple window manager with no fat library
+dependencies, no fancy graphics, no window decorations, and no
+rodent dependence.  It is largely modelled after GNU Screen which
+has done wonders in the virtual terminal market.
+
+The screen can be split into non-overlapping frames.  All windows
+are kept maximized inside their frames to take full advantage of
+your precious screen real estate.
+
+All interaction with the window manager is done through keystrokes.
+Ratpoison has a prefix map to minimize the key clobbering that
+cripples Emacs and other quality pieces of software.")
+    (license gpl2+)))
diff --git a/gnu/packages/texlive.scm b/gnu/packages/texlive.scm
index 8ea78de873..090d342054 100644
--- a/gnu/packages/texlive.scm
+++ b/gnu/packages/texlive.scm
@@ -33,6 +33,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages tcsh)
+  #:use-module (gnu packages xorg)
   #:use-module (gnu packages zip))
 
 (define texlive-extra-src
@@ -66,6 +67,8 @@
              ("icu4c" ,icu4c)
              ("ghostscript" ,ghostscript)
              ("libpng" ,libpng)
+             ("libxaw" ,libxaw)
+             ("libxt" ,libxt)
              ("perl" ,perl)
              ("poppler" ,poppler)
              ("pkg-config" ,pkg-config)
@@ -88,7 +91,6 @@
          ,(string-append "--datarootdir=" (assoc-ref %outputs "data"))
          ,(string-append "--infodir=" (assoc-ref %outputs "out") "/share/info")
          ,(string-append "--mandir=" (assoc-ref %outputs "out") "/share/man")
-         "--without-x" ; FIXME: Drop as soon as X is available.
          "--with-system-freetype2"
          ;; "--with-system-gd"
          ;; "--with-system-graphite"
diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm
index 0436c0d8c3..4daa2d8a87 100644
--- a/gnu/packages/wget.scm
+++ b/gnu/packages/wget.scm
@@ -43,13 +43,6 @@
      `(("gnutls" ,gnutls)
        ("perl" ,perl)
        ("gettext" ,guix:gettext)))
-    (arguments
-     '(#:phases
-       (alist-cons-before 'build 'patch-/usr/bin/env
-                          (lambda _
-                            (for-each patch-shebang
-                                      '("doc/texi2pod.pl" "tests/run-px")))
-                          %standard-phases)))
     (home-page "http://www.gnu.org/software/wget/")
     (synopsis "Non-interactive command-line utility for downloading files")
     (description
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index b5c40bef98..524614b23f 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -19,6 +19,7 @@
 
 (define-module (gnu packages xml)
   #:use-module (gnu packages)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
@@ -64,7 +65,21 @@ things the parser might find in the XML document (like start tags).")
     (home-page "http://www.xmlsoft.org/")
     (synopsis "libxml2, a C parser for XML")
     (inputs `(("perl" ,perl)
-              ("python" ,python)))
+              ("python" ,python)
+              ("zlib" ,zlib)))
+    (arguments
+     `(#:phases
+        (alist-replace
+         'install
+         (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
+          (let ((install (assoc-ref %standard-phases 'install))
+                (glibc (assoc-ref inputs "libc"))
+                (out (assoc-ref outputs "out")))
+            (apply install args)
+            (chdir "python")
+            (substitute* "setup.py" (("/opt/include") (string-append glibc "/include")))
+            (system* "python" "setup.py" "install" (string-append "--prefix=" out))))
+        %standard-phases)))
     (description
      "Libxml2 is the XML C parser and toolkit developed for the Gnome project
 (but it is usable outside of the Gnome platform).")
@@ -86,7 +101,19 @@ things the parser might find in the XML document (like start tags).")
     (synopsis "libxslt, a C library for applying XSLT stylesheets to XML documents")
     (inputs `(("libgcrypt" ,libgcrypt)
               ("libxml2" ,libxml2)
-              ("python" ,python)))
+              ("python" ,python)
+              ("zlib" ,zlib)))
+    (arguments
+      `(#:phases
+         (alist-replace
+          'configure
+          (lambda* (#:key inputs #:allow-other-keys #:rest args)
+            (let ((configure (assoc-ref %standard-phases 'configure))
+                  (libxml2 (assoc-ref inputs "libxml2")))
+              ;; FIXME: This should be done more centrally.
+              (setenv "PYTHONPATH" (string-append libxml2 "/lib/python2.7/site-packages"))
+              (apply configure args)))
+         %standard-phases)))
     (description
      "Libxslt is an XSLT C library developed for the GNOME project. It is
 based on libxml for XML parsing, tree manipulation and XPath support.")
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
new file mode 100644
index 0000000000..93e2da5d48
--- /dev/null
+++ b/gnu/packages/xorg.scm
@@ -0,0 +1,4869 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages xorg)
+  #:use-module ((guix licenses)
+                #:renamer (symbol-prefix-proc 'license:))
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages flex)
+  #:use-module (gnu packages fontutils)
+  #:use-module ((gnu packages gettext)
+                #:renamer (symbol-prefix-proc 'gnu:))
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gperf)
+  #:use-module (gnu packages libpng)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages m4)
+  #:use-module (gnu packages openssl)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages xml))
+
+
+
+;; packages outside the x.org system proper
+
+(define-public xeyes
+  (package
+    (name "xeyes")
+    (version "1.0.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "http://xeyes.sourcearchive.com/downloads/1.0.1/xeyes_"
+               version
+               ".orig.tar.gz"))
+        (sha256
+          (base32
+            "04c3md570j67g55h3bix1qbngcslnq91skli51k3g1avki88zkm9"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libxext" ,libxext)
+        ("libxmu" ,libxmu)
+        ("libxt" ,libxt)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://xeyes.sourcearchive.com/")
+    (synopsis "A follow the mouse X demo")
+    (description "Xeyes is a demo program for x.org. It shows eyes
+following the mouse.")
+    (license license:x11)))
+
+
+(define-public pixman
+  (package
+    (name "pixman")
+    (version "0.28.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "http://cairographics.org/releases/pixman-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32
+            "0mcvxd5gx3w1wzgph91l2vaiic91jmx7s01hi2igphyvd80ckyia"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libpng" ,libpng)
+        ("pkg-config" ,pkg-config)
+        ("zlib" ,zlib)))
+    (home-page "http://www.pixman.org/")
+    (synopsis "pixman, a low-level pixel manipulation library")
+    (description "Pixman is a low-level software library for pixel
+manipulation, providing features such as image compositing and trapezoid
+rasterisation.")
+    (license license:x11)))
+
+
+(define-public libdrm
+  (package
+    (name "libdrm")
+    (version "2.4.42")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "http://dri.freedesktop.org/libdrm/libdrm-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1qbnpi64hyqzd650hj6jki1d50pzypdhj3rw9m3whwbqly110rz0"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libpciaccess" ,libpciaccess)
+        ("libpthread-stubs" ,libpthread-stubs)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://dri.freedesktop.org/wiki/")
+    (synopsis "libdrm, direct rendering userspace library")
+    (description "The Direct Rendering Infrastructure, also known as the DRI,
+is a framework for allowing direct access to graphics hardware under the
+X Window System in a safe and efficient manner. It includes changes to the
+X server, to several client libraries, and to the kernel (DRM, Direct
+Rendering Manager). The most important use for the DRI is to create fast
+OpenGL implementations providing hardware acceleration for Mesa.
+Several 3D accelerated drivers have been written to the DRI specification,
+including drivers for chipsets produced by 3DFX, AMD (formerly ATI), Intel
+and Matrox.")
+    (license license:x11)))
+
+
+;; old version, required by old mesa, see
+;; http://www.mail-archive.com/nouveau@lists.freedesktop.org/msg10098.html
+(define-public libdrm-2.4.33
+  (package (inherit libdrm)
+    (version "2.4.33")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "http://dri.freedesktop.org/libdrm/libdrm-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1slgi61n4dlsfli47ql354fd1ppj7n40jd94wvnsdqx0mna9syrd"))))
+    (arguments
+      `(#:configure-flags
+         ;; create libdrm_nouveau.so, needed by mesa, see
+         ;; http://comments.gmane.org/gmane.linux.lfs.beyond.support/43261
+         `("--enable-nouveau-experimental-api")))))
+
+
+(define-public mtdev
+  (package
+    (name "mtdev")
+    (version "1.1.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "http://bitmath.org/code/mtdev/mtdev-"
+               version ".tar.bz2"))
+        (sha256
+          (base32
+            "159ndzwfpw0xr8mw4lhl47w9c2krshlfrscs7k6n186vknv2hk3d"))))
+    (build-system gnu-build-system)
+    (home-page "http://bitmath.org/code/mtdev/")
+    (synopsis "Multitouch protocol translation library")
+    (description "Mtdev is a stand-alone library which transforms all
+variants of kernel MT events to the slotted type B protocol.  The events
+put into mtdev may be from any MT device, specifically type A without
+contact tracking, type A with contact tracking, or type B with contact
+tracking.")
+    (license license:x11)))
+
+
+
+    ;; packages without propagated input
+;; (rationale for this separation: The packages in PROPAGATED_INPUTS need to
+;; be defined first, the split makes book-keeping easier.)
+
+
+;; compiles only on macos
+;; (define-public applewmproto
+;;   (package
+;;     (name "applewmproto")
+;;     (version "1.4.2")
+;;     (source
+;;       (origin
+;;         (method url-fetch)
+;;         (uri (string-append
+;;                "mirror://xorg/X11R7.7/src/everything/applewmproto-"
+;;                version
+;;                ".tar.bz2"))
+;;         (sha256
+;;           (base32
+;;             "1zi4p07mp6jmk030p4gmglwxcwp0lzs5mi31y1b4rp8lsqxdxizw"))))
+;;     (build-system gnu-build-system)
+;;     (inputs `(("pkg-config" ,pkg-config)))
+;;     (home-page "http://www.x.org/wiki/")
+;;     (synopsis "xorg implementation of the X Window System")
+;;     (description "X.org provides an implementation of the X Window System")
+;;     (license license:x11)))
+  
+  
+(define-public bdftopcf
+  (package
+    (name "bdftopcf")
+    (version "1.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/bdftopcf-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "02hx981f7jfwylxj21s91yvv4h597nqqzz3vd6ar81zyn84b944w"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libxfont" ,libxfont)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public bigreqsproto
+  (package
+    (name "bigreqsproto")
+    (version "1.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/bigreqsproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "07hvfm84scz8zjw14riiln2v4w03jlhp756ypwhq27g48jmic8a6"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public compositeproto
+  (package
+    (name "compositeproto")
+    (version "0.4.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/compositeproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1z0crmf669hirw4s7972mmp8xig80kfndja9h559haqbpvq5k4q4"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("fixesproto" ,fixesproto)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public damageproto
+  (package
+    (name "damageproto")
+    (version "1.2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/damageproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0nzwr5pv9hg7c21n995pdiv0zqhs91yz3r8rn3aska4ykcp12z2w"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public dmxproto
+  (package
+    (name "dmxproto")
+    (version "2.3.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/dmxproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "02b5x9dkgajizm8dqyx2w6hmqx3v25l67mgf35nj6sz0lgk52877"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public dri2proto
+  (package
+    (name "dri2proto")
+    (version "2.6")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/dri2proto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "02drlfqvjm2q7dvkkwli3fs2crb6rdb3kyd13vwx7z0rijrc10md"))))
+    (build-system gnu-build-system)
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public encodings
+  (package
+    (name "encodings")
+    (version "1.0.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/encodings-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0ffmaw80vmfwdgvdkp6495xgsqszb6s0iira5j0j6pd4i0lk3mnf"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("mkfontscale" ,mkfontscale)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:public-domain)))
+
+
+(define-public font-adobe100dpi
+  (package
+    (name "font-adobe100dpi")
+    (version "1.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/font-adobe-100dpi-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0m60f5bd0caambrk8ksknb5dks7wzsg7g7xaf0j21jxmx8rq9h5j"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("bdftopcf" ,bdftopcf)
+        ("font-util", font-util)
+        ("mkfontdir" ,mkfontdir)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public font-adobe75dpi
+  (package
+    (name "font-adobe75dpi")
+    (version "1.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/font-adobe-75dpi-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "02advcv9lyxpvrjv8bjh1b797lzg6jvhipclz49z8r8y98g4l0n6"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("bdftopcf" ,bdftopcf)
+        ("font-util", font-util)
+        ("mkfontdir" ,mkfontdir)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+;; (define-public font-adobe-utopia100dpi
+;;   (package
+;;     (name "font-adobe-utopia100dpi")
+;;     (version "1.0.4")
+;;     (source
+;;       (origin
+;;         (method url-fetch)
+;;         (uri (string-append
+;;                "mirror://xorg/X11R7.7/src/everything/font-adobe-utopia-100dpi-"
+;;                version
+;;                ".tar.bz2"))
+;;         (sha256
+;;           (base32
+;;             "19dd9znam1ah72jmdh7i6ny2ss2r6m21z9v0l43xvikw48zmwvyi"))))
+;;     (build-system gnu-build-system)
+;;     (home-page "http://www.x.org/wiki/")
+;;     (synopsis "xorg implementation of the X Window System")
+;;     (description "X.org provides an implementation of the X Window System")
+;;     (license non-free)))
+;; 
+;; 
+;; (define-public font-adobe-utopia75dpi
+;;   (package
+;;     (name "font-adobe-utopia75dpi")
+;;     (version "1.0.4")
+;;     (source
+;;       (origin
+;;         (method url-fetch)
+;;         (uri (string-append
+;;                "mirror://xorg/X11R7.7/src/everything/font-adobe-utopia-75dpi-"
+;;                version
+;;                ".tar.bz2"))
+;;         (sha256
+;;           (base32
+;;             "152wigpph5wvl4k9m3l4mchxxisgsnzlx033mn5iqrpkc6f72cl7"))))
+;;     (build-system gnu-build-system)
+;;     (home-page "http://www.x.org/wiki/")
+;;     (synopsis "xorg implementation of the X Window System")
+;;     (description "X.org provides an implementation of the X Window System")
+;;     (license non-free)))
+;; 
+;; 
+;; (define-public font-adobe-utopia-type1
+;;   (package
+;;     (name "font-adobe-utopia-type1")
+;;     (version "1.0.4")
+;;     (source
+;;       (origin
+;;         (method url-fetch)
+;;         (uri (string-append
+;;                "mirror://xorg/X11R7.7/src/everything/font-adobe-utopia-type1-"
+;;                version
+;;                ".tar.bz2"))
+;;         (sha256
+;;           (base32
+;;             "0xw0pdnzj5jljsbbhakc6q9ha2qnca1jr81zk7w70yl9bw83b54p"))))
+;;     (build-system gnu-build-system)
+;;     (home-page "http://www.x.org/wiki/")
+;;     (synopsis "xorg implementation of the X Window System")
+;;     (description "X.org provides an implementation of the X Window System")
+;;     (license non-free)))
+
+
+(define-public font-alias
+  (package
+    (name "font-alias")
+    (version "1.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/font-alias-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "16ic8wfwwr3jicaml7b5a0sk6plcgc1kg84w02881yhwmqm3nicb"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public font-arabic-misc
+  (package
+    (name "font-arabic-misc")
+    (version "1.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/font-arabic-misc-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1x246dfnxnmflzf0qzy62k8jdpkb6jkgspcjgbk8jcq9lw99npah"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("mkfontdir" ,mkfontdir)
+        ("bdftopcf" ,bdftopcf)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+;; (define-public font-bh100dpi
+;;   (package
+;;     (name "font-bh100dpi")
+;;     (version "1.0.3")
+;;     (source
+;;       (origin
+;;         (method url-fetch)
+;;         (uri (string-append
+;;                "mirror://xorg/X11R7.7/src/everything/font-bh-100dpi-"
+;;                version
+;;                ".tar.bz2"))
+;;         (sha256
+;;           (base32
+;;             "10cl4gm38dw68jzln99ijix730y7cbx8np096gmpjjwff1i73h13"))))
+;;     (build-system gnu-build-system)
+;;     (home-page "http://www.x.org/wiki/")
+;;     (synopsis "xorg implementation of the X Window System")
+;;     (description "X.org provides an implementation of the X Window System")
+;;     (license non-free)))
+;; 
+;; 
+;; (define-public font-bh75dpi
+;;   (package
+;;     (name "font-bh75dpi")
+;;     (version "1.0.3")
+;;     (source
+;;       (origin
+;;         (method url-fetch)
+;;         (uri (string-append
+;;                "mirror://xorg/X11R7.7/src/everything/font-bh-75dpi-"
+;;                version
+;;                ".tar.bz2"))
+;;         (sha256
+;;           (base32
+;;             "073jmhf0sr2j1l8da97pzsqj805f7mf9r2gy92j4diljmi8sm1il"))))
+;;     (build-system gnu-build-system)
+;;     (home-page "http://www.x.org/wiki/")
+;;     (synopsis "xorg implementation of the X Window System")
+;;     (description "X.org provides an implementation of the X Window System")
+;;     (license non-free)))
+;; 
+;; 
+;; (define-public font-bh-lucidatypewriter100dpi
+;;   (package
+;;     (name "font-bh-lucidatypewriter100dpi")
+;;     (version "1.0.3")
+;;     (source
+;;       (origin
+;;         (method url-fetch)
+;;         (uri (string-append
+;;                "mirror://xorg/X11R7.7/src/everything/font-bh-lucidatypewriter-100dpi-"
+;;                version
+;;                ".tar.bz2"))
+;;         (sha256
+;;           (base32
+;;             "1fqzckxdzjv4802iad2fdrkpaxl4w0hhs9lxlkyraq2kq9ik7a32"))))
+;;     (build-system gnu-build-system)
+;;     (home-page "http://www.x.org/wiki/")
+;;     (synopsis "xorg implementation of the X Window System")
+;;     (description "X.org provides an implementation of the X Window System")
+;;     (license non-free)))
+;; 
+;; 
+;; (define-public font-bh-lucidatypewriter75dpi
+;;   (package
+;;     (name "font-bh-lucidatypewriter75dpi")
+;;     (version "1.0.3")
+;;     (source
+;;       (origin
+;;         (method url-fetch)
+;;         (uri (string-append
+;;                "mirror://xorg/X11R7.7/src/everything/font-bh-lucidatypewriter-75dpi-"
+;;                version
+;;                ".tar.bz2"))
+;;         (sha256
+;;           (base32
+;;             "0cfbxdp5m12cm7jsh3my0lym9328cgm7fa9faz2hqj05wbxnmhaa"))))
+;;     (build-system gnu-build-system)
+;;     (home-page "http://www.x.org/wiki/")
+;;     (synopsis "xorg implementation of the X Window System")
+;;     (description "X.org provides an implementation of the X Window System")
+;;     (license non-free)))
+;; 
+;; 
+;; (define-public font-bh-type1
+;;   (package
+;;     (name "font-bh-type1")
+;;     (version "1.0.3")
+;;     (source
+;;       (origin
+;;         (method url-fetch)
+;;         (uri (string-append
+;;                "mirror://xorg/X11R7.7/src/everything/font-bh-ttf-"
+;;                version
+;;                ".tar.bz2"))
+;;         (sha256
+;;           (base32
+;;             "0pyjmc0ha288d4i4j0si4dh3ncf3jiwwjljvddrb0k8v4xiyljqv"))))
+;;     (build-system gnu-build-system)
+;;     (inputs
+;;       `(("mkfontscale" ,mkfontscale)
+;;         ("mkfontdir" ,mkfontdir)
+;;         ("pkg-config" ,pkg-config)))
+;;     (home-page "http://www.x.org/wiki/")
+;;     (synopsis "xorg implementation of the X Window System")
+;;     (description "X.org provides an implementation of the X Window System")
+;;     (license non-free)))
+;;
+;;
+;; (define-public font-bitstream100dpi
+;;   (package
+;;     (name "font-bitstream100dpi")
+;;     (version "1.0.3")
+;;     (source
+;;       (origin
+;;         (method url-fetch)
+;;         (uri (string-append
+;;                "mirror://xorg/X11R7.7/src/everything/font-bh-ttf-"
+;;                version
+;;                ".tar.bz2"))
+;;         (sha256
+;;           (base32
+;;             "0pyjmc0ha288d4i4j0si4dh3ncf3jiwwjljvddrb0k8v4xiyljqv"))))
+;;     (build-system gnu-build-system)
+;;     (inputs
+;;       `(("mkfontscale" ,mkfontscale)
+;;         ("mkfontdir" ,mkfontdir)
+;;         ("pkg-config" ,pkg-config)))
+;;     (home-page "http://www.x.org/wiki/")
+;;     (synopsis "xorg implementation of the X Window System")
+;;     (description "X.org provides an implementation of the X Window System")
+;;     (license non-free)))
+;;
+;;
+;; (define-public font-bitstream75dpi
+;;   (package
+;;     (name "font-bitstream75dpi")
+;;     (version "1.0.3")
+;;     (source
+;;       (origin
+;;         (method url-fetch)
+;;         (uri (string-append
+;;                "mirror://xorg/X11R7.7/src/everything/font-bh-ttf-"
+;;                version
+;;                ".tar.bz2"))
+;;         (sha256
+;;           (base32
+;;             "0pyjmc0ha288d4i4j0si4dh3ncf3jiwwjljvddrb0k8v4xiyljqv"))))
+;;     (build-system gnu-build-system)
+;;     (inputs
+;;       `(("mkfontscale" ,mkfontscale)
+;;         ("mkfontdir" ,mkfontdir)
+;;         ("pkg-config" ,pkg-config)))
+;;     (home-page "http://www.x.org/wiki/")
+;;     (synopsis "xorg implementation of the X Window System")
+;;     (description "X.org provides an implementation of the X Window System")
+;;     (license non-free)))
+
+
+(define-public font-bitstream-type1
+  (package
+    (name "font-bitstream-type1")
+    (version "1.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/font-bh-ttf-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0pyjmc0ha288d4i4j0si4dh3ncf3jiwwjljvddrb0k8v4xiyljqv"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("mkfontdir" ,mkfontdir)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public font-cronyx-cyrillic
+  (package
+    (name "font-cronyx-cyrillic")
+    (version "1.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/font-cronyx-cyrillic-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0ai1v4n61k8j9x2a1knvfbl2xjxk3xxmqaq3p9vpqrspc69k31kf"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("mkfontdir" ,mkfontdir)
+        ("bdftopcf" ,bdftopcf)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+;; (define-public font-cursor-misc
+;;   (package
+;;     (name "font-cursor-misc")
+;;     (version "1.0.3")
+;;     (source
+;;       (origin
+;;         (method url-fetch)
+;;         (uri (string-append
+;;                "mirror://xorg/X11R7.7/src/everything/font-cursor-misc-"
+;;                version
+;;                ".tar.bz2"))
+;;         (sha256
+;;           (base32
+;;             "0dd6vfiagjc4zmvlskrbjz85jfqhf060cpys8j0y1qpcbsrkwdhp"))))
+;;     (build-system gnu-build-system)
+;;     (inputs
+;;       `(("mkfontscale" ,mkfontscale)
+;;         ("mkfontdir" ,mkfontdir)
+;;         ("bdftopcf" ,bdftopcf)
+;;         ("pkg-config" ,pkg-config)))
+;;     (home-page "http://www.x.org/wiki/")
+;;     (synopsis "xorg implementation of the X Window System")
+;;     (description "X.org provides an implementation of the X Window System")
+;;     (license none)))
+;; 
+;; 
+;; (define-public font-daewoo-misc
+;;   (package
+;;     (name "font-daewoo-misc")
+;;     (version "1.0.3")
+;;     (source
+;;       (origin
+;;         (method url-fetch)
+;;         (uri (string-append
+;;                "mirror://xorg/X11R7.7/src/everything/font-daewoo-misc-"
+;;                version
+;;                ".tar.bz2"))
+;;         (sha256
+;;           (base32
+;;             "1s2bbhizzgbbbn5wqs3vw53n619cclxksljvm759h9p1prqdwrdw"))))
+;;     (build-system gnu-build-system)
+;;     (inputs
+;;       `(("mkfontdir" ,mkfontdir)
+;;         ("bdftopcf" ,bdftopcf)
+;;         ("pkg-config" ,pkg-config)))
+;;     (home-page "http://www.x.org/wiki/")
+;;     (synopsis "xorg implementation of the X Window System")
+;;     (description "X.org provides an implementation of the X Window System")
+;;     (license non-free)))
+
+
+(define-public font-dec-misc
+  (package
+    (name "font-dec-misc")
+    (version "1.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/font-dec-misc-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0yzza0l4zwyy7accr1s8ab7fjqkpwggqydbm2vc19scdby5xz7g1"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("mkfontdir" ,mkfontdir)
+        ("bdftopcf" ,bdftopcf)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+;; (define-public font-ibm-type1
+;;   (package
+;;     (name "font-ibm-type1")
+;;     (version "1.0.3")
+;;     (source
+;;       (origin
+;;         (method url-fetch)
+;;         (uri (string-append
+;;                "mirror://xorg/X11R7.7/src/everything/font-cronyx-cyrillic-"
+;;                version
+;;                ".tar.bz2"))
+;;         (sha256
+;;           (base32
+;;             "1pyjll4adch3z5cg663s6vhi02k8m6488f0mrasg81ssvg9jinzx"))))
+;;     (build-system gnu-build-system)
+;;     (inputs
+;;       `(("mkfontdir" ,mkfontdir)
+;;         ("bdftopcf" ,bdftopcf)
+;;         ("pkg-config" ,pkg-config)))
+;;     (home-page "http://www.x.org/wiki/")
+;;     (synopsis "xorg implementation of the X Window System")
+;;     (description "X.org provides an implementation of the X Window System")
+;;     (license non-free)))
+
+
+(define-public font-isas-misc
+  (package
+    (name "font-isas-misc")
+    (version "1.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/font-isas-misc-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0rx8q02rkx673a7skkpnvfkg28i8gmqzgf25s9yi0lar915sn92q"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("mkfontdir" ,mkfontdir)
+        ("bdftopcf" ,bdftopcf)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+;; (define-public font-jis-misc
+;;   (package
+;;     (name "font-jis-misc")
+;;     (version "1.0.3")
+;;     (source
+;;       (origin
+;;         (method url-fetch)
+;;         (uri (string-append
+;;                "mirror://xorg/X11R7.7/src/everything/font-jis-misc-"
+;;                version
+;;                ".tar.bz2"))
+;;         (sha256
+;;           (base32
+;;             "0rdc3xdz12pnv951538q6wilx8mrdndpkphpbblszsv7nc8cw61b"))))
+;;     (build-system gnu-build-system)
+;;     (inputs
+;;       `(("mkfontdir" ,mkfontdir)
+;;         ("bdftopcf" ,bdftopcf)
+;;         ("pkg-config" ,pkg-config)))
+;;     (home-page "http://www.x.org/wiki/")
+;;     (synopsis "xorg implementation of the X Window System")
+;;     (description "X.org provides an implementation of the X Window System")
+;;     (license non-free)))
+
+
+(define-public font-micro-misc
+  (package
+    (name "font-micro-misc")
+    (version "1.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/font-micro-misc-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1dldxlh54zq1yzfnrh83j5vm0k4ijprrs5yl18gm3n9j1z0q2cws"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("mkfontdir" ,mkfontdir)
+        ("bdftopcf" ,bdftopcf)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:public-domain)))
+
+
+(define-public font-misc-cyrillic
+  (package
+    (name "font-misc-cyrillic")
+    (version "1.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/font-misc-cyrillic-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0q2ybxs8wvylvw95j6x9i800rismsmx4b587alwbfqiw6biy63z4"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("mkfontdir" ,mkfontdir)
+        ("bdftopcf" ,bdftopcf)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public font-misc-ethiopic
+  (package
+    (name "font-misc-ethiopic")
+    (version "1.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/font-misc-ethiopic-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "19cq7iq0pfad0nc2v28n681fdq3fcw1l1hzaq0wpkgpx7bc1zjsk"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("mkfontdir" ,mkfontdir)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+;; (define-public font-misc-meltho
+;;   (package
+;;     (name "font-misc-meltho")
+;;     (version "1.0.3")
+;;     (source
+;;       (origin
+;;         (method url-fetch)
+;;         (uri (string-append
+;;                "mirror://xorg/X11R7.7/src/everything/font-misc-meltho-"
+;;                version
+;;                ".tar.bz2"))
+;;         (sha256
+;;           (base32
+;;             "148793fqwzrc3bmh2vlw5fdiwjc2n7vs25cic35gfp452czk489p"))))
+;;     (build-system gnu-build-system)
+;;     (inputs
+;;       `(("mkfontscale" ,mkfontscale)
+;;         ("mkfontdir" ,mkfontdir)
+;;         ("pkg-config" ,pkg-config)))
+;;     (home-page "http://www.x.org/wiki/")
+;;     (synopsis "xorg implementation of the X Window System")
+;;     (description "X.org provides an implementation of the X Window System")
+;;     (license non-free)))
+
+
+(define-public font-misc-misc
+  (package
+    (name "font-misc-misc")
+    (version "1.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/font-misc-misc-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "150pq6n8n984fah34n3k133kggn9v0c5k07igv29sxp1wi07krxq"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("mkfontdir" ,mkfontdir)
+        ("font-util" ,font-util)
+        ("bdftopcf" ,bdftopcf)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:public-domain)))
+
+
+(define-public font-mutt-misc
+  (package
+    (name "font-mutt-misc")
+    (version "1.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/font-mutt-misc-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "13qghgr1zzpv64m0p42195k1kc77pksiv059fdvijz1n6kdplpxx"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("mkfontdir" ,mkfontdir)
+        ("bdftopcf" ,bdftopcf)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public font-schumacher-misc
+  (package
+    (name "font-schumacher-misc")
+    (version "1.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/font-schumacher-misc-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0nkym3n48b4v36y4s927bbkjnsmicajarnf6vlp7wxp0as304i74"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("mkfontdir" ,mkfontdir)
+        ("font-util" ,font-util)
+        ("bdftopcf" ,bdftopcf)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public font-screen-cyrillic
+  (package
+    (name "font-screen-cyrillic")
+    (version "1.0.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/font-screen-cyrillic-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0yayf1qlv7irf58nngddz2f1q04qkpr5jwp4aja2j5gyvzl32hl2"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("mkfontdir" ,mkfontdir)
+        ("bdftopcf" ,bdftopcf)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public font-sony-misc
+  (package
+    (name "font-sony-misc")
+    (version "1.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/font-sony-misc-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1xfgcx4gsgik5mkgkca31fj3w72jw9iw76qyrajrsz1lp8ka6hr0"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("mkfontdir" ,mkfontdir)
+        ("bdftopcf" ,bdftopcf)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public font-sun-misc
+  (package
+    (name "font-sun-misc")
+    (version "1.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/font-sun-misc-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1q6jcqrffg9q5f5raivzwx9ffvf7r11g6g0b125na1bhpz5ly7s8"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("mkfontdir" ,mkfontdir)
+        ("bdftopcf" ,bdftopcf)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public font-util
+  (package
+    (name "font-util")
+    (version "1.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/font-util-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "15cijajwhjzpy3ydc817zz8x5z4gbkyv3fps687jbq544mbfbafz"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public font-winitzki-cyrillic
+  (package
+    (name "font-winitzki-cyrillic")
+    (version "1.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/font-winitzki-cyrillic-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "181n1bgq8vxfxqicmy1jpm1hnr6gwn1kdhl6hr4frjigs1ikpldb"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("mkfontdir" ,mkfontdir)
+        ("bdftopcf" ,bdftopcf)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:public-domain)))
+
+
+(define-public font-xfree86-type1
+  (package
+    (name "font-xfree86-type1")
+    (version "1.0.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/font-xfree86-type1-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0jp3zc0qfdaqfkgzrb44vi9vi0a8ygb35wp082yz7rvvxhmg9sya"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("mkfontdir" ,mkfontdir)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public fontsproto
+  (package
+    (name "fontsproto")
+    (version "2.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/fontsproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1ab8mbqxdwvdz4k5x4xb9c4n5w7i1xw276cbpk4z7a1nlpjrg746"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public glproto
+  (package
+    (name "glproto")
+    (version "1.4.15")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/glproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0wf1vq9g4pyzahb23ywx554pm5bpax49lz188fk6m5p8wbmmc0wr"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public iceauth
+  (package
+    (name "iceauth")
+    (version "1.0.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/iceauth-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1aq6v671s2x5rc6zn0rgxb4wddg4vq94mckw3cpwl7ccrjjvd5hl"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libice" ,libice)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public inputproto
+  (package
+    (name "inputproto")
+    (version "2.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/inputproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1c5wqamfsd8g5i8kya5pjfmcac8q5zq1l3vclh6p96f24nmicxfy"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public kbproto
+  (package
+    (name "kbproto")
+    (version "1.0.6")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/kbproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0yal11hhpiisy3w8wmacsdzzzcnc3xwnswxz8k7zri40xc5aqz03"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+;; requires applewmproto, which compiles only on macos
+;; (define-public libapplewm
+;;   (package
+;;     (name "libapplewm")
+;;     (version "1.4.1")
+;;     (source
+;;       (origin
+;;         (method url-fetch)
+;;         (uri (string-append
+;;                "mirror://xorg/X11R7.7/src/everything/libAppleWM-"
+;;                version
+;;                ".tar.bz2"))
+;;         (sha256
+;;           (base32
+;;             "0r8x28n45q89x91mz8mv0zkkcxi8wazkac886fyvflhiv2y8ap2y"))))
+;;     (build-system gnu-build-system)
+;;     (inputs
+;;       `(("xextproto" ,xextproto)
+;;         ("libxext" ,libxext)
+;;         ("libx11" ,libx11)
+;;         ("applewmproto" ,applewmproto)
+;;         ("pkg-config" ,pkg-config)))
+;;     (home-page "http://www.x.org/wiki/")
+;;     (synopsis "xorg implementation of the X Window System")
+;;     (description "X.org provides an implementation of the X Window System")
+;;     (license license:x11)))
+
+
+(define-public libdmx
+  (package
+    (name "libdmx")
+    (version "1.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libdmx-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1fiq73sfxcbyjval118ialwrzxhzb08xsxmg69adcs47i9j0p1x7"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("xextproto" ,xextproto)
+        ("libxext" ,libxext)
+        ("libx11" ,libx11)
+        ("dmxproto" ,dmxproto)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libfontenc
+  (package
+    (name "libfontenc")
+    (version "1.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libfontenc-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0zq1483xy31sssq0h3xxf8y1v4q14cp8rv164ayn7fsn30pq2wny"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("zlib" ,zlib)
+        ("xproto" ,xproto)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libfs
+  (package
+    (name "libfs")
+    (version "1.0.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libFS-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "05c3bqgn5m7j4kx8wvy0p36faq6f9jv5yq12m6033m4lflg7cwvh"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("xtrans" ,xtrans)
+        ("xproto" ,xproto)
+        ("fontsproto" ,fontsproto)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libpciaccess
+  (package
+    (name "libpciaccess")
+    (version "0.13.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libpciaccess-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "11509lkgd5j4g5wy0g13z4sf31h50hqx3jfwb2i4q6k98pv6iar7"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("zlib" ,zlib) ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libpthread-stubs
+  (package
+    (name "libpthread-stubs")
+    (version "0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "http://xcb.freedesktop.org/dist/libpthread-stubs-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "16bjv3in19l84hbri41iayvvg4ls9gv1ma0x0qlbmwy67i7dbdim"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libsm
+  (package
+    (name "libsm")
+    (version "1.2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libSM-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "07bzi6xwlhq36f60qfspjbz0qjj7zcgayi1vp4ihgx34kib1vhck"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("xtrans" ,xtrans)
+        ("util-linux" ,util-linux)
+        ("libice" ,libice)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libwindowswm
+  (package
+    (name "libwindowswm")
+    (version "1.0.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libWindowsWM-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1p0flwb67xawyv6yhri9w17m1i4lji5qnd0gq8v1vsfb8zw7rw15"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("xextproto" ,xextproto)
+        ("libxext" ,libxext)
+        ("libx11" ,libx11)
+        ("windowswmproto" ,windowswmproto)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libxcomposite
+  (package
+    (name "libxcomposite")
+    (version "0.4.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXcomposite-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1b8sniijb85v4my6v30ma9yqnwl4hkclci9l1hqxnipfyhl4sa9j"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("xproto" ,xproto)
+        ("libxfixes" ,libxfixes)
+        ("libx11" ,libx11)
+        ("compositeproto" ,compositeproto)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libxdmcp
+  (package
+    (name "libxdmcp")
+    (version "1.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXdmcp-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "13highx4xpgkiwykpcl7z2laslrjc4pzi4h617ny9p7r6116vkls"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("xproto" ,xproto) ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libxft
+  (package
+    (name "libxft")
+    (version "2.3.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXft-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1gdv6559cdz1lfw73x7wsvax1fkvphmayrymprljhyyb5nwk5kkz"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libx11" ,libx11)
+        ("xproto" ,xproto)
+        ("libxrender" ,libxrender)
+        ("xproto" ,xproto)
+        ("libx11" ,libx11)
+        ("freetype" ,freetype)
+        ("fontconfig" ,fontconfig)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libxkbfile
+  (package
+    (name "libxkbfile")
+    (version "1.0.8")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libxkbfile-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0flg5arw6n3njagmsi4i4l0zl5bfx866a1h9ydc3bi1pqlclxaca"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libxmu
+  (package
+    (name "libxmu")
+    (version "1.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXmu-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1pbym8rrznxqd60zwf7w4xpf27sa72bky2knginqcfnca32q343h"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libxt" ,libxt)
+        ("xproto" ,xproto)
+        ("libxext" ,libxext)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libxpm
+  (package
+    (name "libxpm")
+    (version "3.5.10")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXpm-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0dd737ch4q9gr151wff1m3q2j7wf3pip4y81601xdrsh8wipxnx6"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("gettext" ,gnu:gettext)
+        ("libxt" ,libxt)
+        ("xproto" ,xproto)
+        ("libxext" ,libxext)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libxres
+  (package
+    (name "libxres")
+    (version "1.0.6")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXres-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1478pm70gdi6l70r4jpkyyg2am9wv6xh53z9ibwq5cg84p4n31pz"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("xproto" ,xproto)
+        ("libxext" ,libxext)
+        ("libx11" ,libx11)
+        ("resourceproto" ,resourceproto)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libxscrnsaver
+  (package
+    (name "libxscrnsaver")
+    (version "1.2.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXScrnSaver-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "07ff4r20nkkrj7h08f9fwamds9b3imj8jz5iz6y38zqw6jkyzwcg"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libxext" ,libxext)
+        ("libx11" ,libx11)
+        ("scrnsaverproto" ,scrnsaverproto)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libxxf86dga
+  (package
+    (name "libxxf86dga")
+    (version "1.1.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXxf86dga-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "15291ddhyr54sribwbg8hxx2psgzm5gh0pgkw5yrf3zgvdsa67sm"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libx11" ,libx11)
+        ("libxext" ,libxext)
+        ("pkg-config" ,pkg-config)
+        ("xf86dgaproto" ,xf86dgaproto)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public luit
+  (package
+    (name "luit")
+    (version "1.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/luit-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0dn694mk56x6hdk6y9ylx4f128h5jcin278gnw2gb807rf3ygc1h"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libfontenc" ,libfontenc)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public makedepend
+  (package
+    (name "makedepend")
+    (version "1.0.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/makedepend-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1zpp2b9dfvlnfj2i1mzdyn785rpl7vih5lap7kcpiv80xspbhmmb"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("xproto" ,xproto) ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public mkfontscale
+  (package
+    (name "mkfontscale")
+    (version "1.1.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/mkfontscale-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1539h3ws66vcql6sf2831bcs0r4d9b05lcgpswkw33lvcxighmff"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("zlib" ,zlib)
+        ("xproto" ,xproto)
+        ("freetype" ,freetype)
+        ("libfontenc" ,libfontenc)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+;; The package is missing from X11R7.7.
+(define-public printproto
+  (package
+    (name "printproto")
+    (version "1.0.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/individual/proto/printproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "06liap8n4s25sgp27d371cc7yg9a08dxcr3pmdjp761vyin3360j"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public randrproto
+  (package
+    (name "randrproto")
+    (version "1.3.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/randrproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0wfwcq85wbm0g5r0snc7prgki1wi3kxrxhcxinyr54n45ihh03fr"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public recordproto
+  (package
+    (name "recordproto")
+    (version "1.14.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/recordproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0w3kgr1zabwf79bpc28dcnj0fpni6r53rpi82ngjbalj5s6m8xx7"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public renderproto
+  (package
+    (name "renderproto")
+    (version "0.11.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/renderproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0dr5xw6s0qmqg0q5pdkb4jkdhaja0vbfqla79qh5j1xjj9dmlwq6"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public resourceproto
+  (package
+    (name "resourceproto")
+    (version "1.2.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/resourceproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0638iyfiiyjw1hg3139pai0j6m65gkskrvd9684zgc6ydcx00riw"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public scrnsaverproto
+  (package
+    (name "scrnsaverproto")
+    (version "1.2.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/scrnsaverproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0rfdbfwd35d761xkfifcscx56q0n56043ixlmv70r4v4l66hmdwb"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public sessreg
+  (package
+    (name "sessreg")
+    (version "1.0.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/sessreg-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0lifgjxdvc6lwyjk90slddnr12fsv88ldy6qhklr5av409cfwd47"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("xproto" ,xproto) ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public setxkbmap
+  (package
+    (name "setxkbmap")
+    (version "1.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/setxkbmap-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1inygpvlgc6vr5h9laxw9lnvafnccl3fy0g5n9ll28iq3yfmqc1x"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libxkbfile" ,libxkbfile)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public smproxy
+  (package
+    (name "smproxy")
+    (version "1.0.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/smproxy-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "02fn5wa1gs2jap6sr9j9yk6zsvz82j8l61pf74iyqwa99q4wnb67"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libxt" ,libxt)
+        ("libxmu" ,libxmu)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public util-macros
+  (package
+    (name "util-macros")
+    (version "1.17")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/util-macros-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1vbmrcn5n3wp4pyw0n4c3pyvzlc4yf7jzgngavfdq5zwfbgfsybx"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public videoproto
+  (package
+    (name "videoproto")
+    (version "2.3.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/videoproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0nk3i6gwkqq1w8zwn7bxz344pi1dwcjrmf6hr330h7hxjcj6viry"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public windowswmproto
+  (package
+    (name "windowswmproto")
+    (version "1.0.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/windowswmproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0syjxgy4m8l94qrm03nvn5k6bkxc8knnlld1gbllym97nvnv0ny0"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public x11perf
+  (package
+    (name "x11perf")
+    (version "1.5.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/x11perf-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "111iwpxhnxjiq44w96zf0kszg5zpgv1g3ayx18v4nhdzl9bqivi4"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libx11" ,libx11)
+        ("libxft" ,libxft)
+        ("libxmu" ,libxmu)
+        ("libxrender" ,libxrender)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xauth
+  (package
+    (name "xauth")
+    (version "1.0.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xauth-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1382wdfiakgckbw1xxavzh1nm34q21b1zzy96qp7ws66xc48rxw4"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libxmu" ,libxmu)
+        ("libxext" ,libxext)
+        ("libxau" ,libxau)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xbacklight
+  (package
+    (name "xbacklight")
+    (version "1.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xbacklight-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "02b5jfys2msla2yvg5s0knzyxg2104r25czkwd49i8g8kp804bxg"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libx11" ,libx11)
+        ("libxrandr" ,libxrandr)
+        ("libxrender" ,libxrender)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xbitmaps
+  (package
+    (name "xbitmaps")
+    (version "1.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xbitmaps-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "178ym90kwidia6nas4qr5n5yqh698vv8r02js0r4vg3b6lsb0w9n"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xcb-proto
+  (package
+    (name "xcb-proto")
+    (version "1.7.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "http://xcb.freedesktop.org/dist/xcb-proto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0ds4qg6slidrzyz6q9ckq0a19hn6blzpnvciy4brh741gn49jpdd"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("pkg-config" ,pkg-config) ("python" ,python)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xcmiscproto
+  (package
+    (name "xcmiscproto")
+    (version "1.2.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xcmiscproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1pyjv45wivnwap2wvsbrzdvjc5ql8bakkbkrvcv6q9bjjf33ccmi"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xcmsdb
+  (package
+    (name "xcmsdb")
+    (version "1.0.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xcmsdb-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "03ms731l3kvaldq7ycbd30j6134b61i3gbll4b2gl022wyzbjq74"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xcursor-themes
+  (package
+    (name "xcursor-themes")
+    (version "1.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xcursor-themes-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1is4bak0qkkhv63mfa5l7492r475586y52yzfxyv3psppn662ilr"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libxcursor" ,libxcursor)
+        ("pkg-config" ,pkg-config)
+        ("xcursorgen" ,xcursorgen)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xcursorgen
+  (package
+    (name "xcursorgen")
+    (version "1.0.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xcursorgen-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "10f5wk1326mm45gvgpf4m2p0j80fcd0i4c52zikahb91zah72wdw"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libxcursor" ,libxcursor)
+        ("libpng" ,libpng)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xdpyinfo
+  (package
+    (name "xdpyinfo")
+    (version "1.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xdpyinfo-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0gypsvpmay3lsh3b1dg29pjxv95pkrr21d4w6ys02mrbld24kvi3"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("inputproto" ,inputproto)
+        ("libx11" ,libx11)
+        ("libxxf86vm" ,libxxf86vm)
+        ("libxxf86dga" ,libxxf86dga)
+        ("libxtst" ,libxtst)
+        ("libxrender" ,libxrender)
+        ("libxinerama" ,libxinerama)
+        ("libxi" ,libxi)
+        ("libxcomposite" ,libxcomposite)
+        ("libdmx" ,libdmx)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xdriinfo
+  (package
+    (name "xdriinfo")
+    (version "1.0.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xdriinfo-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "076bjix941znyjmh3j5jjsnhp2gv2iq53d0ks29mvvv87cyy9iim"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("mesa" ,mesa)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xev
+  (package
+    (name "xev")
+    (version "1.2.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xev-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "13xk5z7vy87rnn4574z0jfzymdivyc7pl4axim81sx0pmdysg1ip"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libxrender" ,libxrender)
+        ("libxrandr" ,libxrandr)
+        ("xproto" ,xproto)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xextproto
+  (package
+    (name "xextproto")
+    (version "7.2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xextproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "06kdanbnprxvgl56l5h0lqj4b0f1fbb1ndha33mv5wvy802v2lvw"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-input-evdev
+  (package
+    (name "xf86-input-evdev")
+    (version "2.7.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-input-evdev-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1ivf5n821chckrgp89mpb18zi00v1hyrkc1hr82q0x6g1kpgxq9y"))))
+    (build-system gnu-build-system)
+    ;; FIXME: Add required input udev once it is available.
+    (inputs `(("pkg-config" ,pkg-config)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+;; FIXME: Tries to install file joystick-properties.h into ...--xorg-server-1.12.2/include/xorg
+(define-public xf86-input-joystick
+  (package
+    (name "xf86-input-joystick")
+    (version "1.6.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-input-joystick-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1xgpkdmfw4ahjlva97gs9sllzw8nlpa8mxj59g28fxhak67mvv8x"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-input-keyboard
+  (package
+    (name "xf86-input-keyboard")
+    (version "1.6.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-input-keyboard-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1hwc1bjw5mxv186xbrxiky0agfglwqg8fsxqdh4br1vzgxpck7ma"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-input-mouse
+  (package
+    (name "xf86-input-mouse")
+    (version "1.7.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-input-mouse-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0fs1lwnycyv3d0m6l2wrnlgvbs8qw66d93hwlnmrsswfq5bp6ark"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-input-synaptics
+  (package
+    (name "xf86-input-synaptics")
+    (version "1.6.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-input-synaptics-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0g5b1s6q1dg38l8y47cwg7cs5nivwj0agmp71g273ws0lfg4bc8s"))))
+    (build-system gnu-build-system)
+    (inputs `(("libx11" ,libx11)
+              ("libxi" ,libxi)
+              ("mtdev" ,mtdev)
+              ("pkg-config" ,pkg-config)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+;; FIXME: Installation tries to create ...-xorg-server-1.12.2/share/X11/xorg.conf.d
+(define-public xf86-input-vmmouse
+  (package
+    (name "xf86-input-vmmouse")
+    (version "12.8.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-input-vmmouse-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "16l65mnjb1xxav6c5q0xhhqih81bzify2c5qrhqc2j3waq5yr9m8"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-input-void
+  (package
+    (name "xf86-input-void")
+    (version "1.4.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-input-void-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "01bmk324fq48wydvy1qrnxbw6qz0fjd0i80g0n4cqr1c4mjmif9a"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-video-ark
+  (package
+    (name "xf86-video-ark")
+    (version "0.7.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-ark-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "194zc35ivfh3vcxcilf9nbi88c2di8kbh84x535cljlpiajdnk5x"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-video-ast
+  (package
+    (name "xf86-video-ast")
+    (version "0.93.10")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-ast-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1q64z8qqa0ix3cymqiwk1s3sphd1fvvz30lvyxhgkgciygz6dm69"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-video-ati
+  (package
+    (name "xf86-video-ati")
+    (version "6.14.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-ati-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "11gg6xn65vym75769hzgzpkjsyhlkrw4zw3ncngriq7vz1g47zjg"))))
+    (build-system gnu-build-system)
+    (inputs `(("mesa" ,mesa)
+              ("pkg-config" ,pkg-config)
+              ("xxf86driproto" ,xf86driproto)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-video-cirrus
+  (package
+    (name "xf86-video-cirrus")
+    (version "1.4.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-cirrus-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0blnbspj4936wy46lp346s4b08dfcray6yicsxvv5b4699fzl1rb"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+;; (define-public xf86-video-dummy
+;;   (package
+;;     (name "xf86-video-dummy")
+;;     (version "0.3.5")
+;;     (source
+;;       (origin
+;;         (method url-fetch)
+;;         (uri (string-append
+;;                "mirror://xorg/X11R7.7/src/everything/xf86-video-dummy-"
+;;                version
+;;                ".tar.bz2"))
+;;         (sha256
+;;           (base32
+;;             "0pyr50kqh7g84r4p0x09ay5kxax20dip9sh8h3cbd4xv8cswdbfm"))))
+;;     (build-system gnu-build-system)
+;;     (inputs `(("pkg-config" ,pkg-config)))
+;;     (home-page "http://www.x.org/wiki/")
+;;     (synopsis "xorg implementation of the X Window System")
+;;     (description "X.org provides an implementation of the X Window System")
+;;     (license non-free)))
+
+
+(define-public xf86-video-fbdev
+  (package
+    (name "xf86-video-fbdev")
+    (version "0.4.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-fbdev-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1mc23w0bfmak5216411xh58nrs93jlxmi6l412hmqzhxnjs73clk"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+;; Compilation errors: Assembler messages operand size mismatch etc.
+;; (define-public xf86-video-geode
+;;   (package
+;;     (name "xf86-video-geode")
+;;     (version "2.11.13")
+;;     (source
+;;       (origin
+;;         (method url-fetch)
+;;         (uri (string-append
+;;                "mirror://xorg/X11R7.7/src/everything/xf86-video-geode-"
+;;                version
+;;                ".tar.bz2"))
+;;         (sha256
+;;           (base32
+;;             "09p2cjd2fb7h32k9qs4wp7qvhfn2zv454spv5mfplv7w2jis4863"))))
+;;     (build-system gnu-build-system)
+;;     (inputs `(("pkg-config" ,pkg-config)
+;;               ("xorg-server" ,xorg-server)))
+;;     (home-page "http://www.x.org/wiki/")
+;;     (synopsis "xorg implementation of the X Window System")
+;;     (description "X.org provides an implementation of the X Window System")
+;;     (license license:x11)))
+
+
+;; Driver for obsolete graphics cards, depends on libglide:
+;; http://sourceforge.net/projects/glide/ ,
+;; last updated in 2003, and which does not compile out of the box any more.
+;; (define-public xf86-video-glide
+;;   (package
+;;     (name "xf86-video-glide")
+;;     (version "1.2.0")
+;;     (source
+;;       (origin
+;;         (method url-fetch)
+;;         (uri (string-append
+;;                "mirror://xorg/X11R7.7/src/everything/xf86-video-glide-"
+;;                version
+;;                ".tar.bz2"))
+;;         (sha256
+;;           (base32
+;;             "0byapm9mnpqk3wijfnnan3d22ii5cw6dmg4xn1625iiz89j5vs1l"))))
+;;     (build-system gnu-build-system)
+;;     (inputs `(("pkg-config" ,pkg-config)
+;;               ("xorg-server" ,xorg-server)))
+;;     (home-page "http://www.x.org/wiki/")
+;;     (synopsis "xorg implementation of the X Window System")
+;;     (description "X.org provides an implementation of the X Window System")
+;;     (license license:x11)))
+
+
+(define-public xf86-video-glint
+  (package
+    (name "xf86-video-glint")
+    (version "1.2.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-glint-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0nf36jryabpncqq4m6sfsnmzk00f7gvfmjnl8l8sfy7w6sa6iacs"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)
+              ("xf86dgaproto" ,xf86dgaproto)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-video-i128
+  (package
+    (name "xf86-video-i128")
+    (version "1.3.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-i128-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1sik8ck410hb2885vy7rlc590hw5br8lr2fzxgmv55jyawgfpv9y"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-video-intel
+  (package
+    (name "xf86-video-intel")
+    (version "2.19.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-intel-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1g742szymajh88a5dw08sxcr45bmxgc4w3m6hddv9qscn5hks4rj"))))
+    (build-system gnu-build-system)
+    (inputs `(("libdrm" ,libdrm)
+              ("libx11" ,libx11)
+              ("pkg-config" ,pkg-config)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-video-mach64
+  (package
+    (name "xf86-video-mach64")
+    (version "6.9.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-mach64-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0kl3kvpc2ny48z89313i9fi4cxzwb2pllvxcr9j5ly680ygx8slz"))))
+    (build-system gnu-build-system)
+    (inputs `(("mesa" ,mesa)
+              ("pkg-config" ,pkg-config)
+              ("xf86driproto" ,xf86driproto)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-video-mga
+  (package
+    (name "xf86-video-mga")
+    (version "1.5.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-mga-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "03l3wz5kz0hmxmzqqbkgn7pf9d956jlag04rb701a0fr1mw3v66a"))))
+    (build-system gnu-build-system)
+    (inputs `(("mesa" ,mesa)
+              ("pkg-config" ,pkg-config)
+              ("xf86driproto" ,xf86driproto)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-video-neomagic
+  (package
+    (name "xf86-video-neomagic")
+    (version "1.2.6")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-neomagic-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "124qci48xrk0w2jy91n7vqs7s6q397zyiqqszhmkx6ld7six57mi"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)
+              ("xf86dgaproto" ,xf86dgaproto)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-video-newport
+  (package
+    (name "xf86-video-newport")
+    (version "0.2.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-newport-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1yafmp23jrfdmc094i6a4dsizapsc9v0pl65cpc8w1kvn7343k4i"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-video-nv
+  (package
+    (name "xf86-video-nv")
+    (version "2.1.18")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-nv-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "05glbi9jc7j9nm4sf4qvl3z87s48ibm3i283lqz85kbphg62dxvc"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-video-openchrome
+  (package
+    (name "xf86-video-openchrome")
+    (version "0.2.906")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-openchrome-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0hgzn1r7ig94xbr9dvq0bp1nxqlfp2ki8823jca3f22a2kf8wmg7"))))
+    (build-system gnu-build-system)
+    (inputs `(("libx11" ,libx11)
+              ("libxext" ,libxext)
+              ("libxvmc" ,libxvmc)
+              ("mesa" ,mesa)
+              ("pkg-config" ,pkg-config)
+              ("xf86driproto" ,xf86driproto)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-video-r128
+  (package
+    (name "xf86-video-r128")
+    (version "6.8.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-r128-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1c84x40k9qz9dnf5qs6nnjcgz7px6mpc3rbk8mj62zhp7mf16hbv"))))
+    (build-system gnu-build-system)
+    (inputs `(("mesa" ,mesa)
+              ("pkg-config" ,pkg-config)
+              ("xf86driproto" ,xf86driproto)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-video-savage
+  (package
+    (name "xf86-video-savage")
+    (version "2.3.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-savage-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0jdy4wv3k3ylx3lajjcbsg37z2hf6366a1jvv16sv1ln6dk6lris"))))
+    (build-system gnu-build-system)
+    (inputs `(("mesa" ,mesa)
+              ("pkg-config" ,pkg-config)
+              ("xf86driproto" ,xf86driproto)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-video-siliconmotion
+  (package
+    (name "xf86-video-siliconmotion")
+    (version "1.7.6")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-siliconmotion-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "01sdl6ky1vmvmfgx2d44i35rqafi0z07xdy40cvindcr2k91p7x5"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-video-sis
+  (package
+    (name "xf86-video-sis")
+    (version "0.10.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-sis-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "03diq0l93lfsipmwkpdb2ysgbxxryl6yakpghzc3fksjxa01112f"))))
+    (build-system gnu-build-system)
+    (inputs `(("mesa" ,mesa)
+              ("pkg-config" ,pkg-config)
+              ("xf86dgaproto" ,xf86dgaproto)
+              ("xf86driproto" ,xf86driproto)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:bsd-3)))
+
+
+(define-public xf86-video-suncg6
+  (package
+    (name "xf86-video-suncg6")
+    (version "1.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-suncg6-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "07w0hm63fiy5l3cpcjsl0ig8z84z9r36xm0cmnpiv3g75dy6q8fi"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-video-sunffb
+  (package
+    (name "xf86-video-sunffb")
+    (version "1.2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-sunffb-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "04byax4sc1fn183vyyq0q11q730k16h2by4ggjky7s36wgv7ldzx"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-video-tdfx
+  (package
+    (name "xf86-video-tdfx")
+    (version "1.4.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-tdfx-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "124gsi30rj547jjd7gvv7xykfnwlyrxw0gcacamby7pvl3g33fg0"))))
+    (build-system gnu-build-system)
+    (inputs `(("mesa" ,mesa)
+              ("pkg-config" ,pkg-config)
+              ("xf86driproto" ,xf86driproto)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-video-tga
+  (package
+    (name "xf86-video-tga")
+    (version "1.2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-tga-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0mdqrn02zzkdnmhg4vh9djaawg6b2p82g5qbj66z8b30yr77b93h"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)
+              ("xf86dgaproto" ,xf86dgaproto)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-video-trident
+  (package
+    (name "xf86-video-trident")
+    (version "1.3.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-trident-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "02y5pzdp0a1c12jr8gghbrzgbyfbgq67x7kd7n4f323pmf8x1csb"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)
+              ("xf86dgaproto" ,xf86dgaproto)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+;; (define-public xf86-video-v4l
+;;   (package
+;;     (name "xf86-video-v4l")
+;;     (version "0.2.0")
+;;     (source
+;;       (origin
+;;         (method url-fetch)
+;;         (uri (string-append
+;;                "mirror://xorg/X11R7.7/src/everything/xf86-video-v4l-"
+;;                version
+;;                ".tar.bz2"))
+;;         (sha256
+;;           (base32
+;;             "0pcjc75hgbih3qvhpsx8d4fljysfk025slxcqyyhr45dzch93zyb"))))
+;;     (build-system gnu-build-system)
+;;     (inputs `(("pkg-config" ,pkg-config)))
+;;     (home-page "http://www.x.org/wiki/")
+;;     (synopsis "xorg implementation of the X Window System")
+;;     (description "X.org provides an implementation of the X Window System")
+;;     (license none)))
+
+
+(define-public xf86-video-vesa
+  (package
+    (name "xf86-video-vesa")
+    (version "2.3.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-vesa-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0wqms28kkz2fvghqhqwp6w8zj7k5cgwnhzvkc7j4v268bf6h78g4"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-video-vmware
+  (package
+    (name "xf86-video-vmware")
+    (version "12.0.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-vmware-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0isiwx516gww8hfk3vy7js83yziyjym9mq2zjadyq1a8v5gqf9y8"))))
+    (build-system gnu-build-system)
+    (inputs `(("libx11" ,libx11)
+              ("libxext" ,libxext)
+              ("pkg-config" ,pkg-config)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86-video-voodoo
+  (package
+    (name "xf86-video-voodoo")
+    (version "1.2.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86-video-voodoo-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0ha748yz92yzn6hp2rhin3il8f4j2rs4vkgdvqkagnv1ryxkh0ph"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)
+              ("xf86dgaproto" ,xf86dgaproto)
+              ("xorg-server" ,xorg-server)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+;; Only relevant for the frame buffer on BSD systems.
+;; (define-public xf86-video-wsfb
+;;   (package
+;;     (name "xf86-video-wsfb")
+;;     (version "0.4.0")
+;;     (source
+;;       (origin
+;;         (method url-fetch)
+;;         (uri (string-append
+;;                "mirror://xorg/X11R7.7/src/everything/xf86-video-wsfb-"
+;;                version
+;;                ".tar.bz2"))
+;;         (sha256
+;;           (base32
+;;             "0hr8397wpd0by1hc47fqqrnaw3qdqd8aqgwgzv38w5k3l3jy6p4p"))))
+;;     (build-system gnu-build-system)
+;;     (inputs `(("pkg-config" ,pkg-config)
+;;               ("xorg-server" ,xorg-server)))
+;;     (home-page "http://www.x.org/wiki/")
+;;     (synopsis "xorg implementation of the X Window System")
+;;     (description "X.org provides an implementation of the X Window System")
+;;     (license license:bsd-2)))
+
+
+(define-public xf86bigfontproto
+  (package
+    (name "xf86bigfontproto")
+    (version "1.2.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86bigfontproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0j0n7sj5xfjpmmgx6n5x556rw21hdd18fwmavp95wps7qki214ms"))))
+    (build-system gnu-build-system)
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86dgaproto
+  (package
+    (name "xf86dgaproto")
+    (version "2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86dgaproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0l4hx48207mx0hp09026r6gy9nl3asbq0c75hri19wp1118zcpmc"))))
+    (build-system gnu-build-system)
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86driproto
+  (package
+    (name "xf86driproto")
+    (version "2.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86driproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "07v69m0g2dfzb653jni4x656jlr7l84c1k39j8qc8vfb45r8sjww"))))
+    (build-system gnu-build-system)
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xf86vidmodeproto
+  (package
+    (name "xf86vidmodeproto")
+    (version "2.3.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xf86vidmodeproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0w47d7gfa8zizh2bshdr2rffvbr4jqjv019mdgyh6cmplyd4kna5"))))
+    (build-system gnu-build-system)
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xgamma
+  (package
+    (name "xgamma")
+    (version "1.0.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xgamma-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0463sawps86jnxn121ramsz4sicy3az5wa5wsq4rqm8dm3za48p3"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libxxf86vm" ,libxxf86vm)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xhost
+  (package
+    (name "xhost")
+    (version "1.0.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xhost-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0l483y6wfrjh37j16b41kpi2nc7ss5rvndafpbaylrs87ygx2w18"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libxmu" ,libxmu)
+        ("libxau" ,libxau)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xineramaproto
+  (package
+    (name "xineramaproto")
+    (version "1.2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xineramaproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0ns8abd27x7gbp4r44z3wc5k9zqxxj8zjnazqpcyr4n17nxp8xcp"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xinput
+  (package
+    (name "xinput")
+    (version "1.6.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xinput-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0zl4cdgnzh9shz20yn7hz889v4nkbyqwx0nb7dh6arn7abchgc2a"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libxrender" ,libxrender)
+        ("libxrandr" ,libxrandr)
+        ("libxinerama" ,libxinerama)
+        ("libxi" ,libxi)
+        ("libx11" ,libx11)
+        ("inputproto" ,inputproto)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xkbcomp
+  (package
+    (name "xkbcomp")
+    (version "1.2.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xkbcomp-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0bas1d2wjiy5zy9d0g92d2p9pwv4aapfbfidi7hxy8ax8jmwkl4i"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("xproto" ,xproto)
+        ("libxkbfile" ,libxkbfile)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xkbevd
+  (package
+    (name "xkbevd")
+    (version "1.1.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xkbevd-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "05h1xcnbalndbrryyqs8wzy9h3wz655vc0ymhlk2q4aik17licjm"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libxkbfile" ,libxkbfile)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xkbutils
+  (package
+    (name "xkbutils")
+    (version "1.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xkbutils-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1ga913pw6chssf2016kjyjl6ar2lj83pa497w97ak2kq603sy2g4"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libxt" ,libxt)
+        ("xproto" ,xproto)
+        ("libxaw" ,libxaw)
+        ("inputproto" ,inputproto)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xkeyboard-config
+  (package
+    (name "xkeyboard-config")
+    (version "2.6")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xkeyboard-config-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1nmb7ma8rqryicc5xqrn2hm5pwp5lkf7nj28bwbf63mz2r0mk892"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("gettext" ,gnu:gettext)
+        ("intltool" ,intltool)
+        ("libx11" ,libx11)
+        ;; required to set PERL5LIB, although it is propagated by intltool
+        ("perl-xml-parser" ,perl-xml-parser)
+        ("pkg-config" ,pkg-config)
+        ("xkbcomp" ,xkbcomp)))
+    (arguments
+      `(#:phases
+         (alist-replace
+          'configure
+          (lambda* (#:key inputs #:allow-other-keys #:rest args)
+            (let ((configure (assoc-ref %standard-phases 'configure))
+                  (perl-xml-parser (assoc-ref inputs "perl-xml-parser")))
+              ;; FIXME: This should be done more centrally.
+              (setenv "PERL5LIB" (string-append perl-xml-parser "/lib/perl5/site_perl"))
+              (apply configure args)))
+         %standard-phases)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xkill
+  (package
+    (name "xkill")
+    (version "1.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xkill-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1ac110qbb9a4x1dim3vaghvdk3jc708i2p3f4rmag33458khg0xx"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libxmu" ,libxmu)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xlsatoms
+  (package
+    (name "xlsatoms")
+    (version "1.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xlsatoms-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1y9nfl8s7njxbnci8c20j986xixharasgg40vdw92y593j6dk2rv"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libxcb" ,libxcb)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xlsclients
+  (package
+    (name "xlsclients")
+    (version "1.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xlsclients-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1l97j15mg4wfzpm81wlpzagfjff7v4fwn7s2z2rpksk3gfcg7r8w"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libxcb" ,libxcb)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xmodmap
+  (package
+    (name "xmodmap")
+    (version "1.0.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xmodmap-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1dg47lay4vhrl9mfq3cfc6741a0m2n8wd4ljagd21ix3qklys8pg"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("xproto" ,xproto)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+;; (define-public xorg-docs
+;;   (package
+;;     (name "xorg-docs")
+;;     (version "1.7")
+;;     (source
+;;       (origin
+;;         (method url-fetch)
+;;         (uri (string-append
+;;                "mirror://xorg/X11R7.7/src/everything/xorg-docs-"
+;;                version
+;;                ".tar.bz2"))
+;;         (sha256
+;;           (base32
+;;             "0prphdba6kgr1bxk7r07wxxx6x6pqjw6prr5qclypsb5sf5r3cdr"))))
+;;     (build-system gnu-build-system)
+;;     (inputs `(("pkg-config" ,pkg-config)))
+;;     (home-page "http://www.x.org/wiki/")
+;;     (synopsis "xorg implementation of the X Window System")
+;;     (description "X.org provides an implementation of the X Window System")
+;;     (license none)))
+
+
+(define-public xorg-sgml-doctools
+  (package
+    (name "xorg-sgml-doctools")
+    (version "1.11")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xorg-sgml-doctools-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0k5pffyi5bx8dmfn033cyhgd3gf6viqj3x769fqixifwhbgy2777"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xpr
+  (package
+    (name "xpr")
+    (version "1.0.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xpr-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1dbcv26w2yand2qy7b3h5rbvw1mdmdd57jw88v53sgdr3vrqvngy"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("xproto" ,xproto)
+        ("libxmu" ,libxmu)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xprop
+  (package
+    (name "xprop")
+    (version "1.2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xprop-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "18zi2any13zlb7f34fzyw6lkiwkd6k2scp3b800a1f4rj0c7m407"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("xproto" ,xproto)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xrandr
+  (package
+    (name "xrandr")
+    (version "1.3.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xrandr-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "03lq1c1q4w5cf2ijs4b34v008lshibha9zv5lw08xpyhk9xgyn8h"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libxrender" ,libxrender)
+        ("libxrandr" ,libxrandr)
+        ("xproto" ,xproto)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xrdb
+  (package
+    (name "xrdb")
+    (version "1.0.9")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xrdb-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1dza5a34nj68fzhlgwf18i5bk0n24ig28yihwpjy7vwn57hh2934"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libxmu" ,libxmu)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xrefresh
+  (package
+    (name "xrefresh")
+    (version "1.0.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xrefresh-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0ywxzwa4kmnnmf8idr8ssgcil9xvbhnk155zpsh2i8ay93mh5586"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xset
+  (package
+    (name "xset")
+    (version "1.2.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xset-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1s61mvscd0h7y6anljarj7nkii6plhs8ndx1fm8b1f1h00a1qdv1"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("xproto" ,xproto)
+        ("libxmu" ,libxmu)
+        ("libxext" ,libxext)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xsetroot
+  (package
+    (name "xsetroot")
+    (version "1.1.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xsetroot-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1bazzsf9sy0q2bj4lxvh1kvyrhmpggzb7jg575i15sksksa3xwc8"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libxmu" ,libxmu)
+        ("libxcursor" ,libxcursor)
+        ("xbitmaps" ,xbitmaps)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xtrans
+  (package
+    (name "xtrans")
+    (version "1.2.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xtrans-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "19p1bw3qyn0ia1znx6q3gx92rr9rl88ylrfijjclm8vhpa8i30bz"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xvinfo
+  (package
+    (name "xvinfo")
+    (version "1.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xvinfo-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "119rd93d7661ll1rfcdssn78l0b97326smziyr2f5wdwj2hlmiv0"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libxext" ,libxext)
+        ("libxv" ,libxv)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xwd
+  (package
+    (name "xwd")
+    (version "1.0.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xwd-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0fkg6msy2zg7rda2rpxb7j6vmrdmqmk72xsxnyhz97196ykjnx82"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libxt" ,libxt)
+        ("xproto" ,xproto)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xwininfo
+  (package
+    (name "xwininfo")
+    (version "1.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xwininfo-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0fmcr5yl03xw7m8p9h1rk67rrj7gp5x16a547xhmg8idw2f6r9lg"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)
+        ("xproto" ,xproto)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xwud
+  (package
+    (name "xwud")
+    (version "1.0.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xwud-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1ggql6maivah58kwsh3z9x1hvzxm1a8888xx4s78cl77ryfa1cyn"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("xproto" ,xproto)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+
+;; packages of height 1 in the propagated-inputs tree
+
+(define-public fixesproto
+  (package
+    (name "fixesproto")
+    (version "5.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/fixesproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1ki4wiq2iivx5g4w5ckzbjbap759kfqd72yg18m3zpbb4hqkybxs"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("xextproto" ,xextproto)))
+    (inputs
+      `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libxdamage
+  (package
+    (name "libxdamage")
+    (version "1.1.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXdamage-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1a678bwap74sqczbr2z4y4fvbr35km3inkm8bi1igjyk4v46jqdw"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("damageproto" ,damageproto)))
+    (inputs
+      `(("xproto" ,xproto)
+        ("libxfixes" ,libxfixes)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libxext
+  (package
+    (name "libxext")
+    (version "1.3.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXext-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0ng8clhn7srbkadxjc7ih3z3v27v9ny0aa0dqkgddgxpgrhrq8jn"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("xextproto" ,xextproto)))
+    (inputs
+      `(("libxau" ,libxau)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libxinerama
+  (package
+    (name "libxinerama")
+    (version "1.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXinerama-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1b3aq1762hxzchd9ndavdjlksq93991s0g2z6spf8wl3v0pprrx4"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("xineramaproto" ,xineramaproto)))
+    (inputs
+      `(("libxext" ,libxext)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+;; The package is missing from X11R7.7.
+(define-public libxp
+  (package
+    (name "libxp")
+    (version "1.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/individual/lib/libXp-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1blwrr5zhmwwy87j0svmhv3hc13acyn5j14n5rv0anz81iav2r3y"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("printproto" ,printproto)))
+    (inputs
+      `(("libx11" ,libx11)
+        ("libxext" ,libxext)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libxrender
+  (package
+    (name "libxrender")
+    (version "0.9.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXrender-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1rmvja2gkf5v0k2n1bcghw8v98m2kfn3af0rbmsda5dwr69npd7r"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("renderproto" ,renderproto)))
+    (inputs
+      `(("xproto" ,xproto)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libxtst
+  (package
+    (name "libxtst")
+    (version "1.2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXtst-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1q750hjplq1rfyxkr4545z1y2a1wfnc828ynvbws7b4jwdk3xsky"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("recordproto" ,recordproto)))
+    (inputs
+      `(("libxi" ,libxi)
+        ("libx11" ,libx11)
+        ("inputproto" ,inputproto)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libxv
+  (package
+    (name "libxv")
+    (version "1.0.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXv-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "044hllz013afhzywwpxz007l4zjy99bv9im065rqd30zckmllrjx"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+     `(("videoproto" ,videoproto)))
+    (inputs
+      `(("xproto" ,xproto)
+        ("libxext" ,libxext)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public mkfontdir
+  (package
+    (name "mkfontdir")
+    (version "1.0.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/mkfontdir-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0c3563kw9fg15dpgx4dwvl12qz6sdqdns1pxa574hc7i5m42mman"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("mkfontscale" ,mkfontscale)))
+    (inputs
+      `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xproto
+  (package
+    (name "xproto")
+    (version "7.0.23")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xproto-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "17lkmi12f89qvg4jj5spqzwzc24fmsqq68dv6kpy7r7b944lmq5d"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("util-macros" ,util-macros))) ; to get util-macros in (almost?) all package inputs
+    (inputs
+      `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+
+;; packages of height 2 in the propagated-inputs tree
+
+(define-public libice
+  (package
+    (name "libice")
+    (version "1.0.8")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libICE-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "07mp13pb3s73kj7y490gnx619znzwk91mlf8kdw0rzq29ll93a94"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("xproto" ,xproto)))
+    (inputs
+      `(("xtrans" ,xtrans)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libxau
+  (package
+    (name "libxau")
+    (version "1.0.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXau-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "12d4f7sdv2pjxhk0lcay0pahccddszkw579dc59daqi37r8bllvi"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("xproto" ,xproto)))
+    (inputs
+      `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+(define-public libxfixes
+  (package
+    (name "libxfixes")
+    (version "5.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXfixes-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1qx2rmwhmca2n7rgafy0arp15k5vwhdhhh6v6mx76hlj29328yjk"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("fixesproto" ,fixesproto)))
+    (inputs
+      `(("xproto" ,xproto)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libxfont
+  (package
+    (name "libxfont")
+    (version "1.4.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXfont-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0w3irg00k6b6mziddnacln9q2rkf5848b04nvjqwv5bb1fw6zydv"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("fontsproto" ,fontsproto)
+        ("freetype" ,freetype)
+        ("libfontenc" ,libfontenc)
+        ("xproto" ,xproto)))
+    (inputs
+      `(("zlib" ,zlib)
+        ("xtrans" ,xtrans)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libxi
+  (package
+    (name "libxi")
+    (version "1.6.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXi-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "029ihw4jq8mng8rx7a3jdvq64jm1zdkqidca93zmxv4jf9yn5qzj"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("libxext" ,libxext)))
+    (inputs
+      `(("xproto" ,xproto)
+        ("libx11" ,libx11)
+        ("inputproto" ,inputproto)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libxrandr
+  (package
+    (name "libxrandr")
+    (version "1.3.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXrandr-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "10cvv78ws8jznma4s45dzqz0ldcxk30qgsqrc4wxfcsjmcba5b3y"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("libxext" ,libxext)
+        ("randrproto" ,randrproto)))
+    (inputs
+      `(("libxrender" ,libxrender)
+        ("xproto" ,xproto)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libxvmc
+  (package
+    (name "libxvmc")
+    (version "1.0.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXvMC-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "18yf6ysc01pqkbk9704914ghalq1sl2hfdjmwggxm8qqhpy8bw18"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("libxv" ,libxv)))
+    (inputs
+      `(("xproto" ,xproto)
+        ("libxext" ,libxext)
+        ("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libxxf86vm
+  (package
+    (name "libxxf86vm")
+    (version "1.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXxf86vm-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "117w92xz39rcqcahspi48nc04cc9110x1dycpf3vbcb6p0pifr55"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("libxext" ,libxext)
+        ("xf86vidmodeproto" ,xf86vidmodeproto)))
+    (inputs
+      `(("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+;; package outside the x.org system proper of height 3
+
+(define-public mesa
+  (package
+    (name "mesa")
+    ;; In newer versions (9.0.5 and 9.1 tested), "make" results in an
+    ;; infinite configure loop, see
+    ;; https://bugs.freedesktop.org/show_bug.cgi?id=61527
+    (version "8.0.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "ftp://ftp.freedesktop.org/pub/mesa/" version
+               "/MesaLib-" version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "0pjs8x51c0i6mawgd4w03lxpyx5fnx7rc8plr8jfsscf9yiqs6si"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("glproto" ,glproto)
+        ("libdrm" ,libdrm-2.4.33)
+        ("libxdamage" ,libxdamage)
+        ("libxxf86vm" ,libxxf86vm)))
+    (inputs
+      `(("bison" ,bison)
+        ("dri2proto" ,dri2proto)
+        ("expat" ,expat)
+        ("flex" ,flex)
+        ("libx11" ,libx11)
+        ("libxfixes" ,libxfixes)
+        ("libxml2" ,libxml2)
+        ("makedepend" ,makedepend)
+        ("pkg-config" ,pkg-config)
+        ("python" ,python)))
+    (arguments
+      `(#:configure-flags
+         `("--with-gallium-drivers=r600,svga,swrast") ; drop r300 from the default list as it requires llvm
+        #:phases
+         (alist-cons-after
+          'unpack 'remove-symlink
+          (lambda* (#:key #:allow-other-keys)
+            ;; remove dangling symlink to /usr/include/wine/windows
+            (delete-file "src/gallium/state_trackers/d3d1x/w32api"))
+         (alist-replace
+          'configure
+          (lambda* (#:key inputs #:allow-other-keys #:rest args)
+            (let ((configure (assoc-ref %standard-phases 'configure))
+                  (libxml2 (assoc-ref inputs "libxml2")))
+              ;; FIXME: This should be done more centrally.
+              (setenv "PYTHONPATH" (string-append libxml2 "/lib/python2.7/site-packages"))
+              (apply configure args)))
+         %standard-phases))))
+    (home-page "http://mesa3d.org/")
+    (synopsis "Mesa, an OpenGL implementation")
+    (description "Mesa is a free implementation of the OpenGL specification -
+a system for rendering interactive 3D graphics. A variety of device drivers
+allows Mesa to be used in many different environments ranging from software
+emulation to complete hardware acceleration for modern GPUs.")
+    (license license:x11)))
+
+
+
+;; packages of height 3 in the propagated-inputs tree
+
+(define-public libxcb
+  (package
+    (name "libxcb")
+    (version "1.8.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "http://xcb.freedesktop.org/dist/libxcb-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "03gspxcdl8r7jwbwg7fyp4cc6zic9z91amp4g5z0wwahx48nix6j"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("libpthread-stubs" ,libpthread-stubs)
+        ("libxau" ,libxau)
+        ("libxdmcp" ,libxdmcp)))
+    (inputs
+      `(("xcb-proto" ,xcb-proto)
+        ("libxslt" ,libxslt)
+        ("pkg-config" ,pkg-config)
+        ("python" ,python)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public xorg-server
+  (package
+    (name "xorg-server")
+    (version "1.12.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/xorg-server-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1xf57hcq6r17zxyfnx9r1wd0ir1bw13ff8bsiszwrw9jyhi9x7ya"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("dri2proto" ,dri2proto)
+        ("fontsproto" ,fontsproto)
+        ("inputproto" ,inputproto)
+        ("kbproto" ,kbproto)
+        ("libpciaccess" ,libpciaccess)
+        ("pixman" ,pixman)
+        ("randrproto" ,randrproto)
+        ("renderproto" ,renderproto)
+        ("videoproto" ,videoproto)
+        ("xextproto" ,xextproto)
+        ("xineramaproto" ,xineramaproto)
+        ("xproto" ,xproto)))
+    (inputs
+      `(("bigreqsproto" ,bigreqsproto)
+        ("compositeproto" ,compositeproto)
+        ("damageproto" ,damageproto)
+        ("dbus" ,dbus)
+        ("dmxproto" ,dmxproto)
+        ("libdmx" ,libdmx)
+        ("libxau" ,libxau)
+        ("libxaw" ,libxaw)
+        ("libxdmcp" ,libxdmcp)
+        ("libxfixes" ,libxfixes)
+        ("libxfont" ,libxfont)
+        ("libxkbfile" ,libxkbfile)
+        ("libxrender" ,libxrender)
+        ("libxres" ,libxres)
+        ("libxt" ,libxt)
+        ("libxv" ,libxv)
+        ("mesa" ,mesa)
+        ("openssl" ,openssl)
+        ("pkg-config" ,pkg-config)
+        ("python" ,python)
+        ("recordproto" ,recordproto)
+        ("resourceproto" ,resourceproto)
+        ("scrnsaverproto" ,scrnsaverproto)
+        ("xcmiscproto" ,xcmiscproto)
+        ("xf86bigfontproto" ,xf86bigfontproto)
+        ("xf86dgaproto" ,xf86dgaproto)
+        ("xf86driproto" ,xf86driproto)
+        ("xf86vidmodeproto" ,xf86vidmodeproto)
+;;        ("xkbutils" ,xkbutils)
+;;        ("xkeyboard-config" ,xkeyboard-config)
+        ("xtrans" ,xtrans)
+        ("zlib" ,zlib)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+
+;; packages of height 4 in the propagated-inputs tree
+
+(define-public libx11
+  (package
+    (name "libx11")
+    (version "1.5.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libX11-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "11jdpl15bxwpwv0knpkh990s8jvlybng3dx477pkrz1bx7byz0n3"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("kbproto" ,kbproto)
+        ("libxcb" ,libxcb)))
+    (inputs
+      `(("inputproto" ,inputproto)
+        ("pkg-config" ,pkg-config)
+        ("xextproto" ,xextproto)
+        ("xtrans" ,xtrans)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+;; packages of height 5 in the propagated-inputs tree
+
+(define-public libxcursor
+  (package
+    (name "libxcursor")
+    (version "1.1.13")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXcursor-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "13xd1dyb06gwdwb0bxb22fkgdlmis6wrljm2xk6fhz0v9bg2g27p"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("libx11" ,libx11)
+        ("libxrender" ,libxrender)
+        ("libxfixes" ,libxfixes)
+        ("xproto" ,xproto)))
+    (inputs
+      `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libxt
+  (package
+    (name "libxt")
+    (version "1.1.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXt-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1g85gwnhs7lg5f01gfi1cpb916xc3spm1fjlv2f4xz2zzk1r7dcd"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("libx11" ,libx11)
+        ("libice" ,libice)
+        ("libsm" ,libsm)))
+    (inputs
+      `(("libx11" ,libx11)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
+
+
+(define-public libxaw
+  (package
+    (name "libxaw")
+    (version "1.0.11")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/X11R7.7/src/everything/libXaw-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "14ll7ndf5njc30hz2w197qvwp7fqj7y14wq4p1cyxlbipfn79a47"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("libxext" ,libxext)
+        ("libxmu" ,libxmu)
+        ("libxpm" ,libxpm)
+        ("libxt" ,libxt)))
+    (inputs
+      `(("xproto" ,xproto)
+        ("pkg-config" ,pkg-config)))
+    (home-page "http://www.x.org/wiki/")
+    (synopsis "xorg implementation of the X Window System")
+    (description "X.org provides an implementation of the X Window System")
+    (license license:x11)))
diff --git a/guix/build-system/cmake.scm b/guix/build-system/cmake.scm
index 2a9db80cf8..3347dc502c 100644
--- a/guix/build-system/cmake.scm
+++ b/guix/build-system/cmake.scm
@@ -38,11 +38,11 @@
 (define* (cmake-build store name source inputs
                      #:key (guile #f)
                      (outputs '("out")) (configure-flags ''())
+                     (search-paths '())
                      (make-flags ''())
                      (patches ''()) (patch-flags ''("--batch" "-p1"))
                      (cmake (@ (gnu packages cmake) cmake))
                      (out-of-source? #f)
-                     (path-exclusions ''())
                      (tests? #t)
                      (test-target "test")
                      (parallel-build? #t) (parallel-tests? #f)
@@ -71,13 +71,15 @@ provides a 'CMakeLists.txt' file as its build system."
                     #:system ,system
                     #:outputs %outputs
                     #:inputs %build-inputs
+                    #:search-paths ',(map search-path-specification->sexp
+                                          (append search-paths
+                                                  (standard-search-paths)))
                     #:patches ,patches
                     #:patch-flags ,patch-flags
                     #:phases ,phases
                     #:configure-flags ,configure-flags
                     #:make-flags ,make-flags
                     #:out-of-source? ,out-of-source?
-                    #:path-exclusions ,path-exclusions
                     #:tests? ,tests?
                     #:test-target ,test-target
                     #:parallel-build? ,parallel-build?
diff --git a/guix/build-system/gnu.scm b/guix/build-system/gnu.scm
index 8049e7510f..b64bce7dae 100644
--- a/guix/build-system/gnu.scm
+++ b/guix/build-system/gnu.scm
@@ -27,6 +27,7 @@
   #:use-module (ice-9 match)
   #:export (gnu-build
             gnu-build-system
+            standard-search-paths
             standard-inputs
             package-with-explicit-inputs
             package-with-extra-configure-variable
@@ -135,6 +136,24 @@ use `--strip-all' as the arguments to `strip'."
   ;; Store passed to STANDARD-INPUTS.
   (make-parameter #f))
 
+(define (standard-packages)
+  "Return the list of (NAME PACKAGE OUTPUT) or (NAME PACKAGE) tuples of
+standard packages used as implicit inputs of the GNU build system."
+
+  ;; Resolve (gnu packages base) lazily to hide circular dependency.
+  (let ((distro (resolve-module '(gnu packages base))))
+    (module-ref distro '%final-inputs)))
+
+(define (standard-search-paths)
+  "Return the list of <search-path-specification> for the standard (implicit)
+inputs."
+  (append-map (match-lambda
+               ((_ (? package? p) _ ...)
+                (package-native-search-paths p))
+               (_
+                '()))
+              (standard-packages)))
+
 (define standard-inputs
   (memoize
    (lambda (system)
@@ -148,9 +167,7 @@ System: GCC, GNU Make, Bash, Coreutils, etc."
            (z
             (error "invalid standard input" z)))
 
-          ;; Resolve (gnu packages base) lazily to hide circular dependency.
-          (let* ((distro (resolve-module '(gnu packages base)))
-                 (inputs (module-ref distro '%final-inputs)))
+          (let ((inputs (standard-packages)))
             (append inputs
                     (append-map (match-lambda
                                  ((name package _ ...)
@@ -159,11 +176,12 @@ System: GCC, GNU Make, Bash, Coreutils, etc."
 
 (define* (gnu-build store name source inputs
                     #:key (guile #f)
-                    (outputs '("out")) (configure-flags ''())
+                    (outputs '("out"))
+                    (search-paths '())
+                    (configure-flags ''())
                     (make-flags ''())
                     (patches ''()) (patch-flags ''("--batch" "-p1"))
                     (out-of-source? #f)
-                    (path-exclusions ''())
                     (tests? #t)
                     (test-target "check")
                     (parallel-build? #t) (parallel-tests? #t)
@@ -190,6 +208,16 @@ the builder's environment, from the host.  Note that we distinguish
 between both, because for Guile's own modules like (ice-9 foo), we want
 to use GUILE's own version of it, rather than import the user's one,
 which could lead to gratuitous input divergence."
+  (define implicit-inputs
+    (and implicit-inputs?
+         (parameterize ((%store store))
+           (standard-inputs system))))
+
+  (define implicit-search-paths
+    (if implicit-inputs?
+        (standard-search-paths)
+        '()))
+
   (define builder
     `(begin
        (use-modules ,@modules)
@@ -199,13 +227,15 @@ which could lead to gratuitous input divergence."
                   #:system ,system
                   #:outputs %outputs
                   #:inputs %build-inputs
+                  #:search-paths ',(map search-path-specification->sexp
+                                        (append implicit-search-paths
+                                                search-paths))
                   #:patches ,patches
                   #:patch-flags ,patch-flags
                   #:phases ,phases
                   #:configure-flags ,configure-flags
                   #:make-flags ,make-flags
                   #:out-of-source? ,out-of-source?
-                  #:path-exclusions ,path-exclusions
                   #:tests? ,tests?
                   #:test-target ,test-target
                   #:parallel-build? ,parallel-build?
@@ -233,8 +263,7 @@ which could lead to gratuitous input divergence."
                                         '())
                                   ,@inputs
                                   ,@(if implicit-inputs?
-                                        (parameterize ((%store store))
-                                          (standard-inputs system))
+                                        implicit-inputs
                                         '()))
                                 #:outputs outputs
                                 #:modules imported-modules
diff --git a/guix/build-system/perl.scm b/guix/build-system/perl.scm
index 537c29e799..1ff9fd2674 100644
--- a/guix/build-system/perl.scm
+++ b/guix/build-system/perl.scm
@@ -38,6 +38,7 @@
 (define* (perl-build store name source inputs
                      #:key
                      (perl (@ (gnu packages perl) perl))
+                     (search-paths '())
                      (tests? #t)
                      (make-maker-flags ''())
                      (phases '(@ (guix build perl-build-system)
@@ -53,6 +54,10 @@
                                 (guix build utils))))
   "Build SOURCE using PERL, and with INPUTS.  This assumes that SOURCE
 provides a `Makefile.PL' file as its build system."
+  (define perl-search-paths
+    (append (package-native-search-paths perl)
+            (standard-search-paths)))
+
   (define builder
     `(begin
        (use-modules ,@modules)
@@ -60,6 +65,9 @@ provides a `Makefile.PL' file as its build system."
                    #:source ,(if (and source (derivation-path? source))
                                  (derivation-path->output-path source)
                                  source)
+                   #:search-paths ',(map search-path-specification->sexp
+                                         (append perl-search-paths
+                                                 search-paths))
                    #:make-maker-flags ,make-maker-flags
                    #:system ,system
                    #:test-target "test"
diff --git a/guix/build-system/trivial.scm b/guix/build-system/trivial.scm
index e5bbeaa91d..2eb15aa2e0 100644
--- a/guix/build-system/trivial.scm
+++ b/guix/build-system/trivial.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,7 +26,9 @@
   #:export (trivial-build-system))
 
 (define* (trivial-build store name source inputs
-                        #:key outputs guile system builder (modules '()))
+                        #:key
+                        outputs guile system builder (modules '())
+                        search-paths)
   "Run build expression BUILDER, an expression, for SYSTEM.  SOURCE is
 ignored."
   (define guile-for-build
diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm
index b7b9fdac95..47820aa02e 100644
--- a/guix/build/gnu-build-system.scm
+++ b/guix/build/gnu-build-system.scm
@@ -48,33 +48,22 @@
                     #f
                     dir))
 
-(define* (set-paths #:key inputs (path-exclusions '())
+(define* (set-paths #:key inputs (search-paths '())
                     #:allow-other-keys)
-  (define (relevant-input-directories env-var)
-    ;; Return the subset of INPUTS that should be considered when setting
-    ;; ENV-VAR.
-    (match (assoc-ref path-exclusions env-var)
-      (#f
-       (map cdr inputs))
-      ((excluded ...)
-       (filter-map (match-lambda
-                    ((name . dir)
-                     (and (not (member name excluded))
-                          dir)))
-                   inputs))))
+  (define input-directories
+    (match inputs
+      (((_ . dir) ...)
+       dir)))
 
-  (set-path-environment-variable "PATH" '("bin")
-                                 (relevant-input-directories "PATH"))
-  (set-path-environment-variable "CPATH" '("include")
-                                 (relevant-input-directories "CPATH"))
-  (set-path-environment-variable "LIBRARY_PATH" '("lib" "lib64")
-                                 (relevant-input-directories "LIBRARY_PATH"))
+  (set-path-environment-variable "PATH" '("bin" "sbin")
+                                 input-directories)
 
-  ;; FIXME: Eventually move this to the `search-paths' field of the
-  ;; `pkg-config' package.
-  (set-path-environment-variable "PKG_CONFIG_PATH"
-                                 '("lib/pkgconfig" "lib64/pkgconfig")
-                                 (relevant-input-directories "PKG_CONFIG_PATH"))
+  (for-each (match-lambda
+             ((env-var (directories ...) separator)
+              (set-path-environment-variable env-var directories
+                                             input-directories
+                                             #:separator separator)))
+            search-paths)
 
   ;; Dump the environment variables as a shell script, for handy debugging.
   (system "export > environment-variables"))
@@ -120,9 +109,10 @@ makefiles."
            (base (basename out))
            (dash (string-rindex base #\-)))
       ;; XXX: We'd rather use `package-name->name+version' or similar.
-      (if dash
-          (substring base 0 dash)
-          base)))
+      (string-drop (if dash
+                       (substring base 0 dash)
+                       base)
+                   (+ 1 (string-index base #\-)))))
 
   (let* ((prefix     (assoc-ref outputs "out"))
          (bindir     (assoc-ref outputs "bin"))
diff --git a/guix/build/perl-build-system.scm b/guix/build/perl-build-system.scm
index d625ef3ed6..793b6aacb5 100644
--- a/guix/build/perl-build-system.scm
+++ b/guix/build/perl-build-system.scm
@@ -50,10 +50,6 @@
 (define* (perl-build #:key inputs (phases %standard-phases)
                      #:allow-other-keys #:rest args)
   "Build the given Perl package, applying all of PHASES in order."
-  (set-path-environment-variable "PERL5LIB" '("lib/perl5/site_perl")
-                                 (match inputs
-                                   (((_ . path) ...)
-                                    path)))
   (apply gnu:gnu-build
          #:inputs inputs #:phases phases
          args))
diff --git a/guix/build/utils.scm b/guix/build/utils.scm
index 6921e31bdd..a4a82a5f8c 100644
--- a/guix/build/utils.scm
+++ b/guix/build/utils.scm
@@ -1,5 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -31,6 +33,7 @@
             with-directory-excursion
             mkdir-p
             copy-recursively
+            delete-file-recursively
             find-files
 
             set-path-environment-variable
@@ -49,9 +52,10 @@
             patch-shebang
             patch-makefile-SHELL
             fold-port-matches
-            remove-store-references))
+            remove-store-references
+            wrap-program))
+
 
-
 ;;;
 ;;; Directories.
 ;;;
@@ -120,8 +124,11 @@ return values of applying PROC to the port."
       (() #t))))
 
 (define* (copy-recursively source destination
-                           #:optional (log (current-output-port)))
-  "Copy SOURCE directory to DESTINATION."
+                           #:key
+                           (log (current-output-port))
+                           (follow-symlinks? #f))
+  "Copy SOURCE directory to DESTINATION.  Follow symlinks if FOLLOW-SYMLINKS?
+is true; otherwise, just preserve them.  Write verbose output to the LOG port."
   (define strip-source
     (let ((len (string-length source)))
       (lambda (file)
@@ -132,7 +139,12 @@ return values of applying PROC to the port."
                       (let ((dest (string-append destination
                                                  (strip-source file))))
                         (format log "`~a' -> `~a'~%" file dest)
-                        (copy-file file dest)))
+                        (case (stat:type stat)
+                          ((symlink)
+                           (let ((target (readlink file)))
+                             (symlink target dest)))
+                          (else
+                           (copy-file file dest)))))
                     (lambda (dir stat result)     ; down
                       (mkdir-p (string-append destination
                                               (strip-source dir))))
@@ -144,7 +156,31 @@ return values of applying PROC to the port."
                               file (strerror errno))
                       #f)
                     #t
-                    source))
+                    source
+
+                    (if follow-symlinks?
+                        stat
+                        lstat)))
+
+(define (delete-file-recursively dir)
+  "Delete DIR recursively, like `rm -rf', without following symlinks.  Report
+but ignore errors."
+  (file-system-fold (const #t)                    ; enter?
+                    (lambda (file stat result)    ; leaf
+                      (delete-file file))
+                    (const #t)                    ; down
+                    (lambda (dir stat result)     ; up
+                      (rmdir dir))
+                    (const #t)                    ; skip
+                    (lambda (file stat errno result)
+                      (format (current-error-port)
+                              "warning: failed to delete ~a: ~a~%"
+                              file (strerror errno)))
+                    #t
+                    dir
+
+                    ;; Don't follow symlinks.
+                    lstat))
 
 (define (find-files dir regexp)
   "Return the list of files under DIR whose basename matches REGEXP."
@@ -426,7 +462,7 @@ bytes transferred and the continuation of the transfer as a thunk."
          (stat:mtimensec stat)))
 
 (define patch-shebang
-  (let ((shebang-rx (make-regexp "^[[:blank:]]*([[:graph:]]+)(.*)$")))
+  (let ((shebang-rx (make-regexp "^[[:blank:]]*([[:graph:]]+)[[:blank:]]*([[:graph:]]*)(.*)$")))
     (lambda* (file
               #:optional
               (path (search-path-as-string->list (getenv "PATH")))
@@ -465,16 +501,29 @@ FILE are kept unchanged."
                (let ((line (false-if-exception (read-line p))))
                  (and=> (and line (regexp-exec shebang-rx line))
                         (lambda (m)
-                          (let* ((cmd (match:substring m 1))
-                                 (bin (search-path path (basename cmd))))
+                          (let* ((interp (match:substring m 1))
+                                 (arg1 (match:substring m 2))
+                                 (rest (match:substring m 3))
+                                 (has-env (string-suffix? "/env" interp))
+                                 (cmd (if has-env arg1 (basename interp)))
+                                 (bin (search-path path cmd)))
                             (if bin
-                                (if (string=? bin cmd)
+                                (if (string=? bin interp)
                                     #f            ; nothing to do
-                                    (begin
-                                      (format (current-error-port)
-                                              "patch-shebang: ~a: changing `~a' to `~a'~%"
-                                              file cmd bin)
-                                      (patch p bin (match:substring m 2))))
+                                    (if has-env
+                                        (begin
+                                          (format (current-error-port)
+                                                  "patch-shebang: ~a: changing `~a' to `~a'~%"
+                                                  file (string-append interp " " arg1) bin)
+                                          (patch p bin rest))
+                                      (begin 
+                                        (format (current-error-port)
+                                                "patch-shebang: ~a: changing `~a' to `~a'~%"
+                                                file interp bin)
+                                        (patch p bin
+                                               (if (string-null? arg1)
+                                                   ""
+                                                   (string-append " " arg1 rest))))))
                                 (begin
                                   (format (current-error-port)
                                           "patch-shebang: ~a: warning: no binary for interpreter `~a' found in $PATH~%"
@@ -605,6 +654,70 @@ known as `nuke-refs' in Nixpkgs."
                              (put-u8 out (char->integer char))
                              result))))))
 
+(define* (wrap-program prog #:rest vars)
+  "Rename PROG to .PROG-real and make PROG a wrapper.  VARS should look like
+this:
+
+  '(VARIABLE DELIMITER POSITION LIST-OF-DIRECTORIES)
+
+where DELIMITER is optional.  ':' will be used if DELIMITER is not given.
+
+For example, this command:
+
+  (wrap-program \"foo\"
+                '(\"PATH\" \":\" = (\"/nix/.../bar/bin\"))
+                '(\"CERT_PATH\" suffix (\"/nix/.../baz/certs\"
+                                        \"/qux/certs\")))
+
+will copy 'foo' to '.foo-real' and create the file 'foo' with the following
+contents:
+
+  #!location/of/bin/bash
+  export PATH=\"/nix/.../bar/bin\"
+  export CERT_PATH=\"$CERT_PATH${CERT_PATH:+:}/nix/.../baz/certs:/qux/certs\"
+  exec location/of/.foo-real
+
+This is useful for scripts that expect particular programs to be in $PATH, for
+programs that expect particular shared libraries to be in $LD_LIBRARY_PATH, or
+modules in $GUILE_LOAD_PATH, etc."
+  (let ((prog-real (string-append (dirname prog) "/." (basename prog) "-real"))
+        (prog-tmp  (string-append (dirname prog) "/." (basename prog) "-tmp")))
+    (define (export-variable lst)
+      ;; Return a string that exports an environment variable.
+      (match lst
+        ((var sep '= rest)
+         (format #f "export ~a=\"~a\""
+                 var (string-join rest sep)))
+        ((var sep 'prefix rest)
+         (format #f "export ~a=\"~a${~a~a+~a}$~a\""
+                 var (string-join rest sep) var sep sep var))
+        ((var sep 'suffix rest)
+         (format #f "export ~a=\"$~a${~a~a+~a}~a\""
+                 var var var sep sep (string-join rest sep)))
+        ((var '= rest)
+         (format #f "export ~a=\"~a\""
+                 var (string-join rest ":")))
+        ((var 'prefix rest)
+         (format #f "export ~a=\"~a${~a:+:}$~a\""
+                 var (string-join rest ":") var var))
+        ((var 'suffix rest)
+         (format #f "export ~a=\"$~a${~a:+:}~a\""
+                 var var var (string-join rest ":")))))
+
+    (copy-file prog prog-real)
+
+    (with-output-to-file prog-tmp
+      (lambda ()
+        (format #t
+                "#!~a~%~a~%exec \"~a\" \"$@\"~%"
+                (which "bash")
+                (string-join (map export-variable vars)
+                             "\n")
+                (canonicalize-path prog-real))))
+
+    (chmod prog-tmp #o755)
+    (rename-file prog-tmp prog)))
+
 ;;; Local Variables:
 ;;; eval: (put 'call-with-output-file/atomic 'scheme-indent-function 1)
 ;;; eval: (put 'with-throw-handler 'scheme-indent-function 1)
diff --git a/guix/download.scm b/guix/download.scm
index b315b4c1d0..99353be8b0 100644
--- a/guix/download.scm
+++ b/guix/download.scm
@@ -107,8 +107,7 @@
        "http://mirrors.ircam.fr/pub/apache/"
        "http://apache-mirror.rbc.ru/pub/apache/")
       (xorg               ; from http://www.x.org/wiki/Releases/Download
-       "http://xorg.freedesktop.org/releases/" ; main mirrors
-       "http://www.x.org/pub/"
+       "http://www.x.org/releases/" ; main mirrors
        "ftp://mirror.csclub.uwaterloo.ca/x.org/" ; North America
        "ftp://xorg.mirrors.pair.com/"
        "http://mirror.csclub.uwaterloo.ca/x.org/"
diff --git a/guix/packages.scm b/guix/packages.scm
index e8ae2fb817..1cbbd2ec47 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -37,6 +37,11 @@
             origin-file-name
             base32
 
+            <search-path-specification>
+            search-path-specification
+            search-path-specification?
+            search-path-specification->sexp
+
             package
             package?
             package-name
@@ -49,6 +54,7 @@
             package-native-inputs
             package-propagated-inputs
             package-outputs
+            package-native-search-paths
             package-search-paths
             package-synopsis
             package-description
@@ -105,8 +111,22 @@ representation."
       ((_ str)
        #'(nix-base32-string->bytevector str)))))
 
-;; A package.
+;; The specification of a search path.
+(define-record-type* <search-path-specification>
+  search-path-specification make-search-path-specification
+  search-path-specification?
+  (variable     search-path-specification-variable)
+  (directories  search-path-specification-directories)
+  (separator    search-path-specification-separator (default ":")))
+
+(define (search-path-specification->sexp spec)
+  "Return an sexp representing SPEC, a <search-path-specification>.  The sexp
+corresponds to the arguments expected by `set-path-environment-variable'."
+  (match spec
+    (($ <search-path-specification> variable directories separator)
+     `(,variable ,directories ,separator))))
 
+;; A package.
 (define-record-type* <package>
   package make-package
   package?
@@ -129,10 +149,13 @@ representation."
 
   (outputs package-outputs                ; list of strings
            (default '("out")))
-  (search-paths package-search-paths      ; list of (ENV-VAR (DIRS ...))
-                (default '()))            ; tuples; see
-                                          ; `set-path-environment-variable'
-                                          ; (aka. "setup-hook")
+
+                                                  ; lists of
+                                                  ; <search-path-specification>,
+                                                  ; for native and cross
+                                                  ; inputs
+  (native-search-paths package-native-search-paths (default '()))
+  (search-paths package-search-paths (default '()))
 
   (synopsis package-synopsis)                    ; one-line description
   (description package-description)              ; one or two paragraphs
@@ -328,16 +351,22 @@ PACKAGE for SYSTEM."
               (($ <package> name version source (= build-system-builder builder)
                   args inputs propagated-inputs native-inputs self-native-input?
                   outputs)
-               ;; TODO: For `search-paths', add a builder prologue that calls
-               ;; `set-path-environment-variable'.
-               (let ((inputs (map expand-input
-                                  (package-transitive-inputs package))))
+               (let* ((inputs     (package-transitive-inputs package))
+                      (input-drvs (map expand-input inputs))
+                      (paths      (delete-duplicates
+                                   (append-map (match-lambda
+                                                ((_ (? package? p) _ ...)
+                                                 (package-native-search-paths
+                                                  p))
+                                                (_ '()))
+                                               inputs))))
 
                  (apply builder
                         store (package-full-name package)
                         (and source
                              (package-source-derivation store source system))
-                        inputs
+                        input-drvs
+                        #:search-paths paths
                         #:outputs outputs #:system system
                         (args))))))))
 
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index cea49a57f4..5eddb7defe 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -330,6 +330,53 @@ but ~a is available upstream~%")
         ((getaddrinfo-error ftp-error) #f)
         (else (apply throw key args))))))
 
+(define* (search-path-environment-variables packages profile
+                                            #:optional (getenv getenv))
+  "Return environment variable definitions that may be needed for the use of
+PACKAGES in PROFILE.  Use GETENV to determine the current settings and report
+only settings not already effective."
+
+  ;; The search path info is not stored in the manifest.  Thus, we infer the
+  ;; search paths from same-named packages found in the distro.
+
+  (define package-in-manifest->package
+    (match-lambda
+     ((name version _ ...)
+      (match (append (find-packages-by-name name version)
+                     (find-packages-by-name name))
+        ((p _ ...) p)
+        (_ #f)))))
+
+  (define search-path-definition
+    (match-lambda
+     (($ <search-path-specification> variable directories separator)
+      (let ((values      (or (and=> (getenv variable)
+                                    (cut string-tokenize* <> separator))
+                             '()))
+            (directories (filter file-exists?
+                                 (map (cut string-append profile
+                                           "/" <>)
+                                      directories))))
+        (if (every (cut member <> values) directories)
+            #f
+            (format #f "export ~a=\"~a\""
+                    variable
+                    (string-join directories separator)))))))
+
+  (let* ((packages     (filter-map package-in-manifest->package packages))
+         (search-paths (delete-duplicates
+                        (append-map package-native-search-paths
+                                    packages))))
+    (filter-map search-path-definition search-paths)))
+
+(define (display-search-paths packages profile)
+  "Display the search path environment variables that may need to be set for
+PACKAGES, in the context of PROFILE."
+  (let ((settings (search-path-environment-variables packages profile)))
+    (unless (null? settings)
+      (format #t (_ "The following environment variable definitions may be needed:~%"))
+      (format #t "~{    ~a~%~}" settings))))
+
 
 ;;;
 ;;; Command-line options.
@@ -354,6 +401,8 @@ Install, remove, or upgrade PACKAGES in a single transaction.\n"))
   -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP"))
   (display (_ "
       --roll-back        roll back to the previous generation"))
+  (display (_ "
+      --search-paths     display needed environment variable definitions"))
   (newline)
   (display (_ "
   -p, --profile=PROFILE  use PROFILE instead of the user's default profile"))
@@ -408,6 +457,9 @@ Install, remove, or upgrade PACKAGES in a single transaction.\n"))
         (option '("roll-back") #f #f
                 (lambda (opt name arg result)
                   (alist-cons 'roll-back? #t result)))
+        (option '("search-paths") #f #f
+                (lambda (opt name arg result)
+                  (cons `(query search-paths) result)))
         (option '(#\p "profile") #t #f
                 (lambda (opt name arg result)
                   (alist-cons 'profile arg
@@ -728,7 +780,9 @@ Install, remove, or upgrade PACKAGES in a single transaction.\n"))
                                 (build-derivations (%store) (list prof-drv)))
                               (begin
                                 (switch-symlinks name prof)
-                                (switch-symlinks profile name))))))))))
+                                (switch-symlinks profile name)
+                                (display-search-paths packages
+                                                      profile))))))))))
 
   (define (process-query opts)
     ;; Process any query specified by OPTS.  Return #t when a query was
@@ -776,6 +830,16 @@ Install, remove, or upgrade PACKAGES in a single transaction.\n"))
            (for-each (cute package->recutils <> (current-output-port))
                      (find-packages-by-description regexp))
            #t))
+
+        (('search-paths)
+         (let* ((manifest (profile-manifest profile))
+                (packages (manifest-packages manifest))
+                (settings (search-path-environment-variables packages
+                                                             profile
+                                                             (const #f))))
+           (format #t "~{~a~%~}" settings)
+           #t))
+
         (_ #f))))
 
   (let ((opts (parse-options)))
diff --git a/guix/utils.scm b/guix/utils.scm
index aec07301da..7c8e914c01 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -61,6 +61,7 @@
             version-compare
             version>?
             package-name->name+version
+            string-tokenize*
             file-extension
             call-with-temporary-output-file
             fold2
@@ -517,6 +518,33 @@ introduce the version part."
   (let ((dot (string-rindex file #\.)))
     (and dot (substring file (+ 1 dot) (string-length file)))))
 
+(define (string-tokenize* string separator)
+  "Return the list of substrings of STRING separated by SEPARATOR.  This is
+like `string-tokenize', but SEPARATOR is a string."
+  (define (index string what)
+    (let loop ((string string)
+               (offset 0))
+      (cond ((string-null? string)
+             #f)
+            ((string-prefix? what string)
+             offset)
+            (else
+             (loop (string-drop string 1) (+ 1 offset))))))
+
+  (define len
+    (string-length separator))
+
+  (let loop ((string string)
+             (result  '()))
+    (cond ((index string separator)
+           =>
+           (lambda (offset)
+             (loop (string-drop string (+ offset len))
+                   (cons (substring string 0 offset)
+                         result))))
+          (else
+           (reverse (cons string result))))))
+
 (define (call-with-temporary-output-file proc)
   "Call PROC with a name of a temporary file and open output port to that
 file; close the file and delete it when leaving the dynamic extent of this
diff --git a/tests/builders.scm b/tests/builders.scm
index 880dddd0b6..1e6b62ee6a 100644
--- a/tests/builders.scm
+++ b/tests/builders.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,7 +25,8 @@
   #:use-module (guix utils)
   #:use-module (guix base32)
   #:use-module (guix derivations)
-  #:use-module ((guix packages) #:select (package-derivation))
+  #:use-module ((guix packages)
+                #:select (package-derivation package-native-search-paths))
   #:use-module (gnu packages bootstrap)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1)
@@ -50,6 +51,13 @@
               (list name (package-derivation %store package))))
             (@@ (gnu packages base) %boot0-inputs))))
 
+(define %bootstrap-search-paths
+  ;; Search path specifications that go with %BOOTSTRAP-INPUTS.
+  (append-map (match-lambda
+               ((name package _ ...)
+                (package-native-search-paths package)))
+              (@@ (gnu packages base) %boot0-inputs)))
+
 (define network-reachable?
   (false-if-exception (getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)))
 
@@ -83,7 +91,8 @@
          (build    (gnu-build %store "hello-2.8" tarball
                               %bootstrap-inputs
                               #:implicit-inputs? #f
-                              #:guile %bootstrap-guile))
+                              #:guile %bootstrap-guile
+                              #:search-paths %bootstrap-search-paths))
          (out      (derivation-path->output-path build)))
     (and (build-derivations %store (list (pk 'hello-drv build)))
          (valid-path? %store out)
diff --git a/tests/guix-package.sh b/tests/guix-package.sh
index 7b101aa501..5a514a0dc0 100644
--- a/tests/guix-package.sh
+++ b/tests/guix-package.sh
@@ -47,6 +47,10 @@ test -L "$profile" && test -L "$profile-1-link"
 ! test -f "$profile-2-link"
 test -f "$profile/bin/guile"
 
+# No search path env. var. here.
+guix package --search-paths -p "$profile"
+test "`guix package --search-paths -p "$profile" | wc -l`" = 0
+
 # Check whether we have network access.
 if guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)' 2> /dev/null
 then
@@ -119,6 +123,10 @@ then
     rm "$profile-1-link"
     guix package --bootstrap -p "$profile" --roll-back
     test "`readlink_base "$profile"`" = "$profile-0-link"
+
+    # Make sure LIBRARY_PATH gets listed by `--search-paths'.
+    guix package --bootstrap -p "$profile" -i guile-bootstrap -i gcc-bootstrap
+    guix package --search-paths -p "$profile" | grep LIBRARY_PATH
 fi
 
 # Make sure the `:' syntax works.
diff --git a/tests/packages.scm b/tests/packages.scm
index 22985d6e9a..1dd7b91ae8 100644
--- a/tests/packages.scm
+++ b/tests/packages.scm
@@ -22,6 +22,7 @@
   #:use-module (guix utils)
   #:use-module (guix derivations)
   #:use-module (guix packages)
+  #:use-module (guix build-system)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
@@ -160,6 +161,41 @@
          (let ((p (pk 'drv d (derivation-path->output-path d))))
            (eq? 'hello (call-with-input-file p read))))))
 
+(test-assert "search paths"
+  (let* ((p (make-prompt-tag "return-search-paths"))
+         (s (build-system
+             (name "raw")
+             (description "Raw build system with direct store access")
+             (build (lambda* (store name source inputs
+                                    #:key outputs system search-paths)
+                      search-paths))))
+         (x (list (search-path-specification
+                   (variable "GUILE_LOAD_PATH")
+                   (directories '("share/guile/site/2.0")))
+                  (search-path-specification
+                   (variable "GUILE_LOAD_COMPILED_PATH")
+                   (directories '("share/guile/site/2.0")))))
+         (a (package (inherit (dummy-package "guile"))
+              (build-system s)
+              (native-search-paths x)))
+         (b (package (inherit (dummy-package "guile-foo"))
+              (build-system s)
+              (inputs `(("guile" ,a)))))
+         (c (package (inherit (dummy-package "guile-bar"))
+              (build-system s)
+              (inputs `(("guile" ,a)
+                        ("guile-foo" ,b))))))
+    (let-syntax ((collect (syntax-rules ()
+                            ((_ body ...)
+                             (call-with-prompt p
+                               (lambda ()
+                                 body ...)
+                               (lambda (k search-paths)
+                                 search-paths))))))
+      (and (null? (collect (package-derivation %store a)))
+           (equal? x (collect (package-derivation %store b)))
+           (equal? x (collect (package-derivation %store c)))))))
+
 (unless (false-if-exception (getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV))
   (test-skip 1))
 (test-assert "GNU Make, bootstrap"
diff --git a/tests/utils.scm b/tests/utils.scm
index 2fc8eaec12..f14412e61e 100644
--- a/tests/utils.scm
+++ b/tests/utils.scm
@@ -66,6 +66,16 @@
            ("nixpkgs" "1.0pre22125_a28fe19")
            ("gtk2" "2.38.0"))))
 
+(test-equal "string-tokenize*"
+  '(("foo")
+    ("foo" "bar" "baz")
+    ("foo" "bar" "")
+    ("foo" "bar" "baz"))
+  (list (string-tokenize* "foo" ":")
+        (string-tokenize* "foo;bar;baz" ";")
+        (string-tokenize* "foo!bar!" "!")
+        (string-tokenize* "foo+-+bar+-+baz" "+-+")))
+
 (test-equal "fold2, 1 list"
     (list (reverse (iota 5))
           (map - (reverse (iota 5))))