build-system: linux-module: Normalise the ‘M’ source-directory.

"make modules_install" with an "M=" file name ending in "/." breaks at
least rtl8812au-aircrack-ng-linux-module.  In general, passing a more
human-generated-looking value seems prudent as these are more likely to
be tested upstream.

* guix/build/linux-module-build-system.scm (build, install): Call
CANONICALIZE-PATH on SOURCE-DIRECTORY instead of STRING-APPEND.

Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>.
as apteryx on #guix
This commit is contained in:
Tobias Geerinckx-Rice 2021-09-30 03:58:42 +02:00
parent 22e97e5ac8
commit a939011b58
No known key found for this signature in database
GPG key ID: 0DB0FF884F556D79

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -53,7 +54,7 @@ (define* (build #:key inputs make-flags (source-directory ".") #:allow-other-key
(apply invoke "make" "-C"
(string-append (assoc-ref inputs "linux-module-builder")
"/lib/modules/build")
(string-append "M=" (getcwd) "/" source-directory)
(string-append "M=" (canonicalize-path source-directory))
(or make-flags '())))
;; This block was copied from make-linux-libre--only took the "modules_install"
@ -68,7 +69,7 @@ (define* (install #:key make-flags (source-directory ".")
(apply invoke "make" "-C"
(string-append (assoc-ref inputs "linux-module-builder")
"/lib/modules/build")
(string-append "M=" (getcwd) "/" source-directory)
(string-append "M=" (canonicalize-path source-directory))
;; Disable depmod because the Guix system's module directory
;; is an union of potentially multiple packages. It is not
;; possible to use depmod to usefully calculate a dependency