From 5763ad9266ec7682d53b87a874fc6ae04f92b6c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 19 Apr 2015 19:12:22 +0200 Subject: [PATCH] guix package: -A and -s take supported systems into account. * guix/scripts/package.scm (guix-package)[process-query] : Restrict results to packages matching 'supported-package?". * guix/ui.scm (package->recutils): Print "systems:". * tests/guix-package.sh: Add tests. * doc/guix.texi (Invoking guix package): Adjust description of '--list-available' accordingly. --- doc/guix.texi | 4 ++-- guix/scripts/package.scm | 12 +++++++----- guix/ui.scm | 2 ++ tests/guix-package.sh | 10 ++++++++++ 4 files changed, 21 insertions(+), 7 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index d47120da0b..09dcff59f4 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -1105,7 +1105,7 @@ availability of packages: @item --search=@var{regexp} @itemx -s @var{regexp} -List the available packages whose synopsis or description matches +List the available packages whose name, synopsis, or description matches @var{regexp}. Print all the meta-data of matching packages in @code{recutils} format (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual}). @@ -1171,7 +1171,7 @@ the store. @item --list-available[=@var{regexp}] @itemx -A [@var{regexp}] -List packages currently available in the software distribution +List packages currently available in the distribution for this system (@pxref{GNU Distribution}). When @var{regexp} is specified, list only installed packages whose name matches @var{regexp}. diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 5ee3a89ba6..a42452ae70 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -960,11 +960,13 @@ more information.~%")) (available (fold-packages (lambda (p r) (let ((n (package-name p))) - (if regexp - (if (regexp-exec regexp n) - (cons p r) - r) - (cons p r)))) + (if (supported-package? p) + (if regexp + (if (regexp-exec regexp n) + (cons p r) + r) + (cons p r)) + r))) '()))) (leave-on-EPIPE (for-each (lambda (p) diff --git a/guix/ui.scm b/guix/ui.scm index 5ca5afe457..f80ce37146 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -653,6 +653,8 @@ WIDTH columns." ;; Note: Don't i18n field names so that people can post-process it. (format port "name: ~a~%" (package-name p)) (format port "version: ~a~%" (package-version p)) + (format port "systems: ~a~%" + (string-join (package-transitive-supported-systems p))) (format port "dependencies: ~a~%" (match (package-direct-inputs p) (((labels inputs . _) ...) diff --git a/tests/guix-package.sh b/tests/guix-package.sh index 6cfd50b5e5..a732110d5c 100644 --- a/tests/guix-package.sh +++ b/tests/guix-package.sh @@ -212,9 +212,19 @@ cat > "$module_dir/foo.scm"<