fetch: expansion of correct source location in MASTER_SITES fails

Chris Rees utisoft at gmail.com
Sat Jun 1 14:57:58 UTC 2013


On 1 Jun 2013 15:12, "Jimmy Kelley" <ljboiler at gmail.com> wrote:
>
> On Sat, Jun 01, 2013 at 02:47:18PM +0200, O. Hartmann wrote:
> > On Sat, 01 Jun 2013 11:48:37 +0000
> > Steve Wills <steve at mouf.net> wrote:
> >
> > > On 06/01/13 11:17, O. Hartmann wrote:
> > > >
> > > > I'm preparing a port and I fail downloading the sources, although
> > > > the base URL and the target tar ball are expanded correctly. But
> > > > the fetch process then complains with this:
> > > >
> > > > [...]
> > > > ===>   pocl-0.8.0 depends on file: /usr/local/sbin/pkg - found
> > > > => pocl-0.8rc1.tar.gz doesn't seem to exist
> > > > in /usr/ports/distfiles/. => Attempting to fetch
> > > > http://sourceforge.net/projects/pocl/files/pocl-0.8rc1.tar.gz fetch:
> > > > http://sourceforge.net/projects/pocl/files/pocl-0.8rc1.tar.gz: Moved
> > > > Temporarily
> > > >
> > > > If one the takes the error line named
> > > >
> > > > fetch http://sourceforge.net/projects/pocl/files/pocl-0.8rc1.tar.gz
> > > >
> > > > and issue it directly on the console, surprisingly the the fetch
> > > > works! This is weird.
> > > >
> > > > What is wrong here? Is this a bug in fetch?
> > >
> > > Nothing is wrong here. The "=> Attempting..." line is not trying to
> > > tell you what command it is running, but rather what it is doing.
> > > This result is perfectly normal due to the default args that ports
> > > pass to fetch. See bsd.port.mk:
> > >
> > >    2214 FETCH_ARGS?=    -AFpr
> > >
> > > The fetch man page will explain these further.
> > >
> > > For Sourceforge, there is a "SF" macro in bsd.sites.mk which you
> > > should use so that users will try the various mirrors. Many ports use
> > > this, so there are many examples to follow.
> > >
> > > Steve
> >
> > Thank you for clearify this.
> >
> > Even if I use the SF macro and set FETCH_ARGS= to en ampty string (I
> > suppose this will result in a "plain" fetch command without options)
> > the result is as described intially.
> >
> > Applying the -v option to fetch then shows what happens and everything
> > looks fine to me so far - except that the Makefile-Port-Fetch doesn't
> > work. This is strange!
>
> The SF macro used with nothing else expects the project on Sourceforge to
be
> layed out with subdirectories corresponding to the PORTVERSION, which
then would
> contain the file to be downloaded.
>
> If you use SF/${PORTNAME} for MASTER_SITES, it will fetch the file
> ${PORTNAME}-${PORTVERSION}.tar.gz from the top-level download directory.
>
>
> The -A fetch option for ports is something you do not want to ignore:
always
> go straight to a file location, and don't trust something telling you that
> it has "moved"...

Ignoring redirects makes things more reliable because it forces one to get
a real location, but with checksums it's not really a security problem.

Chris


More information about the freebsd-ports mailing list