Age | Commit message (Expand) | Author |
2020-04-06 | channels: Call 'build-self.scm' procedure with a trivial build handler....Previously, "TESTS=installed-os guix build -m etc/system-tests.scm"
would repeat the "Computing Guix derivation" phase ~5 times due to the
fact that there were several call paths, within a build-accumulator,
leading to (package-derivation store guix).
* guix/channels.scm (with-trivial-build-handler): New procedure.
(build-from-source): Wrap 'build' call in 'with-trivial-build-handler'.
| Ludovic Courtès |
2020-04-06 | gnu: Move PACKAGES-WITH-*PATCHES to (guix packages)...* gnu/packages/cross-base.scm (package-with-extra-patches,
package-with-patches): Move procedures from here...
* guix/packages.scm (package-with-extra-patches, package-with-patches):
...to here, and export.
| Carl Dong |
2020-04-05 | store: 'with-store' uses 'with-exception-handler'....This ensures the stack is not unwound before the exception is re-thrown,
as was the case since 8ed597f4a261fe188de82cd1f5daed83dba948eb, leading
to '&store-protocol-error' being uncaught by 'with-error-handling'
in (guix scripts build) & co.
* guix/store.scm (call-with-store): Define 'thunk'. Add 'cond-expand'
to use 'with-exception-handler' on 'guile-3' and 'catch' otherwise.
| Ludovic Courtès |
2020-04-04 | store: 'with-store' doesn't close the store upon abort....Fixes <https://bugs.gnu.org/40428>.
Reported by Marius Bakke <mbakke@fastmail.com> and 白い熊.
Regression introduced with the first uses of 'with-build-handler' in
commit 62195b9a8fd6846117c5d7698842748300d13e31 and subsequent.
* guix/store.scm (call-with-store): Use 'catch #t' instead of
'dynamic-wind'. This ensures STORE remains open when a non-local exit
other than an exception occurs, such as an abort to the build handler
prompt.
* tests/store.scm ("with-build-handler + with-store"): New test.
| Ludovic Courtès |
2020-04-03 | pack: Pass the cross-compilation target to 'run-with-store'....This ensures '%current-target-system' is correctly bound upfront, which
some packages rely on.
* guix/scripts/pack.scm (guix-pack): Pass #:target to 'run-with-store'.
| Ludovic Courtès |
2020-04-03 | guix system: Mention 'herd restart' when reconfigure completes....* guix/scripts/system.scm (with-shepherd-error-handling): Use 'mbegin'
instead of 'begin'.
(perform-action): Print a message after 'upgrade-shepherd-services'.
That message had disappeared in commit
5c8c8c455420af27189d6045b3599fe6e27ad012.
| Ludovic Courtès |
2020-04-03 | guix system: Remove unused procedure....This procedure was unused since
5c8c8c455420af27189d6045b3599fe6e27ad012.
* guix/scripts/system.scm (call-with-service-upgrade-info): Remove.
| Ludovic Courtès |
2020-04-03 | reconfigure: Silence Guile warnings....Fixes <https://bugs.gnu.org/39301>.
Reported by strypsteen@posteo.net.
* guix/scripts/system/reconfigure.scm (switch-to-system)
(upgrade-shepherd-services, install-bootloader): Wrap 'primitive-load'
call in 'parameterize'.
| Ludovic Courtès |
2020-04-03 | Revert "reconfigure: Run the effect scripts as separate processes."...This reverts commit 5517750344be05c91bc2979c1a0e2348a9ae902d.
That commit would remove all sorts of error checking when running those
programs.
| Ludovic Courtès |
2020-04-02 | reconfigure: Run the effect scripts as separate processes....Fixes <https://bugs.gnu.org/39301>.
Reported by strypsteen@posteo.net.
* guix/scripts/system/reconfigure.scm (switch-to-system)
(upgrade-shepherd-services, install-bootloader): Use 'system*' instead
of 'primitive-load'.
| Ludovic Courtès |
2020-04-02 | guix system: Do not import the user's (guix config)....Previously, 'switch-to-system.drv' and 'install-bootloader.drv' would
depend on the user's (guix config) module. This is no longer the case.
* guix/scripts/system/reconfigure.scm (not-config?): New procedure.
(switch-system-program): Do not import the user's (guix config). Use
'make-config.scm' instead.
(install-bootloader-program): Likewise.
| Ludovic Courtès |
2020-04-02 | git: Don't try to resolve tags with 'tag-lookup'....Fixes <https://bugs.gnu.org/40377>.
Reported by Brice Waegeneire <brice@waegenei.re>.
* guix/git.scm (switch-to-ref): In the 'tag case, remove call to
'tag-lookup'.
| Ludovic Courtès |
2020-04-02 | bournish: Prevent inlining of run-time support procedures....On Guile 3, those procedures could be inlined, leading to
unbound-variable errors:
scheme@(guile-user)> ,bournish
Welcome to Bournish, a minimal Bourne-like shell!
To switch back, type `,L scheme'.
bournish@(guile-user)> ls
ice-9/boot-9.scm:1669:16: In procedure raise-exception:
Unbound variable: ls-command-implementation
Reported by Ricardo Wurmus.
* guix/build/bournish.scm (define-command-runtime): New macro.
(ls-command-implementation, wc-command-implementation)
(wc-l-command-implementation, wc-c-command-implementation): Use it
instead of 'define'.
| Ludovic Courtès |
2020-04-02 | gexp: 'lower-references' uses 'mapm/accumulate-builds'....* guix/gexp.scm (lower-references): Use 'mapm/accumulate-builds' instead
of 'mapm'.
| Ludovic Courtès |
2020-04-02 | guix system: Use 'mapm/accumulate-builds'....* guix/scripts/system.scm (perform-action): Use 'mapm/accumulate-builds'
instead of 'mapm'.
| Ludovic Courtès |
2020-04-02 | ui: Clarify "dependencies changed"....Suggested by Leo Famulari <leo@famulari.name>.
* guix/ui.scm (show-manifest-transaction): Change to "dependencies or
package changed".
| Ludovic Courtès |
2020-04-02 | grafts: Simplify access to store item references....This is a followup to 710854304b1ab29332edcb76f3de532e0724c197.
This also slightly reduces the number of 'query-references' RPCs, for
instance from 176 to 166 from "guix build emacs -d".
* guix/grafts.scm (references-oracle): Remove.
(non-self-references): Remove 'references' parameter and add 'store'.
Add 'references*' procedure and use it instead of 'references'. Adjust
caller accordingly.
(cumulative-grafts): Remove 'references' parameter and adjust caller
accordingly.
| Ludovic Courtès |
2020-03-31 | profiles: Compute manual database entries in parallel....This provides a 36% speedup on an SSD and 4 cores for the 1.5K man pages
in the manual database derivation of:
guix environment --ad-hoc jupyter python-ipython python-ipykernel
* guix/profiles.scm (manual-database)[build]: Add 'print-string',
'print', and 'compute-entry'. Change 'compute-entries' to call
'compute-entry' in 'n-par-map'.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
| Arne Babenhauserheide |
2020-03-31 | ci: Fix 'evaluation-spec' binding....* guix/ci.scm (<evaluation>)[spec]: Add "specification", which is what
the JSON field is actually called.
| Ludovic Courtès |
2020-03-31 | guix package: Do not misdiagnose upgrades when there are propagated inputs....Fixes <https://bugs.gnu.org/35872>.
Reported by Andy Tai <atai@atai.org>.
* guix/profiles.scm (list=?, manifest-entry=?): New procedures.
* guix/scripts/package.scm (transaction-upgrade-entry): In the '=' case,
use 'manifest-entry=?' to determine whether it's an upgrade.
* tests/packages.scm ("transaction-upgrade-entry, zero upgrades,
propagated inputs"): New test.
| Ludovic Courtès |
2020-03-31 | profiles: 'lower-manifest-entry' recurses on dependencies....* guix/profiles.scm (lower-manifest-entry)[recurse]: New procedure.
Call it on dependencies and set the 'dependencies' field accordingly.
| Ludovic Courtès |
2020-03-31 | guix package: 'transaction-upgrade-entry' swallows build requests....Fixes a regression introduced in
131f50cdc9dbb7183023f4dae759876a9e700bef whereby the install/upgrade
message would not be displayed:
$ guix upgrade -n
2.1 MB would be downloaded:
/gnu/store/…-something-1.2
/gnu/store/…-its-dependency-2.3
This is because we'd directly abort from 'transaction-upgrade-entry' to
the build handler of 'build-notifier'.
* guix/scripts/package.scm (transaction-upgrade-entry): Call 'string=?'
expression in 'with-build-handler'.
* tests/packages.scm ("transaction-upgrade-entry, grafts"): New test.
| Ludovic Courtès |
2020-03-31 | guix package: 'transaction-upgrade-entry' uses 'lower-manifest-entry'....* guix/profiles.scm (lower-manifest-entry): Export.
* guix/scripts/package.scm (transaction-upgrade-entry)[lower-manifest-entry*]
[upgrade]: New procedures.
Use 'lower-manifest-entry*' instead of 'package-derivation' to compute
the output file name of PKG.
| Ludovic Courtès |
2020-03-29 | build-system/gnu: Optimize the package graph....With this change, the output of:
guix graph -e '(@@ (gnu packages commencement) coreutils-final)' |grep 'label = ' | wc -l
drops from 76 nodes to 68 nodes, and the "add-data-to-store-cache" hit
rate for:
guix build libreoffice -d --no-grafts
drops from 3.9% to 2.6%.
* guix/build-system/gnu.scm (package-with-explicit-inputs*)[cut?]:
Adjust condition to exclude packages with build systems other than
GNU-BUILD-SYSTEM, such as 'ld-wrapper-boot3'.
| Ludovic Courtès |
2020-03-29 | packages: 'package->bag' keys cache by replacement....* guix/packages.scm (package->bag): When GRAFT? is true, use PACKAGE's
replacement as the cache key. Remove GRAFT? from the list of
secondary cache keys.
| Ludovic Courtès |
2020-03-29 | deploy: Use 'map/accumulate-builds'....* guix/scripts/deploy.scm (guix-deploy): Use 'map/accumulate-builds'
instead of 'for-each'.
| Ludovic Courtès |
2020-03-29 | deploy: Factorize machine deployment....* guix/scripts/deploy.scm (deploy-machine*): New procedure.
(guix-deploy): Call it in 'for-each'.
| Ludovic Courtès |
2020-03-29 | packages: Change 'guile-for-grafts' back to 2.0....This reverts 2b6fe60599d52b449bbf531cfdc4dbf18a14eb2c, due to reports of
segfaults of Guile 3.0.2 during grafting.
* guix/packages.scm (guile-for-grafts): Change back to GUILE-2.0.
| Ludovic Courtès |
2020-03-29 | '--dry-run' no longer implies '--no-grafts'....* guix/scripts/archive.scm (%options): "dry-run" option no longer adds
'graft? #f to RESULT.
* guix/scripts/environment.scm (%options): Likewise.
* guix/scripts/pack.scm (%options): Likewise.
* guix/scripts/package.scm (%options): Likewise.
* guix/scripts/pull.scm (%options): Likewise.
* guix/scripts/system.scm (%options): Likewise.
| Ludovic Courtès |
2020-03-29 | grafts: Don't rely on substitute info for missing store items....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.
| Ludovic Courtès |
2020-03-29 | store: Add 'references/cached'....* guix/store.scm (references/cached): New procedure.
| Ludovic Courtès |
2020-03-29 | profiles: Use 'mapm/accumulate-builds'....* 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.
| Ludovic Courtès |
2020-03-29 | gexp: 'lower-inputs' uses 'mapm/accumulate-builds'....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'.
| Ludovic Courtès |
2020-03-29 | guix build: Use 'map/accumulate-builds'....* guix/scripts/build.scm (options->derivations): Use
'map/accumulate-builds' instead of 'append-map'.
| Ludovic Courtès |
2020-03-29 | store: Add 'map/accumulate-builds'....* 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.
| Ludovic Courtès |
2020-03-28 | deploy: Remove use of '~*' in format string.......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.
| Marius Bakke |
2020-03-27 | packages: Use Guile 3.0 for grafts....* 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'.
| Ludovic Courtès |
2020-03-26 | status: Display synthetic information about profiles being built....* guix/status.scm (print-build-event): Add 'profile case.
* guix/scripts/package.scm (build-and-use-profile): Remove now redundant
message.
| Ludovic Courtès |
2020-03-26 | profiles: 'profile-derivation' sets a 'type' property....* guix/profiles.scm (profile-derivation): Pass #:properties to
'gexp->derivation'.
| Ludovic Courtès |
2020-03-25 | import/cran: Import missing module....This is a follow-up to commit b005c240bb5e436ffe9d55c2dd75c9af85aa0fdd.
Reported-by: Ludovic Courtès <ludo@gnu.org>
* guix/import/cran.scm: Import (guix ui) module.
| Ricardo Wurmus |
2020-03-25 | environment: Use 'with-build-handler'....* 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'.
| Ludovic Courtès |
2020-03-25 | archive: Use 'with-build-handler'....* 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'.
| Ludovic Courtès |
2020-03-25 | import/cran: Support importing from Mercurial repositories....* 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.
| Ricardo Wurmus |
2020-03-24 | scripts: lint: Handle store connections for lint checkers....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.
| Christopher Baines |
2020-03-24 | lint: Add a #:store argument to check-derivation...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.
| Christopher Baines |
2020-03-24 | lint: Mark the derivation checker as requiring a store connection....* guix/lint.scm (%local-checkers): Mark the derivation checker as requiring a
store connection.
| Christopher Baines |
2020-03-24 | lint: Add a requires-store? field to the checker record....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.
| Christopher Baines |
2020-03-24 | guix system: Fix mistaken 'guix pull' warning upon 'reconfigure'....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.
| Ludovic Courtès |
2020-03-24 | pack: Do not store extended attributes in squashfs images....* guix/scripts/pack.scm (squashfs-image)[build](mksquashfs): Pass "-no-xattrs".
| Ludovic Courtès |
2020-03-24 | ui: 'show-manifest-transaction' tabulates package lists for install/remove....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.
| Ludovic Courtès |