1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-06 21:20:33 +02:00

daemon: Implement ‘substitute-urls’ RPC.

* nix/libstore/worker-protocol.hh (PROTOCOL_VERSION): Bump.
(WorkerOp): Add ‘wopSubstituteURLs’.
* nix/nix-daemon/nix-daemon.cc (performOp): Implement it.
* guix/store.scm (%protocol-version): Bump.
(operation-id): Add ‘substitute-urls’.
(substitute-urls): New procedure.
* tests/store.scm ("substitute-urls, default")
("substitute-urls, client-specified URLs")
("substitute-urls, disabled"): New tests.

Change-Id: I2c0119500c3a1eecfa5ebf32463ffb0f173161de
This commit is contained in:
Ludovic Courtès
2023-11-10 21:37:28 +01:00
parent b650dcabf1
commit 1e47148f46
4 changed files with 58 additions and 7 deletions

View File

@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012-2021, 2023 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -105,7 +105,28 @@
"/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7/bin/guile")))
(not (direct-store-path? (%store-prefix)))))
(test-skip (if %store 0 15))
(test-skip (if %store 0 18))
(test-equal "substitute-urls, default"
(list (getenv "GUIX_BINARY_SUBSTITUTE_URL"))
(with-store store
(set-build-options store #:use-substitutes? #t)
(substitute-urls store)))
(test-equal "substitute-urls, client-specified URLs"
'("http://substitutes.example.org"
"http://other.example.org")
(with-store store
(set-build-options store #:use-substitutes? #t
#:substitute-urls '("http://substitutes.example.org"
"http://other.example.org"))
(substitute-urls store)))
(test-equal "substitute-urls, disabled"
'()
(with-store store
(set-build-options store #:use-substitutes? #f)
(substitute-urls store)))
(test-equal "profiles/per-user exists and is not writable"
#o755