mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-25 22:08:16 -05:00
gnu: Add vpnc-scripts.
* gnu/packages/vpn.scm (vpnc-scripts): New variable.
This commit is contained in:
parent
56f0feb678
commit
06d91fd944
1 changed files with 90 additions and 1 deletions
|
@ -4,7 +4,7 @@
|
||||||
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
|
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
|
||||||
;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
|
;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
|
||||||
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
|
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
|
@ -26,9 +26,11 @@ (define-module (gnu packages vpn)
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
|
#:use-module (guix git-download)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (guix build-system python)
|
#:use-module (guix build-system python)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
|
#:use-module (gnu packages base)
|
||||||
#:use-module (gnu packages check)
|
#:use-module (gnu packages check)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages gettext)
|
#:use-module (gnu packages gettext)
|
||||||
|
@ -117,6 +119,93 @@ (define-public vpnc
|
||||||
(license license:gpl2+) ; some file are bsd-2, see COPYING
|
(license license:gpl2+) ; some file are bsd-2, see COPYING
|
||||||
(home-page "http://www.unix-ag.uni-kl.de/~massar/vpnc/")))
|
(home-page "http://www.unix-ag.uni-kl.de/~massar/vpnc/")))
|
||||||
|
|
||||||
|
(define-public vpnc-scripts
|
||||||
|
(let ((commit "6f87b0fe7b20d802a0747cc310217920047d58d3"))
|
||||||
|
(package
|
||||||
|
(name "vpnc-scripts")
|
||||||
|
(version (string-append "20161214." (string-take commit 7)))
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri
|
||||||
|
(git-reference
|
||||||
|
(url "git://git.infradead.org/users/dwmw2/vpnc-scripts.git")
|
||||||
|
(commit commit)))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0pa36w4wlyyvfb66cayhans99wsr2j5si2fvfr7ldfm512ajwn8h"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(inputs `(("coreutils" ,coreutils)
|
||||||
|
("grep" ,grep)
|
||||||
|
("iproute2" ,iproute) ; for ‘ip’
|
||||||
|
("net-tools" ,net-tools) ; for ‘ifconfig’, ‘route’
|
||||||
|
("sed" ,sed)
|
||||||
|
("which" ,which)))
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'use-relative-paths
|
||||||
|
;; Patch the scripts to work with and use relative paths.
|
||||||
|
(lambda* _
|
||||||
|
(for-each (lambda (script)
|
||||||
|
(substitute* script
|
||||||
|
(("^PATH=.*") "")
|
||||||
|
(("(/usr|)/s?bin/") "")
|
||||||
|
(("\\[ +-x +([^]]+) +\\]" _ command)
|
||||||
|
(string-append "command -v >/dev/null 2>&1 "
|
||||||
|
command))))
|
||||||
|
(find-files "." "^vpnc-script"))
|
||||||
|
#t))
|
||||||
|
(delete 'configure) ; no configure script
|
||||||
|
(replace 'build
|
||||||
|
(lambda _
|
||||||
|
(zero? (system* "gcc" "-o" "netunshare" "netunshare.c"))))
|
||||||
|
(replace 'install
|
||||||
|
;; There is no Makefile; manually install the relevant files.
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(etc (string-append out "/etc/vpnc")))
|
||||||
|
(for-each (lambda (file)
|
||||||
|
(install-file file etc))
|
||||||
|
(append (find-files "." "^vpnc-script")
|
||||||
|
(list "netunshare"
|
||||||
|
"xinetd.netns.conf")))
|
||||||
|
#t)))
|
||||||
|
(add-after 'install 'wrap-scripts
|
||||||
|
;; Wrap scripts with paths to their common hard dependencies.
|
||||||
|
;; Optional dependencies will need to be installed by the user.
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(let ((out (assoc-ref outputs "out")))
|
||||||
|
(for-each
|
||||||
|
(lambda (script)
|
||||||
|
(wrap-program script
|
||||||
|
`("PATH" ":" prefix
|
||||||
|
,(map (lambda (name)
|
||||||
|
(let ((input (assoc-ref inputs name)))
|
||||||
|
(string-append input "/bin:"
|
||||||
|
input "/sbin")))
|
||||||
|
(list "coreutils"
|
||||||
|
"grep"
|
||||||
|
"iproute2"
|
||||||
|
"net-tools"
|
||||||
|
"sed"
|
||||||
|
"which")))))
|
||||||
|
(find-files (string-append out "/etc/vpnc/vpnc-script")
|
||||||
|
"^vpnc-script"))))))
|
||||||
|
#:tests? #f)) ; no tests
|
||||||
|
(home-page "http://git.infradead.org/users/dwmw2/vpnc-scripts.git")
|
||||||
|
(synopsis "Network configuration scripts for Cisco VPN clients")
|
||||||
|
(description
|
||||||
|
"This set of scripts configures routing and name services when invoked
|
||||||
|
by the VPNC or OpenConnect Cisco @dfn{Virtual Private Network} (VPN) clients.
|
||||||
|
|
||||||
|
The default @command{vpnc-script} automatically configures most common
|
||||||
|
connections, and provides hooks for performing custom actions at various stages
|
||||||
|
of the connection or disconnection process.
|
||||||
|
|
||||||
|
Alternative scripts are provided for more complicated set-ups, or to serve as an
|
||||||
|
example for writing your own. For example, @command{vpnc-script-sshd} contains
|
||||||
|
the entire VPN in a network namespace accessible only through SSH.")
|
||||||
|
(license license:gpl2+))))
|
||||||
|
|
||||||
(define-public openconnect
|
(define-public openconnect
|
||||||
(package
|
(package
|
||||||
|
|
Loading…
Reference in a new issue