diff options
Diffstat (limited to 'gnu/system/file-systems.scm')
-rw-r--r-- | gnu/system/file-systems.scm | 71 |
1 files changed, 2 insertions, 69 deletions
diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index f2eb2e0837..0ff5a0dcf6 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -42,7 +42,6 @@ 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? @@ -122,7 +121,7 @@ ;; Note: Keep in sync with 'mount-flags->bit-mask'. (let ((known-flags '(read-only bind-mount no-suid no-dev no-exec - no-atime strict-atime lazy-time + no-atime no-diratime strict-atime lazy-time shared))) (lambda (flags) "Return the subset of FLAGS that is invalid." @@ -158,7 +157,7 @@ flags are found." #'%validate-file-system-flags)))) ;; File system declaration. -(define-record-type* <file-system> %file-system +(define-record-type* <file-system> file-system make-file-system file-system? (device file-system-device) ; string | <uuid> | <file-system-label> @@ -200,72 +199,6 @@ flags are found." (format port "#<file-system-label ~s>" (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. |