Subject: bug#40683: closed (Re: [PATCH v4] gnu: Add loadable module to wireguard-linux-compat.)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 26 Apr 2020 22:26:01 +0000

Your bug report

#40683: [PATCH] gnu: Add wireguard-module.

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
40683: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=40683
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: [PATCH v4] gnu: Add loadable module to wireguard-linux-compat.
From: Leo Famulari <[email-masked]>
To: Brice Waegeneire <[email-masked]>
Cc: [email-masked]
Date: Sun, 26 Apr 2020 18:25:48 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

On Sun, Apr 26, 2020 at 05:16:36PM -0400, Leo Famulari wrote:
> Thanks! I've attached a v5 that ensures the license files still get
> installed. Does it work for you?

I pushed this as 3b177a6c33baa0d78ebd5407119511807d59a590 based on
feedback on #guix

Subject: [PATCH] gnu: Add wireguard-module.
From: Brice Waegeneire <[email-masked]>
To: [email-masked]
Date: Fri, 17 Apr 2020 17:58:55 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/vpn.scm (wireguard-module): New variable.
---

This patch add wireguard as a loadable Linux kernel module which allow using
it Linux version < 5.6 without having to rebuild the entire kernel.

Following is a usage example:
--8<---------------cut here---------------start------------->8---
(use-modules (gnu) (gnu services))
(use-package-modules vpn)
(use-service-modules linux)

(operating-system
  ...
  (services (cons* (service kernel-module-loader-service-type
                            '("wireguard"))
                   %base-services))
  (kernel-loadable-modules (list wireguard-module)))
--8<---------------cut here---------------end--------------->8---

 gnu/packages/vpn.scm | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index 739522959c..654c9d8db1 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2019, 2020 Leo Famulari <[email-masked]>
 ;;; Copyright © 2019 Rutger Helling <[email-masked]>
 ;;; Copyright © 2019 Ricardo Wurmus <[email-masked]>
+;;; Copyright © 2020 Brice Waegeneire <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -34,6 +35,7 @@
   #:use-module (guix git-download)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system linux-module)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
@@ -496,6 +498,26 @@ The peer-to-peer VPN implements a Layer 2 (Ethernet) network between the peers
 kernel versions 3.10 through 5.5.  WireGuard was added to Linux 5.6.")
     (license license:gpl2)))
 
+(define-public wireguard-module
+  (package
+    (inherit wireguard-linux-compat)
+    (name "wireguard-module")
+    (build-system linux-module-build-system)
+    (arguments
+     `(#:tests? #f                      ; No test suite
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'change-directory
+           (lambda _
+             (chdir "./src")
+             #t)))))
+    (synopsis "WireGuard loadable kernel module for Linux 3.10 through 5.5")
+    (description "This is a loadable Linux kernel module for WireGuard
+supporting kernel versions 3.10 through 5.5.  WireGuard was added to Linux
+5.6.  It ought to be used by adding it to the @code{kernel-loadable-modules}
+field and loaded in memeory by @command{modprobe} or
+@code{kernel-module-loader-service-type}.")))
+
 (define-public wireguard-tools
   (package
     (name "wireguard-tools")
-- 
2.26.0