This is the README file distributed with NSBD, Not-So-Bad Distribution.
The home page for NSBD is
    http://www.bell-labs.com/nsbd

This directory contains CGI (http Common Gateway Interface) scripts that
assist NSBD.  They are all optional.

linknsb.sh
    - CGI script for maintainers of packages that sets the "Content-Type"
	for '.nsb' files so they can be recognized by web browsers.
	Install a symbolic link to this in the same directory as the '.nsb'
	file or a directory above the '.nsb' file but still accessible as a
	URL, and make sure that it is recognized as a script by your http
	server (my http server is configured to treat all files that end
	in ".cgi" as scripts, so that's the name I choose for the symbolic
	link).  Then, make a hyperlink on your web page to be the URL for
	the script followed by a question mark (?) followed by a path to
	the '.nsb' file relative to the directory that the script is
	installed in.  For example,
	    http://www.bell-labs.com/nsbd/linknsb.cgi?nsbd.nsb
      Alternatively, set the extension '.nsb' in your http server's
	mime.types file to have the content-type of "application/x-nsbd"
	and then hyperlink to the '.nsb' file directly.

multiget.sh
multiget.tcl
    - Two versions of a script for maintainers of packages to improve the
	performance of retrieving multiple files of a package by sending
	them all in the same http connection.  This can be very significant
	if your package has many small files.  This is only a stopgap until
	HTTP/1.1 becomes widely deployed, since HTTP/1.1 by default allows
	multiple retrievals on a single http connection.  The TCL version
	is much faster than the SH version, but to use that you will need
	to edit the first line to point to where your tclsh is installed
	(or you can make your own one-line sh script that invokes your
	tclsh and passes the path to lib/nsbd/multiget.tcl as a parameter).
	Install the script in the top level directory of where your
	package's files are.  Then, in your '.npd' file (and therefore
	'.nsb' file) set the keyword "multigetUrl" to point to the URL of
	this script and don't set the "topUrl" keyword.  Or, you may
	install this script in a directory above the top level directory of
	the package but still accessible to a URL, and add a "?" parameter
	to the "multigetUrl" which is a relative path from there to your
	top level level. For example,
	    http://www.bell-labs.com/nsbd/multiget.cgi?src

nsbdcheck.c
    - Program to compile and install on the user side as a setuid/setgid
	CGI program to remotely request an immediate check for an update to
	a package.  This is only useful in situations where there are a very
	few users of a package.  The maintainer can invoke the URL of this
	CGI program either through a web browser or by using the "-getUrl"
	option of NSBD.  If you use this, you need to be very careful about
	what you put in your preUpdateCommands/postUpdateCommands because
	anyone with a login on your computer may run this program with your
	user id; because of these kinds of risks, this program runs NSBD
	with an empty environment.  It may be preferable to run a special
	http server on your computer that runs under your user id.
