gnu: Add wireguard-linux-compat.
* gnu/packages/vpn.scm (wireguard-linux-compat): New variable. (wireguard): Deprecate in favor of wireguard-tools.
This commit is contained in:
		
							parent
							
								
									1ba85062c2
								
							
						
					
					
						commit
						336d7644b3
					
				
					 1 changed files with 25 additions and 36 deletions
				
			
		|  | @ -453,61 +453,47 @@ The peer-to-peer VPN implements a Layer 2 (Ethernet) network between the peers | |||
|     ;; 3-clause BSD license. | ||||
|     (license license:bsd-3))) | ||||
| 
 | ||||
| (define-public wireguard | ||||
| (define-public wireguard-linux-compat | ||||
|   (package | ||||
|     (name "wireguard") | ||||
|     (version "0.0.20191219") | ||||
|     (name "wireguard-linux-compat") | ||||
|     (version "1.0.20200401") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "https://git.zx2c4.com/WireGuard/snapshot/" | ||||
|                                   "WireGuard-" version ".tar.xz")) | ||||
|               (uri (string-append "https://git.zx2c4.com/wireguard-linux-compat/" | ||||
|                                   "snapshot/wireguard-linux-compat-" version | ||||
|                                   ".tar.xz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1rxhhf18vnlbxpaxib6y55gbvr5h9dcvl8sn2l5slzz97066zfjs")))) | ||||
|                 "0ymprz3h4b92wlcqm5k5vmcgap8pjv202bgkdx0axmp12n1lmyvx")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (outputs '("out" ; The WireGuard userspace tools | ||||
|                "kernel-patch")) ; A patch to build Linux with WireGuard support | ||||
|     (arguments | ||||
|      `(#:tests? #f ; No tests available. | ||||
|        #:make-flags | ||||
|        (list "CC=gcc" | ||||
|              "--directory=src/tools" | ||||
|              "WITH_BASHCOMPLETION=yes" | ||||
|              ;; Build and install the helper script wg-quick(8). | ||||
|              "WITH_WGQUICK=yes" | ||||
|              (string-append "PREFIX=" (assoc-ref %outputs "out")) | ||||
|              (string-append "SYSCONFDIR=" (assoc-ref %outputs "out") "/etc")) | ||||
|      `(#:tests? #f ; No test suite | ||||
|        #:modules ((guix build gnu-build-system) | ||||
|                   (guix build utils) | ||||
|                   (ice-9 popen) | ||||
|                   (ice-9 textual-ports)) | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          ;; There is no ./configure script. | ||||
|          (delete 'configure) | ||||
|          ;; Until WireGuard is added to the upstream Linux kernel, it is | ||||
|          ;; distributed as a kernel patch generated by this script. | ||||
|          (add-after 'patch-source-shebangs 'make-patch | ||||
|          (delete 'configure) ; No ./configure script | ||||
|          (replace 'build | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let* ((output (string-append (assoc-ref outputs "kernel-patch") | ||||
|                                            "/wireguard.patch")) | ||||
|                     (patch-builder "./contrib/kernel-tree/create-patch.sh") | ||||
|              (let* ((patch-builder "./kernel-tree-scripts/create-patch.sh") | ||||
|                     (port (open-input-pipe patch-builder)) | ||||
|                     (str (get-string-all port))) | ||||
|                (close-pipe port) | ||||
|                (mkdir-p (dirname output)) | ||||
|                (call-with-output-file output | ||||
|                (call-with-output-file "wireguard.patch" | ||||
|                  (lambda (port) | ||||
|                    (format port "~a" str)))) | ||||
|                #t))))) | ||||
|     (inputs | ||||
|      `(("libmnl" ,libmnl))) | ||||
|     (home-page "https://www.wireguard.com/") | ||||
|     (synopsis "Tools for configuring WireGuard") | ||||
|     (description "This package provides the userspace tools for setting and | ||||
| retrieving configuration of WireGuard network tunnel interfaces, and a patch | ||||
| that can be applied to a Linux kernel source tree in order to build it with | ||||
| WireGuard support.") | ||||
|                #t)) | ||||
|          (replace 'install | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (install-file "wireguard.patch" | ||||
|                            (assoc-ref %outputs "out")) | ||||
|              #t))))) | ||||
|     (home-page "https://git.zx2c4.com/wireguard-linux-compat/") | ||||
|     (synopsis "WireGuard kernel module for Linux 3.10 through 5.5") | ||||
|     (description "This is an out-of-tree Linux kernel patch adding WireGuard to | ||||
| kernel versions 3.10 through 5.5.  WireGuard was added to Linux 5.6.") | ||||
|     (license license:gpl2))) | ||||
| 
 | ||||
| (define-public wireguard-tools | ||||
|  | @ -556,6 +542,9 @@ public keys and can roam across IP addresses.") | |||
|      (list license:lgpl2.1+    ; src/netlink.h & contrib/embeddable-wg-library | ||||
|            license:gpl2))))    ; everything else | ||||
| 
 | ||||
| (define-public wireguard | ||||
|   (deprecated-package "wireguard" wireguard-tools)) | ||||
| 
 | ||||
| (define-public xl2tpd | ||||
|   (package | ||||
|     (name "xl2tpd") | ||||
|  |  | |||
		Reference in a new issue