[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#20402: guix cannot download via an http proxy

From: Joshua Randall
Subject: bug#20402: guix cannot download via an http proxy
Date: Wed, 22 Apr 2015 10:08:27 +0100

After more testing this morning, I see that although the core functionality is working after applying the proposed patch (i.e. the guix daemon itself can download things), the derivations are still failing because the environment is being squashed and so the http_proxy and https_proxy environment variables are not available to the build. It looks like nix has a way around this involving setting imputeEnvVars = "http_proxy https_proxy" so that those variables get copied into the build environment (for fixed-output derivations only, which makes sense to me). 

I'll try to come up with a patch that inserts the imputeEnvVars, but I'm getting farther from the code I understand so I will probably need some help in getting it in the right place. 



On Wed, Apr 22, 2015 at 2:15 AM, Joshua Randall <address@hidden> wrote:
Tags: patch

Please find a proposed patch that should fix this issue. I haven't written scheme in many years, so please excuse me if I have failed to follow convention in any way - I won't be offended at all if you want to refactor it. This patch should apply cleanly on the current git master branch and also on the v0.8.1 release. 

This patch modifies http-fetch (in build/download.scm) such that it calls Guile's open-socket-for-uri after fixing up the uri so that it always has a port specified. I'm not sure how to test the bootstrapping NSS issue that required open-connection-for-uri, but my expectation based on reading the source is that this alternative should work for Guile > 2.0.7, and I've left the original open-connection-for-uri in there for backwards compatibility with Guile < 2.0.7. If someone can test this against a situation known to have needed the NSS workaround, that would be great. 

I've also changed the only other call to open-connection-for-uri, which is in the probe-uri function in scripts/lint.scm - my suspicion is that won't be an issue because I'm guessing the lint scripts are not used while bootstrapping, so the open-socket-for-uri function will probably be fine for the purpose of probing whether a URL is valid. 

After applying this patch, guix should use the http proxy support built in to Guile >= 2.0.10. This appears to be working for me - I've just started a bootstrap and it has now started to successfully download packages - so far, so good. 

Please let me know if there is anything else I can do to assist with getting this issue fixed. 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]