summaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* import: utils: 'recursive-import' accepts an optional version parameter.Martin Becze2020-03-23
| | | | | | | | | | | | | | | | | | | | | | This adds a key VERSION to 'recursive-import' and move the paramter REPO to a key. This also changes all the things that rely on 'recursive-import' * guix/import/utils.scm (recursive-import): Add the VERSION key. Make REPO a key. (package->definition): Added optional 'append-version?'. * guix/import/cran.scm (cran->guix-package): Change the REPO parameter to a key. (cran-recursive-import): Likewise. * guix/import/elpa.scm (elpa->guix-pakcage): Likewise. (elpa-recursive-import): Likewise. * guix/import/gem.scm (gem->guix-package): Likewise. (recursive-import): Likewise. * guix/import/opam.scm (opam-recurive-import): Likewise. * guix/import/pypi.scm (pypi-recursive-import): Likewise. * guix/import/stackage.scm (stackage-recursive-import): Likewise. * guix/scripts/import/cran.scm: (guix-import-cran) Likewise. * guix/scripts/import/elpa.scm: (guix-import-elpa) Likewise. * tests/elpa.scm: (eval-test-with-elpa) Likewise. * tests/import-utils.scm Likewise.
* deploy: Write a message upon successful deployment.Ludovic Courtès2020-03-23
| | | | | * guix/scripts/deploy.scm (guix-deploy): Write message upon successful deployment.
* deploy: Show what machines will be deployed.Ludovic Courtès2020-03-23
| | | | | * guix/scripts/deploy.scm (show-what-to-deploy): New procedure. (guix-deploy): Call it.
* ui: Add 'indented-string'.Ludovic Courtès2020-03-23
| | | | | | | | | * guix/scripts/pull.scm (display-news-entry): Remove extra space in format string for 'indented-string'. (indented-string): Remove. (display-new/upgraded-packages)[pretty]: Pass #:initial-indent? to 'indented-string'. * guix/ui.scm (indented-string): New procedure.
* ssh: 'send-files' reports missing modules on the remote host.Ludovic Courtès2020-03-23
| | | | | | | | | Reported by Mikael Djurfeldt <mikael@djurfeldt.com> in <https://bugs.gnu.org/40125>. * guix/ssh.scm (send-files)[inferior-remote-eval*]: New procedure. [missing]: Use it. Add an explicit 'resolve-module' call. (report-inferior-exception): New procedure.
* build: emacs-utils: Add an option to select scoping for batch eval.Maxim Cournoyer2020-03-22
| | | | | | | | | | | In Emacs 27, --eval now evaluates using lexical scoping. This change adds an option to select dynamic scoping, by using a workaround proposed in <https://bugs.gnu.org/39823>. * guix/build/emacs-utils.scm (emacs-batch-eval): Add a DYNAMIC? keyword argument. Wrap the EXPR with a call to EVAL that makes use of the argument to select the scoping mode. (emacs-generate-autoloads): Use it.
* Remove workaround for 'time-monotonic' in Guile 2.2.2.Ludovic Courtès2020-03-22
| | | | | | | | | | | | This is a followup to e688c2df3924423b67892cc9939ca099c729d1cb. * build-aux/hydra/evaluate.scm <top level>: Remove 'time-monotonic' definition. * guix/cache.scm: Likewise. * guix/progress.scm: Likewise. * guix/scripts/substitute.scm: Likewise. * guix/scripts/weather.scm: Likewise. * tests/cache.scm: Likewise.
* build-system: linux-module: Fix cross compilation.Mathieu Othacehe2020-03-22
| | | | | | | | | | | | | | | | | * guix/build-system/linux-module.scm (default-kmod, default-gcc): Delete procedures. (system->arch): New procedure. (make-linux-module-builder)[native-inputs]: Move linux... [inputs]: ...to here. (linux-module-build-cross): New procedure. (linux-module-build): Add TARGET. Pass TARGET and ARCH to build side. (lower): Allow cross-compilation. Move "linux" and "linux-module-builder" to host-inputs. Add target-inputs. Call linux-module-build-cross if TARGET is set, linux-module-build otherwise. * guix/build/linux-module-build-system.scm (configure): Add ARCH argument. (linux-module-build): Adjust comment. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
* system: Add kernel-loadable-modules to operating-system.Danny Milosavljevic2020-03-22
| | | | | | | | | | | | | | | * gnu/system.scm (<operating-system>): Add kernel-loadable-modules. (operating-system-directory-base-entries): Use it. * doc/guix.texi (operating-system Reference): Document KERNEL-LOADABLE-MODULES. * gnu/build/linux-modules.scm (depmod): New procedure. (make-linux-module-directory): New procedure. Export it. * guix/profiles.scm (linux-module-database): New procedure. Export it. * gnu/tests/linux-modules.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/packages/linux.scm (make-linux-libre*)[arguments]<#:phases>[install]: Disable depmod. Remove "build" and "source" symlinks. [native-inputs]: Remove kmod.
* packages: 'package-field-location' handles missing source properties.Ludovic Courtès2020-03-22
| | | | | | | | This is a followup to f2b24f01f42c1bad3ddffd140194de1aec38a5f8. * guix/packages.scm (package-field-location): Check whether 'source-properties->location' returns #f. This fixes the case where 'source-properties' returns the empty list.
* copy: Use 'with-build-handler'.Ludovic Courtès2020-03-22
| | | | | | * guix/scripts/copy.scm (send-to-remote-host): Remove explicit 'show-what-to-build' call. Call 'build-derivations' unconditionally. (guix-copy): Wrap 'with-status-verbosity' in 'with-build-handler'.
* copy: Actually implement '--dry-run'.Ludovic Courtès2020-03-22
| | | | * guix/scripts/copy.scm (%options): Add '--dry-run'.
* copy: Factorize 'with-store' & co.Ludovic Courtès2020-03-22
| | | | | | | | * guix/scripts/copy.scm (send-to-remote-host): Remove 'with-store' and 'set-build-options-from-command-line' call. Add 'local' parameter. (retrieve-from-remote-host): Likewise. (guix-copy): Wrap 'with-status-verbosity' in 'with-store' and add call to 'set-build-options-from-command-line'.
* ui: 'build-notifier' invokes continuation when there's nothing to do.Ludovic Courtès2020-03-22
| | | | | * guix/ui.scm (build-notifier): Call CONTINUE when there's nothing to build or download, even when DRY-RUN? is true.
* ui: 'show-what-to-build' returns two values, for builds and downloads.Ludovic Courtès2020-03-22
| | | | * guix/ui.scm (show-what-to-build): Return two values.
* ui: 'show-what-to-build' returns true when there are grafts to build.Ludovic Courtès2020-03-22
| | | | | | * guix/ui.scm (show-what-to-build): Distinguish between 'build/full' and 'build'. Return true whe 'build/full' is non-empty, thus taking grafts into account.
* guix system: Use 'with-build-handler'.Ludovic Courtès2020-03-22
| | | | | | | * guix/scripts/system.scm (reinstall-bootloader): Remove call to 'show-what-to-build*'. (perform-action): Call 'build-derivations' instead of 'maybe-build'. (process-action): Wrap 'run-with-store' in 'with-build-handler'.
* guix package, pull: Use 'with-build-handler'.Ludovic Courtès2020-03-22
| | | | | | | | | | | | * guix/scripts/package.scm (build-and-use-profile): Remove #:dry-run? and #:use-substitutes?. Remove call to 'show-what-to-build' and 'dry-run?' special case. (process-actions): Adjust accordingly. (guix-package*): Wrap 'parameterize' in 'with-build-handler'. * guix/scripts/pull.scm (build-and-install): Remove #:use-substitutes? and #:dry-run? and adjust 'update-profile' call accordingly. Remove 'dry-run?' conditional. (guix-pull): Wrap body in 'with-build-handler'.
* pack: Use 'with-build-handler'.Ludovic Courtès2020-03-22
| | | | | | * guix/scripts/pack.scm (guix-pack): Wrap 'parameterize' in 'with-build-handler'. Remove explicit call to 'show-what-to-build'. Call 'build-derivations' regardless of whether OPTS contains 'dry-run?'.
* deploy: Use 'with-build-handler'.Ludovic Courtès2020-03-22
| | | | | | | Until now, 'guix deploy' would never display what is going to be built. * guix/scripts/deploy.scm (guix-deploy): Wrap 'for-each' in 'with-build-handler'.
* guix build: Use 'with-build-handler'.Ludovic Courtès2020-03-22
| | | | | | | | | Fixes <https://bugs.gnu.org/28310>. Reported by Andreas Enge <andreas@enge.fr>. * guix/scripts/build.scm (guix-build): Wrap 'parameterize' in 'with-build-handler'. Remove explicit call to 'show-what-to-build'. Call 'build-derivations' regardless of whether OPTS contains 'dry-run?'.
* ui: Add a notification build handler.Ludovic Courtès2020-03-22
| | | | * guix/ui.scm (build-notifier): New variable.
* store: Add 'with-build-handler'.Ludovic Courtès2020-03-22
| | | | | | | * guix/store.scm (current-build-prompt): New variable. (call-with-build-handler, invoke-build-handler): New procedures. (with-build-handler): New macro. * tests/store.scm ("with-build-handler"): New test.
* syscalls: 'with-file-lock' re-grabs lock when reentering its dynamic extent.Ludovic Courtès2020-03-22
| | | | | | | * guix/build/syscalls.scm (call-with-file-lock) (call-with-file-lock/no-wait): Initialize PORT in the 'dynamic-wind' "in" handler. This allows us to re-enter a captured continuation and have the lock grabbed anew.
* download: Delete the output file upon failure.Ludovic Courtès2020-03-22
| | | | | | | | | | This allows ENOSPC conditions to be properly reported as such rather than as a hash mismatch due to the availability of a truncated file. Fixes <https://bugs.gnu.org/39993>. Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>. * guix/build/download.scm (url-fetch): In the failure case, delete FILE.
* packages: 'package-field-location' preserves the original file name.Ludovic Courtès2020-03-20
| | | | | | | | | Fixes <https://bugs.gnu.org/39425>. Reported by Alex ter Weele <alex.ter.weele@gmail.com>. * guix/packages.scm (package-field-location): Remove 'with-fluids' for '%file-port-name-canonicalization'. Change the 'file' field of the resulting location to FILE.
* guix: lint: Ad scdoc as a suggested native input.Brendan Tildesley2020-03-19
| | | | | | * guix/lint.scm (check-inputs-should-be-native): Add scdoc. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
* guix package: Remove unneeded import.Ludovic Courtès2020-03-19
| | | | | | This is a followup to 55e1dfa4dd189e010c541e3997b65434c702b4a5. * guix/scripts/package.scm: Remove unneeded #:use-module.
* inferior: '&inferior-exception' includes a stack trace.Ludovic Courtès2020-03-19
| | | | | | | | * guix/inferior.scm (port->inferior): Bump protocol to (0 1 1). (&inferior-exception)[stack]: New field. (read-repl-response): Recognize 'exception' form for protocol (0 1 1). * tests/inferior.scm ("&inferior-exception"): Check the value returned by 'inferior-exception-stack'.
* repl: Return stack traces along with exceptions.Ludovic Courtès2020-03-19
| | | | | | | | | * guix/repl.scm (repl-prompt): New variable. (stack->frames): New procedure. (send-repl-response)[frame->sexp, handle-exception]: New procedure. Pass HANDLE-EXCEPTION as a pre-unwind handler. (machine-repl): Define 'tag'. Bump protocol version to (0 1 1). Wrap 'loop' call in 'call-with-prompt'.
* inferior: Adjust to protocol (0 1).Ludovic Courtès2020-03-19
| | | | | * guix/inferior.scm (port->inferior): For protocol (0 x ...), where x >= 1, send the (() repl-version ...) form.
* repl: Allow clients to send their protocol version.Ludovic Courtès2020-03-19
| | | | | | | | | * guix/repl.scm (send-repl-response): Add #:version. (machine-repl): Make 'loop' an internal define with a 'version' parameter. Pass VERSION to 'send-repl-response'. Send (0 1) as the protocol version. If the first element read from INPUT matches (() repl-version _ ...), interpret it as the client's protocol version.
* store: Fix many guix commands failing on some locales.Florian Pelz2020-03-14
| | | | | | | | | | | | Partly fixes <https://bugs.gnu.org/39970>. At least 'guix environment', 'guix install' and 'guix pull' on 'az_AZ.utf8' and 'tr_TR.utf8' were affected. * guix/store.scm (store-path-hash-part): Move base path detection to ... (store-path-base): ... this new exported procedure. (store-path-package-name): Use it instead of locale-dependent regexps. (store-regexp*): Remove.
* build-system: linux-module: Break some long lines.Mathieu Othacehe2020-03-17
| | | | | * gnu/build/linux-modules.scm (make-linux-module-builder, lower): Break some long commentary lines.
* guix: import: opam: Use a default repository.Julien Lepiller2020-03-17
| | | | | * guix/import/opam.scm (opam->guix-package): Use a default value for `repository`.
* pack: Do not create a squashfs "recovery file".Ludovic Courtès2020-03-13
| | | | | | | Reported by Josh Marshall <Josh.Marshall@jax.org>. * guix/scripts/pack.scm (squashfs-image)[build](mksquashfs): Always pass "-no-recovery".
* pack: Make bit-reproducible squashfs images.Ludovic Courtès2020-03-13
| | | | | | | Reported by Josh Marshall <Josh.Marshall@jax.org>. * guix/scripts/pack.scm (squashfs-image)[build](mksquashfs): Always pass "-all-time", "-mkfs-time", "-force-uid", and "-force-gid" to 'mksquashfs'.
* pack: Factorize 'mksquashfs' invocations.Ludovic Courtès2020-03-13
| | | | | | * guix/scripts/pack.scm (squashfs-image)[build](mksquashfs): New procedure. Replace instances of (invoke "mksquashfs" ...) with (mksquashfs ...).
* weather: '--coverage' filters out non-package objects.Ludovic Courtès2020-03-13
| | | | | | | This is a followup to d37b5a1b58824dafbe6f32b1c183661c147c660c. * guix/scripts/weather.scm (guix-weather): Filter PACKAGES passed to 'report-package-coverage'.
* weather: Exit with non-zero when coverage is below 100%.Ludovic Courtès2020-03-13
| | | | | * guix/scripts/weather.scm (report-server-coverage): Return the coverage ratio. (guix-weather): Exit if and only if each server's coverage is 1.
* weather: Allow for multiple '--manifest' options.Ludovic Courtès2020-03-12
| | | | | | * guix/scripts/weather.scm (guix-weather)[package-list]: Account for all the 'manifest entries in OPTS. * doc/guix.texi (Invoking guix weather): Document it.
* weather: Add '--display-missing'.Ludovic Courtès2020-03-12
| | | | | | | | * guix/scripts/weather.scm (report-server-coverage): Add #:display-missing? and honor it. (show-help, %options): Add "--display-missing". (guix-weather): Pass #:display-missing? to 'report-server-coverage'. * doc/guix.texi (Invoking guix weather): Document it.
* gexp: Add 'with-parameters'.Ludovic Courtès2020-03-12
| | | | | | | | | | * guix/gexp.scm (<parameterized>): New record type. (with-parameters): New macro. (compile-parameterized): New gexp compiler. * tests/gexp.scm ("with-parameters for %current-system") ("with-parameters for %current-target-system") ("with-parameters + file-append"): New tests. * doc/guix.texi (G-Expressions): Document it.
* inferior: Distinguish inferior exceptions.Ludovic Courtès2020-03-12
| | | | | | | | | | | | This avoids ambiguities when looking at a backtrace where the exception was actually thrown by an inferior in a very different context. * guix/inferior.scm (&inferior-exception): New condition type. (read-repl-response): Add optional 'inferior' parameter. Raise '&inferior-exception' instead of rethrowing to KEY when receiving an 'exception' message. (read-inferior-response): Pass INFERIOR to 'read-repl-response'. * tests/inferior.scm ("&inferior-exception"): New test.
* import: cpan: Gracefully handle missing projects.Ludovic Courtès2020-03-12
| | | | * guix/import/cpan.scm (cpan-fetch): Check whether 'json-fetch' returns #f.
* import: utils: Remove 'assoc-ref*'.Ludovic Courtès2020-03-12
| | | | * guix/import/utils.scm (assoc-ref*): Remove.
* import: pypi: Rewrite to use 'define-json-mapping'.Ludovic Courtès2020-03-12
| | | | | | | | | | * guix/import/pypi.scm (non-empty-string-or-false): New procedure. (<pypi-project>, <project-info>, <distribution>): New record types. (pypi-fetch): Call 'json->pypi-project'. (latest-source-release, latest-wheel-release): Use the new record accessors instead of 'assoc-ref*'. (pypi->guix-package, latest-release): Likewise. * tests/pypi.scm (test-json): Add mandatory fields.
* download: Remove (web http) workarounds no longer relevant.Ludovic Courtès2020-03-11
| | | | | | * guix/build/download.scm <top level>: Remove workarounds for <https://bugs.gnu.org/23421> and for <https://lists.gnu.org/archive/html/guix-devel/2017-11/msg00070.html>.
* ui: Restore line wrapping for 'package->recutils'.Ludovic Courtès2020-03-11
| | | | | | | | | | Fixes a regression introduced when switching to Guile 3.0.0 whereby monkey-patching 'wrap*' wouldn't have any effects due to inlining. * guix/ui.scm (%text-width): Define in terms of the '*line-width*' fluid when it's defined. <top level>: Set (@@ (texinfo plain-text) wrap*) only when '*line-width*' is undefined.
* download: Remove misbehaving kvin.lv mirror.Tobias Geerinckx-Rice2020-03-09
| | | | | | It issues bogus redirections instead of returning 404. * guix/download.scm (%mirrors): Remove kvin.lv from CPAN.