Introduce the implicit_requirement configuration option to control
whether a prereq or conflict requirement should be implicitly set
toward modules respectively specified on module load or module unload
commands in modulefile.
Default value for option could be set at configure time with the
--enable-implicit-requirement option (enabled by default). This value
could be superseded by setup of implicit_requirement option with config
sub-command. Which set the MODULES_IMPLICIT_REQUIREMENT environment
variable.
Add an utility library that supersedes the mktime function from libc.
The mktime function from this added library always returns an error
(-1). It is used for coverage test of the mktime call made within the
Envmodules_ParseDateTimeArgObjCmd function of the Tcl extension library.
Add an utility library that supersedes the time function from libc. The
time function from this added library always returns an error (-1). It
is used for coverage test of the time call made within the
Envmodules_InitStateClockSecondsObjCmd function of the Tcl extension
library.
Introduce the --with-nearly-forbidden-days ./configure script option to
define the number of days a module is considered nearly forbidden prior
reaching its expiry date limit set by module-forbid command.
Add an utility library that supersedes the getgroups function from libc.
The getgroups function from this added library always returns a list
with 3 elements that all correspond to user's primary group. It is used
for coverage test of the getgroups call made within the
Envmodules_InitStateUsergroupsObjCmd function of the Tcl extension
library.
Introduce the `--enable-multilib-support` configure option to add
mechanism in `modulecmd.tcl` to look at an alternative location to find
the Modules Tcl extension library in case this library cannot be found
at its main location.
It adds the ability on specific architecture (e.g., x86_64) to use the
library build for another architecture compatible with current machine
(e.g., i686).
When this option is enabled, modulecmd.tcl is produced in a way that
make it identical whether built from 32bit or 64bit systems. This way no
conflict happen on EL/Fedora systems when installing both 64bit and
32bit RPM packages.
Add an utility library that supersedes the getgroups function from libc.
The getgroups function from this added library always returns an empty
result (0). It is used for coverage test of the getgroups call made
within the Envmodules_InitStateUsergroupsObjCmd function of the Tcl
extension library.
Add an utility library that supersedes the getgrgid function from libc.
The getgrgid function from this added library always returns an error
(NULL). It is used for coverage test of the getgrgid call made within the
Envmodules_InitStateUsergroupsObjCmd function of the Tcl extension
library.
Add an utility library that supersedes the getgroups function from libc.
The getgroups function from this added library always returns an error
(-1). It is used for coverage test of the getgroups call made within the
Envmodules_InitStateUsergroupsObjCmd function of the Tcl extension
library.
Add an utility library that supersedes the getpwuid function from libc.
The getpwuid function from this added library always returns an error
(NULL). It is used for coverage test of the getpwuid call made within
the Envmodules_InitStateUsernameObjCmd function of the Tcl extension
library.
Add a 'test-deps' make target to specifically build all dependencies for
tests, like Nagelfar and Tcl8.3 download. Call this specific target in
Travis CI through the `travis_retry` utility to retry dependency
download if they fail.
Adapt configure script and Makefile to detect `python` command location
and set it as shebang for `createmodule.py` and `gitlog2changelog.py`.
If python command is not found python3 then python2 are searched.
Abort download of icdiff, nagelfar or tclsh83 after 2 timeouts of 5
seconds and record download failure for icdiff to avoid mt script to
attempt a new download tentative every time it is called.
Check at configure step if pre-built documents are available, if found
Sphinx-related makefile rules are inhibited. Otherwise Sphinx
availability is tested and documentation build is disabled if not found.
No more exclusion of project-related or installation documents from git
archive distribution. Enable makefile rules relative to Sphinx
documentation build even if not building from git repository. With
release distribution tarballs nothing changes as document is pre-built
in these archives. When working from a `git archive` export, these
Sphinx rules will help to build docs.
In case Modules is built from a `git archive` distribution, generate a
bare ChangeLog file only referring to the NEWS document. Always include
gitlog2changelog.py tool in distributions, but do not run it if not
building from a git repository.
Make `git archive` substitute .version.inc.in with commit hash, date and
refs. Compute MODULES_BUILD and MODULES_BUILD_DATE from these
informations in ./configure and Makefile if not working from git
repository.
Provide new `--enable-windows-support` option for configure to
automatically install windows batch file to bin directory during install
step. This new option is not enabled by default.
Add the ability to control whether or not a ``ml`` command should be
defined at Modules initialization time. `ml` is a handy frontend to the
module command: it reduces the number of characters to type to trigger
module.
Enablement is managed throught a new configuration option named `ml`
(which defines `MODULES_ML` environment variable when set). It may be
enabled by default in `modulecmd.tcl` script with option `--enable-ml`
passed to `./configure` script.