			3.8.1 version

if the computer was stopped during afick's scan, the database may be corrupted. 
And the only way to fix it was to re-initialize the database.
Now, the database is saved before update. If the database is corrupted, just copy the saved database onto
the current database.

until 3.8.0, if you change a directive in the afick configuration, the change is lost during an afick upgrade.
Now, the allow_overload directive applies on all type of config lines : if you want to change a default config, 
just do it at the end of the file, in the local section.

windows acl was stored in the gid field (to spare space) in the old flat storage. The current storage is a hash,
so the windows acl is moved to an acl field

bug fix
*******
	* use Package::file2pac to use fhs
	* fix print_new/print_del (Report.pm)
	* fix __pycache__ exclusion

improvements
************
	* better diagnostic on config parsing (line number)
	* add caches in linux config
	* save database before update
	* afick_cron output of afick_archive concatenated vith afick output

incompatibilities
*****************
	* allow_overload applies on all config lines
	* on new storage format, windows acl is stored in acl field instead gid
	* exclusions apply also on directories

internal
********
	* sign commits and tags
	* add dbversion in control file
	* (internal) standardize package headers
	* (internal) fix use list

#######################################################################################################
			3.8.0 version

this release comes with a new experimental directive : mask_sysupdate
on some linux distribution, as fedora, package update occurs every day, so it is difficult to analyse afick's reports
between package changes (ok) and undesired file changes
rpm and deb database have an api to check changes between installed files and database state
for new and changed files :
if mask_sysupdate is set to true (default is false)
  afick will detect files on updates, but will masq the changes if the database tells the state is unchanged
  so you will not see anymore packages changes (except a new field "masked" at the end of the report)
for delete files :
  no changes (I do not find a way to check with package database)

bug fix
*******
	* bugfix in option list

improvements
************
	* remove old locks (more than 24 hours)
	* add new experimental directive/option mask_sysupdate (see above)
	* use env on all perl modules
	* use Tainted mode on modules
	* update linux.conf

incompatibilities
*****************
	* exclude python pyc files
	* change gpg key
	* change email to tutanota

internal
********
	* web site in html, no more in xml
	* add Afick::Package, Afick::Deb Afick::Rpm
#######################################################################################################
			3.7.0 version

bug fix
*******
	* keep env shebang on rpm + deb

improvements
************
	* (Afick::Backend) now store data as an object instead joined tab : it will be easier to add fields

incompatibilities
*****************
	* the new storage is only available if you are using Storable, not gdm

internal
********
	* remove glob warning : use Use File::Glob::bsd_glob instead glob
#######################################################################################################
			3.6.1 version

bug fix
*******
	* fix window's acl sid in lower case
	* (windows) fix acl display in human way
	* use env in shebang to fix cron problem on debian/ubuntu

improvements
************
	* search option can also apply on --csv and --export
	* linux.conf : do not scan /usr/lib/.build-id/

new features
************
	* add export/import database options
	* add duplicates option (as Plugins)

incompatibilities
*****************

internal
********
	* suppress wanted_create
	* move global variables to Afick::Report
	* move print_dangling,print_new,print_change,print_delete to to Afick::Report
	* move file_info sub into Object.pm
	* (Backend) : add empty sub, check update mode in del sub
	* ( Afick::Plugins ) merge print/print_csv/export_raw in print_common
	* (Afick::Object) move is_changed/display_changed in Object.pm

others
******
#######################################################################################################
			3.6.0 version

bug fix
*******
	* all windows acl are now in lower case
	* (windows) fix installer

improvements
************
	* add Afick::WinAcl lib
	* add Afick::Object lib
	* add Afick::Plugins lib
	* (windows) afick-gui work on windows 8 8.1 and 10

new features
************
	* new directive utc_time

incompatibilities
*****************
	* format of print/csv/search is changed

internal
********
	* tests on syslog work with systemd/journalctl

others
******
#######################################################################################################
			3.5.3 version

