Subject: [bug#70494] [PATCH 00/23] Groundwork for the Guile guix-daemon

From: Christopher Baines <[email-masked]>
Date: Sun, 21 Apr 2024 10:35:57 +0100

Here's another series of patches working towards being able to have a
Guile guix-daemon.

Most importantly I've taken what I think are the key changes from the
guile-daemon branch, and tweaked them based on my current thinking for
how to structure the code.

Additionally, there are some further changes to move functionality
(download-nar) out of the substitute script and in to the module. This
allows the Guile guix-daemon to work with substitutes directly, rather
than spawning the substitute script.

Also included are some smaller store changes, exporting some existing
things, adding a few new procedures and tweaking the database code.

Caleb Ristvedt (5):
  store: database: Register derivation outputs.
  gnu: linux-container: Make it more suitable for derivation-building.
  syscalls: Add missing pieces for derivation build environment.
  guix: store: environment: New module.
  store: build-derivations: New module.

Christopher Baines (18):
  store: Export protocol related constants.
  serialization: Export read-byte-string.
  store: Add text-output-path and text-output-path-from-hash.
  store: Add validate-store-name.
  store: database: Add procedures for querying valid paths.
  scripts: substitute: Untangle selecting fast vs small compressions.
  scripts: substitute: Extract script specific output from download-nar.
  syscalls: Add unshare.
  scripts: perform-download: Support configuring the %store-prefix.
  store: Export operation-id.
  store: database: Log when aborting transactions.
  store: database: Export transaction helpers.
  guix: http-client: Add network-error?.
  http-client: Include EPIPE in network-error?.
  scripts: substitute: Simplify with-timeout usage.
  scripts: substitute: Don't enforce cached connections in download-nar.
  substitutes: Move download-nar from substitutes script to here.
  substitutes: Add #:keep-alive? keyword argument to download-nar.

 Makefile.am                       |   4 +-
 gnu/build/linux-container.scm     |   9 +-
 guix/build/syscalls.scm           |  60 +++-
 guix/http-client.scm              |  23 ++
 guix/scripts/perform-download.scm |   6 +-
 guix/scripts/substitute.scm       | 456 +++++++++-------------------
 guix/serialization.scm            |   3 +-
 guix/store.scm                    |  56 +++-
 guix/store/build-derivations.scm  | 412 +++++++++++++++++++++++++
 guix/store/database.scm           | 240 ++++++++++++++-
 guix/store/environment.scm        | 484 ++++++++++++++++++++++++++++++
 guix/substitutes.scm              | 213 ++++++++++++-
 12 files changed, 1620 insertions(+), 346 deletions(-)
 create mode 100644 guix/store/build-derivations.scm
 create mode 100644 guix/store/environment.scm

base-commit: 92af4ea17f70207fbbf2513f677f3171d4eafd41
-- 
2.41.0