* 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 'OCCURENCE_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 adeMakefile 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 adeMakefile 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 adeMakefile 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 adeMakefile from the directory which lx will install include files into (actually it has none, but that's irrelevent) - incorporated the packed-assignment fix in adeMakefile so that there is no longer a need for temporary files to be sourced - tried to quieten adeMakefile down a bit - most installation rules are now generated rather than explicit in adeMakefile - 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_MSG_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_list-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 '--list-paths' option in ADESTDTEST103_option_list-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 * '--list-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 '--list-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 occurences 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