[LWN Logo]
[LWN.net]
Version LPRng-3.8.2 - Mon Dec  3 12:26:52 PST 2001

  MAJOR CONFIGURATION CHANGE:

  LPRng can retain status of last N completed jobs
     configure --with-done_jobs=N
         - set done_jobs value, default 1
     configure --with-done_jobs_max_age =N
          - set done_jobs_max_age value, default = 0 (no expiry)

     Or in the printcap/lpd.conf:
       :done_jobs=1
       :done_jobs_max_age=1

   Example:
    Printer: t1@h110 'Test Printer 1'
     Queue: no printable jobs in queue
     Server: no server active
     Status: job 'cfA231h110.private' removed at 18:25:36.281
     Rank   Owner/ID         Class Job Files             Size Time
    done   papowell            A   278 /tmp/hi              3 18:25:31

  Controlled by:
    :save_on_error        - all jobs with error saved, status not removed
    :save_when_done       - all jobs with no error saved, status not removed
    :done_jobs=N          - last N jobs completed (error or no error) saved
    :done_jobs_max_age=N  - jobs with status older than N seconds removed

  This is best explained by:
	On job completion:
	if( (no error && save_when_done)
	   || (error && save_on_error)
	   || done_jobs > 0 || done_jobs_max_age > 0 ){
	  do not remove job
	}

    When queue updated:
    if( !(save_on_error || save_when_done) ){
       while( done_jobs_max_age >= 0
         && the time since completion of oldest done job > done_jobs_max_age ){
               remove the oldest done job
       }
       while( done_jobs >= 0 && total number of done jobs > done_jobs ){
          remove the oldest done job
       }
    }

  Fixed up the order of 'require_explicit_q' in the variable list.

  Added 'lpd -p port' so that lpd port can be specified at run time.
   (Suggested by: Chris J. Herbst <chris@herbst.com>)

  Added 'PrintingCookbook' to the distribution.

  The 'shorthost' DNS lookup result was not being set correctly 
  if DNS lookup failed and you had to drop back to using IP address.
  Clearly the shorthost form of IP10.0.0.1 is IP10.0.0.1, not
  IP10.

  Added patches to help support Win32 porting using Cygwin:
  UID 0 is now ROOTUID instead of 0 value.
  ROOTUID is set by ifdef in portable.h

  checkpc -f no longer puts out the annoying '/var/run/lpd.515
   does not exist' message.

  List_sep (which is only used in Check_for_rg_group) needs
  a comma.
    (Discovered by: Graeme Wood <Graeme.Wood@ed.ac.uk>)

  Reworked the 'start lpd subprocess' code so that it is a little more
  civilized.

  Modified portable.h so that LPRng compiles properly on HPUX 11.xx
  systems.

  lpc help fixed up - 'redo - reprints jobs'

  Cleaned up the 'Make_sort_key' code so it does not do needless
   malloc.