* Note: Implied Consent - If you send in a code patch or fix of one type or another you consent to have your name and email address listed here unless you explicitly note otherwise. Whether your name & email is actually listed depends on how extensive the change. (If it's a minor code, document change, or spelling correction your name will probably not be listed.) **************************** Release 3.3 ****************************** modules 3.3.0 * I18nized the various messages. * Removed the module-trace command * Simplified the module syslogging interaction * Removed the modulefile caching, which has been one of the major obstacles for deep modulefile directories * All string allocation is performed by a common internal routine * --disable-beginenv is now the configuration default * Converted the module commands to use Tcl 8.0 dual-ported objects * Check for directory existence & added tests for chdir * Use Tcl ckalloc() and ckfree() * Removed the old debugging code ... use a symbolic debugger instead * Added a unix vector package to ease list handling * Consolidated the MODULEPATH list code to one spot * Included another modulefile which adds $HOME to the *PATH hierarchy * Wrapped the Tcl hash array code into a more convenient form - MHash * Put all hash arrays in the MHash form and removed crufty code * Changed the global rc file name to modulerc * Let the path separator "/" be dependent on the system * Added the "notavail" modulefile (as shown in man page) * Let the "module-version" command use a "name" of '.' for "this" module directory ... useful for deep modulefile directories. * Reworked configuration and Makefile for fine-grain control of certain paths and config files. * Removed the $MODULESHOME env.var. which is not used at all. * Fixed the "module purge" memory corruption (Poor Yorick) * Removed the RegExp code from cmdPath.c (Poor Yorick) * Isolated calls to the new interpreter and get & set env.vars. * Fixed unload & load of same module problem. * Removed the ChangeLog from the repository. **************************** Release 3.2 ****************************** Modules 3.2.10 Dec 21, 2012 R.K. Owen (rk@owen.sj.ca.us) * Fixed the module switch with custom delimiters (Tyson Whitehead) * If a bash shell check if interactive or not for alias/functions * Fix the flags with regards to recursive load/unload * Fix perl.pm init file typo (bug 3497092) * Moved from cvs to git (and now: modulefile/module-git) * Fix the module swap with the --delim option (Tyson Whitehead) * Increased the "update" buffer (Leon Kos) * Use the locale for sorting modulefiles by the avail command * Fixed the segfault problem with Tcl_RegExpCompile() (Kenneth Hoste, Tyson Whitehead) * Updated the FSF address in LICENSE.GPL (Jan Synacek) * Forked the Tcl-only version to be maintained by Kent Mein. * Added the "module-info type" query to return 'C' to indicate that the modulecmd executable is the "C" version. (The Tcl-only version will return 'Tcl'.) * Search /usr/lib64 for tclConfig.sh also (Jan Synacek) Modules 3.2.9 Nov 24, 2011 R.K. Owen (rk@owen.sj.ca.us) * Fix the coexistence of load/remove flags (Martin Siegert) * Fixed an overlapping string copy (Wilson Snyder & Orion Poplawski) * Isolated calls to the new interpreter and get & set env.vars. * Optionally use Tcl memory check routines for malloc/realloc. * Crucial bug fix of same by (Orion Poplawski). * Fixed the "module purge" memory corruption (Poor Yorick) * Added support for Ruby (Tammo Tjarks) * Fix the flags with regards to recursive load/unload Modules 3.2.8 Oct 1, 2010 R.K. Owen (rk@owen.sj.ca.us) * Handle the .modulerc/.version in deep modulefile dirs, Patches thanks to Lindsay Todd, and others. * Note that .version takes precedence over .modulerc files. * Renamed init/python to init/python.py and updated with anonymous patch to eliminate 'sed' references * Renamed init/perl to init/perl.pm * Added brief section to module.1 on invoking modules for perl & python * Added Nathaniel Waisbrot's patch for CMake support with tests. * Fixed the MANPATH in modulefiles/modules to use configure generated values. * Added the configure --with-man-path so a system specific MANPATH could be used. Some "man"s radically change their search path when a MANPATH exists and when not. The default is "/usr/man:/usr/share/man" (when both exists). * Purging a purged module list does not result in an error. * Fixed the configure script for searching for tclConfig.sh and handle --without-x in the tests. Modules 3.2.7 Jul 30, 2009 R.K. Owen (rk@owen.sj.ca.us) * Have init/bash export the module function (thanks to Roy Dragseth) * Fixed swap bug when prepending or appending multiple times (fix thanks to Gavin Walker), added tests for same. * Have purge remove loaded modules in reverse order (patch contributed by carriees) * Added a batch of patches from Gerrit Renker - Goes through each of the two manpages, bringing them up to date. - Fix an error in configure.ac caused by misspelling - Fix typos in help messages and source-code comments - Fix the setup of $MODULESPATH to not have a trailing ':' - Fix segmentation violation occurring when the shelltype is absent - Fix a condition where 'make uninstall' does not cleanse a directory - Fix a build problem which set the executable bit on 'data' files - Cleans up noise in '.modulespath' file - Replaces external sed filter script with internal Makefile.am rule - Adds missing 'zsh' case in etc/global - simplify (t)csh initialisation - Add bash auto-completion for the 'module' command - Adds new 'chdir' modulefile command (sets cwd on module load) * versions a & b fixed some bugs Modules 3.2.6 Oct 29, 2007 R.K. Owen (rk@owen.sj.ca.us) * Fixed the locate_module.c:realloc() calls which didn't properly take the element size into account (Fix thanks to Ron Isaacson). * Fixed some valgrind errors found and resolved by Alan Morris. * Skip .git version control dirs in modulefile dirs. Modules 3.2.5 Feb 14, 2007 R.K. Owen (rk@owen.sj.ca.us) * Wrapped all malloc() calls to make sure the size is never 0. This fixes a problem spotted by Francesco Nigro under AIX, and diagnosed by G Lehnert. * Updated tests when domainname is unknown. Modules 3.2.4 Feb 2, 2007 R.K. Owen (rk@owen.sj.ca.us) * Fixed bug where "empty" directory paths in the MODULEPATH env.var. needed to be handled gracefully. Modules 3.2.3 Jun 1, 2006 R.K. Owen (rk@owen.sj.ca.us) * Allow version names to be substrings of other version names thanks to dgoldendias at users.sourceforge.net * Fixed compiling bug when --enable-log was specified. * Made some minor changes to the syslogging and tests so that they all pass. * the set-alias command will for Bourne shell derivatives substitute the safe ${1+"$@"} for $*. * Added the --delim option to prepend-path and append-path to allow arbitrary delimiters instead of the colon ':' * Fixed build problem with regards to the init/* files (solution due to Thomas Zeiser) Modules 3.2.2 May 4, 2006 R.K. Owen (rk@owen.sj.ca.us) * Replaced all strtok() calls with an internal version. * Now can append/prepend and empty string '' or colons ':' * Added more --with-tclx-* options in case tclxConfig.sh can not be found, but the TclX lib does exist. * Expanded the search path for tclConfig.sh. * Updated the TclX init call for 8.4 Modules 3.2.1 Feb 13, 2006 R.K. Owen (rk@owen.sj.ca.us) * Catch 'exit N' within modulefiles, use this as an exit return code. Has the behavior of loading the modulefile up to the point of exit. * For bash, a non-zero exit will append a test that returns false. * Added tests for "break" and "exit N" * various other bug fixes Modules 3.2.0 Jan 19, 2006 R.K. Owen (rk@owen.sj.ca.us) * default for cache is now "no" * Added version_test() to testsuite to make some of the tests conditional on the values generated by --version. * Reworked every configure-based file - the configure options help is formatted with AC_HELP_STRING - uses automake to generate most of the Makefile.in - renamed configure.in to configure.ac per autoconf - Versioning is optional now with a configure option - reworked the init scripts for versioning or not - eliminated acconfig.h and put templates in configure.ac - make install now honors the DESTDIR variable for package builds - honors bindir for modulecmd location (but the init scripts are only correct if no versioning) * Collected the usage info and now it can be displayed with the --help or -H option (same as help) * --version now gives most of the optional configure parameters for easy debugging of problems * Made the output deterministic (sorted) and reworked tests also * Fixed the UserLevel check code (which failed when optimized) * Fixed bug in "Switch" command when --enable-free was set * Added or Fine-tuned the --enable-shell-funcs, --enable-shell-alias and --enable-shell-eval configure options. The configure script will test for the existence of the first two properties in /bin/sh where the options can override the tested values. Made the associated tests conditional on the existence of these properties. * The configure script now tests how large env.vars. can be for /bin/csh, the default behavior is if > 4000 then do not set --with-split-size, else if smaller then set to the tested value - 20. If the option is given, but no value, then set to 1000. * Fixed the tests to work when --enable-beginenv ... also changed the error message when disabled. * Added and set the default for --enable-beginenv=test, which means that this feature is enabled by the user by setting the MODULESBEGINENV env.var. for a file name (allows one level of variable expansion). * Have the caching skip version control directories (CVS, RCS, .svn) unless they have a .version file then assume the directory is a genuine modulefiles directory. * Expand '$$' to the current process id when performing one level of variable expansion for the MODULESBEGINENV env.var * Fixed up the automake/autoconf scripts to create a workable distribution tarball * Fixed the configuration behavior if --exec-prefix is given Also put the init/ scripts under the --exec-prefix, but keep the special bin scripts under the --prefix root. * Updated the config/tcl.m4 (used by configure) * Eliminated any warnings caused by using Tcl 8.4 * Fixed any mixed size differences when using ints and pointers. (Only an issue with 64 bit machines.) * Updated the init* subcommands to work on multiple "module load" lines in the "dot rc" files. Added a suite of tests too. * Eliminated the --with-force-path option, with the attendant code. It was supposed to make sure PATH and LD_LIBRARY_PATH contain some minimum set of paths ... it was rarely, if ever, used. Contributor: Andrew Ruder* cmdConflict.c: Fixed memory allocation bug in cmdPrereq(). When there is more than 1 argument to the prereq command, both savedlens and savedlists were indexed past what the initial malloc allowed. * ModuleCmd_Refresh.c: Like "update" but refreshes only the non-persistent attributes of the currently loaded modules, regardless of the state of the loaded modules (i.e. refresh aliases). Contributor: Mark Lakata * removed configure *.in files from testsuite and added envvars to allow running the testsuite from another directory * other fixes to testsuite * allowed one argument for 'switch', i.e. "module switch foo/1.3" is the same as "module switch foo foo/1.3" * bug fix in cmdXResources regarding parsing the XRDB * removed probetcl from distribution; function moved to aclocal.m4 * special shell chars in env vars are escaped rather than quoted. This allows the use of single quotes inside the env var * noglob option turned on for module command in csh/tcsh * use customed temp file routine, rather than tmpnam or tempnam * minor bugs **************************** Release 3.1 ****************************** Modules 3.1.6 Thu Jan 3 20:56:16 PST 2002 R.K. Owen (rk@owen.sj.ca.us) Contributors: Scott Gaskins Leo Butler ) Philip Kearns Andy Bruce * A 'break' in a modulefile will cause the modulefile to not be added to $LOADEDMODULES, but will be considered a successful execution to not affect other modulefiles being loaded concurrently (Patch due to Scott Gaskins). * Tests and docs added for the above. * Added CYGWIN/Windows specific code (due to Andy Bruce) * Fixed problem with module load when the full path is given (patch due to Scott Gaskins). * Added tests for the above problem. * Added the Modules-Paper in PDF format (thanks to Philip Kearns and Leo Butler for raising the issue). * Modified probetcl to avoid using the -c option (patch due to Philip Kearns). * Modified probetcl to use tclsh first then tcl * Added TCL_VERSION to configure and use it in the Makefile to use the -ltcl@TCL_VERSION@ library. Modules 3.1.5 Sat Aug 18 07:32:48 PDT 2001 R.K. Owen (rk@owen.sj.ca.us) Contributors: Eric Stanley * Fixed up cmdPath to remove individual items from a path (patch due to Eric Stanley). * Fixed problem of failed "module loads" in a modulefile (patch due to Eric Stanley). Modules 3.1.4 Fri Aug 3 12:45:55 PDT 2001 R.K. Owen (rk@owen.sj.ca.us) * Some preliminary steps to a rpm file. * Added bz2 files to distribution mix. * Fixed "module swap" to put the substituted module in the same path location as the old. Also added a number of tests for this feature. (Bug was pointed out by Leo Butler ) * Added tests for the "is-loaded" modulefile command introduced back in 3.0.8-rko. * Fixed up some documents. Modules 3.1.3 Wed Jul 11 14:30:53 PDT 2001 R.K. Owen (rk@owen.sj.ca.us) * Added module-cvs modulefile for easy CVS/ftp access to the modules CVS repository. * Added README.perl describing Ron Isaacson's Env::Modulecmd perl module (Ron.Isaacson@morganstanley.com). * Added document file INSTALL.RH7x which explains how to set up an modules environment for all users through the system shell files. Is specific to Linux/RedHat 7.x, but is of general applicability. * Added further tests for modulefile "module use dir_path" * Fixed bug of unloading a modulefile with a "module use dir_path" * Environment variable contents are now quoted to preserve any embedded environment variables. (Needed for versioning) * Added over 50 tests specific to module versioning, and testing xgetenv. * Fixed the unsetenv on unload function, the feature added in 3.0.6-rko was supposed to set the env.var. to the optional third argument. This was to allow old env.var. values to be recovered by unraveling a stack set in an other env.var. Added tests for this feature. This is used by the version modulefile. * Fixed and updated the version modulefile to allow stacked versions to be removed the stack. * Removed an annoying spurious stderr newline. Modules 3.1.2 Fri Jun 8 23:12:24 PDT 2001 R.K. Owen (rk@owen.sj.ca.us) * Fixed the "module use --append" feature, and fixed the tests for "module use", "module use --append", and "module unuse". * Changed the global variable names (flags,current_module) to (g_flags, g_current_module) to identify their ubiquity in the module source. Modules 3.1.1 Thu Feb 1 11:20:44 PST 2001 Robert Minsk (egbert@centropolisfx.com) Contributors: Robert Minsk * init file for python added (Robert Minsk) * Added the beginnings of support for scheme. Still need an init script. (Robert Minsk) * Fixed bug with the _LMFILES_ environment variable. If a user was using a csh variant of a shell and modules was compiled with with-split-size enable the _LMFILES_ variable was not handled correctly when it needed splitting. (Robert Minsk) * Fixed bug with creating aliases for ksh, bash, and zsh to recognize the escape ("\"). Any time an alias had a "$" in it a function was created instead of an alias. (Robert Minsk) * Fixed bug in searching the LOADEDMODULES environment variable. Would not find a module if only a partial module name was given. (Robert Minsk) * Fixed memory corruption bug in LOADEDMODULES environment variable handling. (Robert Minsk) * Fixed bug in csh init file. Some versions of csh echo the current prompt if the shell was in an eval of an eval (eval `eval ...`). (Robert Minsk) * Started adding support for mel (Maya Extension Language) (Robert Minsk) Note: Since I have just recently become a co-maintainer of modules with R.K. Owen it has been hard to keep up with user submitted patches. If you did not receive proper credit for a fix or enhancement that has appeared in this release you will receive proper credit in the next release. Robert Minsk Modules 3.1.0 Contributors: Jens Hamisch Robert Minsk Magnus Holmberg * Fixed the changed *interpter->result return value with Tcl8.3+ (patch due to Jens Hamisch). * Removed warning message for unloading a module that's not loaded. * Added source code cross-referencing via cxref-1.5b(patched) (see http://www.gedanken.demon.co.uk/cxref/ for details). * Changed the long format, eliminated the release column as a separate entity. The release value is just part of the package name. * Added --with-dot.ext[=<.ext>] to configure & DOT_EXT to config.h for an extension to be added to the shell dot-file names for the "module init*" commands * Addes .modules to dot file list for "init*" commands (Magnus Holmberg) * Matched the "help" and "man module" optional commands more closely * Fixed man pages it's .modulerc not .modulesrc * Made it easier to ftp distribution to metalab.unc.edu * Fixed init/perl & init/tcsh (due to Robert Minsk). * Fixed "module list" to show paths deeper than 2 levels (due to Robert Minsk). * Fixed warning message about `alias' to non-sh/csh derivatives (due to Robert Minsk). * Fixed tests with regards to syslogging & alias. * Licensed changed to GPL. **************************** Release 3.0 ****************************** Modules 3.0.8-rko Wed May 10 09:45:55 PDT 2000 R.K. Owen (rk@owen.sj.ca.us) Contributors: Steve Muskiewicz Robert Minsk * Added another option to the module-info command named "specified" which gives the name as specified on the command line. This patch is due to Robert Minsk. * Added the beginnings of python support. Still need an init script. This patch is due to Robert Minsk. * Changed the numbering of modules during a terse listing. Instead of numbering left-to-right row by row, number top-down by columns ... this corresponds to the order of modules. Patch is compliments of Steve Muskiewicz. * Fixed a modulefile unload of another modulefile problem. This patch is due to Steve Muskiewicz. * Fixed swap bug with setenv. Patch due to Robert Minsk. * Added 'is-loaded' to test whether a given module is loaded or not already. (need to add testsuite.) Provided by Robert Minsk. Modules 3.0.7-rko Fri Apr 7 10:58:45 PDT 2000 R.K. Owen (rk@owen.sj.ca.us) * Fixed xgetenv * A bunch of patches from Robert Minsk that eliminates a lot of the compile time warnings (mostly unused variables etc.) * More patches from Robert Minsk for the --disable-cache option. * Modified add.modules to provisionally handle .bash_profile and .bash_login (thanks to Ted Richards). * Modified the way shell start-up files are specified in init.c with patches from Max Zomborszki. Now easier for a site to make local customizations. Modules 3.0.6-rko Wed Feb 16 09:06:34 PST 2000 R.K. Owen (rk@owen.sj.ca.us) * Changed "unsetenv" to allow an optional third argument to set the env.var. to when unloading. * Fixed bugs with and upgraded the "module init*" commands. * Added a preliminary RPM .spec file ... some of the versioning changes conflict with some RPM features. Modules 3.0.5-rko (not meant for public release) Fri Jan 21 18:59:18 PST 2000 R.K. Owen (rk@owen.sj.ca.us) * Changed the behavior if "module" is called without an argument. In addition to the error message it prints out the help text. * Fixed a problem with module swapping. A test needs to be added to the testsuite. * Rewrote many of the init files & modified modules to allow one level of env.var. expansion in the MODULEPATH & MODULERCFILE environment variables. The purpose is to allow the co-existence of many versions of the module command. Only this & successive versions will implement this. * Got the --with-logging configure option actually doing something in the code. The default is no syslog-ing. However, this affects the tests ... expect 3 failures originating from testsuite/modules.50-cmds/100-loglevel.exp . (fixed in version 3.0.9-rko) Modules 3.0.4-rko Wed Jan 12 09:45:21 PST 2000 R.K. Owen (rk@owen.sj.ca.us) * Rewrote a lot of the calls to low level Tcl RegExp routines, which required direct access to the tclRegexp.h header file. Used higher level Tcl routines to accomplish the same. The net result is that modules should be configurable under any version of Tcl > 7.4 (not tested). * Rewrote a reference to a low level Tcl glob routine, which required direct access to the tclInt.h header file. Used the $HOME environment instead. * Mean-time hack to support multiple subdirectories for the "avail" option. * Fixed the long listings to be Y2K OK. * Added a version option to print out the module version ... for future automated scripting. * Some documentation clean-up. * Removed all references to PARSEABLE_ERRORS in config.h and configuration ... since it's not used at all. * Modified init files because some systems treat undefined variables in sh/ksh/bash/zsh as errors and terminates login process (Thanks to Martin Jost). * Modified Tcl_HashTable declaration initialization to assignment, because some ANSI C compilers complain (Thanks to Martin Jost). Modules 3.0.3-rko Thu Dec 23 08:20:44 PST 1999 R.K. Owen (rk@owen.sj.ca.us) * removed the global definition refering to stdout and put the assignment in one of the routines. This fixes a compilation problem with RedHat 6.1 & gcc-2.95. Modules 3.0.2-rko Thu Nov 11 16:57:30 PST 1999 R.K. Owen (rk@owen.sj.ca.us) * added the --[enable|disable]-version-magic option to the configure script and associated sources. However, `disabling' will break the ./modules.20-locate/030-defvers.exp test. `disabling' allows older modulefile directories that don't have .version files with proper module magic cookies to be parsed. * Disabled errorlogging if "module avail" can't open a directory. * Added some logic in the Makefile & elsewhere to generate patch-able diff files. Modules 3.0.1-rko Tue Oct 26 12:47:58 PDT 1999 R.K. Owen (rk@owen.sj.ca.us) * misc fixes from compiling with AIX xlc compiler * cmdInfo - incorrect call to Tcl_SetResult() fixed Modules 3.0.0-rko Thu Aug 12 08:32:52 PDT 1999 R.K. Owen (rk@owen.sj.ca.us) * Grabbed the 3.0beta sources from ftp.modules.org made wide-spread changes to update it & port it to Linux * Modified file/routine comments to be visible to cxref * collapsed sw_human, sw_terse to sw_format & toggling bits for long/terse/human/parse output options * Fixed list/avail output * Added RCS Ids removed SCCS Ids, placed sources into CVS * Got "module whatis" to list all whatis entries as designed, but not implemented * Removed unnecessary & made files from CVS control * Added several scripts for setting up a modules environment: add.modules, mkroot * Minor fixes to init files to eliminate env. variable persistence * Upgraded man pages and Help * Wrote INSTALL document to hand-hold the modules novice * Reworked testsuite to test current results * Codified distribution based on version level * Created LSM Tue Oct 1 13:53:47 MET DST 1996 Jens Hamisch (jens@Strawberry.COM) * modules_def.h ModuleCmd_Whatis.c, ModuleCmd_List.c - Bugfix: Skip directories while scanning all modulefiles for 'apropos' - traditional lists output * doc/modulefile.4.in, doc/module.1.in - new fetures of 3.0 added * aclocal.m4, configure.in, config.h.in, init.c, main.c - Patches for TCL 7.6 / TK 4.2 applied. Probe for TCL version number added. API for TCLX has changed on TCLX 7.6 Mon Jul 29 18:03:50 MET DST 1996 Swen Thuemmler * cmdModule.c strdup the module_command, because Tcl_Eval modifies the argv beginning @ Tcl 7.5 Thu Feb 8 15:05:40 1996 Leif Hedstrom * ModuleCmd_Avail.c (print_aligned_files): Fix out of bounds array access. * error.c (MeasLookup): Initilization of `mid'. (GetFacility_sub): Dito. * cmdVersion.c (FindName): Initialization of `cmp', I don't know if it's correct to set it to `1', but it's definitely wrong not to initialize it at all! :) (FindModule): Dito. Sat Jan 6 13:29:48 MET 1996 Jens Hamisch (jens@Strawberry.COM) * aclocal.m4 configure.in Makefile.in: - Add a 'touch' rule in order to fix the modification dates of the modulefiles in the testsuite * cmdAlias.c cmdConflict.c cmdMisc.c cmdPath.c cmdSetenv.c cmdXResource.c cmdModule.c cmdTrace.c cmdUlvl.c cmdVerbose.c cmdVersion.c cmdWhatis.c cmdLog.c: - Unification of the DISPLAY output