import: gnu: Update to the (guix upstream) API.
[jackhill/guix/guix.git] / gnu / packages / admin.scm
index dc6a83b..455f7ee 100644 (file)
@@ -1,8 +1,11 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
-;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
+;;; Copyright © 2015 Alex Sassmannshausen <alex.sassmannshausen@gmail.com>
+;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages admin)
-  #:use-module (guix licenses)
+  #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
+  #:use-module (guix utils)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages tcl)
-  #:use-module ((gnu packages base)
-                #:select (tar))
-  #:use-module ((gnu packages compression)
-                #:select (gzip))
-  #:use-module ((gnu packages openssl)
-                #:renamer (symbol-prefix-proc 'o:))
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages gnupg)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages popt)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages groff)
-  #:use-module (gnu packages xorg))
+  #:use-module (gnu packages pciutils)
+  #:use-module (gnu packages libusb)
+  #:use-module (gnu packages libftdi)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages man))
 
 (define-public dmd
-  (package
-    (name "dmd")
-    (version "0.1")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "ftp://alpha.gnu.org/gnu/dmd/dmd-"
-                                 version ".tar.gz"))
-             (sha256
-              (base32
-               "07mddw0p62fcphwjzgb6rfa0pjz5sy6jzbha0sm2vc3rqf459jxg"))
-             (patches (list (search-patch "dmd-getpw.patch")
-                            (search-patch "dmd-tests-longer-sleeps.patch")))))
-    (build-system gnu-build-system)
-    (arguments
-     '(#:configure-flags '("--localstatedir=/var")))
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("guile" ,guile-2.0)))
-    (synopsis "Daemon managing daemons")
-    (description
-     "GNU DMD is a daemon-managing daemon, meaning that it manages the
+  (let ((base-version "0.2")
+        (patch-level  "01"))
+    (package
+      (name "dmd")
+      (version (string-append base-version "." patch-level))
+      (source (origin
+                (method url-fetch)
+                (uri (string-append "ftp://alpha.gnu.org/gnu/dmd/dmd-"
+                                    base-version ".tar.gz"))
+                (sha256
+                 (base32
+                  "10fl4k96f17gqx2fv8iw9c61ld26gsk4bbrlfqckdmiimz1k175z"))
+                (patches
+                 (list (origin
+                         ;; This patch augments 'make-fork+exec-constructor' and
+                         ;; is used by a bunch of services.
+                         (method url-fetch)
+                         (uri (string-append
+                               "http://git.savannah.gnu.org/cgit/dmd.git/patch/"
+                               "?id=d1d0ff30b3ed2b86b0a3c9bc048d2a855f8e31e6"))
+                         (sha256
+                          (base32
+                           "1lqymypixfiyb72d6bn24m06ry2q1ljnnv0qrc89pbb4z9azaa4d"))
+                         (file-name "dmd-user-group.patch"))))))
+      (build-system gnu-build-system)
+      (arguments
+       '(#:configure-flags '("--localstatedir=/var")))
+      (native-inputs `(("pkg-config" ,pkg-config)))
+      (inputs `(("guile" ,guile-2.0)))
+      (synopsis "Daemon managing daemons")
+      (description
+       "GNU DMD is a daemon-managing daemon, meaning that it manages the
 execution of system services, replacing similar functionality found in
 typical init systems.  It provides dependency-handling through a convenient
 interface and is based on GNU Guile.")
-    (license gpl3+)
-    (home-page "http://www.gnu.org/software/dmd/")))
+      (license license:gpl3+)
+      (home-page "http://www.gnu.org/software/dmd/"))))
 
 (define-public dfc
   (package
    (name "dfc")
-   (version "3.0.3")
+   (version "3.0.4")
    (source
     (origin
      (method url-fetch)
       (uri (string-append
-            "http://projects.gw-computing.net/attachments/download/78/dfc-"
+            "http://projects.gw-computing.net/attachments/download/79/dfc-"
             version ".tar.gz"))
       (sha256
        (base32
-        "1b4hfqv23l87cb37fxwzfk2sgspkyxpr3ig2hsd23hr6mm982j7z"))))
+        "0zk1ppx93ijimf4sbgqilxxikpsa2gmpbynknyh41xy7jbdjxp0b"))))
    (build-system cmake-build-system)
    (arguments '(#:tests? #f)) ; There are no tests.
    (native-inputs `(("gettext" ,gnu-gettext)))
@@ -98,19 +119,19 @@ interface and is based on GNU Guile.")
    (description
     "dfc (df color) is a modern version of df.  It uses colors, draws pretty
 graphs and can export its output to different formats.")
-   (license bsd-3)))
+   (license license:bsd-3)))
 
 (define-public htop
   (package
    (name "htop")
-   (version "1.0.2")
+   (version "1.0.3")
    (source (origin
             (method url-fetch)
-            (uri (string-append "mirror://sourceforge/htop/"
+            (uri (string-append "http://hisham.hm/htop/releases/"
                   version "/htop-" version ".tar.gz"))
             (sha256
              (base32
-              "18fqrhvnm7h4c3939av8lpiwrwxbyw6hcly0jvq0vkjf0ixnaq7f"))))
+              "0a8qbpsifzjwc4f45xfwm48jhm59g6q5hlib4bf7z13mgy95fp05"))))
    (build-system gnu-build-system)
    (inputs
     `(("ncurses" ,ncurses)))
@@ -119,7 +140,7 @@ graphs and can export its output to different formats.")
    (description
     "This is htop, an interactive process viewer.  It is a text-mode
 application (for console or X terminals) and requires ncurses.")
-   (license gpl2)))
+   (license license:gpl2)))
 
 (define-public pies
   (package
@@ -141,19 +162,19 @@ application (for console or X terminals) and requires ncurses.")
 other programs.  It reads the list of programs to be started from its
 configuration file, executes them, and then monitors their status,
 re-executing them as necessary.")
-    (license gpl3+)))
+    (license license:gpl3+)))
 
 (define-public inetutils
   (package
     (name "inetutils")
-    (version "1.9.2")
+    (version "1.9.4")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/inetutils/inetutils-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "04wrm0v7l4890mmbaawd6wjwdv08bkglgqhpz0q4dkb0l50fl8q4"))))
+               "05n65k4ixl85dc6rxc51b1b732gnmm8xnqi424dy9f1nz7ppb3xy"))))
     (build-system gnu-build-system)
     (arguments `(;; FIXME: `tftp.sh' relies on `netstat' from utils-linux,
                  ;; which is currently missing.
@@ -165,22 +186,20 @@ re-executing them as necessary.")
     (description
      "Inetutils is a collection of common network programs, such as an ftp
 client and server, a telnet client and server, and an rsh client and server.")
-    (license gpl3+)))
+    (license license:gpl3+)))
 
 (define-public shadow
   (package
     (name "shadow")
-    (version "4.1.5.1")
+    (version "4.2.1")
     (source (origin
-             ;; Shadow has no real upstream, and not even tarballs.
-             ;; See <https://lists.gnu.org/archive/html/guix-devel/2014-03/msg00233.html>.
-             (method git-fetch)
-             (uri (git-reference
-                   (url "git://git.debian.org/git/pkg-shadow/shadow")
-                   (commit (string-append "upstream/" version))))
-             (sha256
-              (base32
-               "1xx85d83kmacmjzqbamgydcjkwsqd5fi1s2wgwx6myq5wa39qx0n"))))
+              (method url-fetch)
+              (uri (string-append
+                    "http://pkg-shadow.alioth.debian.org/releases/"
+                    name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0h9x1zdbq0pqmygmc1x459jraiqw4gqz8849v268crk78z8r621v"))))
     (build-system gnu-build-system)
     (arguments
      '(;; Assume System V `setpgrp (void)', which is the default on GNU
@@ -201,7 +220,7 @@ client and server, a telnet client and server, and an rsh client and server.")
                     ;; Remove `groups', which is already provided by Coreutils.
                     (let* ((out (assoc-ref outputs "out"))
                            (bin (string-append out "/bin"))
-                           (man (string-append out "/share/man/man1")))
+                           (man (string-append out "/share/man")))
                       (delete-file (string-append bin "/groups"))
                       (for-each delete-file (find-files man "^groups\\."))
                       #t))
@@ -220,7 +239,7 @@ login, passwd, su, groupadd, and useradd.")
 
     ;; The `vipw' program is GPLv2+.
     ;; libmisc/salt.c is public domain.
-    (license bsd-3)))
+    (license license:bsd-3)))
 
 (define-public mingetty
   (package
@@ -270,20 +289,20 @@ login, passwd, su, groupadd, and useradd.")
      "Small console getty that is started on the Linux text console,
 asks for a login name and then transfers over to 'login'.  It is extended to
 allow automatic login and starting any app.")
-    (license gpl2+)))
+    (license license:gpl2+)))
 
 (define-public net-base
   (package
     (name "net-base")
-    (version "5.2")
+    (version "5.3")
     (source (origin
              (method url-fetch)
              (uri (string-append
                    "mirror://debian/pool/main/n/netbase/netbase_"
-                   version ".tar.gz"))
+                   version ".tar.xz"))
              (sha256
               (base32
-               "01rkvqrg7krkx8b432nz6bpi8w3s4cm5q5r891k23cdrc9nsaayn"))))
+               "12xqjwg3p4rzmmh2iib6sigm9l29y3dgk74mmnw64k84jnbwdxl1"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -293,10 +312,10 @@ allow automatic login and starting any app.")
 
                    (let* ((source (assoc-ref %build-inputs "source"))
                           (tar    (assoc-ref %build-inputs "tar"))
-                          (gzip   (assoc-ref %build-inputs "gzip"))
+                          (xz     (assoc-ref %build-inputs "xz"))
                           (output (assoc-ref %outputs "out"))
                           (etc    (string-append output "/etc")))
-                     (setenv "PATH" (string-append gzip "/bin"))
+                     (setenv "PATH" (string-append xz "/bin"))
                      (system* (string-append tar "/bin/tar") "xvf"
                               source)
                      (chdir ,(string-append "netbase-" version))
@@ -307,14 +326,14 @@ allow automatic login and starting any app.")
                                     '("services" "protocols" "rpc")))
                      #t))))
     (native-inputs `(("tar" ,tar)
-                     ("gzip" ,gzip)))
+                     ("xz" ,xz)))
     (synopsis "IANA protocol, port, and RPC number assignments")
     (description
      "This package provides the /etc/services, /etc/protocols, and /etc/rpc
 files, which contain information about the IANA-assigned port, protocol, and
-ONC RPC numbers")
+ONC RPC numbers.")
     (home-page "http://packages.debian.org/sid/netbase")
-    (license gpl2)))
+    (license license:gpl2)))
 
 (define-public netcat
   (package
@@ -341,10 +360,10 @@ ONC RPC numbers")
      "Netcat is a featured networking utility which reads and writes data
 across network connections, using the TCP/IP protocol.  It is designed to be a
 reliable \"back-end\" tool that can be used directly or easily driven by other
-programs and scripts. At the same time, it is a feature-rich network debugging
+programs and scripts.  At the same time, it is a feature-rich network debugging
 and exploration tool, since it can create almost any kind of connection you
 would need and has several interesting built-in capabilities.")
-    (license gpl2+)))
+    (license license:gpl2+)))
 
 (define-public alive
   (package
@@ -366,19 +385,19 @@ would need and has several interesting built-in capabilities.")
     (description
      "GNU Alive sends periodic pings to a server, generally to keep a
 connection alive.")
-    (license gpl3+)))
+    (license license:gpl3+)))
 
 (define-public isc-dhcp
   (package
     (name "isc-dhcp")
-    (version "4.3.0")
+    (version "4.3.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://ftp.isc.org/isc/dhcp/"
                                   version "/dhcp-" version ".tar.gz"))
               (sha256
                (base32
-                "12mydvj6x3zcl3gla06bywfkkrgg03g66fijs94mwb7kbiym3dm7"))))
+                "1w4s7sni1m9223ya8m2a64lr62845c6xlraprjf8zfx6lylbqv16"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (alist-cons-after
@@ -405,9 +424,14 @@ connection alive.")
 
                      (system* "tar" "xf" "bind.tar.gz")
                      (for-each patch-shebang
-                               (find-files "bind-9.9.5" ".*"))
+                               (find-files "bind-9.9.5-P1" ".*"))
                      (zero? (system* "tar" "cf" "bind.tar.gz"
-                                     "bind-9.9.5"))))
+                                     "bind-9.9.5-P1"
+                                     ;; avoid non-determinism in the archive
+                                     "--sort=name"
+                                     "--mtime=@0"
+                                     "--owner=root:0"
+                                     "--group=root:0"))))
                  (alist-cons-after
                   'install 'post-install
                   (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -416,6 +440,7 @@ connection alive.")
                     (let* ((out       (assoc-ref outputs "out"))
                            (libexec   (string-append out "/libexec"))
                            (coreutils (assoc-ref inputs "coreutils"))
+                           (inetutils (assoc-ref inputs "inetutils"))
                            (net-tools (assoc-ref inputs "net-tools"))
                            (sed       (assoc-ref inputs "sed")))
                       (substitute* "client/scripts/linux"
@@ -427,17 +452,19 @@ connection alive.")
                       (copy-file "client/scripts/linux"
                                  (string-append libexec "/dhclient-script"))
 
-                      (wrap-program (string-append libexec "/dhclient-script")
-                                    `("PATH" ":" prefix
-                                      ,(map (lambda (dir)
-                                              (string-append dir "/bin:"
-                                                             dir "/sbin"))
-                                            (list net-tools coreutils sed))))))
+                      (wrap-program
+                          (string-append libexec "/dhclient-script")
+                        `("PATH" ":" prefix
+                          ,(map (lambda (dir)
+                                  (string-append dir "/bin:"
+                                                 dir "/sbin"))
+                                (list inetutils net-tools coreutils sed))))))
                   %standard-phases))))
 
     (native-inputs `(("perl" ,perl)))
 
