offloading documentation and env

  • Done
  • quality assurance status badge
Details
5 participants
  • Divan Santana
  • Oleg Pykhalov
  • Ludovic Courtès
  • ng0
  • Ricardo Wurmus
Owner
unassigned
Submitted by
ng0
Severity
normal
N
(address . bug-guix@gnu.org)
20170615170552.n7y5cxquqozpnesj@abyayala
Hi,

I am setting up local offloading systems and I just ran
into the same issue like I did every time in the last year:

with guile in the remote 'user' PATH the guile test works *locally*.
Through ssh, the 'env' output is different than local. I'm now trying
to fix this the same way 'scp' is fixed which is by including the
application in the system profile.

This part is implicit in the documentation and not explained, I think
we should be more clear about this.
--
ng0
OpenPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
https://krosos.org/~/ng0/https://www.infotropique.org
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEqIyK3RKYKNfqwC5S4i+bv+40hYgFAllCvm8ACgkQ4i+bv+40
hYjavA/+OuXP0CcjmK3X2pq6coJxfGTlopJNX21q+MY637vYaJms4KikUFLajA6i
KstxP4dUGRk77luyEplB2I8alY3y0RIP0QSrnxK0tLK8jHCMPM4pBrsAGh5OR0bC
vgqBLIkSTM/7MrWWDI/LRt3RfSYUaS3cf4+HECaFD8xSZDopjNIIO6hQlCkR65KP
A5OEdMFeTb2Oyd1bG+aUbk0nZknZUP3nruRGwQljhC13WlIc6eqlwpVP2nK3vG2k
Of8ChLfeNuF4UPEVIYPQqKjgiDPnnrU4AzCBM1rNNiSKu93Fsby72BuL14pqr1ib
J5fbapii5jHeZ2KylNuDYM6JHIUqsPtdTanzyZesy1paLQza8yAy835DmxOb6JFU
ZNoljYFliCQSPhHze3s7dvbHE0LCIbFlNtnjeaGkGhMUaT9q6sh/Bxsv5N6N+oYL
1iGG90gPNWSszp08e7+Y2axUn0wKN47Rc5JbKIQYyrvmjku0sdV3pkQ4mDRMptCW
Kg1DqhLHVBXl7+ysKsjNCwMSFUrjEAuHK2j5NDGxPxgIP3dB7ukT0W6EJwp9EiEF
4z88sVcQ+wwUwDcOeTjypRXrE3HadEH2BjzrWj41JHER55A/kiN63n5zIh3X8Kzf
DNx/ajvGri/vNjHLY6Zgz/FJzBG68vPdhq8yxHYWmAib29T9fSI=
=ZDsa
-----END PGP SIGNATURE-----


N
(address . 27386@debbugs.gnu.org)
20170615211132.clkaslffc4a3l5bw@abyayala
Attachment: file
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEqIyK3RKYKNfqwC5S4i+bv+40hYgFAllC+AMACgkQ4i+bv+40
hYh9/RAArL+wXaU5Q7uBte7wij2gbpLMdRH8ZTc/0M+ObN63Xqfycp85xkyBuCtX
1/pBVfvD52AnrQR4amtLxL8Ecma9+enLbbi1VLUeSf3Wwfo5yU+UiQZWNyOTtJ2i
vBsRUU46uN781NQ6/zcjf9xxg59gh8ahiBLEbXVsmkOHWzpLYJn+p/t8KHHDSZY8
gtCpF5hdAsPjSX+6949Ckc4+O2VKYvYPPm1RdhlZZ9hoC8EkEmVuBWNx/Ze1N5r3
cITSyeZ9+XtNz/6W4kz1s4a27thic4hpeBgICjtsfgBc1Bi4eqimHoIg8piSx+Cw
h5J82bts8+1+biIQN6LEhUoIKZ0V5s+QvJuYDDkdcYpPCBRtcOoG4MmOsheQFItl
0W6T/w5aXHPWPMVeTTYcfHzho744RU0UwVYpI2Rkda6qVK6wcY0S4pIE3QpmCDVk
S4SE1XUBhlOK5fIpUTm5jVEhp1RdOK7xjshBOUjQDQBuehcrEvF39InqnXu69A4g
MU6uKGEnZBqyBXbHAl+/AyYWidsCthxFiPi3uEzcnAiw81jQmnTgttrWvVGkTEnI
EzUDAOd3J/gFuusmSrwivr9K5OgIVdCtfCzNYj+Yn1NfvTbuix5T9qrZE9PW+1MP
onEj08bSaDBsmcaXygNNbZ+wXx76GVzxP1JS7hwersImVyIaqDE=
=KDan
-----END PGP SIGNATURE-----


N
(address . 27386@debbugs.gnu.org)
20170615221902.5ubbhriynb7wozrz@abyayala
Attachment: file
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEqIyK3RKYKNfqwC5S4i+bv+40hYgFAllDB9YACgkQ4i+bv+40
hYgbqw//V8wDdN4d9Ym3jIof0ZVXqstnPiBYlOPmDhplUQMPRSWSJek7RfYZDcC9
MmVAvBiawlL1IAQQzG/is2qyCBjv2Xtz8BOGFmj5TDmXoTHsrYAWwtHMgenpmxNI
dgHpTF5hPOqvF6cTTCN1YnkYZxMBxYljm6jt0B0EsYU45A4dBghiPuOqlFUvhhfm
kNar/q+zlsgff0wX7+eX0dCb2xtyZLnNl9KttJk31u3HQ1dZ5GRkuxgseEzm1JJw
xFO62KwjYctUnrshogY3YkRAfvcYoiSLOLWc/XUgecNRDWSD3HltGAS4IxFv/gsa
xlNpScukVLHR84kk5QqIh9UQjuALnD1uD5KQmrAq/KKIu4JzIwX9fjSAq3lxagYh
lhZAYgYxzPcI1ExpgmnLgH9O4nMSk6NCGsaCrvjakmR5W9M7MOd2aNr4XddVOetE
BuuyA31WuKpIkfDuGSLSVnse51qZJ+CWpytCxLyR84YLS4iSMoct+8amQHzVpznf
uz0fkMCB5WWI3b+UKLR7anbumtF7Hyhofxaxa3FqjoEznA+yR7FDILp3Eythwf9r
GBArFY1sUSYbHWVKvDRIwBeSQj5tu2kfMxb2CoznB+zbNwH0PuGnZBThyPEBauKV
AgaaH/Pr7JSIzF3We+sn9y6w6zvnj8h2X2btvRYCm3gEe5zkfXk=
=sj1h
-----END PGP SIGNATURE-----


N
(address . 27386@debbugs.gnu.org)
20170615223456.z5w2oaxifbah2ak2@abyayala
Attachment: file
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEqIyK3RKYKNfqwC5S4i+bv+40hYgFAllDC5AACgkQ4i+bv+40
hYjffw//UVDwKq12NQ+zkuRYguqcouZtv8/in6EV8AKjIjf6f6hUiNPgFCA4Ca6i
6rzaY9VnsHMtvjcDjZKXrdGRDLfeQxWT9JUMELrEKXyBJCGeJlfnhzNCo4d8CDML
pZTmOETQH8eAVLMg16C9WeznuFntELcVtdgq1w0naowPGHjjgJ+spGKcdBiNRWmx
b1VlkyLIrkaCooUstK3zT10BwhNYGq0CZmsQgEk7obWDnA4JuZ4g6C6CC67ouc8k
sB+IA95rbQCQmTuUCPgebhUdVwMHaHSw8X/GcTzvWFl10WfOGsZq40CR6cuMPvNI
v601fN2j6psdD1b9i8A/LeRPDdVLAEKq/xdJA7gZPWu+mgKvNFnUmb6nnDu+ZJvT
/Ky92AcH6OvC94sbR+Va09/VV92cDCDvgDOLcgXweUQ/nEVQw/qsbfic4VYnu5ZL
WKitBk+CnQmHGLpD8lSZkrr5JBQUt7jUbw2eaO3AHPw5qa2GXPTUHgakyCCh02db
OIg0Ct8qaqF4afDoGz8wl4Xfs/6tya9OIsKXnCIkE56nAESoignQR3DQD+pqiRtA
6jL38iexLsTtzorIPZxcZSBfliwnz7VUZT1oHKSFl+lBldH57K1Q2b0db8WBi+eH
sEb13s8i7uW9e7pfa97rDFYju53675aE9e6i9BijrdlhrrMyufA=
=5Nty
-----END PGP SIGNATURE-----


L
L
Ludovic Courtès wrote on 26 Jun 2017 21:56
(address . 27386@debbugs.gnu.org)
87podq7cae.fsf@gnu.org
ng0 <ng0@infotropique.org> skribis:

