From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Offloading to use Guile-SSH instead of lsh Date: Sat, 05 Nov 2016 16:41:41 +0100 Message-ID: <87poma53yi.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:33766) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c336J-0001N0-2m for guix-devel@gnu.org; Sat, 05 Nov 2016 11:41:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c336F-0005ac-V0 for guix-devel@gnu.org; Sat, 05 Nov 2016 11:41:47 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:59330) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c336F-0005aW-RV for guix-devel@gnu.org; Sat, 05 Nov 2016 11:41:43 -0400 Received: from reverse-83.fdn.fr ([80.67.176.83]:49744 helo=pluto) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1c336F-0003g9-7D for guix-devel@gnu.org; Sat, 05 Nov 2016 11:41:43 -0400 List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org Hello! The =E2=80=98wip-guile-ssh=E2=80=99 branch is finally getting into shape. = As soon as a new Guile-SSH release is out, I=E2=80=99ll merge it on master. The goal of this branch is to use Guile-SSH (libssh bindings) instead of invoking =E2=80=98lsh=E2=80=99 when offloading builds (see for background.) The new code is shorter(!), more efficient, more elegant, and hopefully more reliable. The efficiency gains come from the fact that we can reuse SSH sessions in an intelligent way. The elegance has to do with the fact that we have direct access to the SSH API, as opposed to invoking =E2=80=98lsh=E2=80=99 and checking its exit status. Improved reliability (well, modulo new bugs ;-)) comes from the fact that we open a direct connection to the remote guix-daemon for the duration of the offload, which allows us to better control GC root registration=E2=80=94we can use the =E2=80=98add-temp-root=E2=80=99 RPC dir= ectly instead of writing indirect root files in $HOME. Before we put it in production on hydra.gnu.org :-), I=E2=80=99d welcome mo= re testing! To do that you need a current Guile-SSH (with the =E2=80=98channel-send-eof!=E2=80=99 procedure), and the =E2=80=98build-mac= hine=E2=80=99 form is slightly different than before: it has a new =E2=80=98host-key=E2=80=99 fie= ld to contain the OpenSSH-formatted host key of the machine. I=E2=80=99ve updated the do= c to reflect that. Feedback welcome! Ludo=E2=80=99.