Commit graph

74433 commits

Author SHA1 Message Date
Ludovic Courtès a26006ff72
gexp: Keep 'lower-inputs' private.
It had been made public in 6b6298ae39 but
it's no longer needed since 779aa003fb.

* guix/gexp.scm (lower-inputs): Do not export.
2021-02-23 15:24:48 +01:00
Ludovic Courtès 4fa9d48fd4
gexp: 'gexp-inputs' returns both native and non-native inputs.
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.
2021-02-23 15:24:48 +01:00
Ludovic Courtès fc6d6aee66
gexp: 'gexp-inputs' returns a list of <gexp-input> records.
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.
2021-02-23 15:24:48 +01:00
Ludovic Courtès bde7929bd0
gexp: Micro-optimize sexp serialization.
* guix/gexp.scm (sexp->string): New procedure.
(gexp->derivation): Use it instead of 'object->string'.
2021-02-23 15:24:48 +01:00
Ludovic Courtès 70b33d8898
store: Object cache profiling shows the number of entries.
* guix/store.scm (record-cache-lookup!): Add 'size' variable; keep it
up-to-date and display it.
2021-02-23 15:24:47 +01:00
Ludovic Courtès db45712a67
grafts: Inline 'grafting?' and 'set-grafting'.
As for 'current-target-system' & co., this makes sure we don't
needlessly allocate closures.

* guix/grafts.scm (grafting?, set-grafting): Inline.
2021-02-23 15:24:47 +01:00
Efraim Flashner 3c548c3e0e
gnu: ruby-rails: Update to 6.1.3.
* 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.
2021-02-23 16:04:27 +02:00
Efraim Flashner c2fdc528dd
gnu: ruby-rack: Update to 2.2.3.
* 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.
2021-02-23 16:04:27 +02:00
Efraim Flashner 8bad3c8ddf
gnu: Add ruby-zeitwerk.
* gnu/packages/ruby.scm (ruby-zeitwerk): New variable.
2021-02-23 16:04:27 +02:00
Efraim Flashner fa0a244138
gnu: ruby-web-console: Update to 4.1.0.
* gnu/packages/rails.scm (ruby-web-console): Update to 4.1.0.
2021-02-23 16:04:27 +02:00
Efraim Flashner ebd8e447e9
gnu: ruby-tzinfo-data: Update to 1.2021.1.
* 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.
2021-02-23 16:04:27 +02:00
Efraim Flashner 76e1093b2b
gnu: ruby-tzinfo: Update to 2.0.4.
* 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.
2021-02-23 16:04:27 +02:00
Efraim Flashner 6519e61129
gnu: ruby-rails-html-sanitizer: Update to 1.3.0.
* gnu/packages/rails.scm (ruby-rails-html-sanitizer): Update to 1.3.0.
2021-02-23 16:04:26 +02:00
Efraim Flashner 945d5d039a
gnu: ruby-rails-dom-testing: Update to 2.0.3.
* gnu/packages/rails.scm (ruby-rails-dom-testing): Update to 2.0.3.
2021-02-23 16:04:26 +02:00
Efraim Flashner 8bb7ebc3d8
gnu: ruby-loofah: Update to 2.3.1.
* gnu/packages/ruby.scm (ruby-loofah): Update to 2.3.1.
[arguments]: Adjust custom 'remove-unnecessary-dependencies phase for
upstream changes.
2021-02-23 16:04:26 +02:00
Efraim Flashner ab4b6ae6af
gnu: ruby-mail: Update to 2.7.1.
* 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.
2021-02-23 16:04:26 +02:00
Efraim Flashner ae17c6c31d
gnu: Add ruby-mini-mime.
* gnu/packages/ruby.scm (ruby-mini-mime): New variable.
2021-02-23 16:04:26 +02:00
Efraim Flashner b76723041b
gnu: ruby-protobuf: Add missing input.
* gnu/packages/protobuf.scm (ruby-protobuf)[propagated-inputs]: Add
ruby-thread-safe.
2021-02-23 16:04:23 +02:00
Greg Hogan 25f00a2e44
gnu: stockfish: Update to 13.
* gnu/packages/games.scm (stockfish): Update to 13.
[inputs]: Update neural network file.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
2021-02-23 13:53:10 +01:00
Masaya Tojo d2299fe38a
gnu: Add emacs-ido-at-point.
* gnu/packages/emacs-xyz.scm (emacs-ido-at-point): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
2021-02-23 13:49:07 +01:00
Mathieu Othacehe b4f28584d3
gnu: cli11: Remove (guix utils) dependency.
* gnu/packages/cpp.scm (cli11)[arguments]: Do not import (guix utils) that is
not meant to go on the build side.
2021-02-23 12:39:15 +01:00
Mathieu Othacehe 0de0074844
tests: cuirass: Restore "cuirass running".
This is a follow-up of ab054868af. 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.
2021-02-23 11:54:53 +01:00
Mathieu Othacehe ab054868af
tests: cuirass: Remove "cuirass running" test.
* gnu/tests/cuirass.scm ("cuirass running"): Remove it as it fails if all the
dependencies are not started yet.
2021-02-23 11:24:47 +01:00
Mathieu Othacehe f2b10e1b7f
services: cuirass: Fix services requirements.
* 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.
2021-02-23 11:22:22 +01:00
Mathieu Othacehe 1a8cfb6d4c
services: postgresql-roles: Fix race condition.
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.
2021-02-23 11:00:18 +01:00
Mathieu Othacehe bebcf97600
services: cuirass: Improve simple-cuirass-services.
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.
2021-02-23 09:45:09 +01:00
Pierre Neidhardt 602f86d60b
gnu: sbcl-common-lisp-jupyter: Update to 20210217.
* gnu/packages/lisp-xyz.scm (sbcl-common-lisp-jupyter): Update to 20210217.
2021-02-23 09:25:40 +01:00
Pierre Neidhardt bdf7296666
gnu: sbcl-trivial-clipboard: Update to 20210219.
* gnu/packages/lisp-xyz.scm (sbcl-trivial-clipboard): Update to 20210219.
2021-02-23 09:12:23 +01:00
Tobias Geerinckx-Rice a239237b2f
gnu: youtube-dl: Update to 2021.02.22.
* gnu/packages/video.scm (youtube-dl): Update to 2021.02.22.
2021-02-23 08:02:52 +01:00
Ludovic Courtès 11f11d7ecb
scripts: Don't trigger option hints for short options.
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.
2021-02-22 23:42:08 +01:00
Ludovic Courtès e8fc373900
profiles: Fix typo in manifest comment.
* guix/build/profiles.scm (build-profile): Fix typo.
2021-02-22 23:42:08 +01:00
Ludovic Courtès ce2ba3431a
describe: Fix typo in 'manifest-entry-with-provenance'.
* guix/describe.scm (manifest-entry-with-provenance): Fix first argument
to 'assq'.
2021-02-22 23:42:08 +01:00
Ludovic Courtès d8c80c671b
gnu: ocaml-llvm: Remove duplicate package.
Commit 8f710cc598 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'.
2021-02-22 23:42:08 +01:00
Ludovic Courtès 43cef0ba81
gnu: linux-libre-headers@5.11: Refer to 5.11, not 5.10.
Fixes a typo introduced in b819512ca2.

