From 2397f4768091210b0a705ef750f2f38d6946fb89 Mon Sep 17 00:00:00 2001 From: Bruno Victal Date: Mon, 27 Feb 2023 14:59:39 +0000 Subject: file-systems: Remove deprecated 'title' field helper procedures. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/system/file-systems.scm (): Change constructor name to 'file-system'. (report-deprecation, device-expression, process-file-system-declaration, file-system): Remove macros. (file-system-title): Remove procedure. Signed-off-by: Ludovic Courtès --- gnu/system/file-systems.scm | 69 +-------------------------------------------- 1 file changed, 1 insertion(+), 68 deletions(-) diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index 85b00a4a09..0ff5a0dcf6 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -42,7 +42,6 @@ (define-module (gnu system file-systems) file-system? file-system-device file-system-device->string - file-system-title ;deprecated file-system-mount-point file-system-type file-system-needed-for-boot? @@ -158,7 +157,7 @@ (define-syntax validate-file-system-flags #'%validate-file-system-flags)))) ;; File system declaration. -(define-record-type* %file-system +(define-record-type* file-system make-file-system file-system? (device file-system-device) ; string | | @@ -200,72 +199,6 @@ (define-record-type (format port "#" (file-system-label->string obj)))) -(define-syntax report-deprecation - (lambda (s) - "Report the use of the now-deprecated 'title' field." - (syntax-case s () - ((_ field) - (let* ((source (syntax-source #'field)) - (file (and source (assq-ref source 'filename))) - (line (and source - (and=> (assq-ref source 'line) 1+))) - (column (and source (assq-ref source 'column)))) - (format (current-error-port) - "~a:~a:~a: warning: 'title' field is deprecated~%" - file line column) - #t))))) - -;; Helper for 'process-file-system-declaration'. -(define-syntax device-expression - (syntax-rules (quote label uuid device) - ((_ (quote label) dev) - (file-system-label dev)) - ((_ (quote uuid) dev) - (if (uuid? dev) dev (uuid dev))) - ((_ (quote device) dev) - dev) - ((_ title dev) - (case title - ((label) (file-system-label dev)) - ((uuid) (uuid dev)) - (else dev))))) - -;; Helper to interpret the now-deprecated 'title' field. Detect forms like -;; (title 'label), remove them, and adjust the 'device' field accordingly. -;; TODO: Remove this once 'title' has been deprecated long enough. -(define-syntax process-file-system-declaration - (syntax-rules (device title) - ((_ () (rest ...) #f #f) ;no 'title' and no 'device' field - (%file-system rest ...)) - ((_ () (rest ...) dev #f) ;no 'title' field - (%file-system rest ... (device dev))) - ((_ () (rest ...) dev titl) ;got a 'title' field - (%file-system rest ... - (device (device-expression titl dev)))) - ((_ ((title titl) rest ...) (previous ...) dev _) - (begin - (report-deprecation (title titl)) - (process-file-system-declaration (rest ...) - (previous ...) - dev titl))) - ((_ ((device dev) rest ...) (previous ...) _ titl) - (process-file-system-declaration (rest ...) - (previous ...) - dev titl)) - ((_ (field rest ...) (previous ...) dev titl) - (process-file-system-declaration (rest ...) - (previous ... field) - dev titl)))) - -(define-syntax-rule (file-system fields ...) - (process-file-system-declaration (fields ...) () #f #f)) - -(define (file-system-title fs) ;deprecated - (match (file-system-device fs) - ((? file-system-label?) 'label) - ((? uuid?) 'uuid) - ((? string?) 'device))) - ;; Note: This module is used both on the build side and on the host side. ;; Arrange not to pull (guix store) and (guix config) because the latter ;; differs from user to user. -- cgit v1.2.3