summaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* self: Prevent inlining of internal procedures used by 'doc/build.scm'.Ludovic Courtès2020-04-13
| | | | | | | | | This allows 'doc/build.scm' to keep using '@@' for these. (This sets a bad example, don't follow it.) * guix/self.scm (prevent-inlining!): New macro. <top level>: Use it for 'file-append*', 'translate-texi-manuals', and 'info-manual'.
* build: julia-build-system: Update for new Julia version.nixo2020-04-12
| | | | | | | | | | * guix/build/julia-build-system.scm (generate-load-path): Delete function. (install): Don't set JULIA_LOAD_PATH. (precompile): Set SOURCE_DATE_EPOCH. Update calculating the JULIA_LOAD_PATH. Adjust the 'invoke-julia' command. (check): Set SOURCE_DATE_EPOCH. Adjust JULIA_LOAD_PATH. Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
* lint: 'check-patch-file-names' restricts to shorter file names.Ludovic Courtès2020-04-10
| | | | * guix/lint.scm (check-patch-file-names): Increase MARGIN.
* lint: Check for inappropriate inputs in propagated-inputs too.Efraim Flashner2020-04-10
| | | | | * guix/lint.scm (check-inputs-should-be-native): Also check the propagated inputs of the package.
* download: Use correct system and guile in 'url-fetch/tarbomb' and ↵Diego Nicola Barbato2020-04-08
| | | | | | | | | | | | | | | | | | | | | | 'url-fetch/zipbomb'. Fixes <https://bugs.gnu.org/40115>. Previously the result of `guix build -s $system $package' would depend on the system Guix was built for if $package or one of its dependencies used 'url-fetch/tarbomb' or 'url-fetch/zipbomb' as the origin method of its source (e.g. `guix build -s i686-linux ffmpeg' on i686-linux would build a different derivation than on x86_64-linux). This patch fixes this by explicitly passing the correct system and guile to 'gexp->derivation'. * guix/download.scm (url-fetch/tarbomb): Pass #:system system and #:guile-for-build guile to 'gexp->derivation', where guile is the derivation of guile for system. (url-fetch/zipbomb): Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* records: Have ABI check work well for cross-compilation.Ludovic Courtès2020-04-08
| | | | | | | Reported by Jan (janneke) Nieuwenhuizen <janneke@gnu.org>. * guix/records.scm (define-record-type*): Use 'target-most-positive-fixnum' on Guile 3 instead of 'most-positive-fixnum'.
* compile: Run the load phase within 'with-target'.Ludovic Courtès2020-04-08
| | | | | * guix/build/compile.scm (compile-files)[build]: Remove 'with-target'. Wrap body in 'with-target'.
* reconfigure: Correctly re-throw SRFI-34 exceptions on Guile 3.Ludovic Courtès2020-04-08
| | | | | | | | | | | | Previously, we'd just print an ugly backtrace when running on Guile 3 because the '%exception throw would not be caught anywhere. Reported by Arne Babenhauserheide <arne_bab@web.de> in <https://bugs.gnu.org/40496>. * guix/scripts/system/reconfigure.scm (install-bootloader-program): In 'catch' handler, match '%exception and use 'raise-exception' instead of 'throw' to rethrow in that case.
* Revert "Allow double-click select of URL in status"base-for-series-3466base-for-series-3465Marius Bakke2020-04-07
| | | | | | | As discussed on #guix, this should wait until 1.1.0 is branched off to avoid having to update translations. This reverts commit 9f1b787120b1b81abffaf0fa13fdbdf4cca39f2d.
* Allow double-click select of URL in statusTomZ2020-04-07
| | | | | | | | Various places while downloading or compiling guix prints the source URL. This change makes the URL easier to use by placing a space between the URL and the trailing dots. Signed-off-by: Marius Bakke <mbakke@fastmail.com>
* lint: 'm4' is a native input.Marius Bakke2020-04-07
| | | | * guix/lint.scm (check-inputs-should-be-native): Add "m4".
* channels: Call 'build-self.scm' procedure with a trivial build handler.Ludovic Courtès2020-04-06
| | | | | | | | | | 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'.
* gnu: Move PACKAGES-WITH-*PATCHES to (guix packages)Carl Dong2020-04-06
| | | | | | | * 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.
* store: 'with-store' uses 'with-exception-handler'.Ludovic Courtès2020-04-05
| | | | | | | | | | 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.
* store: 'with-store' doesn't close the store upon abort.Ludovic Courtès2020-04-04
| | | | | | | | | | | | | | 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.
* pack: Pass the cross-compilation target to 'run-with-store'.Ludovic Courtès2020-04-03
| | | | | | | 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'.
* guix system: Mention 'herd restart' when reconfigure completes.Ludovic Courtès2020-04-03
| | | | | | | | * 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.
* guix system: Remove unused procedure.Ludovic Courtès2020-04-03
| | | | | | | This procedure was unused since 5c8c8c455420af27189d6045b3599fe6e27ad012. * guix/scripts/system.scm (call-with-service-upgrade-info): Remove.
* reconfigure: Silence Guile warnings.Ludovic Courtès2020-04-03
| | | | | | | | | 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'.
* Revert "reconfigure: Run the effect scripts as separate processes."Ludovic Courtès2020-04-03
| | | | | | This reverts commit 5517750344be05c91bc2979c1a0e2348a9ae902d. That commit would remove all sorts of error checking when running those programs.
* reconfigure: Run the effect scripts as separate processes.Ludovic Courtès2020-04-02
| | | | | | | | | 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'.
* guix system: Do not import the user's (guix config).Ludovic Courtès2020-04-02
| | | | | | | | | | 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.
* git: Don't try to resolve tags with 'tag-lookup'.Ludovic Courtès2020-04-02
| | | | | | | | 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'.
* bournish: Prevent inlining of run-time support procedures.Ludovic Courtès2020-04-02
| | | | | | | | | | | | | | | | | | | 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'.
* gexp: 'lower-references' uses 'mapm/accumulate-builds'.Ludovic Courtès2020-04-02
| | | | | * guix/gexp.scm (lower-references): Use 'mapm/accumulate-builds' instead of 'mapm'.
* guix system: Use 'mapm/accumulate-builds'.Ludovic Courtès2020-04-02
| | | | | * guix/scripts/system.scm (perform-action): Use 'mapm/accumulate-builds' instead of 'mapm'.
* ui: Clarify "dependencies changed".Ludovic Courtès2020-04-02
| | | | | | | Suggested by Leo Famulari <leo@famulari.name>. * guix/ui.scm (show-manifest-transaction): Change to "dependencies or package changed".
* grafts: Simplify access to store item references.Ludovic Courtès2020-04-02
| | | | | | | | | | | | | | 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.
* profiles: Compute manual database entries in parallel.Arne Babenhauserheide2020-03-31
| | | | | | | | | | | | | 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>
* ci: Fix 'evaluation-spec' binding.Ludovic Courtès2020-03-31
| | | | | * guix/ci.scm (<evaluation>)[spec]: Add "specification", which is what the JSON field is actually called.
* guix package: Do not misdiagnose upgrades when there are propagated inputs.Ludovic Courtès2020-03-31
| | | | | | | | | | | 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.
* profiles: 'lower-manifest-entry' recurses on dependencies.Ludovic Courtès2020-03-31
| | | | | * guix/profiles.scm (lower-manifest-entry)[recurse]: New procedure. Call it on dependencies and set the 'dependencies' field accordingly.
* guix package: 'transaction-upgrade-entry' swallows build requests.Ludovic Courtès2020-03-31
| | | | | | | | | | | | | | | | | | 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.
* guix package: 'transaction-upgrade-entry' uses 'lower-manifest-entry'.Ludovic Courtès2020-03-31
| | | | | | | | * 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.
* build-system/gnu: Optimize the package graph.Ludovic Courtès2020-03-29
| | | | | | | | | | | | | | | | | 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'.
* packages: 'package->bag' keys cache by replacement.Ludovic Courtès2020-03-29
| | | | | | * 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.
* deploy: Use 'map/accumulate-builds'.Ludovic Courtès2020-03-29
| | | | | * guix/scripts/deploy.scm (guix-deploy): Use 'map/accumulate-builds' instead of 'for-each'.
* deploy: Factorize machine deployment.Ludovic Courtès2020-03-29
| | | | | * guix/scripts/deploy.scm (deploy-machine*): New procedure. (guix-deploy): Call it in 'for-each'.
* packages: Change 'guile-for-grafts' back to 2.0.Ludovic Courtès2020-03-29
| | | | | | | 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.
* '--dry-run' no longer implies '--no-grafts'.Ludovic Courtès2020-03-29
| | | | | | | | | | * 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.
* grafts: Don't rely on substitute info for missing store items.Ludovic Courtès2020-03-29
| | | | | | | | 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.
* store: Add 'references/cached'.Ludovic Courtès2020-03-29
| | | | * guix/store.scm (references/cached): New procedure.
* profiles: Use 'mapm/accumulate-builds'.Ludovic Courtès2020-03-29
| | | | | | | * 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.
* gexp: 'lower-inputs' uses 'mapm/accumulate-builds'.Ludovic Courtès2020-03-29
| | | | | | | 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'.
* guix build: Use 'map/accumulate-builds'.Ludovic Courtès2020-03-29
| | | | | * guix/scripts/build.scm (options->derivations): Use 'map/accumulate-builds' instead of 'append-map'.
* store: Add 'map/accumulate-builds'.Ludovic Courtès2020-03-29
| | | | | | | | * 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.
* deploy: Remove use of '~*' in format string.Marius Bakke2020-03-28
| | | | | | | | | ...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.
* packages: Use Guile 3.0 for grafts.Ludovic Courtès2020-03-27
| | | | | | * 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'.
* status: Display synthetic information about profiles being built.Ludovic Courtès2020-03-26
| | | | | | * guix/status.scm (print-build-event): Add 'profile case. * guix/scripts/package.scm (build-and-use-profile): Remove now redundant message.
* profiles: 'profile-derivation' sets a 'type' property.Ludovic Courtès2020-03-26
| | | | | * guix/profiles.scm (profile-derivation): Pass #:properties to 'gexp->derivation'.