-    (inputs `(("net-tools" ,net-tools)
+    (inputs `(("inetutils" ,inetutils)
+              ("net-tools" ,net-tools)
               ("iproute" ,iproute)
 
               ;; When cross-compiling, we need the cross Coreutils and sed.
@@ -453,7 +480,7 @@ connection alive.")
      "ISC's Dynamic Host Configuration Protocol (DHCP) distribution provides a
 reference implementation of all aspects of DHCP, through a suite of DHCP
 tools: server, client, and relay agent.")
-    (license isc)))
+    (license license:isc)))
 
 (define-public libpcap
   (package
@@ -468,7 +495,8 @@ tools: server, client, and relay agent.")
                 "14wyjywrdi1ikaj6yc9c72m6m2r64z94lb0gm7k1a3q6q5cj3scs"))))
     (build-system gnu-build-system)
     (native-inputs `(("bison" ,bison) ("flex" ,flex)))
-    (arguments '(#:tests? #f))                    ; no 'check' target
+    (arguments '(#:configure-flags '("--with-pcap=linux")
+                 #:tests? #f))                    ; no 'check' target
     (home-page "http://www.tcpdump.org")
     (synopsis "Network packet capture library")
     (description
@@ -477,7 +505,7 @@ portable framework for low-level network monitoring.  Applications include
 network statistics collection, security monitoring, network debugging, etc.")
 
     ;; fad-*.c and a couple other files are BSD-4, but the rest is BSD-3.
-    (license bsd-3)))
+    (license license:bsd-3)))
 
 (define-public tcpdump
   (package
@@ -492,14 +520,14 @@ network statistics collection, security monitoring, network debugging, etc.")
                 "15hb7zkzd66nag102qbv100hcnf7frglbkylmr8adwr8f5jkkaql"))))
     (build-system gnu-build-system)
     (inputs `(("libpcap" ,libpcap)
-              ("openssl" ,o:openssl)))
+              ("openssl" ,openssl)))
     (native-inputs `(("perl" ,perl)))        ; for tests
     (home-page "http://www.tcpdump.org/")
     (synopsis "Network packet analyzer")
     (description
      "Tcpdump is a command-line tool to analyze network traffic passing
 through the network interface controller.")
-    (license bsd-3)))
+    (license license:bsd-3)))
 
 (define-public jnettop
   (package
@@ -525,7 +553,7 @@ through the network interface controller.")
      "Jnettop is a traffic visualiser, which captures traffic going
 through the host it is running from and displays streams sorted
 by bandwidth they use.")
-    (license gpl2+)))
+    (license license:gpl2+)))
 
 (define-public clusterssh
   (package
@@ -571,7 +599,7 @@ by bandwidth they use.")
      "ClusterSSH controls a number of xterm windows via a single graphical
 console window to allow commands to be interactively run on multiple servers
 over ssh connections.")
-    (license gpl2+)))
+    (license license:gpl2+)))
 
 (define-public rottlog
   (package
@@ -614,12 +642,12 @@ automatically rotate out log files when they have reached a given size or
 according to a given schedule.  It can also be used to automatically compress
 and archive such logs.  Rot[t]log will mail reports of its activity to the
 system administrator.")
-    (license gpl3+)))
+    (license license:gpl3+)))
 
 (define-public sudo
   (package
     (name "sudo")
-    (version "1.8.10p2")
+    (version "1.8.10p3")
     (source (origin
               (method url-fetch)
               (uri
@@ -629,10 +657,13 @@ system administrator.")
                                     version ".tar.gz")))
               (sha256
                (base32
-                "1wbrygz584abmywklq0b4xhqn3s1bjk3rrladslr5nycdpdvhv5s"))))
+                "002l6h27pnhb77b65frhazbhknsxvrsnkpi43j7i0qw1lrgi7nkf"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags '("--with-logpath=/var/log/sudo.log")
+     `(#:configure-flags '("--with-logpath=/var/log/sudo.log"
+                           "--with-rundir=/run/sudo"
+                           "--with-vardir=/var/db/sudo"
+                           "--with-iologdir=/var/log/sudo-io")
        #:phases (alist-cons-before
                  'configure 'pre-configure
                  (lambda _
@@ -646,7 +677,13 @@ system administrator.")
                       "")
                      (("^install: (.*)install-sudoers(.*)" _ before after)
                       ;; Don't try to create /etc/sudoers.
-                      (string-append "install: " before after "\n"))))
+                      (string-append "install: " before after "\n"))
+                     (("\\$\\(DESTDIR\\)\\$\\(rundir\\)")
+                      ;; Don't try to create /run/sudo.
+                      "$(TMPDIR)/dummy")
+                     (("\\$\\(DESTDIR\\)\\$\\(vardir\\)")
+                      ;; Don't try to create /var/db/sudo.
+                      "$(TMPDIR)/dummy")))
                  %standard-phases)
 
        ;; XXX: The 'testsudoers' test series expects user 'root' to exist, but
