









			Changes To Generic NQS (GNQS)


			 Academic Computing Services
			   University of Sheffield


				Stuart Herbert
			 (S.Herbert@sheffield.ac.uk)
Abstract :

	The University of Sheffield is supplying, and supporting, Generic
	NQS to UK Higher Educational Sites as part of the New Technologies
	Initiative of JISC, under grant NTI/48.2.  This document contains
	a summary of changes for each new release of NQS.


----------------------------
	Contents
----------------------------

1	Introduction

1.1	Introduction

2	Version 3.40.0

2.1	About This Release
2.1.1		Purpose
2.1.2		Supported Platforms
2.1.3		Testing
2.1.4		Changes List
2.2	New Name
2.3	AIX 4.1 Support Added
2.3.1		Description
2.3.2		Status
2.3.3		Platforms Affected
2.3.4		Code Contributed By
2.4	Fujitsu VP2200/20 UXP/M Support Added
2.4.1		Description
2.4.2		Platforms Affected
2.4.3		Status
2.4.4		Code Contributed By
2.5	Experimental HP-UX 10 Support Added
2.5.1		Description
2.5.2		Status
2.5.3		Platforms Affected
2.5.4		Code Contributed By
2.6	UNICOS 8 Support Added
2.6.1		Description
2.6.2		Status
2.6.3		Platforms Affected
2.6.4		Code Contributed By
2.7	Compilation Fixes For AIX 3
2.7.1		Description
2.7.2		Status
2.7.3		Platforms Affected
2.7.4		Code Contributed By
2.8	Compilation Fixes For Fujitsu
2.8.1		Description
2.8.2		Status
2.8.3		Platforms Affected
2.8.4		Code Contributed By
2.9	Compilation Fixes For ULTRIX
2.9.1		Description
2.9.2		Platforms Affected
2.9.3		Status
2.9.4		Code Contributed By
2.10	`Cost' Style Accounting Hook Added
2.10.1		Description
2.10.2		Status
2.10.3		Platforms Affected
2.10.4		Code Contributed By
2.11	Dynamic Scheduling Added
2.11.1		Description
2.11.2		Status
2.11.3		Platforms Affected
2.11.4		Code Contributed By
2.12	New Documentation
2.12.1		Description
2.12.2		Status
2.12.3		Contributed By
2.13	NIS Netgroup Support
2.13.1		Description
2.13.2		Status
2.13.3		Platforms Affected
2.13.4		Code Contributed By
2.14	Optional Features Now Available
2.14.1		Description
2.14.2		Status
2.14.3		Platforms Affected
2.14.4		Code Contributed By
2.15	Portability Fixes
2.15.1		Description
2.15.2		Status
2.15.3		Platforms Affected
2.15.4		Code Contributed By
2.16	Processor Set Functionality Now Optional Extra
2.16.1		Description
2.16.2		Status
2.16.3		Platforms Affected
2.16.4		Code Contributed By
2.17	Temporary Directory Functionality Now Optional Extra
2.17.1		Description
2.17.2		Platforms Affected
2.17.3		Code Contributed By
2.18	ANSI C Cleanups
2.18.1		Description
2.18.2		Platforms Affected
2.18.3		Status
2.18.4		Code Contributed By
2.19	More ANSI C Cleanups
2.19.1		Description
2.19.2		Platforms Affected
2.19.3		Status
2.19.4		Code Contributed By
2.20	More ANSI C Fixes
2.20.1		Description
2.20.2		Platforms Affected
2.20.3		Status
2.20.4		Code Contributed By
2.21	Email Messages Corrected
2.21.1		Description
2.21.2		Platforms Affected
2.21.3		Status
2.21.4		Code Contributed By
2.22	Jobs No Longer Get Stuck In Routing State
2.22.1		Description
2.22.2		Status
2.22.3		Platforms Affected
2.22.4		Code Contributed By
2.23	More Environment Variable Fixes
2.23.1		Description
2.23.2		Platforms Affected
2.23.3		Status
2.23.4		Code Contributed By
2.24	NMAP Database Fixes
2.24.1		Description
2.24.2		Status
2.24.3		Platforms Affected
2.24.4		Code Contributed By
2.25	qcat -u Fixed
2.25.1		Description
2.25.2		Platforms Affected
2.25.3		Status
2.25.4		Code Contributed By
2.26	Quota Support Improved
2.26.1		Description
2.26.2		Status
2.26.3		Platforms Affected
2.26.4		Code Contributed By
2.27	Further Quota Fixes
2.27.1		Description
2.27.2		Status
2.27.3		Platforms Affected
2.27.4		Code Contributed By
2.28	Removal of BSDish Code
2.28.1		Description
2.28.2		Platforms Affected
2.28.3		Status
2.28.4		Code Contributed By
2.29	Scheduling Fix On Startup
2.29.1		Description
2.29.2		Platforms Affected
2.29.3		Status
2.29.4		Code Contributed By
2.30	Unanticipated Transaction Failure Fix
2.30.1		Description
2.30.2		Platforms Affected
2.30.3		Status
2.30.4		Change Contributed By
----------------------------
1	Introduction
----------------------------

	--------------------
1.1	Introduction

	This is a summary of changes to Generic NQS as released by the
	University of Sheffield.

	We are most grateful for the contributions made by other individuals
	and organisations.

----------------------------
2	Version 3.40.0
----------------------------

	--------------------
2.1	About This Release

	----------
2.1.1	Purpose

	This is the full public release of Generic NQS v3.40.0.  Generic NQS
	was previously known as Monsanto-NQS.

	----------
2.1.2	Supported Platforms

	This product has been compiled, and used, on the following 
	platforms prior to full release :

	> ----------------------------------------------------------------
	> Platform	| Release	| Compiler	| Tested?
	>		| Used		| Warnings?	|
	> ----------------------------------------------------------------
	> AIX v3	| v3.40.0 #3	| Unknown	| Yes
	> AIX v4	| v3.40.0 #3	| Unknown	| Yes
	> Fujitsu	| v3.40.0 #2	| Very few	| Yes
	> HP-UX 8.x	| v3.40.0 #3	| Unknown	| Yes
	> IRIX 5.3	| v3.40.0 #3	| Unknown	| Yes
	> IRIX 6.0 (32) | v3.40.0 #3	| Unknown	| Yes
	> Linux/ELF	| v3.40.0 #3	| No		| Yes
	> Solaris 2.3	| v3.40.0 #3	| No		| Yes
	> Solaris 2.4	| v3.40.0 #3	| No		| Yes
	> SunOS 4.1.3	| v3.40.0 #3	| Very few	| Doesn't work
	> ULTRIX 4.3a	| v3.40.0 #1	| No		| No
	> UNICOS v8	| v3.40.0 #2	| Unknown	| Yes
	> ----------------------------------------------------------------

	The following platforms are also supported, but we have been unable
	to test this product on them prior to full release.

	> ----------------------------------------------------------------
	> Platform		| Last Release We Know Which Worked
	> ----------------------------------------------------------------
	> HPUX 8.x		| v3.37.1
	> HPUX 9.x		| v3.37.1
	> IRIX 4		| v3.36.0
	> IRIX 5.2		| v3.37.1
	> IRIX 6.1		| v3.37.1
	> NCR			| v3.36.6
	> OSF/1 v3.2		| v3.37.1
	> SunOS v4.x		| v3.37.1
	> ----------------------------------------------------------------

	If you successfully compile this release on other platforms, please
	send me details, so that I can expand this section further.

	----------
2.1.3	Testing

	Prior to release, there were three public pre-releases of Generic
	NQS v3.40.0.  These releases were made to allow the NQS user
	community time to test Generic NQS, and to report any problems with
	the changes which have been made.

	It has not been possible to test all of the following changes on all
	of the supported platforms.  Each change includes a section,
	`Status', which details what testing has been carried out.

	----------
