guix-devel/guix
Ludovic Courtès ed7b44370f
offload: Use (guix inferior) instead of (ssh dist node).
Using inferiors and thus 'guix repl' simplifies setup on build
machines (no need to worry about GUILE_LOAD_PATH etc.)

Furthermore, the 'guix repl -t machine' protocol running in a remote
pipe addresses several issues with the current implementation of nodes
and RREPLs in Guile-SSH: fewer round trips, doesn't leave a 'guile
--listen' process behind it, stateless (since a new process is started
each time), more efficient (the SSH channel can be reused), more
reliable (no 'pgrep', 'pkill', and shellology; see
<https://github.com/artyom-poptsov/guile-ssh/issues/11> as an example.)

* guix/ssh.scm (inferior-remote-eval): New procedure.
(send-files): Use it instead of 'make-node' and 'node-eval'.
* guix/scripts/offload.scm (node-guile-version): New procedure.
(node-free-disk-space, transfer-and-offload, node-load)
(choose-build-machine, assert-node-has-guix): Use 'remote-inferior'
instead of 'make-node' and 'inferior-eval' instead of 'node-eval'.
(assert-node-can-import, assert-node-can-export): Likewise, and add
'session' parameter.
(check-machine-availability): Likewise, and add calls to
'close-inferior' and 'disconnect!'.
(check-machine-status): Likewise.
* doc/guix.texi (Daemon Offload Setup): Remove bit related to 'guile' in
$PATH and $GUILE_LOAD_PATH; mention 'guix' alone.
2018-12-24 16:06:32 +01:00
..
build build: Add dune-build-system. 2018-12-18 22:16:23 +01:00
build-system build: Add dune-build-system. 2018-12-18 22:16:23 +01:00
import import: cran: Try import via CRAN if package is not on Bioconductor. 2018-12-20 09:42:22 +01:00
scripts offload: Use (guix inferior) instead of (ssh dist node). 2018-12-24 16:06:32 +01:00
store database: Use "write-ahead log" mode and set a long "busy timeout". 2018-12-21 23:50:13 +01:00
tests tests: Support multiple HTTP server instances. 2017-10-12 23:47:48 +02:00
base16.scm utils: Move base16 procedures to (guix base16). 2017-03-16 22:50:14 +01:00
base32.scm base32: Export the base32 charsets. 2017-07-21 17:03:24 +02:00
base64.scm base64: Turn into a regular Guile module. 2017-05-25 14:25:17 +02:00
build-system.scm
cache.scm cache: Work around 'time-monotonic' bug in Guile 2.2.2. 2017-04-22 14:42:15 +02:00
channels.scm guix: Add support for channel dependencies. 2018-12-09 13:55:22 +01:00
ci.scm ci: Add procedures to access evaluations. 2018-11-10 23:33:46 +01:00
combinators.scm Add (guix memoization). 2017-01-28 18:55:20 +01:00
config.scm.in build: Remove checks for 'nix-instantiate'. 2018-06-18 23:19:51 +02:00
cpio.scm
cve.scm cve: Update feed URL. 2018-08-26 01:47:40 +02:00
cvs-download.scm download: Download a nar when a VCS checkout fails. 2017-10-19 23:21:49 +02:00
derivations.scm derivations: Add properties. 2018-11-28 10:39:58 +01:00
describe.scm Add 'guix describe'. 2018-09-07 11:40:22 +02:00
discovery.scm discovery: Add 'scheme-modules*'. 2018-09-02 16:43:10 +02:00
docker.scm docker: Hide scary-looking but harmless tar failure messages. 2018-11-29 09:30:00 +01:00
download.scm download: 'built-in-builders*' relies on the functional cache. 2018-12-19 23:52:25 +01:00
elf.scm
ftp-client.scm download: Pass the timeout to 'ftp-retr'. 2017-11-14 23:46:53 +01:00
gexp.scm Use 'mapm' instead of 'sequence' + 'map'. 2018-12-19 23:52:24 +01:00
git-download.scm git-download: Download from Software Heritage as a last resort. 2018-11-26 11:10:20 +01:00
git.scm git: Nicely report '--with-commit' errors. 2018-11-30 17:03:04 +01:00
glob.scm glob: Add an extra glob pattern compilation stage. 2018-03-18 22:57:17 +01:00
gnu-maintenance.scm gnu-maintenance: Base kernel.org updater on HTML directory listings. 2018-11-10 23:33:46 +01:00
gnupg.scm gnupg: Change default keyserver. 2018-09-25 18:45:50 +02:00
grafts.scm grafts: Mark as non substitutable. 2018-12-04 10:57:56 +01:00
graph.scm Revert "graph: Provide access to the package record in the emit functions." 2017-08-24 23:55:51 +02:00
hg-download.scm download: Download a nar when a VCS checkout fails. 2017-10-19 23:21:49 +02:00
http-client.scm Switch to Guile-Gcrypt. 2018-09-04 17:25:11 +02:00
i18n.scm ui: Introduce (guix i18n). 2017-11-08 22:31:58 +01:00
inferior.scm ssh: Add 'remote-inferior'. 2018-12-24 16:06:32 +01:00
licenses.scm Correct name and Email for ng0. 2018-03-20 17:17:58 +01:00
man-db.scm profiles: Use 'with-extensions'. 2018-06-01 15:21:28 +02:00
memoization.scm memoization: Add 'invalidate-memoization!. 2017-12-13 23:11:53 +01:00
modules.scm modules: Report the search path in &missing-dependency-error. 2018-04-08 17:41:08 +02:00
monad-repl.scm
monads.scm monads: Add a template and specialization mechanism for monadic procedures. 2017-05-02 23:41:13 +02:00
nar.scm nar: Access the database instead of connecting to the daemon. 2018-11-13 14:59:45 +01:00
packages.scm packages: Turn 'cache!' into a single-value-return cache. 2018-12-19 23:52:24 +01:00
pki.scm Switch to Guile-Gcrypt. 2018-09-04 17:25:11 +02:00
profiles.scm Use 'mapm' instead of 'sequence' + 'map'. 2018-12-19 23:52:24 +01:00
profiling.scm Add (guix profiling). 2017-12-12 18:11:22 +01:00
progress.scm progress: Do not display the last 0B transfer when size is unknown. 2018-11-16 14:53:44 +01:00
records.scm records: Adjust to test changes in 'record-abi-mismatch-error'. 2018-08-31 17:26:56 +02:00
scripts.scm scripts: Suggest running 'guix gc' when we're short on disk space. 2018-10-23 01:04:39 +02:00
search-paths.scm search-paths: Add 'set-search-paths'. 2018-05-10 14:53:57 +02:00
self.scm etc: Add "ci.guix.info.pub" public key file. 2018-12-04 10:57:56 +01:00
serialization.scm serialization: Remove redundancy in 'write-file'. 2018-09-23 23:34:16 +02:00
sets.scm
ssh.scm offload: Use (guix inferior) instead of (ssh dist node). 2018-12-24 16:06:32 +01:00
status.scm ui: Report profile hooks separately. 2018-12-19 23:46:38 +01:00
store.scm store: Add 'GUIX_PROFILING' support for the object cache. 2018-12-19 23:52:24 +01:00
svn-download.scm guix: Add download-svn-to-store. 2017-06-15 17:03:14 +02:00
swh.scm swh: Export 'save-origin' and related bindings. 2018-11-27 12:12:33 +01:00
tests.scm tests: Check file canonicalization for 'restore-file-set'. 2018-11-13 14:59:46 +01:00
ui.scm ui: Report profile hooks separately. 2018-12-19 23:46:38 +01:00
upstream.scm discovery: Remove dependency on (guix ui). 2018-04-08 17:48:33 +02:00
utils.scm utils: Memoize 'absolute-dirname'. 2018-12-19 23:52:25 +01:00
workers.scm workers: Display backtrace in pre-unwind handler. 2017-11-17 10:47:56 +01:00
zlib.scm zlib: Fix race condition when closing gzip ports. 2017-11-19 23:09:01 +01:00