bubblegum-1.12 * support for directory recursion if a filename is a directory and ends with a '/' (request from doood@bigpond.com) * port to solaris * build fix for redhat bubblegum-1.11c * new parseargv() function * contrib/bgm.sh can append the ouput of a command to the message body * a small automake fix bubblegum-1.11b * manual page cleanups * install binary to bindir and not sbindir and manual page to section 1 bubblegum-1.11a * fix for stupid use of sprintf() causing segfault on some systems bubblegum-1.11 * use sprintf(NULL, ...) to get buffer size of log file (fixes MacOS X) * the time difference format has changed to type:days:hours:mins:secs where type is the latest change being one of M, A or C for atime, mtime or ctime * created common.h * contrib/bgm.sh exits with the return value from `mail' * contrib/bgm.sh uses $LOGNAME@localhost as the default address * now uses automake * added pid options -p and -q * can specify log and pid files with BUBBLEGUM_LOG and BUBBLEGUM_PID environment variables * if no logging or command is specified then show usage * use err[x]() and warn[cx]() instead of ERROR macro * added option -M to check md5 checksums for systems with libmd * initialize change type enumeration to zero rather than one * freopen() std[in/out/err] to /dev/null bubblegum-1.10 * port to macos x bubblegum-1.9 * update the daemon pid for logging after the initial fork() * if LINE_MAX isn't defined use _POSIX2_LINEMAX * dump help to stdout * when logging to syslogd log the invoking username on startup * ignore signals when others are busy (SIG_IGN) * fork command twice to avoid zombies * restore signal default actions in the child process bubblegum-1.8 * fix for contrib/bgm.sh (better, see bgm.sh -h) * only call getpid() once * move file stuff to file.c * can escape double quotes and backslash in a command line (\" and \\) * use SA_NOCLDWAIT only on systems that support it * fix for linux zombie processes * fix for linux segfault when specifying -e bubblegum-1.7 * Makefile fix * S_ISWHT() isn't #defined in Linux bubblegum-1.6 * added command expansions %F and %m to show filetype and permissions * dont try to chdir() before running command (no need) * logging errors is now optional via the -E command line option * added command line option -A which is a shortcut -amcE * bugfix for options -m and -c * dont show to exit status of fork()ed commands anymore (not reliable) and sa_flags = SA_NOCLDWAIT * a better manual page bubblegum-1.5 * SIGHUP will only reload a file list without resetting changed bits on old files or resetting command runs * only fork once and use execvp() rather than system() to run a command (your old command using stdin/out/pipe wont work anymore. use a shell script instead) * unknowns are marked with "-" rather than " " (NONE_STR) * check for duplicate files when [re]loading a file list bubblegum-1.4 * SIGHUP reloads a filelist (resets changed bits and command runs, but not total command runs), SIGUSR1 resets changed bits, SIGUSR2 resets changed bits and resets both command runs and total runs * better memory management (hopefully) * portability fix for bitfield * added command expansion '%r' to show run number and total (ie: 1/4) * added command expansion '%i' to show time difference * miscellaneous cleanups and bugfixes * renamed contrib/bgmailer.sh to contrib/bgm.sh bubblegum-1.3 * the log format has changed to log all changes on one line with the time difference being the latest change if multiple changes are detected * a log level of zero will disable regular file logging, log level one will log only the first change of a file, and log level 2 will log all changes (the new default; level 3 is gone) * added logging the type of change if available (user, permissions, etc) for CTIME changes * added '%y' command expansion for type of change * added '%s' command expansion to show daemon status * added '%d' command expansion to show the time of when the change was detected * updated contrib/bgmailer.sh bubblegum-1.2 * chdir() before grandchild fork() * dont exit if chdir() fails * setpriority() before filling filelist structure * cleaner changelog() function * added 'dont follow links' option -k * when an error dissappears reset filelist->staterrno bubblegum-1.1 * Makefile fix for installing manual page * manual page cleanups * sending signal SIGALRM will expire a timer and force the next check * dont block SIGBUS, SIGILL and SIGFPE * chdir() to working directory before system() of command (-e) * make sure logfile can be opened (-l) bubblegum-1.0 * detach from terminal after forking (setsid()) * use select() instead of sleep() * seconds must be greater than zero * _exit() from command after fork() rather than exit() bubblegum-0.6 * initialize struct sigaction (fixes signal handler) * really fix zombie processes (-e) * signal SIGUSR1 will reload the file specified with -f and reset command runs and changed bits for each file * signal SIGUSR2 will reset only the filelist->changed bits for all files (useful for log levels 1 and 2) * use is_file() to make sure filename (-f) is a file * added option '-n' to set niceless level of daemon and command (-e) * added a manual page bubblegum-0.5 * fix for memory corruption when getting filelist * dont assume change times are greater than the previous * added total runs option '-t' * logging displays difference of last change * better mail wrapper in contrib/bgmailer.sh bubblegum-0.4 * Makefile fix for Linux (-D_GNU_SOURCE) * dropped time spec option '-t' (use find) * flists->changes is now global (saves a little bit of memory with lots of files) * dynamically allocate flists->filename to save memory * when a stat() error occurs, log the error once unless errno differs from flists->staterrno * the changes expansion '%c' format for more than one change is comma separated (fixes parsing for command '-e') * added option '-s' to enable logging to syslogd(8) with facility DAEMON and priority NOTICE (this disables logging to logfile) bubblegum-0.3 * fullpath() bugfix * the default logfile is stored in users home directory * added option -# (1-3) to define the level of logging * files are checked based on the time of execution until a change is detected, then the file is checked against the last change * if an error occurs while stat()'ing, dont check the file anymore * renamed REMOVED change to ERROR (will log the error) * added expansion '%e' for error information * added expansion '%b' for base time (time of comparison) * cleanups and miscellaneous improvements bubblegum-0.2 * fixed zombie processes (-e) * the full path of filenames are used when logging and with %f * added expansion %p for daemon PID * better logit() function bubblegum-0.1 * initial release