~ruther/guix-local

42c97811c973d41b752a9cc561d2544583cc5c71 — Ludovic Courtès 10 years ago a7d8c46
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'.
1 files changed, 29 insertions(+), 11 deletions(-)

M gnu/packages/vpn.scm
M gnu/packages/vpn.scm => gnu/packages/vpn.scm +29 -11
@@ 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.