gnu: system: Improve location of some configuration warnings.

* gnu/bootloader.scm (%warn-target-field-deprecation): Remove it.
* gnu/bootloader.scm (warn-target-field-deprecation): Use
define-with-syntax-properties.
* gnu/system.scm (ensure-setuid-program-list): Ditto.  Also rename the
'location' variable to 'properties'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Josselin Poiret 2021-11-17 14:43:48 +00:00 committed by Ludovic Courtès
parent 346d2f6488
commit 7c4142628a
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
2 changed files with 13 additions and 14 deletions

View file

@ -183,8 +183,13 @@ (define-record-type* <bootloader>
;; 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-with-syntax-properties (warn-target-field-deprecation
(value properties))
(when value
(warning (source-properties->location properties)
(G_ "the 'target' field is deprecated, please use 'targets' \
instead~%")))
value)
(define-record-type* <bootloader-configuration>
bootloader-configuration make-bootloader-configuration
@ -213,13 +218,6 @@ (define-record-type* <bootloader-configuration>
(serial-speed bootloader-configuration-serial-speed ;integer | #f
(default #f)))
(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))

View file

@ -1073,16 +1073,17 @@ (define (operating-system-environment-variables os)
;; TODO: Remove when glibc@2.23 is long gone.
("GUIX_LOCPATH" . "/run/current-system/locale")))
(define-syntax-rule (ensure-setuid-program-list lst)
"Ensure LST is a list of <setuid-program> records and warn otherwise."
(%ensure-setuid-program-list lst (current-source-location)))
;; Ensure LST is a list of <setuid-program> records and warn otherwise.
(define-with-syntax-properties (ensure-setuid-program-list (lst properties))
(%ensure-setuid-program-list lst properties))
(define (%ensure-setuid-program-list lst location)
;; We want to be able to use defines, so define a procedure.
(define (%ensure-setuid-program-list lst properties)
(define warned? #f)
(define (warn-once)
(unless warned?
(warning (source-properties->location location)
(warning (source-properties->location properties)
(G_ "representing setuid programs with file-like objects is \
deprecated; use 'setuid-program' instead~%"))
(set! warned? #t)))