From 94264407815da63c5f07a519cd41838e35ab464e Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 26 Dec 2014 23:29:51 +0100 Subject: packages: Apply patches with "patch --force". Fixes . Reported by Mark H Weaver . * guix/packages.scm (patch-and-repack): Change "--batch" to "--force". --- guix/packages.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'guix/packages.scm') diff --git a/guix/packages.scm b/guix/packages.scm index 07f6d0ccbc..cf16a4730c 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -398,7 +398,10 @@ IMPORTED-MODULES specify modules to use/import for use by SNIPPET." (define (apply-patch input) (let ((patch* (assoc-ref %build-inputs input))) (format (current-error-port) "applying '~a'...~%" patch*) - (zero? (system* patch "--batch" ,@flags "--input" patch*)))) + + ;; Use '--force' so that patches that do not apply perfectly are + ;; rejected. + (zero? (system* patch "--force" ,@flags "--input" patch*)))) (define (first-file directory) ;; Return the name of the first file in DIRECTORY. -- cgit v1.2.3 From 6aa47e388390e98bec6caa90fef7f39a60e338a7 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 27 Dec 2014 12:16:18 +0100 Subject: build-system/gnu: Add support for non-directory search paths. Partly fixes . * guix/build/utils.scm (search-path-as-list): Rename 'sub-directories' parameter to 'files'. Add #:type parameter and honor it. (set-path-environment-variable): Likewise. Pass #:type to 'search-path-as-list'. * guix/packages.scm (search-path-specification->sexp): Add 'directory as the last item of the tuple. * guix/build/gnu-build-system.scm (set-paths): Add 'type' to search-path pattern. Pass #:type to 'set-path-environment-variable'. --- guix/build/gnu-build-system.scm | 14 ++++++++------ guix/build/utils.scm | 33 +++++++++++++++++++-------------- guix/packages.scm | 3 ++- 3 files changed, 29 insertions(+), 21 deletions(-) (limited to 'guix/packages.scm') diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index d3de92b724..4cc755f3a6 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -73,19 +73,21 @@ input-directories))) (for-each (match-lambda - ((env-var (directories ...) separator) - (set-path-environment-variable env-var directories + ((env-var (files ...) separator type) + (set-path-environment-variable env-var files input-directories - #:separator separator))) + #:separator separator + #:type type))) search-paths) (when native-search-paths ;; Search paths for native inputs, when cross building. (for-each (match-lambda - ((env-var (directories ...) separator) - (set-path-environment-variable env-var directories + ((env-var (files ...) separator type) + (set-path-environment-variable env-var files native-input-directories - #:separator separator))) + #:separator separator + #:type type))) native-search-paths)) #t) diff --git a/guix/build/utils.scm b/guix/build/utils.scm index 9b1e098c6b..f22b2c3cb7 100644 --- a/guix/build/utils.scm +++ b/guix/build/utils.scm @@ -290,9 +290,10 @@ matches REGEXP." ;;; Search paths. ;;; -(define (search-path-as-list sub-directories input-dirs) - "Return the list of directories among SUB-DIRECTORIES that exist in -INPUT-DIRS. Example: +(define* (search-path-as-list files input-dirs + #:key (type 'directory)) + "Return the list of directories among FILES of the given TYPE (a symbol as +returned by 'stat:type') that exist in INPUT-DIRS. Example: (search-path-as-list '(\"share/emacs/site-lisp\" \"share/emacs/24.1\") (list \"/package1\" \"/package2\" \"/package3\")) @@ -301,12 +302,12 @@ INPUT-DIRS. Example: " (append-map (lambda (input) - (filter-map (lambda (dir) - (let ((dir (string-append input "/" - dir))) - (and (directory-exists? dir) - dir))) - sub-directories)) + (filter-map (lambda (file) + (let* ((file (string-append input "/" file)) + (stat (stat file #f))) + (and stat (eq? type (stat:type stat)) + file))) + files)) input-dirs)) (define (list->search-path-as-string lst separator) @@ -315,16 +316,20 @@ INPUT-DIRS. Example: (define* (search-path-as-string->list path #:optional (separator #\:)) (string-tokenize path (char-set-complement (char-set separator)))) -(define* (set-path-environment-variable env-var sub-directories input-dirs - #:key (separator ":")) - "Look for each of SUB-DIRECTORIES in INPUT-DIRS. Set ENV-VAR to a -SEPARATOR-separated path accordingly. Example: +(define* (set-path-environment-variable env-var files input-dirs + #:key + (separator ":") + (type 'directory)) + "Look for each of FILES of the given TYPE (a symbol as returned by +'stat:type') in INPUT-DIRS. Set ENV-VAR to a SEPARATOR-separated path +accordingly. Example: (set-path-environment-variable \"PKG_CONFIG\" '(\"lib/pkgconfig\") (list package1 package2)) " - (let* ((path (search-path-as-list sub-directories input-dirs)) + (let* ((path (search-path-as-list files input-dirs + #:type type)) (value (list->search-path-as-string path separator))) (if (string-null? value) (begin diff --git a/guix/packages.scm b/guix/packages.scm index a25eab7699..ed9a565dc6 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -180,7 +180,8 @@ representation." corresponds to the arguments expected by `set-path-environment-variable'." (match spec (($ variable directories separator) - `(,variable ,directories ,separator)))) + ;; TODO: Allow other values of TYPE. See . + `(,variable ,directories ,separator directory)))) (define %supported-systems ;; This is the list of system types that are supported. By default, we -- cgit v1.2.3 From af07095516b56dcdd38bf1874da27de9c4c841f6 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 27 Dec 2014 23:22:08 +0100 Subject: packages: Add 'file-type' field to 'search-path-specification'. Fixes . * guix/packages.scm (): Rename 'directories' field to 'files'. Add 'file-type'. (search-path-specification->sexp): Honor 'file-type'. * gnu/packages/autotools.scm, gnu/packages/bootstrap.scm, gnu/packages/cross-base.scm, gnu/packages/games.scm, gnu/packages/gcc.scm, gnu/packages/glib.scm, gnu/packages/guile.scm, gnu/packages/man.scm, gnu/packages/perl.scm, gnu/packages/pkg-config.scm, gnu/packages/python.scm, gnu/packages/ruby.scm, gnu/packages/xfce.scm: Change 'directories' to 'files'. * tests/packages.scm ("search paths"): Change 'directories' field to 'files'. * guix/scripts/environment.scm (for-each-search-path): Likewise. --- gnu/packages/autotools.scm | 2 +- gnu/packages/bootstrap.scm | 4 ++-- gnu/packages/cross-base.scm | 4 ++-- gnu/packages/games.scm | 2 +- gnu/packages/gcc.scm | 4 ++-- gnu/packages/glib.scm | 4 ++-- gnu/packages/guile.scm | 6 +++--- gnu/packages/man.scm | 2 +- gnu/packages/perl.scm | 2 +- gnu/packages/pkg-config.scm | 3 +-- gnu/packages/python.scm | 4 ++-- gnu/packages/ruby.scm | 7 +++---- gnu/packages/xfce.scm | 2 +- guix/packages.scm | 10 +++++----- guix/scripts/environment.scm | 3 +-- tests/packages.scm | 4 ++-- 16 files changed, 30 insertions(+), 33 deletions(-) (limited to 'guix/packages.scm') diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm index 0094577210..a3afcdcfff 100644 --- a/gnu/packages/autotools.scm +++ b/gnu/packages/autotools.scm @@ -178,7 +178,7 @@ exec ~a --no-auto-compile \"$0\" \"$@\" (native-search-paths (list (search-path-specification (variable "ACLOCAL_PATH") - (directories '("share/aclocal"))))) + (files '("share/aclocal"))))) (arguments '(#:modules ((guix build gnu-build-system) (guix build utils) diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index 854d97bcfb..5a19783bb6 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -409,10 +409,10 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \ (native-search-paths (list (search-path-specification (variable "CPATH") - (directories '("include"))) + (files '("include"))) (search-path-specification (variable "LIBRARY_PATH") - (directories '("lib" "lib64"))))) + (files '("lib" "lib64"))))) (synopsis "Bootstrap binaries of the GNU Compiler Collection") (description #f) (home-page #f) diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index 74809d08f9..0f32c9fab9 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -234,10 +234,10 @@ GCC that does not target a libc; otherwise, target that libc." (search-paths (list (search-path-specification (variable "CROSS_CPATH") - (directories '("include"))) + (files '("include"))) (search-path-specification (variable "CROSS_LIBRARY_PATH") - (directories '("lib" "lib64"))))) + (files '("lib" "lib64"))))) (native-search-paths '()))) (define* (cross-libc target diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index db878b033d..99a4a78c11 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -706,7 +706,7 @@ for common mesh file formats, and collision detection.") (native-search-paths (list (search-path-specification (variable "MINETEST_SUBGAME_PATH") - (directories '("share/minetest/games"))))) + (files '("share/minetest/games"))))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 4b715f495e..e795f9749f 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -245,10 +245,10 @@ where the OS part is overloaded to denote a specific ABI---into GCC (native-search-paths (list (search-path-specification (variable "CPATH") - (directories '("include"))) + (files '("include"))) (search-path-specification (variable "LIBRARY_PATH") - (directories '("lib" "lib64"))))) + (files '("lib" "lib64"))))) (properties `((gcc-libc . ,(assoc-ref inputs "libc")))) (synopsis "GNU Compiler Collection") diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 486cdb6add..93b465b130 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -183,7 +183,7 @@ shared NFS home directories.") ;; by 'glib-compile-schemas'. (list (search-path-specification (variable "XDG_DATA_DIRS") - (directories '("share"))))) + (files '("share"))))) (search-paths native-search-paths) (synopsis "Thread-safe general utility library; basis of GTK+ and GNOME") @@ -225,7 +225,7 @@ dynamic loading, and an object system.") (native-search-paths (list (search-path-specification (variable "GI_TYPELIB_PATH") - (directories '("lib/girepository-1.0"))))) + (files '("lib/girepository-1.0"))))) (search-paths native-search-paths) (arguments `(#:phases diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 6a76bafe84..7e3b5f847d 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -95,7 +95,7 @@ (native-search-paths (list (search-path-specification (variable "GUILE_LOAD_PATH") - (directories '("share/guile/site"))))) + (files '("share/guile/site"))))) (synopsis "Scheme implementation intended especially for extensions") (description @@ -155,10 +155,10 @@ without requiring the source code to be rewritten.") (native-search-paths (list (search-path-specification (variable "GUILE_LOAD_PATH") - (directories '("share/guile/site/2.0"))) + (files '("share/guile/site/2.0"))) (search-path-specification (variable "GUILE_LOAD_COMPILED_PATH") - (directories '("share/guile/site/2.0"))))) + (files '("share/guile/site/2.0"))))) (synopsis "Scheme implementation intended especially for extensions") (description diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index 028403ce74..712622aee8 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -105,7 +105,7 @@ a flexible and convenient way.") (native-search-paths (list (search-path-specification (variable "MANPATH") - (directories '("share/man"))))) + (files '("share/man"))))) (home-page "http://man-db.nongnu.org/") (synopsis "Standard Unix documentation system") (description diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 03cad3e25f..699fe751de 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -66,7 +66,7 @@ %standard-phases))) (native-search-paths (list (search-path-specification (variable "PERL5LIB") - (directories '("lib/perl5/site_perl"))))) + (files '("lib/perl5/site_perl"))))) (synopsis "Implementation of the Perl programming language") (description "Perl 5 is a highly capable, feature-rich programming language with over diff --git a/gnu/packages/pkg-config.scm b/gnu/packages/pkg-config.scm index dc4905a271..dd5120c474 100644 --- a/gnu/packages/pkg-config.scm +++ b/gnu/packages/pkg-config.scm @@ -44,8 +44,7 @@ (native-search-paths (list (search-path-specification (variable "PKG_CONFIG_PATH") - (directories '("lib/pkgconfig" "lib64/pkgconfig" - "share/pkgconfig"))))) + (files '("lib/pkgconfig" "lib64/pkgconfig" "share/pkgconfig"))))) (home-page "http://www.freedesktop.org/wiki/Software/pkg-config") (license gpl2+) (synopsis "Helper tool used when compiling applications and libraries") diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index adb84fc5b7..90e1f8948c 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -198,7 +198,7 @@ (native-search-paths (list (search-path-specification (variable "PYTHONPATH") - (directories '("lib/python2.7/site-packages"))))) + (files '("lib/python2.7/site-packages"))))) (home-page "http://python.org") (synopsis "High-level, dynamically-typed programming language") @@ -237,7 +237,7 @@ data types.") (native-search-paths (list (search-path-specification (variable "PYTHONPATH") - (directories '("lib/python3.3/site-packages"))))))) + (files '("lib/python3.3/site-packages"))))))) (define-public python-wrapper (package (inherit python) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 4b6665cb6b..f8276db698 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -77,10 +77,9 @@ (native-search-paths (list (search-path-specification (variable "GEM_PATH") - (directories - (list (string-append "lib/ruby/gems/" - (version-major+minor version) - ".0")))))) + (files (list (string-append "lib/ruby/gems/" + (version-major+minor version) + ".0")))))) (synopsis "Programming language interpreter") (description "Ruby is a dynamic object-oriented programming language with a focus on simplicity and productivity.") diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index 2b15c3e35c..17b2b4d9f7 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -267,7 +267,7 @@ management D-Bus specification.") (native-search-paths (list (search-path-specification (variable "X_XFCE4_LIB_DIRS") - (directories '("lib/xfce4"))))) + (files '("lib/xfce4"))))) (home-page "http://www.xfce.org/") (synopsis "Xfce desktop panel") (description diff --git a/guix/packages.scm b/guix/packages.scm index ed9a565dc6..b375895785 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -172,16 +172,16 @@ representation." search-path-specification make-search-path-specification search-path-specification? (variable search-path-specification-variable) - (directories search-path-specification-directories) - (separator search-path-specification-separator (default ":"))) + (files search-path-specification-files) + (separator search-path-specification-separator (default ":")) + (file-type search-path-specification-file-type (default 'directory))) (define (search-path-specification->sexp spec) "Return an sexp representing SPEC, a . The sexp corresponds to the arguments expected by `set-path-environment-variable'." (match spec - (($ variable directories separator) - ;; TODO: Allow other values of TYPE. See . - `(,variable ,directories ,separator directory)))) + (($ variable files separator type) + `(,variable ,files ,separator ,type)))) (define %supported-systems ;; This is the list of system types that are supported. By default, we diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index c388b0c52c..412b8be658 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -54,8 +54,7 @@ path value is appended." value))))) (cons* (search-path-specification (variable "PATH") - (directories '("bin" "sbin")) - (separator ":")) + (files '("bin" "sbin"))) (delete-duplicates (append-map package-native-search-paths inputs)))))) diff --git a/tests/packages.scm b/tests/packages.scm index 98fa9b5698..b2f09c6d6c 100644 --- a/tests/packages.scm +++ b/tests/packages.scm @@ -335,10 +335,10 @@ search-paths))))))) (x (list (search-path-specification (variable "GUILE_LOAD_PATH") - (directories '("share/guile/site/2.0"))) + (files '("share/guile/site/2.0"))) (search-path-specification (variable "GUILE_LOAD_COMPILED_PATH") - (directories '("share/guile/site/2.0"))))) + (files '("share/guile/site/2.0"))))) (a (package (inherit (dummy-package "guile")) (build-system s) (native-search-paths x))) -- cgit v1.2.3 From 7ec02d374d1fa8a8f4034a996485872fd2aa7b73 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 27 Dec 2014 22:55:34 +0100 Subject: build-support/gnu: Add support for file patterns in search paths. * guix/build/utils.scm (search-path-as-list): Add #:pattern parameter and honor it. (set-path-environment-variable): Likewise, and pass it to 'search-path-as-list'. * guix/packages.scm (search-path-specification->sexp): Add PATTERN slot. * guix/build/gnu-build-system.scm (set-paths): Adjust accordingly. --- guix/build/gnu-build-system.scm | 10 ++++++---- guix/build/utils.scm | 40 ++++++++++++++++++++++++++++++++-------- guix/packages.scm | 3 ++- 3 files changed, 40 insertions(+), 13 deletions(-) (limited to 'guix/packages.scm') diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index d661736831..11b43c521f 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -73,21 +73,23 @@ input-directories))) (for-each (match-lambda - ((env-var (files ...) separator type) + ((env-var (files ...) separator type pattern) (set-path-environment-variable env-var files input-directories #:separator separator - #:type type))) + #:type type + #:pattern pattern))) search-paths) (when native-search-paths ;; Search paths for native inputs, when cross building. (for-each (match-lambda - ((env-var (files ...) separator type) + ((env-var (files ...) separator type pattern) (set-path-environment-variable env-var files native-input-directories #:separator separator - #:type type))) + #:type type + #:pattern pattern))) native-search-paths)) #t) diff --git a/guix/build/utils.scm b/guix/build/utils.scm index f22b2c3cb7..47bcb3e8a1 100644 --- a/guix/build/utils.scm +++ b/guix/build/utils.scm @@ -291,7 +291,7 @@ matches REGEXP." ;;; (define* (search-path-as-list files input-dirs - #:key (type 'directory)) + #:key (type 'directory) pattern) "Return the list of directories among FILES of the given TYPE (a symbol as returned by 'stat:type') that exist in INPUT-DIRS. Example: @@ -300,13 +300,26 @@ returned by 'stat:type') that exist in INPUT-DIRS. Example: => (\"/package1/share/emacs/site-lisp\" \"/package3/share/emacs/site-lisp\") +When PATTERN is true, it is a regular expression denoting file names to look +for under the directories designated by FILES. For example: + + (search-path-as-list '(\"xml\") (list docbook-xml docbook-xsl) + #:type 'regular + #:pattern \"^catalog\\\\.xml$\") + => (\"/…/xml/dtd/docbook/catalog.xml\" + \"/…/xml/xsl/docbook-xsl-1.78.1/catalog.xml\") " (append-map (lambda (input) - (filter-map (lambda (file) - (let* ((file (string-append input "/" file)) - (stat (stat file #f))) - (and stat (eq? type (stat:type stat)) - file))) + (append-map (lambda (file) + (let ((file (string-append input "/" file))) + ;; XXX: By using 'find-files', we implicitly + ;; assume #:type 'regular. + (if pattern + (find-files file pattern) + (let ((stat (stat file #f))) + (if (and stat (eq? type (stat:type stat))) + (list file) + '()))))) files)) input-dirs)) @@ -319,7 +332,8 @@ returned by 'stat:type') that exist in INPUT-DIRS. Example: (define* (set-path-environment-variable env-var files input-dirs #:key (separator ":") - (type 'directory)) + (type 'directory) + pattern) "Look for each of FILES of the given TYPE (a symbol as returned by 'stat:type') in INPUT-DIRS. Set ENV-VAR to a SEPARATOR-separated path accordingly. Example: @@ -327,9 +341,19 @@ accordingly. Example: (set-path-environment-variable \"PKG_CONFIG\" '(\"lib/pkgconfig\") (list package1 package2)) + +When PATTERN is not #f, it must be a regular expression (really a string) +denoting file names to look for under the directories designated by FILES: + + (set-path-environment-variable \"XML_CATALOG_FILES\" + '(\"xml\") + (list docbook-xml docbook-xsl) + #:type 'regular + #:pattern \"^catalog\\\\.xml$\") " (let* ((path (search-path-as-list files input-dirs - #:type type)) + #:type type + #:pattern pattern)) (value (list->search-path-as-string path separator))) (if (string-null? value) (begin diff --git a/guix/packages.scm b/guix/packages.scm index b375895785..e299962a2e 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -181,7 +181,8 @@ representation." corresponds to the arguments expected by `set-path-environment-variable'." (match spec (($ variable files separator type) - `(,variable ,files ,separator ,type)))) + ;; TODO: Add support for PATTERN. + `(,variable ,files ,separator ,type #f)))) (define %supported-systems ;; This is the list of system types that are supported. By default, we -- cgit v1.2.3 From 7b21fe538512b452c87389607f569668a7f1a1a4 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 27 Dec 2014 23:15:11 +0100 Subject: packages: Add 'file-pattern' field to 'search-path-specification'. * guix/packages.scm ()[file-pattern]: New field. (search-path-specification->sexp): Honor it. --- guix/packages.scm | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'guix/packages.scm') diff --git a/guix/packages.scm b/guix/packages.scm index e299962a2e..68fd531c6b 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -171,18 +171,21 @@ representation." (define-record-type* search-path-specification make-search-path-specification search-path-specification? - (variable search-path-specification-variable) - (files search-path-specification-files) - (separator search-path-specification-separator (default ":")) - (file-type search-path-specification-file-type (default 'directory))) + (variable search-path-specification-variable) ;string + (files search-path-specification-files) ;list of strings + (separator search-path-specification-separator ;string + (default ":")) + (file-type search-path-specification-file-type ;symbol + (default 'directory)) + (file-pattern search-path-specification-file-pattern ;#f | string + (default #f))) (define (search-path-specification->sexp spec) "Return an sexp representing SPEC, a . The sexp corresponds to the arguments expected by `set-path-environment-variable'." (match spec - (($ variable files separator type) - ;; TODO: Add support for PATTERN. - `(,variable ,files ,separator ,type #f)))) + (($ variable files separator type pattern) + `(,variable ,files ,separator ,type ,pattern)))) (define %supported-systems ;; This is the list of system types that are supported. By default, we -- cgit v1.2.3