Greg Troxel wrote: > > Edgar Fu? <ef%math.uni-bonn.de@localhost> writes: > > > Could we have FETCH_PROXY.http etc. (defaulting to FETCH_PROXY), please? New patch defines FETCH_PROXY.ftp/http/https and defaults them to FETCH_PROXY. > I was going to ask if you are sure that it really makes sense to have a > single proxy variable, instead of separate for http/https/ftp. Protocol specific variables don't extend to other protocols like socks. So, I use FETCH_PROXY both as a default value for protocol specific variables and to pass other protocols: FETCH_USING= curl FETCH_PROXY= socks4a://127.0.0.1:9050 Because FETCH_PROXY is used for two different purposes, socks proxy will appear in the command line 4 times: env ftp_proxy=socks4a://127.0.0.1:9050 \ http_proxy=socks4a://127.0.0.1:9050 \ https_proxy=socks4a://127.0.0.1:9050 \ curl --proxy socks4a://127.0.0.1:9050 ... It works fine it curl, though. -- Alex
Index: mk/fetch/fetch.mk =================================================================== RCS file: /cvsroot/pkgsrc/mk/fetch/fetch.mk,v retrieving revision 1.69 diff -p -u -u -r1.69 fetch.mk --- mk/fetch/fetch.mk 1 Aug 2017 13:15:32 -0000 1.69 +++ mk/fetch/fetch.mk 6 Jan 2018 22:00:16 -0000 @@ -197,10 +197,24 @@ fetch-check-interactive: .USEBEFORE # connections after the given amount of seconds. # The specific behavior depends on the command used. # +# FETCH_PROXY +# FETCH_PROXY.ftp +# FETCH_PROXY.http +# FETCH_PROXY.https +# If defined, will cause the fetch command to connect over +# the specified proxy. +# The specific behavior depends on the command used. +# # FETCH_USE_IPV4_ONLY, if defined, will cause the fetch command to force # connecting to only IPv4 addresses. # +.if defined(FETCH_PROXY) +FETCH_PROXY.ftp?= ${FETCH_PROXY} +FETCH_PROXY.http?= ${FETCH_PROXY} +FETCH_PROXY.https?= ${FETCH_PROXY} +.endif + # If this host is behind a filtering firewall, use passive ftp(1) _FETCH_BEFORE_ARGS.ftp= ${PASSIVE_FETCH:D-p} \ ${FETCH_TIMEOUT:D-q ${FETCH_TIMEOUT}} \ @@ -208,14 +222,22 @@ _FETCH_BEFORE_ARGS.ftp= ${PASSIVE_FETCH _FETCH_AFTER_ARGS.ftp= # empty _FETCH_RESUME_ARGS.ftp= -R _FETCH_OUTPUT_ARGS.ftp= -o -_FETCH_CMD.ftp= ${TOOLS_PATH.ftp} +_FETCH_CMD.ftp= ${PKGSRC_SETENV} \ + ${FETCH_PROXY.ftp:Dftp_proxy=${FETCH_PROXY.ftp:Q}} \ + ${FETCH_PROXY.http:Dhttp_proxy=${FETCH_PROXY.http:Q}} \ + ${FETCH_PROXY.https:Dhttps_proxy=${FETCH_PROXY.https:Q}} \ + ${TOOLS_PATH.ftp} _FETCH_BEFORE_ARGS.fetch= ${FETCH_TIMEOUT:D-T ${FETCH_TIMEOUT}} \ ${FETCH_USE_IPV4_ONLY:D-4} _FETCH_AFTER_ARGS.fetch= # empty _FETCH_RESUME_ARGS.fetch= -r _FETCH_OUTPUT_ARGS.fetch= -o -_FETCH_CMD.fetch= ${TOOLS_PATH.fetch} +_FETCH_CMD.fetch= ${PKGSRC_SETENV} \ + ${FETCH_PROXY.ftp:Dftp_proxy=${FETCH_PROXY.ftp:Q}} \ + ${FETCH_PROXY.http:Dhttp_proxy=${FETCH_PROXY.http:Q}} \ + ${FETCH_PROXY.https:Dhttps_proxy=${FETCH_PROXY.https:Q}} \ + ${TOOLS_PATH.fetch} _FETCH_BEFORE_ARGS.wget= ${PASSIVE_FETCH:D--passive-ftp} \ --no-check-certificate \ @@ -224,17 +246,26 @@ _FETCH_BEFORE_ARGS.wget= ${PASSIVE_FETCH _FETCH_AFTER_ARGS.wget= # empty _FETCH_RESUME_ARGS.wget= -c _FETCH_OUTPUT_ARGS.wget= -O -_FETCH_CMD.wget= ${TOOLS_PATH.wget} +_FETCH_CMD.wget= ${PKGSRC_SETENV} \ + ${FETCH_PROXY.ftp:Dftp_proxy=${FETCH_PROXY.ftp:Q}} \ + ${FETCH_PROXY.http:Dhttp_proxy=${FETCH_PROXY.http:Q}} \ + ${FETCH_PROXY.https:Dhttps_proxy=${FETCH_PROXY.https:Q}} \ + ${TOOLS_PATH.wget} _FETCH_BEFORE_ARGS.curl= ${PASSIVE_FETCH:D--ftp-pasv} \ --fail --insecure --location --remote-time \ ${FETCH_TIMEOUT:D--connect-timeout ${FETCH_TIMEOUT}} \ ${FETCH_TIMEOUT:D--speed-time ${FETCH_TIMEOUT}} \ + ${FETCH_PROXY:D--proxy ${FETCH_PROXY:Q}} \ ${FETCH_USE_IPV4_ONLY:D--ipv4} _FETCH_AFTER_ARGS.curl= -O # must be here to honor -o option _FETCH_RESUME_ARGS.curl= -C - _FETCH_OUTPUT_ARGS.curl= -o -_FETCH_CMD.curl= ${TOOLS_PATH.curl} +_FETCH_CMD.curl= ${PKGSRC_SETENV} \ + ${FETCH_PROXY.ftp:Dftp_proxy=${FETCH_PROXY.ftp:Q}} \ + ${FETCH_PROXY.http:Dhttp_proxy=${FETCH_PROXY.http:Q}} \ + ${FETCH_PROXY.https:Dhttps_proxy=${FETCH_PROXY.https:Q}} \ + ${TOOLS_PATH.curl} _FETCH_CMD.manual= ${TOOLS_PATH.false}
Attachment:
signature.asc
Description: PGP signature