summaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
*---. Merge remote-tracking branches 'cbaines/wip-rails-extra-packages-updated', ↵Christopher Baines2018-12-31
|\ \ \ | | | | | | | | | | | | 'cbaines/coala', 'cbaines/terraform', 'origin/release' and 'cbaines/workaround-cloudfoundry-tar-unpacking-issue' into guix-for-govuk-mini-environment-admin-new
| | | * Work around a issue in grootfs when unpacking tar archivesChristopher Baines2018-12-31
| |_|/ |/| |
| | * scripts: system: Add support for container network sharing.Christopher Baines2018-12-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a port of the functionality in the Guix environment command to the guix system container command. This requires additional changes to the operating-system definitions used, in particular, networking related services may need removing if the host network is shared. * guix/scripts/system.scm (system-derivation-for-action): Add #:container-shared-network? argument. (perform-action): Add #:container-shared-network? argument. (show-help): Add "-N, --network" help information. (%options): Add network option. (process-action): Call perform-action with #:container-shared-network?. * gnu/system/linux-container.scm (%network-configuration-files): New variable. (container-script): Add support for returning a container script that shares the host network. * gnu/system.scm (essential-services): Add #:container-shared-network? argument. (operating-system-services): Add #:container-shared-network? argument. (operating-system-etc-service): Add #:container-shared-network? argument, and support for ommiting some configuration if the network is shared. (operating-system-activation-script): Add #:container-shared-network? argument, and pass this through to the operating-system-services procedure. (operating-system-boot-script): Add #:container-shared-network? argument, and pass this through to the operating-system-services procedure. (operating-system-derivation): Add the #:container-shared-network? argument, and pass this through to the operating-system-services procedure. (operating-system-profile): Add the #:container-shared-network? argument, and pass this through to the operating-system-services procedure.
| | * Alter the GitHub updater to use git tagsChristopher Baines2018-12-04
| | | | | | | | | | | | | | | Just using tags is the most consistent way of getting releases for GOV.UK related software.
| * | Support placing the pkg and src directories in a lib outputChristopher Baines2018-12-28
|/ /
* | lint: Check for unstable tarballs.Efraim Flashner2018-12-27
| | | | | | | | | | | | | | | | | | | | * guix/scripts/lint.scm (check-source-unstable-tarball): New procedure. (%checkers): Add it. * tests/lint.scm ("source-unstable-tarball", "source-unstable-tarball: source #f", "source-unstable-tarball: valid", "source-unstable-tarball: package named archive", "source-unstable-tarball: not-github", "source-unstable-tarball: git-fetch"): New tests. * doc/guix.texi (Invoking guix lint): Document it.
* | pull: Add '--system'.Ludovic Courtès2018-12-27
| | | | | | | | | | | | * guix/scripts/pull.scm (%options): Add '--system'. (guix-pull): Honor it. * doc/guix.texi (Invoking guix pull): Document it.
* | offload: Remove unnecessary locking on machine slots.Ludovic Courtès2018-12-26
| | | | | | | | | | | | | | | | This extra level of locking turned out to be unnecessary. * guix/scripts/offload.scm (with-machine-lock): Remove. (machine-lock-file): Remove. (acquire-build-slot): Remove surrounding 'with-machine-lock'.
* | offload: Remove the "machine choice" lock.Ludovic Courtès2018-12-26
| | | | | | | | | | | | | | | | This lock was unnecessary and it led to a contention when many 'guix offload' processes are polling for available machines. * guix/scripts/offload.scm (machine-choice-lock-file): Remove. (choose-build-machine): Remove surrounding 'with-file-lock (machine-lock-file)'.
* | offload: Adjust 'test' and 'status' to the latest changes.Ludovic Courtès2018-12-25
| | | | | | | | | | | | | | | | | | | | | | | | This is a followup to ed7b44370f71126087eb953f36aad8dc4c44109f; following that commit, 'guix offload test' and 'guix offload status' would abort with a backtrace instead of clearly diagnosing a missing 'guix' command on the build machine. * guix/scripts/offload.scm (assert-node-has-guix): Call 'leave' when NODE is not an inferior. Remove 'catch' blocks for 'node-repl-error'. (check-machine-availability): Invoke 'assert-node-has-guix' first. (check-machine-status): Print a warning when 'remote-inferior' returns #f.
* | offload: Use (guix inferior) instead of (ssh dist node).Ludovic Courtès2018-12-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using inferiors and thus 'guix repl' simplifies setup on build machines (no need to worry about GUILE_LOAD_PATH etc.) Furthermore, the 'guix repl -t machine' protocol running in a remote pipe addresses several issues with the current implementation of nodes and RREPLs in Guile-SSH: fewer round trips, doesn't leave a 'guile --listen' process behind it, stateless (since a new process is started each time), more efficient (the SSH channel can be reused), more reliable (no 'pgrep', 'pkill', and shellology; see <https://github.com/artyom-poptsov/guile-ssh/issues/11> as an example.) * guix/ssh.scm (inferior-remote-eval): New procedure. (send-files): Use it instead of 'make-node' and 'node-eval'. * guix/scripts/offload.scm (node-guile-version): New procedure. (node-free-disk-space, transfer-and-offload, node-load) (choose-build-machine, assert-node-has-guix): Use 'remote-inferior' instead of 'make-node' and 'inferior-eval' instead of 'node-eval'. (assert-node-can-import, assert-node-can-export): Likewise, and add 'session' parameter. (check-machine-availability): Likewise, and add calls to 'close-inferior' and 'disconnect!'. (check-machine-status): Likewise. * doc/guix.texi (Daemon Offload Setup): Remove bit related to 'guile' in $PATH and $GUILE_LOAD_PATH; mention 'guix' alone.
* | ssh: Add 'remote-inferior'.Ludovic Courtès2018-12-24
| | | | | | | | | | | | | | | | | | * guix/inferior.scm (<inferior>)[close]: New field. (port->inferior): New procedure. (open-inferior): Rewrite in terms of 'port->inferior'. (close-inferior): Honor INFERIOR's 'close' field. (inferior-eval-with-store): Add FIXME comment. * guix/ssh.scm (remote-inferior): New procedure.
* | scripts: refresh: Allow searching recursively.Efraim Flashner2018-12-24
| | | | | | | | | | | | | | | | * guix/scripts/refresh.scm (refresh-recursive, list-transitive): New procedures. (show-help): Document it. (guix-refresh): Add flags and checks for new options. * doc/guix.texi (Invoking guix refresh): Document new options.
* | guix: lint: Check for source URIs redirecting to GitHub.Arun Isaac2018-12-24
| | | | | | | | | | | | | | * guix/scripts/lint.scm (check-github-uri): New procedure. (%checkers): Add it. * doc/guix.texi (Invoking guix lint): Document it. * tests/lint.scm ("github-url", "github-url: one suggestion"): New tests.
* | offload: Display the normalized load in 'guix offload status' output.Ludovic Courtès2018-12-23
| | | | | | | | | | | | | | | | | | Fixes a regression introduced in bbe66a530a014e8146d63002a5294941e935f863 whereby the actual load (non-normalized) would be displayed. * guix/scripts/offload.scm (check-machine-status): Add call to 'normalized-load'.
* | database: Use "write-ahead log" mode and set a long "busy timeout".Ludovic Courtès2018-12-21
| | | | | | | | | | | | | | | | | | 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'.
* | offload: Recognize build failures due to lack of disk space.Ludovic Courtès2018-12-21
| | | | | | | | | | | | | | | | | | | | 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.
* | offload: Skip machines that are low on disk space.Ludovic Courtès2018-12-21
| | | | | | | | | | | | | | | | | | | | 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.
* | offload: Decompose 'machine-load' into simpler procedures.Ludovic Courtès2018-12-21
| | | | | | | | | | | | | | | | | | * 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.
* | import: cran: Try import via CRAN if package is not on Bioconductor.Ricardo Wurmus2018-12-20
| | | | | | | | | | | | * guix/import/cran.scm (fetch-description): Return #F on failure. (cran->guix-package): Retry from CRAN on failure to fetch description from bioconductor.
* | download: 'built-in-builders*' relies on the functional cache.Ludovic Courtès2018-12-19
| | | | | | | | | | | | | | | | | | 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'.
* | utils: Memoize 'absolute-dirname'.Ludovic Courtès2018-12-19
| | | | | | | | * guix/utils.scm (absolute-dirname): Wrap in 'mlambda'.
* | packages: Turn 'cache!' into a single-value-return cache.Ludovic Courtès2018-12-19
| | | | | | | | | | * guix/packages.scm (cache!): Assume THUNK returns a single value. (cached): Likewise.
* | Use 'mapm' instead of 'sequence' + 'map'.Ludovic Courtès2018-12-19
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | store: Add 'GUIX_PROFILING' support for the object cache.Ludovic Courtès2018-12-19
| | | | | | | | | | | | | | * guix/store.scm (profiled?): New procedure. (record-operation): Use it. (record-cache-lookup!): New procedure. (lookup-cached-object): Use it.
* | ui: Report profile hooks separately.Ricardo Wurmus2018-12-19
| | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | build: Add dune-build-system.Julien Lepiller2018-12-18
| | | | | | | | | | | | | | | | | | | | | | * 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.
* | guix system: Clarify the three strategies available.swedebugia2018-12-18
| | | | | | | | | | | | | | | | * 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>
* | ui: Report file names in 'system-error' exceptions from 'execlp'.Timothy Sample2018-12-18
| | | | | | | | | | | | | | | | | | 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>
* | publish: Add a 'Cache-Control' header on /nar responses.Ludovic Courtès2018-12-17
| | | | | | | | | | | | | | | | | | | | | | 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.
* | environment: Support package transformation options.Ludovic Courtès2018-12-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | import: Update opam importer.Julien Lepiller2018-12-17
| | | | | | | | | | * guix/import/opam.scm: Update importer for opam 2. * tests/opam.scm: Update tests for the opam 2 importer.
* | deduplication: Gracefully handle ENOSPC raised by 'link' calls.Ludovic Courtès2018-12-14
| | | | | | | | | | | | | | | | | | | | 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.
* | substitute: Ignore irrelevant narinfo signatures.Ludovic Courtès2018-12-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | refresh: Account for overlapping updater coverage.Eric Bavier2018-12-10
| | | | | | | | | | * guix/scripts/refresh.scm (list-updaters-and-exit): Do not assume updater predicates are disjoint. Track covered packages directly.
* | guix: Add support for channel dependencies.Ricardo Wurmus2018-12-09
| | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | guix system: Fix bootloader config file generation by 'guix system roll-back'.Ludovic Courtès2018-12-07
| | | | | | | | | | | | | | | | | | | | | | 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'.
* | describe: In 'channels' format, quote the channel name.Ludovic Courtès2018-12-07
|/ | | | | | | Fixes a regression introduced in commit 8548f995494d8d6358e6a8d7bc3b3bb5a0cbecb5. * guix/scripts/describe.scm (channel->sexp): Quote the channel name.
* grafts: Mark as non substitutable.Ludovic Courtès2018-12-04
| | | | | * guix/grafts.scm (graft-derivation/shallow): Pass #:substitutable? to 'build-expression->derivation'.
* refresh: '--list-dependents' ignores deprecated packages.Ludovic Courtès2018-12-04
| | | | * guix/scripts/refresh.scm (all-packages): Filter out deprecated packages.
* build: Default to https://ci.guix.info for substitutes.Ludovic Courtès2018-12-04
| | | | | | | | | * 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.
* Remove most references to hydra.gnu.org.Ludovic Courtès2018-12-04
| | | | | | | | | | | | | | | * 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.
* etc: Add "ci.guix.info.pub" public key file.Ludovic Courtès2018-12-04
| | | | | | | * 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".
* hg-fetch: Remove .hg directories of sub-repositories.Björn Höfling2018-12-03
| | | | * guix/build/hg.scm (hg-fetch): Remove all .hg directories recursively.
* 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
| |\ \ \ \ \