From mboxrd@z Thu Jan  1 00:00:00 1970
From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@gnu.org>
Subject: bug#39925: `guix pull` failure in multi-machine setup
Date: Sun, 08 Mar 2020 12:40:33 +0100
Message-ID: <87zhcraxce.fsf@gnu.org>
References: <20200305133318.GB2909@zpidnp36> <87ftem7m6d.fsf@gnu.org>
 <20200306074018.GC2909@zpidnp36> <87wo7xoiuj.fsf@gnu.org>
 <20200306114548.GD2909@zpidnp36>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Return-path: <bug-guix-bounces+gcggb-bug-guix=m.gmane-mx.org@gnu.org>
Received: from eggs.gnu.org ([2001:470:142:3::10]:42214)
 by lists.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1jAuIt-0003jE-Ao
 for bug-guix@gnu.org; Sun, 08 Mar 2020 07:41:08 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1jAuIp-00025X-5R
 for bug-guix@gnu.org; Sun, 08 Mar 2020 07:41:07 -0400
Received: from debbugs.gnu.org ([209.51.188.43]:42005)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)
 (Exim 4.71) (envelope-from <Debian-debbugs@debbugs.gnu.org>)
 id 1jAuIp-000258-2M
 for bug-guix@gnu.org; Sun, 08 Mar 2020 07:41:03 -0400
Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2)
 (envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1jAuIo-0006ff-7Z
 for bug-guix@gnu.org; Sun, 08 Mar 2020 07:41:02 -0400
Sender: "Debbugs-submit" <debbugs-submit-bounces@debbugs.gnu.org>
Resent-Message-ID: <handler.39925.B39925.158366764225608@debbugs.gnu.org>
In-Reply-To: <20200306114548.GD2909@zpidnp36> (Lars-Dominik Braun's message of
 "Fri, 6 Mar 2020 12:45:48 +0100")
List-Id: Bug reports for GNU Guix <bug-guix.gnu.org>
List-Unsubscribe: <https://lists.gnu.org/mailman/options/bug-guix>,
 <mailto:bug-guix-request@gnu.org?subject=unsubscribe>
List-Archive: <https://lists.gnu.org/archive/html/bug-guix>
List-Post: <mailto:bug-guix@gnu.org>
List-Help: <mailto:bug-guix-request@gnu.org?subject=help>
List-Subscribe: <https://lists.gnu.org/mailman/listinfo/bug-guix>,
 <mailto:bug-guix-request@gnu.org?subject=subscribe>
Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane-mx.org@gnu.org
Sender: "bug-Guix" <bug-guix-bounces+gcggb-bug-guix=m.gmane-mx.org@gnu.org>
To: Lars-Dominik Braun <ldb@leibniz-psychology.org>
Cc: 39925@debbugs.gnu.org

Hi,

Lars-Dominik Braun <ldb@leibniz-psychology.org> skribis:

>> Sounds like this ssh URI is not valid on the nodes, is that right?
> I would consider it valid, since `ssh master.<domain>` and `guix build
> <package>` both work just fine from the nodes. It=E2=80=99s just `guix pu=
ll`, which is
> causing issues.

Oh it may be that we would also need to let =E2=80=98HOME=E2=80=99 through,=
 so that
~/.ssh/config is found, for example.  That could have undesirable side
effects that are best avoided, though (e.g., ~/.cache/guile would become
visible.)

>> Right.  So perhaps I don=E2=80=99t quite understand the use case.  What =
about
>> simply pulling from one of these machines, if everything is shared over
>> NFS?
> Sure, that=E2=80=99s an option, but anyone who tries will get a strange e=
rror message.

I agree that the error message is sub-optimal.  Not sure how to improve
on it (how can =E2=80=98build-self.scm=E2=80=99 know that it=E2=80=99s fail=
ing because of
that?).

> And it breaks the appeal of having a remote guix daemon in the first plac=
e,
> that is being able to run `guix <whatever>` on any machine I log into. If=
 that
> is not the case (i.e. not for `guix pull`) it would be more consistent to=
 ask
> users to SSH into a different machine every time they interact with guix.=
 Does
> that explain my use case?

Instead of:

  GUIX_DAEMON_SOCKET=3Dssh://host guix pull

You could run:

  ssh host guix pull

In fact, the former would probably not work because =E2=80=98guix pull=E2=
=80=99 modifies
the local /var/guix/profiles, not the one on the host that runs the
daemon.

So maybe the problem is that =E2=80=98GUIX_DAEMON_SOCKET=3Dssh://=E2=80=99 =
isn=E2=80=99t quite as
powerful as you thought.  :-)  It=E2=80=99s really just a way to talk to a =
remote
daemon, but =E2=80=98guix pull=E2=80=99, =E2=80=98guix package=E2=80=99, et=
c. also need to access
/var/guix/profiles.

Thanks,
Ludo=E2=80=99.