2.1.4	Changes List

	The following sections list the changes between Monsanto-NQS v3.37.1
	and Generic NQS v3.40.0, in the following order :

	o  New Platforms Supported
	o  Compilation Fixes For Supported Platforms
	o  New Features
	o  Bug Fixes
	o  Anything Else

	--------------------
2.2	New Name

	Monsanto-NQS was originally maintained by John Roman, of the
	Monsanto Company.  Since October, 1994, it has been maintained by
	The University of Sheffield.  By agreement with John, there will be
	no more releases under the Monsanto-NQS name.

	--------------------
2.3	AIX 4.1 Support Added

	----------
2.3.1	Description

	Generic NQS has been ported to v4.1 of IBM's AIX operating system.

	----------
2.3.2	Status

	Pre-releases #2 and #3 were tested.

	----------
2.3.3	Platforms Affected

	> [ ] AIX 3			[x] AIX 4
	> [ ] FUJITSU			[ ] HPUX 8
	> [ ] HPUX 9		        [ ] HPUX 10
	> [ ] IRIX 4			[ ] IRIX 5
	> [ ] IRIX 6			[ ] LINUX
	> [ ] NCR			[ ] OSF/1
	> [ ] SOLARIS 2			[ ] SUNOS 4
	> [ ] ULTRIX			[ ] UNICOS

	----------
