Commit Graph

2008 Commits

Author SHA1 Message Date
Antero Mejr
7041fe0646
packages: Add 'specifications->packages'.
* gnu/packages.scm (specifications->packages): New procedure.
* guix/scripts/home/import.scm (manifest+configuration-files->code): Use it.
* tests/home-import.scm (match-home-environment-no-services)
(match-home-environment-no-services-nor-packages)
(match-home-environment-bash-service)
(match-home-environment-bash-service-with-alias): Adjust 'packages'
field accordingly.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2022-06-06 22:43:30 +02:00
Tobias Geerinckx-Rice
91363452f2
guix system: Don't suggest reconfiguration during reconfiguration.
* guix/scripts/system.scm (process-action):
Add 'reconfigure to the warning's guard clause.

Reported by johnjaye on #guix.
2022-05-29 02:00:00 +02:00
Ludovic Courtès
35c1edb20a
guix home: Add 'edit' sub-command.
* guix/scripts/home/edit.scm: New file.
* Makefile.am (MODULES): Add it.
* guix/scripts/home.scm (show-help): Add "edit".
(process-command): Handle it.
(guix-home): Add it.
* po/guix/POTFILES.in: Add 'guix/scripts/home/edit.scm'.
* doc/guix.texi (Invoking guix home): Document it.
2022-06-04 12:04:24 +02:00
Ludovic Courtès
3f83c0b7c7
guix system: Add 'edit' sub-command.
* guix/scripts/system/edit.scm: New file.
* Makefile.am (MODULES): Add it.
* guix/scripts/system.scm (show-help): Mention "edit".
(actions): Add it.
(process-command): Handle it.
* doc/guix.texi (Invoking guix system): Document it.
* po/guix/POTFILES.in: Add guix/scripts/system/edit.scm.
2022-06-04 12:04:24 +02:00
Ludovic Courtès
f9fb00ff08
edit: Extract 'spawn-editor' procedure.
* guix/scripts/edit.scm (spawn-editor): New procedure, with code from...
(guix-edit): ... here.  Use it.
2022-06-04 12:04:24 +02:00
Ludovic Courtès
2acc83daa5
shell: '--export-manifest -D x -D y' generates a valid manifest.
* guix/scripts/shell.scm (manifest->code*): Add missing 'list' in
generated 'concatenate-manifests' call.
* tests/guix-shell-export-manifest.sh: Add test.
2022-06-01 22:22:19 +02:00
Ricardo Wurmus
371a83b764
scripts/import: Use pretty printer from (guix scripts style).
* guix/scripts/import.scm (guix-import): Use pretty-print-with-comments.
(newline-rewriting-port): Remove procedure.
2022-05-29 00:01:46 +02:00
yarl-baudig@mailoo.org
d4158ea63a
substitute: Check for --help or --version options early.
Running `guix archive --authorize` sets /etc/guix/acl to 600
via with-atomic-file-output via mkstemp!.
Then running `guix substitute --help/--version` fails on "permission denied".
While "guix substitute" is an internal tool, the options --help and --version
exist and you should be able to run those from the command line.

* guix/scripts/substitute.scm (guix-substitute): Earlier check for
--help or --version.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-05-27 23:36:36 +02:00
Ludovic Courtès
4e13ee4b57
guix package: Sort search results by package version.
Fixes <https://issues.guix.gnu.org/55480>.
Reported by Greg Hogan <code@greghogan.com>.

* guix/scripts/package.scm (find-packages-by-description): When PACKAGE1
and PACKAGE2 have the same name, sort by version.
2022-05-26 11:41:05 +02:00
Josselin Poiret
dab819d5c4
Move (gnu platform) and (gnu platforms ...) to guix/.
* gnu/platform.scm:
* gnu/platforms/arm.scm:
* gnu/platforms/hurd.scm:
* gnu/platforms/mips.scm:
* gnu/platforms/powerpc.scm:
* gnu/platforms/riscv.scm:
* gnu/platforms/s390.scm:
* gnu/platforms/x86.scm: Move to guix/.

