On Mon, Jun 21, 2010 at 11:10 AM, Erwin Lansing <erwin_at_freebsd.org> wrote: > On Mon, Jun 21, 2010 at 11:04:16AM +0100, Tom Evans wrote: >> My company recently enabled proxy authentication for outgoing >> connections, and this has stopped ports from working. >> >> >From fetch(5), I understand that I can place my proxy authentication >> in plain text in the environment*, and this will allow fetch to work >> correctly, and this does work: >> >> > # env | grep -i proxy >> ftp_proxy=http://proxy:3128/ >> HTTP_PROXY_AUTH=basic:*:tevans_at_domain.com:password >> HTTP_PROXY=http://proxy:3128/ >> > # fetch http://googlecl.googlecode.com/files/googlecl-0.9.5.tar.gz >> googlecl-0.9.5.tar.gz 100% of 36 kB 77 MBps >> >> However, the ports makefiles seem to do something funky to my >> environment which hides these environment variables, and so the ports >> infrastructure stops working: >> > You should use FETCH_ENV or FETCH_ARGS to pass information to fetch(1) from the > ports infrastructure. It is documented in /usr/ports/Mk/bsd.port.mk, > search for FETCH_BINARY. Hope that helps. > > -erwin > Er, ok that makes slight sense. In /usr/ports/Mk/bsd.port.mk it says: # FETCH_ENV - Environment to pass to ${FETCH_CMD}. # Default: none So how is it picking up that it needs to go thru a proxy at all, given that this is also only specified in the environment? Also, am I supposed to literally repeat my same environment variables in FETCH_ENV? Meaning I have to place my password in plain text again in my environment? This is horrific... Also, even after doing that, it still doesn't look at the environment variables. I prepended "-v" to FETCH_ENV to show that it is setting the right environment variables, but fetch in ports is still not looking at them: > # export FETCH_ENV="-v HTTP_PROXY=$HTTP_PROXY HTTP_PROXY_AUTH=$HTTP_PROXY_AUTH ftp_proxy=$ftp_proxy" root_at_strangepork '11:26:21' '/usr/ports/net/googlecl' > # make fetch ===> Vulnerability check disabled, database not found ===> License check disabled, port has not defined LICENSE => googlecl-0.9.5.tar.gz doesn't seem to exist in /usr/ports/distfiles/. => Attempting to fetch from http://googlecl.googlecode.com/files/. #env setenv: HTTP_PROXY=http://proxy:3128/ #env setenv: HTTP_PROXY_AUTH=basic:*:tevans_at_domain:pass #env setenv: ftp_proxy=http://proxy:3128/ #env executing: /usr/bin/fetch #env arg[0]= '/usr/bin/fetch' #env arg[1]= '-ApRr' #env arg[2]= '-S 37867' #env arg[3]= 'http://googlecl.googlecode.com/files/googlecl-0.9.5.tar.gz' fetch: http://googlecl.googlecode.com/files/googlecl-0.9.5.tar.gz: Proxy Authentication Required => Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/. #env setenv: HTTP_PROXY=http://proxy:3128/ #env setenv: HTTP_PROXY_AUTH=basic:*:tevans_at_domain:pass #env setenv: ftp_proxy=http://proxy:3128/ #env executing: /usr/bin/fetch #env arg[0]= '/usr/bin/fetch' #env arg[1]= '-ApRr' #env arg[2]= '-S 37867' #env arg[3]= 'ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/googlecl-0.9.5.tar.gz' fetch: ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/googlecl-0.9.5.tar.gz: Not Found => Couldn't fetch it - please try to retrieve this => port manually into /usr/ports/distfiles/ and try again. *** Error code 1 *.freebsd.org is whitelisted through the proxies, which is why the second fetch gets a 404 and not a 407 Any thoughts? CheersReceived on Mon Jun 21 2010 - 08:34:13 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:04 UTC