aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* gexp: 'gexp-inputs' returns both native and non-native inputs.Ludovic Courtès2021-02-23
| | | | | | | | | | | | | | | | | | | | | | | This avoids double traversal of references and extra bookkeeping, thereby further reducing memory allocations. * guix/gexp.scm (lower-gexp): Include only one call to 'lower-inputs'. (gexp-inputs): Remove #:native? parameter. [set-gexp-input-native?]: New procedure. [add-reference-inputs]: Use it. (gexp-native-inputs): Remove. * tests/gexp.scm (gexp-native-inputs): Remove. (gexp-input->tuple): Include 'gexp-input-native?'. ("let-system") ("let-system, nested") ("ungexp + ungexp-native") ("ungexp + ungexp-native, nested") ("ungexp + ungexp-native, nested, special mixture") ("input list") ("input list + ungexp-native") ("input list splicing") ("input list splicing + ungexp-native-splicing") ("gexp list splicing + ungexp-splicing"): Adjust accordingly.
* gexp: 'gexp-inputs' returns a list of <gexp-input> records.Ludovic Courtès2021-02-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This slightly reduces memory allocation. * guix/gexp.scm (lower-inputs): Expect a list of <gexp-input> rather than a list of tuples. (lower-reference-graphs)[tuple->gexp-input]: New procedure. Use it. (gexp-inputs): Return a list of <gexp-input> rather than a list of tuples. * tests/gexp.scm (gexp-input->tuple): New procedure. ("one input package") ("one input package, dotted list") ("one input origin") ("one local file") ("one local file, symlink") ("one plain file") ("two input packages, one derivation, one file") ("file-append") ("file-append, output") ("file-append, nested") ("let-system") ("let-system, nested") ("ungexp + ungexp-native") ("ungexp + ungexp-native, nested") ("ungexp + ungexp-native, nested, special mixture") ("input list") ("input list + ungexp-native") ("input list splicing") ("input list splicing + ungexp-native-splicing") ("gexp list splicing + ungexp-splicing"): Adjust accordingly.
* gexp: Micro-optimize sexp serialization.Ludovic Courtès2021-02-23
| | | | | * guix/gexp.scm (sexp->string): New procedure. (gexp->derivation): Use it instead of 'object->string'.
* store: Object cache profiling shows the number of entries.Ludovic Courtès2021-02-23
| | | | | * guix/store.scm (record-cache-lookup!): Add 'size' variable; keep it up-to-date and display it.
* grafts: Inline 'grafting?' and 'set-grafting'.Ludovic Courtès2021-02-23
| | | | | | | As for 'current-target-system' & co., this makes sure we don't needlessly allocate closures. * guix/grafts.scm (grafting?, set-grafting): Inline.
* gnu: ruby-rails: Update to 6.1.3.Efraim Flashner2021-02-23
| | | | | | | | | | | | | | | | | | * gnu/packages/rails.scm (ruby-activemodel, ruby-activerecord, ruby-actionview, ruby-actionpack, ruby-actioncable, ruby-activejob, ruby-activestorage, ruby-actionmailer, ruby-railties, ruby-rails): Update to 6.1.3. (ruby-actiontext, ruby-actionmailbox): New variables. (ruby-actioncable)[propagated-inputs]: Add ruby-activesupport. (ruby-activestorage)[propagated-inputs]: Add ruby-activejob, ruby-activesupport, ruby-mimemagic. (ruby-actionmailer)[propagated-inputs]: Add ruby-activesupport. (ruby-railties)[propagated-inputs]: Add ruby-rake. (ruby-rails)[propagated-inputs]: Add ruby-actionmailbox, ruby-actiontext. * gnu/packages/ruby.scm (ruby-activesupport): Update to 6.1.3. [propagated-inputs]: Add ruby-zeitwerk. [home-page]: Use https.
* gnu: ruby-rack: Update to 2.2.3.Efraim Flashner2021-02-23
| | | | | | | | | | | | * gnu/packages/ruby.scm (ruby-rack): Update to 2.2.3. [source]: Remove patch. Add snippet. [arguments]: Adjust custom 'fix-tests phase. Remove 'make-files-writable phase. [native-inputs]: Remove ruby-minitest-sprint, which. Add ruby-minitest-global-expectations. [propagated-inputs]: Remove ruby-concurrent. * gnu/packages/patches/ruby-rack-ignore-failing-test.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Remove it.
* gnu: Add ruby-zeitwerk.Efraim Flashner2021-02-23
| | | | * gnu/packages/ruby.scm (ruby-zeitwerk): New variable.
* gnu: ruby-web-console: Update to 4.1.0.Efraim Flashner2021-02-23
| | | | * gnu/packages/rails.scm (ruby-web-console): Update to 4.1.0.
* gnu: ruby-tzinfo-data: Update to 1.2021.1.Efraim Flashner2021-02-23
| | | | | | | | | | * gnu/packages/ruby.scm (ruby-tzinfo-data): Update to 1.2021.1. [source]: Remove patch. [arguments]: Add custom 'patch-source, 'pre-check phases. [native-inputs]: Add IANA timezone data files. * gnu/packages/patches/ruby-tzinfo-data-ignore-broken-test.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Remove it.
* gnu: ruby-tzinfo: Update to 2.0.4.Efraim Flashner2021-02-23
| | | | | | | | * gnu/packages/ruby.scm (ruby-tzinfo): Update to 2.0.4. [source]: Download using git-fetch. [arguments]: Add custom 'pre-check, 'check phases. [propagated-inputs]: Remove ruby-thread-safe, add ruby-concurrent. [native-inputs]: Add ruby-simplecov.
* gnu: ruby-rails-html-sanitizer: Update to 1.3.0.Efraim Flashner2021-02-23
| | | | * gnu/packages/rails.scm (ruby-rails-html-sanitizer): Update to 1.3.0.
* gnu: ruby-rails-dom-testing: Update to 2.0.3.Efraim Flashner2021-02-23
| | | | * gnu/packages/rails.scm (ruby-rails-dom-testing): Update to 2.0.3.
* gnu: ruby-loofah: Update to 2.3.1.Efraim Flashner2021-02-23
| | | | | | * gnu/packages/ruby.scm (ruby-loofah): Update to 2.3.1. [arguments]: Adjust custom 'remove-unnecessary-dependencies phase for upstream changes.
* gnu: ruby-mail: Update to 2.7.1.Efraim Flashner2021-02-23
| | | | | | * gnu/packages/ruby.scm (ruby-mail): Update to 2.7.1. [propagated-inputs]: Remove ruby-mime-types, add ruby-mini-mime. [arguments]: Adjust comment about skipping tests.
* gnu: Add ruby-mini-mime.Efraim Flashner2021-02-23
| | | | * gnu/packages/ruby.scm (ruby-mini-mime): New variable.
* gnu: ruby-protobuf: Add missing input.Efraim Flashner2021-02-23
| | | | | * gnu/packages/protobuf.scm (ruby-protobuf)[propagated-inputs]: Add ruby-thread-safe.
* gnu: stockfish: Update to 13.Greg Hogan2021-02-23
| | | | | | | * gnu/packages/games.scm (stockfish): Update to 13. [inputs]: Update neural network file. Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
* gnu: Add emacs-ido-at-point.Masaya Tojo2021-02-23
| | | | | | * gnu/packages/emacs-xyz.scm (emacs-ido-at-point): New variable. Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
* gnu: cli11: Remove (guix utils) dependency.Mathieu Othacehe2021-02-23
| | | | | * gnu/packages/cpp.scm (cli11)[arguments]: Do not import (guix utils) that is not meant to go on the build side.
* tests: cuirass: Restore "cuirass running".Mathieu Othacehe2021-02-23
| | | | | | | | | This is a follow-up of ab054868afe6a4ba9d8aa9943e265bd6a871d0ae. The test was failing because the Shepherd control socket wasn't ready yet. Restore it but make sure that the control socket is available first. * gnu/tests/cuirass.scm ("shepherd socket ready"): New test. ("cuirass running"): Restore it.
* tests: cuirass: Remove "cuirass running" test.Mathieu Othacehe2021-02-23
| | | | | * gnu/tests/cuirass.scm ("cuirass running"): Remove it as it fails if all the dependencies are not started yet.
* services: cuirass: Fix services requirements.Mathieu Othacehe2021-02-23
| | | | | | | * gnu/services/cuirass.scm (cuirass-shepherd-service): Add "postgres-roles" to cuirass requirements. Set cuirass-web requirements to cuirass only. Remove "guix-daemon" and "networking" from cuirass-remote-server requirements as are already required by cuirass.
* services: postgresql-roles: Fix race condition.Mathieu Othacehe2021-02-23
| | | | | | | | | | Make sure that the postgresql-roles script is completed before declaring the postgresql-roles service as started. * gnu/services/databases.scm (postgresql-create-roles): Return the command line instead of a program-file. (postgresql-role-shepherd-service): Use fork+exec-command to start the role creation script and wait for its completion before returning.
* services: cuirass: Improve simple-cuirass-services.Mathieu Othacehe2021-02-23
| | | | | | | | | | | | | | | | | | | | | | Instead of returning multiple services in simple-cuirass-services, rely on the instantiate-missing-services procedure to instantiate postgresql and postgresql-role-service-type when missing. Turn simple-cuirass-services procedure into simple-cuirass-configuration->specs, that takes a simple-cuirass-configuration record and returns a Cuirass specification. Suggested-by: Ludovic Courtès <ludo@gnu.org> * gnu/services/cuirass.scm (%default-cuirass-config): Remove it. (simple-cuirass-services): Rename it to ... (simple-cuirass-configuration->specs): ... this procedure. * gnu/tests/cuirass.scm (cuirass-services): Remove postgresql and postgresql-role services that are automatically instantiated. (simple-cuirass-service): New variable. (%cuirass-simple-test): Adapt it to use simple-cuirass-configuration->specs instead of simple-cuirass-services. * doc/guix.texi (Simple Cuirass): Update it.
* gnu: sbcl-common-lisp-jupyter: Update to 20210217.Pierre Neidhardt2021-02-23
| | | | * gnu/packages/lisp-xyz.scm (sbcl-common-lisp-jupyter): Update to 20210217.
* gnu: sbcl-trivial-clipboard: Update to 20210219.Pierre Neidhardt2021-02-23
| | | | * gnu/packages/lisp-xyz.scm (sbcl-trivial-clipboard): Update to 20210219.
* gnu: youtube-dl: Update to 2021.02.22.Tobias Geerinckx-Rice2021-02-23
| | | | * gnu/packages/video.scm (youtube-dl): Update to 2021.02.22.
* scripts: Don't trigger option hints for short options.Ludovic Courtès2021-02-22
| | | | | | | | Previously, 'guix install foo -r bar' would crash with a backtrace because NAME would be #\r (a character instead of a string). * guix/scripts.scm (parse-command-line)[parse-options-from]: Call 'option-hint' only when NAME is a string.
* profiles: Fix typo in manifest comment.Ludovic Courtès2021-02-22
| | | | * guix/build/profiles.scm (build-profile): Fix typo.
* describe: Fix typo in 'manifest-entry-with-provenance'.Ludovic Courtès2021-02-22
| | | | | * guix/describe.scm (manifest-entry-with-provenance): Fix first argument to 'assq'.
* gnu: ocaml-llvm: Remove duplicate package.Ludovic Courtès2021-02-22
| | | | | | | | Commit 8f710cc598fb675d267f49a82cffc197f03ad52c introduced a duplicate ocaml-llvm@9.0.1 package, which was flagged by a test failure in tests/packages.scm. * gnu/packages/ocaml.scm (make-ocaml-llvm): Define as 'mlambdaq'.
* gnu: linux-libre-headers@5.11: Refer to 5.11, not 5.10.Ludovic Courtès2021-02-22
| | | | | | Fixes a typo introduced in b819512ca2cce1051c5fea26328da2e5d6a9a101. * gnu/packages/linux.scm (linux-libre-headers-5.11): Really refer to 5.11.
* packages: 'package-field-location' preserves the original file name.Ludovic Courtès2021-02-22
| | | | | | | | This fixes a regression introduced in 9a38bed2cf32e9462badfa43e74cdd4580e804fc. * guix/packages.scm (package-field-location): Do not shadow the 'file' variable.
* gnu: isync: Update to 1.3.5 [fixes CVE-2021-20247].Leo Famulari2021-02-22
| | | | * gnu/packages/mail.scm (isync): Update to 1.3.5.
* gnu: Add temper-exporter.Christopher Baines2021-02-22
| | | | * gnu/packages/monitoring.scm (temper-exporter): New variable.
* system: hurd: Have the static networking provision 'networking.Christopher Baines2021-02-22
| | | | | | | | | Some services require networking, I'm looking at the Guix Build Coordinator agent. Networking seems to work in the childhurd VM, so I think this change makes sense. * gnu/system/hurd.scm (%base-services/hurd): Add 'networking to the provision parameter for the static-networking service.
* substitute: Rework connection error handling.Christopher Baines2021-02-22
| | | | | | | | | | | | | | | | | | | | | | | | This is part of trying to reduce the interdependency of code within the substitute module. This commit addresses some of the error handling that was performed through open-connection-for-uri/maybe. The new approach is to use call-with-connection-error-handling, and wrap calls to http-multiple-get and http-fetch with that procedure, which takes care of handling connection errors. I think this is even slightly more rigerous than the previous setup, because this approach handles connection errors that occur when http-multiple-get reconnects to a host. * guix/scripts/substitute.scm (open-connection-for-uri/maybe): Transform in to call-with-connection-error-handling. (fetch-narinfos): Use call-with-connection-error-handling. (process-query): Replace open-connection-for-uri/maybe with open-connection-for-uri/cached. (open-connection-for-uri/cached): Set a default timeout, matching the behaviour in open-connection-for-uri/maybe. (process-substitution): Use call-with-connection-error-handling.
* substitute: Remove fetch-narinfos use open-connection-for-uri/maybe.Christopher Baines2021-02-22
| | | | | | | | | | | | | | | | | | | At least by default. Instead, make the open-connection procedure a parameter, and make the default guix:open-connection-for-uri. Do so similarly for lookup-narinfos and lookup-narinfos/diverse which work towards calling fetch-narinfos. This means this code can be moved to a different module, without having use/move the connection caching code. * guix/scripts/substitute.scm (fetch-narinfos): Add #:open-connection argument, and call http-multiple-get with it. (lookup-narinfos) Add #:open-connection argument, and call fetch-narinfos with it. (lookup-narinfos/diverse): Add #:open-connection argument, and call lookup-narinfos with it. (process-query): Call lookup-narinfos/diverse with #:open-connection open-connection-for-uri/maybe.
* substitute: Inline fetch in to process-substitutes.Christopher Baines2021-02-22
| | | | | | | | As it's only called in one place, and this should make the code easier to read. * guix/scripts/substitute.scm (fetch): Move procedure inside… (process-substitution): …here.
* substitute: Remove redundant fetch arguments.Christopher Baines2021-02-22
| | | | | | | | | It's just called in one place, with hardcoded argument values, so just inline them. * guix/scripts/substitute.scm (fetch): Remove arguments that don't vary, copy the values from the call site in process-substitution. (process-substitution): Remove unnecessary argument values from fetch call.
* substitute: Remove now redundant connection caching helpers.Christopher Baines2021-02-22
| | | | | | | | Failures now should be handled where they occur, and if there's a problem that's symptomatic of an issue with the connection, the port should be closed. * guix/scripts/substitute.scm (call-with-cached-connection): Remove procedure. (with-cached-connection): Remove syntax rule.
* substitute: Change connection cache handling in process-substitution.Christopher Baines2021-02-22
| | | | | | | | | Just pass open-connection-for-uri/maybe to http-fetch, this removes the need for with-cached-connection and passing the port in. * guix/scripts/substitute.scm (fetch): Don't take a port as an argument, and pass open-connection-for-uri/maybe to http-fetch. (process-substitution): Don't call fetch with with-cached-connection.
* http-client: Accept #:open-connection in http-fetch.Christopher Baines2021-02-22
| | | | | | | | So that an alternative procedure can be passed in, perhaps to perform connection caching. * guix/http-client.scm (http-fetch): Add an #:open-connection keyword argument.
* substitute: Stop using call-with-cached-connection in fetch-narinfos.Christopher Baines2021-02-22
| | | | | | | | | Instead, just pass open-connection-for-uri/maybe to http-multiple-get. This code should be functionaly similar to the previous code. The eventual aim of this is to make the connection caching not mandatory in fetch-narinfos. * guix/scripts/substitute.scm (fetch-narinfos): Remove use of call-with-cached-connection.
* substitute: open-connection-for-uri/maybe add #:verify-certificate?.Christopher Baines2021-02-22
| | | | | | | | As this is used by http-fetch and http-multiple-get when they call the specified open connection procedure. * guix/scripts/substitute.scm (open-connection-for-uri/maybe): Support #:verify-certificate?.
* http-client: Add error handling to http-multiple-get.Christopher Baines2021-02-22
| | | | | | | | | | Making sure to close the port if it looks to be unusable. This closing of the port will allow for caching connections, without caching broken connections, as the cache can avoid handing out closed ports. * guix/http-client.scm (http-multiple-get): Try to catch exceptions that happen if the port is unusable, this is a adaptation of code within the (guix scripts substitute) module.
* guix: Move http-multiple-get to (guix http-client).Christopher Baines2021-02-22
| | | | | | | From (guix scripts substitute). This will make it easier to reuse this code. * guix/scripts/substitute.scm (http-multiple-get): Remove, and move to… * guix/http-client.scm (http-multiple-get): …here.
* substitute: Remove redundant let block from fetch.Christopher Baines2021-02-22
| | | | * guix/scripts/substitute.scm (fetch): Remove redundant let block.
* substitute: Remove connection handling from fetch.Christopher Baines2021-02-22
| | | | | | | http-fetch does this, so just use that code instead. * guix/scripts/substitute.scm (fetch): Remove connection handling when the port is closed.