1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-30 05:51:19 +02:00
Commit Graph

74432 Commits

Author SHA1 Message Date
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
Christopher Baines
08acee2f98 substitute: Remove connection handling from fetch.
http-fetch does this, so just use that code instead.

* guix/scripts/substitute.scm (fetch): Remove connection handling when the
port is closed.
2021-02-22 20:43:09 +00:00