diff mbox series

[bug#40683,v4] gnu: Add loadable module to wireguard-linux-compat.

Message ID 20200426211636.GA23689@jasmine.lan
State Accepted
Headers show
Series [bug#40683,v4] gnu: Add loadable module to wireguard-linux-compat. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch fail View Laminar job

Commit Message

Leo Famulari April 26, 2020, 9:16 p.m. UTC
On Sun, Apr 26, 2020 at 10:51:02PM +0200, Brice Waegeneire wrote:
> * gnu/packages/vpn.scm (wireguard-linux-compat)[build-system]: Replace
> 'gnu-build-system' by 'linux-module-build-system'.
> [outputs]: Add 'kernel-patch'.
> [arguments]: Adjust the build system.  Add phase 'change-directory'.
> Rename phases 'build' to 'build-patch' and 'install' to 'install-patch'.
> [description]: Mention the loadable module.

Thanks! I've attached a v5 that ensures the license files still get
installed. Does it work for you?
From 2e28a69dc384880cf858e4c402588ccd0bfd84fa Mon Sep 17 00:00:00 2001
From: Brice Waegeneire <brice@waegenei.re>
Date: Sun, 26 Apr 2020 22:51:02 +0200
Subject: [PATCH] gnu: Add loadable module to wireguard-linux-compat.

* gnu/packages/vpn.scm (wireguard-linux-compat)[build-system]: Replace
'gnu-build-system' by 'linux-module-build-system'.
[outputs]: Add 'kernel-patch'.
[arguments]: Adjust the build system.  Add phase 'change-directory'.
Rename phases 'build' to 'build-patch' and 'install' to 'install-patch'.
[description]: Mention the loadable module.

Signed-off-by: Leo Famulari <leo@famulari.name>
---
 gnu/packages/vpn.scm | 31 ++++++++++++++++++++++---------
 1 file changed, 22 insertions(+), 9 deletions(-)

Comments

Leo Famulari April 26, 2020, 10:25 p.m. UTC | #1
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
diff mbox series

Patch

diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index 739522959c..a9e20049c6 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -11,6 +11,7 @@ 
 ;;; Copyright © 2019, 2020 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;;
 ;;; 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)
@@ -465,19 +467,24 @@  The peer-to-peer VPN implements a Layer 2 (Ethernet) network between the peers
               (sha256
                (base32
                 "0ymprz3h4b92wlcqm5k5vmcgap8pjv202bgkdx0axmp12n1lmyvx"))))
-    (build-system gnu-build-system)
+    (build-system linux-module-build-system)
+    (outputs '("out"
+               "kernel-patch"))
     (arguments
      `(#:tests? #f ; No test suite
-       #:modules ((guix build gnu-build-system)
+       #:modules ((guix build linux-module-build-system)
                   (guix build utils)
                   (ice-9 popen)
                   (ice-9 textual-ports))
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure) ; No ./configure script
-         (replace 'build
+         (add-before 'build 'change-directory
+           (lambda _
+             (chdir "./src")
+             #t))
+         (add-after 'build 'build-patch
            (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((patch-builder "./kernel-tree-scripts/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)
@@ -485,15 +492,21 @@  The peer-to-peer VPN implements a Layer 2 (Ethernet) network between the peers
                  (lambda (port)
                    (format port "~a" str))))
                #t))
-         (replace 'install
+         (add-after 'install 'install-patch
            (lambda* (#:key outputs #:allow-other-keys)
              (install-file "wireguard.patch"
-                           (assoc-ref %outputs "out"))
+                           (assoc-ref %outputs "kernel-patch"))
+             #t))
+         ;; So that 'install-license-files' works...
+         (add-before 'install-license-files 'reset-cwd
+           (lambda _
+             (chdir "..")
              #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.")
+    (description "This package contains an out-of-tree kernel patch and
+a loadable module adding WireGuard to Linux kernel versions 3.10 through 5.5.
+WireGuard was added to Linux 5.6.")
     (license license:gpl2)))
 
 (define-public wireguard-tools