~ruther/guix-local

5763ad9266ec7682d53b87a874fc6ae04f92b6c4 — Ludovic Courtès 11 years ago bbceb0e
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.
4 files changed, 21 insertions(+), 7 deletions(-)

M doc/guix.texi
M guix/scripts/package.scm
M guix/ui.scm
M tests/guix-package.sh
M doc/guix.texi => doc/guix.texi +2 -2
@@ 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}.


M guix/scripts/package.scm => guix/scripts/package.scm +7 -5
@@ 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)

M guix/ui.scm => guix/ui.scm +2 -0
@@ 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 . _) ...)

M tests/guix-package.sh => tests/guix-package.sh +10 -0
@@ 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'.