./sysutils/etcmanage, Automatically manage files in /etc

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 0.9.1, Package name: etcmanage-0.9.1, Maintainer: gdt

etcmanage is used to update files in /etc on a BSD system
automatically. The essential concept is that a file which was
installed automatically and has not been changed will be updated with
new versions, and modified files will not be changed.


Required to run:
[lang/perl5]

Master sites:

SHA1: 334b596cc26fe6b1b812c2c369520fb921ccdb9e
RMD160: 39947cdfac1b911822b0b887e29e607bd9d3fa7e
Filesize: 99.25 KB

Version history: (Expand)


CVS history: (Expand)


   2014-10-09 14:49:21 by Greg Troxel | Files touched by this commit (3) | Package updated
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.
   2014-05-30 01:38:20 by Thomas Klausner | Files touched by this commit (3049)
Log message:
Bump for perl-5.20.0.
Do it for all packages that
* mention perl, or
* have a directory name starting with p5-*, or
* depend on a package starting with p5-
like last time, for 5.18, where this didn't lead to complaints.
Let me know if you have any this time.
   2013-05-31 14:42:58 by Thomas Klausner | Files touched by this commit (2880)
Log message:
Bump all packages for perl-5.18, that
a) refer 'perl' in their Makefile, or
b) have a directory name of p5-*, or
c) have any dependency on any p5-* package

Like last time, where this caused no complaints.
   2012-10-23 21:51:39 by Aleksej Saushev | Files touched by this commit (447)
Log message:
Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days.
   2012-10-03 23:59:10 by Thomas Klausner | Files touched by this commit (2798)
Log message:
Bump all packages that use perl, or depend on a p5-* package, or
are called p5-*.

I hope that's all of them.
   2012-04-18 18:39:49 by Greg Troxel | Files touched by this commit (2) | Package updated
Log message:
Update to 0.8.2.

New in Version 0.8.2

  Branches netbsd-6, netbsd-6-0 and netbsd-5-1 are supported.

New in Version 0.8.1

  INSTALL-NetBSD now installs the tests set, in NetBSD 5, and the
  modules set, to be in NetBSD 6.
   2011-11-16 20:31:56 by Greg Troxel | Files touched by this commit (2) | Package updated
Log message:
Update to 0.8.

  Don't complain if there is no custom-kernel file, and don't try to
  build GENERIC as the default custom kernel, because it's built
  anyway if appropriate for that port.

  Support .branch to define branch for builds from NetBSD imported
  into a VCS, rather than checked out from NetBSD's CVS.  Example
  contents for .branch is "5\n" for netbsd-5.

  Support local and relative paths in .tree, for placing the obj
  container in arbitrary locations.
   2009-04-01 21:05:04 by Greg Troxel | Files touched by this commit (2)
Log message:
New in Version 0.6.1

  Remove DESTDIR/stand before building to avoid failed builds from
  renamed module path.