guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

03/08: bootloader: Report location of the deprecated 'target' field.


From: guix-commits
Subject: 03/08: bootloader: Report location of the deprecated 'target' field.
Date: Mon, 30 Aug 2021 08:50:20 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit baf4272df2350a40bfa198f5cdb42e707e32ad71
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Mon Aug 30 14:22:35 2021 +0200

    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.
---
 gnu/bootloader.scm | 27 +++++++++++++++++++--------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/gnu/bootloader.scm b/gnu/bootloader.scm
index 98807a4..d1c72c0 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 '().



reply via email to

[Prev in Thread] Current Thread [Next in Thread]