Subject: Re: Help !
To: Jobe Tamata <jbtamata@yahoo.com>
From: Johnny C. Lam <jlam@NetBSD.org>
List: tech-pkg
Date: 08/06/2005 18:12:32
On Mon, Aug 01, 2005 at 02:35:52AM -0700, Jobe Tamata wrote:
> I am a student of University and this is the first
> time I am doing a project in open source software.Our
> project is to try and get actively involved in a
> parallel bulk build system but the problem is that I
> don't have good foundational knowledge on how this
> system works.Would anyone of you developers provide me
> with links so I could do I bit of research on this and
> state helping out in the development of the system.

You can treat pkgsrc as a black box that takes certain actions and
produces certain output based on different commands.  pkgsrc is laid
out in a category/package hierarchy under the main pkgsrc directory.
Within each package directory, the following commands will be the most
relevant for you (note the prominent use of "make" since pkgsrc is
fundamentally a collection of Makefiles):

* make package

	This builds and installs the package and also produces a binary
	package that can be copied to another machine and installed
	there.  The default location for where the binary packages
	are produced is in the pkgsrc/packages/All directory.  This
	command changes the filesystem.

* make clean

	This cleans up any scaffolding and  files that were created
	as part of building the package.  This only cleans up the work
	area, and leaves the binary package alone.  This command
	changes the filesystem.

* make show-var VARNAME=PKGNAME

	This shows the name of the package, including the version
	number.  The name of the binary package that would be produced
	by "make package" is ${PKGNAME}.tgz.

* make show-var VARNAME=DEPENDS

	This shows the "direct" dependencies that this package needs.
	These dependencies may in turn have other dependencies, but
	those other dependencies are not shown here.  This command
	does not change the filesystem.

* make show-depends-dirs

	This lists the pkgsrc directories for the direct dependencies.
	This command does not change the filesystem.

If you are building a bulk build system for pkgsrc, I recommend not
adding stuff directly into pkgsrc, but rather build an external system
that treats pkgsrc as a closed black box.

If you have any additional questions, please feel free to post to the
tech-pkg@NetBSD.org mailing list.  It would help my mail filter
considerably if you prepended "[BBC]" to the subject so I can more
easily locate these threads.

	Cheers,

	Johnny Lam <jlam@NetBSD.org>