bug fix
*******
	* bugfix, allow arobase in filenames

improvements
************
	* Afick::Backend remove global Hashfile, move open_database/close_database

new features
************
	* add afick_learn_tk tool and Afick::Learn lib

incompatibilities
*****************

internal
********
	* use afick's constants for config grammar
	* add Afick::Report lib

others
******
#######################################################################################################
			3.5.2 version

bug fix
*******
	* fix a bug with exclure_re on pattern with space character
	* default backend now to Storable to fix SDBM problems
	* (afick_learn) bugfix on gid
	* (afick_learn) bugfix on empty rule

improvements
************
	* (windows) fix perl warnings on activeperl 5.20 about S_ISLNK
	* fix perl warnings about regex syntax
	* add Afick's modules in auto-control
	* improve doc about exclude_* directives (syntax, multi-lines)
	* improve linux.conf
	* (afick-tk) manage report_summary, report_context directives
	* (afick-tk) improve directives doc : add new directives, match config_directives names and order

new features
************
	* add new libs Afick::Backend Afick::Control
	* add report_context directive, to show all changed attributes
	* (afick-tk) add learn feature (in configuration menu)
	* (afick-tk) config_directives : add keep button to match old menu_option behavior

incompatibilities
*****************
	* the default ouput is like before 3.4.3 release : only display changed attributes from rules
	* (afick-tk) remove menu_option (duplicate from configuration/directives)
	* on each run you may have this warning : "(test_dbm) a better dbm is available : Storable".
		To remove the warning, you have to run afick in init mode, to change the database backend.

internal
********
	* (Lock.pm) add basename method
	* back to old print/close syntax for compatibility with old perl
	* (afick-tk) split main sub in small functions
	* (afick-tk) clean code : remove unused variables

others
******
	* fix bad dates in specfile (changelog section)

#######################################################################################################
			3.5.1 version

2 major change in this release :
- installer
	+ unix : the default tgz install is changed to install afick on /opt. The old is still
		available (consult INSTALL doc)
	+ windows : the install program is now build by inno setup, which is a living software
- new tools
	+ afick_learn : will help improve config file by removing false positive
	+ afick_format : can rewrite afick output for human beings (html) or computers (xml)

bug fix
*******
	* (afick-gui) fix bug on write config file (bad old write_config)
	* (afick-gui) fix bug on write new config file

improvements
************
	* change perl shebang for more generic, using env

new features
************
	* new Afick::Log class to analyse afick's logs
	* new afick_learn.pl tool (using Afick::Log)
	* new afick_format.pl tool (using Afick::Log)

incompatibilities
*****************
	* default tgz install is changed to install afick on /opt

internal
********
	* (windows) only use cmd files (no more bat)
	* some recode using modern perl syntaxe

install
*******
	* change window's installer from old setup2go to modern inno setup
	* tgz install will now be under /opt/afick, no more merged into system

others
******
#######################################################################################################
			3.5.0 version

this releases is the end of 3 years of afick recoding : it uses a new Afick::Cfg class
to manage the configuration. It allows a better software design and software testing.

The changes may seems very little for end users, but it is probably the most important for internal changes
with more than 400 commits.

Next releases (3.5.1, 3.5.2 ) will be for end users changes. The xml format will be changed.

And the next major change (3.6 branch) will be for 2016 (at least), with big database changes.

bug fix
*******
- (afick_format) bugfix, skip WARNING lines to detect first real line 

improvements
************
- use new class Afick::Cfg to manage the configuration
- (afick_format) add run,config metadata on xml output

new features
************
- new directive report_summary, which allow the summary (default) or not

incompatibilities
*****************

others
******
#######################################################################################################
			3.4.3 version

this release was built to fix the 2 following problems :

1) changing attributes in a rule should not change the afick's report (files are not changed)
2) some attributes (inode/mtime) are not meaningfull to detect a file change, but are interesting for
analysis