* gnu/packages/linux.scm (linux-libre-headers-5.11): Really refer to 5.11.
2021-02-22 23:42:08 +01:00
Ludovic Courtès 66c9bc35ef
packages: 'package-field-location' preserves the original file name.
This fixes a regression introduced in
9a38bed2cf.

* guix/packages.scm (package-field-location): Do not shadow the 'file'
variable.
2021-02-22 23:42:08 +01:00
Leo Famulari 21cdb35b60
gnu: isync: Update to 1.3.5 [fixes CVE-2021-20247].
* gnu/packages/mail.scm (isync): Update to 1.3.5.
2021-02-22 16:48:50 -05:00
Christopher Baines 5c7874adb0
gnu: Add temper-exporter.
* gnu/packages/monitoring.scm (temper-exporter): New variable.
2021-02-22 20:45:55 +00:00
Christopher Baines 7c5e5e0e0f
system: hurd: Have the static networking provision 'networking.
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.
2021-02-22 20:44:58 +00:00
Christopher Baines 20c08a8a45
substitute: Rework connection error handling.
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.
2021-02-22 20:43:12 +00:00
Christopher Baines 187e970968
substitute: Remove fetch-narinfos use open-connection-for-uri/maybe.
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.
2021-02-22 20:43:12 +00:00
Christopher Baines 8116cc6673
substitute: Inline fetch in to process-substitutes.
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.
2021-02-22 20:43:11 +00:00
Christopher Baines b9d058e3f7
substitute: Remove redundant fetch arguments.
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.
2021-02-22 20:43:11 +00:00
Christopher Baines 7c85877fdf
substitute: Remove now redundant connection caching helpers.
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.
2021-02-22 20:43:11 +00:00
Christopher Baines f50f5751ff
substitute: Change connection cache handling in process-substitution.
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.
2021-02-22 20:43:11 +00:00
Christopher Baines 05f38ca8dc
http-client: Accept #:open-connection in http-fetch.
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.
2021-02-22 20:43:10 +00:00
Christopher Baines 7b812f7c84
substitute: Stop using call-with-cached-connection in fetch-narinfos.
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.
2021-02-22 20:43:10 +00:00
Christopher Baines f50b501a74
substitute: open-connection-for-uri/maybe add #:verify-certificate?.
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?.
2021-02-22 20:43:10 +00:00
Christopher Baines 205833b72c
http-client: Add error handling to http-multiple-get.
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.
2021-02-22 20:43:10 +00:00
Christopher Baines e2e853ddb0
guix: Move http-multiple-get to (guix http-client).
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.
2021-02-22 20:43:09 +00:00
Christopher Baines 87734503a4
substitute: Remove redundant let block from fetch.
* guix/scripts/substitute.scm (fetch): Remove redundant let block.
2021-02-22 20:43:09 +00:00