* Makefile.am:
* doc/guix.texi (Porting to a New Platform):
* etc/release-manifest.scm:
* gnu/ci.scm:
* gnu/image.scm:
* gnu/local.mk:
* gnu/packages/bioinformatics.scm:
* gnu/packages/bootstrap.scm:
* gnu/packages/cross-base.scm:
* gnu/packages/instrumentation.scm:
* gnu/packages/linux.scm:
* gnu/system/image.scm:
* gnu/system/images/hurd.scm:
* gnu/system/images/novena.scm:
* gnu/system/images/pine64.scm:
* gnu/system/images/pinebook-pro.scm:
* gnu/system/images/rock64.scm:
* guix/scripts/build.scm:
* guix/scripts/system.scm:
* guix/self.scm: Update (gnu platform...) to (guix platform...).

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-05-25 09:27:25 +02:00
Josselin Poiret
aaf547824e
scripts: package: Transform before creating manifest entries.
* guix/scripts/package.scm (options->installable): Add TRANSFORM
argument, to be able to directly transform the new packages before
creating their manifest entries.
(process-actions): Remove transform-entry, and step3, transforming
directly in step2.
* tests/guix-package.sh: Add test.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-05-23 16:24:46 +02:00
Mathieu Othacehe
051c087d71
scripts: build: Highlight the current system with --list-systems.
* guix/scripts/build.scm (list-systems): Highlight it.
2022-05-22 15:15:33 +02:00
Mathieu Othacehe
ec42d287b4
scripts: Add --list-systems and --list-targets options.
Also factorize the --system and --target build options. Check that the passed
system and target arguments are known platforms.

* doc/guix.texi (Additional Build Options): Document the new --list-systems
and --list-targets options.
* guix/scripts/build.scm (show-cross-build-options-help,
show-emulated-build-options-help, list-systems, list-targets): New procedures.
(%standard-cross-build-options, %standard-emulated-build-options): New
variables.
(show-help): Remove --system and --target entries and use
show-cross-build-options-help and show-emulated-build-options-help procedures instead.
(%options): Remove --system and --target entries and use
%standard-cross-build-options and %standard-emulated-build-options variables instead.
* guix/scripts/archive.scm (show-help, %options): Adapt them.
* guix/scripts/environment.scm: Ditto.
* guix/scripts/graph.scm: Ditto.
* guix/scripts/pack.scm: Ditto.
* guix/scripts/pull.scm: Ditto.
* guix/scripts/size.scm: Ditto.
* guix/scripts/weather.scm: Ditto.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-05-22 15:15:33 +02:00
Philip McGrath
903c82583e
import: Add Elm importer.
* guix/import/elm.scm, guix/scripts/import/elm.scm: New files.
* Makefile.am (MODULES): Add them.
* guix/scripts/import.scm (importers): Add "elm".
* doc/guix.texi (Invoking guix import): Document Elm importer.
* doc/contributing.texi (Elm Packages): Mention it.
* tests/elm.scm ("(guix import elm)"): New test group.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-05-22 01:07:52 +02:00
Ricardo Wurmus
dd19b191d6
guix: Remove unused import.
* guix/scripts/pull.scm: Do not import with-file-lock/no-wait from (guix build
syscalls).
2022-05-20 20:42:53 +02:00
Ludovic Courtès
d2c663711e
guix system: Highlight search results.
This is a followup to 5e0c347975.

* guix/scripts/system/search.scm (guix-system-search): Pass #:regexps
parameter to 'display-search-results'.
2022-04-29 22:59:08 +02:00
Ludovic Courtès
c1719a0adf
publish: Send uncached narinfo replies from the main thread.
Fixes <https://issues.guix.gnu.org/54723>.
Reported by Guillaume Le Vaillant <glv@posteo.net>.

Regression introduced in f743f2046b.

With commit f743f2046b, responses to
pipelined GETs would end up being written concurrently by many threads.
Thus the body of those responses could be interleaved and garbled.

* guix/scripts/publish.scm: Revert
f743f2046b.
* tests/publish.scm ("/*.narinfo pipeline"): New test.
2022-04-29 18:07:17 +02:00
Alex Griffin
e5098ad9b0
scripts: pack: Fix typo.
* guix/scripts/pack.scm (compressor-extenstion): Fix typo.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-04-26 09:12:31 +02:00
Maxim Cournoyer
96dbcd7443
pack: Fix match error for multi-packages deb packs.
* guix/scripts/pack.scm: Remove duplicated copyright line.
(debian-archive)[single-entry]: Match one or anything, not one or zero.

