From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Subject: bug#20402: HTTP and FTP proxies for guix package / guix-daemon Date: Wed, 01 Jul 2015 16:45:15 +0200 Message-ID: <87h9poq6mc.fsf@gnu.org> References: <87381zicgg.fsf@gnu.org> <87616uzfd8.fsf@gnu.org> <87d20zbj03.fsf@gnu.org> <87pp4cxpbx.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:47447) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZAJH2-00075D-L3 for bug-guix@gnu.org; Wed, 01 Jul 2015 10:46:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZAJH1-0007ZO-8p for bug-guix@gnu.org; Wed, 01 Jul 2015 10:46:04 -0400 Received: from debbugs.gnu.org ([140.186.70.43]:34654) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZAJH0-0007ZK-Un for bug-guix@gnu.org; Wed, 01 Jul 2015 10:46:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1ZAJH0-0008FO-NC for bug-guix@gnu.org; Wed, 01 Jul 2015 10:46:02 -0400 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: ("Claes Wallin \=\?utf-8\?B\?KOmfi+WYieiqoCkiJ3M\=\?\= message of "Wed, 1 Jul 2015 15:08:31 +0200") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org To: "Claes Wallin (=?UTF-8?Q?=E9=9F=8B=E5=98=89=E8=AA=A0?=)" Cc: 20402@debbugs.gnu.org "Claes Wallin (=E9=9F=8B=E5=98=89=E8=AA=A0)" skribis: > On Wed, Jul 1, 2015 at 10:19 AM, Ludovic Court=C3=A8s wrot= e: > >> To test, I first run the daemon like this: >> >> sudo sh -c 'export http_proxy=3Dfoobar ; ./pre-inst-env guix-daemon --= build-users-group=3Dguixbuild' > > 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=E2=80=99m using commit 684bf7c of Guix, which has the fix, whi= ch 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=E2=80=99s 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, =E2=80=98open-socket-for-uri=E2=80= =99 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))) ;=E2=86=90 proxy (define addresses (let ((port (uri-port uri))) (delete-duplicates (getaddrinfo (uri-host uri) (cond (port =3D> 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=3Dhttp://... guix download http://... ? Thanks, Ludo=E2=80=99.