Source Package Installation Instructions

(1)Do not install packages as root/super-user. Although some components may have setuid executables, few must be owned by root. These are best changed manually when the security implications are understood.
(2)Choose a package root directory and cd to it. This will be a local work area for all packages.
(3)These instructions bypass the click to download package links on the download site. If you already clicked, or if your system does not have curl(1), hurl(1), lynx(1) or wget(1) then use the alternate instructions for (3),(4),(5) in plan B below. Plan B installs the hurl(1) script which works with ksh and modern bash. The top level URL is:
(4)If the bin/package script does not exist then run:
		test -d bin || mkdir bin
		(wget -O - $url||curl -L $url||hurl $url) > bin/package
		chmod +x bin/package
(5)Determine the list of package names you want from the download site, then use the package(1) command to do the actual download:
		bin/package authorize "NAME" password "PASSWORD" \
			setup source $URL PACKAGE ...
(Refer to the AUTHORIZATION paragraph on the main download page for NAME/PASSWORD details.) This downloads the closure of the latest source package(s); covered and up-to-date packages are not downloaded again unless package force ... is specified. Package content is verified using md5sum. If the package root will contain only one architecture then you can install in bin and lib instead of arch/HOSTTYPE/bin and arch/HOSTTYPE/lib by running this instead:
		bin/package authorize "NAME" password "PASSWORD" \
			flat setup source $URL PACKAGE ...
To update the same packages from the same URL run:
		bin/package setup source
(6)Build and install; all generated files are placed under arch/HOSTTYPE ($INSTALLROOT), where HOSTTYPE is the output of bin/package (with no arguments.) name=value arguments are supported; CC and debug=1 (compile with -g instead of -O) are likely candidates. The output is written to the terminal and captured in $INSTALLROOT/lib/package/gen/make.out:
		bin/package make
(7)List make results and interesting errors:
		bin/package results
Run the regression tests:
		bin/package test
List test results and errors:
		bin/package results test
(8)The generated binaries are position independent, i.e., they do not contain hard-coded paths. However, commands with related files, like file(1) and nmake(1), require the path of the bin directory to be exported in PATH.
(9)You can run the binaries directly from the package root, or you can install them in a public root after you are satisfied with the make and test actions (requires the AT&T nmake(1) command):
		bin/package flat install DIRECTORY PACKAGE
This will install in DIRECTORY/bin and DIRECTORY/lib. If you want to preserve the arch/HOSTTYPE hierarchy under DIRECTORY then omit the flat argument. If you don't have nmake(1) then the following will do a flat install:
		cp -p -r bin lib include DIRECTORY
(10)To summarize, after the first time the download, build, and test cycle for the latest source release is:
		bin/package setup source
		bin/package make
		bin/package test

Source Package Installation Instructions -- Plan B

(3)Create the subdirectory lib/package/tgz and download all package archives into that directory.
(4)If the bin/package script does not exist then manually read the INIT source package:
		gunzip < lib/package/tgz/INIT.YYYY-MM-DD.tgz | tar xvf -
Note that some browsers automatically unzip downloaded without warning. If the gunzip fails try: tar xvf - lib/package/tgz/INIT.YYYY-MM-DD.tgz If your system does not have tar(1) or gunzip(1) then download the ratz source package, compile it, and manually read the INIT source package:
		mkdir bin
		cp lib/package/tgz/ratz.YYYY-MM-DD.c lib/package/tgz/ratz.c
		cc -o bin/ratz lib/package/tgz/ratz.c
		bin/ratz -lm < lib/package/tgz/INIT.YYYY-MM-DD.tgz
(5)Read all unread package archive(s):
		bin/package read
Both source and binary packages will be read by this step.