Reported-by: jgart <jgart@dismail.de>
2022-04-23 00:59:07 -04:00
Ludovic Courtès
5e0c347975
ui: Highlight package and service search results.
* guix/ui.scm (package->recutils): Add #:highlighting parameter and use it.
(display-search-results): Add #:regexps parameter; call
'colorize-full-matches' and pass #:highlighting.
* guix/scripts/package.scm (process-query): Pass #:regexps to
'display-search-results'.
* guix/scripts/home.scm (search): Likewise.
* guix/scripts/system/search.scm (service-type->recutils): Add #:highlighting
parameter and use it.
2022-04-19 18:07:49 +02:00
Ludovic Courtès
00dcfb261b
ui: Highlight important bits in recutils output.
* guix/scripts/system/search.scm (service-type->recutils): Highlight the
value of the 'name' field.
* guix/ui.scm (package->recutils): Likewise for 'name' and 'version'.
2022-04-19 18:07:49 +02:00
Ludovic Courtès
b9233cb9a8
publish: Support systemd-style socket activation.
* guix/scripts/publish.scm (systemd-socket): New procedure.
(guix-publish): Add 'style' variable.  Adjust startup message depending
on whether STYLE is 'systemd.
* doc/guix.texi (Invoking guix publish): Mention socket activation.
2022-04-14 14:48:20 +02:00
Ludovic Courtès
17c6d00b57
publish: Use SRFI-71 instead of SRFI-11.
* guix/scripts/publish.scm (make-request-handler): Use 'let' instead of
'let-values'.
2022-04-14 14:48:20 +02:00
Ludovic Courtès
c9cded0955
style: Correctly read dots in pairs and improper lists.
Until now dots were read as symbols.

* guix/scripts/style.scm (read-with-comments)[dot]: New variable.
[dot?, reverse/dot]: New procedures.
Use 'reverse/dot' instead of 'reverse' when reading lists.
* tests/style.scm ("read-with-comments: dot notation")
("((a . 1) (b . 2))", "(a b c . boom)"): New tests.
2022-04-14 14:48:20 +02:00
Ludovic Courtès
7da907f90e
reconfigure: Fix typo on 'live-service-transient?'.
Fix typo introduced in e25eca35ff.

* guix/scripts/system/reconfigure.scm (running-services): Add question
mark to 'live-service-transient?.
2022-04-11 09:27:03 +02:00
Ludovic Courtès
e25eca35ff
services: herd: Adjust to <live-service> changes.
This is a followup to a2c759c830.