So the code was changed :
until 3.4.2 : only required attributes are stored in the database
from 3.4.3 : store all attributes in database and use required attributes (inode, file_size, checksum ...) to detect file changes

bug fix
*******
- (afick) fix sparse error Odd number of elements in anonymous hash
- (afick-tk) after save config, reload only if same name

improvements
************
- better file change detection (less false positives)

new features
************

incompatibilities
*****************
- (linux, windows) remove inode, mtime from default rules (dummy change detection)
- plugins output may also change, because they can access many more data

others
******
- (afick) rename all same variables with same name ra_toscan
- (afick) add internal doc
- (afick) clean code, remove dead code (test_dbm_available, make_regex)
- (afick) rename update sub into update_database
- (afick) remove Nbmod global variable
- (control) control sub also use is_changed

#######################################################################################################
			3.4.2 version

bug fix
*******
- (afick-tk) fix bug on saved config file name on unix (bad name)
- (Gen) fix some others problem from windows tests in to_abspath

improvements
************
- (packages) remove /etc/cron.daily from rpm package (avoid rpm warnings)
- (afick-tk) test if abort on file selection for configfile save (avoid error message)
- (afick) backport from 3.5 , stop parcours sub as soon as possible ( exceptions and already seen files)
- (afick) backport from 3.5 : detect temporary files
- (afick) recode exclude tests , a control file may be an exception
- (windows) remove log directories from scan
- (linux) update linux.conf to remove dummy changes
- (control) auto_control_check gets files to check from Control hash
- (control) also apply file normalisation on control files
- (control) avoid duplicated scan of control files

new features
************
- (packages) move html doc in new afick-doc package (rpm, deb)
- (control) add history and archive (directives) in control files

incompatibilities
*****************
- exclude filters only apply on files, not on directories

others
******
- (afick) rename create sub into create_database
- (Gen) new remove_trailing_slash
- (afick) backport from 3.5 : use new top_parcours sub
- (afick) code cleaning, recode the scanning tree engine (parcours)

#######################################################################################################
			3.4.1 version

this is release dedicated to window's bugfix

bug fix
*******
- (Aliases) fix warning if empty masq in _decode_alias_unit
- (Gen) fix bug in to_abspath for windows env
- (windows) fix bug on dummy file changes : sort windows acl
- (windows) remove acl if too long to avoid SDBM error
- (afick-tk) allow start without file config : load default config

improvements
************
- (windows) add 32 bits application's directory to scan in windows.conf
- (windows) remove winsxs directory from scan in windows.conf
- (Tst) avoid code redondancy in _is_fileval
- (Directives) add is_initialized method to detect overload
- standardize directory separator (reg_name) after environment replacement in read_configuration sub
- in read_configuration, in debug mode, display also expanded rule line
- (Msg) add showstack method to help debug
- (afick-tk) force use same path for all afick commands (wrapper)
- (afick-tk) in verbose mode, show full command line (wrapper)
- (afick-tk) new sub build_cmdline to share common code for wrapper options between afick and afickonfig calls

incompatibilities
*****************
- (afick-tk) remove command line directives options

#######################################################################################################

			3.4 version

bug fix
*******
- bugfix overload last rule if allow_overload
- fix bugs in afickonfig.pl
- fix pod doc (html)

improvements
************
- use Afick::Directives for check_directives
- (windows) force install of Tk module (for activeperl)
- improve afickonfig : work on all config types
- use pod doc for all perl scripts
- add regression tests
- (afick_planning) add test for mail errors
- suppress global Directives variables in afick.pl
- fix inconsitence between command line parameters and config directives

new features
************
- use Afick::Aliases, Afick::Macros, Afick::Directives
- new macro : archive_retention

#######################################################################################################

			3.3 version

bug fix
*******
- fix report_url option
- fix check_update call

improvements
************
- add arg to close_database to avoid global var

new features
************
- use Afick::Gen
#######################################################################################################

			3.2 version

