aboutsummaryrefslogtreecommitdiff
path: root/guix
Commit message (Expand)AuthorAge
* database: Use "write-ahead log" mode and set a long "busy timeout".•••This should avoid "database is locked" errors when there's a lot of concurrency, for instance when offloading simultaneously a lot of builds. * guix/store/database.scm (call-with-database): Add two 'sqlite-exec' calls to set 'journal_mode' and 'busy_timeout'. Ludovic Courtès2018-12-21
* offload: Recognize build failures due to lack of disk space.•••Previously, if a remote build would fail due to lack of disk space, this would be considered a permanent failure and thus cached as a build failure if the local daemon runs with '--cache-failures'. * guix/scripts/offload.scm (transfer-and-offload): Upon 'nix-protocol-error?' call 'node-free-disk-space' and return 1 instead of 100 if the result if lower than 10 MiB. Ludovic Courtès2018-12-21
* offload: Skip machines that are low on disk space.•••Fixes <https://bugs.gnu.org/33378>. * guix/scripts/offload.scm (node-free-disk-space): New procedure. (%minimum-disk-space): New variable. (choose-build-machine): Call 'node-free-disk-space' and take it into account in addition to LOAD. (check-machine-status): Display the free disk space. Ludovic Courtès2018-12-21
* offload: Decompose 'machine-load' into simpler procedures.•••* guix/scripts/offload.scm (machine-load): Remove. (node-load, normalized-load): New procedures. (choose-build-machine): Call 'open-ssh-session' and 'make-node' from here; pass the node to 'node-load'. (check-machine-status): Use 'node-load' instead of 'machine-load'. Call 'disconnect!' on SESSION. Ludovic Courtès2018-12-21
* import: cran: Try import via CRAN if package is not on Bioconductor.•••* guix/import/cran.scm (fetch-description): Return #F on failure. (cran->guix-package): Retry from CRAN on failure to fetch description from bioconductor. Ricardo Wurmus2018-12-20
* download: 'built-in-builders*' relies on the functional cache.•••The previous caching strategy, which used STORE as an 'eq?' key, would no longer work when the functional cache is used because subsequent store values are not 'eq?'. * guix/download.scm (built-in-builders*): Rewrite in terms of 'mcached'. Ludovic Courtès2018-12-19
* utils: Memoize 'absolute-dirname'.•••* guix/utils.scm (absolute-dirname): Wrap in 'mlambda'. Ludovic Courtès2018-12-19
* packages: Turn 'cache!' into a single-value-return cache.•••* guix/packages.scm (cache!): Assume THUNK returns a single value. (cached): Likewise. Ludovic Courtès2018-12-19
* Use 'mapm' instead of 'sequence' + 'map'.•••Previously we'd use the (sequence M (map P L)) idiom just because 'mapm' was slower (not specialized for the given monad). This is no longer the case since commit dcb95c1fc936d74dfdf84b7e59eff66cb99c5a63. * guix/gexp.scm (lower-inputs): Use (mapm M P L) instead of (sequence M (map P L)). (lower-references, gexp->sexp, imported-files): Likewise. * guix/profiles.scm (profile-derivation): Likewise. * guix/scripts/environment.scm (inputs->requisites): Likewise. * guix/scripts/system.scm (copy-closure): Likewise. Ludovic Courtès2018-12-19
* store: Add 'GUIX_PROFILING' support for the object cache.•••* guix/store.scm (profiled?): New procedure. (record-operation): Use it. (record-cache-lookup!): New procedure. (lookup-cached-object): Use it. Ludovic Courtès2018-12-19
* ui: Report profile hooks separately.•••* guix/ui.scm (profile-hook-derivation?): New procedure. (show-what-to-build): Distinguish among BUILD derivations that match 'profile-hook-derivation?'. Report them separately. * guix/status.scm (hook-message): New procedure. (print-build-event): Display profile hooks with readable hook name. * guix/profiles.scm (info-dir-file, ghc-package-cache-file, ca-certificate-bundle, glib-schemas, gtk-icon-themes, gtk-im-modules, xdg-desktop-database, xdg-mime-database, fonts-dir-file, manual-database): Augment derivation with "type" and "hook" properties. Ricardo Wurmus2018-12-19
* build: Add dune-build-system.•••* guix/build/dune-build-system.scm, guix/build-system/dune.scm: New files. * Makefile.am (MODULES): Add them. * doc/guix.texi (Build Systems): Document dune-build-system. * guix/build-system/ocaml.scm (lower, default-findlib, default-ocaml): Export them. (package-with-explicit-ocaml): Also transform packages built with dune-build-system. Julien Lepiller2018-12-18
* guix system: Clarify the three strategies available.•••* guix/scripts/system.scm (show-help): Clarify the three choices. * doc/guix.texi (Invoking guix system): Add 3 @cindex to make on-error=strategy easier to find. Signed-off-by: Ludovic Courtès <ludo@gnu.org> swedebugia2018-12-18
* ui: Report file names in 'system-error' exceptions from 'execlp'.•••Fixes <https://bugs.gnu.org/33755>. * guix/ui.scm (apply-formals): New macro. (execlp): New error-reporting wrapper. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Timothy Sample2018-12-18
* publish: Add a 'Cache-Control' header on /nar responses.•••Fixes <https://bugs.gnu.org/33721>. Reported by Chris Marusich <cmmarusich@gmail.com>. * guix/scripts/publish.scm (render-nar/cached): Add #:ttl and honor it. (make-request-handler): Pass #:ttl to 'render-nar/cached'. * tests/publish.scm ("with cache, uncompressed"): Pass "--ttl=42h" to 'guix publish'. Check 'Cache-Control' on narinfo response and on nar response. Ludovic Courtès2018-12-17
* environment: Support package transformation options.•••Fixes <https://bugs.gnu.org/33776>. Reported by Adrien Guilbaud <adrien.guilbaud@inria.fr>. * guix/scripts/environment.scm (show-help): Add call to 'show-transformation-options-help'. (%options): Add %TRANSFORMATION-OPTIONS. (options/resolve-packages): Add 'store' parameter. [transform, package->manifest-entry*]: New procedures. Use 'package->manifest-entry*' instead of 'package->manifest-entry'. (guix-environment): Move definition of 'manifest' within 'with-store'. * tests/guix-environment.sh: Add test. Ludovic Courtès2018-12-17
* import: Update opam importer.•••* guix/import/opam.scm: Update importer for opam 2. * tests/opam.scm: Update tests for the opam 2 importer. Julien Lepiller2018-12-17
* deduplication: Gracefully handle ENOSPC raised by 'link' calls.•••Reported by Andreas Enge <andreas@enge.fr> in <https://bugs.gnu.org/33676>. * guix/store/deduplication.scm (replace-with-link): Catch ENOSPC around 'get-temp-link'. Do nothing when 'get-temp-link' throws ENOSPC. Move code to restore PARENT's permissions outside of 'catch'. * tests/store-deduplication.scm ("deduplicate, ENOSPC"): New test. Ludovic Courtès2018-12-14
* substitute: Ignore irrelevant narinfo signatures.•••Fixes <https://bugs.gnu.org/33733>. Fixes a bug whereby 'guix substitute' would accept narinfos whose signature does not cover the StorePath/NarHash/References tuple. * guix/scripts/substitute.scm (narinfo-sha256)[%mandatory-fields]: New variable. Compute SIGNED-FIELDS; return #f unless each of the %MANDATORY-FIELDS is among SIGNED-FIELDS. * tests/substitute.scm ("query narinfo with signature over nothing") ("query narinfo with signature over irrelevant bits"): New tests. Ludovic Courtès2018-12-14
* refresh: Account for overlapping updater coverage.•••* guix/scripts/refresh.scm (list-updaters-and-exit): Do not assume updater predicates are disjoint. Track covered packages directly. Eric Bavier2018-12-10
* guix: Add support for channel dependencies.•••* guix/channels.scm (<channel-metadata>): New record. (read-channel-metadata, channel-instance-dependencies): New procedures. (latest-channel-instances): Include channel dependencies; add optional argument PREVIOUS-CHANNELS. (channel-instance-derivations): Build derivation for additional channels and add it as dependency to the channel instance derivation. * doc/guix.texi (Channels): Add subsection "Declaring Channel Dependencies". * tests/channels.scm: New file. * Makefile.am (SCM_TESTS): Add it. Ricardo Wurmus2018-12-09
* guix system: Fix bootloader config file generation by 'guix system roll-back'.•••Fixes <https://bugs.gnu.org/33623>. Reported by Diego Nicola Barbato <dnbarbato@posteo.de>. Regression introduced in commit 46c296dcc4817f15a4b4ef7e5ef622306b4db62e. * guix/scripts/system.scm (reinstall-bootloader): Add call to 'lower-object'. Ludovic Courtès2018-12-07
* describe: In 'channels' format, quote the channel name.•••Fixes a regression introduced in commit 8548f995494d8d6358e6a8d7bc3b3bb5a0cbecb5. * guix/scripts/describe.scm (channel->sexp): Quote the channel name. Ludovic Courtès2018-12-07
* grafts: Mark as non substitutable.•••* guix/grafts.scm (graft-derivation/shallow): Pass #:substitutable? to 'build-expression->derivation'. Ludovic Courtès2018-12-04
* refresh: '--list-dependents' ignores deprecated packages.•••* guix/scripts/refresh.scm (all-packages): Filter out deprecated packages. Ludovic Courtès2018-12-04
* build: Default to https://ci.guix.info for substitutes.•••* config-daemon.ac (guix_substitute_urls): Always default to "https://ci.guix.info". * doc/guix.texi (SUBSTITUTE-SERVER): Switch to ci.guix.info. * guix/scripts/build.scm (%default-log-urls): Likewise. * guix/scripts/substitute.scm (%default-substitute-urls): Likewise. * guix/store.scm (%default-substitute-urls): Likewise. Ludovic Courtès2018-12-04
* Remove most references to hydra.gnu.org.•••* Makefile.am (assert-binaries-available): Don't mention hydra.gnu.org in comment. * build-aux/check-available-binaries.scm: Likewise. * build-aux/check-final-inputs-self-contained.scm: Likewise. * doc/guix.texi (SUBSTITUTE-SERVER): New variable. Use it throughout instead of "mirror.hydra.gnu.org". * doc/contributing.texi (Submitting Patches): Likewise. * gnu/services/base.scm (hydra-key-authorization) (guix-activation): Remove mentions of "hydra.gnu.org" in comments and messages. * gnu/system/install.scm (%installation-services): Likewise. * guix/scripts/size.scm (guix-size): Likewise. Ludovic Courtès2018-12-04
* etc: Add "ci.guix.info.pub" public key file.•••* etc/substitutes/ci.guix.info.pub: New file. * Makefile.am (dist_pkgdata_DATA): Add it. * guix/self.scm (miscellaneous-files): Add "share/guix/ci.guix.info.pub". Ludovic Courtès2018-12-04
* hg-fetch: Remove .hg directories of sub-repositories.•••* guix/build/hg.scm (hg-fetch): Remove all .hg directories recursively. Björn Höfling2018-12-03
* Merge branch 'core-updates'Ludovic Courtès2018-12-03
|\
| * Merge branch 'master' into core-updatesMarius Bakke2018-11-29
| |\
| * \ Merge branch 'master' into core-updatesMarius Bakke2018-11-24
| |\ \
| * \ \ Merge branch 'master' into core-updatesMarius Bakke2018-11-24
| |\ \ \
| * \ \ \ Merge branch 'master' into core-updatesMarius Bakke2018-11-22
| |\ \ \ \
| * \ \ \ \ Merge remote-tracking branch 'origin/master' into core-updatesEfraim Flashner2018-11-21
| |\ \ \ \ \
| * \ \ \ \ \ Merge branch 'master' into core-updatesMarius Bakke2018-11-20
| |\ \ \ \ \ \
| * \ \ \ \ \ \ Merge branch 'master' into core-updatesMarius Bakke2018-11-14
| |\ \ \ \ \ \ \
| * | | | | | | | build-system/dub: Let all phases return #T unconditionally.•••* guix/build/dub-build-system.scm (configure, build, check): Return #T unconditionally; use INVOKE. Ricardo Wurmus2018-11-13
| * | | | | | | | build-system/haskell: Fix register phase.•••This is a follow-up to commit a7e231a2a3edbd6a70949432c1ff434d87f625ff. Reported by Marius Bakke <mbakke@fastmail.com>. * guix/build/haskell-build-system.scm (register): Use "when" instead of "unless". Ricardo Wurmus2018-11-12
| * | | | | | | | Merge branch 'master' into core-updatesMarius Bakke2018-11-09
| |\ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ Merge branch 'master' into core-updatesMarius Bakke2018-11-07
| |\ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ \ Merge branch 'master' into core-updatesMarius Bakke2018-11-05
| |\ \ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ \ \ Merge branch 'master' into core-updatesMarius Bakke2018-10-21
| |\ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | java-utils: Use 'strip-store-file-name'.•••See the discussion at <https://lists.gnu.org/archive/html/guix-devel/2018-10/msg00250.html>. * guix/build/java-utils.scm (package-name-version): Remove it. (install-javadoc): Use 'strip-store-file-name' instead of 'package-name-version'. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Alex Vong2018-10-19
| * | | | | | | | | | | | build-system/haskell: Use 'strip-store-file-name'.•••See the discussion at <https://lists.gnu.org/archive/html/guix-devel/2018-10/msg00250.html>. * guix/build/haskell-build-system.scm (package-name-version): Remove it. (configure): Use 'strip-store-file-name' instead of 'package-name-version'. (setup-compiler): Likewise. (make-ghc-package-database): Likewise. (register): Likewise. * gnu/packages/haskell.scm (ghc-cairo)[arguments]: Likewise. * gnu/packages/agda.scm (agda)[arguments]: Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Alex Vong2018-10-19
| * | | | | | | | | | | | Merge branch 'master' into core-updatesMarius Bakke2018-10-17
| |\ \ \ \ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ \ \ \ \ Merge branch 'master' into core-updatesLeo Famulari2018-10-07
| |\ \ \ \ \ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ \ \ \ \ \ Merge branch 'master' into core-updatesMarius Bakke2018-10-05
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ \ \ \ \ \ \ Merge branch 'master' into core-updatesMarius Bakke2018-09-26
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Merge branch 'master' into core-updatesMarius Bakke2018-09-20
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \