Commit Graph

147 Commits

Author SHA1 Message Date
Xavier Delaruelle
178b9ef6df install: add --with-nearly-forbidden-days configure opt
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.
2020-08-28 07:18:25 +02:00
Xavier Delaruelle
d72eb251ea ts/lib: test tcl ext lib against a dup ent res getgroups call
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.
2020-08-10 08:06:09 +02:00
Xavier Delaruelle
f1d67c9f11 install: raise error when making srpm/rpm if no compat
Raise an error when trying to build SRPM or RPM packages if
compatibility version sources are missing.
2020-08-10 08:06:09 +02:00
Xavier Delaruelle
4a78e9ae91 Add support for multilib systems
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.
2020-08-10 08:06:09 +02:00
Xavier Delaruelle
87f8e51823 ts/lib: test tcl ext lib against a zero res getgroups call
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.
2020-07-16 21:53:51 +02:00
Xavier Delaruelle
1675363e0e ts/lib: test tcl ext lib against a failed getgrgid call
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.
2020-07-16 21:53:51 +02:00
Xavier Delaruelle
166096f4d8 ts/lib: test tcl ext lib against a failed getgroups call
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.
2020-07-16 21:53:51 +02:00
Xavier Delaruelle
4542008335 ts/lib: test tcl ext lib against a failed getpwuid call
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.
2020-07-16 21:53:51 +02:00
Xavier Delaruelle
8e5a3b531a doc: include logo on README 2020-06-24 08:45:24 +02:00
Xavier Delaruelle
a0e0a597ec install: improve test deps dl retry mechanism 2020-05-10 15:54:27 +02:00
Xavier Delaruelle
5e347988d9 travis: retry test deps setup as their dl regularly fail
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.
2020-05-10 15:54:27 +02:00
Xavier Delaruelle
862dfd841f install: consistenly output Makefile warning msgs on stderr 2020-04-12 09:59:25 +02:00
Xavier Delaruelle
dcd6025503 install/ts/doc: install and test envml.cmd along other *.cmd 2020-03-10 07:44:20 +01:00
Xavier Delaruelle
e2a381d549 install: rm README on 'make clean' 2020-02-22 13:21:18 +01:00
Xavier Delaruelle
004c3b6dc9 install: build and install createmodule.py in bindir 2020-02-10 07:19:52 +01:00
Xavier Delaruelle
1041e10b3f install: ensure all built scripts have exec perms 2020-02-10 07:08:52 +01:00
Xavier Delaruelle
9535266a60 install: build createmodule.py/gitlog2changelog.py to set shebang
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.
2020-02-10 07:00:32 +01:00
Xavier Delaruelle
f9ed70d8d0 install: %D git-log placeholder by not be supported 2020-02-09 13:55:10 +01:00
Xavier Delaruelle
b82fe6cd23 install/travis: add rules to build rpm and test it 2020-02-09 13:25:03 +01:00
Xavier Delaruelle
a28181074e install/script: abort auxiliary tools download after few seconds
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.
2020-02-03 20:46:15 +01:00
Xavier Delaruelle
ed38a98c6c install: need sphinx if dist does not contain prebuilt doc
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.
2020-01-31 08:08:24 +01:00
Xavier Delaruelle
ad59a6bc01 install: no txt version of docs at dist root 2020-01-31 06:39:46 +01:00
Xavier Delaruelle
1e71298262 install: no need to pre-build README file in dist 2020-01-31 06:39:46 +01:00
Xavier Delaruelle
ea931f13d3 install: no exclude of doc files from git archive dist
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.
2020-01-31 06:39:06 +01:00
Xavier Delaruelle
b4ccc6d097 install: add missing ml.1 pre-built doc in dist 2020-01-29 20:31:30 +01:00
Xavier Delaruelle
5760d2e686 install: build empty changelog if not building from git
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.
2020-01-29 20:31:27 +01:00
Xavier Delaruelle
4182bdc9dc install: enable version.inc build outside 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.
2020-01-29 20:30:21 +01:00
Xavier Delaruelle
ea8052c23b script: add TESTINSTALL.bat script and ship it in dist-win 2020-01-25 16:21:53 +01:00
Xavier Delaruelle
fe3765454b script: move INSTALL.bat & UNINSTALL.bat in script dir 2020-01-25 16:21:53 +01:00
Xavier Delaruelle
53d9c95a8c install: provide a basic uninstall script for Windows 2020-01-17 21:39:22 +01:00
Xavier Delaruelle
a6004afaa9 install: provide a basic install script for Windows 2020-01-17 21:39:22 +01:00
Xavier Delaruelle
089a680263 install: add dist-win rule to build win-specific dist zip ball 2020-01-17 21:39:22 +01:00
Xavier Delaruelle
fff8213e0b install: add ml.cmd wrapper on Windows installation 2020-01-17 21:39:22 +01:00
Xavier Delaruelle
7eb91c142d doc: transform INSTALL-win.txt into INSTALL-win.rst 2020-01-17 21:39:22 +01:00
Xavier Delaruelle
d95a66233a script: move win-specific module.cmd file in script dir 2020-01-14 06:13:30 +01:00
Xavier Delaruelle
2d64c275f6 init: move windows/moduleinit.cmd as init/cmd.cmd file 2020-01-14 06:13:30 +01:00
Jacques Raphanel
f9c173ee65 Install: add --enable-windows-support configure option
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.
2020-01-14 06:13:30 +01:00
Xavier Delaruelle
00c4073665 install: use newer version of nagelfar (1.3.1) 2020-01-12 13:46:09 +01:00
Xavier Delaruelle
1bef2663e8 install: use newer version of icdiff (1.9.5) 2020-01-12 13:40:38 +01:00
Xavier Delaruelle
9ade952bea script: move all dist. and maint. scripts in a script dir 2020-01-12 13:31:21 +01:00
Xavier Delaruelle
6ae7ec68d5 script: remove need to build project management-specific tools
Make mb, mlprof, mtreview and playdemo use `/usr/bin/env tclsh` shebang
rather applying there TCLSH location defined by `./configure` process.
2020-01-12 10:00:22 +01:00
Xavier Delaruelle
9f189c7d5e Introduce ml configuration option
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.
2020-01-09 20:38:50 +01:00
Xavier Delaruelle
4118b79c9f contrib: add 'mlprof' script
Add the 'mlprof' script which wraps modulecmd.tcl to collect profiling
information on its execution.
2019-12-30 06:55:35 +01:00
Xavier Delaruelle
a0de177ddb contrib: add 'playdemo' script 2019-11-21 06:32:38 -07:00
Xavier Delaruelle
a386dbb67c Introduce home configuration option
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
2019-11-14 20:22:45 +01:00
Xavier Delaruelle
07bbbc7a9d Introduce advanced_version_spec configuration option
Add the advanced_version_spec configuration option that will control the
activation of advanced module version specifier syntax.
2019-11-14 20:20:40 +01:00
Xavier Delaruelle
e67088275e Introduce extended_default configuration option
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.
2019-11-11 09:13:50 +01:00
Xavier Delaruelle
34694e5636 Rework avail_icase into icase option
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.
2019-11-11 09:00:03 +01:00
Eric Deveaud
2b60a823b0 control icase module av at configure time 2019-10-13 10:46:15 +02:00
Xavier Delaruelle
4dd17b3f32 Migrate 'pager' cfg option retrieval to getConf
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.
2019-10-13 10:46:08 +02:00