@@ -665,21 +702,21 @@ commands as root or another user while providing an audit trail of the
 commands and their arguments.")
 
     ;; See <http://www.sudo.ws/sudo/license.html>.
-    (license x11)))
+    (license license:x11)))
 
-(define-public wpa-supplicant
+(define-public wpa-supplicant-minimal
   (package
-    (name "wpa-supplicant")
-    (version "2.1")
+    (name "wpa-supplicant-minimal")
+    (version "2.5")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://hostap.epitest.fi/releases/wpa_supplicant-"
+                    "http://w1.fi/releases/wpa_supplicant-"
                     version
                     ".tar.gz"))
               (sha256
                (base32
-                "0xxjw7lslvql1ykfbwmbhdrnjsjljf59fbwf837418s97dz2wqwi"))))
+                "05mkp5bx1c3z7h5biddsv0p49gkrq9ksany3anp4wdiv92p5prfc"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (alist-replace
@@ -690,15 +727,36 @@ commands and their arguments.")
                    (let ((port (open-file ".config" "al")))
                      (display "
       CONFIG_DEBUG_SYSLOG=y
-      CONFIG_CTRL_IFACE_DBUS=y
-      CONFIG_CTRL_IFACE_DBUS_NEW=y
-      CONFIG_CTRL_IFACE_DBUS_INTRO=y
+
+      # Choose GnuTLS (the default is OpenSSL.)
+      CONFIG_TLS=gnutls
+
       CONFIG_DRIVER_NL80211=y
       CFLAGS += $(shell pkg-config libnl-3.0 --cflags)
       CONFIG_LIBNL32=y
       CONFIG_READLINE=y\n" port)
                      (close-port port)))
-                 %standard-phases)
+
+                 (alist-cons-after
+                  'install 'install-man-pages
+                  (lambda* (#:key outputs #:allow-other-keys)
+                    (let* ((out  (assoc-ref outputs "out"))
+                           (man  (string-append out "/share/man"))
+                           (man5 (string-append man "/man5"))
+                           (man8 (string-append man "/man8")))
+                      (define (copy-man-page target)
+                        (lambda (file)
+                          (copy-file file
+                                     (string-append target "/"
+                                                    (basename file)))))
+
+                      (mkdir-p man5) (mkdir man8)
+                      (for-each (copy-man-page man5)
+                                (find-files "doc/docbook" "\\.5"))
+                      (for-each (copy-man-page man8)
+                                (find-files "doc/docbook" "\\.8"))
+                      #t))
+                  %standard-phases))
 
       #:make-flags (list "CC=gcc"
                          (string-append "BINDIR=" (assoc-ref %outputs "out")
@@ -709,11 +767,11 @@ commands and their arguments.")
     (inputs
      `(("readline" ,readline)
        ("libnl" ,libnl)
-       ("dbus" ,dbus)
-       ("openssl" ,o:openssl)))
+       ("gnutls" ,gnutls)
+       ("libgcrypt" ,libgcrypt)))                 ;needed by crypto_gnutls.c
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://hostap.epitest.fi/wpa_supplicant/")
+    (home-page "http://w1.fi/wpa_supplicant/")
     (synopsis "Connecting to WPA and WPA2-protected wireless networks")
     (description
      "wpa_supplicant is a WPA Supplicant with support for WPA and WPA2 (IEEE
@@ -725,7 +783,35 @@ WLAN driver.
 This package provides the 'wpa_supplicant' daemon and the 'wpa_cli' command.")
 
     ;; In practice, this is linked against Readline, which makes it GPLv3+.
-    (license bsd-3)))
+    (license license:bsd-3)))
+
+(define-public wpa-supplicant
+  (package (inherit wpa-supplicant-minimal)
+    (name "wpa-supplicant")
+    (inputs `(("dbus" ,dbus)
+              ,@(package-inputs wpa-supplicant-minimal)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments wpa-supplicant-minimal)
+       ((#:phases phases)
+        `(alist-cons-after
+          'configure 'configure-for-dbus
+          (lambda _
+            (let ((port (open-file ".config" "al")))
+              (display "
+      CONFIG_CTRL_IFACE_DBUS=y
+      CONFIG_CTRL_IFACE_DBUS_NEW=y
+      CONFIG_CTRL_IFACE_DBUS_INTRO=y\n" port)
+              (close-port port))
+            #t)
+          (alist-cons-after
+           'install-man-pages 'install-dbus-conf
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (dir (string-append out "/etc/dbus-1/system.d")))
+               (mkdir-p dir)
+               (copy-file "dbus/dbus-wpa_supplicant.conf"
+                          (string-append dir "/wpa_supplicant.conf"))))
+           ,phases)))))))
 
 (define-public wakelan
   (package
@@ -763,4 +849,369 @@ This package provides the 'wpa_supplicant' daemon and the 'wpa_cli' command.")
     (description
      "WakeLan broadcasts a properly formatted UDP packet across the local area
 network, which causes enabled computers to power on.")
-    (license gpl2+)))
+    (license license:gpl2+)))
+
+(define-public dmidecode
+  (package
+    (name "dmidecode")
+    (version "2.12")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://savannah/dmidecode/dmidecode-"
+                    version ".tar.bz2"))
+              (sha256
+               (base32
+                "122hgaw8mpqdfra159lfl6pyk3837giqx6vq42j64fjnbl2z6gwi"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases (alist-delete 'configure %standard-phases)
+       #:tests? #f                                ; no 'check' target
+       #:make-flags (list (string-append "prefix="
+                                         (assoc-ref %outputs "out")))))
+    (home-page "http://www.nongnu.org/dmidecode/")
+    (synopsis "Read hardware information from the BIOS")
+    (description
+     "Dmidecode reports information about your system's hardware as described
+in your system BIOS according to the SMBIOS/DMI standard.  This typically
+includes system manufacturer, model name, serial number, BIOS version, asset
+tag as well as a lot of other details of varying level of interest and
+reliability depending on the manufacturer.  This will often include usage
+status for the CPU sockets, expansion slots (e.g. AGP, PCI, ISA) and memory
+module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
+    (license license:gpl2+)))
+
+(define-public acpica
+  (package
+    (name "acpica")
+    (version "20150410")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://acpica.org/sites/acpica/files/acpica-unix2-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "0q1fjwkyw9x6gsva6fd0zbn7ly4fx0ha4853f416np9kf2irillw"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("flex" ,flex)
+                     ("bison" ,bison)))
+    (arguments
+     '(#:make-flags (list (string-append "PREFIX=" %output)
+                          "HOST=_LINUX"
+                          "OPT_CFLAGS=-Wall -fno-strict-aliasing")
+       #:tests? #f  ; no 'check' target.
+       #:phases (alist-delete 'configure %standard-phases)))
+    (home-page "http://acpica.org/")
+    (synopsis "Tools for the development and debug of ACPI tables")
+    (description
+     "The ACPI Component Architecture (ACPICA) project provides an
+OS-independent reference implementation of the Advanced Configuration and
+Power Interface Specification (ACPI).  ACPICA code contains those portions of
+ACPI meant to be directly integrated into the host OS as a kernel-resident
+subsystem, and a small set of tools to assist in developing and debugging ACPI
+tables.  This package contains only the user-space tools needed for ACPI table
+development, not the kernel implementation of ACPI.")
+    (license license:gpl2)))  ; Dual GPLv2/ACPICA Licence
+
+(define-public stress
+  (package
+    (name "stress")
+    (version "1.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://debian/pool/main/s/stress/stress_"
+                                  version ".orig.tar.gz"))
+              (sha256
+               (base32
+                "1v9vnzlihqfjsxa93hdbrq72pqqk00dkylmlg8jpxhm7s1w9qfl1"))))
+    (build-system gnu-build-system)
+    (home-page "http://packages.debian.org/wheezy/stress")
+    (synopsis "Impose load on and stress test a computer system")
+    (description
+     "Stress is a tool that imposes a configurable amount of CPU, memory, I/O,
+or disk stress on a POSIX-compliant operating system and reports any errors it
+detects.
+
+Stress is not a benchmark.  It is a tool used by system administrators to
+evaluate how well their systems will scale, by kernel programmers to evaluate
+perceived performance characteristics, and by systems programmers to expose
+the classes of bugs which only or more frequently manifest themselves when the
+system is under heavy load.")
+    (license license:gpl2+)))
+
+(define-public detox
+  (package
+    (name "detox")
+    (version "1.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/detox/detox-"
+                                  version ".tar.bz2"))
+              (sha256
+               (base32
+                "1y6vvjqsg54kl49cry73jbfhr04s7wjs779vrr9zrq6kww7dkymb"))))
+    (build-system gnu-build-system)
+    ;; Both flex and popt are used in this case for their runtime libraries
+    ;; (libfl and libpopt).
+    (inputs
+     `(("flex" ,flex)
+       ("popt" ,popt)))
+    (arguments
+     `(#:configure-flags `(,(string-append "--with-popt="
+                                           (assoc-ref %build-inputs "popt")))
+       #:tests? #f))                    ;no 'check' target
+    (home-page "http://detox.sourceforge.net")
+    (synopsis "Clean up file names")
+    (description
+     "Detox is a program that renames files to make them easier to work with
+under Unix and related operating systems.  Spaces and various other unsafe
+characters (such as \"$\") get replaced with \"_\".  ISO 8859-1 (Latin-1)
+characters can be replaced as well, as can UTF-8 characters.")
+    (license license:bsd-3)))
+
+(define-public testdisk
+  (package
+    (name "testdisk")
+    (version "6.14")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.cgsecurity.org/testdisk-"
+                                  version ".tar.bz2"))
+              (sha256
+               (base32
+                "0v1jap83f5h99zv01v3qmqm160d36n4ysi0gyq7xzb3mqgmw75x5"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(;; ("ntfs" ,ntfs)
+       ("util-linux" ,util-linux)
+       ("openssl" ,openssl)
+       ("zlib" ,zlib)
+       ("e2fsprogs" ,e2fsprogs)
+       ("libjpeg" ,libjpeg)
+       ("ncurses" ,ncurses)))
+    (home-page "http://www.cgsecurity.org/wiki/TestDisk")
+    (synopsis "Data recovery tool")
+    (description
+     "TestDisk is a program for data recovery, primarily designed to help
+recover lost partitions and/or make non-booting disks bootable again.")
+    (license license:gpl2+)))
+
+(define-public tree
+  (package
+    (name "tree")
+    (version "1.7.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://mama.indstate.edu/users/ice/tree/src/tree-"
+                    version ".tgz"))
+              (sha256
+               (base32 "04kviw799qxly08zb8n5mgxfd96gyis6x69q2qiw86jnh87c4mv9"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases (alist-delete 'configure %standard-phases)
+       #:tests? #f                      ; no check target
+       #:make-flags (let ((out (assoc-ref %outputs "out")))
+                               (list (string-append "prefix=" out)))))
+    (synopsis "Recursively list the contents of a directory")
+    (description
+     "Tree is a recursive directory listing command that produces a depth
+indented listing of files, which is colorized ala dircolors if the LS_COLORS
+environment variable is set and output is to tty.")
+    (home-page "http://mama.indstate.edu/users/ice/tree/")
+    (license license:gpl2+)))
+
+(define-public direvent
+  (package
+    (name "direvent")
+    (version "5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnu/direvent/direvent-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1i14131y6m8wvirz6piw4zxz2q1kbpl0lniv5kl55rx4k372dg8z"))
+              (modules '((guix build utils)))
+              (snippet '(substitute* "tests/testsuite"
+                          (("#![[:blank:]]?/bin/sh")
+                           "#!$SHELL")))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases (alist-cons-before
+                 'build 'patch-/bin/sh
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   ;; Use the right shell when executing the watcher.
+                   (let ((bash (assoc-ref inputs "bash")))
+                     (substitute* "src/direvent.c"
+                       (("\"/bin/sh\"")
+                        (string-append "\"" bash "/bin/sh\"")))))
+                 %standard-phases)))
+    (home-page "http://www.gnu.org/software/direvent/")
+    (synopsis "Daemon to monitor directories for events such as file removal")
+    (description
+     "A daemon that monitors directories for events, such as creating,
+deleting or modifying files.  It can monitor different sets of directories for
+different events.  When an event is detected, direvent calls a specified
+external program with information about the event, such as the location
+within the file system where it occurred.  Thus, \"direvent\" provides an
+easy way to react immediately if given files undergo changes, for example, to
+track changes in important system configuration files.")
+    (license license:gpl3+)))
+
+(define-public libcap-ng
+  (package
+    (name "libcap-ng")
+    (version "0.7.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://people.redhat.com/sgrubb/libcap-ng/libcap-ng-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "0ssvnh4cvhya0c1j6k6192zvqcq7nc0x01fb5nwhr0prfqr0i8j8"))))
+    (build-system gnu-build-system)
+    (inputs `(("python" ,python)))
+    (home-page "http://people.redhat.com/sgrubb/libcap-ng/")
+    (synopsis "Library for more easily working with POSIX capabilities")
+    (description
+     "The libcap-ng library is intended to make programming with POSIX
+capabilities easier than the traditional libcap library.  It includes
+utilities that can analyse all currently running applications and print out
+any capabilities and whether or not it has an open ended bounding set.  The
+included utilities are designed to let admins and developers spot apps from
+various ways that may be running with too much privilege.")
+    ;; The library is lgpl2.1+, but also ships some utils which are gpl2+.
+    (license (list license:lgpl2.1+ license:gpl2+))))
+
+(define-public smartmontools
+  (package
+    (name "smartmontools")
+    (version "6.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://sourceforge/smartmontools/smartmontools/"
+                    version "/smartmontools-" version ".tar.gz"))
+              (sha256
+               (base32
+                "06gy71jh2d3gcfmlbbrsqw7215knkfq59q3j6qdxfrar39fhcxx7"))))
+    (build-system gnu-build-system)
+    (inputs `(("libcap-ng" ,libcap-ng)))
+    (home-page "http://www.smartmontools.org/")
+    (synopsis "S.M.A.R.T. harddisk control and monitoring tools")
+    (description
+     "The smartmontools package contains utility programs to control and
+monitor storage systems using the Self-Monitoring, Analysis and Reporting
+Technology System (S.M.A.R.T.) built into most modern ATA and SCSI harddisks.
+In many cases, these utilities will provide advanced warning of disk
+degradation and failure.")
+    (license license:gpl2+)))
+
+(define-public fdupes
+  (package
+    (name "fdupes")
+    (version "1.51")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/adrianlopezroche/fdupes/archive/fdupes-"
+             version ".tar.gz"))
+       (sha256
+        (base32
+         "11j96vxl9vg3jsnxqxskrv3gad6dh7hz2zpyc8n31xzyxka1c7kn"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases (alist-delete 'configure %standard-phases)
+       #:tests? #f ; no 'check' target
+       #:make-flags (list (string-append "PREFIX="
+                                         (assoc-ref %outputs "out")))))
+    (home-page "https://github.com/adrianlopezroche/fdupes")
+    (synopsis "Identify duplicate files")
+    (description
+     "fdupes is a program for identifying duplicate files residing within
+specified directories.")
+    (license license:expat)))
+
+(define-public graphios
+  (package
+   (name "graphios")
+   (version "2.0.3")
+   (source
+    (origin
+      (method url-fetch)
+      (uri (string-append
+            "https://pypi.python.org/packages/source/g/graphios/graphios-"
+            version ".tar.gz"))
+      (sha256
+       (base32
+        "1h87hvc315wg6lklbf4l7csd3n5pgljwrfli1p3nasdi0izgn66i"))))
+   (build-system python-build-system)
+   (arguments
+    ;; Be warned: Building with Python 3 succeeds, but the build process
+    ;; throws a syntax error that is ignored.
+    `(#:python ,python-2
+      #:phases
+      (modify-phases %standard-phases
+        (add-before 'build 'fix-setup.py
+          (lambda* (#:key outputs #:allow-other-keys)
+            ;; Fix hardcoded, unprefixed file names.
+            (let ((out (assoc-ref outputs "out")))
+              (substitute* '("setup.py")
+                (("/etc") (string-append out "/etc"))
+                (("/usr") out)
+                (("distro_ver = .*") "distro_ver = ''"))
+              #t))))))
+   (inputs
+    `(("python-setuptools" ,python2-setuptools)))
+   (home-page "https://github.com/shawn-sterling/graphios")
+   (synopsis "Emit Nagios metrics to Graphite, Statsd, and Librato")
+   (description
+    "Graphios is a script to emit nagios perfdata to various upstream metrics
+processing and time-series systems.  It's currently compatible with Graphite,
+Statsd, Librato and InfluxDB.  Graphios can emit Nagios metrics to any number
+of supported upstream metrics systems simultaneously.")
+   (license license:gpl2+)))
+
+(define-public ansible
+  (package
+    (name "ansible")
+    (version "1.9.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://pypi.python.org/packages/source/a/ansible/ansible-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "007fzgsqaahb0y4gjdxxmir9kcni7wph2z14jhqgpz88idrz8pn2"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python2-setuptools" ,python2-setuptools)
+       ("python2-pycrypto" ,python2-pycrypto)
+       ("python2-httplib2" ,python2-httplib2)
+       ("python2-passlib" ,python2-passlib)
+       ("python2-nose" ,python2-nose)
+       ("python2-mock" ,python2-mock)
+       ("python2-jinja2" ,python2-jinja2)
+       ("python2-pyyaml" ,python2-pyyaml)
+       ("python2-paramiko" ,python2-paramiko)))
+    (inputs
+     `(("python2-pycrypto" ,python2-pycrypto)
+       ("python2-jinja2" ,python2-jinja2)
+       ("python2-pyyaml" ,python2-pyyaml)
+       ("python2-paramiko" ,python2-paramiko)))
+    (arguments
+     `(#:python ,python-2)) ; incompatible with Python 3
+    (home-page "http://ansible.com/")
+    (synopsis "Radically simple IT automation")
+    (description "Ansible is a radically simple IT automation system.  It
+handles configuration-management, application deployment, cloud provisioning,
+ad-hoc task-execution, and multinode orchestration - including trivializing
+things like zero downtime rolling updates with load balancers.")
+    (license license:gpl3+)))