pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: pkg/47525: fetch from sourceforge fails if user sets ownFTPUSERAGENT
The following reply was made to PR pkg/47525; it has been noted by GNATS.
From: Daniel Horecki <morr%NetBSD.org@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc:
Subject: Re: pkg/47525: fetch from sourceforge fails if user sets
ownFTPUSERAGENT
Date: Wed, 06 Feb 2013 21:14:52 +0100
Izumi Tsutsui <tsutsui%ceres.dti.ne.jp@localhost> writes:
Hi,
> The following reply was made to PR pkg/47525; it has been noted by GNATS.
>
> From: Izumi Tsutsui <tsutsui%ceres.dti.ne.jp@localhost>
> To: gnats-bugs%NetBSD.org@localhost
> Cc: obache%NetBSD.org@localhost, tsutsui%ceres.dti.ne.jp@localhost
> Subject: Re: pkg/47525: fetch from sourceforge fails if user sets
> ownFTPUSERAGENT
> Date: Wed, 6 Feb 2013 23:01:50 +0900
>
> > I don't know why you want to use such a bogus ("Mozilla/5.0") user agent,
> > but it is the origin of the fault.
>
> Why? It's valid usage and documented environment in ftp(1) man page.
> ftp(1) is not only for pkgsrc.
>
> > morr@'s change may rise new other faults, because it will work well with
> > x11/rxvt-unicode/Makefile r1.41, adding FTPUSERAGENT="NetBSD/ftp".
> > If other sites also has same problem (empty user-agent is not welcomed),
> > package using such site as MASTER_SITES will also fail to fetch,
> > because usually, FTPUSERAGENT environment variable is empty.
>
> ftp(1) uses FTPUSERAGENT only if getenv(3) returns !NULL.
> http://nxr.netbsd.org/xref/src/usr.bin/ftp/fetch.c?r=1.201#857
> ---
> if ((useragent=getenv("FTPUSERAGENT")) != NULL) {
> fetch_printf(fin, "User-Agent: %s\r\n", useragent);
> } else {
> fetch_printf(fin, "User-Agent: %s/%s\r\n",
> FTP_PRODUCT, FTP_VERSION);
> }
> ---
>
> If FTPUSERAGENT is set but empty, ftp(1) uses empty USERAGENT.
> If FTPUSERAGENT is unset, ftp(1) uses the default FTP_PRODUCT
> and FTP_VERSION (which is "NetBSD-ftp/20100605") and it has worked
> as you see with the default settings.
>
> The following patch makes both rxvt-unicode and sourceforge sites happy,
> but I wonder if we should rather fix mk/fetch/fetch script directly.
>
> Index: mk/fetch/fetch.mk
> ===================================================================
> RCS file: /cvsroot/pkgsrc/mk/fetch/fetch.mk,v
> retrieving revision 1.58
> diff -u -p -r1.58 fetch.mk
> --- mk/fetch/fetch.mk 20 Jan 2013 13:22:59 -0000 1.58
> +++ mk/fetch/fetch.mk 6 Feb 2013 13:54:03 -0000
> @@ -239,10 +239,10 @@ _FETCH_AFTER_ARGS.custom= ${FETCH_AFTER_
> _FETCH_RESUME_ARGS.custom= ${FETCH_RESUME_ARGS}
> _FETCH_OUTPUT_ARGS.custom= ${FETCH_OUTPUT_ARGS}
>
> -_FETCH_CMD= ${PKGSRC_SETENV} CHECKSUM=${_CHECKSUM_CMD:Q} \
> +_FETCH_CMD= unset FTPUSERAGENT && \
> + ${PKGSRC_SETENV} CHECKSUM=${_CHECKSUM_CMD:Q} \
> CP=${TOOLS_CP:Q} \
> ECHO=${TOOLS_ECHO:Q} \
> - FTPUSERAGENT=${FTPUSERAGENT:Q} \
> FETCH_CMD=${_FETCH_CMD.${FETCH_USING}:Q} \
> FETCH_BEFORE_ARGS=${_FETCH_BEFORE_ARGS.${FETCH_USING}:Q} \
> FETCH_AFTER_ARGS=${_FETCH_AFTER_ARGS.${FETCH_USING}:Q} \
>
> (btw FTP_VERSION has not been bumped after recent ssl addition)
> ---
> Izumi Tsutsui
>
I'm affraid that your patch won't work (make doesn't know anything about
unset) but
reverting fetch.mk to 1.56 and changing script alone will work:
Index: mk/fetch/fetch
===================================================================
RCS file: /cvsroot/pkgsrc/mk/fetch/fetch,v
retrieving revision 1.14
diff -u -r1.14 fetch
--- mk/fetch/fetch 2 Aug 2009 02:38:52 -0000 1.14
+++ mk/fetch/fetch 6 Feb 2013 20:11:28 -0000
@@ -115,6 +115,8 @@
: ${TOUCH:=touch}
: ${WC:=wc}
+unset FTPUSERAGENT
+
self="${0##*/}"
usage() {
Index: mk/fetch/fetch.mk
===================================================================
RCS file: /cvsroot/pkgsrc/mk/fetch/fetch.mk,v
retrieving revision 1.58
diff -u -r1.58 fetch.mk
--- mk/fetch/fetch.mk 20 Jan 2013 13:22:59 -0000 1.58
+++ mk/fetch/fetch.mk 6 Feb 2013 20:11:28 -0000
@@ -242,7 +242,6 @@
_FETCH_CMD= ${PKGSRC_SETENV} CHECKSUM=${_CHECKSUM_CMD:Q} \
CP=${TOOLS_CP:Q} \
ECHO=${TOOLS_ECHO:Q} \
- FTPUSERAGENT=${FTPUSERAGENT:Q} \
FETCH_CMD=${_FETCH_CMD.${FETCH_USING}:Q} \
FETCH_BEFORE_ARGS=${_FETCH_BEFORE_ARGS.${FETCH_USING}:Q} \
FETCH_AFTER_ARGS=${_FETCH_AFTER_ARGS.${FETCH_USING}:Q} \
Could you try that?
I could add guards for this unset, so only it will be used when FETCH_CMD is
set to ftp.
Regards,
--
Daniel Horecki
http://morr.pl http://linux.pl http://netbsd.pl http://netbsd.org
HAIL ERIS!
BOFH since 1999.
Home |
Main Index |
Thread Index |
Old Index