This unofficial version is based on dexpire 2.1 with the following
changes/enhancements:

- Correct handling of explicit expires. For this, the format of the
  expires file has changed. If you have this file now as a plain text
  file, delete it! Uses dbz for the expires file. (If EXPIRES_DBZ is
  undefined, the old format is used.)

- The many bogus expires lines found in the newsspool are complained
  about only once, after that histtrim will remove them from the
  history lines. There is no point in getting the same error messages
  every day. 

- Deal with multiple newsspools. dexpire takes an additional "-S fsys"
  argument, meaning "only check articles on this filesystem". dexpire
  and runexp silently delete dangling symlinks on systems that support
  symlinks.

- Check for free inodes as well as free kilobytes ("-i inodes" argument).

- dexplist now has an optinal fifth field: maximum hold time.

- Daemon mode. With "-Dx,y", dexpire does not exit after the first run
  but instead waits for x seconds, the re-checks for space and resumes
  expiring if necessary. This saves the overhead of scanning the spool
  for the "standard time". After y seconds total, the process is
  restarted to re-read active, dexplist etc.
  The "expiredaemon" script should take care of everything.

- The "spacelist" file. It tells how much space is needed and how to
  call dexpire. dodexpire reads this file. It contains parameters that
  aren't used here, these are part of a more general "space management
  extension" to C News I'm working on. "spacelist.eg" contains a
  documented prototype.

- Substantially revamped the dodexpire and dohisttrim scripts. They deal
  with all of the peculiarities mentioned above, esp. calling dexpire
  for all spool filesystems with the right parameters and rebuilding the
  expires file. The scripts are built for C News or INN as desired from
  prototypes.

- Supplied a makefile that integrates into C News Cleanup Release.
  Install this source dir in the main source tree and you should be
  able to simply run "make" (dito for install and setup targets).
  For INN use Makefile.standalone.

- Various cleanups for the logging format and bugs removed.

- Supplied a more versatile version of getdate(), taken from GNU
  date(1). Cuts down on the "invalid expires line" complaints.

- All "new" files generated have now suffix .n (instead of .new).

- Removed minor bugs in parameter handling (dexpire.c).

- Added ifdef in util.c for Linux compatibility.

- Took configurable items out of dexpire.h.

Direct all questions etc. to:
Olaf Titz <olaf@inka.de>

Suggested usage for INN:

- Make sure to install and configure the spacelist file.
- Start "expiredaemon -v" from rc.news.
- Run news.daily as follows from crontab:
  news.daily noexpire; dodexpire; dohisttrim -v -m 14 -c 120; \
	 expiredaemon -v -q

The -m 14 option controls how much history to retain, it should match
the -c option of innd. -v means rather verbose logging (directed to
MOST_LOGS/dexpire.log and MOST_LOGS/dexpire.err). -c 120 places an
upper limit of 120 days on articles with Expires lines.
If you are short on space in NEWSLIB, you can add the -T /tmpdir
option to dohisttrim to use a different temporary directory for
building the new history file, and the -k option to kill off any
programs (e.g. nnrpd) which have the history open.

(Note that options for the shell scripts require a blank between option 
letter and argument.)