summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2018-12-19packages: Turn 'cache!' into a single-value-return cache....* guix/packages.scm (cache!): Assume THUNK returns a single value. (cached): Likewise. Ludovic Courtès
2018-12-19Use '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ès
2018-12-19store: 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ès
2018-12-19ui: 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 Wurmus
2018-12-18build: 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 Lepiller
2018-12-18guix 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> swedebugia
2018-12-18ui: 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 Sample
2018-12-17publish: 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ès
2018-12-17environment: 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ès
2018-12-17import: Update opam importer....* guix/import/opam.scm: Update importer for opam 2. * tests/opam.scm: Update tests for the opam 2 importer. Julien Lepiller
2018-12-14deduplication: 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ès
2018-12-14substitute: 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ès
2018-12-10refresh: 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 Bavier
2018-12-09guix: 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 Wurmus
2018-12-07guix 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ès
2018-12-07describe: 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ès
2018-12-04grafts: Mark as non substitutable....* guix/grafts.scm (graft-derivation/shallow): Pass #:substitutable? to 'build-expression->derivation'. Ludovic Courtès
2018-12-04refresh: '--list-dependents' ignores deprecated packages....* guix/scripts/refresh.scm (all-packages): Filter out deprecated packages. Ludovic Courtès
2018-12-04build: 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ès
2018-12-04Remove 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ès
2018-12-04etc: 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ès
2018-12-03hg-fetch: Remove .hg directories of sub-repositories....* guix/build/hg.scm (hg-fetch): Remove all .hg directories recursively. Björn Höfling
2018-12-03Merge branch 'core-updates'Ludovic Courtès
2018-12-03repl: Load user's initialization file....* guix/scripts/repl.scm (guix-repl): Load user's initialization file. Oleg Pykhalov
2018-12-02self: Provide UTF-8 locales when building the manual....Fixes <https://bugs.gnu.org/33580>. Reported by <znavko@tutanota.com>. * guix/self.scm (info-manual)[glibc-utf8-locales]: New variable. [build]: Add call to 'setenv' for "GUIX_LOCPATH". Ludovic Courtès
2018-11-30git: Nicely report '--with-commit' errors....* guix/git.scm (latest-repository-commit*): Rewrite to catch 'git-error'. * po/guix/POTFILES.in: Add guix/git.scm. * tests/guix-build-branch.sh: Test --with-commit errors. Ludovic Courtès
2018-11-30guix build: Add '--with-commit'....* guix/git.scm (<git-checkout>)[commit]: New field. (git-checkout-compiler): Honor it. * guix/scripts/build.scm (evaluate-git-replacement-specs): Add 'proc' parameter and honor it. (transform-package-source-branch)[replace]: New procedure. Adjust 'evaluate-git-replacement-specs' accordingly. (transform-package-source-commit): New procedure. (%transformations, %transformation-options) (show-transformation-options-help): Add 'with-commit'. * tests/guix-build-branch.sh: Add test. * doc/guix.texi (Package Transformation Options): Document it. Ludovic Courtès
2018-11-30guix build: Add '--with-branch' transformation option....* guix/scripts/build.scm (evaluate-git-replacement-specs) (transform-package-source-branch): New procedures. (%transformations, %transformation-options): Add 'with-branch'. (show-transformation-options-help): Likewise. * tests/guix-build-branch.sh: New file. * Makefile.am (SH_TESTS): Add it. * doc/guix.texi (Package Transformation Options): Document it. Ludovic Courtès
2018-11-30git: Add <git-checkout> record type....* guix/git.scm (<git-checkout>): New record type. (latest-repository-commit*): New procedure. (git-checkout-compiler): New gexp compiler. Ludovic Courtès
2018-11-30git: 'latest-repository-commit' logs its progress....* guix/git.scm (latest-repository-commit): Add #:log-port and honor it. Ludovic Courtès
2018-11-29Merge branch 'master' into core-updatesMarius Bakke
2018-11-29docker: Hide scary-looking but harmless tar failure messages....* guix/docker.scm (build-docker-image): Wrap "tar --delete" invocation in 'with-error-to-port'. Ludovic Courtès
2018-11-28download: Add berlin.guixsd.org as a content-addressed mirror....* guix/download.scm (%content-addressed-mirrors)[guix-publish]: New procedure. Use it for "mirror.hydra.gnu.org" and add "berlin.guixsd.org" too. Ludovic Courtès
2018-11-28download: Make (guix base16) a soft dependency....Fixes <https://bugs.gnu.org/33542>. Reported by Mark H Weaver <mhw@netris.org>. * guix/download.scm (%content-addressed-mirrors): Autoload (guix base16). Ludovic Courtès
2018-11-28guix hash: Fix version and help messages...ca719424455465fca4b872c371daf2a46de88b33 changes the name of the executable to be displayed by the --version and --help commands of `guix hash` to "gcrypt hash". This is reverted by this commit. * guix/scripts/hash.scm (show-help): Change string literals Signed-off-by: Ludovic Courtès <ludo@gnu.org> Tim Gesthuizen
2018-11-28channels: Add 'checkout->channel-instance'....* guix/channels.scm (checkout->channel-instance): New procedure. Ludovic Courtès
2018-11-28inferior: Add 'inferior-eval-with-store'....* guix/inferior.scm (inferior-eval-with-store): New procedure, with code formerly in 'inferior-package-derivation'. (inferior-package-derivation): Rewrite in terms of 'inferior-eval-with-store'. * tests/inferior.scm ("inferior-eval-with-store"): New test. Ludovic Courtès
2018-11-28ui: 'show-what-to-build' reports grafts separately....* guix/ui.scm (graft-derivation?): New procedure. (show-what-to-build): Distinguish among BUILD derivations that match 'graft-derivation?'. Report them separately. Ludovic Courtès
2018-11-28status: Report grafting derivations specially....* guix/status.scm (print-build-event): In 'build-started' event handler, check the properties of DRV and handle 'graft' derivations specially. Ludovic Courtès
2018-11-28grafts: Record metadata as derivation properties....* guix/grafts.scm (graft-derivation/shallow): Pass #:properties to 'build-expression->derivation'. * tests/grafts.scm ("graft-derivation, grafted item is a direct dependency"): Check the value returned by 'derivation-properties'. Ludovic Courtès
2018-11-28derivations: Add properties....* guix/derivations.scm (derivation): Add #:properties parameter. [user+system-env-vars]: Honor it. (derivation-properties): New procedure. (build-expression->derivation): Add #:properties and pass it to 'derivation'. * guix/gexp.scm (gexp->derivation): Likewise. * tests/derivations.scm ("derivation-properties"): New test. * tests/gexp.scm ("gexp->derivation properties"): New test. * doc/guix.texi (Derivations, G-Expressions): Adjust accordingly. Ludovic Courtès
2018-11-27pack: List the available formats....* guix/scripts/pack.scm (show-formats): New variable. (%options, show-help): Add 'list-formats' option. Efraim Flashner
2018-11-27describe: Delete 'directory' argument from 'display-checkout-info'....This commit follows 1255400faabfcf0ca1666d17f2f34ea0d49f6b1f. * guix/scripts/describe.scm (display-checkout-info): Delete 'directory' argument. Oleg Pykhalov
2018-11-27swh: Export 'save-origin' and related bindings....* guix/swh.scm: Export bindings related to 'save-origin'. Ludovic Courtès
2018-11-26repl: Do not exit repl on SIGINT....* guix/scripts/repl.scm (guix-repl): Do not exit repl on SIGINT. Oleg Pykhalov
2018-11-26git-download: Download from Software Heritage as a last resort....* guix/git-download.scm (git-fetch)[inputs]: Add gzip and tar when 'git-reference-recursive?' is false. [guile-json, gnutls]: New variables. [modules]: Add (guix swh). [build]: Wrap in 'with-extensions'. Add call to 'swh-download'. Ludovic Courtès
2018-11-26Add (guix swh)....* guix/swh.scm: New file. * Makefile.am (MODULES): Add it. Ludovic Courtès
2018-11-26git-download: Use 'git-minimal' instead of 'git'....* guix/git-download.scm (git-package): Refer to 'git-minimal'. Ludovic Courtès
2018-11-24ssh: Make 'send-files' more robust....Possibly fixes <https://bugs.gnu.org/33239>. * guix/ssh.scm (send-files): Call 'channel-get-exit-status' only when RESULT is true. Ludovic Courtès
2018-11-24Merge branch 'master' into core-updatesMarius Bakke