"Claes Wallin (韋嘉誠)" <g...@clacke.user.lysator.liu.se> skribis:
> On Wed, Jul 1, 2015 at 10:19 AM, Ludovic Courtès <l...@gnu.org> wrote: > >> To test, I first run the daemon like this: >> >> sudo sh -c 'export http_proxy=foobar ; ./pre-inst-env guix-daemon >> --build-users-group=guixbuild' > > Could there be a difference because you are testing with the > checked-out, semi-manually built guix and I was checking with a > freshly packaged (pull, package -i guix) guix? Like I said in > http://lists.gnu.org/archive/html/bug-guix/2015-06/msg00036.html , > guix-daemon as compiled by guix seems to be using guile-2.0.9. Maybe > that only happens due to guix rewriting hashbangs etc, and on a build > outside guix (even when using guix environment) it uses whatever guile > happens to be in the paths? Could you send the store file name of Guix that is being used? For instance, I have: --8<---------------cut here---------------start------------->8--- $ sudo deco status guix-daemon Pasvorto: Status of guix-daemon: It is started. Running value is 31316. It is enabled. Provides (guix-daemon). Requires (user-processes). Conflicts with (). Will be respawned. $ ps 31316 PID TTY STAT TIME COMMAND 31316 ? Ss 0:00 /gnu/store/zg6j61inmmk5kyqgyfjnj7rdxl79i9ps-guix-0.8.2.684bf7c/bin/guix-daemon --build-users-group guixbu --8<---------------cut here---------------end--------------->8--- That means I’m using commit 684bf7c of Guix, which has the fix, which came up after the http_proxy commit (commit 0d88313.) >>> No. Whenever the daemon is doing the downloading, http_proxy is >>> ignored and I get "Temporary failure in name resolution" because the >>> VM doesn't have an internet DNS. >> >> [...] >> >>> `/gnu/store/2zkyyw4bq0wzsxdysncrf9lmwl44w5wh-binutils-2.25.tar.bz2' >>> from `http://ftpmirror.gnu.org/binutils/binutils-2.25.tar.bz2'... >>> ERROR: In procedure getaddrinfo: Temporary failure in name resolution >> >> That’s another, unrelated issue, probably in your network or on your >> machine. > > Yes. This is why the proxy is required. There is no internet DNS for > the VM, because it is on an isolated lab network. Hmm, when using Guile 2.0.11 or later, ‘open-socket-for-uri’ connects to the proxy (so its name must be available in DNS lookup), not to the target server. The code in (web client) goes like this: --8<---------------cut here---------------start------------->8--- (define (open-socket-for-uri uri-or-string) "Return an open input/output port for a connection to URI." (define http-proxy (current-http-proxy)) (define uri (ensure-uri (or http-proxy uri-or-string))) ;← proxy (define addresses (let ((port (uri-port uri))) (delete-duplicates (getaddrinfo (uri-host uri) (cond (port => number->string) (else (symbol->string (uri-scheme uri)))) (if port AI_NUMERICSERV 0)) ;; ... --8<---------------cut here---------------end--------------->8--- Do you see the same DNS issue when running: http_proxy=http://... guix download http://... ? Thanks, Ludo’.