linux-initrd: Don't close over core Guile modules.

* nonguix/modules.scm: New file.
* nongnu/system/linux-initrd.scm: Limit 'source-module-closure' to guix and
nonguix modules only.
This commit is contained in:
Alex Griffin 2020-01-08 16:27:45 -06:00
parent 6ece1a5da7
commit c09d21cbcf
2 changed files with 30 additions and 2 deletions

View file

@ -19,6 +19,7 @@
#:use-module (guix modules)
#:use-module (guix utils)
#:use-module (nongnu packages linux)
#:use-module (nonguix modules)
#:export (microcode-initrd))
;; See https://www.kernel.org/doc/Documentation/x86/microcode.txt
@ -45,7 +46,7 @@ MICROCODE-PACKAGES, in the format expected by the kernel."
'((gnu build linux-initrd)
(guix build utils)
(nonguix build utils))
#:select? (const #t))
#:select? nonguix-module-name?)
#~(begin
(use-modules (gnu build linux-initrd)
(guix build utils)
@ -83,7 +84,7 @@ MICROCODE-PACKAGES, in the format expected by the kernel."
(with-imported-modules (source-module-closure
'((guix build utils)
(nonguix build utils))
#:select? (const #t))
#:select? nonguix-module-name?)
#~(begin
(use-modules (guix build utils)
(nonguix build utils))

27
nonguix/modules.scm Normal file
View file

@ -0,0 +1,27 @@
;;; Copyright © 2020 Alex Griffin <a@ajgrf.com>
;;;
;;; This program is free software: you can redistribute it and/or modify
;;; it under the terms of the GNU General Public License as published by
;;; the Free Software Foundation, either version 3 of the License, or
;;; (at your option) any later version.
;;;
;;; This program is distributed in the hope that it will be useful,
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with this program. If not, see <https://www.gnu.org/licenses/>.
(define-module (nonguix modules)
#:use-module (ice-9 match)
#:export (nonguix-module-name?))
(define (nonguix-module-name? name)
"Return true if NAME (a list of symbols) denotes a Guix or Nonguix module."
(match name
(('guix _ ...) #t)
(('gnu _ ...) #t)
(('nonguix _ ...) #t)
(('nongnu _ ...) #t)
(_ #f)))