Toggle quote (25 lines)
> And this is from master running an offloading test as it is right now.
> Both ends have GuixSD.
>
> user@abyayala ~$ guix offload test
> guix offload: testing 1 build machines defined in '/usr/local/etc/guix/machines.scm'...
> guix offload: '192.168.1.179' is running guile (GNU Guile) 2.2.2
> Backtrace:
> 7 (primitive-load "/gnu/store/js4ml3w20ysh4znp9wl0da0ljji…")
> In guix/ui.scm:
> 1321:8 6 (run-guix-command _ . _)
> In ice-9/boot-9.scm:
> 837:9 5 (catch srfi-34 #<procedure 1cc6cc0 at guix/ui.scm:450:…> …)
> 837:9 4 (catch system-error #<procedure 1cc6ce0 at guix/script…> …)
> In guix/scripts/offload.scm:
> 611:6 3 (check-machine-availability _ _)
> In srfi/srfi-1.scm:
> 656:11 2 (for-each #<procedure assert-node-has-guix (node name)> …)
> In guix/scripts/offload.scm:
> 543:2 1 (assert-node-has-guix #<node user@192.168.1.179:22555/…> …)
> In ssh/dist/node.scm:
> 397:8 0 (node-eval #<node user@192.168.1.179:22555/37146 1ceaa…> …)
>
> ssh/dist/node.scm:397:8: In procedure node-eval:
> ssh/dist/node.scm:397:8: Throw to key `node-repl-error' with args `("Evaluation failed" "scheme@(guile-user)> While compiling expression:\nERROR: no code for module (guix)" ())'.

This means that you need to make sure that the target machine has (guix)
in its load path.

The test is to run something like:

$ ssh localhost env |grep GUILE_
GUILE_LOAD_COMPILED_PATH=/home/ludo/.guix-profile/lib/guile/2.2/site-ccache:/home/ludo/.guix-profile/share/guile/site/2.2:/run/current-system/profile/lib/guile/2.2/site-ccache:/run/current-system/profile/share/guile/site/2.2
GUILE_LOAD_PATH=/home/ludo/.guix-profile/share/guile/site/2.2:/run/current-system/profile/share/guile/site/2.2

and you should see /run/current-system/profile/share/guile/site/2.2. If
not, you’ll have to add it somehow.

(It’s unfortunate that setting up offloading remains error-prone, but
that’s a different story!).

HTH,
Ludo’.
N
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 27386@debbugs.gnu.org)
20170626211511.ox5smekycmqz2vc3@abyayala
Ludovic Courtès transcribed 2.1K bytes:
Toggle quote (30 lines)
> ng0 <ng0@infotropique.org> skribis:
>
> > And this is from master running an offloading test as it is right now.
> > Both ends have GuixSD.
> >
> > user@abyayala ~$ guix offload test
> > guix offload: testing 1 build machines defined in '/usr/local/etc/guix/machines.scm'...
> > guix offload: '192.168.1.179' is running guile (GNU Guile) 2.2.2
> > Backtrace:
> > 7 (primitive-load "/gnu/store/js4ml3w20ysh4znp9wl0da0ljji…")
> > In guix/ui.scm:
> > 1321:8 6 (run-guix-command _ . _)
> > In ice-9/boot-9.scm:
> > 837:9 5 (catch srfi-34 #<procedure 1cc6cc0 at guix/ui.scm:450:…> …)
> > 837:9 4 (catch system-error #<procedure 1cc6ce0 at guix/script…> …)
> > In guix/scripts/offload.scm:
> > 611:6 3 (check-machine-availability _ _)
> > In srfi/srfi-1.scm:
> > 656:11 2 (for-each #<procedure assert-node-has-guix (node name)> …)
> > In guix/scripts/offload.scm:
> > 543:2 1 (assert-node-has-guix #<node user@192.168.1.179:22555/…> …)
> > In ssh/dist/node.scm:
> > 397:8 0 (node-eval #<node user@192.168.1.179:22555/37146 1ceaa…> …)
> >
> > ssh/dist/node.scm:397:8: In procedure node-eval:
> > ssh/dist/node.scm:397:8: Throw to key `node-repl-error' with args `("Evaluation failed" "scheme@(guile-user)> While compiling expression:\nERROR: no code for module (guix)" ())'.
>
> This means that you need to make sure that the target machine has (guix)
> in its load path.

I assume that you have read the rest of my messages and not just skipped
through them. I thought my messages were clear that (guix) is in the
loadpath, but only *locally* on the machine, not when connecting to it
via ssh. It can be in my users loadpath, but the ssh environment is
different. Comparable to how you only get scp when you put
openssh into the global (packages) and this is also mentioned nowhere.

In other words: What you get in the loadpath when you are a local user,
logged in, differs from what you get in the loadpath when you want to
get the loadpath directly from an command run through ssh connection.

So I'm guessing here: the not so obvious yet very obvious solution is to
put guix into the global (packages)?
Where global means the canonical /etc/config.scm

Toggle quote (15 lines)
> The test is to run something like:
>
> $ ssh localhost env |grep GUILE_
> GUILE_LOAD_COMPILED_PATH=/home/ludo/.guix-profile/lib/guile/2.2/site-ccache:/home/ludo/.guix-profile/share/guile/site/2.2:/run/current-system/profile/lib/guile/2.2/site-ccache:/run/current-system/profile/share/guile/site/2.2
> GUILE_LOAD_PATH=/home/ludo/.guix-profile/share/guile/site/2.2:/run/current-system/profile/share/guile/site/2.2
>
> and you should see /run/current-system/profile/share/guile/site/2.2. If
> not, you’ll have to add it somehow.
>
> (It’s unfortunate that setting up offloading remains error-prone, but
> that’s a different story!).
>
> HTH,
> Ludo’.

--
ng0
OpenPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
personal: https://ng-0.github.iohttps://krosos.org/
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEqIyK3RKYKNfqwC5S4i+bv+40hYgFAllReV8ACgkQ4i+bv+40
hYiKlw/+Kf3cOLDVl0vVUFgt5LZRJRc4Hn8JJ6WtzPG0xY76ru8AB1YL0cWj6h7U
yOJSpa0p6o+hs1zzG6BDYnXAg1+LKrLrPUn9cb4mxJoECPdSS7+SfEn1YB+W4sv8
ZpA2y5CTMpMEGGkvvJ2NW+JKih5f35MbUVTFluhlzBImH1uWjecs0GvQ8YxYPb7M
Dbqzu+C3o79IAIeHx8hUsznta/3ZfMBl4SB4yAa1NNd/VfQlkc1YxtNh+FeR5FIT
kWQgWDAoAyskKaGnSB8mafT68+VwuqpPFtCQ/+if/D+IshpWNNqkb76hL6gVI/qX
jHMV1yGOdiZ6EK2iCqi4K3YUbUr66hnXGyhAheL97Wy3uy1q9+doGWgOXeLrshyF
uNKynwaVXWSphzpE1oqtcJkIfHIz+b5TOhsx3dMYVtMSGJlRI6YNrc32xvziL7BM
Km4aLOfZQSaK6/i92X9VcoOWnIi9Sd85cefXwRkiidKaH9ms4pJirOfNYcEyXL8S
U13/T0HzUA5ycHiLbYaKmdEOPTm1UdlO7P1Z6E/W+zAm02pIhKtdB4QUI60K7wcF
uHll4apbBoSAbbqhJWRAQyD9Llara8AueTiEHuf9Ms4AafvMh2D4pGfZ98Cya16u
BsfxoixEtNVlQdPrf9S2w/fE069vw+mhy4hfDJOtUBEPqRPmtf8=
=ctjI
-----END PGP SIGNATURE-----


L
L
Ludovic Courtès wrote on 27 Jun 2017 15:39
(address . 27386@debbugs.gnu.org)
87injh5z3h.fsf@gnu.org
ng0 <ng0@infotropique.org> skribis:

Toggle quote (36 lines)
> Ludovic Courtès transcribed 2.1K bytes:
>> ng0 <ng0@infotropique.org> skribis:
>>
>> > And this is from master running an offloading test as it is right now.
>> > Both ends have GuixSD.
>> >
>> > user@abyayala ~$ guix offload test
>> > guix offload: testing 1 build machines defined in '/usr/local/etc/guix/machines.scm'...
>> > guix offload: '192.168.1.179' is running guile (GNU Guile) 2.2.2
>> > Backtrace:
>> > 7 (primitive-load "/gnu/store/js4ml3w20ysh4znp9wl0da0ljji…")
>> > In guix/ui.scm:
>> > 1321:8 6 (run-guix-command _ . _)
>> > In ice-9/boot-9.scm:
>> > 837:9 5 (catch srfi-34 #<procedure 1cc6cc0 at guix/ui.scm:450:…> …)
>> > 837:9 4 (catch system-error #<procedure 1cc6ce0 at guix/script…> …)
>> > In guix/scripts/offload.scm:
>> > 611:6 3 (check-machine-availability _ _)
>> > In srfi/srfi-1.scm:
>> > 656:11 2 (for-each #<procedure assert-node-has-guix (node name)> …)
>> > In guix/scripts/offload.scm:
>> > 543:2 1 (assert-node-has-guix #<node user@192.168.1.179:22555/…> …)
>> > In ssh/dist/node.scm:
>> > 397:8 0 (node-eval #<node user@192.168.1.179:22555/37146 1ceaa…> …)
>> >
>> > ssh/dist/node.scm:397:8: In procedure node-eval:
>> > ssh/dist/node.scm:397:8: Throw to key `node-repl-error' with args `("Evaluation failed" "scheme@(guile-user)> While compiling expression:\nERROR: no code for module (guix)" ())'.
>>
>> This means that you need to make sure that the target machine has (guix)
>> in its load path.
>
> I assume that you have read the rest of my messages and not just skipped
> through them. I thought my messages were clear that (guix) is in the
> loadpath, but only *locally* on the machine, not when connecting to it
> via ssh.

Right, this is why I suggested testing that *with a non-interactive
connection*, as in:

ssh HOST env | grep GUILE

Toggle quote (4 lines)
> So I'm guessing here: the not so obvious yet very obvious solution is to
> put guix into the global (packages)?
> Where global means the canonical /etc/config.scm

On GuixSD, Guix is always in the global profile.

Toggle quote (9 lines)
>> The test is to run something like:
>>
>> $ ssh localhost env |grep GUILE_
>> GUILE_LOAD_COMPILED_PATH=/home/ludo/.guix-profile/lib/guile/2.2/site-ccache:/home/ludo/.guix-profile/share/guile/site/2.2:/run/current-system/profile/lib/guile/2.2/site-ccache:/run/current-system/profile/share/guile/site/2.2
>> GUILE_LOAD_PATH=/home/ludo/.guix-profile/share/guile/site/2.2:/run/current-system/profile/share/guile/site/2.2
>>
>> and you should see /run/current-system/profile/share/guile/site/2.2. If
>> not, you’ll have to add it somehow.

What does the above give for you?

HTH,
Ludo’.
N
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 27386@debbugs.gnu.org)
20170627145418.iq54zrhfzbr7vdtn@abyayala
Ludovic Courtès transcribed 2.8K bytes:
Toggle quote (63 lines)
> ng0 <ng0@infotropique.org> skribis:
>
> > Ludovic Courtès transcribed 2.1K bytes:
> >> ng0 <ng0@infotropique.org> skribis:
> >>
> >> > And this is from master running an offloading test as it is right now.
> >> > Both ends have GuixSD.
> >> >
> >> > user@abyayala ~$ guix offload test
> >> > guix offload: testing 1 build machines defined in '/usr/local/etc/guix/machines.scm'...
> >> > guix offload: '192.168.1.179' is running guile (GNU Guile) 2.2.2
> >> > Backtrace:
> >> > 7 (primitive-load "/gnu/store/js4ml3w20ysh4znp9wl0da0ljji…")
> >> > In guix/ui.scm:
> >> > 1321:8 6 (run-guix-command _ . _)
> >> > In ice-9/boot-9.scm:
> >> > 837:9 5 (catch srfi-34 #<procedure 1cc6cc0 at guix/ui.scm:450:…> …)
> >> > 837:9 4 (catch system-error #<procedure 1cc6ce0 at guix/script…> …)
> >> > In guix/scripts/offload.scm:
> >> > 611:6 3 (check-machine-availability _ _)
> >> > In srfi/srfi-1.scm:
> >> > 656:11 2 (for-each #<procedure assert-node-has-guix (node name)> …)
> >> > In guix/scripts/offload.scm:
> >> > 543:2 1 (assert-node-has-guix #<node user@192.168.1.179:22555/…> …)
> >> > In ssh/dist/node.scm:
> >> > 397:8 0 (node-eval #<node user@192.168.1.179:22555/37146 1ceaa…> …)
> >> >
> >> > ssh/dist/node.scm:397:8: In procedure node-eval:
> >> > ssh/dist/node.scm:397:8: Throw to key `node-repl-error' with args `("Evaluation failed" "scheme@(guile-user)> While compiling expression:\nERROR: no code for module (guix)" ())'.
> >>
> >> This means that you need to make sure that the target machine has (guix)
> >> in its load path.
> >
> > I assume that you have read the rest of my messages and not just skipped
> > through them. I thought my messages were clear that (guix) is in the
> > loadpath, but only *locally* on the machine, not when connecting to it
> > via ssh.
>
> Right, this is why I suggested testing that *with a non-interactive
> connection*, as in:
>
> ssh HOST env | grep GUILE
>
> > So I'm guessing here: the not so obvious yet very obvious solution is to
> > put guix into the global (packages)?
> > Where global means the canonical /etc/config.scm
>
> On GuixSD, Guix is always in the global profile.
>
> >> The test is to run something like:
> >>
> >> $ ssh localhost env |grep GUILE_
> >> GUILE_LOAD_COMPILED_PATH=/home/ludo/.guix-profile/lib/guile/2.2/site-ccache:/home/ludo/.guix-profile/share/guile/site/2.2:/run/current-system/profile/lib/guile/2.2/site-ccache:/run/current-system/profile/share/guile/site/2.2
> >> GUILE_LOAD_PATH=/home/ludo/.guix-profile/share/guile/site/2.2:/run/current-system/profile/share/guile/site/2.2
> >>
> >> and you should see /run/current-system/profile/share/guile/site/2.2. If
> >> not, you’ll have to add it somehow.
>
> What does the above give for you?
>
> HTH,
> Ludo’.

This is issued from computer A (abyayala) to computer B (shadownet).

user@abyayala ~$ ssh shadownet env |grep GUILE_
GUILE_LOAD_COMPILED_PATH=/gnu/store/m91mxi586pi2qshzys9zfsmzij8nf547-profile/lib/guile/2.2/site-ccache:/gnu/store/m91mxi586pi2qshzys9zfsmzij8nf547-profile/share/guile/site/2.2
GUILE_LOAD_PATH=/gnu/store/m91mxi586pi2qshzys9zfsmzij8nf547-profile/share/guile/site/2.2

I would have to put some ssh private keys on there or
configure sshd in a different way to issue this locally
on computer B.
--
ng0
OpenPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
personal: https://ng-0.github.iohttps://krosos.org/
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEqIyK3RKYKNfqwC5S4i+bv+40hYgFAllScZoACgkQ4i+bv+40
hYjHrA/+NwYtxS9I8hZMXNkbcrr8fMMzBt6a1vjyfEi0XDfpzGqCV6X8BRCJCHjL
NaxJtZDl543BNJEUv6/+A6i21zVMhkB6dWwo6uUvLfKhKg9YUkQ2sRbCWFpLaEFu
jhOTgm9/vSRq5SZr4E7/xfBqKXciCRCUQjfdO281rz/llAhDs2AVET81B62vlj3g
L5yhRHNdFPM7kmy9N3W7FFmnl29X0j1BzcW/Y19OsqHVBBnC+/69gQ098FXPZ/Ix
74SWsmmnP8l4q+vbqvT5/OT2UX+nGGWNCL9wGhMr79Q10xW+wEPFhAX3sfpecbXJ
MSP3d2lGzBPru1I594jOnAj7xaHJGKl60JnNSXc4V3QwaTsFBKRyOmQT3desKlTq
idl67o05r8aNcyIBCtvyWnq8W/taifrD0Zyrl7t8l8LmjpR0b0rRgUAXKla9RctW
ouG4lKn6+Qe7ZFXDzYTll4dr2xOByZoxDUjuYCaxsc9gY4gh6x7Fc/BLk8fYGWuS
YeMY2iV6RO/owA+9z2+Vdsj4i5dNe58piZUFd+PGH9kPpSJ7BEGmlJXmJsJ7oVQM
CP/9wEMJeRqJRqKz79/knjmlMepcaa3npBQCT2ZE4kXrqMcrmy99JvdvoU/Cpb0t
aqWLufRlu7Ug48XxIyYooOiYeWp0Zwx8XBNqzLToQjcFcskdVTU=
=J4E+
-----END PGP SIGNATURE-----


L
L
Ludovic Courtès wrote on 27 Jun 2017 21:38
(address . 27386@debbugs.gnu.org)
87d19p43wg.fsf@gnu.org
ng0 <ng0@infotropique.org> skribis:

Toggle quote (2 lines)
> Ludovic Courtès transcribed 2.8K bytes:

[...]

Toggle quote (20 lines)
>> >> The test is to run something like:
>> >>
>> >> $ ssh localhost env |grep GUILE_
>> >> GUILE_LOAD_COMPILED_PATH=/home/ludo/.guix-profile/lib/guile/2.2/site-ccache:/home/ludo/.guix-profile/share/guile/site/2.2:/run/current-system/profile/lib/guile/2.2/site-ccache:/run/current-system/profile/share/guile/site/2.2
>> >> GUILE_LOAD_PATH=/home/ludo/.guix-profile/share/guile/site/2.2:/run/current-system/profile/share/guile/site/2.2
>> >>
>> >> and you should see /run/current-system/profile/share/guile/site/2.2. If
>> >> not, you’ll have to add it somehow.
>>
>> What does the above give for you?
>>
>> HTH,
>> Ludo’.
>
> This is issued from computer A (abyayala) to computer B (shadownet).
>
> user@abyayala ~$ ssh shadownet env |grep GUILE_
> GUILE_LOAD_COMPILED_PATH=/gnu/store/m91mxi586pi2qshzys9zfsmzij8nf547-profile/lib/guile/2.2/site-ccache:/gnu/store/m91mxi586pi2qshzys9zfsmzij8nf547-profile/share/guile/site/2.2
> GUILE_LOAD_PATH=/gnu/store/m91mxi586pi2qshzys9zfsmzij8nf547-profile/share/guile/site/2.2

The problem here is that
/run/current-system/profile/share/guile/site/2.2, which is where the
Guix modules are on GuixSD as I wrote above, is missing from the search
path.

The session started when you run “ssh shadownet env” does not spawn a
login shell; thus ~/.profile and similar are *not* sourced. I’m using
Bash, so on my accounts, I have this in .bashrc (‘.bashrc’ is for
non-login shells):

Toggle snippet (10 lines)
if [ -n "$SSH_CLIENT" -a -z "`type -P cat`" ]
then
# We are being invoked from a non-interactive SSH session
# (as in "ssh host command") but 'cat' cannot be found
# in $PATH. Source /etc/profile so we get $PATH and other
# essential variables.
source /etc/profile
fi

That way, “ssh HOST COMMAND” effectively gets the same environment as a
login shell.

If you’re using a different shell, then make sure its startup file does
something similar.

HTH!

Ludo’.
N
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 27386@debbugs.gnu.org)
20170627203136.rvl4dr6d3byzjein@abyayala
Ludovic Courtès transcribed 2.2K bytes:
Toggle quote (34 lines)
> ng0 <ng0@infotropique.org> skribis:
>
> > Ludovic Courtès transcribed 2.8K bytes:
>
> [...]
>
> >> >> The test is to run something like:
> >> >>
> >> >> $ ssh localhost env |grep GUILE_
> >> >> GUILE_LOAD_COMPILED_PATH=/home/ludo/.guix-profile/lib/guile/2.2/site-ccache:/home/ludo/.guix-profile/share/guile/site/2.2:/run/current-system/profile/lib/guile/2.2/site-ccache:/run/current-system/profile/share/guile/site/2.2
> >> >> GUILE_LOAD_PATH=/home/ludo/.guix-profile/share/guile/site/2.2:/run/current-system/profile/share/guile/site/2.2
> >> >>
> >> >> and you should see /run/current-system/profile/share/guile/site/2.2. If
> >> >> not, you’ll have to add it somehow.
> >>
> >> What does the above give for you?
> >>
> >> HTH,
> >> Ludo’.
> >
> > This is issued from computer A (abyayala) to computer B (shadownet).
> >
> > user@abyayala ~$ ssh shadownet env |grep GUILE_
> > GUILE_LOAD_COMPILED_PATH=/gnu/store/m91mxi586pi2qshzys9zfsmzij8nf547-profile/lib/guile/2.2/site-ccache:/gnu/store/m91mxi586pi2qshzys9zfsmzij8nf547-profile/share/guile/site/2.2
> > GUILE_LOAD_PATH=/gnu/store/m91mxi586pi2qshzys9zfsmzij8nf547-profile/share/guile/site/2.2
>
> The problem here is that
> /run/current-system/profile/share/guile/site/2.2, which is where the
> Guix modules are on GuixSD as I wrote above, is missing from the search
> path.
>
> The session started when you run “ssh shadownet env” does not spawn a
> login shell; thus ~/.profile and similar are *not* sourced. I’m using

I was aware of this, but I thought we had (guix) available nevertheless
and I was just pushing the wrong buttons.

Toggle quote (17 lines)
> Bash, so on my accounts, I have this in .bashrc (‘.bashrc’ is for
> non-login shells):
>
> --8<---------------cut here---------------start------------->8---
> if [ -n "$SSH_CLIENT" -a -z "`type -P cat`" ]
> then
> # We are being invoked from a non-interactive SSH session
> # (as in "ssh host command") but 'cat' cannot be found
> # in $PATH. Source /etc/profile so we get $PATH and other
> # essential variables.
> source /etc/profile
> fi
> --8<---------------cut here---------------end--------------->8---
>
> That way, “ssh HOST COMMAND” effectively gets the same environment as a
> login shell.

I use the same on this computer, but at the end of it I source some
files, among them ~/.guix-profile/etc/profile

I would guess that sourcing ~/.guix-profile/etc/profile gets into
the way and that moving this to .bash_profile could fix the issue.

What do you think?

Toggle quote (11 lines)
> If you’re using a different shell, then make sure its startup file does
> something similar.
>
> HTH!
>
> Ludo’.
>
>
>
>

--
ng0
OpenPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
personal: https://ng-0.github.iohttps://krosos.org/
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEqIyK3RKYKNfqwC5S4i+bv+40hYgFAllSwKgACgkQ4i+bv+40
hYgFKQ//SyejsHknQ9Zx0vHdYB1Qj3Hwhm4fLv++J/x7nzRNRY24gfwSeZ9BJx+l
3i42Vs8kKkLPCYXDais8F7YgiaoGOqU173iR4zONedDnx8tmQbj8MM8fe4dnXT8C
58Bt0JUxZ9NCVuH25oqj6MEBxDPsU1tbScKwZyMsoGBpy20HZjF/OSF5XucVBFWT
yNrM8z9JPZdUhAnh5f5xP0sT+UBaJXMbY8fC+S/BcA8ChPfwvoTzLo/DznCoyasK
EJ8U6UWTQ9aztEvoTSti+lck+5n4OWAaI5ZqeZuE6nVhzZEFy/Zdkgx1Ic0um/i7
/Jk2/U0HuNV6M2t/OFHyAI1PWPx3qCioHS0n1SCajAgVb6djl1AGSntXem36WZpo
RMTU5UhzSjW1dzfLJC+fGHf3uMwCcRG4SRCB8LZMoyK1X9BEQCM9iDVnfKtkPuJn
zseZ9neTSVUcamFvlCjDNqmkx0oMPesnaLihp2Z93ZBabXdBQhbfMy4//sWUyjhc
IEN0TmGzxIR5ihO+mLA0LOB+JKkaGzCQuvYhK00OO+NQ9AXRzm3AGcqQPjvpVWt0
J7CJEYZOIFVVHTRHbcX/pI4tWMEplOWJtfHFqa/6D6zLQRy0wH/dPKIs+u1AQHE/
Ok+am6ttHZ4QSMcIic0Q7NFLqJ2neKJ2pVXWn8MW7IOfjAodiKo=
=I9Bz
-----END PGP SIGNATURE-----


L
L
Ludovic Courtès wrote on 28 Jun 2017 10:31
(address . 27386@debbugs.gnu.org)
8737ak1pji.fsf@gnu.org
ng0 <ng0@infotropique.org> skribis:

Toggle quote (5 lines)
> Ludovic Courtès transcribed 2.2K bytes:
>> ng0 <ng0@infotropique.org> skribis:
>>
>> > Ludovic Courtès transcribed 2.8K bytes:

[...]

Toggle quote (36 lines)
>> The problem here is that
>> /run/current-system/profile/share/guile/site/2.2, which is where the
>> Guix modules are on GuixSD as I wrote above, is missing from the search
>> path.
>>
>> The session started when you run “ssh shadownet env” does not spawn a
>> login shell; thus ~/.profile and similar are *not* sourced. I’m using
>
> I was aware of this, but I thought we had (guix) available nevertheless
> and I was just pushing the wrong buttons.
>
>> Bash, so on my accounts, I have this in .bashrc (‘.bashrc’ is for
>> non-login shells):
>>
>> --8<---------------cut here---------------start------------->8---
>> if [ -n "$SSH_CLIENT" -a -z "`type -P cat`" ]
>> then
>> # We are being invoked from a non-interactive SSH session
>> # (as in "ssh host command") but 'cat' cannot be found
>> # in $PATH. Source /etc/profile so we get $PATH and other
>> # essential variables.
>> source /etc/profile
>> fi
>> --8<---------------cut here---------------end--------------->8---
>>
>> That way, “ssh HOST COMMAND” effectively gets the same environment as a
>> login shell.
>
> I use the same on this computer, but at the end of it I source some
> files, among them ~/.guix-profile/etc/profile
>
> I would guess that sourcing ~/.guix-profile/etc/profile gets into
> the way and that moving this to .bash_profile could fix the issue.
>
> What do you think?

~/.guix-profile/etc/profile won't add /run/current-system/… to the
search path. You really need to source /etc/profile, which in turn will
source ~/.guix-profile/etc/profile (on GuixSD).

HTH,
Ludo’.
N
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 27386@debbugs.gnu.org)
20170628114530.ca43xv4guqoa4mtv@abyayala
Ludovic Courtès transcribed 1.8K bytes:
Toggle quote (52 lines)
> ng0 <ng0@infotropique.org> skribis:
>
> > Ludovic Courtès transcribed 2.2K bytes:
> >> ng0 <ng0@infotropique.org> skribis:
> >>
> >> > Ludovic Courtès transcribed 2.8K bytes:
>
> [...]
>
> >> The problem here is that
> >> /run/current-system/profile/share/guile/site/2.2, which is where the
> >> Guix modules are on GuixSD as I wrote above, is missing from the search
> >> path.
> >>
> >> The session started when you run “ssh shadownet env” does not spawn a
> >> login shell; thus ~/.profile and similar are *not* sourced. I’m using
> >
> > I was aware of this, but I thought we had (guix) available nevertheless
> > and I was just pushing the wrong buttons.
> >
> >> Bash, so on my accounts, I have this in .bashrc (‘.bashrc’ is for
> >> non-login shells):
> >>
> >> --8<---------------cut here---------------start------------->8---
> >> if [ -n "$SSH_CLIENT" -a -z "`type -P cat`" ]
> >> then
> >> # We are being invoked from a non-interactive SSH session
> >> # (as in "ssh host command") but 'cat' cannot be found
> >> # in $PATH. Source /etc/profile so we get $PATH and other
> >> # essential variables.
> >> source /etc/profile
> >> fi
> >> --8<---------------cut here---------------end--------------->8---
> >>
> >> That way, “ssh HOST COMMAND” effectively gets the same environment as a
> >> login shell.
> >
> > I use the same on this computer, but at the end of it I source some
> > files, among them ~/.guix-profile/etc/profile
> >
> > I would guess that sourcing ~/.guix-profile/etc/profile gets into
> > the way and that moving this to .bash_profile could fix the issue.
> >
> > What do you think?
>
> ~/.guix-profile/etc/profile won't add /run/current-system/… to the
> search path. You really need to source /etc/profile, which in turn will
> source ~/.guix-profile/etc/profile (on GuixSD).
>
> HTH,
> Ludo’.

I think the method as described never really worked.

When I do as you (and the manual) suggested, I no longer
have any results for ssh host env | grep "GUILE_".

When I extend it like this it works. I include the full
paste to show that previously I had the sourcing of /etc/profile
in it:

user@shadownet ~$ cat .bashrc
# Bash initialization for interactive non-login shells and
# for remote shells (info "(bash) Bash Startup Files").

# Export 'SHELL' to child processes. Programs such as 'screen'
# honor it and otherwise use /bin/sh.
export SHELL

if [ -n "$SSH_CLIENT" -a -z "`type -P cat`" ]
then
# We are being invoked from a non-interactive SSH session
# (as in "ssh host command") but 'cat' cannot be found
# in $PATH. Source /etc/profile so we get $PATH and other
# essential variables.
source /etc/profile
fi

# Adjust the prompt depending on whether we're in 'guix environment'.
if [ -n "$GUIX_ENVIRONMENT" ]
then
PS1='\u@\h \w [env]\$ '
else
PS1='\u@\h \w\$ '
fi
source ~/.guix-profile/etc/profile
alias ls='ls -p --color'
alias ll='ls -l'
GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH}:/run/current-system/profile/lib/guile/2.2/site-ccache:/run/current-system/profile/share/guile/site/2.2"
GUILE_LOAD_PATH="${GUILE_LOAD_PATH}:/run/current-system/profile/share/guile/site/2.2"


I suggest that we fix the offloading documentation.
If questions are asked (I'm not the first) there are obviously problems
with how it is written.
If no one else takes on this, I will.
--
ng0
GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEqIyK3RKYKNfqwC5S4i+bv+40hYgFAllTltoACgkQ4i+bv+40
hYi8ng//Sp8/kXfayBkZJE5TtJG47ThuqA+ndeuk049qTk/glo3ntIcCdqU4ONpc
MckOdzR/0QAkppk2jMloOJvvIhysx/5TsniyDwFIaWonOQKxuAQe0J/tdGqbVXCM
n+M4+SsOVqYIpG+/hHBGokNEReOjmnMGhFPDlME0l2w14lv7nN5HlQXHH5QAvBcz
++BQ+tMCYrez8MGftdGJYA5BH8XfkJnMoGkvtKxnI3YOnQgapg7mq31sSkAEqA7S
35X7Ed41rnVeVC6RF4B8XNN1mOYB5Rw2oOLcC3yh3dgh+iP+SD3wGet71WoRDnq0
Is7UACjg8unHinXxuxHaQ6IiRfRyTjEvTrPzW2De6IG4oURqs+fo9udH6wv/Hnt4
eTEzWey5uI+n5rhFGTfv3T+akfuC2C1cRx3p/hXlggJ5Mp6nD3273ND+DH5RVP4c
99OY6UKJdvLPcOqOH/jkNB9n1Sas+dA3M2DDaLlJZW6xkYrlSPUdDjbG3x9+3s++
sLDCdMDI7TyRbnQKkC7a0Vpc4APTSBRA7vM9cAS1hC/2cqhboNa8Bxp9WYHI7aXK
jalLaIryzS4l4eziLfLbpHKVc6OSWqgxXD3GC8pu3J78+sSwQ+y+17jPQrsOo5dr
0a2oxXVhEey4L/YofufjG7NDt+5tZfNTm+eD7xhk0p0Tkrsz95c=
=7iiB
-----END PGP SIGNATURE-----


L
L
Ludovic Courtès wrote on 28 Jun 2017 23:46
(address . 27386@debbugs.gnu.org)
87k23vzsyb.fsf@gnu.org
ng0 <ng0@infotropique.org> skribis:

Toggle quote (39 lines)
> I think the method as described never really worked.
>
> When I do as you (and the manual) suggested, I no longer
> have any results for ssh host env | grep "GUILE_".
>
> When I extend it like this it works. I include the full
> paste to show that previously I had the sourcing of /etc/profile
> in it:
>
> user@shadownet ~$ cat .bashrc
> # Bash initialization for interactive non-login shells and
> # for remote shells (info "(bash) Bash Startup Files").
>
> # Export 'SHELL' to child processes. Programs such as 'screen'
> # honor it and otherwise use /bin/sh.
> export SHELL
>
> if [ -n "$SSH_CLIENT" -a -z "`type -P cat`" ]
> then
> # We are being invoked from a non-interactive SSH session
> # (as in "ssh host command") but 'cat' cannot be found
> # in $PATH. Source /etc/profile so we get $PATH and other
> # essential variables.
> source /etc/profile
> fi
>
> # Adjust the prompt depending on whether we're in 'guix environment'.
> if [ -n "$GUIX_ENVIRONMENT" ]
> then
> PS1='\u@\h \w [env]\$ '
> else
> PS1='\u@\h \w\$ '
> fi
> source ~/.guix-profile/etc/profile
> alias ls='ls -p --color'
> alias ll='ls -l'
> GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH}:/run/current-system/profile/lib/guile/2.2/site-ccache:/run/current-system/profile/share/guile/site/2.2"
> GUILE_LOAD_PATH="${GUILE_LOAD_PATH}:/run/current-system/profile/share/guile/site/2.2"

The difference compared to /etc/skel/.bashrc is the last two lines,
right?

On my GuixSD installation they’re not needed because /etc/profile
sources /run/current-system/profile/etc/profile, which already defines
these two variables.

But maybe your global profile is slightly different from mine, which
would explain this. FWIW I have:

Toggle snippet (5 lines)
$ guix package -I gui -p /run/current-system/profile
guix 0.13.0-2.de9d8f0 out /gnu/store/js4ml3w20ysh4znp9wl0da0ljji4kisl-guix-0.13.0-2.de9d8f0
guile 2.2.2 out /gnu/store/5zx29y44nrqj0s8h3jlvlj82k8hj4dxs-guile-2.2.2

Anyway, if you have ideas on how to improve the doc, they’re welcome.

Thanks for your feedback!

Ludo’.
N
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 27386@debbugs.gnu.org)
20170628223636.h3k24txegftwmlmk@abyayala
Ludovic Courtès transcribed 2.2K bytes:
Toggle quote (44 lines)
> ng0 <ng0@infotropique.org> skribis:
>
> > I think the method as described never really worked.
> >
> > When I do as you (and the manual) suggested, I no longer
> > have any results for ssh host env | grep "GUILE_".
> >
> > When I extend it like this it works. I include the full
> > paste to show that previously I had the sourcing of /etc/profile
> > in it:
> >
> > user@shadownet ~$ cat .bashrc
> > # Bash initialization for interactive non-login shells and
> > # for remote shells (info "(bash) Bash Startup Files").
> >
> > # Export 'SHELL' to child processes. Programs such as 'screen'
> > # honor it and otherwise use /bin/sh.
> > export SHELL
> >
> > if [ -n "$SSH_CLIENT" -a -z "`type -P cat`" ]
> > then
> > # We are being invoked from a non-interactive SSH session
> > # (as in "ssh host command") but 'cat' cannot be found
> > # in $PATH. Source /etc/profile so we get $PATH and other
> > # essential variables.
> > source /etc/profile
> > fi
> >
> > # Adjust the prompt depending on whether we're in 'guix environment'.
> > if [ -n "$GUIX_ENVIRONMENT" ]
> > then
> > PS1='\u@\h \w [env]\$ '
> > else
> > PS1='\u@\h \w\$ '
> > fi
> > source ~/.guix-profile/etc/profile
> > alias ls='ls -p --color'
> > alias ll='ls -l'
> > GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH}:/run/current-system/profile/lib/guile/2.2/site-ccache:/run/current-system/profile/share/guile/site/2.2"
> > GUILE_LOAD_PATH="${GUILE_LOAD_PATH}:/run/current-system/profile/share/guile/site/2.2"
>
> The difference compared to /etc/skel/.bashrc is the last two lines,
> right?

Yes. And that I source ~/.guix-profile/etc/profile before those lines.

Toggle quote (4 lines)
> On my GuixSD installation they’re not needed because /etc/profile
> sources /run/current-system/profile/etc/profile, which already defines
> these two variables.

Well this file is the same on both systems involved:

user@abyayala ~$ cat /etc/profile
# Crucial variables that could be missing in the profiles' 'etc/profile'
# because they would require combining both profiles.
export MANPATH=$HOME/.guix-profile/share/man:/run/current-system/profile/share/man
export INFOPATH=$HOME/.guix-profile/share/info:/run/current-system/profile/share/info
export XDG_DATA_DIRS=$HOME/.guix-profile/share:/run/current-system/profile/share
export XDG_CONFIG_DIRS=$HOME/.guix-profile/etc/xdg:/run/current-system/profile/etc/xdg

# Ignore the default value of 'PATH'.
unset PATH

# Load the system profile's settings.
GUIX_PROFILE=/run/current-system/profile \
. /run/current-system/profile/etc/profile

# Prepend setuid programs.
export PATH=/run/setuid-programs:$PATH

# Since 'lshd' does not use pam_env, /etc/environment must be explicitly
# loaded when someone logs in via SSH. See http://bugs.gnu.org/22175.
# We need 'PATH' to be defined here, for 'cat' and 'cut'. Do this before
# reading the user's 'etc/profile' to allow variables to be overridden.
if [ -f /etc/environment -a -n "$SSH_CLIENT" \
-a -z "$LINUX_MODULE_DIRECTORY" ]
then
. /etc/environment
export `cat /etc/environment | cut -d= -f1`
fi

if [ -f "$HOME/.guix-profile/etc/profile" ]
then
# Load the user profile's settings.
GUIX_PROFILE="$HOME/.guix-profile" \
. "$HOME/.guix-profile/etc/profile"
else
# At least define this one so that basic things just work
# when the user installs their first package.
export PATH="$HOME/.guix-profile/bin:$PATH"
fi

# Set the umask, notably for users logging in via 'lsh'.
umask 022

# Allow GStreamer-based applications to find plugins.
export GST_PLUGIN_PATH="$HOME/.guix-profile/lib/gstreamer-1.0"

if [ -n "$BASH_VERSION" -a -f /etc/bashrc ]
then
# Load Bash-specific initialization code.
. /etc/bashrc
fi


Toggle quote (9 lines)
> But maybe your global profile is slightly different from mine, which
> would explain this. FWIW I have:
>
> --8<---------------cut here---------------start------------->8---
> $ guix package -I gui -p /run/current-system/profile
> guix 0.13.0-2.de9d8f0 out /gnu/store/js4ml3w20ysh4znp9wl0da0ljji4kisl-guix-0.13.0-2.de9d8f0
> guile 2.2.2 out /gnu/store/5zx29y44nrqj0s8h3jlvlj82k8hj4dxs-guile-2.2.2
> --8<---------------cut here---------------end--------------->8---

user@shadownet ~$ guix package -I gui -p /run/current-system/profile
guix 0.13.0-2.de9d8f0 out /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0
guile 2.2.2 out /gnu/store/1pzfigry5bnh3n146w0ib77vkd2g6jdc-guile-2.2.2

So it is not different.

Toggle quote (5 lines)
> Anyway, if you have ideas on how to improve the doc, they’re welcome.
>
> Thanks for your feedback!
>
> Ludo’.
--
ng0
GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEqIyK3RKYKNfqwC5S4i+bv+40hYgFAllUL3QACgkQ4i+bv+40
hYjs8RAAusuOZpAxFjuxPgCoQ94f7JJDUQGexjvFYcsQimGRB4bVOt9rjDO3LNXm
PiL4o6t+bJw/cp9TEbaz/Z83IG/dyt4tp9LGnTKyaCIaaT0QsKe3UfJfdruk4BKK
YI23aQsx5+uHexONTdvZScs4jLjmMmKXBXrkvlHwPhEwyho/TPLuc05Dru32B/0D
qndmBk1yXUdVefrK+kVrArRHf6LAzI0ofs47HDAPRF/pdYCjTjFi1+cOs/6ifXM3
YPFtzhxRveZpyqU/tikcUYXH1byCXqce8tVcJ+QBtdloJjLM5f1mWhP3FGjZjkaX
fiDfg2GTjOLwvuxzVfrpFOhj+OeXzVyBHBfIAxm/KQUOLEqeXd5TL9yKQxYIam9h
XTb++wOpFJvzX3PdP+Xy1zKPtPZYqBV9U6eRIs8Y1qWu9jzR2JpObgx4tmqEiegO
BU3f68pgQmdbwYk0MWlnkbF+Uz9GFRxDSQnyG9CzVlr3r60Q8MD8wVmaUy6H4n+B
utII+cwHJxmnxzYhU0pefEHC8m55H+Jt7UEJE4ut1iLCpwZEklBtF/0jUPizkZTR
LNRBXxIw35CyqifmMLXVqBIUTHI/DI9IuJO6CCFdnBxrOOGeCQfcSjYpRPbGBh/y
oj/8ao8vhrWh3dv/6luZNHm1CAGWYMxqGqJN1cc7ToTUXh8iyBE=
=OFo/
-----END PGP SIGNATURE-----


L
L
Ludovic Courtès wrote on 29 Jun 2017 13:50
(address . 27386@debbugs.gnu.org)
87podnovvh.fsf@gnu.org
ng0 <ng0@infotropique.org> skribis:

Toggle quote (2 lines)
> Ludovic Courtès transcribed 2.2K bytes:

[...]

Toggle quote (16 lines)
>> > GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH}:/run/current-system/profile/lib/guile/2.2/site-ccache:/run/current-system/profile/share/guile/site/2.2"
>> > GUILE_LOAD_PATH="${GUILE_LOAD_PATH}:/run/current-system/profile/share/guile/site/2.2"
>>
>> The difference compared to /etc/skel/.bashrc is the last two lines,
>> right?
>
> Yes. And that I source ~/.guix-profile/etc/profile before those lines.
>
>> On my GuixSD installation they’re not needed because /etc/profile
>> sources /run/current-system/profile/etc/profile, which already defines
>> these two variables.
>
> Well this file is the same on both systems involved:
>
> user@abyayala ~$ cat /etc/profile

And does /run/current-system/profile/etc/profile define GUILE_LOAD_PATH?

Ludo'.
O
O
Oleg Pykhalov wrote on 4 Jul 2017 15:51
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 27386@debbugs.gnu.org)
87lgo41fan.fsf@clover.i-did-not-set--mail-host-address--so-tickle-me
Hi,

I'm trying to setup offloading too. Just for the report I had an issue
after setting up `%load-path` for guile with `.bashrc` snippet. It
seems that also required call `guix build` with `--substitute-urls=HOST`
because without it I get `acquired build slot` loop like in

~/.bashrc on magnolia.local
if [ -n "$SSH_CLIENT" -a "`type -P guile`" ]
then
source /etc/profile
fi

natsu@clover ~$ guix offload test
guix offload: testing 1 build machines defined in '/etc/guix/machines.scm'...
guix offload: 'magnolia.local' is running guile (GNU Guile) 2.2.2
guix offload: Guix is usable on 'magnolia.local' (test returned "/gnu/store/883yjkl46dxw9mzykykmbs0yzwyxm17z-test")
sending 1 store item to 'magnolia.local'...
exporting path `/gnu/store/j1xdys0rk60czdfv9riwykdh7iqdhszi-export-test'
guix offload: 'magnolia.local' successfully imported '/gnu/store/j1xdys0rk60czdfv9riwykdh7iqdhszi-export-test'
retrieving 1 store item from 'magnolia.local'...
guix offload: successfully imported '/gnu/store/ij4z815jpvrsmnf2awvmfw8w44vh7ndw-import-test' from 'magnolia.local'

natsu@clover ~$ guix build blender
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
waiting for locks or build slots...
process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
C-c C-c

natsu@clover ~$ ssh magnolia.local cat /proc/loadavg
0.03 0.01 0.00 1/186 2660

natsu@clover ~$ ssh magnolia.local guix package -I gui -p /run/current-system/profile
guile-ssh 0.11.0 out /gnu/store/pzhi01qhc19v5xzfgjbqybnbsd7inicx-guile-ssh-0.11.0
guix 0.13.0-2.de9d8f0 out /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0
guile 2.2.2 out /gnu/store/1pzfigry5bnh3n146w0ib77vkd2g6jdc-guile-2.2.2
emacs-guix 0.3.1 out /gnu/store/3ahyhf5fp6jvvln0xw0v1bjka1z6i69m-emacs-guix-0.3.1

natsu@clover ~$ guix build --substitute-urls='http://magnolia.local https://mirror.hydra.gnu.orghttps://hydra.gnu.org' blender
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'http://magnolia.local'... 100.0%
substitute: updating list of substitutes from 'http://magnolia.local'... 100.0%
substitute: updating list of substitutes from 'http://magnolia.local'... 100.0%
updating list of substitutes from 'http://magnolia.local'... 100.0%
substitute: updating list of substitutes from 'http://magnolia.local'... 100.0%
substitute: updating list of substitutes from 'https://hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'http://magnolia.local'... 100.0%
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
updating list of substitutes from 'https://hydra.gnu.org'... 100.0%
The following derivations will be built:
/gnu/store/gkxd3c7pncy0pw8gz6b4w2h4yna5b0qr-blender-2.78a.drv
/gnu/store/4lcmay4nyk9j3v86wpvvncmy1qkzb6lz-fftw-3.3.5.drv
/gnu/store/as3s0ip004kjnkppkp1i56gaakhzcxq1-openimageio-1.6.15.drv
/gnu/store/v9m0icyrwdbn6wq5bncpz5cw7ng3p4dm-ffmpeg-2.8.12.drv
/gnu/store/yw10vy3i1anmwlgg38hwjn2wxica03cx-jemalloc-4.5.0.drv
51.4 MB will be downloaded:
/gnu/store/78dbbi0hqx7irsqcmjzk1xrfh1q8r5ln-jemalloc-4.5.0
/gnu/store/885wcx1sxbqg9f40900xzjpgm9c4lb4i-blender-2.78a
substitute: updating list of substitutes from 'http://magnolia.local'... 100.0%
substitute: updating list of substitutes from 'https://hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'http://magnolia.local'... 100.0%
substitute: updating list of substitutes from 'https://hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'http://magnolia.local'... 100.0%
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://hydra.gnu.org'... 100.0%
@ substituter-started /gnu/store/78dbbi0hqx7irsqcmjzk1xrfh1q8r5ln-jemalloc-4.5.0 /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/libexec/guix/substitute
updating list of substitutes from 'https://hydra.gnu.org'... 100.0%
jemalloc-4.5.0 645KiB 758KiB/s 00:01 [####################] 100.0%

@ substituter-succeeded /gnu/store/78dbbi0hqx7irsqcmjzk1xrfh1q8r5ln-jemalloc-4.5.0
@ build-started /gnu/store/v9m0icyrwdbn6wq5bncpz5cw7ng3p4dm-ffmpeg-2.8.12.drv - x86_64-linux /var/log/guix/drvs/v9//m0icyrwdbn6wq5bncpz5cw7ng3p4dm-ffmpeg-2.8.12.drv.bz2
grafting '/gnu/store/sgxg0wprb4bqlnkdfk46rvhq1a0xzfvx-ffmpeg-2.8.12' -> '/gnu/store/ghjryqmclglr8g4jiyyj21g7vdzzj40n-ffmpeg-2.8.12'...
@ build-succeeded /gnu/store/v9m0icyrwdbn6wq5bncpz5cw7ng3p4dm-ffmpeg-2.8.12.drv -
@ substituter-started /gnu/store/885wcx1sxbqg9f40900xzjpgm9c4lb4i-blender-2.78a /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/libexec/guix/substitute
blender-2.78a 48.4MiB 3.8MiB/s 00:13 [####################] 100.0%

@ substituter-succeeded /gnu/store/885wcx1sxbqg9f40900xzjpgm9c4lb4i-blender-2.78a
@ build-started /gnu/store/4lcmay4nyk9j3v86wpvvncmy1qkzb6lz-fftw-3.3.5.drv - x86_64-linux /var/log/guix/drvs/4l//cmay4nyk9j3v86wpvvncmy1qkzb6lz-fftw-3.3.5.drv.bz2
grafting '/gnu/store/j3pja3bjg7jha04dzhhkb588y3765fql-fftw-3.3.5' -> '/gnu/store/rq8lav2nqxiid8i1v5bml1rq2lfj0lqb-fftw-3.3.5'...
@ build-succeeded /gnu/store/4lcmay4nyk9j3v86wpvvncmy1qkzb6lz-fftw-3.3.5.drv -
@ build-started /gnu/store/yw10vy3i1anmwlgg38hwjn2wxica03cx-jemalloc-4.5.0.drv - x86_64-linux /var/log/guix/drvs/yw//10vy3i1anmwlgg38hwjn2wxica03cx-jemalloc-4.5.0.drv.bz2
grafting '/gnu/store/78dbbi0hqx7irsqcmjzk1xrfh1q8r5ln-jemalloc-4.5.0' -> '/gnu/store/0r54ndf05vigzanx035m78jkackg8z54-jemalloc-4.5.0'...
@ build-succeeded /gnu/store/yw10vy3i1anmwlgg38hwjn2wxica03cx-jemalloc-4.5.0.drv -
@ build-started /gnu/store/as3s0ip004kjnkppkp1i56gaakhzcxq1-openimageio-1.6.15.drv - x86_64-linux /var/log/guix/drvs/as//3s0ip004kjnkppkp1i56gaakhzcxq1-openimageio-1.6.15.drv.bz2
grafting '/gnu/store/ig69hi5lq1zx68hhp6vxkk83bp507ppv-openimageio-1.6.15' -> '/gnu/store/fyi9602hv2wjgcj55qw6f0i6sam854m8-openimageio-1.6.15'...
@ build-succeeded /gnu/store/as3s0ip004kjnkppkp1i56gaakhzcxq1-openimageio-1.6.15.drv -
@ build-started /gnu/store/gkxd3c7pncy0pw8gz6b4w2h4yna5b0qr-blender-2.78a.drv - x86_64-linux /var/log/guix/drvs/gk//xd3c7pncy0pw8gz6b4w2h4yna5b0qr-blender-2.78a.drv.bz2
grafting '/gnu/store/885wcx1sxbqg9f40900xzjpgm9c4lb4i-blender-2.78a' -> '/gnu/store/1q7y82f5af720na9zgsdqm0vyzgszkfb-blender-2.78a'...
@ build-succeeded /gnu/store/gkxd3c7pncy0pw8gz6b4w2h4yna5b0qr-blender-2.78a.drv -
/gnu/store/1q7y82f5af720na9zgsdqm0vyzgszkfb-blender-2.78a
O
O
Oleg Pykhalov wrote on 4 Jul 2017 17:43
(name . Oleg Pykhalov)(address . go.wigust@gmail.com)
87inj81a3h.fsf@clover.i-did-not-set--mail-host-address--so-tickle-me
Oleg Pykhalov <go.wigust@gmail.com> writes:

Toggle quote (6 lines)
> I'm trying to setup offloading too. Just for the report I had an issue
> after setting up `%load-path` for guile with `.bashrc` snippet. It
> seems that also required call `guix build` with `--substitute-urls=HOST`
> because without it I get `acquired build slot` loop like in
> https://lists.gnu.org/archive/html/guix-devel/2015-05/msg00035.html

Actually not always works. Still have an issue with loop. Client waits
for `/var/guix/offload/magnolia.local/0` but `/var/guix/offload` is
missing on build machine.
O
O
Oleg Pykhalov wrote on 4 Jul 2017 18:02
(name . Oleg Pykhalov)(address . go.wigust@gmail.com)
87fuec197v.fsf@clover.i-did-not-set--mail-host-address--so-tickle-me
Oleg Pykhalov <go.wigust@gmail.com> writes:

Toggle quote (12 lines)
> Oleg Pykhalov <go.wigust@gmail.com> writes:
>
>> I'm trying to setup offloading too. Just for the report I had an issue
>> after setting up `%load-path` for guile with `.bashrc` snippet. It
>> seems that also required call `guix build` with `--substitute-urls=HOST`
>> because without it I get `acquired build slot` loop like in
>> https://lists.gnu.org/archive/html/guix-devel/2015-05/msg00035.html
>
> Actually not always works. Still have an issue with loop. Client waits
> for `/var/guix/offload/magnolia.local/0` but `/var/guix/offload` is
> missing on build machine.

Ah, stupid me, `/var/guix/offload/magnolia.local/0` is on client.

ls -1R /var/guix/offload
/var/guix/offload:
machine-choice.lock
magnolia.local
magnolia.local.slots.lock

/var/guix/offload/magnolia.local:
0
L
L
Ludovic Courtès wrote on 4 Jul 2017 23:36
(name . Oleg Pykhalov)(address . go.wigust@gmail.com)(address . 27386@debbugs.gnu.org)
87k23nsx3w.fsf@gnu.org
Hi,

Oleg Pykhalov <go.wigust@gmail.com> skribis:

Toggle quote (9 lines)
> process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
> waiting for locks or build slots...
> process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
> process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
> process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
> process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
> process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
> C-c C-c

When that happens, could you check how many ‘guix offload’ processes are
running?

Also, are you sure that the build machine is eligible for offloading
(matching system type, normalized load is below 2.0, etc.)?

Thanks,
Ludo’.
O
O
Oleg Pykhalov wrote on 5 Jul 2017 19:06
(name . Ludovic Courtès)(address . ludo@gnu.org)
878tk27r0g.fsf@clover.i-did-not-set--mail-host-address--so-tickle-me
ludo@gnu.org (Ludovic Courtès) writes:

Toggle quote (19 lines)
> Hi,
>
> Oleg Pykhalov <go.wigust@gmail.com> skribis:
>
>> process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
>> waiting for locks or build slots...
>> process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
>> process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
>> process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
>> process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
>> process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
>> C-c C-c
>
> When that happens, could you check how many ‘guix offload’ processes are
> running?
>
> Also, are you sure that the build machine is eligible for offloading
> (matching system type, normalized load is below 2.0, etc.)?

Yes, machine is totally free for load.

I captured 1 process as I see:
root 23867 4.9 0.9 128648 35656 ? SLsl 20:01 0:00 /gnu/store/w0jb15z5sa08fzcapvgyii49cygygyx5-guile-2.2.2/bin/guile --no-auto-compile /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/.guix-real offload x86_64-linux 0 1 0

Before
======

natsu@clover ~$ ps auxwwww | grep guix
root 341 0.0 0.1 34588 4704 ? Ss Jul03 0:00 /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/guix-daemon --build-users-group guixbuild --max-silent-time 0 --timeout 0 --substitute-urls https://mirror.hydra.gnu.org
guix-pu+ 433 0.0 0.6 121548 25940 ? Ssl Jul03 0:00 /gnu/store/w0jb15z5sa08fzcapvgyii49cygygyx5-guile-2.2.2/bin/guile --no-auto-compile /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/.guix-real publish -u guix-publish -p 80 -C 3 --nar-path=nar --listen=0.0.0.0
root 476 0.0 0.1 34900 4212 ? Ss Jul03 0:00 /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/guix-daemon 433 guixbuild --max-silent-time 0 --timeout 0 --substitute-urls https://mirror.hydra.gnu.org
natsu 10446 2.0 17.0 3342808 671380 ? Sl Jul04 30:29 /home/natsu/.guix-profile/bin/icecat
natsu 21472 0.0 3.0 376328 119796 pts/8 Ssl+ 18:59 0:02 /gnu/store/w0jb15z5sa08fzcapvgyii49cygygyx5-guile-2.2.2/bin/guile -L /gnu/store/3ahyhf5fp6jvvln0xw0v1bjka1z6i69m-emacs-guix-0.3.1/share/guile/site/2.2 -C /gnu/store/3ahyhf5fp6jvvln0xw0v1bjka1z6i69m-emacs-guix-0.3.1/lib/guile/2.2/site-ccache -L /home/natsu/.config/guix/latest -C /home/natsu/.config/guix/latest -L /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/share/guile/site/2.2 -C /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/share/guile/site/2.2 --listen=/tmp/emacs-guix-20138f3K/repl-socket -q -L /gnu/store/620x0ky0cyqihnqx3nrjnqj5xw4zvj67-geiser-0.9/share/geiser/guile/
natsu 21479 0.2 3.9 257152 156592 pts/4 Sl 18:59 0:08 /gnu/store/w0jb15z5sa08fzcapvgyii49cygygyx5-guile-2.2.2/bin/guile --no-auto-compile /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/.guix-real environment guix
root 21483 0.1 0.2 45420 8744 ? Ss 18:59 0:06 /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/guix-daemon 21479 guixbuild --max-silent-time 0 --timeout 0 --substitute-urls https://mirror.hydra.gnu.org
root 21484 0.0 1.0 126748 42332 ? Sl 18:59 0:01 /gnu/store/w0jb15z5sa08fzcapvgyii49cygygyx5-guile-2.2.2/bin/guile --no-auto-compile /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/.guix-real substitute --query
natsu 23822 0.0 0.0 8168 1464 pts/5 S+ 19:59 0:00 grep guix

natsu@clover ~$ ssh magnolia.local 'ps auxwwww | grep guix'
root 426 0.0 0.0 34584 4820 ? Ss Jul04 0:00 /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/guix-daemon --build-users-group guixbuild --max-silent-time 0 --timeout 0 --substitute-urls https://mirror.hydra.gnu.org
guix-pu+ 603 0.0 0.1 219164 44260 ? SLsl Jul04 0:02 /gnu/store/w0jb15z5sa08fzcapvgyii49cygygyx5-guile-2.2.2/bin/guile --no-auto-compile /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/.guix-real publish -u guix-publish -p 80 -C 3 --nar-path=nar --listen=0.0.0.0
root 635 0.0 0.0 35904 5680 ? Ss Jul04 0:00 /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/guix-daemon 603 guixbuild --max-silent-time 0 --timeout 0 --substitute-urls https://mirror.hydra.gnu.org
natsu 4056 0.0 0.0 8076 1416 pts/5 S+ Jul04 0:00 tail -f /var/log/guix-daemon.log
natsu 27391 0.0 0.0 17988 3436 ? Ss 19:59 0:00 bash -c ps auxwwww | grep guix
natsu 27396 0.0 0.0 8164 1540 ? S 19:59 0:00 grep guix

During
======

natsu@clover ~$ ps auxwwww | grep guix
root 341 0.0 0.1 34588 4704 ? Ss Jul03 0:00 /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/guix-daemon --build-users-group guixbuild --max-silent-time 0 --timeout 0 --substitute-urls https://mirror.hydra.gnu.org
guix-pu+ 433 0.0 0.6 121548 25940 ? Ssl Jul03 0:00 /gnu/store/w0jb15z5sa08fzcapvgyii49cygygyx5-guile-2.2.2/bin/guile --no-auto-compile /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/.guix-real publish -u guix-publish -p 80 -C 3 --nar-path=nar --listen=0.0.0.0
root 476 0.0 0.1 34900 4212 ? Ss Jul03 0:00 /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/guix-daemon 433 guixbuild --max-silent-time 0 --timeout 0 --substitute-urls https://mirror.hydra.gnu.org
natsu 10446 2.0 17.0 3342808 671200 ? Sl Jul04 30:30 /home/natsu/.guix-profile/bin/icecat
natsu 21472 0.0 3.0 376328 119796 pts/8 Ssl+ 18:59 0:02 /gnu/store/w0jb15z5sa08fzcapvgyii49cygygyx5-guile-2.2.2/bin/guile -L /gnu/store/3ahyhf5fp6jvvln0xw0v1bjka1z6i69m-emacs-guix-0.3.1/share/guile/site/2.2 -C /gnu/store/3ahyhf5fp6jvvln0xw0v1bjka1z6i69m-emacs-guix-0.3.1/lib/guile/2.2/site-ccache -L /home/natsu/.config/guix/latest -C /home/natsu/.config/guix/latest -L /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/share/guile/site/2.2 -C /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/share/guile/site/2.2 --listen=/tmp/emacs-guix-20138f3K/repl-socket -q -L /gnu/store/620x0ky0cyqihnqx3nrjnqj5xw4zvj67-geiser-0.9/share/geiser/guile/
natsu 21479 0.2 3.9 257152 156592 pts/4 Sl 18:59 0:08 /gnu/store/w0jb15z5sa08fzcapvgyii49cygygyx5-guile-2.2.2/bin/guile --no-auto-compile /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/.guix-real environment guix
root 21483 0.1 0.2 45420 8744 ? Ss 18:59 0:06 /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/guix-daemon 21479 guixbuild --max-silent-time 0 --timeout 0 --substitute-urls https://mirror.hydra.gnu.org
root 21484 0.0 1.0 126748 42332 ? Sl 18:59 0:01 /gnu/store/w0jb15z5sa08fzcapvgyii49cygygyx5-guile-2.2.2/bin/guile --no-auto-compile /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/.guix-real substitute --query
natsu 23854 33.7 3.5 236004 138320 pts/4 Sl+ 20:01 0:07 /home/natsu/.guix-profile/bin/guile --no-auto-compile /home/natsu/src/guix/scripts/guix build -K t-engine
root 23860 0.7 0.1 36404 6648 ? Ss 20:01 0:00 /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/guix-daemon 23854 guixbuild --max-silent-time 0 --timeout 0 --substitute-urls https://mirror.hydra.gnu.org
root 23862 2.5 0.8 123752 35232 ? Sl 20:01 0:00 /gnu/store/w0jb15z5sa08fzcapvgyii49cygygyx5-guile-2.2.2/bin/guile --no-auto-compile /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/.guix-real substitute --query
root 23867 4.9 0.9 128648 35656 ? SLsl 20:01 0:00 /gnu/store/w0jb15z5sa08fzcapvgyii49cygygyx5-guile-2.2.2/bin/guile --no-auto-compile /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/.guix-real offload x86_64-linux 0 1 0
natsu 23876 0.0 0.0 8168 1556 pts/5 S+ 20:01 0:00 grep guix

natsu@clover ~$ ssh magnolia.local 'ps auxwwww | grep guix'
root 426 0.0 0.0 34584 4820 ? Ss Jul04 0:00 /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/guix-daemon --build-users-group guixbuild --max-silent-time 0 --timeout 0 --substitute-urls https://mirror.hydra.gnu.org
guix-pu+ 603 0.0 0.1 219164 44260 ? SLsl Jul04 0:02 /gnu/store/w0jb15z5sa08fzcapvgyii49cygygyx5-guile-2.2.2/bin/guile --no-auto-compile /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/.guix-real publish -u guix-publish -p 80 -C 3 --nar-path=nar --listen=0.0.0.0
root 635 0.0 0.0 35904 5680 ? Ss Jul04 0:00 /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/guix-daemon 603 guixbuild --max-silent-time 0 --timeout 0 --substitute-urls https://mirror.hydra.gnu.org
natsu 4056 0.0 0.0 8076 1416 pts/5 S+ Jul04 0:00 tail -f /var/log/guix-daemon.log
natsu 27432 0.0 0.0 17988 3408 ? Ss 20:01 0:00 bash -c ps auxwwww | grep guix
natsu 27437 0.0 0.0 8164 1476 ? S 20:01 0:00 grep guix

After
=====

natsu@clover ~$ ps auxwwww | grep guix
root 341 0.0 0.1 34588 4704 ? Ss Jul03 0:00 /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/guix-daemon --build-users-group guixbuild --max-silent-time 0 --timeout 0 --substitute-urls https://mirror.hydra.gnu.org
guix-pu+ 433 0.0 0.6 121548 25940 ? Ssl Jul03 0:00 /gnu/store/w0jb15z5sa08fzcapvgyii49cygygyx5-guile-2.2.2/bin/guile --no-auto-compile /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/.guix-real publish -u guix-publish -p 80 -C 3 --nar-path=nar --listen=0.0.0.0
root 476 0.0 0.1 34900 4212 ? Ss Jul03 0:00 /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/guix-daemon 433 guixbuild --max-silent-time 0 --timeout 0 --substitute-urls https://mirror.hydra.gnu.org
natsu 10446 2.0 16.8 3326416 664492 ? Sl Jul04 30:33 /home/natsu/.guix-profile/bin/icecat
natsu 21472 0.0 3.0 376328 119796 pts/8 Ssl+ 18:59 0:02 /gnu/store/w0jb15z5sa08fzcapvgyii49cygygyx5-guile-2.2.2/bin/guile -L /gnu/store/3ahyhf5fp6jvvln0xw0v1bjka1z6i69m-emacs-guix-0.3.1/share/guile/site/2.2 -C /gnu/store/3ahyhf5fp6jvvln0xw0v1bjka1z6i69m-emacs-guix-0.3.1/lib/guile/2.2/site-ccache -L /home/natsu/.config/guix/latest -C /home/natsu/.config/guix/latest -L /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/share/guile/site/2.2 -C /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/share/guile/site/2.2 --listen=/tmp/emacs-guix-20138f3K/repl-socket -q -L /gnu/store/620x0ky0cyqihnqx3nrjnqj5xw4zvj67-geiser-0.9/share/geiser/guile/
natsu 21479 0.2 3.9 257152 156592 pts/4 Sl 18:59 0:08 /gnu/store/w0jb15z5sa08fzcapvgyii49cygygyx5-guile-2.2.2/bin/guile --no-auto-compile /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/.guix-real environment guix
root 21483 0.1 0.2 45420 8744 ? Ss 18:59 0:06 /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/guix-daemon 21479 guixbuild --max-silent-time 0 --timeout 0 --substitute-urls https://mirror.hydra.gnu.org
root 21484 0.0 1.0 126748 42332 ? Sl 18:59 0:01 /gnu/store/w0jb15z5sa08fzcapvgyii49cygygyx5-guile-2.2.2/bin/guile --no-auto-compile /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/.guix-real substitute --query
natsu 23922 0.0 0.0 8168 1536 pts/5 S+ 20:04 0:00 grep guix

natsu@clover ~$ ssh magnolia.local 'ps auxwwww | grep guix'
root 426 0.0 0.0 34584 4820 ? Ss Jul04 0:00 /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/guix-daemon --build-users-group guixbuild --max-silent-time 0 --timeout 0 --substitute-urls https://mirror.hydra.gnu.org
guix-pu+ 603 0.0 0.1 219164 44260 ? SLsl Jul04 0:02 /gnu/store/w0jb15z5sa08fzcapvgyii49cygygyx5-guile-2.2.2/bin/guile --no-auto-compile /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/.guix-real publish -u guix-publish -p 80 -C 3 --nar-path=nar --listen=0.0.0.0
root 635 0.0 0.0 35904 5680 ? Ss Jul04 0:00 /gnu/store/nrd0v38d61l8y16vqkb1gws0bw45q885-guix-0.13.0-2.de9d8f0/bin/guix-daemon 603 guixbuild --max-silent-time 0 --timeout 0 --substitute-urls https://mirror.hydra.gnu.org
natsu 4056 0.0 0.0 8076 1416 pts/5 S+ Jul04 0:00 tail -f /var/log/guix-daemon.log
natsu 27474 0.0 0.0 17988 3540 ? Ss 20:04 0:00 bash -c ps auxwwww | grep guix
natsu 27479 0.0 0.0 8164 1472 ? S 20:04 0:00 grep guix
L
L
Ludovic Courtès wrote on 6 Jul 2017 09:33
(name . Oleg Pykhalov)(address . go.wigust@gmail.com)(address . 27386@debbugs.gnu.org)
87mv8inhoh.fsf@gnu.org
Oleg Pykhalov <go.wigust@gmail.com> skribis:

Toggle quote (23 lines)
> ludo@gnu.org (Ludovic Courtès) writes:
>
>> Hi,
>>
>> Oleg Pykhalov <go.wigust@gmail.com> skribis:
>>
>>> process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
>>> waiting for locks or build slots...
>>> process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
>>> process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
>>> process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
>>> process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
>>> process 5294 acquired build slot '/var/guix/offload/magnolia.local/0'
>>> C-c C-c
>>
>> When that happens, could you check how many ‘guix offload’ processes are
>> running?
>>
>> Also, are you sure that the build machine is eligible for offloading
>> (matching system type, normalized load is below 2.0, etc.)?
>
> Yes, machine is totally free for load.

Hmm could it be that ‘machine-load’ in (guix scripts offload) always
returns +inf.0, for instance because it fails to run “cat /proc/loadavg”
on the remote machine? (If it succeeded we would see the message “load
on machine XYZ is N”.)


What does “ssh USER@magnolia.local -i KEY cat /proc/loadavg” return,
where USER and KEY are those specified in your machines.scm file?

HTH,
Ludo’.
O
O
Oleg Pykhalov wrote on 6 Jul 2017 15:15
(name . Ludovic Courtès)(address . ludo@gnu.org)
8737a9n1ur.fsf@clover.i-did-not-set--mail-host-address--so-tickle-me
ludo@gnu.org (Ludovic Courtès) writes:

Toggle quote (7 lines)
> Hmm could it be that ‘machine-load’ in (guix scripts offload) always
> returns +inf.0, for instance because it fails to run “cat /proc/loadavg”
> on the remote machine? (If it succeeded we would see the message “load
> on machine XYZ is N”.)
>
> https://git.savannah.gnu.org/cgit/guix.git/tree/guix/scripts/offload.scm#n393

Can I actually look what is happening somehow?

Toggle quote (2 lines)
> What does “ssh USER@magnolia.local -i KEY cat /proc/loadavg” return,
> where USER and KEY are those specified in your machines.scm file?
natsu@clover ~$
(list (build-machine
(name "magnolia.local")
(system "x86_64-linux")
(host-key "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMRy+enQECs2CsjrbSIfnNHExcUwzHFa7KUnhwDIeWOV")
(user "natsu")
(private-key
(string-append (getenv "HOME")
"/.ssh/identity-for-guix"))
(speed 2.)))
ssh natsu@magnolia.local -i $HOME/.ssh/identity-for-guix cat /proc/loadavg
0.05 0.08 0.02 1/247 13756
L
L
Ludovic Courtès wrote on 7 Jul 2017 12:00
(name . Oleg Pykhalov)(address . go.wigust@gmail.com)(address . 27386@debbugs.gnu.org)
87inj4d0s4.fsf@gnu.org
Oleg Pykhalov <go.wigust@gmail.com> skribis:

Toggle quote (11 lines)
> ludo@gnu.org (Ludovic Courtès) writes:
>
>> Hmm could it be that ‘machine-load’ in (guix scripts offload) always
>> returns +inf.0, for instance because it fails to run “cat /proc/loadavg”
>> on the remote machine? (If it succeeded we would see the message “load
>> on machine XYZ is N”.)
>>
>> https://git.savannah.gnu.org/cgit/guix.git/tree/guix/scripts/offload.scm#n393
>
> Can I actually look what is happening somehow?

Yes, you can make a checkout of Guix, add ‘pk’ calls in (guix scripts
offload) (see below), and run the daemon from there:

./pre-inst-env guix-daemon --build-users-group=guixbuild

‘pk’ is a function that prints its argument and returns it, so you could
do:
Toggle diff (13 lines)
diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm
index 566d117b0..0dd849942 100644
--- a/guix/scripts/offload.scm
+++ b/guix/scripts/offload.scm
@@ -398,7 +398,7 @@ allowed on MACHINE. Return +∞ if MACHINE is unreachable."
((? session? session)
(let* ((pipe (open-remote-pipe* session OPEN_READ
"cat" "/proc/loadavg"))
- (line (read-line pipe)))
+ (line (pk 'line (read-line pipe))))
(close-port pipe)
(if (eof-object? line)
to print the line that is read.

Toggle quote (16 lines)
>> What does “ssh USER@magnolia.local -i KEY cat /proc/loadavg” return,
>> where USER and KEY are those specified in your machines.scm file?
>
> natsu@clover ~$
> (list (build-machine
> (name "magnolia.local")
> (system "x86_64-linux")
> (host-key "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMRy+enQECs2CsjrbSIfnNHExcUwzHFa7KUnhwDIeWOV")
> (user "natsu")
> (private-key
> (string-append (getenv "HOME")
> "/.ssh/identity-for-guix"))
> (speed 2.)))
> ssh natsu@magnolia.local -i $HOME/.ssh/identity-for-guix cat /proc/loadavg
> 0.05 0.08 0.02 1/247 13756

Hmm, looks good.

Ludo’.
O
O
Oleg Pykhalov wrote on 7 Jul 2017 22:31
(name . Ludovic Courtès)(address . ludo@gnu.org)
871spsginl.fsf@clover.i-did-not-set--mail-host-address--so-tickle-me
ludo@gnu.org (Ludovic Courtès) writes:

Toggle quote (18 lines)
> Oleg Pykhalov <go.wigust@gmail.com> skribis:
>
>> ludo@gnu.org (Ludovic Courtès) writes:
>>
>>> Hmm could it be that ‘machine-load’ in (guix scripts offload) always
>>> returns +inf.0, for instance because it fails to run “cat /proc/loadavg”
>>> on the remote machine? (If it succeeded we would see the message “load
>>> on machine XYZ is N”.)
>>>
>>> https://git.savannah.gnu.org/cgit/guix.git/tree/guix/scripts/offload.scm#n393
>>
>> Can I actually look what is happening somehow?
>
> Yes, you can make a checkout of Guix, add ‘pk’ calls in (guix scripts
> offload) (see below), and run the daemon from there:
>
> ./pre-inst-env guix-daemon --build-users-group=guixbuild

Note for somebody else having similar issue:
sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild

Toggle quote (20 lines)
> ‘pk’ is a function that prints its argument and returns it, so you could
> do:
>
> diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm
> index 566d117b0..0dd849942 100644
> --- a/guix/scripts/offload.scm
> +++ b/guix/scripts/offload.scm
> @@ -398,7 +398,7 @@ allowed on MACHINE. Return +∞ if MACHINE is unreachable."
> ((? session? session)
> (let* ((pipe (open-remote-pipe* session OPEN_READ
> "cat" "/proc/loadavg"))
> - (line (read-line pipe)))
> + (line (pk 'line (read-line pipe))))
> (close-port pipe)
>
> (if (eof-object? line)
>
>
> to print the line that is read.

(Skip bellow this stupid text to Solution)

I don't see any sshd message during `guix build` in `/var/log/messages`
on build machine. Not any message in STDOUT on build machine, too.
`/var/log/guix-daemon.log` is silent, too.

I made above diff change on build machine and notebook. On notebook I
get `accepted connection from pid 2576, user natsu` in
`/var/log/guix-daemon.log` AND `process 2587 acquired build slot
'/var/guix/offload/magnolia.local/0` in STDOUT. `/var/log/messages` no
changes.

pk is silent :-(


So, I thought, if no sshd log on build machine, why? I did
`./pre-inst-env guix offload test` and got a `guix offload: testing 0
build machines defined in '/usr/local/etc/guix/machines.scm'...`.

Adding `--prefix=/` in ./configure helped, but I got
'//etc/guix/machines.scm. Maybe need set `--prefix=''`.

`./pre-inst-env guix offload` succeeded. `/var/log/guix-daemon.log`
reports like 'accepted connection from pid 2694, user natsu'
messages. `/var/log/messages` reports about sshd successfully
connections.

But I still failed with `build` command.


I also checked how to get some logs in
made some logs.

.
Attachment: log
Attachment: file
Toggle quote (4 lines)
> The ‘guix offload’ command is invoked by guix-daemon as root. So when
> it is invoked, (getenv "HOME") returns "/root" or similar. Could that
> be the problem?

So, I need a ssh key pair in /root too!

May be put this in doc? I prepared a patch for this.
From e119cf8cdc3eaa5774e44a301f1bcc975c31ce41 Mon Sep 17 00:00:00 2001
From: Oleg Pykhalov <go.wigust@gmail.com>
Date: Fri, 7 Jul 2017 23:25:40 +0300
Subject: [PATCH] doc: Add note about private-key during offload.

* doc/guix.texi (Using the Offload Facility): Add note about private-key.
---
doc/guix.texi | 4 ++++
1 file changed, 4 insertions(+)

Toggle diff (17 lines)
diff --git a/doc/guix.texi b/doc/guix.texi
index eab1704d4..8d1b2ff3d 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -947,6 +947,10 @@ Port number of SSH server on the machine.
The SSH private key file to use when connecting to the machine, in
OpenSSH format.
+Note that during ‘guix build’ the ‘guix offload’ command is invoked by
+guix-daemon as root. So when it is invoked, (getenv "HOME") returns
+"/root". Be sure that root account has access to private-key.
+
@item @code{compression} (default: @code{"zlib@@openssh.com,zlib"})
@itemx @code{compression-level} (default: @code{3})
The SSH-level compression methods and compression level requested.
--
2.13.2
L
L
Ludovic Courtès wrote on 8 Jul 2017 18:33
(name . Oleg Pykhalov)(address . go.wigust@gmail.com)(address . 27386@debbugs.gnu.org)
87k23ix50u.fsf@gnu.org
Hi Oleg,

Oleg Pykhalov <go.wigust@gmail.com> skribis:

Toggle quote (20 lines)
> Solution
> ========
>
> https://lists.gnu.org/archive/html/help-guix/2017-05/msg00196.html
>
>> The ‘guix offload’ command is invoked by guix-daemon as root. So when
>> it is invoked, (getenv "HOME") returns "/root" or similar. Could that
>> be the problem?
>
> So, I need a ssh key pair in /root too!
>
> May be put this in doc? I prepared a patch for this.
>
> From e119cf8cdc3eaa5774e44a301f1bcc975c31ce41 Mon Sep 17 00:00:00 2001
> From: Oleg Pykhalov <go.wigust@gmail.com>
> Date: Fri, 7 Jul 2017 23:25:40 +0300
> Subject: [PATCH] doc: Add note about private-key during offload.
>
> * doc/guix.texi (Using the Offload Facility): Add note about private-key.

Excellent, glad that you found out. I reworded and pushed as
dde1e152ce42a06fe2998f3da8acb1addfd296fc.

I’m closing this bug now, because it’s been a long discussion about
various issues rather than an actual “bug report”.

Oleg & ng0, please open a new bug report if you find a problem with
offloading. Note that the subject should clearly specify a problem
(“guix foo fails with bar”, “Offloading fails when X and Y”) or an
expectation (“Offloading documentation should describe X”, “guix foo
should not override bar”). The current title does not pass this test.
:-)

TIA,
Ludo’.
L
L
Ludovic Courtès wrote on 8 Jul 2017 18:33
control message for bug #27386
(address . control@debbugs.gnu.org)
87inj2x508.fsf@gnu.org
tags 27386 notabug
close 27386
D
D
Divan Santana wrote on 28 Sep 2017 22:29
unarchive 27386
(address . control@debbugs.gnu.org)
87tvzmefdq.fsf@santanas.co.za
unarchive 27386
D
D
Divan Santana wrote on 28 Sep 2017 21:40
Re: bug#27386: offloading documentation and env
(address . ludo@gnu.org)(address . 27386@debbugs.gnu.org)
87wp4iehmm.fsf@santanas.co.za
So I'm trying to set up the same offloading and followed the
documentation and seem to have resulted in the same issue as ng0.

Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (60 lines)
> ng0 <ng0@infotropique.org> skribis:
>
>> Ludovic Courtès transcribed 2.1K bytes:
>>> ng0 <ng0@infotropique.org> skribis:
>>>
>>> > And this is from master running an offloading test as it is right now.
>>> > Both ends have GuixSD.
>>> >
>>> > user@abyayala ~$ guix offload test
>>> > guix offload: testing 1 build machines defined in '/usr/local/etc/guix/machines.scm'...
>>> > guix offload: '192.168.1.179' is running guile (GNU Guile) 2.2.2
>>> > Backtrace:
>>> > 7 (primitive-load "/gnu/store/js4ml3w20ysh4znp9wl0da0ljji…")
>>> > In guix/ui.scm:
>>> > 1321:8 6 (run-guix-command _ . _)
>>> > In ice-9/boot-9.scm:
>>> > 837:9 5 (catch srfi-34 #<procedure 1cc6cc0 at guix/ui.scm:450:…> …)
>>> > 837:9 4 (catch system-error #<procedure 1cc6ce0 at guix/script…> …)
>>> > In guix/scripts/offload.scm:
>>> > 611:6 3 (check-machine-availability _ _)
>>> > In srfi/srfi-1.scm:
>>> > 656:11 2 (for-each #<procedure assert-node-has-guix (node name)> …)
>>> > In guix/scripts/offload.scm:
>>> > 543:2 1 (assert-node-has-guix #<node user@192.168.1.179:22555/…> …)
>>> > In ssh/dist/node.scm:
>>> > 397:8 0 (node-eval #<node user@192.168.1.179:22555/37146 1ceaa…> …)
>>> >
>>> > ssh/dist/node.scm:397:8: In procedure node-eval:
>>> > ssh/dist/node.scm:397:8: Throw to key `node-repl-error' with args `("Evaluation failed" "scheme@(guile-user)> While compiling expression:\nERROR: no code for module (guix)" ())'.
>>>
>>> This means that you need to make sure that the target machine has (guix)
>>> in its load path.
>>
>> I assume that you have read the rest of my messages and not just skipped
>> through them. I thought my messages were clear that (guix) is in the
>> loadpath, but only *locally* on the machine, not when connecting to it
>> via ssh.
>
> Right, this is why I suggested testing that *with a non-interactive
> connection*, as in:
>
> ssh HOST env | grep GUILE
>
>> So I'm guessing here: the not so obvious yet very obvious solution is to
>> put guix into the global (packages)?
>> Where global means the canonical /etc/config.scm
>
> On GuixSD, Guix is always in the global profile.
>
>>> The test is to run something like:
>>>
>>> $ ssh localhost env |grep GUILE_
>>> GUILE_LOAD_COMPILED_PATH=/home/ludo/.guix-profile/lib/guile/2.2/site-ccache:/home/ludo/.guix-profile/share/guile/site/2.2:/run/current-system/profile/lib/guile/2.2/site-ccache:/run/current-system/profile/share/guile/site/2.2
>>> GUILE_LOAD_PATH=/home/ludo/.guix-profile/share/guile/site/2.2:/run/current-system/profile/share/guile/site/2.2
>>>
>>> and you should see /run/current-system/profile/share/guile/site/2.2. If
>>> not, you’ll have to add it somehow.
>
> What does the above give for you?

So guixsd.santanas.co.za is my build system VM.
Laptop, is a guixsd system I want to not compile code, and rather offload.

root@laptop ~# ssh admin@guixsd.santanas.co.za env |grep GUILE_

Returns nothing.

However, an interactive session has the correct environment variables.
So I suppose one could set this via the .zshenv or .bash_profile .

Though I'm wondering what others do? Secondly, should the official docs
be updated?

root@guixsd ~# su - admin
admin@guixsd ~$ env|grep GUILE_
GUILE_LOAD_COMPILED_PATH=/run/current-system/profile/lib/guile/2.2/site-ccache:/run/current-system/profile/share/guile/site/2.2
GUILE_LOAD_PATH=/run/current-system/profile/share/guile/site/2.2
admin@guixsd ~$

--
Divan
D
D
Divan Santana wrote on 28 Sep 2017 21:44
(address . ludo@gnu.org)(address . 27386@debbugs.gnu.org)
87vak2ehgu.fsf@santanas.co.za
Divan Santana <divan@santanas.co.za> writes:

Toggle quote (84 lines)
> So I'm trying to set up the same offloading and followed the
> documentation and seem to have resulted in the same issue as ng0.
>
> Ludovic Courtès <ludo@gnu.org> writes:
>
>> ng0 <ng0@infotropique.org> skribis:
>>
>>> Ludovic Courtès transcribed 2.1K bytes:
>>>> ng0 <ng0@infotropique.org> skribis:
>>>>
>>>> > And this is from master running an offloading test as it is right now.
>>>> > Both ends have GuixSD.
>>>> >
>>>> > user@abyayala ~$ guix offload test
>>>> > guix offload: testing 1 build machines defined in '/usr/local/etc/guix/machines.scm'...
>>>> > guix offload: '192.168.1.179' is running guile (GNU Guile) 2.2.2
>>>> > Backtrace:
>>>> > 7 (primitive-load "/gnu/store/js4ml3w20ysh4znp9wl0da0ljji…")
>>>> > In guix/ui.scm:
>>>> > 1321:8 6 (run-guix-command _ . _)
>>>> > In ice-9/boot-9.scm:
>>>> > 837:9 5 (catch srfi-34 #<procedure 1cc6cc0 at guix/ui.scm:450:…> …)
>>>> > 837:9 4 (catch system-error #<procedure 1cc6ce0 at guix/script…> …)
>>>> > In guix/scripts/offload.scm:
>>>> > 611:6 3 (check-machine-availability _ _)
>>>> > In srfi/srfi-1.scm:
>>>> > 656:11 2 (for-each #<procedure assert-node-has-guix (node name)> …)
>>>> > In guix/scripts/offload.scm:
>>>> > 543:2 1 (assert-node-has-guix #<node user@192.168.1.179:22555/…> …)
>>>> > In ssh/dist/node.scm:
>>>> > 397:8 0 (node-eval #<node user@192.168.1.179:22555/37146 1ceaa…> …)
>>>> >
>>>> > ssh/dist/node.scm:397:8: In procedure node-eval:
>>>> > ssh/dist/node.scm:397:8: Throw to key `node-repl-error' with args `("Evaluation failed" "scheme@(guile-user)> While compiling expression:\nERROR: no code for module (guix)" ())'.
>>>>
>>>> This means that you need to make sure that the target machine has (guix)
>>>> in its load path.
>>>
>>> I assume that you have read the rest of my messages and not just skipped
>>> through them. I thought my messages were clear that (guix) is in the
>>> loadpath, but only *locally* on the machine, not when connecting to it
>>> via ssh.
>>
>> Right, this is why I suggested testing that *with a non-interactive
>> connection*, as in:
>>
>> ssh HOST env | grep GUILE
>>
>>> So I'm guessing here: the not so obvious yet very obvious solution is to
>>> put guix into the global (packages)?
>>> Where global means the canonical /etc/config.scm
>>
>> On GuixSD, Guix is always in the global profile.
>>
>>>> The test is to run something like:
>>>>
>>>> $ ssh localhost env |grep GUILE_
>>>> GUILE_LOAD_COMPILED_PATH=/home/ludo/.guix-profile/lib/guile/2.2/site-ccache:/home/ludo/.guix-profile/share/guile/site/2.2:/run/current-system/profile/lib/guile/2.2/site-ccache:/run/current-system/profile/share/guile/site/2.2
>>>> GUILE_LOAD_PATH=/home/ludo/.guix-profile/share/guile/site/2.2:/run/current-system/profile/share/guile/site/2.2
>>>>
>>>> and you should see /run/current-system/profile/share/guile/site/2.2. If
>>>> not, you’ll have to add it somehow.
>>
>> What does the above give for you?
>
> So guixsd.santanas.co.za is my build system VM.
> Laptop, is a guixsd system I want to not compile code, and rather offload.
>
> root@laptop ~# ssh admin@guixsd.santanas.co.za env |grep GUILE_
>
> Returns nothing.
>
> However, an interactive session has the correct environment variables.
> So I suppose one could set this via the .zshenv or .bash_profile .
>
> Though I'm wondering what others do? Secondly, should the official docs
> be updated?
>
> root@guixsd ~# su - admin
> admin@guixsd ~$ env|grep GUILE_
> GUILE_LOAD_COMPILED_PATH=/run/current-system/profile/lib/guile/2.2/site-ccache:/run/current-system/profile/share/guile/site/2.2
> GUILE_LOAD_PATH=/run/current-system/profile/share/guile/site/2.2
> admin@guixsd ~$

I'm wondering if for others, by default does ssh a-guixsd-system env
|grep GUILE_ return something?

If so, why on my system, and ng0 is it not set.
--
Divan
L
L
Ludovic Courtès wrote on 29 Sep 2017 09:49
(name . Divan Santana)(address . divan@santanas.co.za)(address . 27386@debbugs.gnu.org)
873776vt99.fsf@gnu.org
Hello Divan,

Divan Santana <divan@santanas.co.za> skribis:

Toggle quote (10 lines)
> So guixsd.santanas.co.za is my build system VM.
> Laptop, is a guixsd system I want to not compile code, and rather offload.
>
> root@laptop ~# ssh admin@guixsd.santanas.co.za env |grep GUILE_
>
> Returns nothing.
>
> However, an interactive session has the correct environment variables.
> So I suppose one could set this via the .zshenv or .bash_profile .

Right. On GuixSD, the default .bash_profile sources .bashrc, and the
default .bashrc has this:

Toggle snippet (10 lines)
if [ -n "$SSH_CLIENT" -a -z "`type -P cat`" ]
then
# We are being invoked from a non-interactive SSH session
# (as in "ssh host command") but 'cat' cannot be found
# in $PATH. Source /etc/profile so we get $PATH and other
# essential variables.
source /etc/profile
fi

I suggest you do something similar.

HTH!

Ludo’.
R
R
Ricardo Wurmus wrote on 29 Sep 2017 19:02
(name . Ludovic Courtès)(address . ludo@gnu.org)
87vak14evh.fsf@elephly.net
On build nodes I added the following variable definitions to
/etc/environment:

GUILE_LOAD_PATH=/run/current-system/profile/share/guile/site/2.2
GUILE_LOAD_COMPILED_PATH=/run/current-system/profile/lib/guile/2.2/site-ccache:/run/current-system/profile/share/guile/site/2.2

You need to make sure that the guile process used by guile SSH is
restarted.

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC
D
D
Divan Santana wrote on 29 Sep 2017 21:33
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 27386@debbugs.gnu.org)
87o9pte1ut.fsf@santanas.co.za
Toggle quote (28 lines)
> Divan Santana <divan@santanas.co.za> skribis:
>
>> So guixsd.santanas.co.za is my build system VM.
>> Laptop, is a guixsd system I want to not compile code, and rather offload.
>>
>> root@laptop ~# ssh admin@guixsd.santanas.co.za env |grep GUILE_
>>
>> Returns nothing.
>>
>> However, an interactive session has the correct environment variables.
>> So I suppose one could set this via the .zshenv or .bash_profile .
>
> Right. On GuixSD, the default .bash_profile sources .bashrc, and the
> default .bashrc has this:
>
> --8<---------------cut here---------------start------------->8---
> if [ -n "$SSH_CLIENT" -a -z "`type -P cat`" ]
> then
> # We are being invoked from a non-interactive SSH session
> # (as in "ssh host command") but 'cat' cannot be found
> # in $PATH. Source /etc/profile so we get $PATH and other
> # essential variables.
> source /etc/profile
> fi
> --8<---------------cut here---------------end--------------->8---
>
> I suggest you do something similar.

Thanks Ludo.

Though, I do have the default .bashrc and .bash_profile in place and
yet it's not working, by default.

admin@guixsd ~$ diff .bash_profile /etc/skel/.bash_profile
admin@guixsd ~$ diff .bashrc /etc/skel/.bashrc
25a26
> alias grep='grep --color'
admin@guixsd ~$

So I'm assuming this doesn't work by default for all?
Unless it's because I configured the users shell to zsh, I doubt.
Because, when switching it back to bash it still doesn't work. And the
skel files are correctly in place.

It does have your above suggestion in place:

admin@guixsd ~$ cat .bash_profile
# Honor per-interactive-shell startup file
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
admin@guixsd ~$ cat .bashrc
# Bash initialization for interactive non-login shells and
# for remote shells (info "(bash) Bash Startup Files").

# Export 'SHELL' to child processes. Programs such as 'screen'
# honor it and otherwise use /bin/sh.
export SHELL

if [ -n "$SSH_CLIENT" -a -z "`type -P cat`" ]
then
# We are being invoked from a non-interactive SSH session
# (as in "ssh host command") but 'cat' cannot be found
# in $PATH. Source /etc/profile so we get $PATH and other
# essential variables.
source /etc/profile
fi

--
Divan
D
D
Divan Santana wrote on 29 Sep 2017 21:35
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87mv5de1s5.fsf@santanas.co.za
Ricardo Wurmus <rekado@elephly.net> writes:

Toggle quote (9 lines)
> On build nodes I added the following variable definitions to
> /etc/environment:
>
> GUILE_LOAD_PATH=/run/current-system/profile/share/guile/site/2.2
> GUILE_LOAD_COMPILED_PATH=/run/current-system/profile/lib/guile/2.2/site-ccache:/run/current-system/profile/share/guile/site/2.2
>
> You need to make sure that the guile process used by guile SSH is
> restarted.

Thanks Ricardo.

So if you do this on build systems, I assume it's kinda a requirement of
sort that should go into the document?

I prefer your suggestion over my local editing of the bash/zsh files.

--
Divan
?