* guix/scripts/system/reconfigure.scm (running-services): Fill in the
'transient?' field of <live-service>.
* tests/services.scm ("shepherd-service-upgrade: one unchanged, one upgraded, one new")
("shepherd-service-upgrade: service depended on is not unloaded")
("shepherd-service-upgrade: obsolete services that depend on each
other"): Adjust calls to 'live-service'.
2022-04-10 01:15:13 +02:00
Ludovic Courtès
090ebc5ff9
guix describe: Add missing import.
Fixes a regression introduced in
d4e858763c.

* guix/scripts/describe.scm: Add missing autoload.
2022-04-09 00:29:24 +02:00
Ludovic Courtès
3da62bf5aa
ui: Move 'location->hyperlink' to (guix diagnostics).
* guix/ui.scm (location->hyperlink): Move to...
* guix/diagnostics.scm: ... here.
* guix/scripts/system/search.scm: Adjust imports accordingly.
2022-04-08 23:59:48 +02:00
Ludovic Courtès
d4e858763c
ui: Move hyperlink facilities to (guix colors).
* guix/ui.scm (supports-hyperlinks?, file-hyperlink, hyperlink): Move to...
* guix/colors.scm: ... here.
* guix/scripts/home.scm, guix/scripts/system.scm,
guix/scripts/system/search.scm: Adjust imports accordingly.
2022-04-08 23:59:48 +02:00
Ludovic Courtès
c42b7baf13
shell: Add '--export-manifest'.
* guix/scripts/shell.scm (show-help, %options): Add '--export-manifest'.
(manifest-entry-version-prefix, manifest->code*)
(export-manifest): New procedures.
(guix-shell): Honor '--export-manifest'.
* tests/guix-shell-export-manifest.sh: New file.
* Makefile.am (SH_TESTS): Add it.
* doc/guix.texi (Invoking guix shell): Document '--export-manifest'.
(Invoking guix environment): Link to it.
(Invoking guix pack): Likewise.
2022-04-04 22:58:04 +02:00
Ludovic Courtès
6fed836a6f
environment: Export 'load-manifest'.
* guix/scripts/environment.scm (load-manifest): New procedure.
(options/resolve-packages): Use it.
2022-04-04 22:58:03 +02:00
Ludovic Courtès
f54f2aa9df
packages: Add 'package-unique-version-prefix'.
* gnu/packages.scm (package-unique-version-prefix): New procedure.
* guix/scripts/package.scm (manifest-entry-version-prefix): Use it.
* tests/packages.scm ("package-unique-version-prefix, gcc@8")
("package-unique-version-prefix, grep"): New tests.
2022-04-04 22:58:03 +02:00
Ludovic Courtès
2a363bb5d3
weather: Colorize the output.
* guix/colors.scm (coloring-procedure): Export.
* guix/scripts/weather.scm (report-server-coverage): Highlight the
server name and colorize the availability ratio.
2022-04-01 18:01:06 +02:00
Ludovic Courtès
3748c32b13
home: import: Clarify alias parsing code.
* guix/scripts/home/import.scm (generate-bash-configuration+modules)
[bash-alias->pair]: Return #f on match failure.
[parse-aliases]: Adjust accordingly and use 'match'.
Remove 'filter' call.
2022-03-20 19:02:41 +01:00
Ludovic Courtès
6da2a5a565
home: import: Properly parse aliases that contain quotes.
* guix/scripts/home/import.scm (generate-bash-configuration+modules):
Define 'alias-rx'.
[bash-alias->pair]: Use it.
* tests/home-import.scm (match-home-environment-bash-service-with-alias):
New variable.
("manifest->code: Bash service with aliases"): New test.
2022-03-20 19:02:41 +01:00
Ludovic Courtès
9ea6a18e99
guix home: Show "container" in '--help' output.
This is a followup to 094a2cfbe4.

* guix/scripts/home.scm (show-help): Add "container".
2022-03-19 22:25:53 +01:00
Ludovic Courtès
094a2cfbe4
guix home: Add 'container' command.
* guix/scripts/home.scm (show-help, %options): Add '--network',
'--share', and '--expose'.
(not-config?, user-shell, spawn-home-container): New procedures.
(%default-system-profile): New variable.
(perform-action): Add #:file-system-mappings, #:container-command,
and #:network?; honor them.
(process-action): Adjust accordingly.
(guix-home)[parse-sub-command]: Add "container".
[parse-args]: New procedure.
Use it instead of 'parse-command-line'.
* tests/guix-home.sh: Add tests.
* doc/guix.texi (Declaring the Home Environment): Mention 'guix home
container' as a way to test configuration.
(Invoking guix home): Document it.
2022-03-19 18:51:09 +01:00
Ludovic Courtès
322707bc7f
guix system: Call 'export-graph' with the right port argument.
* guix/scripts/system.scm (export-extension-graph)
(export-shepherd-graph): Honor PORT.
2022-03-18 16:03:33 +01:00
Ludovic Courtès
25261cbf96
guix home: Implement the 'extension-graph' and 'shepherd-graph' actions.
Until now these two actions were silently ignored.

* guix/scripts/home.scm (show-help, %options): Add "--graph-backend".
(%default-options): Add 'graph-backend' key.
(export-extension-graph, export-shepherd-graph): New procedures.
(perform-action): Add #:graph-backend parameter.  Add cases for the
'extension-graph' and 'shepherd-graph' actions.
(process-action): Pass #:graph-backend to 'perform-action'.
* guix/scripts/system.scm (service-node-type)
(shepherd-service-node-type): Export
* tests/guix-home.sh: Add tests.
* doc/guix.texi (Invoking guix home): Document it.
2022-03-18 16:03:33 +01:00
Ludovic Courtès
f5a94b3a9f
graph: Factorize 'lookup-backend'.
* guix/graph.scm (lookup-backend): New procedure.
* guix/scripts/graph.scm (lookup-backend): Remove.
* guix/scripts/system.scm (lookup-backend): Remove.
* po/guix/POTFILES.in: Add 'guix/graph.scm'.
2022-03-18 16:03:33 +01:00
zimoun
5278cab3dc
scripts: import: gem: Fix recursive error handling.
Partly fixes <https://bugs.gnu.org/44115>.

* guix/scripts/import/gem.scm (guix-import-gem): Handle error.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-03-07 22:49:29 +01:00
Ludovic Courtès
ee6275c974
shell: Disable caching when '-p' is passed.
Fixes <https://issues.guix.gnu.org/53658>.
Reported by Guillaume Le Vaillant <glv@posteo.net>.

Previously we would wrongfully cache things, by adding a
new (profile . _) pair to the option alist, when the user runs:

  guix shell -p /path/to/profile -q

* guix/scripts/shell.scm (profile-cached-gc-root): Add ('profile . _) case.
2022-03-02 19:26:15 +01:00
Ludovic Courtès
2ddfb7b99b
pull: No longer print upgraded/added packages upon completion.
* guix/scripts/pull.scm (build-and-install): Remove call to
'display-profile-news' and adjust accordingly.
2022-02-27 18:06:19 +01:00
Ludovic Courtès
bc8bea1739
pull: '--news' no longer shows package lists.
* guix/scripts/pull.scm (display-channel-news): Return #t when news were
displayed.
(display-news): Add #:profile-news? parameter and honor it.  Print
something there were no news.
(process-query): For 'display-news', call 'display-channel-news'
directly.
* doc/guix.texi (Invoking guix pull): Adjust accordingly.
2022-02-27 18:06:14 +01:00
Ludovic Courtès
0ca26437cb
guix build: Warn when attempting to build an unsupported package.
Fixes <https://issues.guix.gnu.org/51801>.
Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>.

* guix/scripts/build.scm (options->derivations)[warn-if-unsupported]:
New procedure.
[compute-derivation]: Use it.
* tests/guix-build.sh: Add test.
2022-02-18 14:14:38 +01:00
Ludovic Courtès
791069737c
guix system: Fix 'describe' when booting the latest generation.
Fixes a regression introduced in
9679123ce0, whereby 'guix system describe'
would error out when /run/current-system points to /gnu/store/…-system,
which is the case when booting the latest generation or after
reconfigure.

* guix/scripts/system.scm (process-command): For 'describe'. Try
'generation-number' with and without the optional argument.
2022-02-15 17:24:08 +01:00
Ludovic Courtès
054ec2e242
pull: '--list-generations' pipes its output to the pager.
* guix/scripts/pull.scm (process-query): For 'list-generations queries,
use 'with-paginated-output-port'.
(display-news-entry-title): Pass second argument to 'highlight'.
(display-news-entry): Pass second argument to 'dim'.
2022-02-14 15:52:36 +01:00
Ludovic Courtès
b9df2e2b4d
pull: '--list-generations' lists packages only with '--details'.
* guix/scripts/pull.scm (show-help, %options): Add "--details".
(process-query): Honor it.
* doc/guix.texi (Invoking guix pull): Document it.
2022-02-14 15:52:36 +01:00
Ludovic Courtès
6adce1538d
publish: Do not sign the URL/Compression/FileSize narinfo fields.
This will allow mirror operators to alter these non-normative bits of a
narinfo without having to resign narinfos.

* guix/scripts/publish.scm (narinfo-string): Remove
URL/Compression/FileSize from BASE-INFO.  Move them after "Signature".
* tests/publish.scm ("/*.narinfo")
("/*.narinfo with properly encoded '+' sign")
("/*.narinfo with lzip + gzip")
("with cache, lzip + gzip"): Adjust accordingly.
* tests/substitute.scm ("query narinfo with signature over relevant subset"):
New test.
2022-02-14 11:23:56 +01:00
Ludovic Courtès
5c13484646
deploy: Add '--execute'.
* guix/scripts/deploy.scm (show-help, %options): Add '--execute'.
(invoke-command): New procedure.
(guix-deploy): Break arguments at "--" and handle '-x' and associated
command.
* doc/guix.texi (Invoking guix deploy): Document it.
2022-02-02 18:35:00 +01:00