summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-04-19 19:12:22 +0200
committerLudovic Courtès <ludo@gnu.org>2015-04-19 23:34:53 +0200
commit5763ad9266ec7682d53b87a874fc6ae04f92b6c4 (patch)
treef86c15d803840cae60284b682b52dabf8a5c8550
parentbbceb0ef8a1e05faaa15c5b4135275fb4572b8d9 (diff)
downloadgnu-guix-5763ad9266ec7682d53b87a874fc6ae04f92b6c4.tar
gnu-guix-5763ad9266ec7682d53b87a874fc6ae04f92b6c4.tar.gz
guix package: -A and -s take supported systems into account.
* guix/scripts/package.scm (guix-package)[process-query] <list-available>: 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.
-rw-r--r--doc/guix.texi4
-rw-r--r--guix/scripts/package.scm12
-rw-r--r--guix/ui.scm2
-rw-r--r--tests/guix-package.sh10
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"<<EOF
(patches (list (search-patch "emacs.patch")))))
(name "emacs-foo-bar-patched")
(version "42")))
+
+(define-public y
+ (package (inherit emacs)
+ (name "super-non-portable-emacs")
+ (supported-systems '("foobar64-hurd"))))
EOF
guix package -i emacs-foo-bar-patched -n
+# This one should not show up in searches since it's no supported on the
+# current system.
+test "`guix package -A super-non-portable-emacs`" = ""
+test "`guix package -s super-non-portable-emacs | grep ^systems:`" = "systems: "
+
unset GUIX_PACKAGE_PATH
# Using 'GUIX_BUILD_OPTIONS'.