Release 3.0.5 (Thu 16 Jan 13:35:17 CET 2025) - UNRELEASED * ade: corrected incorrect indentation in man page Release 3.0.4 (Fri 27 Dec 08:43:30 CET 2024) * ade: quieten get_absolute_path() * ade: fixed adegmt's usage message and added informational line for it to extract in lxdebian Release 3.0.3 (Wed 2 Oct 08:15:09 CEST 2024) * ade: implemented validate_regexp() in Python * ade: starts work on adding validate_regexp in Python Release 3.0.2 (Sat 7 Sep 12:08:14 CEST 2024) * ade: updates tests * ade: added miniade-based templates * ade: adegmt -l lists templates with descriptions using grep Release 3.0.1 (Wed 31 Jul 10:15:43 CEST 2024) * ade: in lxsmall, renamed usage() to help() * ade: break dependency on miniade Release 3 (Mon 22 Jul 13:31:48 CEST 2024) * ade: bumped to integer version Release 2.2.15 (Thu 11 Jul 14:06:38 CEST 2024) * ade: changed use of Data::UUID perl module to UUID, which is an OS-provided packages across more distros (critically SLES for Rak) Release 2.2.14 (Tue 2 Jul 16:04:02 CEST 2024) * ade: minor corrections to ade.py following edit described below * ade: better align the message-display-caller function between ADE and miniade, with consequent changes to the calls to it by _error, _warning, etc and alignment of parameters to the actual corresponding display functions Release 2.2.13 (Sun 30 Jun 18:23:42 CEST 2024) * ade: stopped using several functions that were only called once and that I could implement more simply as non-ADE function * ade: moved write_auto_generated() from ADE library and into the one script that uses it * ade: beginnings of alignment to the message-writer-caller function * ade: replace_function now only shows warning for each function once and setting ADE_REPLACE_FUNCTION_SILENT to anything in the environment will silence even that. * ade: minor corrections required by psrf (not for psrf) Release 2.2.12 (Tue 25 Jun 15:58:37 CEST 2024) * ade: updates following some function renaming * ade: reordered functions to better match what is in ADE * ade: corrected call to syslog.openlog(), which caused crap to be syslogged by ade.py * ade: ported ade-app-config to miniade 0.2.14 * ade: very minor cosmetic changes only (text alignment, removal of commented out code) * ade: renamed reset_error_stack to set_messaging_parameters * ade: unimplemented functions created but report unimplemented (this makes the list of exports in ADE.pm better aligned) * ade: *lock_simple* renamed *lock* * ade: better syslog testing but not finished Release 2.2.11 (Fri 14 Jun 12:02:28 CEST 2024) * ade: improved messaging configuration functions (for directing messages to stderr, /dev/null, log file) * ade: aligned an option in --help output correctly * ade: improved ADESTDTEST101_option_help * ade: removed greping for '-V' explanation in --help output, as programs using miniade (e.g. rpmmirror in paa module) don't output in same format as native ADE-linked programs Release 2.2.9 (Wed 12 Jun 16:02:47 CEST 2024) * ade: quiet rm commands in ade.sh:_ade_lock_simple() * ade: minor comment block changes for better alignment with miniade * ade: minor realignment of functions * ade: rewrote/aligned: make_path_absolute(), _lock_simple() * ade: massive cleanup: removed some unused functions * ade: massive cleanup: alignment of template functions and introduction of sync markers in libraries * ade: massive cleanup: private variable and function renaming, all functions renamed * ade: massive cleanup: public function renaming (perl & python lose 'ade_' and '_ade_' prefix * ade: massive cleanup: public variable renaming * ade: massive cleanup: public function renaming (now with schedule release) * ade: ongoing cleanup: in progress - code broken! * ade: ongoing cleanup: in progress - code broken! * ade: ongoing cleanup: in progress - code broken! * ade: ongoing cleanup: in progress - code broken! * ade: massive cleanup: in progress - code broken! Release 2.2.5 (Fri 7 Jun 17:01:20 CEST 2024) * ade: minor fixes to last edit * ade: major tidy up including better (though not yet good enough) alignment between libraries, removal of instantiation of global vars in libraries, addition of evaler function ade_pmf_eval() to all libraries, use of this function by adegmt and adeinst (previously had their own private versions), split of usage messages into usage_bad and usage_help, ... Release 2.2.4 (Wed 5 Jun 15:44:31 CEST 2024) * ade: implemented _ade_fnc_replace_function() in perl and python * ade: corrected some non-zero exits un usage() calls * ade/commands: don't directly access ADE_PROGNAME or ADE_VERBOSELEVEL, but use access functions instead * ade: renamed ade_msg_getverboselevel() to ade_msg_get_verboselevel() * ade: renamed ade_app_getprogname() to ade_msg_app_get_progname() Release 2.2.3 (Tue 4 Jun 15:15:13 CEST 2024) * ade: added ade_app_getprogname function * ade: lxsmall to write usage to stdout * ade: removed unnecessary adegmt_ and adeinst_ prefixes from some functions in ade and adeinst (entirely cosmetic) Release 2.2.2 (Sun 2 Jun 15:37:10 CEST 2024) * ade: corrected another test ref file needed by readding ADE_LOCK_PREFIX * ade: corrected test ref file needed by readding ADE_LOCK_PREFIX * ade: re-added ADE_LOCK_PREFIX, as it was referenced, not least by all the -config.sh scripts Release 2.2.1 (Sat 1 Jun 18:45:41 CEST 2024) * ade: added missing svn:executable to non-generated ade-app-config * ade: removed ADE_LOCK_PREFIX references; I believe this is unreferenced * ade: modified ade-app-config to be: not generated; use miniade; simplified derivation of values * ade: removed some unnecessary _ prefixes from functions that aren't outside the scripts themselves Release 2.2 (Fri 24 May 12:08:58 CEST 2024) * ade: added svn markers to new C files in ./arc. * ade: renamed some messaging and eval functions inside scripts (not libraries) so that my miniade checks don't report false positives ade: corrected some never-called calls to obsolete function names * ade: adedevsh.sh is now generated by small out-of-module script (which is there principally to ensure scripts are aligned across all modules, not to replace hand-editing), also in templates * ade: removed some commented out and commented it unused functions * ade: functions provided by miniade recently got 'miniade_' prefix. This allowed adding psrf test for function calls that should be prefixed but weren't. However, that then turned up calls to the equivalent functions in adetestsupport.sh, so these - and all calls to them have now also been updated * ade: added ancient version of C functions (Makefile still needs to be adjusted to exclude this from installation) Release 2.1 (Wed 6 Mar 08:43:28 CET 2024) * ade: WP#183 (bug in paa) triggered need for ade to receive error text from SQLite triggers in new format (error text must now be enclosed in square brackets) * ade: lxsmall now uses miniade Release 2.0.10 (Mon 19 Feb 12:40:34 CET 2024) * ade: minor updates for Debian 12 (formt of one forced python error message referenced in test ref file changed, ademan2html's call to zsoelim requires longer zsoelim-specific $PATH, as it's moved directory) * ade: fixed argument expansion issue in adedevsh.sh * ade: corrected bug in error message (i.e. didn't appear often) Release 2.0.9 (Tue 18 Apr 22:14:17 CEST 2023) * ade: allow message writing functions to write to log files even if verbose level not adequate (if log file writer function is on the list of active message writing functions (needed to debug wra) Release 2.0.8 (Mon 20 Mar 16:29:29 CET 2023) * ade: fixed bug in ademan2html that prevented in-situ man pages being converted (failure to .so -config) Release 2.0.7 (Fri 26 Aug 16:15:22 CEST 2022) * ade: ADESTDTEST501 to allow ${word} without quotes when it is a variable not a hash key Release 2.0.6 (Fri 26 Aug 13:54:52 CEST 2022) * ade: modifed perl and python versions of ade_sql_edit to drop views (as well as indexes, triggers and tables). Release 2.0.5 (Wed 24 Aug 13:15:34 CEST 2022) * ade: catch all failed attempts to write temporary lock files (closes WP#178) Release 2.0.4 (Sun 2 Jan 13:55:26 CET 2022) * ade: corrected ADE511 reference file; under Debian 10 a bug in ade meant that the test actually failed but the reference file accepted that. Under Debian 11 the bug is no longer present so the reference file needed fixing. [i.e. node code changes!] * ade: minor corrections to adeass man page Release 2.0.3 (Fri 22 Oct 08:40:32 CEST 2021) * ade: removed calls to unlink_quietyly() provided by rak and rdw2 and implemented equivalent functionality directly in ade Release 2.0.2 (Thu 26 Aug 11:50:56 CEST 2021) * ade: for UUID generation in perl, switched form UUID::Tiny to Data::UUID (this is because the former is not available on CentOS and therefore creates dependency issues for installing ade as prerequisite for installing rak) Release 2.0.1 (Sat 21 Aug 10:47:29 CEST 2021) * ade: corrected small bug in db_init that was introduced during perlcritic fixes but not detected due to rak (which calls db_init) being tested against the *installed* ade Release 2 (Fri 20 Aug 16:05:08 CEST 2021) * ade: satisfied perlcritic and bumped to release 2. Release 1.99.5 (Thu 12 Aug 19:57:20 CEST 2021) * ade: removed setting ADE_PREFIX from adedevsh as it screwed up the test installation of man pages * ade: added missing svn property on recently added DE514_stdlibs_ade_spc_multifork_two_calls.sh * ade: *some* perlcritic fixes (many left still to do) * ade: aligned *devsh.sh across all modules * ade: don't subject ADE.pm to all of ADESTDTEST501 as it is not suitable for testing ADE itself * ade: ade_sql_upgrade to rollback on error, not commit * ade: fixed ade.py's ade_sql_upgrade() function and cloned it to ADE.pm * ade: ADESTDTEST501 improved such that putting 'ADESTDTEST501' on the end of one of the lines it would warn about causes it not to warn * ade: debugging level changes only * ade: imported many SQL-related functions from rak.pl and rdw2.py * ade: adjusted some debug levels * ade: ade_spc_multifork to use SIG_SETMASK instead of SIG_UNBLOCK for better cleanup (it allows putting signals back as they were instead of unblocking what we blocked *but* which might have been blocked already. * ade: corrected bug in ade_spc_multifork (triggered by rak) whereby a *second* call to the function did not trip SIGCHLD handler when child exited * ade: added perl _qm SQL functions (needed for Rak) Release 1.99.4 (Mon 14 Jun 16:32:02 CEST 2021) * ade: reworked adeinst, including removing options to set owner and group and reducing permissions support by option to set permissions, adding ability to install symlinks properly Release 1.99.3 (Fri 11 Jun 16:18:58 CEST 2021) * ade: improved ADESTDTEST501_perl_scripts_dont_use_many_things * ade: test return code from '.' in shell scripts and added added a standard test to the same to other modules Release 1.99.1 (Thu 10 Jun 11:10:42 CEST 2021) * ade/adebun: removed a debug call using an undefined var * ade: corrected some svn:ignores * ade: major update after running perlcritic; highlights are: + code is now perlcritic compliant (subject to some tests being disabled in ~/.perlcriticrc) + moved lib to share + switch to 'and', 'or' and 'not' instead of '&&', '||' and '!', though extra brackets needed to be added to keep associations correct ('&&' and 'and' have different operator precedence, etc) + removed ade_mua_* functions (they were used by FAD) + removed three other other unused functions + removed C functions, which have never been used. Release 1.16.3 (Thu 27 May 16:26:15 CEST 2021) * ade: finally fixed #79 with environment isolation in test ADESTDTEST200_docs_manpages_exist * ade: minor correction to adeass man page * ade: minor correction to code added to help solve #79. Release 1.16.2 (Fri 12 Mar 11:28:46 CET 2021) * ade: added debug to ADESTDTEST200_docs_manpages_exist.sh to help track down the cause of #79. * ade: adeass calls switched from quoted-space-separated list of modules to comma-separated list of modules Release 1.16.1 (Mon 8 Mar 14:56:04 CET 2021) * ade: minor man page correction * ade: check modules are valid and file exists (closes #109) * ade: set vim filetype at top of .ass files * ade: added comment 'coding: utf-8' to all python scripts * ade: quieten make a bit * ade: changed ade_msg_paths() to allow non-zero return code from app-provided function and display the error and adjust the (unixy) exit code accordingly (closes #WP81) Release 1.16 (Tue 21 Jul 09:58:36 CEST 2020) * ade: decreased verbosity of a single debug message in adebun, which was so low (2) that it kept tripping bs into thinking that source testing had failed. * ade: set file type in *.ass files * ade: stop adeass writing blank lines that upset 'groff -man -Tps' (closes WP#75). Release 1.15.3 (Tue 14 Jul 11:36:35 CEST 2020) * ade: dh bawking on compiling .c files (cc says can't find cc1), so - as a stopgap measure - reimplemented sleep-and-echo.c in perl (remember it's important that this command does not fork any children because that adds child-must-reap-grand-children requirement, which is why it's not implemented in shell) * ade: added missing properties * ade: finally fixed ade_spc_multifork()! * ade: more work on ade_spc_multifork() and tests * ade: set debug_idle_loop_interval to 900s: this is the time after which the main loop in ade_spc_multifork() will start dumping job states to aid debugging * ade: total overhaul of ade_spc_multifork() function to fix process tracking issues and align with similar functions in js. * ade: removed all backquoted commands and system()ed commands after heaving testing of ade_spc_multifork() led to fork failures * ade: removed _ade_gep_getosid() and calls as it is unused and sets only local variables. * ade: fixed bug whereby adebun failed for symlinks Release 1.15.1 (Wed 8 Jul 13:05:33 CEST 2020) * ade: switched ade_spc_multifork() to using sub-second resolution versions of time() and alarm() for more reliable timeouts. * ade: corrected ade_sql_select_count_qm(), which was calling a non-ade function to do the SQL. * ade: minor test improvement aimed at ensuring more reproducible test execution sequence Release 1.15 (Thu 28 May 10:20:38 CEST 2020) * ade: minor changes to ade_sql_*_qm() needed to make them work outside rdw2 * ade: imported ade_sql_*_qm() functions from rdw2 * ade: Python ade_lck_lock_simple() now takes optional third argument whose return value will be used a error message when lock fails * ade: added support to ade-app-config for python output * ade: switched to echoing test names rather than sed-ing them in template modules (ade itself was already switched) Release 1.14.3 (Tue 31 Mar 13:58:08 CEST 2020) * ade: fixed bug whereby debian package builder's 'env -i' calls resulted in attempts to get current username in ade.py failed. Release 1.14.2 (Tue 31 Mar 12:31:30 CEST 2020) * ade: switched to Python version of ademan2html and improved it Release 1.14.1 (Fri 27 Mar 14:32:02 CET 2020) * ade: corrected reference output of lx{perl,python,shell} template modules * ade: added a test to call adegmt on each of those templates and run their tests so that this kind of error hopefully won't get overlooked again Release 1.14 (Fri 27 Mar 13:29:54 CET 2020) * ade: many changes for SOFT-136 * ade: better aligned ade{py,perl,sh}f man pages (description and examples sections) * ade: in all commands, removed disabling full error stack dumps as top-frame only stack dumps are now the default * ade: alignment of locking functions' messages between sh/perl/python ade libs * ade: added function context to ade{py,perl,sh}f to allow return to be called * ade: finished implementing ade_lck_{lock,unlock}_simple() in shell, perl, python and added test * ade: partially added ade_lck_{lock,unlock}_simple() functions * ade: switched to python3 Release 1.13.1 (Wed 4 Mar 14:43:14 CET 2020) * ade: minor fixes to templates * ade: moved include to lib/include for FHS compliancy * ade: changes to become truly independant from version already installed and build cleanly in chroot environment Release 1.12.3 (Thu 26 Dec 19:34:14 CET 2019) * ade: fixed bug whereby module list not correctly split into words * ade: changed all backquotes to $(...) * ade: ade-ified adeass and added a test * ade: renamed a test * ade: help adeass find the -config in the source tree (rather than relying on the one already installed in /usr/bin) * ade: more corrections to templates * ade: corrects some errors in man page templates * ade: moved template modules' man pages from man to man/man1 * ade: man page improvements and subversion property fixes for recently added files * ade: due to changes in man-db between version 2.7.5 and 2.8.5, on-the-fly inclusion of environment-defined paths (either by use of '.pso ade-config --format=man' to generate '.ds ' definitions, or by simple inclusion ('.so') of an external file that references environment variables ('\V[]') to other man page components, e.g. standard copyright message, is no longer supported (I think this is man's equivalent of perl's taint protection); https://lists.gnu.org/archive/html/man-db-devel/2019-12/msg00000.html. so man pages now need to have all external inclusions resolved into a single file. This seems like a backward step since, a long time ago, this is what I did, but then, convinced by the arguments of others, I switched to the "library" approach for code and man page includes. Therefore new command adeass added which can assemble files. Currently it really only supports man pages (and making ade.mk invoke it for some other format might be difficult even though adeass itself can be invoked for other formats). * ade: added Perl Z-encoding functions (to support js) Release 1.11.2 (Thu 25 Apr 11:37:01 CEST 2019) * ade: added svn properties to python version of ademan2html * ade: quieten adetest * ade: added rough python version of ademan2html Release 1.11.1 (Tue 23 Apr 15:21:51 CEST 2019) * ade: ade_db_start() now disables headings and other things that may have been set in a user's ~/.sqliterc * ade: commented out partially converted shell in perl functions for z-encoding * ade: updated some references to dione.no-ip.org * ade: fixed option processing bug in ADE.pm Release 1.11 (Thu 28 Feb 13:44:43 CET 2019) * ade: removed comprehension abuse and passing-empty-list-to-populate-instead-of-allowing- -two-return-codes (closes SOFT-122) * ade: corrected a cosmetic typo in debug call * ade: starting adding ade_sql_*() python functions Release 1.10.3 (Thu 1 Feb 08:38:30 CET 2018) * ade: corrected error in ade_spc_multifork() whereby when there was no error from any command that was forked, then an error frame was added to the stack and $ade_ok was returned. (so the caller thought - correctly - there was no error, and didn't bother to inspect the stack) * ade: minor update to ade_spc_multifork() to standardise return method (closes SOFT-119) * ade: updated template's xxxadevsh.sh based on latest in use Release 1.10.2 (Thu 8 Jun 18:16:13 CEST 2017) * ade: force nroff to produce ASCII output, rather than UTF; this makes ademan2html work again. * ade: some spelling corrections Release 1.10.1 (Thu 8 Jun 14:02:14 CEST 2017) * ade: update various strings for SOFT-82. Release 1.10 (Tue 6 Jun 15:56:01 CEST 2017) * ade/ADE.pm: added ade_sql_*() functions * ade: corrected some erroneous references to iofdb_err_misc Release 1.9 (Sat 27 May 18:29:37 CEST 2017) * ade/ADE.pm: imported MPCDF launch_cmds_and_wait() function as ade_spc_multifork() and updated copyright in README.1ST accordingly. * ade/ADE.pm: exported functions ade_tmp_registerfunc() and ade_tmp_deregisterfunc() for SOFT-113 Release 1.8.1 (Thu 9 Mar 09:03:45 CET 2017) * ade/ade.sh: minor further fixes to ade_var_inherit() for exported and arrayed variables Release 1.8 (Tue 7 Mar 12:51:57 CET 2017) * ade: removed 'set -e' from all shell scripts and added test to ensure its absence * ade/ade.sh: simplified ade_std_printf() * ade/ade.sh: simplified ade_std_which() * ade/ade.sh: ade_var_inherit() works around 'local' related issue in bash 4.3 Release 1.7.7 (Sun Jul 17 15:04:53 CEST 2016) * ade/ade.*: allow digits in options names (as long as not first character; (done to allow analyzeacct to have '--k40s' option) * ade/man/adech.1: fixed typo in EXAMPLES * ade/ade.py: fixed to argument count in ade_err_error() calls * ade/ade.py: tolerate IOError (raised by registering a SIGCHLD handler) in _ade_msg_writer_stderr() * ade/adepyf: corrected typo in man page Release 1.7.6 (Fri Apr 8 13:58:39 CEST 2016) * ade/adepyf: install it, refer to it in other ade*f man pages, note it is pretty useless in adepyf man page * ade/adepyf: removed old comprehension assign/test tricks * ade/adepyf: removed old pass-array-to-get-single-val-back-by-ref tricks * ade: updated Makefiles to support installing ade.py * ade/ade.py: added support for displaying only one error frame * ade/ade.sh: starts work on SOFT-79 Release 1.7.4 (Thu Feb 4 18:12:18 CET 2016) * ade/ade.sh: timeout and separator now passed to ade_db_sqlite_start() and ade_var_inherit() and ade_var_global() moved from rdw and paa (fixes SOFT-73) Release 1.7.3 (Thu Jan 21 17:04:10 CET 2016) * ade/ademan2html: implemented test for SOFT-3 and fixed bug * ade/adech.sh: improved messages when ChangeLog unparsable Release 1.7.2 (Mon Jul 20 18:44:10 CEST 2015) * ade/adedevsh.sh: fixed PS1 * ade/lxperl.pl: added '&' to all ade_*() calls (fixes ADE-10) * ade/ADE.pm: made ade_lck_checklock() public (fixes ADE-11) Release 1.7.1 (Sun Feb 22 11:42:24 CET 2015) * ade/ade.sh: bug fixes in tests detected during work on RDW-6 Release 1.7 (Thu Jan 29 10:17:31 CET 2015) * ade/ade.sh: imported functions munge() and filter() from PAA. * ade/ade.sh: debug() calls added to help (as yet unsuccessfully) to debug standard test that fails on Ubuntu 14.04's bash, but which is okay on Debian 7. * ade: moved sqlite start/stop/read-and-write functions from paa to ade; this is a feature required for RDW-6. Release 1.6 (Thu Oct 30 19:05:18 CET 2014) * ade: added svn properties to new lxdebian template * ade: adedevsh.sh improved to handle man page access correctly and same for lxdevsh.sh in templates. * ade: addition of lxdebian template * ade: adebun no longer warns about .gz files (this was in order to release mdi, which includes source bundles in tar.gz files to be installed on install clients) * ade/adegmt: added -l / --list-templates option to list available templates * ade: updated lx*devsh.sh with more complete list of variables * ade/ade.mk: improved code looping to find -config in order to fix ADE-7 and to make it faster (now no calls to external programs). * ade/ade.mk: reverted the changed made for ADE-7, which caused 'make tests' (for all modules) to hang. * ade/ade.mk: allow hyphen in the sought -config file (closes ADE-7) * ade/adech: added '--comment=' option (required by BS-1) * ade/adeinst: improved error message when arguments are used to determine mode and mode cannot be determined (closes ADE-4) * ade: implmented public Z-encoding functions, currently used by ade itself and by rocon (closes ADE-3) * ade: enabled option bundling in ADE.pm (to support 'mkfad -vv') (closes FAD-1) * ade: split some code in man page over more lines to prevent too-wide lines Release 1.5.3 (Sat Oct 5 20:20:07 CEST 2013) * ade: added '&' to the list of characters that need Z-encoding in and out of error stack frames * ade: fixed typos in comments Release 1.5.2 (Tue Feb 26 19:58:38 CET 2013) * ade: in ade_err_internal() do a dump of the stack as it may be what for a low-level function is a normal error, becomes an internal error as the the returns propogate up (do in shell, perl and python) * ade: protect '|' on error stack * ade: ade's coproc now execs the command from inside curly brackets rather than just calling it from inside curly brackets (the difference is that without the exec the command runs in a subshell whose pid we can't predict) * ade: added a test to check for calls to 'wait' without parameters (which always winds up waiting for something I was not expecting it to wait for) * ade: aligned adedevsh with other *devsh scripts Release 1.5.1 (Thu Jan 31 21:28:53 CET 2013) * ade: changed ade_err_internal to do an immediate exit (otherwise a call to the cleanup functions that goes wrong can lead to a call to ade_err_internal that calls the cleanup functions ...). Implemented in shell, perl and python Release 1.5 (Mon Jan 7 19:49:06 CET 2013) * ade: corrected python version reporting code in ade.py for tags and branches * ade: added missing svn markers * ade: clean up .pyc files in ade/include * ade: don't svn:ignore anything in template directories (since these are not make-ed by a top-level make, if one goes into a template and runs make there, then stuff is created that is not cleaned; this annoys bs) * ade: renamed ade_fhf_*() functions and improved * ade: removed references to IFS whereever possible; ade_std_which() had returned in an error situation without restoring IFS's old value and this had caused the exit-time calling of registered functions to fail (because the space separating the list of functions was considered to be part of the functions' name) * ade: a standard test added to check for assignments to IFS, in order to spot risky like above. * ade: updated some test ref files based on changes to ade_std_which() and recent changes to invert_rc() * ade: fixed bash4-specific typo in ade_smf_lc() and ade_smf_uc() functions * ade: added --quiet option to invert_rc in the test support library * ade: added functions ade_fhf_open() and ade_fhf_close() in ade.sh (this was needed for paa which was using bash-4-specific {FH} syntax to open files * ade: added functions ade_smf_uc() and ade_smf_lc() in ade.sh (this was needed for paa which was using bash-4-specific ${VAR^^} and ${VAR,,} to do case conversion * ade: minor tidying to ade_std_which() to make it more paa-friendly * ade: passed missing stack to _ade_tmp_func()'s calls to registered functions (this was causing paa not to call sqlite_stop() and thereby leave many hanging processes) * ade: added --quiet to standard tests' calls to invert_rc, since it is now loud and then breaks consistent test output (more commands being tested by standard tests produced more noise) * ade: removed commented out debug lines in ade.mk * ade: added a warning to the invert_rc() function, which can be used by testers; the warning says "expect a failure!" * bin/ade-app-config.sh: paa revealed a bug in the 'direct' code, where two different filenames were being used to access stdout (>&1 and >/dev/stdout) which, when stdout was redirected to a seek-able file, resulted in output to one handle *overwriting* (not being appended *after*) output to the other handle. Solution was not to use /dev/stdout but &1 instead (this necessitate changing the 'indirect' code to also copy with a filehandle instead of a file as output) * ade/ade.sh: escape dollars in error frames (added after seeing a corrupted frame in paa) * ade/ade.sh: added three functions taken from paa, reordered some other functions, and changed some minor ade_std_*() functions to use 'case $UNAMES' instead of 'if [ `uname -s` ...' * ade: corrected ade-app-config man page, which had 'app' in italic as a placeholder, rather than in bold for the literal text 'app' * ade/ade.sh: z-encode curly braces as eval'ing error frames are subject to bash's brace expansion (i.e. x{a,b}y --> xay xby) (change required for paa, which may have error messages of this format) * ade/python: cosmetic corrections to ade.py * ade/python: corrected lxpython tests and minor code fixes so that tests work * ade/python: switched from 3rd-arg-is-list in error-related function calls, to variable-number-of-args * ade/python: fixed some missing newlines * ade/python: removed some superfluous README.1ST files from templates * ade/python: register known options within programs to inside main function rather than in the globals section * ade: removed superfluous comments from lxpython.py, ade.py, and adepyf.py * ade: minor alignments in adepyf.py with lxpython.py template * ade: more work on lxpython and ade.py (getting option registration working properly) * ade: adding lxpython * ade: added partial python support (adepyf exists and is runnable) Release 1.4.9 (Tue Jan 17 17:15:21 CET 2012) * ade: further correction to CONF_FILES/ETC_FILES setting in ade.mk Release 1.4.8 (Sun Jan 15 11:26:37 CET 2012) * ade: renamed CONF_FILES to ETC_FILES (fixes ADE#328) * ade: don't strip blank lines from usage messages in ade.sh (ADE.pm already did not do this) * ade: added setting of ADE_DOC_PREFIX in adedevsh.sh (not currently needed by ade, but for alignment with other modules where it is already needed) Release 1.4.7 (Sat Jan 7 12:25:08 CET 2012) * ade: renamed aderel to adebun (closes ADE#326) * ade: fixed bug (detected when working on ADE#326) whereby an untrapped internal error in a function called by ade_opt_process() resulting in a usage error Release 1.4.6 (Thu Dec 22 21:35:11 CET 2011) * ade: z-encode backquotes * ade: made the section of the includable man page relating to verbosity options briefer * ade: adech improvements in the --check-[un]released functions Release 1.4.5 (Sun Dec 18 19:45:37 CET 2011) * ade: removed reference to adech-config from man page * ade: fixed typo in lxperl.pl * ade: expanded list of ADE programs tested by ADE's standard tests * ade: shortened adech's usage message so as to pass ADE standard test * ade: add -U to ademan2html's nroff call after I saw man pages formatted wrong on the web server. * ade: install the recently added adech's man page. doh. Release 1.4 (Sun Dec 18 14:19:16 CET 2011) * ade: added long options --window, --icon, --both, --force to template commands and their man pages (closes ADE#322) * ade: added sections to template commands showing how to call ade_err_resetstack() to modify error stack processing behaviour (closes ADE#323) * ade: added adech (closes ADE#324) * ade: z-encode '<' and '>' which may appear in error frames (e.g. "X: not set (do you need to use '--set-x='?)") Release 1.3.13 (Tue Dec 13 16:36:31 CET 2011) * ade: fixed formatting error in a man page, reported by lintian * ade: merged many ChangeLog entries * ade: corrected stack initialisation in python library (1.3.8) * ade: added support for spool directories (1.3.7) * ade: removed bash-ism from ade.mk (closes ADE#321) (1.3.6) * ade: indentation correction (1.3.6) * ade: removed test ADE900_adegmt_tplmods_usable; it is too sensitive to the environment (which alters substantially when bsfr runs it) (1.3.4) * ade: fixed bug in aderel whereby release id not calculated (1.3.2) * ade: fixed bug in aderel whereby make command not set by default (1.3.1) Release 1.3 (Wed Feb 2 19:29:47 CET 2011) * ade: merged branch 'bugfixing-option-processing' into trunk: - wrote perl versions of new option processing code, ported perl commands, finished porting shell commands, many other related fixes - fixed typo in comment - got commands and commands in templates working after changes to option processing code in libraries - removed tests on old option processing code, re-added tests on template modules - minor formatting fixes to the functions generating usage messages, path lists and version information - working on fixing bug in option processing code revealed by srf's --diff-text="" option - THIS IS A WORK IN PROGRESS Release 1.2 (Sun Jan 2 15:43:49 CET 2011) * ade: svn property fixes as bsfr-time * ade: don't install adepyf for the time being * ade: added function ade_smf_escape() to shell library * ade: updated INSTALL.generic's section on getting groff invoked in 'unsafe' mode (fixes ADE#316) * ade: added support for writing standard messages (error, debug, etc) to syslog or to /dev/null; this is added in both perl and shell libraries (this is all a prerequisite to allowing faddiff to exit non-zero on a difference without triggering a dump of an empty error stack) * ade: beginnings of python support Release 1.1.2 (Tue Sep 14 12:49:08 CEST 2010) * ade: z-encode semicolons in error frames, corrected a typo, added a missing error code option (which triggered an error when the error *message* was assumed to be the missing error code) Release 1.1.1 (Thu Sep 9 15:52:57 CEST 2010) * ade: locking code updated from much clarified and slightly debugged version used in other standalone scripts Release 1.1 (Wed Jul 28 11:27:11 CEST 2010) * ade: inside code use ADE_TMP_DIR instead of TMP_DIR or TMPDIR * ade: adetest now propogate TMP_DIR to tests instead of TMPDIR * ade: X-protected a couple of strings in '[' calls Release 1.0.11 (Fri Mar 26 21:20:55 CET 2010) * ade: documented the changes needed to /etc/manpath.config. Release 1.0.10 (Fri Mar 26 21:13:52 CET 2010) * ade: svn property corrections * ade: implemented _ade_err_zencode() and _ade_err_zdecode() to allow error frames with quotes/spaces/brackets to be safely put on the error stack (closes ADE#305) * ade: corrected path to template modules mentioned in adegmt(1) * ade: corrected quoting in commands in man pages' EXAMPLES sections (closes ADE#313) * ade: fixed ADE#314 (ade.mk's call to -config can fail and not cause exit) * ade: fixed ADE#315 (ADESTDTEST200_docs_manpages_exist's substitions in -config not scoped narrowly enough) Release 1.0.9 (Sun Mar 21 10:33:39 CET 2010) * ade: fixed ADE#312 (perl ade_usr_getmyloginname() causing sed errors in apache log files) * ade: removed ade_std_df_localfs() and ade_std_mailx() as these appear to be unused and are not ADE-compliant (and I wanted to implement something similar that is ADE-compliant in mondsk) * ade: turned down some debug levels in ade_tmp_registerfile() and ade_tmp_deregisterfile() * ade: fixed ADE#310 (usage messages using defaulted option variables are incomplete) * ade: updated README.1ST files in templates Release 1.0.8 (Tue Feb 9 17:03:53 CET 2010) * ade: various property fixes prior to release * ade: released reservation on options -f and --config file * ade: further work on ADE#302 (corrected inclusion of ade.sh in template lxshell.sh, which was including ADE.sh) * ade: adegmt now checks for target existing already * ade: removed references to adetest in the included man pages (this led to 'man wra' mentioning adetest) and added mentions of lx-config to the lx.1 man pages Release 1.0.7 (Fri Oct 23 22:22:04 CEST 2009) * ade: fixed bug #ADE308 (option processing code not handling --debug correctly) Release 1.0.6 (Wed Oct 21 09:05:41 CEST 2009) * ade: fixed bug ADE#302 (rename ADE.sh to ade.sh) * ade: backed out alexis-specific paths in bin/ade-config.sh * ade: fixed bug ADE#303 (missing stack in ade_lck_unlock() definition) * ade: fixed bug ADE#307 (non-POSIX processing of command line option-like arguments in all ADE-based apps) * ade: fixed some minor typos in comments * ade: ported tests to work on ZFS (output of "ls -ld" on directories is slightly different) * ade: ported to bash 4.0.23(1) * ade: removed a simple 'echo' inserted for debugging Release 0.0.1 (Mon Jan 26 16:36:24 CET 2009) * ade: updated Makefile with a blank line (just as an example to Dirk Mader) Release 1.0.5 (Fri Dec 26 13:07:22 CET 2008) * ade: fixed minor bug in adedevsh whereby arguments were not correctly expanded (this was cause of previous corrupt release 1.0.3 and test release 1.0.4) Release 1.0.4 (Fri Dec 26 13:01:57 CET 2008) Release 1.0.3 (Fri Dec 26 12:52:27 CET 2008) * ade: explicit chmods in test scripts needed now adeinst copies permissions to destination file rather than just making destination file executable. * ade: updated reference file for ADE500_adelibs_std_which which now doesn't lose a stack dump * ade: updated ADESTDTEST302_shell_scripts_dont_return_dollarquestionmark_if_negated to include line number in its greppings * ade: corrected bug whereby adeinst derived from files with automatically assigned directory permission 'uto' (last 3 letters of 'auto') * ade: corrected bug whereby wra's STOP.mp3 was installed with permissions 755. * ade: corrected bug whereby fadscan's temporary snapshot was not cleaned up. * ade: fixed bug whereby ade_err_internal was not generating output unless debug level at least 3 * ade: implmented shell version of ade_err_instack() * ade: imported ade_msg_askquestion() from iofdb * ade: added error ade_err_eof/ADE_ERR_EOF and used it in ade_msg_askquestion() * ade: adedevsh.sh now handles spaces in arguments better Release 1.0.2 (Sun Jun 22 12:07:28 CEST 2008) * ade: more workarounds for BTS#487387 * ade: corrected name of -config programs called by man pages in template modules * ade: made further use of the macros provided by ade.man * ade: work around BTS#487387 (I think this is actually a bug in bash 4.2) Release 1.0.1 (Sat May 17 20:46:36 CEST 2008) * ade: fixed minor problem with location of template modules Release 1.0 (Sat May 17 19:13:24 CEST 2008) * ade: modified aderel to not exclude .tar.gz files from releases (AHDG includes some tar.gz files) Release 0.99.12 (Wed May 14 20:07:18 CEST 2008) * ade: install also the *-config's man pages. * ade: renamed template_modules to simply templates (adegmt and aderel updated accordingly) * ade: template modules now install their *-config commands Release 0.99.11 (Wed May 14 19:40:21 CEST 2008) * ade: removed test ADE700_ademan2html_accepts_fragment; this test is simply too suspceptible to varying output! * ade: changed all scripts to use bash rather than sh (this is to align the scripts with the stated bash prerequisite, not for any functional reason) * ade: expanded install recipe in ade.mk to support specifing the umask instead of the permission with which a file should be installed * ade: removed ade_std_whence() function as is unused and I didn't feel like porting it to bash instead of using sh as it does internally * ade: added standard test to check for 'if ! ...; then return $?' which returns 0 if the function fails! (It should return non-zero, but the inversion inverts not only the expression tested by the 'if' but it also inverts $?. * ade: deleted the C functions which were totally unused and has not been updated or ported. Release 0.99.10 (Sat Apr 26 19:06:26 CEST 2008) * ade: imported functions ade_msg_askquestion, ade_smf_validate_float, ade_smf_validate_integer from iofdb * ade: lowered verbosity at which internal error messages appeared as none were appearing * ade: ade_std_echo() now wants an error stack Release 0.99.9 (Mon Apr 14 19:03:27 CEST 2008) * ade: minor updates to the lxperl and lxshell man pages. * ade: modified test ADE800_adeperlf_adeshf.sh to use LANGVAR instead of LANG, as using the latter interferes with locale processing in some circumstances (for Thomas Anglmaier with LC_TYPE, etc set, but LC_ALL unset, but not for Alexis Huxley with LC_ALL set and LC_TYPE, etc unset). Release 0.99.8 (Sun Apr 13 15:20:40 CEST 2008) * ade: used the standard hack to tell make which adeinst to call and where *that* should find ade-config in the lib/template_modules directory from which it was missing (omission only discovered when ade purged from my system and I tried to build it). Release 0.99.7 (Sun Apr 13 14:00:52 CEST 2008) * ade: updated reference file for ADE500_adelibs_std_which (which had been accidentally left for a broken test - I fixed a bug without realising it and now the reference file needs updating) * ade: switched from ade_err_error(..., xxx_err_internal, ...) to ade_err_internal(). Much simpler! * ade: aligned argument processing in shell and perl versions of ade_err_displaystack (now *neither* function checks for a debug level parameter if output function is ade_msg_displaydebug) * ade: fixed bug whereby the command: adeshf -d 1000 'return $ADE_FAIL' produced: adeshf: DEBUG[10]: main: calling "return " ... with the $ADE_FAIL being interpreted in a context (text of an error message) where it should not be interpreted). The cause was use of perl to perform a sed-like substitution, but using bash's ${variable//oldtext/newtext} works much faster and better. * ade: updated INSTALL to explain how to optionally install lxperl or lxshell as lx. * ade: made consistent the quoting of receival or error stacks in shell scripts * ade: made consistent use of $ADE_ERR_{OK,FAIL} in lxshell.sh * ade: removed some unused variables from lxperl.pl * ade: moved load-time checks on sendmail/$SMTP_SERVER to sendmail- execution-time in order to work with systems without sendmail, and where mail delivery not used. (This was a bug detected by Thomas's attempt to build ADE) Release 0.99.6 (Mon Mar 17 22:14:46 CET 2008) * ade: don't install README.1ST 'cos it doesn't exist any more, and don't install INSTALL as it's pointless * ade: fixed missing %s in format string for ADETEST_ERR_ACCESS error code * ade: forced explicit $PATH in ADE500_adelibs_std_which.sh to cope with Slackware, where /usr/bin is in the $PATH before /bin and so ade_std_which reports path of ls command inconsistently * ade: ade.mk: added rule to install documentation * ade: made README.1ST more explicit about relative priorities of instructions in INSTALL and INSTALL.generic. * ade: added test that perl won't complain about misconfigured locales (although not an ADE bug, ADE tests will fail if system has this bug, so better to check). Release 0.99.5 (Sun Mar 16 17:34:17 CET 2008) * ade: oops .. forgot to delete the README.1ST in doc Release 0.99.4 (Sun Mar 16 12:51:35 CET 2008) * ade: specified explicitpath to adeinst for both ade and other ade-based apps (this was seen to be necessary when I saw that ade.mk just said 'INSTALL_CMD = adeinst' and that the one it found first in /usr/bin was still using '-d' for directories instead of the '-D' it was being passed. Now we force ade to use its own adeinst at install time. (We also force other ade-based apps to use the adeinst command in the directory returned by 'ade-config ade_bin_prefix'). * ade: changed use of -d to -D in calls to adeinst * ade: readded exclusion of descent into 'debian' directory (although it does not exist in the sources, at deb-building-time it will be added; arguably it is therefore the deb-maintainer's responsibility to add this line, not the source maintainer's). * ade: corrected keywords * ade: added SVN keywords and properties to recently added files * ade: as per Andrea Balestra's email message id <00bd01c8836f$37578430$a6068c90$@balestra@eso.org>, added README.1ST in top level directory (and in template modules) and made minor corrections to text in INSTALL.generic. * ade: added ADE900_adegmt_tplmods_usable test (for adegmt and templates) * ade: removed very obsolete adegmt tests (totally non-functional now) * ade: rewrote shell version of ade_fnm_makeabsolute and added test * ade: completed updates to template modules and to adegmt * ade: renamed all _functions to the specific app name (e.g. in adetest app_usage() became adetest_usage()) * ade: some moves as part of template creation * ade: beginning of adding template modules Release 0.99.3 (Sun Feb 24 18:19:51 CET 2008) * ade: costmetic changes to test reference files * ade: delay listing application paths until all options processed as they may affect paths * ade: corrected some bugs in ade_err_instack() now I actually use it * ade: basically did a rewrite of ade-app-config's stdin processing so that it does the complete processing for each variable in turn rather than doing them all together (consequently it is now possible to set a single variable which is derived from one which is not set e.g. ADE_MAN8_PREFIX=$ADE_MAN_PREFIX/man.1m) * ade: adedevsh checks directories exist before setting them * ade: added test to check that only top frame dumped when requested and fixed bug whereby not only the top frame was printed on shell stack dumps * ade: activated some previously written tests which I'd forgotten to include in testlist. * ade: fixed a 'set -e' environment bug whereby a function appeared to return but next line not executed * ade: added ade_std_true and ade_std_false in Perl library * ade: abondonned load-time support for checking access to compression tools as I don't have compress installed and don't want to install it * ade: fixed bug in perl ade_std_which whereby $PATH search was aborted prematurely * ade: adeshf now accepts only a single arg (much easier) * ade: all calls to ade_spc_procopts() now have config hash passed in a variable instead of directly in the parameter list) * ade: renamed app_* functions to _* functions * ade: added some missing SVN markers and properties * ade: got ade_std_which() working again but stripped the -a option and ade_std_false() and rewrote test for ade_std_which() as the function has changed * ade: renamed adeMakefile to ade.mk * ade: moved C stuff to 'unused' subdirectories and added this to the parent Makefile's exclusion list * ade: aligned definition and usage of error messages * ade: made some private functions explicitly private with '_' prefix. * ade: aligned use of ade_gep_main() and the load-time checks which are now divided into stack-dependent and stack-independent code (the former called only once stack initialised) * ade: ade_err_resetstack() aligned in perl and shell versions * ade: ade_app_version, ade_app_paths and ade_app_usage aligned * ade: added shell version of ade_smf_extractversionfromsvnstring() * ade: added functions ade_std_true() and ade_std_false() and tests * ade: added ade.man which defines macros for the SYNOPSIS, OPTIONS and COPYRIGHT sections * ade-app-config's 'c' format renamed to 'cpp' * ade: deleted old template modules * ade: switched a couple of commands use of -f option to something else in order to then reserve -f for specifying config files * ade: commented out ade_msg_*question*() pending necessary rewrite * ade: corrected some calls to ade_tmp_register() instead of ade_tmp_registerfile() * ade: -v and -d options now call ade_err_resetstack() to set change ADE_VERBOSELEVEL * ade: renamed ade_spc_xargs() to ade_std_xargs() * ade: made deeper ade_tmp_*register* functions private * ade: deleted %valid_headers and simplified ade_mua_parsemail() * ade: added more error message types in scripts (after decided that they should not user ade_err_* types) * ade: deleted some unused options in adetest * ade: deleted old commented out load_config_*() functions * ade: adeinst now uses -D to create directories instead of -d (this is because we favour ADE compliancy ("-d means debug") over compliancy with GNU's install tool ("-d means create directories). * ade: added tests for displaying messages at various levels and that ademan2html's --fragment option does the right thing (ademan2html is extremely difficult to test and this is a reasonable good way) * ade: much greater alignment between data initialisation and error stack management functions in ADE.pm and ADE.sh * ade: reordered many functions in ADE.pm and ADE.sh * ade: uppercased many shell error codes * ade: moved option processing out of scripts and into ADE libraries * ade: moved responsibility for displaying standard options out of scripts and into ADE libraries * ade: removed argument for -args-are-generators option (now implicitly set to true) * ade: more quoting of stack variables to ensure if not set that the functions don't get later arguments shifted out of place * ade: corrected minor error in man page example section Release 0.99.2 (Sun Feb 10 17:20:47 CET 2008) * ade: forced umask in some tests after some tests were found to be sensitive to this * ade: removed ade_err_internal (this is now a type of normal error) * ade: modified ade_fnm_dirname() to take a error stack and to handle trailing slashes better * ade: modified ade_usr_amiroot() to take a error stack * ade: converted some `....` to $(....) in order to help vim do correct syntax highlighting * ade: minor correction to ade-app-config man page Release 0.99.1 (Sun Feb 3 17:57:19 CET 2008) * ade: removed all references to ADE_CONFIG_ALLOWENV_FLAG; this is no longer needed. * ade: added missing SVN properties and headers to new files * ade: updated list of include files to install. * ade: added aderel adeshf and adeperlf to commands tested by standard tests. * ade: corrected a couple of calls to _ade_gep_exit which forgot to pass the error stack. * ade: removed some print calls used to debug an odd problem (a print referencing a var caputured from a pattern (i.e. $1, $2, etc) which had not been defined was causing immediate silent return (not an abort, but a return! I verified that this error is not shown in normal code, but was triggered by FAD+ADE. Hmm) * ade: switched adetest's --args-are-generators option to default to false (this makes running tests from command line easier) * ade: adetest now also sets PERL5LIB for the test execution (as it does similar things for PATH and LD_LIBRARY_PATH) * ade: corrected by whereby list of defined paths was initialised as a hash ref, not as a hash (i.e. I changed curly brackets to round brackets) * ade: merged .pl includes into ADE.pm and shell includes to ADE.sh (there are still bugs!) * ade: deleted obsolete tests on adespp which is no longer included Release 0.12.9 (Sun Jan 27 20:02:26 CET 2008) * ade: removed ADE700_ademan2html_convert_ademan2html because it was much to hard to strip variation in already wrapped variably spaced formatted nroff output. Release 0.12.8 (Sun Jan 27 19:32:13 CET 2008) * ade: added SVN properties to several files * ade: added SVN markers to several files * ade: modified some debug statements * ade: ade_mail.pl: export symbol ade_mua_sendmail * ade: ade_utils.pl: ported ade_spc_rollingstatusmanager and ade_smf_isvalidregexp for fadscan * ade: resurrected ade_mail.pl * ade: substituted some "`" and '`" sequences for their $(...) equivalents in order to not to cofuse vim's syntax highlighter * ade: ade_tmp_[de]registerfile: perl and shell functions modified to make arguments absolute (the old behaviour was to generate an internal error on non-absolute passed args but this is a bit crazy when the argument is *not* a temporary file) * ade: added missing SVN keywords to some scripts and man pages * ade: adeshf: better quoting of stack references * ade: added ade-config to SEE ALSO sections of man pages * ade: case correction in adeperlf(1) * ade: removed TODO and BUGS files which were unused. Release 0.12.7 (Fri Jan 11 18:27:39 CET 2008) * ade: updated README.1ST * ade: added support for outputting variable assignments to ade-app-config * ade: removed references to sppsym and SPPSYM * ade: removed all references to #spp in scripts, tests, man pages, renamed *.whatever.spp to *.whatever * ade: replaces INSTALL document with updated version suitable for new ADE * ade: moved the 'this manual page documents version ....' from the top of the man page to the bottom. * ade: removed adeln, adeconf scripts, man pages, tests * ade: corrected bug in aderel whereby some tokens in sources were not being replaced. * ade: removed adeintro(1) man page * ade: wrote a proper man page for ade-app-config.1 * ade: fixed a bug introduced with last edit * ade: corrected case problem in ade-app-config.sh and changed all occurrences of SETTING to VAR (hope this didn't break anything) * ade: reverted setting of ADE_LIB_PREFIX and ADE_INCLUDE_PREFIX in ade-config.sh * ade: ade-app-config.sh: made _{LIB,DOC,INCLUDE}_PREFIX app-specific by adding app name (e.g. libs moved from /usr/lib/ to /usr/lib// * ade: temporarily set ADE_LIB_PREFIX to $ADE_PREFIX/lib/ade to see if ADE_PREFIX is set at time this is read (I'm guessing not) and same for ADE_INCLUDE_PREFIX * ade: ade-app-config now sets _ETC_PREFIX to /etc if is /usr * ade: allowed adedevsh to invoke commands on command line * ade: deleted debian and redhat directories (these really belong in separate modules) * ade: added ademan2html to distribution (incl. tests) * ade: adedevsh: exported variables ADE_INCLUDE_PREFIX and ADE_LIB_PREFIX Release 0.12.2.d (Tue Jan 1 18:24:33 CET 2008) * ade: ade_utils.sh: modified ade_std_ping_once() to pass the packet loss back via a passed variable reference instead of by the function's return value. (This was neede for rocon.) * ade: added a test for the error stack being modified in backquoted subshells (which will have no effect on the current process's stack) Release 0.12.2.a (Wed Aug 8 12:39:26 CEST 2007) * ade: corrected error in previous stderr redirection * ade: redirect stderr of ade_std_ping_once() so that tests for "no such host" etc are doable. * ade: force tests to use the source lib * ade: added ade.mk rule for installing CONF_FILES * ade: changed some calls to ade_msg_internal() to ade_err_internal() * ade: options processing rewrite for ade_std_shell() * ade: added preliminary support for remote execution in ade_std_shell() * ade: clearer construction of hooks to standard targets and recipes * ade: added 'doc' and 'etc' processing to Makefile and ade-*config.sh * ade: expanded ade_tmf_extractversionfromsvnstring() to support tags and branches. * ade: hopefully fixed a bug in ade.mk whereby man pages in sections other than 1 were not being installed * ade: fixed bug whereby paths were not being correctly evaluated in ade-app-config.sh (eval statement needed quoting) * ade: added missing manual sections to ade-config.sh * ade: commented out a couple of echos in ade.mk * ade: ade-app-config's construction of list of variables ade-app-config should report on when nothing specified improved * ade: ade-app-config's annoying refusal to diplay settings of all variables in plain format mode removed * ade: removal all preset paths from ade-config.sh * ade: adedevsh broken * ade: added proper app_msg_{version,listpath} functions * ade: added 'use strict' in aderel.pl * ade: added error stack parameter to a few places where it was missing (usage and version functions) * ade: added function ade_tmf_extractversionfromsvnstring() to extract version information from Subversion ID strings (currently it writes "coconut" as the version string to aid locating the call in further development) * ade: enforced case sensitivity when loading Getopt::Long module * ade: modified ade-app-config.sh to accept any settings which are prefixed with the name of the application and not to complain when non-*_PREFIX vars are set to empty values * ade: added normal debug and verbose options * ade: updated references to placeholder symbols whose names have changed * ade: forced ADESTDTEST200_docs_manpages_exist to compile sources in temp directory and install those, otherwise stuff gets installed in the wrong place and then the search for man pages fails. * ade: added to SVN ID parser the ability to handle tags (which for some strange reason was missing; note that the perl code doesn't have this at all). * ade: merged branch 'switching-to-run-time-loading' as it differed between revisions 2247 and current HEAD. The following changelog entries are imported from the commits on that branch: * ade: added svn:keywords properties to many files * ade: more fixes related to the recent large changes in ADE * more convertion to use of ADE as true library * corrected names of a few message functions called internally by ADE shell library * somehow I've lost a '-s' option to the make that adetest invokes and the result is that one Makefile (the one generated during the execution of ADE600_aderel_makeclean_finds_aderel.sh) now generates some PID-dependent 'Entering ' and 'Leaving ' messages (even more so now that that test has also been modified to invoke make recursively). This has turned up a bug in adetest, which causes tests to behave differently when itself run directly or from a Makefile (e.g. these 'Entering ' messages are not generated when called directly because MAKELEVEL is not yet set, but they are when make invokes adetest because adetest unwittingly propogates make's setting of MAKELEVEL through to the tests it runs). The fix has been to unset these environment variables inside adetest. * shell error stack handling aligned with perl way (e.g. per-file error hash registrations, hashes for defined errors and occurred errors) This works well now. Though I am aware there is an issue regarding the frame packer's ability to pack frames which contain double quotes in the parameter list (do a grep for 'OCCURRENCE_FRAME=' to find the relevevent piece of code) * rationalised perl/shell error-registration/error-formatting/error-display code * rearranged the functions in perl/shell gep/utils into better sections (I should do this regularly as the arrangements seems subject to entropy) * workaround in ade.mk for not knowing which make will make first when aderel says 'make clean distclean' and the order 'distclean clean' would result in stuff that 'make distclean' cleans being created by 'make clean'. (Yes; it is right that 'make clean' actually does make something.) * fixed a subtle bug caused by forgetting I was running in a 'set -e' environment. see the hash defined in the sources of the application which is using ADE. * introduced defined error tables to all ADE-compatible ADE programs * deleted long obsolete .include.hidden * beginnings of per-file registration of defined errors for shell scripts * rearranging some function definitions with the files to be more consistent across sh/perl. * minor fixes to the unit test script and reference file for aderel, subsequent to previously committed changes to aderel itself (all enabled unit tests now pass) * replaced many ADESPP markers with their ADE_APP_TOKEN equivalents (e.g. in man pages) * got aderel almost working! (still fails its tests, but seems to run correctly) * implemented per-file error table registration using error keys rather than error hashes * converted warning calls to stack mechanism with immediate display * fixed a bug in the registration functions whereby temp files were not being deleted at exit time * some fixes in the prologue of ade.mk in order to find the right app-config file even if the directory name of the parent directory differs from 'app' (which it does when aderel has clone the sources of 'app' to 'app-1.2.3') * aderel now clones not only the content by also the access time and executability of files (albeit with world execute not just owner); this was driven by aderel creating app-config and app-config.sh with the app-config being not executable but make not understanding the necessity to delete it and remake it. * fixed a bug in the option parsing code whereby defaults were not being correctly read * beginning of per-file registration of defined errors (this is needed as the ade_err_addframe calls inside ADE cannot see the hash defined in the sources of the application which is using ADE. * commented out all tests for which the tested program is not currently generated * added shell function ade_std_sed_sg to replace GNU sed which chokes on '&', which is used in some text messages which undergo sedding * pass error stack to perl ade_fnm_makeabsolute * added distclean target to ade.mk in order to ensure bin is cleaned last and thus the xxx-config is cleaned also (this is a prerequisite to getting aderel working) * added '--args-are-generators' option to adetest in order to ease the calling of single tests -k|--keep-output-files) OPT_KEEPOUTFILES=true ;; * converted adeshf, adeperlf and aderel to new format (aderel remains untested prior to this commit) * added installation of ade-app-config * small fixes for correct compilation of ade-app-config * more editing: - incorporated ALLOWENV fix to ade-config so as to prevent lx from trying to include ade.mk from the directory which lx will install include files into (actually it has none, but that's irrelevent) - incorporated the packed-assignment fix in ade.mk so that there is no longer a need for temporary files to be sourced - tried to quieten ade.mk down a bit - most installation rules are now generated rather than explicit in ade.mk - split ade-config into ade-app-config and ade-config, the latter calls the former and the former is available for all app-config's to call * more editing: - preparing to implement idea for ade-config multi-line output and for environment optioning by ade-config * more editing: - changed PREFIX to ADE_PREFIX, but still lots of problems * more editing: - exported ade_err_warning * more editing: - more symbols exported from ade_*.pl - set ADE_TMP_DIR and $ade_tmp_dir - translated _ade_gep_getosid from shell to perl - fixed Makefile to install ade-config * more editing ( 'package'ising of ade*.pl - in progress) * more editing (can now be installed to extent required to compile/test/install 'lx') * more editing * more editing * more editing * more editing * beginning of rewrite on branch (commit #3) * beginning of rewrite on branch (commit #2) * beginning of rewrite on branch (commit #1) * added stack and message config functions, called from appropriate locations in gep * solved the problem which sysreport illuminated whereby output lost 'cos file handles 3 and 4 open. * added ade_std_mailx() Release 0.12.1 (Sun Jul 23 17:52:22 CEST 2006) * corrected typo from untested chnage that prevented compilation of libraries. Release 0.12 (Sun Jul 23 17:04:53 CEST 2006) * incorporation of ADE C libraries into standard Makefiles * more C library changes to support recent ptyplumber development. * imported C function ade_str_parseline() from an old program. * added C function ade_str_hexify() * corrected bug in ade_tmp_deregistergen() whereby not only was the storage allocated for names of tempfiles free()ed when deregistered, but also there was an attempt to free() the *unallocated* storage for cleanup hook function addresses. * more overhauling of ADE's C library as ptyplumber requires. * started overhauling ADE's C library as ptyplumber requires; this has also triggered the removal of some (theoretically) obsolete code in ADE's shell library. * minor typo fixed * added small fix to sh version of ade_fnm_getrelativity() for when directory component of one path is substring of the other. * fixed a spelling mistake in a adegmt man page Release 0.11.1 (Fri Oct 28 22:10:41 CEST 2005) * added missing installation of reference file for latest added test. Release 0.11 (Fri Oct 28 20:40:15 CEST 2005) * added (as-yet-un-ade-ified) functions for doing relative symlinks * correct name of message function called on a (never-experienced) internal error. * added which() function to one of the standard tests to make the test more OS-independent (Fedora Core 3's 'which' command rationalises paths which Debian's doesn't i.e. /mod/test/../bin becomes /mod/bin) * added shell function ade_usr_getmygroupmame() (used by MUMC) * ade_gep.sh.spp duplicates stdin and stdout to handles 4 and 3. stdout is duplicated so that ade_msg_askquestion() may prompt the user to stdout without having the backquotes around a program's call to it also catching those prompts. stdin is duplicated so that when the same function reads from it it can guarantee it is not eating input that was destined for something else (e.g. a while loop reading from a file). * ade_utils.sh.spp's ade_msg_askquestion() modified to write and read to stdout, which facilitates automated input. Release 0.10 (Tue Mar 29 15:57:04 BST 2005) * changes to ADE global variable names (ADE_VERBOSELEVEL used extensively in tests) * switched to using ade_smf_getoptval() to get long option values * reordered fixed and make-command-line specified flags used to invoke adetest in ade/include/tests/Makefile so that make-command-line *user-specified* not overridden. * ade_msg_*() functions much simplified with use of common _ade_msg_message() and initialisation function ade_msg_settings() * added string/stream manipulation functions ade_smf_allononeline() and ade_smf_oneoneachline() for doing the equivalent of 'xargs echo' and 'xargs -n 1 echo' * added ade_std_ping_once() from rocon * added support for '-n' option to ade_std_remsh() * added ade_std_rcp() * added lxshellsmall template (for very small shell scripts) * fixed bug whereby name of a test's sandbox was not passed to it, now is (in TMPDIR) * fixed bug whereby module's root not passed to test, now is (in ADETEST_MODROOT) * implemented change request DioneWiki/Bugs_2fCheckFuncNameEnvVarNotSet (remains untested for the moment) * in ade_std_shell added -s and -p options for specifying interactive shell and setting prompt (this also required renaming the simulation flag offered by this function to -n, but only adegmt was using it so this was trivial) Release 0.9.1 (Sun Mar 20 21:50:59 GMT 2005) * minor fix to man/Makefile for adeperlf (not adeperl) * used Makefile variables for names of programs and man pages to install to decrease chances of ADE's standard test for man pages failing when applied to itself. Release 0.9 (Sun Jan 23 15:46:25 CET 2005) * corrected some tests for now case-insensitive ade_fcm_loadconfigfile function and ref files * split some lines that use ade_tmp_register with -l option, which is not illegal except within register function itself. * simplified bin/Makefile with make variable * installed adeshf and adeperlf, and wrote better man pages. * changed ade_utils.sh.spp, ade_gep.sh.spp not use use ade_tmp_register -l EXIT_FUNCS, and added standard test to outlaw use of this. Release 0.8 (Fri Nov 12 00:34:28 CET 2004) * corrected a bad priority in the syslogging code of ade_msg_info * lowered a debug message level from the shell config file loader function ade_fcm_loadconfigfile. * switched from variable names being fixed strings to allowing regexps in ade_fcm_loadconfigfile * added -n option to the ade_lck_lock to allow backgrounded subshells whose $$ is not accurate to force a more accurate pid than ade_lck_lock reads from $$. * changed _ade_gep_signalhandler() to use info calls instead of warning calls (DioneWiki:Bugs/KeyboardInterruptToBeSilent) * added test for use of UID or GID in scripts (these are bash-reserved words) * imported a couple of functions from mondsk (ade_std_df_localfs, ade_std_mailx, ade_std_logger, ade_std_du_ax) * converted template modules' ChangeLogs from Debian format to standard format. Release 0.7 (Mon Sep 20 11:23:07 CEST 2004) * removed adespp's expansion of backquotes; it is now left up to the shell command to do it. Execution of #spp exec's should not be done using system() or perl's own backquotes; but instead by direct execution with execp(). * rearranged ade_msg_askquestion so that it does rationalisation *before* validation. * cache manager and rolling status manager functions in the perl library were using names for file handles which could easily be used by a user's program, so renamed them. * more things expanded in adespp directives * added info on --sbindir, which I'd neglected to include. Release 0.6 (Thu Apr 29 22:15:23 CEST 2004) * took a specific version of the manual page to convert as part of the ADE700_ademan2html_convert_ademan2html test. * as part of the same test stripped the trailing '-->' after the date in the autogend header because timezone names vary in length according to the time of year (MET/MEST) and this causes the up-to-before-this-change method of changing only the date text and not the trailing spaces and '-->' to not match at different times of year. * added some debug to the ADE800_adeln_unreadable_things test. * aderel tests updated according to new aderel syntax (release id not specified on command line but only in ChangeLog) * ADE005_adegmt_creates_everything reference updated now there is a new file 'BUGS' in the 'find' output. * retagged everything with SVN keywords. * added empty BUGS file * moved some string printing to *outside* the format string in order to avoid "Attempt to modify read-only value" error which directly printf'ing of a complex URL caused in wkrep. * modified aderel to substitute man page dates. * changed man page dates to new aderel-substituted symbol, both in man pages and templates. * removed requirement to specify release id on aderel's command line as this can now be extracted from the ChangeLog. * modified ADESTDTEST103_option_paths so that it does not try to consult environment variables of the form OPTIONS_ where contains hyphens; this was causing a test failure for aodms-helper, where it tried to do 'eval OPTIONS=\"\$OPTIONS_aodms-helper\"' and choked. * added perl version of ade_spc_cachemanager(). * corrected quotation of checking of option value in lxshell to make it space-safe. Release 0.5.3 (Tue Mar 16 13:19:51 CET 2004) * miscellaneous svn property fixes and keyword additions. * do not install doc/examples any more; it is entirely up the program using ADE to provide install recipes now. Same also for doc beyond the default ChangeLog, README.1ST, etc. * minor man page fixes. Release 0.5.2 (Sun Feb 29 18:06:59 CET 2004) * ademan2html was not being installed, fixed the Makefile to install it. Release 0.5.1 (Sun Feb 29 17:46:37 CET 2004) * corrected bug in ADE800 test whereby 'find' descended in to directories as root that could not be descended into as non-root and thereby got different test output. * added module creation date to README.1ST. * added svn keyword properties * updated list of programs subject to standard tests * added test for ademan2html * adespp help option -h removed, options -H and -X renamed -h and -x, -nX and -nH renamed to -X and -H, with many changes in usage of adespp within ade module and others. * added tests for adeln * corrected some spacing in all man pages around commas in option lists * added ademan2html. * correction to perl scripts option processing whereby comma operator misinterpreted because of being in array context * removed use of 'unset' constant and used empty value instead in shell scripts (better alignment with perl scripts) * aderel now skips debian dir or symlink * better alignment of Usage messages with man pages * added dependency on compile,install and tests to check that configure has been run * added test for adeconf not leaving double-slashes in the generated paths files * fixed double slash generation in adeconf * adeln no longer quits with error if symlink target directories are not readable, but it does warn. * allow '~' in paths listed by '--paths' option in ADESTDTEST103_option_paths * removed private copy of path->absolutepath conversion function and used ADE's instead. * added ignore of 'debian' symlink * added test of perl and shell version of new ade_fcm_loadconfigfile function * modified adeshf to accept only one argument with consequent changes to some test scripts * removed underscores from 'standard' directory name symbols (e.g. 'TMP_DIR' is now 'TMPDIR') * added test to check that scripts do not used 'LINENO' (reserved shell env var) or 'typeset' (not ash-compatible) * added config ('in') file for new ADE standard test * added vim filetype defintions to .spp files * converted to new option processing code in all programs (big change) * switched to using 'local' instead of 'typeset' since 'typeset' is not supported in 'ash' shell * totally recoded adeconf, which now does not use a parameter, so changes to makefiles * '--paths' test adjusted to allow programs to tell the test that their config file is /dev/null so they do not pick up previously installed version's /etc/.conf files. * command-accessing standard tests now also check sbin as well as bin (required for 'torc' which is in sbin) * lowered level (i.e. higher numerically) of many debug messages in ADE libs * redirect stderr from exitdel's attempt to delete all outstanding files * generic lockname generator function now uses SPPSYM_LCKDIR instead of /tmp * removed quoted evaluation support from adeconf * expanded '--paths' handler in adeconf * total reworking of path calculation in adeconf (no longer builtin 'opt' support) * added command adeperlf (like adeshf), intended really only for testing * added new test ADE004_adegmt-n_creates_nothing to check 'adegmt -n' (with and without --scm-dirs) creates no directories. (This test currently fails, though the test itself is correct.) * partial conversion to using non-opt-supporting aderoot * beginnings of Debian compliance * reverted to using rman instead of groff for man2html conversion. * minor INSTALL doc typo fix also in template modules * minor fixes to the manual * converted all test scripts to pure 'sh' (changed '#!' and typeset to local); this includes ADE's tests and the standard tests * better propogation of SHELL_CMD and MAKE values - through aderel to its invovation of make done by adding '--make' - through adetest to tests' invocations of make done by adding '--make', and it putting $MAKE in environment of test script - no explicit setting of MAKE make-variable; this is make's responsibility, not the makefile's - Makefiles' invocations of adetest and aderel to pass --make=$(MAKE) * updated INSTALL doc from Greg Keleman's FreeBSD experiences, including the start of a FAQ section in the same document * for SunOS (with broken printf and broken awk) try not only to use perl's printf but also bash's printf. * svn:keyword property and substitute text mods for bsfr * fixed 'make install' for Suns, which didn't like '-path' option on 'find' command called in ADE_MFC_RECADEINST. * added '-n' option to ADE_MFC_SYMLINKER_CMD and ADE_MFC_THUMBER_CMD (access with 'SYMLINKER_OPTS=-n' on make line. * did away with AUTHORID in settings.mk - it is unused. * added adeshf command to help test functions without needing to build a wrapper module for each function * test for ade_std_printf updated accordingly * quoted SHELL_CMD in include/bin/Makefile so user can say 'make SHELL_CMD="/usr/bin/env whatever"' as they can already for PERL_CMD. Quoted all args at the same time. * ADE_MFC_RECADEINST fixed to install all directories before files (this is in order that empty directories get installed, since non-empty ones are already created when the contained file is installed). * adegmt fixed to substitute long-formatted date in man pages, templates adjusted to use substitutable text instead of real fixed (and inappropriate) dates. * removed 'revision' work from reported version strings when versioning scheme is 'rcs'. * modified ade_std_printf to cope with Sun's broken /usr/bin/printf and broken /usr/[5]bin/awk. Had to use perl! * the blank lines produced around adespp's call to produce an autogend header have been removed because groff outputs a whole empty page because of these one lines. (Test reference files updated accordingly.) * added support for Linux ksh in ade_std_printf * added new shell functions: ade_std_printf, ade_std_whence, ade_spc_setforexec * added new test for ade_std_printf * all occurrences of calls to printf changed to calls to ade_std_printf, this mainly affects ade_spc_autogendheader which was hanging on HP-UX because its printf chokes on '*' width specifier. * _ade_gep_init now calls _ade_gep_getosid in order to cache $UNAMES and thereby reduce the work that ade_std_printf does * aderel changed to invoke 'gzip', 'tar' and 'make' using the *received* $PATH instead the reset one; this is because at ESO GNU make and gzip are not found otherwise. * cosmetic correction to shell autogend header * corrected permissions of testlist.spp * minor corrections to adeln man page synopsis * minor corrections to adeintro manpage * added '--no-unreadable-dir-warning' option to adeln * ADE Makefile for html files updated to take advantage of adeln's new '--no-unreadable-dir-warning' option * added long option '--directive' to adespp for its '-P' short option. * converted changelog to non-Debian format * added option processing breaker '--' code * corrected some public environment variable names * aligned options, usage message and man page