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.
Make MODULESHOME environment variable controllable through the `config`
sub-command with `home` configuration option. A `--with-moduleshome`
argument is also added to the ./configure script to set specific default
value for this option at installation time.
Fixes#292
Add the ability to select a module when its version is partially
specified. Enable this behavior through a new configuration option named
`extended_default` (which defines `MODULES_EXTENDED_DEFAULT` environment
variable when set).
When extended_default mechanism is enabled a module version may be
specified by its starting portion, part separated from the rest of the
version string by a `.` or `-` character.
When multiple versions match partial version specified and only one
module should be returned, default version (implicit or explicit) among
matches is returned. In case `implicit_default` is disabled and no
explicit default is found among matches, an error is returned.
Mechanism may be enabled by default in `modulecmd.tcl` script with
option `--enable-extended-default` passed to `./configure` script.
Rework avail_icase configuration option in a generic icase option which
defines the contexts where to apply a case insensitive match for search
query string and module specification: never, only on search-related
sub-commands or always.
Introduce on the way the @pagercmd@ configuration pattern which is the
concatenation of the @pager@ and @pageropts@ patterns with a whitespace
joining the two when @pageropts@ is not empty.