new features
************
* add stat_date plugin
* afickonfig : add list option 

bug fix
*******
* fix bug on progress option
* fix bug on print_config
* fix warning on unlock
* fix warning on config file (path)
* fix : only display dangling links if dead_symlinks is set
* fix quiet option
* fix report_syslog option
* fix aficonfig delete config var

improvements
************
* use Afick::Tst class, and non-regression tests
* can print_config without any writable perm

incompatibilities
*****************
* windows : move database files to database directory

It matches the 2.22 release for features.
#######################################################################################################
			3.1 version

This release is the first public (stable) release of new 3.x branch.
It is a partial rewrite of afick in object oriented programming, to allow a better code and better 
support.
It matches the 2.21 release for features.
#######################################################################################################

			2.21 version

new features
************
* add nagios nsca option in afick_cron (from a user suggest) 

#######################################################################################################
			2.20 version

new features
************
* add sha-256, sha-512 checksum (to be used instead sha-1)

bug fix
*******
* print command display sha cheksum in same format as sha1sum/sha256sum... command
#######################################################################################################
			2.19 version

new features
************
* add csv option (export database in csv format)
* add MAILAUTH macro for mail auth (windows)
* add relative_path directive
* can use chroot directories using AFICK_CHROOT

improvements
************
* begin to merge get_configuration and read_configuration

others
*******
* (afick.spec) add compatibility with old rpm digest format
#######################################################################################################
			2.18 version

bug fix
*******
* (windows) fix a bug : alias are case-sensitive
* (windows) fix afick_set_planning bug, use absolute path to afick_planning
* (windows) fix a bug in stat_secu : getpwent does not work on windows
* (windows) fix a bug in afick_planning.pl about commented macros (mail)

new features
************
* (windows) add a delete button in afick_set_planning.pl

improvements
************
* try to compute checksum without NOATIME
* config pod doc match config sample sections names
* (windows) fix junction directories warning (can not open directory in parcours)

incompatibilities
*****************
* environment variables in config file are expanded on fly at begin of run

others
*******
* rename calc_control into auto_control_check
* add auto_control_prepare sub
* rename get_names into get_script_list
* add get_database_list
* rename add_database_control into auto_control_prepdb
* check also database in auto-control_check
* add is_special_dir sub
#######################################################################################################
			2.17 version

bug fix
*******
- arguments for --list option should now be separetd by a comma instead space (fix bug reported by mgarland)

new features
************
- arguments for --list can also be given in several calls

incompatibilities
*****************
- search for default config file is now the same for unix and linux : /etc/afick.conf then afick.conf

others
*******
- version is now shared between afick and afick-tk

#######################################################################################################
			2.16-1 version

bug fix
*******
- fix bug in print_digest (bug report from Andy Bach )
- fix bug base_checksum in degraded mode

security
********
- rename set_planning.pl into afick_set_planning.pl

#######################################################################################################
			2.15-1 version
new features
************
- check_config warns about environment variables in config file
- clean_config try to replace environment variables in config file
- allow to work as admin on vista/seven (uac)

incompatibility
***************
- afick_cron now use sh syntax instead bash syntax (patch from Mike Muise)
- fix hostname call for non GNU unix in afick_cron (patch from Mike Muise)

bug fix
*******
- fix error with activeperl 5.10.1.1007 on S_ISBLK (bug  request from Francis Favorini)

security
********
- add 64 bits lib directories in afick config and afickonfig.pl
- (afickonfig.pl) addlib also add libs from ldd command on perl binary

others
******
- avoid loosing time in print_digest in null (patch from Mike Muise)
- fix english typo (suggest from Francis Favorini)

#######################################################################################################
			2.14-1 version

new features
************
- add quiet option, not recommanded (feature request from Kevin Crowston)
- (gui) : add command line options database,history,archive to allow analyse on another computer

incompatibility
***************
- checksum output is now compatibile with md5sum/sha1sum commands

