    With 4.00.00:

    itemization(
    it() Version 3.00.00 was only short-lived. The inter-process communication
        using signals never ran smoothly. Version 4.00.00 re-implements s()'s
        inter-process communication using Unix Domain Sockets.
    it() Previously required absolute file paths are no longer required. When
        relative file paths are used with the s() daemon or with s()
        performing an integrity scan as foreground process they are
        interpreted relatively to the current working directory.  Relative
        file locations for options specified in the second section of the
        policy file are interpreted relative to the location of the policy
        file, and relative path specifications used in the first section of
        the policy file are interpreted relative to the policy file's tt(USE
        BASE). 
    it() The README.flow file is provided with several separately provided
        illustrative images in the distribution-provided directory
        tt(documentation/images).
    it() Specifications for the logrotate specifications should use
        'tt(copytruncate)' and 'tt(sharedscripts)' (see section ref(ROTATE)
        for an example)
    it() Examples in the manual still use tt(sha1sum) when checking hash
        values. Stronger hash functions (like tt(sha256sum)) might be
        preferred in practice. When updating existing policy files to use
        tt(sha256sum) rather than tt(sha1sum) realize that tt(sha256sum's)
        hash values are longer than tt(sha1sum's) hash values, and that
        therefore log files obtained when tt(sha1sum) was used are
        incompatible with log files obtained when tt(sha256sum) was used. In
        practice this means that new log files need to be generated,
        disregarding any previously geneerated log files.
    )


COMMENT(
    With 3.00.00:

    itemization(
    it() Internally the flow control handling, in particular with s() running
        as a daemon, has completely been redesigned.
    it() Options were changed:
        itemization(
        it() tt(--keep-alive) is now tt(--daemon);
        it() tt(--suppress) is now tt(--suspend);
        )
    it() Options were dropped in favor of replacement options:
        itemization(
        it() tt(--echo-commands): replaced by tt(--log);
        it() tt(--only-stdout): replaced by tt(--stdout);
        it() tt(--quiet): replaced by tt(--verbosity);
        )
    it() Some options were discontinued without replacements:
        itemization(
        it() tt(--debug) (option tt(--verbosity) or tt(--dry-run) could be used 
                    instead);
        it() tt(--no-child-processes);
        it() tt(--parse-config-file);
        )
    it() New options were added, see section ref(OPTIONS) for a more extensive
        description: 
        itemization(
        it() tt(--daemon): run as background (daemon) process;
        it() tt(--dry-run): no integrity scans or reloads are performed;
        it() tt(--log): log messages are written to a file;
        it() tt(--logmail): mail sent by s() is also logged;
        it() tt(--no-mail): mail is not sent;
        it() tt(--parse-policy-file): parse the policy file;
        it() tt(--stdout): messages are (also) written to the std. output
            stream; 
        it() tt(--suspend): suspends a currently active s() process;
        it() tt(--syslog): write syslog messages;
        it() tt(--syslog-facility): sets the syslog facility to use; 
        it() tt(--syslog-priority): sets the syslog priority to use; 
        it() tt(--syslog-tag): specifies an identifier that is prefixed to 
            syslog messages;
        it() tt(--verbosity <value>): determines the amount of logged
            information.
        )
    it() The policy file now contains two section. The second section starts
        at a line merely containing tt(%%), is optional, and may contain
        (some) long option specifications. See section ref(OPTIONS) for
        details.
    )
)

COMMENT(
    With 2.02.00:

    itemization(
    it() The file specified at the option -s (--skip-files) may contain empty
lines and lines having a tt(#) as their 1st non-blank character. These lines
are ignored. Furthermore, initial and trailing blanks on its lines are
ignored.
    it() NOTE: requires bobcat 2.17.00 or later
    )
)

COMMENT(
    With 2.0.0:

    itemization(
    it() Repaired handling of the tt(-o) flag;
    it() Implemented option -s (--skip-files) to skip the integrity-test of
    specified files. When appearing in the logs so far the initial appearance
    of a path in the file containing the files to skip results in a
    log-message "SKIPPING"
    it() NOTE: requires bobcat 2.09.00 or later
    )
)

COMMENT(
    With 1.47:


    itemization(
    it() Since the MD5 hash is no longer considered to be cryptographically
secure, s()(1) should now use an alternative way to compute
hash-values. In this manual it is suggested to switch to SHA1 hash
computations. 
    it() The tt(--max-size) option was implement to restrict the maximum sizes
of files that are downloaded from clients. By default it is 10M.
    )
)


COMMENT(
    With 1.46:

    itemization(
    it() The tt(--random-interval) option is ignored unless tt(--repeat) is
specified as well. The random interval is em(added) to the the interval
specified at tt(--repeat), determining the time interval before starting the
next tt(stealth)-run.
    )
END COMMENT)

COMMENT(
    With 1.40:

    itemization(
    it() The tt(-e) (tt(--echo-commands)) option was added to echo commands to
std error when they are processed (this option is implied by tt(-d));
    it() When a command fails (except for commands for which tt(NOTEST) was
specified), the reason why the command failed is written to the report file or
to the standard error stream;
    it() The debugging facility is now always available, and does not require
recompilation of s() anymore.
    )
END COMMENT)

COMMENT(
    With 1.35:

    Two new options were added to facilitate report-file rotations:
    itemization(
    it() tt(--resume pidfile): resume a suspended s()
            process (implying tt(--rerun));
    it() tt(--suspend pidfile): suspend a currently active s()
            process. All scheduled scans following tt(--suspend) are skipped,
            tt(--rerun) is ignored, but tt(--resume) and tt(--terminate) 
            can be issued;
    )
    The report file should not be modified while integrity scans take
place. The new options were added to make sure this requirement is met when
the report file must be rotated. The bf(ssh) connections to clients remain
open between pairs of tt(--suspend) and tt(--resume) commands. See section
ref(ROTATE) for details about these two options.

    Issues related to suspending s() runs are:
    itemization(
    it() cleaning up obsolete status files (section ref(STATUS));
    it() automating report- and status file rotation using external
programs. In section ref(LOGROTATE) a setup is described that can be used with
the familiar bf(logrotate)(1) program.
    it() When upgrading s(), make sure that all s() processes
using earlier versions are terminated first.
    )
END COMMENT)
