Subject: Re: WRKSRC's position in Makefiles, and pkglint
To: None <tech-pkg@netbsd.org>
From: Alistair Crooks <agc@pkgsrc.org>
List: tech-pkg
Date: 01/19/2004 15:49:33
On Mon, Jan 19, 2004 at 12:15:48PM +0100, Thomas Klausner wrote:
> On Mon, Jan 19, 2004 at 11:06:51AM +0000, Alistair Crooks wrote:
> > WRKSRC is the name of the directory in the build area on a local
> > machine where files will get extracted to, and built from.  WRKSRC is
> > not a property of the distfile - I would bet that 99% of all of the
> > distfiles in pkgsrc have no idea what a "WRKSRC" is.  Rather, WRKSRC
> > derives its name from DISTNAME by default, but that is absolutely no
> > reason to put WRKSRC beside DISTNAME.
> 
> I meant that WRKSRC is a property of the distfile because it is
> derived from the internal directory path of the files in the distribution
> tarball, prepended by WRKDIR. If the distfile changes, the WRKSRC changes,
> usually.

You missed out the other point I made about your specifying exceptions
to a rule, and then using the default for the rule to justify the
placement next to a variable which is often not used. Quite why

WRKSRC=		${WRKDIR}

needs to go next to the MASTER_SITES definition is beyond me, but
maybe I'm just getting old.

> > I really do not want the WRKSRC definition cluttering up the most
> > important information at the top of the pkgsrc makefile.
> 
> Cluttering up? It's only one line!

It's ungainly, unsightly, and an internal directory name in the build
system does not belong in the information about category, package
name, dist file name, and master sites.

Size is not important.  Justifying things by saying "it's only one
line" is the thin end of the wedge.

WRKSRC pertains to the build part of pkgsrc, not to the fetch, or to
the binary package creation side.

Regards,
Alistair