summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2020-03-29grafts: Don't rely on substitute info for missing store items.Ludovic Courtès
Fixes <https://bugs.gnu.org/22990>. * guix/grafts.scm (references-oracle)[references*]: Remove call to 'substitution-oracle' and to 'references/substitutes'. Use 'references/cached' and 'build-derivations' right away instead.
2020-03-29store: Add 'references/cached'.Ludovic Courtès
* guix/store.scm (references/cached): New procedure.
2020-03-29profiles: Use 'mapm/accumulate-builds'.Ludovic Courtès
* guix/profiles.scm (check-for-collisions): Use 'mapm/accumulate-builds' to lower manifest entries. Call 'foldm' over the already-lowered entries. (profile-derivation): Use 'mapm/accumulate-builds' instead of 'mapm' when calling HOOKS.
2020-03-29gexp: 'lower-inputs' uses 'mapm/accumulate-builds'.Ludovic Courtès
This doesn't have an noticeable impact on the run time of 'guix system build desktop.tmp --no-grafts -d'. * guix/gexp.scm (lower-inputs): Use 'mapm/accumulate-builds' instead of 'mapm'.
2020-03-29guix build: Use 'map/accumulate-builds'.Ludovic Courtès
* guix/scripts/build.scm (options->derivations): Use 'map/accumulate-builds' instead of 'append-map'.
2020-03-29store: Add 'map/accumulate-builds'.Ludovic Courtès
* guix/store.scm (<unresolved>): New record type. (build-accumulator, map/accumulate-builds, mapm/accumulate-builds): New procedures. * tests/store.scm ("map/accumulate-builds", "mapm/accumulate-builds"): New tests.
2020-03-28deploy: Remove use of '~*' in format string.Marius Bakke
...since 'msgfmt' fails to interpret it. Reported by Vagrant Cascadian in <https://lists.gnu.org/archive/html/guix-devel/2020-03/msg00340.html>. See also <https://bugs.gnu.org/37505>. * guix/scripts/deploy.scm (show-what-to-deploy): Use ~d instead of ~* when displaying machines that will be deployed.
2020-03-27packages: Use Guile 3.0 for grafts.Ludovic Courtès
* guix/packages.scm (guile-2.0): Rename to... (guile-for-grafts): ... this, and adjust callers. Refer to 'guile-3.0' instead of 'guile-2.0'.
2020-03-26status: Display synthetic information about profiles being built.Ludovic Courtès
* guix/status.scm (print-build-event): Add 'profile case. * guix/scripts/package.scm (build-and-use-profile): Remove now redundant message.
2020-03-26profiles: 'profile-derivation' sets a 'type' property.Ludovic Courtès
* guix/profiles.scm (profile-derivation): Pass #:properties to 'gexp->derivation'.
2020-03-25import/cran: Import missing module.Ricardo Wurmus
This is a follow-up to commit b005c240bb5e436ffe9d55c2dd75c9af85aa0fdd. Reported-by: Ludovic Courtès <ludo@gnu.org> * guix/import/cran.scm: Import (guix ui) module.
2020-03-25environment: Use 'with-build-handler'.Ludovic Courtès
* guix/scripts/environment.scm (build-environment): Remove. (guix-environment): Wrap 'with-status-verbosity' in 'with-build-handler'. Remove 'dry-run?' conditional. Use 'built-derivations' instead of 'build-environment'.
2020-03-25archive: Use 'with-build-handler'.Ludovic Courtès
* guix/scripts/archive.scm (export-from-store): Remove call to 'show-what-to-build' and dry-run? condition. (guix-archive): Wrap 'cond' in 'with-build-handler'.
2020-03-25import/cran: Support importing from Mercurial repositories.Ricardo Wurmus
* guix/import/cran.scm (download): Accept keyword #:method; add case for hg method. (fetch-description): Handle hg repository. (description->package): Add cases for hg repositories and update call of DOWNLOAD procedure. (cran->guix-package): Retry importing from Bioconductor when hg import failed.
2020-03-24scripts: lint: Handle store connections for lint checkers.Christopher Baines
Rather than individual checkers opening up a connection to the store for each package to check, if any checker requires a store connection, open a connection and pass it to all checkers that would use it. This makes running the derivation checker much faster for multiple packages. * guix/scripts/lint.scm (run-checkers): Add a #:store argument, and pass the store to checkers if they require a store connection. (guix-lint): Establish a store connection if any checker requires one, and pass it through to run-checkers.
2020-03-24lint: Add a #:store argument to check-derivationChristopher Baines
This can then be used to avoid opening up a store connection each time a package needs checking. * guix/lint.scm (check-derivation): Add a #:store argument, and pull the handling of the store connection out of the try function.
2020-03-24lint: Mark the derivation checker as requiring a store connection.Christopher Baines
* guix/lint.scm (%local-checkers): Mark the derivation checker as requiring a store connection.
2020-03-24lint: Add a requires-store? field to the checker record.Christopher Baines
This can then be used to mark checkers that require a store connection, which will enable passing a connection in, avoiding the overhead of establishing a connection inside the check function when it's run for lots of different packages. * guix/lint.scm (<lint-checker>): Add requires-store? to the record type.
2020-03-24guix system: Fix mistaken 'guix pull' warning upon 'reconfigure'.Ludovic Courtès
Fixes <https://bugs.gnu.org/38196>. Reported by Florian Pelz <pelzflorian@pelzflorian.de>. * guix/scripts/system.scm (maybe-suggest-running-guix-pull): Check whether 'current-profile' returns true instead of checking for the existence of ~root/.config/guix/current. That way, "sudo guix system reconfigure" no longer emits a warning in that case.
2020-03-24pack: Do not store extended attributes in squashfs images.Ludovic Courtès
* guix/scripts/pack.scm (squashfs-image)[build](mksquashfs): Pass "-no-xattrs".
2020-03-24ui: 'show-manifest-transaction' tabulates package lists for install/remove.Ludovic Courtès
It also removes the store file name from the output. * guix/ui.scm (show-manifest-transaction)[package-strings]: Rewrite to use 'tabulate'. Remove 'item' parameter and adjust callers.
2020-03-24ui: 'show-manifest-transaction' tabulates upgraded package lists.Ludovic Courtès
This also changes "1.0.0 → 1.0.0" to "(dependencies changed)", which is probably less confusing. * guix/ui.scm (tabulate): New procedure. (show-manifest-transaction)[upgrade-string]: Rewrite to take lists of names, versions, and outputs instead of single elements. Use 'tabulate'. Adjust callers accordingly.
2020-03-24import: crate: Deduplicate dependencies.Martin Becze
* guix/import/crate.scm (crate-version-dependencies): Deduplicate crate dependencies. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-03-24licenses: Add QWT 1.0 license.Arun Isaac
* guix/licenses.scm (qwt1.0): New variable. Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
2020-03-24licenses: Add Open Government Licence for Public Sector Information.Arun Isaac
* guix/licenses.scm (ogl-psi1.0): New variable. Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
2020-03-23deploy: Write a message upon successful deployment.Ludovic Courtès
* guix/scripts/deploy.scm (guix-deploy): Write message upon successful deployment.
2020-03-23deploy: Show what machines will be deployed.Ludovic Courtès
* guix/scripts/deploy.scm (show-what-to-deploy): New procedure. (guix-deploy): Call it.
2020-03-23ui: Add 'indented-string'.Ludovic Courtès
* 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.
2020-03-23ssh: 'send-files' reports missing modules on the remote host.Ludovic Courtès
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.
2020-03-22build: emacs-utils: Add an option to select scoping for batch eval.Maxim Cournoyer
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.
2020-03-22Remove workaround for 'time-monotonic' in Guile 2.2.2.Ludovic Courtès
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.
2020-03-22build-system: linux-module: Fix cross compilation.Mathieu Othacehe
* 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>
2020-03-22system: Add kernel-loadable-modules to operating-system.Danny Milosavljevic
* 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.
2020-03-22packages: 'package-field-location' handles missing source properties.Ludovic Courtès
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.
2020-03-22copy: Use 'with-build-handler'.Ludovic Courtès
* 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'.
2020-03-22copy: Actually implement '--dry-run'.Ludovic Courtès
* guix/scripts/copy.scm (%options): Add '--dry-run'.
2020-03-22copy: Factorize 'with-store' & co.Ludovic Courtès
* 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'.
2020-03-22ui: 'build-notifier' invokes continuation when there's nothing to do.Ludovic Courtès
* guix/ui.scm (build-notifier): Call CONTINUE when there's nothing to build or download, even when DRY-RUN? is true.
2020-03-22ui: 'show-what-to-build' returns two values, for builds and downloads.Ludovic Courtès
* guix/ui.scm (show-what-to-build): Return two values.
2020-03-22ui: 'show-what-to-build' returns true when there are grafts to build.Ludovic Courtès
* 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.
2020-03-22guix system: Use 'with-build-handler'.Ludovic Courtès
* 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'.
2020-03-22guix package, pull: Use 'with-build-handler'.Ludovic Courtès
* 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'.
2020-03-22pack: Use 'with-build-handler'.Ludovic Courtès
* 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?'.
2020-03-22deploy: Use 'with-build-handler'.Ludovic Courtès
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'.
2020-03-22guix build: Use 'with-build-handler'.Ludovic Courtès
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?'.
2020-03-22ui: Add a notification build handler.Ludovic Courtès
* guix/ui.scm (build-notifier): New variable.
2020-03-22store: Add 'with-build-handler'.Ludovic Courtès
* 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.
2020-03-22syscalls: 'with-file-lock' re-grabs lock when reentering its dynamic extent.Ludovic Courtès
* 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.
2020-03-22download: Delete the output file upon failure.Ludovic Courtès
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.
2020-03-20packages: 'package-field-location' preserves the original file name.Ludovic Courtès
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.