diff options
author | Ludovic Courtès <ludo@gnu.org> | 2021-08-30 14:22:35 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2021-08-30 14:22:35 +0200 |
commit | baf4272df2350a40bfa198f5cdb42e707e32ad71 (patch) | |
tree | 4173152cbfa23741e52a9cf684204cea5d09e494 | |
parent | 8e8d85f722c7fa44ee6320b219274d716046b51f (diff) | |
download | guix-baf4272df2350a40bfa198f5cdb42e707e32ad71.tar.gz guix-baf4272df2350a40bfa198f5cdb42e707e32ad71.zip |
bootloader: Report location of the deprecated 'target' field.
This is a followup to 2ca982ff41270288913ad6b7d5d9e1cad87b06d9.
* gnu/bootloader.scm (warn-target-field-deprecation): New macro.
(<bootloader-configuration>)[target]: Add 'sanitize' property.
(%warn-target-field-deprecation): New procedure.
(bootloader-configuration-target): Define using 'define-deprecated'.
(bootloader-configuration-targets): Use
'%bootloader-configuration-target' rather than the deprecated one.
-rw-r--r-- | gnu/bootloader.scm | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/gnu/bootloader.scm b/gnu/bootloader.scm index 98807a4810..d1c72c0c85 100644 --- a/gnu/bootloader.scm +++ b/gnu/bootloader.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2017 David Craven <david@craven.ch> ;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Leo Famulari <leo@famulari.name> -;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2019, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; ;;; This file is part of GNU Guix. @@ -25,7 +25,10 @@ #:use-module (guix gexp) #:use-module (guix profiles) #:use-module (guix records) - #:use-module (guix ui) + #:use-module (guix deprecation) + #:use-module ((guix ui) #:select (warn-about-load-error)) + #:use-module (guix diagnostics) + #:use-module (guix i18n) #:use-module (srfi srfi-1) #:use-module (ice-9 match) #:export (menu-entry @@ -180,6 +183,9 @@ record." ;; The <bootloader-configuration> record contains bootloader independant ;; configuration used to fill bootloader configuration file. +(define-syntax-rule (warn-target-field-deprecation value) + (%warn-target-field-deprecation value (current-source-location))) + (define-record-type* <bootloader-configuration> bootloader-configuration make-bootloader-configuration bootloader-configuration? @@ -187,7 +193,7 @@ record." (targets %bootloader-configuration-targets ;list of strings (default #f)) (target %bootloader-configuration-target ;deprecated - (default #f)) + (default #f) (sanitize warn-target-field-deprecation)) (menu-entries bootloader-configuration-menu-entries ;list of <menu-entry> (default '())) (default-entry bootloader-configuration-default-entry ;integer @@ -207,16 +213,21 @@ record." (serial-speed bootloader-configuration-serial-speed ;integer | #f (default #f))) -;;; Deprecated. -(define (bootloader-configuration-target config) - (warning (G_ "the 'target' field is deprecated, please use 'targets' \ -instead~%")) +(define (%warn-target-field-deprecation value location) + (when value + (warning (source-properties->location location) + (G_ "the 'target' field is deprecated, please use 'targets' \ +instead~%"))) + value) + +(define-deprecated (bootloader-configuration-target config) + bootloader-configuration-targets (%bootloader-configuration-target config)) (define (bootloader-configuration-targets config) (or (%bootloader-configuration-targets config) ;; TODO: Remove after the deprecated 'target' field is removed. - (list (bootloader-configuration-target config)) + (list (%bootloader-configuration-target config)) ;; XXX: At least the GRUB installer (see (gnu bootloader grub)) has this ;; peculiar behavior of installing fonts and GRUB modules when DEVICE is #f, ;; hence the default value of '(#f) rather than '(). |