2.3.4	Code Contributed By

	Mark Loveridge (markl@gatwick.geco-prakla.slb.com)

	--------------------
2.4	Fujitsu VP2200/20 UXP/M Support Added

	----------
2.4.1	Description

	Generic NQS now compiles and functions on the Fujitsu VP2200/20
	running UXP/M V10L20, compiled with /usr/ccs/bin/cc (NOT /usr/ucb/cc).

	----------
2.4.2	Platforms Affected

	> [ ] AIX 3			[ ] AIX 4
	> [x] FUJITSU			[ ] HPUX 8
	> [ ] HPUX 9		        [ ] HPUX 10
	> [ ] IRIX 4			[ ] IRIX 5
	> [ ] IRIX 6			[ ] LINUX
	> [ ] NCR			[ ] OSF/1
	> [ ] SOLARIS 2			[ ] SUNOS 4
	> [ ] ULTRIX			[ ] UNICOS

	----------
2.4.3	Status

	Tested.

	----------
2.4.4	Code Contributed By

	Mark Loveridge (markl@gatwick.geco-prakla.slb.com)

	--------------------
2.5	Experimental HP-UX 10 Support Added

	----------
2.5.1	Description

	After discussions with users who have access to HP-UX v10, it appears
	that HP-UX 10 is System 5, release 4 compatible - to be honest, I
	don't actually know if this is true.

	Based on this assumption, I've added a Makefile for HP-UX 10 which
	I expect will compile Generic NQS on HP-UX 10.  Because this port is
	based entirely on this assumption, this support is experimental, and
	feedback from HP-UX users would be *most* appreciated.

	----------
2.5.2	Status

	Completely untested.

	----------
2.5.3	Platforms Affected

	> [ ] AIX 3			[ ] AIX 4
	> [ ] FUJITSU			[ ] HPUX 8
	> [ ] HPUX 9		        [x] HPUX 10
	> [ ] IRIX 4			[ ] IRIX 5
	> [ ] IRIX 6			[ ] LINUX
	> [ ] NCR			[ ] OSF/1
	> [ ] SOLARIS 2			[ ] SUNOS 4
	> [ ] ULTRIX			[ ] UNICOS

	----------
2.5.4	Code Contributed By

	Stu

	--------------------
2.6	UNICOS 8 Support Added

	----------
2.6.1	Description

	Generic NQS has been ported to v8 of Cray's UNICOS operating system.

	----------
2.6.2	Status

	Pre-release #2, plus the UNICOS support patches, have been tested on
	UNICOS v8.

	----------
2.6.3	Platforms Affected

	> [ ] AIX 3			[ ] AIX 4
	> [ ] FUJITSU			[ ] HPUX 8
	> [ ] HPUX 9		        [ ] HPUX 10
	> [ ] IRIX 4			[ ] IRIX 5
	> [ ] IRIX 6			[ ] LINUX
	> [ ] NCR			[ ] OSF/1
	> [ ] SOLARIS 2			[ ] SUNOS 4
	> [ ] ULTRIX			[x] UNICOS

	----------
2.6.4	Code Contributed By

	Dave Safford (saff@tamu.edu)

	--------------------
2.7	Compilation Fixes For AIX 3

	----------
2.7.1	Description

	Generic NQS now compiles without warnings on AIX 3.2.5.

	----------
2.7.2	Status

	Tested.

	----------
2.7.3	Platforms Affected

	> [x] AIX 3			[ ] AIX 4
	> [ ] FUJITSU			[ ] HPUX 8
	> [ ] HPUX 9		        [ ] HPUX 10
	> [ ] IRIX 4			[ ] IRIX 5
	> [ ] IRIX 6			[ ] LINUX
	> [ ] NCR			[ ] OSF/1
	> [ ] SOLARIS 2			[ ] SUNOS 4
	> [ ] ULTRIX			[ ] UNICOS

	----------
