gnu: docbook-xsl update to 1.78.1
[jackhill/guix/guix.git] / gnu / packages / admin.scm
index 89df1a9..8b7a2c0 100644 (file)
@@ -2,6 +2,7 @@
 ;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,6 +23,7 @@
   #:use-module (guix licenses)
   #:use-module (guix packages)
   #: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 trivial)
   #:use-module (gnu packages guile)
   #: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 bison)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages glib)
-  #:use-module (gnu packages pkg-config))
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages texinfo)
+  #:use-module (gnu packages groff)
+  #:use-module (gnu packages xorg))
 
 (define-public dmd
   (package
     (name "dmd")
-    (version "0.1")
+    (version "0.2")
     (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")))))
+               "10fl4k96f17gqx2fv8iw9c61ld26gsk4bbrlfqckdmiimz1k175z"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--localstatedir=/var")))
@@ -164,13 +170,15 @@ client and server, a telnet client and server, and an rsh client and server.")
     (name "shadow")
     (version "4.1.5.1")
     (source (origin
-             (method url-fetch)
-             (uri (string-append
-                   "http://pkg-shadow.alioth.debian.org/releases/shadow-"
-                   version ".tar.bz2"))
+             ;; 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
-               "1yvqx57vzih0jdy3grir8vfbkxp0cl0myql37bnmi2yn90vk6cma"))))
+               "1xx85d83kmacmjzqbamgydcjkwsqd5fi1s2wgwx6myq5wa39qx0n"))))
     (build-system gnu-build-system)
     (arguments
      '(;; Assume System V `setpgrp (void)', which is the default on GNU
@@ -265,15 +273,15 @@ allow automatic login and starting any app.")
 (define-public net-base
   (package
     (name "net-base")
-    (version "5.1")
+    (version "5.2")
     (source (origin
              (method url-fetch)
              (uri (string-append
-                   "http://ftp.de.debian.org/debian/pool/main/n/netbase/netbase_"
+                   "mirror://debian/pool/main/n/netbase/netbase_"
                    version ".tar.gz"))
              (sha256
               (base32
-               "17l8xk2x632id5f9x9v5fs9wqc650hldd2lf3dh90r1zisj1ya8d"))))
+               "01rkvqrg7krkx8b432nz6bpi8w3s4cm5q5r891k23cdrc9nsaayn"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -427,11 +435,15 @@ connection alive.")
 
     (native-inputs `(("perl" ,perl)))
 
-    ;; Even Coreutils and sed are needed here in case we're cross-compiling.
-    (inputs `(("coreutils" ,coreutils)
-              ("sed" ,sed)
-              ("net-tools" ,net-tools)
-              ("iproute" ,iproute)))
+    (inputs `(("net-tools" ,net-tools)
+              ("iproute" ,iproute)
+
+              ;; When cross-compiling, we need the cross Coreutils and sed.
+              ;; Otherwise just use those from %FINAL-INPUTS.
+              ,@(if (%current-target-system)
+                    `(("coreutils" ,coreutils)
+                      ("sed" ,sed))
+                    '())))
 
     (home-page "http://www.isc.org/products/DHCP/")
     (synopsis "Dynamic Host Configuration Protocol (DHCP) tools")
@@ -465,6 +477,28 @@ 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)))
 
+(define-public tcpdump
+  (package
+    (name "tcpdump")
+    (version "4.5.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.tcpdump.org/release/tcpdump-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "15hb7zkzd66nag102qbv100hcnf7frglbkylmr8adwr8f5jkkaql"))))
+    (build-system gnu-build-system)
+    (inputs `(("libpcap" ,libpcap)
+              ("openssl" ,o: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)))
+
 (define-public jnettop
   (package
     (name "jnettop")
@@ -490,3 +524,241 @@ network statistics collection, security monitoring, network debugging, etc.")
 through the host it is running from and displays streams sorted
 by bandwidth they use.")
     (license gpl2+)))
+
+(define-public clusterssh
+  (package
+    (name "clusterssh")
+    (version "3.28")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/clusterssh/"
+                                  "clusterssh-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1bwggpvaj2al5blg1ynapviv2kpydffpzq2zkhi81najnvzc1rr7"))))
+    (build-system gnu-build-system)
+    (inputs `(("perl" ,perl)))
+    (propagated-inputs `(("xterm" ,xterm)
+                         ("perl-tk" ,perl-tk)
+                         ("perl-x11-protocol" ,perl-x11-protocol)))
+    (arguments
+     `(#:phases
+       (alist-cons-after
+        'install 'set-load-paths
+        (lambda* (#:key inputs outputs #:allow-other-keys)
+          ;; Put the perl-tk and perl-x11-protocol modules in the perl inc
+          ;; path for PROG
+          (let* ((out  (assoc-ref outputs "out"))
+                 (prog (string-append out "/bin/cssh"))
+                 (perl-ver ,(package-version perl))
+                 (x11-inc (string-append
+                           (assoc-ref inputs "perl-x11-protocol")
+                           "/lib/perl5/site_perl/" perl-ver))
+                 (tk-inc (string-append
+                          (assoc-ref inputs "perl-tk")
+                          "/lib/perl5/site_perl/" perl-ver
+                          "/x86_64-linux")))
+            (wrap-program
+             prog
+             `("PERL5LIB" ":" prefix (,x11-inc ,tk-inc)))))
+        %standard-phases)))
+    ;; The clusterssh.sourceforge.net address requires login to view
+    (home-page "http://sourceforge.net/projects/clusterssh/")
+    (synopsis "Secure concurrent multi-server terminal control")
+    (description
+     "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+)))
+
+(define-public rottlog
+  (package
+    (name "rottlog")
+    (version "0.72.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnu/rottlog/rottlog-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0751mb9l2f0jrk3vj6q8ilanifd121dliwk0c34g8k0dlzsv3kd7"))
+              (modules '((guix build utils)))
+              (snippet
+               '(substitute* "Makefile.in"
+                  (("-o \\$\\{LOG_OWN\\} -g \\$\\{LOG_GROUP\\}")
+                   ;; Don't try to chown root.
+                   "")
+                  (("mkdir -p \\$\\(ROTT_STATDIR\\)")
+                   ;; Don't attempt to create /var/lib/rottlog.
+                   "true")))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags (list (string-append "ROTT_ETCDIR="
+                                              (assoc-ref %outputs "out")
+                                              "/etc")
+                               "--localstatedir=/var")
+       #:phases (alist-cons-after
+                 'install 'install-info
+                 (lambda _
+                   (zero? (system* "make" "install-info")))
+                 %standard-phases)))
+    (native-inputs `(("texinfo" ,texinfo)
+                     ("util-linux" ,util-linux))) ; for 'cal'
+    (home-page "http://www.gnu.org/software/rottlog/")
+    (synopsis "Log rotation and management")
+    (description
+     "GNU Rot[t]log is a program for managing log files.  It is used to
+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+)))
+
+(define-public sudo
+  (package
+    (name "sudo")
+    (version "1.8.10p2")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (list (string-append "http://www.sudo.ws/sudo/dist/sudo-"
+                                    version ".tar.gz")
+                     (string-append "ftp://ftp.sudo.ws/pub/sudo/OLD/sudo-"
+                                    version ".tar.gz")))
+              (sha256
+               (base32
+                "1wbrygz584abmywklq0b4xhqn3s1bjk3rrladslr5nycdpdvhv5s"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("--with-logpath=/var/log/sudo.log")
+       #:phases (alist-cons-before
+                 'configure 'pre-configure
+                 (lambda _
+                   (substitute* "configure"
+                     ;; Refer to the right executables.
+                     (("/usr/bin/mv") (which "mv"))
+                     (("/usr/bin/sh") (which "sh")))
+                   (substitute* (find-files "." "Makefile\\.in")
+                     (("-O [[:graph:]]+ -G [[:graph:]]+")
+                      ;; Allow installation as non-root.
+                      "")
+                     (("^install: (.*)install-sudoers(.*)" _ before after)
+                      ;; Don't try to create /etc/sudoers.
+                      (string-append "install: " before after "\n"))))
+                 %standard-phases)
+
+       ;; XXX: The 'testsudoers' test series expects user 'root' to exist, but
+       ;; the chroot's /etc/passwd doesn't have it.  Turn off the tests.
+       #:tests? #f))
+    (inputs
+     `(("groff" ,groff)
+       ("linux-pam" ,linux-pam)
+       ("coreutils" ,coreutils)))
+    (home-page "http://www.sudo.ws/")
+    (synopsis "Run commands as root")
+    (description
+     "Sudo (su \"do\") allows a system administrator to delegate authority to
+give certain users (or groups of users) the ability to run some (or all)
+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)))
+
+(define-public wpa-supplicant
+  (package
+    (name "wpa-supplicant")
+    (version "2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://hostap.epitest.fi/releases/wpa_supplicant-"
+                    version
+                    ".tar.gz"))
+              (sha256
+               (base32
+                "0xxjw7lslvql1ykfbwmbhdrnjsjljf59fbwf837418s97dz2wqwi"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases (alist-replace
+                 'configure
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   (chdir "wpa_supplicant")
+                   (copy-file "defconfig" ".config")
+                   (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
+      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)
+
+      #:make-flags (list "CC=gcc"
+                         (string-append "BINDIR=" (assoc-ref %outputs "out")
+                                        "/sbin")
+                         (string-append "LIBDIR=" (assoc-ref %outputs "out")
+                                        "/lib"))
+      #:tests? #f))
+    (inputs
+     `(("readline" ,readline)
+       ("libnl" ,libnl)
+       ("dbus" ,dbus)
+       ("openssl" ,o:openssl)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "http://hostap.epitest.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
+802.11i / RSN).  Supplicant is the IEEE 802.1X/WPA component that is used in
+the client stations.  It implements key negotiation with a WPA Authenticator
+and it controls the roaming and IEEE 802.11 authentication/association of the
+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)))
+
+(define-public wakelan
+  (package
+    (name "wakelan")
+    (version "1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "ftp://ftp.gwdg.de/pub/linux/metalab/system/network/misc/wakelan-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "0vydqpf44146ir6k87gmqaq6xy66xhc1gkr3nsd7jj3nhy7ypx9x"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases (alist-replace
+                 'configure
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   (let ((out (assoc-ref outputs "out")))
+                     (mkdir-p (string-append out "/bin"))
+                     (mkdir-p (string-append out "/share/man/man1"))
+
+                     ;; It's an old configure script that doesn't understand
+                     ;; the extra options we pass.
+                     (setenv "CONFIG_SHELL" (which "bash"))
+                     (zero?
+                      (system* "./configure"
+                               (string-append "--prefix=" out)
+                               (string-append "--mandir=" out
+                                              "/share/man")))))
+                 %standard-phases)
+       #:tests? #f))
+    (home-page "http://kernel.org")               ; really, no home page
+    (synopsis "Send a wake-on-LAN packet")
+    (description
+     "WakeLan broadcasts a properly formatted UDP packet across the local area
+network, which causes enabled computers to power on.")
+    (license gpl2+)))