summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/avahi.scm77
-rw-r--r--gnu/packages/base.scm114
-rw-r--r--gnu/packages/bootstrap.scm9
-rw-r--r--gnu/packages/cflow.scm51
-rw-r--r--gnu/packages/cmake.scm78
-rw-r--r--gnu/packages/cppi.scm45
-rw-r--r--gnu/packages/emacs.scm6
-rw-r--r--gnu/packages/fdisk.scm54
-rw-r--r--gnu/packages/gcc.scm241
-rw-r--r--gnu/packages/glib.scm60
-rw-r--r--gnu/packages/gnupg.scm19
-rw-r--r--gnu/packages/gnutls.scm4
-rw-r--r--gnu/packages/lsof.scm75
-rw-r--r--gnu/packages/lua.scm63
-rw-r--r--gnu/packages/make-bootstrap.scm1
-rw-r--r--gnu/packages/patches/cmake-fix-tests.patch45
-rw-r--r--gnu/packages/patches/emacs-configure-sh.patch11
-rw-r--r--gnu/packages/patches/glib-tests-prlimit.patch14
-rw-r--r--gnu/packages/patches/w3m-fix-compile.patch15
-rw-r--r--gnu/packages/texinfo.scm4
-rw-r--r--gnu/packages/vpn.scm50
-rw-r--r--gnu/packages/w3m.scm81
22 files changed, 973 insertions, 144 deletions
diff --git a/gnu/packages/avahi.scm b/gnu/packages/avahi.scm
new file mode 100644
index 0000000000..f7ce908351
--- /dev/null
+++ b/gnu/packages/avahi.scm
@@ -0,0 +1,77 @@
+;;; 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 avahi)
+  #:use-module ((guix licenses) #:select (lgpl2.1+))
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages gdbm)
+  #:use-module (gnu packages libdaemon)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages xml))
+
+(define-public avahi
+  (package
+    (name "avahi")
+    (version "0.6.31")
+    (home-page "http://avahi.org")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append home-page "/download/avahi-"
+                                 version ".tar.gz"))
+             (sha256
+              (base32
+               "0j5b5ld6bjyh3qhd2nw0jb84znq0wqai7fsrdzg7bpg24jdp2wl3"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("--with-distro=none"
+                           "--disable-python"
+                           "--disable-mono"
+                           "--disable-doxygen-doc"
+                           "--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)))
+    (inputs
+     `(("expat" ,expat)
+       ("glib" ,glib)
+       ("dbus" ,dbus)
+       ("libdaemon" ,libdaemon)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("gdbm" ,gdbm)))
+    (synopsis "Avahi, an mDNS/DNS-SD implementation")
+    (description
+     "Avahi is a system which facilitates service discovery on a local
+network.  It is an implementation of the mDNS (for \"Multicast DNS\") and
+DNS-SD (for \"DNS-Based Service Discovery\") protocols.")
+    (license lgpl2.1+)))
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index cba1f40c76..606e59b851 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -24,6 +24,7 @@
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bootstrap)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gawk)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages multiprecision)
@@ -382,119 +383,6 @@ BFD (Binary File Descriptor) library, `gprof', `nm', `strip', etc.")
    (license gpl3+)
    (home-page "http://www.gnu.org/software/binutils/")))
 
-(define-public gcc-4.7
-  (let ((stripped? #t))                         ; TODO: make this a parameter
-    (package
-     (name "gcc")
-     (version "4.7.2")
-     (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnu/gcc/gcc-"
-                                  version "/gcc-" version ".tar.bz2"))
-              (sha256
-               (base32
-                "115h03hil99ljig8lkrq4qk426awmzh0g99wrrggxf8g07bq74la"))))
-     (build-system gnu-build-system)
-     (inputs `(("gmp" ,gmp)
-               ("mpfr" ,mpfr)
-               ("mpc" ,mpc)))           ; TODO: libelf, ppl, cloog, zlib, etc.
-     (arguments
-      `(#:out-of-source? #t
-        #:strip-binaries? ,stripped?
-        #:configure-flags
-        `("--enable-plugin"
-          "--enable-languages=c,c++"
-          "--disable-multilib"
-
-          "--with-local-prefix=/no-gcc-local-prefix"
-
-          ,(let ((libc (assoc-ref %build-inputs "libc")))
-             (if libc
-                 (string-append "--with-native-system-header-dir=" libc
-                                "/include")
-                 "--without-headers")))
-        #:make-flags
-        (let ((libc (assoc-ref %build-inputs "libc")))
-          `(,@(if libc
-                  (list (string-append "LDFLAGS_FOR_TARGET="
-                                       "-B" libc "/lib "
-                                       "-Wl,-dynamic-linker "
-                                       "-Wl," libc
-                                       ,(glibc-dynamic-linker)))
-                  '())
-            ,(string-append "BOOT_CFLAGS=-O2 "
-                            ,(if stripped? "-g0" "-g"))))
-
-        #:tests? #f
-        #:phases
-        (alist-cons-before
-         'configure 'pre-configure
-         (lambda* (#:key inputs outputs #:allow-other-keys)
-           (let ((out  (assoc-ref outputs "out"))
-                 (libc (assoc-ref inputs "libc")))
-             (when libc
-               ;; The following is not performed for `--without-headers'
-               ;; cross-compiler builds.
-
-               ;; Fix the dynamic linker's file name.
-               (substitute* (find-files "gcc/config"
-                                        "^linux(64|-elf)?\\.h$")
-                 (("#define GLIBC_DYNAMIC_LINKER([^ ]*).*$" _ suffix)
-                  (format #f "#define GLIBC_DYNAMIC_LINKER~a \"~a\"~%"
-                          suffix
-                          (string-append libc ,(glibc-dynamic-linker)))))
-
-               ;; Tell where to find libstdc++, libc, and `?crt*.o', except
-               ;; `crt{begin,end}.o', which come with GCC.
-               (substitute* (find-files "gcc/config"
-                                        "^(gnu-user(64)?|linux-elf)\\.h$")
-                 (("#define LIB_SPEC (.*)$" _ suffix)
-                  ;; Note that with this "lib" spec, we may still add a
-                  ;; 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"
-                          libc libc out out suffix))
-                 (("#define STARTFILE_SPEC.*$" line)
-                  (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\"
-#define STANDARD_STARTFILE_PREFIX_2 \"\"
-~a~%"
-                          libc line))))
-
-             ;; Don't retain a dependency on the build-time sed.
-             (substitute* "fixincludes/fixincl.x"
-               (("static char const sed_cmd_z\\[\\] =.*;")
-                "static char const sed_cmd_z[] = \"sed\";"))))
-
-         (alist-cons-after
-          'configure 'post-configure
-          (lambda _
-            ;; Don't store configure flags, to avoid retaining references to
-            ;; build-time dependencies---e.g., `--with-ppl=/nix/store/xxx'.
-            (substitute* "Makefile"
-              (("^TOPLEVEL_CONFIGURE_ARGUMENTS=(.*)$" _ rest)
-               "TOPLEVEL_CONFIGURE_ARGUMENTS=\n")))
-          (alist-replace 'install
-                         (lambda* (#:key outputs #:allow-other-keys)
-                           (zero?
-                            (system* "make"
-                                     ,(if stripped?
-                                          "install-strip"
-                                          "install"))))
-                         %standard-phases)))))
-
-     (properties `((gcc-libc . ,(assoc-ref inputs "libc"))))
-     (synopsis "The GNU Compiler Collection")
-     (description
-      "The GNU Compiler Collection includes compiler front ends for C, C++,
-Objective-C, Fortran, OpenMP for C/C++/Fortran, Java, and Ada, as well as
-libraries for these languages (libstdc++, libgcj, libgomp,...).
-
-GCC development is a part of the GNU Project, aiming to improve the compiler
-used in the GNU system including the GNU/Linux variant.")
-     (license gpl3+)
-     (home-page "http://gcc.gnu.org/"))))
-
 (define-public glibc
   (package
    (name "glibc")
diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index 809eb84295..82a8db614f 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -104,7 +104,8 @@ check whether everything is alright."
        ("tarball" ,(bootstrap-origin (source* (%current-system))))))
     (synopsis description*)
     (description #f)
-    (home-page #f)))
+    (home-page #f)
+    (license #f)))
 
 (define package-with-bootstrap-guile
   (memoize
@@ -285,7 +286,8 @@ $out/bin/guile --version~%"
                           "08hv8i0axwnihrcgbz19x0a7s6zyv3yx38x8r29liwl8h82x9g88")))))))))
     (synopsis "Bootstrap binaries and headers of the GNU C Library")
     (description #f)
-    (home-page #f)))
+    (home-page #f)
+    (license lgpl2.1+)))
 
 (define %bootstrap-gcc
   ;; The initial GCC.  Uses binaries from a tarball typically built by
@@ -352,7 +354,8 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
                           "06wqs0xxnpw3hn0xjb4c9cs0899p1xwkcysa2rvzhvpra0c5vsg2")))))))))
     (synopsis "Bootstrap binaries of the GNU Compiler Collection")
     (description #f)
-    (home-page #f)))
+    (home-page #f)
+    (license gpl3+)))
 
 (define %bootstrap-inputs
   ;; The initial, pre-built inputs.  From now on, we can start building our
diff --git a/gnu/packages/cflow.scm b/gnu/packages/cflow.scm
new file mode 100644
index 0000000000..bb000ddc59
--- /dev/null
+++ b/gnu/packages/cflow.scm
@@ -0,0 +1,51 @@
+;;; 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 cflow)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix licenses)
+  #:use-module (gnu packages emacs))
+
+(define-public cflow
+  (package
+    (name "cflow")
+    (version "1.4")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://gnu/cflow/cflow-"
+                                 version ".tar.bz2"))
+             (sha256
+              (base32
+               "1jkbq97ajcf834z68hbn3xfhiz921zhn39gklml1racf0kb3jzh3"))))
+    (build-system gnu-build-system)
+    (home-page "http://www.gnu.org/software/cflow/")
+    (synopsis "A tool to analyze the control flow of C programs")
+    (description
+     "GNU cflow analyzes a collection of C source files and prints a
+graph, charting control flow within the program.
+
+GNU cflow is able to produce both direct and inverted flowgraphs
+for C sources.  Optionally a cross-reference listing can be
+generated.  Two output formats are implemented: POSIX and GNU
+(extended).
+
+The package also provides Emacs major mode for examining the
+produced flowcharts in Emacs.")
+   (license gpl3+)))
diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm
new file mode 100644
index 0000000000..734f55f330
--- /dev/null
+++ b/gnu/packages/cmake.scm
@@ -0,0 +1,78 @@
+;;; 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 cmake)
+  #: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 file))
+
+(define-public cmake
+  (package
+    (name "cmake")
+    (version "2.8.10.2")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "http://www.cmake.org/files/v"
+                   (substring version 0
+                    (string-index version #\. (+ 1 (string-index version #\.))))
+                   "/cmake-" version ".tar.gz"))
+             (sha256
+              (base32 "1c8fj6i2x9sb39wc9av2ighj415mw33cxfrlfpafcvm0knrlylnf"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:test-target "test"
+       #:patches (list (assoc-ref %build-inputs "fix-tests"))
+       #:patch-flags '("-p0")
+       #:phases (alist-replace
+                 'configure
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   (let ((out (assoc-ref outputs "out")))
+                     ;; Replace "/bin/sh" by the right path in... a lot of
+                     ;; files.
+                     (substitute*
+                       '("Modules/CompilerId/Xcode-3.pbxproj.in"
+                         "Modules/CompilerId/Xcode-1.pbxproj.in"
+                         "Modules/CompilerId/Xcode-2.pbxproj.in"
+                         "Modules/CPack.RuntimeScript.in"
+                         "Source/cmakexbuild.cxx"
+                         "Source/cmGlobalXCodeGenerator.cxx"
+                         "Source/CTest/cmCTestBatchTestHandler.cxx"
+                         "Source/cmLocalUnixMakefileGenerator3.cxx"
+                         "Utilities/cmbzip2/Makefile-libbz2_so"
+                         "Utilities/Release/release_cmake.cmake"
+                         "Utilities/cmlibarchive/libarchive/archive_write_set_format_shar.c"
+                         "Tests/CMakeLists.txt")
+                       (("/bin/sh") (which "sh")))
+                     (zero? (system* "./configure"
+                             (string-append "--prefix=" out)))))
+                 %standard-phases)))
+    (inputs
+     `(("file" ,file)
+       ("fix-tests" ,(search-patch "cmake-fix-tests.patch"))))
+    (home-page "http://www.cmake.org/")
+    (synopsis "A cross-platform, open-source build system")
+    (description
+     "CMake is a family of tools designed to build, test and package software.
+CMake is used to control the software compilation process using simple platform
+and compiler independent configuration files. CMake generates native makefiles
+and workspaces that can be used in the compiler environment of your choice.")
+    (license bsd-3)))
diff --git a/gnu/packages/cppi.scm b/gnu/packages/cppi.scm
new file mode 100644
index 0000000000..53f24698fc
--- /dev/null
+++ b/gnu/packages/cppi.scm
@@ -0,0 +1,45 @@
+;;; 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 cppi)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix licenses))
+
+(define-public cppi
+  (package
+    (name "cppi")
+    (version "1.18")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://gnu/cppi/cppi-"
+                                 version ".tar.xz"))
+             (sha256
+              (base32
+               "1jk42cjaggk71rimjnx3qpmb6hivps0917vl3z7wbxk3i2whb98j"))))
+    (build-system gnu-build-system)
+    (home-page "http://www.gnu.org/software/cppi/")
+    (synopsis "A cpp directive indenter")
+    (description
+     "GNU cppi indents C preprocessor directives to reflect their nesting and
+ensure that there is exactly one space character between each #if, #elif,
+#define directive and the following token.  The number of spaces between the
+`#' and the following directive must correspond to the level of nesting of
+that directive.")
+    (license gpl3+)))
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 6b2cda6e73..9a107967a3 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -31,14 +31,14 @@
 (define-public emacs
   (package
     (name "emacs")
-    (version "24.2")
+    (version "24.3")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/emacs/emacs-"
-                                 version ".tar.bz2"))
+                                 version ".tar.xz"))
              (sha256
               (base32
-               "13wbjfjmz13qpjwssy44nw2230lllmkkgjsy0rqfm6am2cf87n3k"))))
+               "1385qzs3bsa52s5rcncbrkxlydkw0ajzrvfxgv8rws5fx512kakh"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
diff --git a/gnu/packages/fdisk.scm b/gnu/packages/fdisk.scm
new file mode 100644
index 0000000000..5cf02a9014
--- /dev/null
+++ b/gnu/packages/fdisk.scm
@@ -0,0 +1,54 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.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 fdisk)
+  #:use-module ((guix licenses) #:select (gpl3+))
+  #:use-module ((gnu packages gettext)
+                #:renamer (symbol-prefix-proc 'guix:))
+  #:use-module (gnu packages guile)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages parted)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu))
+
+(define-public fdisk
+  (package
+    (name "fdisk")
+    (version "2.0.0a")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://gnu/fdisk/gnufdisk-"
+                          version ".tar.gz"))
+      (sha256
+       (base32
+        "04nd7civ561x2lwcmxhsqbprml3178jfc58fy1v7hzqg5k4nbhy3"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("gettext" ,guix:gettext)
+       ("guile" ,guile-1.8)
+       ("util-linux" ,util-linux)
+       ("parted" ,parted)))
+    (home-page "https://www.gnu.org/software/fdisk/")
+    (synopsis
+     "GNU Fdisk, a command-line disk partitioning tool")
+    (description
+     "GNU Fdisk provides alternatives to util-linux fdisk and util-linux
+cfdisk.  It uses GNU Parted.")
+    (license gpl3+)))
\ No newline at end of file
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
new file mode 100644
index 0000000000..a26dc24a4f
--- /dev/null
+++ b/gnu/packages/gcc.scm
@@ -0,0 +1,241 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2012, 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 gcc)
+  #:use-module (guix licenses)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages bootstrap)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages multiprecision)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu))
+
+(define %gcc-infrastructure
+  ;; Base URL for GCC's infrastructure.
+  "ftp://gcc.gnu.org/pub/gcc/infrastructure/")
+
+(define-public gcc-4.7
+  (let ((stripped? #t))                         ; TODO: make this a parameter
+    (package
+     (name "gcc")
+     (version "4.7.2")
+     (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnu/gcc/gcc-"
+                                  version "/gcc-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "115h03hil99ljig8lkrq4qk426awmzh0g99wrrggxf8g07bq74la"))))
+     (build-system gnu-build-system)
+     (inputs `(("gmp" ,gmp)
+               ("mpfr" ,mpfr)
+               ("mpc" ,mpc)))           ; TODO: libelf, ppl, cloog, zlib, etc.
+     (arguments
+      `(#:out-of-source? #t
+        #:strip-binaries? ,stripped?
+        #:configure-flags
+        `("--enable-plugin"
+          "--enable-languages=c,c++"
+          "--disable-multilib"
+
+          "--with-local-prefix=/no-gcc-local-prefix"
+
+          ,(let ((libc (assoc-ref %build-inputs "libc")))
+             (if libc
+                 (string-append "--with-native-system-header-dir=" libc
+                                "/include")
+                 "--without-headers")))
+        #:make-flags
+        (let ((libc (assoc-ref %build-inputs "libc")))
+          `(,@(if libc
+                  (list (string-append "LDFLAGS_FOR_TARGET="
+                                       "-B" libc "/lib "
+                                       "-Wl,-dynamic-linker "
+                                       "-Wl," libc
+                                       ,(glibc-dynamic-linker)))
+                  '())
+            ,(string-append "BOOT_CFLAGS=-O2 "
+                            ,(if stripped? "-g0" "-g"))))
+
+        #:tests? #f
+        #:phases
+        (alist-cons-before
+         'configure 'pre-configure
+         (lambda* (#:key inputs outputs #:allow-other-keys)
+           (let ((out  (assoc-ref outputs "out"))
+                 (libc (assoc-ref inputs "libc")))
+             (when libc
+               ;; The following is not performed for `--without-headers'
+               ;; cross-compiler builds.
+
+               ;; Fix the dynamic linker's file name.
+               (substitute* (find-files "gcc/config"
+                                        "^linux(64|-elf)?\\.h$")
+                 (("#define GLIBC_DYNAMIC_LINKER([^ ]*).*$" _ suffix)
+                  (format #f "#define GLIBC_DYNAMIC_LINKER~a \"~a\"~%"
+                          suffix
+                          (string-append libc ,(glibc-dynamic-linker)))))
+
+               ;; Tell where to find libstdc++, libc, and `?crt*.o', except
+               ;; `crt{begin,end}.o', which come with GCC.
+               (substitute* (find-files "gcc/config"
+                                        "^(gnu-user(64)?|linux-elf)\\.h$")
+                 (("#define LIB_SPEC (.*)$" _ suffix)
+                  ;; Note that with this "lib" spec, we may still add a
+                  ;; 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"
+                          libc libc out out suffix))
+                 (("#define STARTFILE_SPEC.*$" line)
+                  (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\"
+#define STANDARD_STARTFILE_PREFIX_2 \"\"
+~a~%"
+                          libc line))))
+
+             ;; Don't retain a dependency on the build-time sed.
+             (substitute* "fixincludes/fixincl.x"
+               (("static char const sed_cmd_z\\[\\] =.*;")
+                "static char const sed_cmd_z[] = \"sed\";"))))
+
+         (alist-cons-after
+          'configure 'post-configure
+          (lambda _
+            ;; Don't store configure flags, to avoid retaining references to
+            ;; build-time dependencies---e.g., `--with-ppl=/nix/store/xxx'.
+            (substitute* "Makefile"
+              (("^TOPLEVEL_CONFIGURE_ARGUMENTS=(.*)$" _ rest)
+               "TOPLEVEL_CONFIGURE_ARGUMENTS=\n")))
+          (alist-replace 'install
+                         (lambda* (#:key outputs #:allow-other-keys)
+                           (zero?
+                            (system* "make"
+                                     ,(if stripped?
+                                          "install-strip"
+                                          "install"))))
+                         %standard-phases)))))
+
+     (properties `((gcc-libc . ,(assoc-ref inputs "libc"))))
+     (synopsis "The GNU Compiler Collection")
+     (description
+      "The GNU Compiler Collection includes compiler front ends for C, C++,
+Objective-C, Fortran, OpenMP for C/C++/Fortran, Java, and Ada, as well as
+libraries for these languages (libstdc++, libgcj, libgomp,...).
+
+GCC development is a part of the GNU Project, aiming to improve the compiler
+used in the GNU system including the GNU/Linux variant.")
+     (license gpl3+)
+     (home-page "http://gcc.gnu.org/"))))
+
+(define-public isl
+  (package
+    (name "isl")
+    (version "0.11.1")
+    (source (origin
+             (method url-fetch)
+             (uri (list (string-append
+                         "ftp://ftp.linux.student.kuleuven.be/pub/people/skimo/isl/isl-"
+                         version
+                         ".tar.bz2")
+                        (string-append %gcc-infrastructure
+                                       name "-" version ".tar.gz")))
+             (sha256
+              (base32
+               "13d9cqa5rzhbjq0xf0b2dyxag7pqa72xj9dhsa03m8ccr1a4npq9"))))
+    (build-system gnu-build-system)
+    (inputs `(("gmp" ,gmp)))
+    (home-page "http://www.kotnet.org/~skimo/isl/")
+    (synopsis
+     "A library for manipulating sets and relations of integer points bounded
+by linear constraints")
+    (description
+     "isl is a library for manipulating sets and relations of integer points
+bounded by linear constraints. Supported operations on sets include
+intersection, union, set difference, emptiness check, convex hull, (integer)
+affine hull, integer projection, computing the lexicographic minimum using
+parametric integer programming, coalescing and parametric vertex
+enumeration. It also includes an ILP solver based on generalized basis
+reduction, transitive closures on maps (which may encode infinite graphs),
+dependence analysis and bounds on piecewise step-polynomials.")
+    (license lgpl2.1+)))
+
+(define-public cloog
+  (package
+    (name "cloog")
+    (version "0.18.0")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (list (string-append
+                  "http://www.bastoul.net/cloog/pages/download/count.php3?url=cloog-"
+                  version
+                  ".tar.gz")
+                 (string-append %gcc-infrastructure
+                                name "-" version ".tar.gz")))
+      (sha256
+       (base32
+        "0a12rwfwp22zd0nlld0xyql11cj390rrq1prw35yjsw8wzfshjhw"))
+      (file-name (string-append name "-" version ".tar.gz"))))
+    (build-system gnu-build-system)
+    (inputs `(("gmp" ,gmp)
+              ("isl" ,isl)))
+    (arguments '(#:configure-flags '("--with-isl=system")))
+    (home-page "http://www.cloog.org/")
+    (synopsis "A library to generate code for scanning Z-polyhedra")
+    (description
+     "CLooG is a free software library to generate code for scanning
+Z-polyhedra.  That is, it finds a code (e.g., in C, FORTRAN...) that
+reaches each integral point of one or more parameterized polyhedra.
+CLooG has been originally written to solve the code generation problem
+for optimizing compilers based on the polytope model.  Nevertheless it
+is used now in various area e.g., to build control automata for
+high-level synthesis or to find the best polynomial approximation of a
+function.  CLooG may help in any situation where scanning polyhedra
+matters.  While the user has full control on generated code quality,
+CLooG is designed to avoid control overhead and to produce a very
+effective code.")
+    (license gpl2+)))
+
+(define-public libelf
+  (package
+    (name "libelf")
+    (version "0.8.13")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "http://www.mr511.de/software/libelf-"
+                                 version ".tar.gz"))
+             (sha256
+              (base32
+               "0vf7s9dwk2xkmhb79aigqm0x0yfbw1j0b9ksm51207qwr179n6jr"))))
+    (build-system gnu-build-system)
+    (arguments '(#:phases (alist-replace
+                           'configure
+                           (lambda* (#:key outputs #:allow-other-keys)
+                             ;; This old `configure' script doesn't support
+                             ;; variables passed as arguments.
+                             (let ((out (assoc-ref outputs "out")))
+                               (setenv "CONFIG_SHELL" (which "bash"))
+                               (zero?
+                                (system* "./configure"
+                                         (string-append "--prefix=" out)))))
+                           %standard-phases)))
+    (home-page "http://www.mr511.de/software/english.html")
+    (synopsis "An ELF object file access library")
+    (description "libelf is a C library to access ELF object files.")
+    (license lgpl2.0+)))
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 1286700911..fdcc9bdc31 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -18,7 +18,7 @@
 ;;; 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+))
+  #:use-module ((guix licenses) #:select (lgpl2.0+ gpl2+ gpl2))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
@@ -76,7 +76,7 @@ shared NFS home directories.")
    (version "2.34.3")
    (source (origin
             (method url-fetch)
-            (uri (string-append "http://ftp.gnome.org/pub/gnome/sources/"
+            (uri (string-append "mirror://gnome/sources/"
                                 name "/2.34/"
                                 name "-" version ".tar.xz"))
             (sha256
@@ -99,11 +99,14 @@ shared NFS home directories.")
       ("patch/tests-homedir"
        ,(search-patch "glib-tests-homedir.patch"))
       ("patch/tests-desktop"
-       ,(search-patch "glib-tests-desktop.patch"))))
+       ,(search-patch "glib-tests-desktop.patch"))
+      ("patch/tests-prlimit"
+       ,(search-patch "glib-tests-prlimit.patch"))))
    (arguments
     '(#:patches (list (assoc-ref %build-inputs "patch/tests-tzdata")
                       (assoc-ref %build-inputs "patch/tests-homedir")
-                      (assoc-ref %build-inputs "patch/tests-desktop"))
+                      (assoc-ref %build-inputs "patch/tests-desktop")
+                      (assoc-ref %build-inputs "patch/tests-prlimit"))
       #:phases (alist-cons-before
                 'build 'pre-build
                 (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -124,3 +127,52 @@ 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+
+
+(define-public intltool
+  (package
+    (name "intltool")
+    (version "0.40.6")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "mirror://gnome/sources/intltool/0.40/intltool-"
+                   version
+                   ".tar.bz2"))
+             (sha256
+              (base32
+               "0r1vkvy5xzqk01yl6a0xlrry39bra24alkrx6279b77hc62my7jd"))))
+    (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)
+       ("perl" ,perl)))
+    (home-page "http://freedesktop.org/wiki/Software/intltool")
+    (synopsis "Tools to centralize translation of many different file formats")
+    (description
+     "intltool is a set of tools to centralize translation of many different
+file formats using GNU gettext-compatible PO files.
+
+The intltool collection can be used to do these things:
+
+    Extract translatable strings from various source files (.xml.in,
+    glade, .desktop.in, .server.in, .oaf.in).
+
+    Collect the extracted strings together with messages from traditional
+    source files (.c, .h) in po/$(PACKAGE).pot.
+
+    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)))
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index f26582fb22..1810b65fe8 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.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>
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -57,15 +57,14 @@ Daemon and possibly more in the future.")
 (define-public libgcrypt
   (package
     (name "libgcrypt")
-    (version "1.5.0")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-"
-                          version ".tar.bz2"))
-      (sha256
-       (base32
-        "1ykkh7dm0gyndz7bbpvn3agijj8xb2h02m02f42hm504c18zqqjb"))))
+    (version "1.5.1")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-"
+                                 version ".tar.bz2"))
+             (sha256
+              (base32
+               "09z5zbxhvg6c7n8qcm8h9ygr28qli2n83hfq1f69jsg711cb37md"))))
     (build-system gnu-build-system)
     (propagated-inputs
      `(("libgpg-error" ,libgpg-error)))
diff --git a/gnu/packages/gnutls.scm b/gnu/packages/gnutls.scm
index 0a681e3a88..dc571adc60 100644
--- a/gnu/packages/gnutls.scm
+++ b/gnu/packages/gnutls.scm
@@ -52,7 +52,7 @@ portable, and only require an ANSI C89 platform.")
 (define-public gnutls
   (package
     (name "gnutls")
-    (version "3.1.6")
+    (version "3.1.9.1")
     (source (origin
              (method url-fetch)
              (uri
@@ -62,7 +62,7 @@ portable, and only require an ANSI C89 platform.")
                              version ".tar.xz"))
              (sha256
               (base32
-               "0zsybr9plllk1phh83bx9bg7c5ccik427j4n3k1s9fiy4j69n0w3"))))
+               "0gkwhz7sypfy39jfj2yzrngbxq5j9l9smqc89mqlqsh25spc8009"))))
     (build-system gnu-build-system)
     (inputs
      `(("guile" ,guile-2.0)
diff --git a/gnu/packages/lsof.scm b/gnu/packages/lsof.scm
new file mode 100644
index 0000000000..d0cdefd533
--- /dev/null
+++ b/gnu/packages/lsof.scm
@@ -0,0 +1,75 @@
+;;; 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 lsof)
+  #: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 perl))
+
+(define-public lsof
+  (package
+   (name "lsof")
+   (version "4.87")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append "ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_"
+                                version ".tar.bz2"))
+            (sha256 (base32
+                     "0b6si72sml7gr9784ak491cxxbm9mx5bh174yg6rrirbv04kgpfz"))))
+   (build-system gnu-build-system)
+   (inputs `(("perl" ,perl)))
+   (arguments
+    `(#:tests? #f ; no test target
+      #:phases
+      (alist-replace
+       'unpack
+       (lambda* (#:key source name version #:allow-other-keys)
+         (let ((unpack (assoc-ref %standard-phases 'unpack)))
+           (apply unpack (list #:source source))
+           (apply unpack (list #:source (car (find-files "." "\\.tar$"))))))
+      (alist-replace
+       'configure
+       (lambda* (#:key #:allow-other-keys)
+         (setenv "LSOF_CC" "gcc")
+         (setenv "LSOF_MAKE" "make")
+         (system* "./Configure" "linux"))
+      (alist-replace
+       'install
+       (lambda* (#:key outputs #:allow-other-keys)
+         (let ((out (assoc-ref outputs "out")))
+           (mkdir out)
+           (mkdir (string-append out "/bin"))
+           (copy-file "lsof" (string-append out "/bin/lsof"))
+           (mkdir (string-append out "/share"))
+           (mkdir (string-append out "/share/man"))
+           (mkdir (string-append out "/share/man/man8"))
+           (copy-file "lsof.8" (string-append out "/share/man/man8/lsof.8"))
+         ))
+       %standard-phases)))))
+   (synopsis "lsof displays information about open files")
+   (description
+    "Lsof stands for LiSt Open Files, and it does just that.
+It lists information about files that are open by the processes running
+on the system.")
+   (license (license:fsf-free
+             "file://00FAQ"
+             "License inspired by zlib, see point 1.9 of 00FAQ in the distribution."))
+   (home-page "http://people.freebsd.org/~abe/")))
diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm
new file mode 100644
index 0000000000..14fc28ced0
--- /dev/null
+++ b/gnu/packages/lua.scm
@@ -0,0 +1,63 @@
+;;; 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 lua)
+  #: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 readline))
+
+(define-public lua
+  (package
+    (name "lua")
+    (version "5.2.1")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "http://www.lua.org/ftp/lua-"
+                                 version ".tar.gz"))
+             (sha256
+              (base32 "1rbv2ysq5fdksz7xg07dnrkl8i0gnx855hg4z6b324vng6l4sc34"))))
+    (build-system gnu-build-system)
+    (inputs `(("readline", readline)))
+    (arguments
+     '(#:modules ((guix build gnu-build-system)
+                    (guix build utils)
+                    (srfi srfi-1))
+       #:test-target "test"
+       #:phases (alist-replace
+                 'build
+                 (lambda _ (zero? (system* "make" "linux"))) ; XXX: Other OS.
+                 (alist-replace
+                  'install
+                  (lambda* (#:key outputs #:allow-other-keys)
+                    (let ((out (assoc-ref outputs "out")))
+                      (zero? (system
+                              (string-append "make install INSTALL_TOP=" out)))))
+                  (alist-delete 'configure %standard-phases)))))
+    (home-page "http://www.lua.org/")
+    (synopsis "An embeddable scripting language.")
+    (description
+     "Lua is a powerful, fast, lightweight, embeddable scripting language.  Lua
+combines simple procedural syntax with powerful data description constructs
+based on associative arrays and extensible semantics. Lua is dynamically typed,
+runs by interpreting bytecode for a register-based virtual machine, and has
+automatic memory management with incremental garbage collection, making it ideal
+for configuration, scripting, and rapid prototyping.")
+    (license x11)))
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index 3bb926bd36..40e3e21210 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -27,6 +27,7 @@
   #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gawk)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages bdw-gc)
   #:use-module (gnu packages linux)
diff --git a/gnu/packages/patches/cmake-fix-tests.patch b/gnu/packages/patches/cmake-fix-tests.patch
new file mode 100644
index 0000000000..ae28ca336b
--- /dev/null
+++ b/gnu/packages/patches/cmake-fix-tests.patch
@@ -0,0 +1,45 @@
+--- Tests/CMakeLists.txt	2013-03-20 22:57:13.000000000 +0100
++++ Tests/CMakeLists.txt	2013-03-20 22:58:02.000000000 +0100
+@@ -1706,16 +1706,17 @@
+     PASS_REGULAR_EXPRESSION "Could not find executable"
+     FAIL_REGULAR_EXPRESSION "SegFault")
+ 
+-  configure_file(
+-    "${CMake_SOURCE_DIR}/Tests/CTestTestUpload/test.cmake.in"
+-    "${CMake_BINARY_DIR}/Tests/CTestTestUpload/test.cmake"
+-    @ONLY ESCAPE_QUOTES)
+-  add_test(CTestTestUpload ${CMAKE_CTEST_COMMAND}
+-    -S "${CMake_BINARY_DIR}/Tests/CTestTestUpload/test.cmake" -V
+-    --output-log "${CMake_BINARY_DIR}/Tests/CTestTestUpload/testOut.log"
+-    )
+-  set_tests_properties(CTestTestUpload PROPERTIES
+-    PASS_REGULAR_EXPRESSION "Upload\\.xml")
++# This test requires network connectivity: skip it.
++#  configure_file(
++#    "${CMake_SOURCE_DIR}/Tests/CTestTestUpload/test.cmake.in"
++#    "${CMake_BINARY_DIR}/Tests/CTestTestUpload/test.cmake"
++#    @ONLY ESCAPE_QUOTES)
++#  add_test(CTestTestUpload ${CMAKE_CTEST_COMMAND}
++#    -S "${CMake_BINARY_DIR}/Tests/CTestTestUpload/test.cmake" -V
++#    --output-log "${CMake_BINARY_DIR}/Tests/CTestTestUpload/testOut.log"
++#    )
++#  set_tests_properties(CTestTestUpload PROPERTIES
++#    PASS_REGULAR_EXPRESSION "Upload\\.xml")
+ 
+   configure_file(
+     "${CMake_SOURCE_DIR}/Tests/CTestTestConfigFileInBuildDir/test1.cmake.in"
+--- Utilities/cmcurl/CMakeLists.txt	2013-03-20 22:57:13.000000000 +0100
++++ Utilities/cmcurl/CMakeLists.txt	2013-03-20 23:08:41.000000000 +0100
+@@ -729,8 +729,9 @@
+ ADD_EXECUTABLE(LIBCURL Testing/curltest.c)
+ TARGET_LINK_LIBRARIES(LIBCURL cmcurl ${CMAKE_DL_LIBS})
+ 
+-IF(CMAKE_CURL_TEST_URL)
+-  ADD_TEST(curl LIBCURL ${CMAKE_CURL_TEST_URL})
+-ENDIF(CMAKE_CURL_TEST_URL)
++# This test requires network connectivity: skip it.
++#IF(CMAKE_CURL_TEST_URL)
++#  ADD_TEST(curl LIBCURL ${CMAKE_CURL_TEST_URL})
++#ENDIF(CMAKE_CURL_TEST_URL)
+ 
+ INSTALL(FILES COPYING DESTINATION ${CMake_DOC_DEST}/cmcurl)
diff --git a/gnu/packages/patches/emacs-configure-sh.patch b/gnu/packages/patches/emacs-configure-sh.patch
index fd34d06ced..6f5f3fe93a 100644
--- a/gnu/packages/patches/emacs-configure-sh.patch
+++ b/gnu/packages/patches/emacs-configure-sh.patch
@@ -1,14 +1,13 @@
 Make sure the right shell is used when creating src/epaths.h.
 
---- emacs-24.2/configure	2013-01-13 17:01:53.000000000 +0100
-+++ emacs-24.2/configure	2013-01-13 17:01:57.000000000 +0100
-@@ -24135,7 +24135,7 @@ done
+--- emacs-24.3/configure	2013-03-14 17:42:26.000000000 +0100
++++ emacs-24.3/configure	2013-03-14 17:42:58.000000000 +0100
+@@ -26463,7 +26463,7 @@ done
   ;;
      "epaths":C)
  echo creating src/epaths.h
--${MAKE-make} epaths-force
-+${MAKE-make} epaths-force SHELL="$CONFIG_SHELL"
+-${MAKE-make} MAKEFILE_NAME=do-not-make-Makefile epaths-force
++${MAKE-make} MAKEFILE_NAME=do-not-make-Makefile epaths-force SHELL="$CONFIG_SHELL"
   ;;
      "gdbinit":C)
  if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then
-
diff --git a/gnu/packages/patches/glib-tests-prlimit.patch b/gnu/packages/patches/glib-tests-prlimit.patch
new file mode 100644
index 0000000000..f2b2a61bee
--- /dev/null
+++ b/gnu/packages/patches/glib-tests-prlimit.patch
@@ -0,0 +1,14 @@
+prlimit(2) returns ENOSYS on Linux 2.6.32-5-xen-amd64 as found on
+hydra.gnu.org, and strace(1) doesn't recognize it.
+
+--- glib-2.34.3/glib/tests/thread.c	2012-11-20 15:27:12.000000000 +0100
++++ glib-2.34.3/glib/tests/thread.c	2013-03-27 14:48:31.000000000 +0100
+@@ -130,7 +130,7 @@ test_thread3 (void)
+ static void
+ test_thread4 (void)
+ {
+-#ifdef HAVE_PRLIMIT
++#if 0
+   struct rlimit ol, nl;
+   GThread *thread;
+   GError *error;
diff --git a/gnu/packages/patches/w3m-fix-compile.patch b/gnu/packages/patches/w3m-fix-compile.patch
new file mode 100644
index 0000000000..5604052f67
--- /dev/null
+++ b/gnu/packages/patches/w3m-fix-compile.patch
@@ -0,0 +1,15 @@
+https://bugs.archlinux.org/task/33397
+
+diff -aur old/main.c new/main.c
+--- main.c	2013-01-14 18:16:14.216210053 -0600
++++ main.c	2013-01-14 18:17:28.816220559 -0600
+@@ -833,7 +833,8 @@
+     mySignal(SIGPIPE, SigPipe);
+ #endif
+
+-    orig_GC_warn_proc = GC_set_warn_proc(wrap_GC_warn_proc);
++    orig_GC_warn_proc = GC_get_warn_proc();
++    GC_set_warn_proc(wrap_GC_warn_proc);
+     err_msg = Strnew();
+     if (load_argc == 0) {
+	/* no URL specified */
diff --git a/gnu/packages/texinfo.scm b/gnu/packages/texinfo.scm
index 96016c053d..4194f48ffe 100644
--- a/gnu/packages/texinfo.scm
+++ b/gnu/packages/texinfo.scm
@@ -28,14 +28,14 @@
 (define-public texinfo
   (package
     (name "texinfo")
-    (version "5.0")
+    (version "5.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/texinfo/texinfo-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1p34f68h9ggfj6ckgj0p62qlj7pmz3ha3vc91kh4hr44pnwm1pla"))))
+               "0864v5i488x3mb3v5p6nhy2kw0mqkzpa3b0453iibj81zlpq078q"))))
     (build-system gnu-build-system)
     (inputs `(("ncurses" ,ncurses)
               ("xz" ,xz)))
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index 9393e1e7b4..4cd90cd7f2 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -23,8 +23,14 @@
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
+  #:use-module (gnu packages compression)
+  #:use-module ((gnu packages gettext)
+                #:renamer (symbol-prefix-proc 'gnu:))
   #:use-module (gnu packages gnupg)
-  #:use-module (gnu packages perl))
+  #:use-module (gnu packages openssl)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages xml))
 
 (define-public vpnc
   (package
@@ -64,3 +70,45 @@ shared-secret IPSec authentication with Xauth, AES (256, 192, 128), 3DES,
 Only \"Universal TUN/TAP device driver support\" is needed in the kernel.")
    (license license:gpl2+) ; some file are bsd-2, see COPYING
    (home-page "http://www.unix-ag.uni-kl.de/~massar/vpnc/")))
+
+
+(define-public openconnect
+  (package
+   (name "openconnect")
+   (version "4.99")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append "ftp://ftp.infradead.org/pub/openconnect/openconnect-"
+                                version ".tar.gz"))
+            (sha256 (base32
+                     "1rd8pap455wzkx19i0sy3cqap524b6fwcjvqynxp6lhm01di4bd6"))))
+   (build-system gnu-build-system)
+   (inputs
+    `(("gettext" ,gnu:gettext)
+      ("libxml2" ,libxml2)
+      ("openssl" ,openssl)
+      ("pkg-config" ,pkg-config)
+      ("vpnc" ,vpnc)
+      ("zlib" ,zlib)))
+   (arguments
+    `(#:phases
+      (alist-replace
+       'configure
+       (lambda* (#:key inputs #:allow-other-keys #:rest args)
+         (let ((vpnc (assoc-ref inputs "vpnc"))
+               (configure (assoc-ref %standard-phases 'configure)))
+           (apply configure
+                  (append args
+                          (list '#:configure-flags
+                                (list (string-append "--with-vpnc-script="
+                                                     vpnc
+                                                     "/etc/vpnc/vpnc-script")))))))
+       %standard-phases)))
+   (synopsis "client for cisco vpn")
+   (description
+    "OpenConnect is a client for Cisco's AnyConnect SSL VPN, which is
+supported by the ASA5500 Series, by IOS 12.4(9)T or later on Cisco SR500,
+870, 880, 1800, 2800, 3800, 7200 Series and Cisco 7301 Routers,
+and probably others.")
+   (license license:lgpl2.1)
+   (home-page "http://www.infradead.org/openconnect/")))
diff --git a/gnu/packages/w3m.scm b/gnu/packages/w3m.scm
new file mode 100644
index 0000000000..9199cbd488
--- /dev/null
+++ b/gnu/packages/w3m.scm
@@ -0,0 +1,81 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.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 w3m)
+  #:use-module ((guix licenses) #:select (x11-style))
+  #:use-module ((gnu packages gettext)
+                #:renamer (symbol-prefix-proc 'guix:))
+  #:use-module (gnu packages bdw-gc)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages openssl)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu))
+
+(define-public w3m
+  (package
+    (name "w3m")
+    (version "0.5.3")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://sourceforge/w3m/w3m-"
+                          version ".tar.gz"))
+      (sha256
+       (base32
+        "1qx9f0kprf92r1wxl3sacykla0g04qsi0idypzz24b7xy9ix5579"))))
+    (build-system gnu-build-system)
+    (arguments `(#:tests? #f  ; no check target
+                 #:phases (alist-cons-before
+                           'configure 'fix-perl
+                           (lambda _
+                             ;; https://launchpad.net/bugs/935540
+                             ;; 'struct file_handle' is used by 'glibc'
+                             (substitute* '("istream.c" "istream.h")
+                              (("struct[[:blank:]]+file_handle")
+                               "struct w3m_file_handle"))
+                             (substitute* '("scripts/w3mmail.cgi.in"
+                                            "scripts/dirlist.cgi.in")
+                               (("@PERL@") (which "perl"))))
+                           %standard-phases)
+                 ;; cf. https://bugs.archlinux.org/task/33397
+                 #:patches (list (assoc-ref %build-inputs
+                                            "patch/fix-compile"))
+                 #:patch-flags '("-p0")))
+    (inputs
+     `(("gettext" ,guix:gettext)
+       ("libgc" ,libgc)
+       ("ncurses" ,ncurses)
+       ("openssl" ,openssl)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("zlib" ,zlib)
+       ("patch/fix-compile" ,(search-patch "w3m-fix-compile.patch"))))
+    (home-page "http://w3m.sourceforge.net/")
+    (synopsis "w3m, a text-mode web browser")
+    (description
+     "w3m is a text-based web browser as well as a pager like 'more' or
+'less'.  With w3m you can browse web pages through a terminal emulator
+window.  Moreover, w3m can be used as a text formatting tool which
+typesets HTML into plain text.")
+    (license (x11-style "file://doc/README"
+                        "See 'doc/README' in the distribution."))))