2.7.4	Code Contributed By

	Mark Loveridge

	--------------------
2.8	Compilation Fixes For Fujitsu

	----------
2.8.1	Description

	The Fujitsu system libraries declare a global variable `Logfile',
	which conflict with an interal NQS variable of the same name.  The
	NQS variable `Logfile' has been renamed `NetLogfile'.

	----------
2.8.2	Status

	Tested.

	----------
2.8.3	Platforms Affected

	> [ ] AIX 3			[ ] AIX 4
	> [x] FUJITSU			[ ] HPUX 8
	> [ ] HPUX 9		        [ ] HPUX 10
	> [ ] IRIX 4			[ ] IRIX 5
	> [ ] IRIX 6			[ ] LINUX
	> [ ] NCR			[ ] OSF/1
	> [ ] SOLARIS 2			[ ] SUNOS 4
	> [ ] ULTRIX			[ ] UNICOS

	----------
2.8.4	Code Contributed By

	Mark Loveridge

	--------------------
2.9	Compilation Fixes For ULTRIX

	----------
2.9.1	Description

	Substantial work has been done to allow Generic NQS to work on Ultrix
	4.3A.  I have independant reports that this works well.

	----------
2.9.2	Platforms Affected

	> [ ] AIX 3			[ ] AIX 4
	> [ ] FUJITSU			[ ] HPUX 8
	> [ ] HPUX 9		        [ ] HPUX 10
	> [ ] IRIX 4			[ ] IRIX 5
	> [ ] IRIX 6			[ ] LINUX
	> [ ] NCR			[ ] OSF/1
	> [ ] SOLARIS 2			[ ] SUNOS 4
	> [x] ULTRIX			[ ] UNICOS

	----------
2.9.3	Status

	Tested under ULTRIX.  No further work apparently required.

	----------
2.9.4	Code Contributed By

	David Billinghurst (billingd@crc.cra.com.au)

	--------------------
