distfiles / md5 / plain-text via FTP proxy
Raphael H. Becker
rabe at p-i-n.com
Sun Oct 9 02:16:07 PDT 2005
On Wed, Sep 28, 2005 at 10:03:28AM -0400, Kris Kennaway wrote:
> On Wed, Sep 28, 2005 at 02:45:24PM +0200, Raphael H. Becker wrote:
> > Apropos "md5-secured" distfiles:
> >
> > If you use a proxy (e.g.squid) for ftp, it might use FTP-ASCII for
> > transfer, not BINARY, which might result in a inband conversation from
> > CRLF to LF in FTP for ASCII-files (.txt, .c, ... )
> >
> > Some ports with distfile patches as textfiles or plain c-Sources
> > (GhostScript, squid(?), ... ) complain about bad md5-sums.
> >
> > Deleting this files and refetching without proxy
> > (ftp_proxy="" portupgrade -rF foo/bar) is a manual workaround for this.
> >
> > In some environments you don't have ftp without a (squid)proxy.
> >
> > Any idea or better workaround?
>
> I'd like to know one too. This is arguably a bug in squid, since it
> should not be rewriting content without me telling it to.
No workaround, but how to repeat:
$ ftp_proxy="" fetch -o gdevlx50.c_noproxy \
"ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ghostscript/gdevlx50.c"
$ ftp_proxy="http://localhost:3128/" fetch -o gdevlx50.c_proxy \
"ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ghostscript/gdevlx50.c"
$ wc -lc gdevlx50.c_*
2732 99428 gdevlx50.c_noproxy
2732 102160 gdevlx50.c_proxy
$ file gdevlx50.c_*
gdevlx50.c_noproxy: ASCII C program text
gdevlx50.c_proxy: ASCII C program text, with CRLF line terminators
$ md5 gdevlx50.c_*
MD5 (gdevlx50.c_noproxy) = 081e355c866316a56fbbff5b59f2b7cf
MD5 (gdevlx50.c_proxy) = 06b0518d1d0aeedd61d4c7d27921cf62
$ grep gdevlx50.c /usr/ports/print/ghostscript-gnu/distinfo
MD5 (ghostscript/gdevlx50.c) = 081e355c866316a56fbbff5b59f2b7cf
SIZE (ghostscript/gdevlx50.c) = 99428
All plain text distfiles fetched using ftp through squid are affected!
My personal workaround for this is a MASTER_SITE_OVERRIDE in
/etc/make.conf with a http-Server:
MASTER_SITE_OVERRIDE?=http://ftp.plusline.de/FreeBSD/distfiles/${DIST_SUBDIR}/
$ http_proxy="http://localhost:3128/" fetch -o gdevlx50.c_proxy_http \
"http://ftp.plusline.de/FreeBSD/distfiles/ghostscript/gdevlx50.c"
$ md5 gdevlx50.c_*
MD5 (gdevlx50.c_noproxy) = 081e355c866316a56fbbff5b59f2b7cf
MD5 (gdevlx50.c_proxy) = 06b0518d1d0aeedd61d4c7d27921cf62
MD5 (gdevlx50.c_proxy_http) = 081e355c866316a56fbbff5b59f2b7cf
Regards
Raphael Becker
More information about the freebsd-ports
mailing list