The
nosh
source package is a bzipped tar archive:
This is a self-contained slashpackage-style package. That's a whole subject in itself; and the things that you need to know here are:
It is known to build, run, and work on
PC-BSD 9.1,
FreeBSD 10,
and Debian Linux version 7.
It should similarly build, run, and work on any modern BSD and on any
modern Linux flavour.
It makes use of various …at() system calls from
POSIX.1:2008, for security and safety.
It also makes use of the kqueue mechanism
(throughout on BSD, on Linux where library bugs don't make it unusable).
It might similarly build, run, and work on Hurd (although Debian Hurd
has proven to be so broken in even basic things like the Debian installer that
it has as yet not been possible to upload it to and compile it on a Hurd
system).
It requires redo to build, and builds with the g++ and clang++ compilers. The build system attempts to autodetect the available compiler.
To build and export all in one go run
package/compile && sudo package/export You can just build:
package/compile This gives you:
command/, which you can just add to your PATH environment variable or symlink to;
manual/;
guide/ starting at guide/index.html;
config/.
The build process updates files in these directories atomically. It doesn't create part-written executables or other files at their final names. So you can run things straight out of these directories whilst rebuilding.
To clean the build run
package/clean or just rm -r build/
To clean the build, packaging, and built files run
package/distclean To build the FreeBSD/PC-BSD binary packages run
package/bsd/prepare bsd/rules clean build binary
This requires pkg version 1.2 or later in order to avoid segmentation faults and other bugs. So ensure that pkg is up to that version in your ports tree.
To build the Debian Linux binary packages run
package/debian/prepare dpkg-buildpackage -b
Putting things into places outwith the self-contained directory is "exporting". To export to /usr/local run (as the superuser)
package/export /usr/local This doesn't set up the service bundles particularly well yet, and this command may change.