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