summaryrefslogtreecommitdiff
path: root/guix/scripts/offload.scm
AgeCommit message (Expand)Author
2014-03-13offload: Fix 'choose-build-machine' for several machines.•••* guix/scripts/offload.scm (choose-build-machine)[undecorate]: Turn into a two-argument procedure. Ludovic Courtès
2014-03-13offload: Convert the port number to a string when invoking lsh.•••* guix/scripts/offload.scm (remote-pipe, send-files): Pass the result of 'build-machine-port' to 'number->string'. Ludovic Courtès
2014-03-13offload: Allow build machines to specify a port number.•••* guix/scripts/offload.scm (<build-machine>): Add 'port' field. (remote-pipe, send-files): Use lsh's '-p' option when invoking it. Ludovic Courtès
2014-03-09offload: Honor absolute build timeouts.•••* guix/scripts/offload.scm (offload): Remove default value for 'build-timeout'. Pass '--timeout' to the remote 'guix build' process. (transfer-and-offload, process-request): Remove default value for 'build-timeout'. Ludovic Courtès
2014-03-09offload: Move macro definitions before use.•••* guix/scripts/offload.scm (lock-file, unlock-file, with-file-lock, with-machine-lock, machine-slot-file, acquire-build-slot, release-build-slot): Move definitions above their first use. Ludovic Courtès
2014-03-09offload: Distinguish between 'decline' and 'postpone'.•••* guix/scripts/offload.scm (transfer-and-offload): New procedure, with core formerly in 'process-request'. (choose-build-machine): Remove 'requirements' parameter. (process-request): Reply 'decline' when none of MACHINES matches the requirements, and 'postpone' when MACHINES are busy. Ludovic Courtès
2014-03-08offload: Prevent locked files from being GC'd.•••* guix/scripts/offload.scm (%slots): New variable. (choose-build-machine): Add SLOT to '%slots'. Ludovic Courtès
2014-03-08offload: Fix thinko.•••* guix/scripts/offload.scm (choose-build-machine)[machine+slots]: Use 'filter-map', not 'filter'. Ludovic Courtès
2014-03-08offload: Make 'parallel-builds' a hard limit.•••* guix/scripts/offload.scm (machine-choice-lock-file, machine-slot-file, acquire-build-slot, release-build-slot): New procedures. (choose-build-machine): Operate with (machine-choice-lock-file) taken. Acquire a build slot for each of MACHINES. Release those not used. Ludovic Courtès
2014-03-08offload: Further generalize lock files.•••* guix/scripts/offload.scm (lock-machine, unlock-machine): Remove. (lock-file, unlock-file): New procedures. (with-file-lock): New macro. (with-machine-lock): Rewrite in terms of 'with-file-lock'. Ludovic Courtès
2014-03-08offload: Generalize the machine lock mechanism.•••* guix/scripts/offload.scm (lock-machine): Add 'hint' parameter. (unlock-machine): Remove 'machine' parameter. (with-machine-lock): Add 'hint' parameter, and pass it down. (process-request): Adjust uses of 'with-machine-lock' to pass the 'bandwidth hint. Ludovic Courtès
2014-03-06offload: Serialize file transfers to build machines.•••* guix/scripts/offload.scm (machine-lock-file, lock-machine, unlock-machine): New procedures. (with-machine-lock): New macro. (process-request): Wrap 'send-files' and 'retrieve-files' calls in 'with-machine-lock'. Ludovic Courtès
2014-03-01offload: Comment out attempt to set up an lsh gateway.•••* guix/scripts/offload.scm (open-ssh-gateway): Comment out. (process-request): Remove call to 'open-ssh-gateway' and to 'kill'. Ludovic Courtès
2014-03-01offload: 'remote-pipe' uses the right SSH key.•••* guix/scripts/offload.scm (remote-pipe): Pass -i when invoking %LSHG-COMMAND. Ludovic Courtès
2014-03-01offload: Take the target machine load into account.•••* guix/scripts/offload.scm (machine-load, machine-less-loaded?, machine-less-loaded-or-faster?): New procedures. (choose-build-machine): Use 'machine-less-loaded-or-faster?' when sorting. Return the head of MACHINES unless it's loaded is >= 2. Ludovic Courtès
2014-02-02offload: Have 'build-machines' honor its argument.•••* guix/scripts/offload.scm (build-machines): Honor FILE. Ludovic Courtès
2014-01-27offload: Do not try to retrieve anything upon build failure.•••* guix/scripts/offload.scm (offload): Add 'log-port' keyword parameter. Handle log display here. Return the result of (close-pipe pipe). (process-request): Adjust 'offload' call site accordingly. Call 'retrieve-files' only when 'offload' returns zero; exit when 'offload' returns non-zero. Ludovic Courtès
2014-01-24Add 'guix offload' as a daemon build hook.•••* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_NO_BUILD_HOOK): New macro. (options): Add '--no-build-hook'. (parse_opt): Handle it. (main)[HAVE_DAEMON_OFFLOAD_HOOK]: Set 'useBuildHook' by default. Set $NIX_BUILD_HOOK to our offload hook unless otherwise specified. [!HAVE_DAEMON_OFFLOAD_HOOK]: Clear 'useBuildHook'. * pre-inst-env.in: Set and export NIX_BUILD_HOOK. * nix/scripts/offload.in, guix/scripts/offload.scm: New files. * guix/ui.scm (show-guix-help)[internal?]: Add "offload". * config-daemon.ac: Call 'GUIX_CHECK_UNBUFFERED_CBIP'. Instantiate 'nix/scripts/offload'. Set 'BUILD_DAEMON_OFFLOAD' conditional, and optionally define 'HAVE_DEAMON_OFFLOAD_HOOK' cpp macro. * daemon.am (nodist_pkglibexec_SCRIPTS)[BUILD_DAEMON_OFFLOAD]: Add it. * Makefile.am (MODULES)[BUILD_DAEMON_OFFLOAD]: Add 'guix/scripts/offload.scm'. (EXTRA_DIST)[!BUILD_DAEMON_OFFLOAD]: Likewise. * m4/guix.m4 (GUIX_CHECK_UNBUFFERED_CBIP): New macro. * doc/guix.texi (Setting Up the Daemon): Move most of the body to... (Build Environment Setup): ... this. New subsection. (Daemon Offload Setup): New subsection. Ludovic Courtès