Subject: Re: Replacing path to bash
To: Geert Hendrickx <ghen@telenet.be>
From: Jeremy C. Reed <reed@reedmedia.net>
List: tech-pkg
Date: 12/13/2005 14:27:55
On Tue, 13 Dec 2005, Geert Hendrickx wrote:

>> This can actually be done slightly better.  You can add "bash" to
>> USE_TOOLS, and then just use ${TOOLS_PATH.bash} instead of needing to
>> derive the path to the bash binary yourself.
>
> Doesn't USE_TOOLS only imply a build dependency?

No.

It is only briefly documented in pkgsrc/doc/guide/files/fixes.xml.

I started writing a doc/guide/files/tools.xml but never committed. I have:

The USE_TOOLS definition is used both internally by pkgsrc and also
in individual packages to define what commands are needed for
building a package (like BUILD_DEPENDS) or for later run-time of
an installed packaged (such as DEPENDS).  If the native system
provides the tools, then in many cases, a pkgsrc package will not
be used.

The tools used by a package can be listed by running "make show-tools".

The default set of tools used by pkgsrc is defined in bsd.pkg.mk.
This includes standard Unix tools, such as: cat, awk, chmod, test,
and so on.

If a package needs a specific program to build then the USE_TOOLS
variable can be used to define the tools needed.

Examples:

USE_TOOLS+=     mktemp:pkgsrc
USE_TOOLS+=     gmake perl:run pkg-config

In the above examples, the :pkgsrc means to use the pkgsrc version
and not the native version and the :run means that it used for a
run-time dependencies also. The default is a build dependency (which can 
be set with :build.)

I need to write more about the TOOLS_PATH.foo too.

Please add examples and suggestions to above and I will add this 
tools.xml.

  Jeremy C. Reed

  	  	 	 technical support & remote administration
 	  	 	 http://www.pugetsoundtechnology.com/