bug fix
*******
- fix a bug on negative rules

security
********
others
******
- only one dangling info report
- the gui does not work on mandriva 2009.1 : the problem comes from a bug in perl-Tk package

#######################################################################################################
			2.13-1 version

new features
************
- detect date in the future (Running)
- new directive/option : only suffix
- new analysis option stat_ext
- print dangling file as info if warn_dead_symlinks is disabled

incompatibility
***************
- (unix) remove udev files from scan

bug fix
*******

security
********
- test for existing database and die if not

others
******
#######################################################################################################
			2.12-1 version

new features
************
- (windows) afick_planning now send report instead summary and use LINES macro
- (unix) new MOUNT macro to use a remote database when using batch task on unix (afick_cron)

incompatibility
***************
- (unix) remove udev files from scan

bug fix
*******
- (unix) fix a warning with perl 5.10 on Constant subroutine main::S_IWGRP redefined

upgrade
*******

security
********
- add a security to avoid exlude auto-control files

others
******
- fix perlcritic warnings
- better Makefile.pl diagnostics in install by tar.gz (I hope)
#######################################################################################################
			2.11-1 version

new features
************
afick-planning can now send mail (windows) : add a new MAILHOST macro

incompatibility
***************

bug fix
*******

upgrade
*******

security
********

others
******
- the doc source is now only pod
#######################################################################################################
			2.10-1 version

new features
************
* add report_syslog directive and option
* dynamic choice of database backend
* add report_url option
* checksum do not change atime any more if possible
* windows config file now use environment variables (Manuel Martin suggest)

incompatibility
***************

bug fix
*******
* adapt afick_cron to old shell syntax (ash ...) to fix bug with anacron  ( Slass100 report)

upgrade
*******
* post_install can replace environment variables in afick's config

security
********
* improved afick change detection (warnings not only on checksum)

others
******
* rename set_planning.bat to afick_postinstall.bat
* display warning for too long acl on windows (SDBM error) 
* change directives compare algorythme (diff_tab sub)
* remove usage sub (all doc in pod)
* prepare code for daemon mode (with gamin use)
#######################################################################################################
			2.9-1 version

new features
************
- add -man option on afickonfig, to print full help

incompatibility
***************
checksum is now skipped on empty file, so will change to 0

bug fix
*******
- multi-line exclude configuration is fixed (was broken since 2.7-1)
- fix a bug on exceptions with globing and ignore_case
- on windows, checksum will not crash any more afick on some lock files

upgrade
*******

others
******
- updated windows configuration file (thanks Manuel Martin)
- on windows, post-install will add %systemroot% and %ProgramFiles% to the config file for check
- on windows, access error report (for checksum) is changed from warning to debug

#######################################################################################################
			2.9-0 version

new features
************
- afick_archive.pl is a new tool to manage history and archive's reports
- a new option (--check_update) was added to check if new releases are available
- all install (tar.gz, debian, rpm) now use the same pre and post install scripts
it will allow an improved configuration update, with the use of "local configuration section" 
(see at end of your config file)

incompatibility
***************
directive allow_overload default value is set to yes

bug fix
*******
clean_config option now keep comments (afick, afickonfig)
print_config option is fixed (afick, afickonfig)
addpath option (afickonfig) now works on microsoft windows
addlib option (afickonfig) is fixed for microsoft windows
fix tar.gz install for hpux users (thanks Menguy Jacques)

upgrade
*******

others
******
rename planning.bat to set_planning.bat and planning.pl to set_planning.pl (windows)

#######################################################################################################

			2.8.3 version
incompatibility
***************
the follow-symlinks parameter behavior is inverted to match the documentation

bug fix
*******
afick_cron : VERBOSE= 1

upgrade
*******
for windows users, save config file, uninstall current release, install the new release

I change the software used to package on windows from "install creator"(http://www.clickteam.com/ ) 
to "setup2go" ( http://dev4pc.com/setup2go.html)
--
$Id$