2.10	`Cost' Style Accounting Hook Added

	----------
2.10.1	Description

	The empty function, nqs_checkbal(), can be modified to determine
	whether a user has used up their budget, and if so, their jobs are
	given a priority of zero.

	Sites requiring `Larmouth'-type scheduling in particular may find
	this to be of use in conjunction with the dynamic scheduling
	support.

	`Cost' Accounting is a compile-time optional extra.

	----------
2.10.2	Status

	Tested

	----------
2.10.3	Platforms Affected

	All.

	----------
2.10.4	Code Contributed By

	Dave Safford (saff@tamu.edu)

	--------------------
2.11	Dynamic Scheduling Added

	----------
2.11.1	Description

	The scheduler has been updated, so that queues are resorted just
	before NQS tries to spawn a new request (ie, when a request is
	queued, or a running job exits).

	The supplied default comparison routine, bsc_compare() (source code
	in src/nqs_bsc.c) lowers the priorities of jobs if a user has more
	jobs queued than the current user_limit for the given queue.  This
	routine can be tailored to perform more detailed comparisons.

	Support for dynamic scheduling is a compile-time optional extra.

	----------
2.11.2	Status

	Tested.

	----------
2.11.3	Platforms Affected

	All.

	----------
2.11.4	Code Contributed By

	Dave Safford (saff@tamu.edu)

	--------------------
2.12	New Documentation

	----------
2.12.1	Description

	The documentation `INSTALL', `README', and `PROBLEMS' has all been
	substantially re-written.

	----------
2.12.2	Status

	Done.

	----------
2.12.3	Contributed By

	Stu

	--------------------
2.13	NIS Netgroup Support

	----------
2.13.1	Description

	On platforms which use NIS, the file /etc/hosts.allow may contain
	references to NIS netgroups.  Generic NQS can now parse these
	netgroup references correctly.

	Support for NIS netgroups is a compile-time optional extra.

	----------
2.13.2	Status

	Tested on many previous versions of Monsanto NQS.

	----------
2.13.3	Platforms Affected

	All.

	----------
2.13.4	Code Contributed By

	Thomas Richter (richter@chemie.fu-berlin.de)

	--------------------
2.14	Optional Features Now Available

	----------
2.14.1	Description

	Generic NQS now includes a number of features which can be
	considered optional - the file `FEATURES' provides full
	documentation on these (this document is also available from our
	WWW site).

	The file `proto/Makefile' now provides a variable `FEATURES', to
	which you can add switches to ensure that Generic NQS is compiled
	with the optional features you require.  By default, Generic NQS
	currently ships with the `TAMU' featureset enabled, but this easily
	changed.

	----------
2.14.2	Status

	Tested.

	----------
2.14.3	Platforms Affected

	All.

	----------
2.14.4	Code Contributed By

	Stu.

	--------------------
2.15	Portability Fixes

	----------
2.15.1	Description

	Adding support for a new platform to NQS is often a tedious task of
	going around, editing the many source files to add `-Dplatform' to
	ensure that the correct code is compiled in.

	Generic NQS now allows those porting to new platforms to indicate
	what type of platform they are porting to.  The exising NQS code
	has been broken up into three sets :

	o  Code which is POSIX.1 compliant.

	o  Code which is System V, r4 or later, compliant.

	o  Code which is BSD 4.3 or later compliant.

	Most modern platforms are POSIX.1 complaint, and also SYSVr4
	compliant, and the changes make porting to such platforms
	significantly easier than it currently is, although not perfect
	at this time.

	For platforms which still `do their own thing' in places, support for
	individual platforms can still be added to the source tree, as
	before, but this now only needs to be done for exceptions, rather
	than for everything.

	While working on this modification, a number of inconsistencies came
	to light, affecting support for ULTRIX, UNICOS, and OSF/1.  I've
	asked Dave about what's right for UNICOS, but for OSF/1, I've had to
	guess (not having access to OSF/1 locally) and so OSF/1 users might
	well find that this release is a complete no-go for them.

	With a bit of luck, this will actually lead to the support for
	existing platforms becoming more accurate, and hence more robust,
	once the initial problems are ironed out.  In the meantime, I've
	probably been over-generous in marking code as POSIX, and so the
	platforms which are neither SYSV nor BSD may well have problems.

	----------
2.15.2	Status

	Tested on AIX 3 & 4, IRIX 5 & 6, Linux/ELF, SunOS 4, Solaris 2.
	SunOS 4 support (generic BSD) is reportedly broken, and will be
	fixed in the next release.  OSF/1 support has NOT been tested, and
	is of concern - the OSF/1 port was substantially re-written.

	----------
2.15.3	Platforms Affected

	All.

	----------
2.15.4	Code Contributed By

	Stu.

	--------------------
2.16	Processor Set Functionality Now Optional Extra

	----------
2.16.1	Description

	The processor set support, currently for IRIX 5 & 6, was originally
	added to Monsanto NQS v3.36.4 by Dave Safford.

	This support is now a compile-time optional extra.  It is not
	enabled by default.

	----------
2.16.2	Status

	Tested.

	----------
2.16.3	Platforms Affected

	> [ ] AIX 3			[ ] AIX 4
	> [ ] FUJITSU			[ ] HPUX 8
	> [ ] HPUX 9		        [ ] HPUX 10
	> [ ] IRIX 4			[x] IRIX 5
	> [x] IRIX 6			[ ] LINUX
	> [ ] NCR			[ ] OSF/1
	> [ ] SOLARIS 2			[ ] SUNOS 4
	> [ ] ULTRIX			[ ] UNICOS

	----------
2.16.4	Code Contributed By

	Stu

	--------------------
2.17	Temporary Directory Functionality Now Optional Extra

	----------
2.17.1	Description

	The TMPDIR temporary directory support was originally added to
	Monsanto NQS v3.36.4 by Dave Safford.

	This support is now a compile-time optional extra.

	----------
2.17.2	Platforms Affected

	All.

	----------
2.17.3	Code Contributed By

	Stu

	--------------------
2.18	ANSI C Cleanups

	----------
2.18.1	Description

	More work has been done to ensure that NQS compiles cleanly under
	ANSI C.  If your native C compiler has trouble with these changes,
	please try to compile NQS with the Free Software Foundation's GCC
	before reporting any problems.

	From now on, please report any compile-time warnings so that they
	can be eliminated.

	----------
2.18.2	Platforms Affected

	All platforms affected.

	----------
2.18.3	Status

	Tested on Linux/ELF and Solaris 2.3 by Stu.

	----------
2.18.4	Code Contributed By

	David Billinghurst, Mark Loveridge, and Stu.

	--------------------
2.19	More ANSI C Cleanups

	----------
2.19.1	Description

	Pre-release #2 produced compiler warnings when compiled as a native
	64-bit binary for IRIX 6.  Many of these warnings were related to
	unused variables, and unreachable code.

	Warnings generated at compile time should have been eliminated - I'd
	like to know if I've missed any.  Warnings generated at link time
	remain - the SGI compiler is somewhat noisy in this area.

	Please note that, even with these fixes, the 64-bit version of NQS
	reportedly still does not compile on IRIX 6 at this time.  It is
	**POSSIBLE** that this is a problem with older versions of the IRIX
	6.0x compiler.

	In addition, Mark has done numerous cleanups for SunOS 4.1.4_U1, and
	general cleaning up of code I'd previously added myself.

	----------
2.19.2	Platforms Affected

	All.

	----------
2.19.3	Status

	Not tested - I don't have access to IRIX 6.  Mark has tested his
	patches by compiling on Solaris, SunOS, AIX 3 & 4, IRIX 5.3, and
	Fujitsu UXP/M.

	----------
2.19.4	Code Contributed By

	Stu, with thanks to Dr Jaume Farras, University of Barcelona.
	Mark Loveridge

	--------------------
2.20	More ANSI C Fixes

	----------
2.20.1	Description

	The declaration of function prototypes in the NQS source code was
	previously of the form :

	> #ifndef __CEXTRACT__
	> #if __STDC__
	>
	>    ANSI C Prototypes
	>
	> #else
	>
	>    KnR C Prototypes
	>
	> #endif
	> #endif

	This has been reduced down to just ANSI C prototypes.  This has the
	following benefits :

	o  Remove a number of compile time warnings from Solaris 2
	o  Enable compilation on Fujitsu machines

	----------
2.20.2	Platforms Affected

	All.

	----------
2.20.3	Status

	Tested.

	----------
2.20.4	Code Contributed By

	Stu

	--------------------
2.21	Email Messages Corrected

	----------
2.21.1	Description

	If NQS_SPOOL was set to anything but the default value, email to
	users once the output was spooled would contain an incorrect
	directory name.  Fixed.

	----------
2.21.2	Platforms Affected

	All.

	----------
2.21.3	Status

	Tested.

	----------
2.21.4	Code Contributed By

	Mark Loveridge, and Stu.

	--------------------
2.22	Jobs No Longer Get Stuck In Routing State

	----------
2.22.1	Description

	When a job is being moved from one pipe queue to another pipe queue,
	the job is said to be in the `routing state'.  While it is in this
	state, the job cannot be deleted.

	I consider this to be one of the three most important outstanding
	problems reported for Generic NQS (the other two being unanticipated
	transaction failures, fixed by David Billinghurst, and problems with
	reading the nmap database, so far unfixed) because the only way to
	recover from this is to delete the NQS spool space and reinstall.

	This problem occurs when, for some reason, pipeclient fails to
	establish communication with a remote host.  If a pipe queue has
	several destinations, and at least one of them successfully accepts
	the transfer, there is no problem, but when all the destination(s)
	fail, the request remains in the routing stage, where it cannot be
	deleted at all.

	The problem was caused by pipeclient failing to tell the NQS daemon
	to reschedule the request correctly.  Now, once pipeclient has
	determined that all remote hosts are unavailable, the request is
	requeued in the waiting state (where it can be deleted etc as
	desired).

	----------
