Subject: CVS commit: pkgsrc/sysutils/etcmanage
From: Greg Troxel
Date: 2014-10-09 14:49:21
Message id: 20141009124921.E9AE998@cvs.netbsd.org

Log Message:
Update to 0.9.1.  Note that this is a fairly complete rototill from
the previous version.  However, there are now tests (which pass), and
I've been running this version since June.

New in Version 0.9.1, released 2014-06-09

  * When installing a new config file, create the config file's parent
    directories if they don't exist.  If a directory is created, the
    permissions and ownership are copied from the corresponding
    directory in the upstream config file hierarchy.
  * Add a new --version (-V) option.
  * Add a new --help (-h) option.
  * etcmanage now exits with an error if an unsupported argument is
    specified.
  * 'etcmanage --remove' no longer warns if the given file was not
    already in the database.

New in Version 0.9, released 2014-05-21

  * Use Perl's Digest::MD5 module instead of the md5 utility for
    compatibility with other operating systems.
  * Add a new --destdir option.  If specified, the filenames for all
    operations will be prefixed with the provided directory name.
    This makes it possible to use etcmanage on a chroot or DESTDIR
    environment.
  * Don't automatically update the hash stored in the database if a
    live config file is modified and upstream is changed to match.
    This matches the behavior when both the live file and upstream
    file have been deleted (the record isn't removed from the
    database) and it provides an important invariant:  If the state of
    the live config file does not match the state of the database
    record, nothing is modified.
  * Fix handling of removed files during 'etcmanage --update':  If a
    managed file is deleted, treat it as a manual modification---don't
    restore the upstream file.
  * Improve logging:
    - Log problems updating config files to standard error (STDERR)
      instead of standard output (STDOUT).
    - During 'etcmanage --update', log "UNMANAGED_EQ_UPSTREAM" when
      encoutering a new upstream file that is already installed with
      identical contents.
    - During 'etcmanage --update', log "UNMANAGED_NEQ_UPSTREAM" to
      STDERR when encoutering a new upstream file that is already
      installed but has different contents.
    - Log three distinct types of "MISSING" messages instead of one:
      * "MISSING" is logged when the hash of the upstream file matches
        the database entry
      * "MISSING;UPSTREAM_WITHDRAWN" is logged when the upstream file
        doesn't exist
      * "MISSING;UPSTREAM_DIFFERENT" is logged when the hash of the
        upstream file differs from the hash stored in the database
    - Use the term "MODIFIED" instead of "CONFLICT" and \ 
split it into
      three distinct types of "MODIFIED" messages instead of one:
      * "MODIFIED" is logged when the hash of the upstream file
        matches the database entry
      * "MODIFIED;UPSTREAM_WITHDRAWN" is logged when the upstream file
        doesn't exist
      * "MODIFIED;UPSTREAM_DIFFERENT" is logged when the hash of the
        upstream file differs from the hash stored in the database
  * During 'etcmanage --update <dir>', visit all files in '<dir>', not
    just '<dir>/etc'.  This makes it possible to use etcmanage to
    manage files outside of '/etc', but is unfortunately not
    backwards-compatible:  'etcmanage --update' can no longer be
    pointed to a DESTDIR containing a complete NetBSD build (or else
    all operating system files---not just config files---will be
    managed by etcmanage).
  * During 'etcmanage --generate-manifest <dir>', visit all files in
    '<dir>', not just '<dir>/etc'.  This makes it easier to use
    etcmanage to manage files outside of '/etc', but is unfortunately
    not backwards-compatible:  'etcmanage --generate-manifest' can no
    longer be pointed to a DESTDIR containing a complete NetBSD build
    (or else all operating system files---not just config files---will
    be included in the manifest).
  * Add support for systems that don't have an /etc/services file or
    don't consider the /etc/services file to be a configuration file.
  * Fix command line parsing.  It is now possible to specify multiple
    commands at once (including repeating a command) and they will be
    executed in the specified order.
  * Add a '--db' option to specify the database filename.
  * Add a new '--manual' command to mark a file as manually managed.
    This differs from '--remove' in that a future '--update' will
    never automatically cause the file to become managed.  It also
    results in different log messages being printed when a config file
    has been modified, and these log messages are printed to STDOUT
    instead of STDERR (because they are expected conditions).
  * Refuse to add abnormal pathnames to the database.  A pathname is
    considered abnormal if it has any of the following properties:
      - contains whitespace
      - begins with '#'
      - is the empty string
      - is relative
      - contains '/../', '/./', or superfluous slashes
    Pathnames with the first three properties in the above list cannot
    be represented in a manifest.  Relative pathnames do not make
    sense (what are they relative to?).  Pathnames with '/../', '/./',
    or superfluous slashes can result in unintentional duplicate
    database entries that conflict with each other.
  * Various code cleanups.
  * Various build system improvements.

Files:
RevisionActionfile
1.14modifypkgsrc/sysutils/etcmanage/Makefile
1.3modifypkgsrc/sysutils/etcmanage/PLIST
1.8modifypkgsrc/sysutils/etcmanage/distinfo