Subject: Re: pkg/11286: pkgsrc "make fetch" should *always* fetch
To: Frederick Bruckman <fb@enteract.com>
From: Robert Elz <kre@munnari.OZ.AU>
List: tech-pkg
Date: 10/23/2000 04:27:25
In reply to my PR pkg/11286 which requested that "make fetch" not
test whether pkgsrc thinks the distfile will be useful or not before
fetching it:

    Date:        Sun, 22 Oct 2000 11:01:03 -0500 (CDT)
    From:        Frederick Bruckman <fb@enteract.com>
    Message-ID:  <Pine.NEB.4.21.0010221057510.338-100000@fiona.home>

  | Please, no. This is how it used to work, and we got a lot of
  | complaints from users who spent hours downloading huge distfiles
  | before finding that they couldn't compile or use the program.

Maybe I wasn't quite as clear as I shoudl have been...

I certainly don't want the sequence

	cd pkgsrc/category/name
	make

to go and fetch the distfile if the pkg can't be compiled (or isn't
needed) on the system in question.  That would clearly be a poor idea.

What I want is for

	cd pkgsrc/category/name
	make fetch

to fetch the distfile.   That is, for "make" (or "make install" or
"make package") the check for usefulness should be done before the
internal "make fetch" is done, not as part of that "make fetch".

I doubt that very many users are going to be complaining about this, as
I doubt almost any of them actually type "make fetch" (which is the only
case I'd like to see altered).

  | If you want to override the check for some reason, you could use
  | "make do-fetch".

If that would work, it would be just fine, but ...

	lavender# make do-fetch
	make: don't know how to make do-fetch. Stop

Note: I am actually executing this in pkgsrc itself (I want to fetch
every distfile used by the pkgsrc system that I don't already have).
It works fine if I do it inside one of the actual pkg directories, but
there are way too many of them to go do this by hand in every one.

The "for some reason" is that I am doing the fetch from an alpha running
a recent NetBSD, whereas I'm likely to compile the actual packages on
i386, sparc, and other stuff running (sometimes very) much older NetBSDs.
Thus the check for "it won't work on your alpha" is useless, and the
check for "is already part of your NetBSD" is sometimes wrong.

Is there some target that I can't find that exists in the top level
makefile which will actually fetch everything?  (And I mean everything, I
am not planning on making cdroms and distributing this stuff, so I don't
want to be blocked by "no redistribute" stuff, and I work at a non-profit
educational institution, so just about every conceivable licence that would
apply to anything in pkgsrc is OK).

If not, could someone please consider whether pkgsrc could have a target
like this (I don't care if it is "make fetch" or not, that just seemed like
the sensible one to me).

kre