2.22.2	Status

	Second implementation of solution.  Tested on Solaris 2.3 and
	Linux/ELF - no apparent side effects observed to date.

	----------
2.22.3	Platforms Affected

	All.

	----------
2.22.4	Code Contributed By

	Stu.

	--------------------
2.23	More Environment Variable Fixes

	----------
2.23.1	Description

	When NQS builds an environment for processes, it now correctly
	determines the length of all the strings in the environment.

	----------
2.23.2	Platforms Affected

	All.

	----------
2.23.3	Status

	Tested.

	----------
2.23.4	Code Contributed By

	Mark Loveridge

	--------------------
2.24	NMAP Database Fixes

	----------
2.24.1	Description

	Under pre-releases of Generic NQS v3.40.0, the `list' command of
	nmapmgr failed to list any aliases defined for a machine. This was
	caused by a previous fix to remove compile-time warnings, and has
	been fixed.

	----------
2.24.2	Status

	Tested.

	----------
2.24.3	Platforms Affected

	All.

	----------
2.24.4	Code Contributed By

	Stu.

	--------------------
2.25	qcat -u Fixed

	----------
2.25.1	Description

	whompw was not initialised to NULL, and this prevented qcat -u
	working on all platforms except Fujitsu.  Fixed.

	----------
2.25.2	Platforms Affected

	All except Fujitsu.

	----------
2.25.3	Status

	Tested.

	----------
2.25.4	Code Contributed By

	Mark Loveridge

	--------------------
2.26	Quota Support Improved

	----------
2.26.1	Description

	The `quotas' (kernel-supported resource limits in UNIX parlance)
	enforcing code has been reworked.  For all SYSV-like platforms, a
	resource limit of `unlimited' should now be correctly enforced,
	while for BSD-like platforms, resource limits greater than
	`unlimited' should now be correctly set to unlimited.

	The `quotas' code is now the same for all platforms.

	This change was introduced at this stage to fix problems encountered
	on the IRIX 6 platform.

	----------
2.26.2	Status

	Tested on Solaris 2.3 and Linux/ELF - a subset of the changes have
	also been used at Exeter, on IRIX 6.

	----------
2.26.3	Platforms Affected

	All.

	----------
2.26.4	Code Contributed By

	Stu

	--------------------
2.27	Further Quota Fixes

	----------
2.27.1	Description

	Code has been streamlined in Generic NQS, to ensure that the
	implementation of BSD-like kernel-supported resources is correct.

	This code may not work for platforms which do not support the ANSI C
	CLK_TCK symbol.

	----------
2.27.2	Status

	Tested.

	----------
2.27.3	Platforms Affected

	All

	----------
2.27.4	Code Contributed By

	Stu, based on discussions with Phil Chambers
	(P.A.Chambers@exeter.ac.uk).

	--------------------
2.28	Removal of BSDish Code

	----------
2.28.1	Description

	The amount of code which uses the BSD API has been reduced.  Solaris 2
	supplies a BSD-compatibility library which is notorious for being
	buggy, while Linux + ELF doesn't seem to provide such a library at
	all ...

	NOTE that these changes have not been extensively tested, and may
	result in broken functionality.

	----------
2.28.2	Platforms Affected

	> [ ] AIX 3			[ ] AIX 4
	> [ ] FUJITSU			[ ] HPUX 8
	> [ ] HPUX 9		        [ ] HPUX 10
	> [ ] IRIX 4			[ ] IRIX 5
	> [ ] IRIX 6			[x] LINUX
	> [ ] NCR			[ ] OSF/1
	> [x] SOLARIS 2			[ ] SUNOS 4
	> [ ] ULTRIX			[ ] UNICOS

	----------
2.28.3	Status

	Tested under Solaris 2.3 and Linux/ELF.

	----------
2.28.4	Code Contributed By

	Stu

	--------------------
2.29	Scheduling Fix On Startup

	----------
2.29.1	Description

	When restarting NQS, pending jobs were not started up in a timely
	fashion.  This has been fixed.

	----------
2.29.2	Platforms Affected

	All.

	----------
2.29.3	Status

	Tested on Solaris 2.3 and Linux/ELF.  No apparent side effects
	observed.

	----------
2.29.4	Code Contributed By

	Rob Creecy (rcreecy@census.gov)

	--------------------
2.30	Unanticipated Transaction Failure Fix

	----------
2.30.1	Description

	Generic NQS currently uses inodes themselves to store information
	about transactions - this is the way it was originally done back in
	COSMIC NQS.

	Generic NQS assumes that inodes are 32-bit unsigned integers - this
	is not the case for all versions of UNIX (POSIX.1 does not define
	the size of an inode).  On systems which use 32-bit signed integers
	for the inode, NQS generates `unanticipated transaction failures',
	because negative values are not permitted.

	This affects the timestamp for a transaction, which can no longer
	fit into the inode correctly.  The solution is to reduce the
	granularity of the timestamp (so that it is accurate to every four
	seconds) so that it will fit into the inode correctly.

	----------
2.30.2	Platforms Affected

	All.

	----------
2.30.3	Status

	Tested on Solaris 2.3, Linux/ELF, and ULTRIX.  No apparent side
	effects observed.

	This change may make upgrading from Monsanto-NQS difficult under
	certain circumstances.

	----------
2.30.4	Change Contributed By

	David Billinghurst (billingd@crc.cra.com.au)



----------------------------------------------------------------------------
Stuart Herbert - (S.Herbert@sheffield.ac.uk)
