summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-02-05 16:36:38 +0100
committerLudovic Courtès <ludo@gnu.org>2016-02-05 22:10:42 +0100
commit42c97811c973d41b752a9cc561d2544583cc5c71 (patch)
treef65065fe56d0c68ec734bddd05e3f23cca4a74e1
parenta7d8c466db633bbdf10c0aebce7128c627c28342 (diff)
downloadguix-42c97811c973d41b752a9cc561d2544583cc5c71.tar.gz
gnu: vpnc: Make sure 'vpnc-script' finds the commands it needs.
* gnu/packages/vpn.scm (vpnc)[inputs]: Add NET-TOOLS and IPROUTE.
[arguments]: Use 'modify-phases'.  Wrap 'vpnc-script'.
-rw-r--r--gnu/packages/vpn.scm40
1 files changed, 29 insertions, 11 deletions
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index 6af87d2657..34dacecdc5 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
 ;;;
@@ -70,19 +70,37 @@ endpoints.")
             (patches (list (search-patch "vpnc-script.patch")))))
    (build-system gnu-build-system)
    (inputs `(("libgcrypt" ,libgcrypt)
-             ("perl" ,perl)))
+             ("perl" ,perl)
+
+             ;; The following packages provide commands that 'vpnc-script'
+             ;; expects.
+             ("net-tools" ,net-tools)             ;ifconfig, route
+             ("iproute2" ,iproute)))              ;ip
    (arguments
     `(#:tests? #f ; there is no check target
       #:phases
-      (alist-replace
-       'configure
-       (lambda* (#:key outputs #:allow-other-keys)
-         (let ((out (assoc-ref outputs "out")))
-           (substitute* "Makefile"
-             (("PREFIX=/usr/local") (string-append "PREFIX=" out)))
-           (substitute* "Makefile"
-             (("ETCDIR=/etc/vpnc") (string-append "ETCDIR=" out "/etc/vpnc")))))
-       %standard-phases)))
+      (modify-phases %standard-phases
+        (replace 'configure
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let ((out (assoc-ref outputs "out")))
+              (substitute* "Makefile"
+                (("PREFIX=/usr/local") (string-append "PREFIX=" out)))
+              (substitute* "Makefile"
+                (("ETCDIR=/etc/vpnc") (string-append "ETCDIR=" out
+                                                     "/etc/vpnc"))))))
+        (add-after 'install 'wrap-vpnc-script
+          (lambda* (#:key inputs outputs #:allow-other-keys)
+            ;; Wrap 'etc/vpnc/vpnc-script' so that it finds the commands it
+            ;; needs.  Assume coreutils/grep/sed are in $PATH.
+            (let ((out (assoc-ref outputs "out")))
+              (wrap-program (string-append out "/etc/vpnc/vpnc-script")
+                `("PATH" ":" prefix
+                  (,(string-append (assoc-ref inputs "net-tools")
+                                   "/sbin")
+                   ,(string-append (assoc-ref inputs "net-tools")
+                                   "/bin")
+                   ,(string-append (assoc-ref inputs "iproute2")
+                                   "/sbin"))))))))))
    (synopsis "Client for Cisco VPN concentrators")
    (description
     "vpnc is a VPN client compatible with Cisco's EasyVPN equipment.