summary refs log tree commit diff
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2020-02-18 15:05:27 +0100
committerTobias Geerinckx-Rice <me@tobias.gr>2020-02-18 15:49:11 +0100
commit10650b89f174cbb61a693f9b8288f2acfe816890 (patch)
tree2b8c560819ee22e3c1cbbda9c80eb3d763d2e19b
parent8c20508f4889bff9d2c5e1a8e0f52aeaa4a7ea82 (diff)
downloadguix-10650b89f174cbb61a693f9b8288f2acfe816890.tar.gz
gnu: Add wireguard-tools.
The ‘wireguard’ repository that included both tools and kernel patch is
no longer maintained.  I will add this to its description once kernel
5.6 hits Guix.

* gnu/packages/linux.scm (wireguard-tools): New public variable.
-rw-r--r--gnu/packages/vpn.scm51
1 files changed, 51 insertions, 0 deletions
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index e29c1e7d03..78a2c322af 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -519,6 +519,57 @@ that can be applied to a Linux kernel source tree in order to build it with
 WireGuard support.")
     (license license:gpl2)))
 
+(define-public wireguard-tools
+  (package
+    (name "wireguard-tools")
+    (version "1.0.20200206")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://git.zx2c4.com/wireguard-tools.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0ivc08lds5w39a6f2xdfih9wlk5g724hl3kpdvxvh5yff4l84qb7"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; no test suite
+       #:make-flags
+       (list "CC=gcc"
+             "WITH_BASHCOMPLETION=yes"
+             ;; Install the ‘simple and dirty’ helper script wg-quick(8).
+             "WITH_WGQUICK=yes"
+             (string-append "PREFIX=" (assoc-ref %outputs "out"))
+             ;; Currently used only to create an empty /etc/wireguard directory.
+             (string-append "SYSCONFDIR=no-thanks"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'enter-source-directory
+           (lambda _
+             (chdir "src")
+             #t))
+         (delete 'configure)            ; no configure script
+         (add-after 'install 'reset-cwd
+           ;; Otherwise the 'install-license-file' phase installs nothing.
+           ;; <https://bugs.gnu.org/34703>
+           (lambda _
+             (chdir "..")
+             #t)))))
+    (home-page "https://www.wireguard.com/")
+    (synopsis "Tools for configuring WireGuard tunnels")
+    (description
+     "This package provides the user-space command-line tools for using and
+configuring WireGuard tunnels.
+
+WireGuard is a simple and fast general-purpose @acronym{VPN, Virtual Private
+Network} that securely encapsulates IP packets over UDP.  It aims to be as easy
+to configure and deploy as SSH.  VPN connections are made simply by exchanging
+public keys and can roam across IP addresses.")
+    (license
+     (list license:lgpl2.1+    ; src/netlink.h & contrib/embeddable-wg-library
+           license:gpl2))))    ; everything else
+
 (define-public xl2tpd
   (package
     (name "xl2tpd")