> From [email protected] Sun Aug 23 01:26:36 2009
> To: matecocido <[email protected]>
> Cc: [email protected], [email protected]
> From: Stuart Henderson <[email protected]>
> Subject: Re: TiMidity Port trouble
> Date: Sat, 22 Aug 2009 23:22:39 +0100
>
> In gmane.os.openbsd.misc, matecocido <[email protected]> wrote:
> > Hi!
> >
> > I wont play a midi file, to do this i follow
> > http://www.openbsd.org/faq/faq13.html#playaudio...
> >
> > I have OpenBSD 4.5 release.
> >
> > when i  try to install TiMidity port, i have a trouble, in particular :
> >
> > - before download the source in many places i have:
> > "Size does not match for /usr/ports/distfiles/TiMidity++-2.13.2.tar.gz"
> >
> > - and in some places (openbsd official mirrors) this file don't exist.
> >
> > this is mi log:
> >
> > *********************************
> >>> TiMidity++-2.13.2.tar.gz doesn't seem to exist on this system.
> >>> Fetch 
> >>> http://easynews.dl.sourceforge.net/sourceforge/timidity/TiMidity++-2.13.2.tar.gz.
> > 100% |**************************************************|  1806 KB    00:32
> >>> Size does not match for /usr/ports/distfiles/TiMidity++-2.13.2.tar.gz
>
> This happens in -current too.
>
> It looks like sourceforge have reorganised things a bit and are now
> doing redirects for many (all?) downloads. The "Location" header for
> the redirect is URL-encoded; ftp(1) is using the new URL-encoded
> filename to save to, so + gets changed to %2B.
>
> So in this case the file is actually being saved correctly (I've
> checked; the checksum does match) but with an unexpected name, so the
> "cksum -c" done by bsd.port.mk fails.
>
> Here's a quick workaround so you can build this port: you can
> fetch this file into /usr/ports/distfiles yourself, giving it the
> expected name (TiMidity++-2.13.2.tar.gz), then you can build the
> port.
>
> About fixing it, I think ftp should just use the filename part
> of the URL from the command line and not adjust it when there's
> a redirect. I think allowing the remote server to change file
> name is downright dangerous; "Location: http://blah/.profile";,
> anyone?).

Although some things rely on redirects changing the file name;  I
like the idea and came up with a similar diff in the past.  It is
simpler than decoding name back, and also safer since we always
overwrite.

> The diff below changes to this behaviour; I think this is what's
> actually described in the last paragraph of "AUTO-FETCHING FILES"
> in ftp(1) so I don't think the manual needs to be changed (but
> it probably does warrant a mention in current.html).

Looks good to be;  it is a minor flag day.  Can you run a full ports
make fetch with it?

> Index: fetch.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/ftp/fetch.c,v
> retrieving revision 1.95
> diff -u -p -r1.95 fetch.c
> --- fetch.c   6 Aug 2009 23:33:35 -0000       1.95
> +++ fetch.c   22 Aug 2009 22:01:37 -0000
> @@ -732,7 +732,7 @@ again:
>                       free(proxyurl);
>                       free(newline);
>                       free(cookie);
> -                     rval = url_get(cp, proxyenv, outfile);
> +                     rval = url_get(cp, proxyenv, savefile);
>                       free(buf);
>                       return (rval);
>               }

Reply via email to