--- - branch: MAIN date: Thu Oct 9 12:49:21 UTC 2014 files: - new: '1.14' old: '1.13' path: pkgsrc/sysutils/etcmanage/Makefile pathrev: pkgsrc/sysutils/etcmanage/Makefile@1.14 type: modified - new: '1.3' old: '1.2' path: pkgsrc/sysutils/etcmanage/PLIST pathrev: pkgsrc/sysutils/etcmanage/PLIST@1.3 type: modified - new: '1.8' old: '1.7' path: pkgsrc/sysutils/etcmanage/distinfo pathrev: pkgsrc/sysutils/etcmanage/distinfo@1.8 type: modified id: 20141009T124921Z.a073ebec120ec65279492f36dfd6a6e80bddb9ed log: | 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 ', visit all files in '', not just '/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 ', visit all files in '', not just '/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. module: pkgsrc subject: 'CVS commit: pkgsrc/sysutils/etcmanage' unixtime: '1412858961' user: gdt