Whilst the Modules system is awesome in making life easy to maintain multiple versions of packages and their dependencies (and is heavily used in HPC centres like VLSCI) it can have some annoyances (and seems to be fairly half-heartedly maintained looking at the bugtracker on SourceForge). One thing that’s bitten us from time to time is that you can’t really use its “set-alias” functionality as the bash shell does not expand aliases in non-interactive shells and that includes jobs that are launched from an HPC queuing system like Torque, PBSPro, etc.
It does have the compile time option “--disable-shell-alias
” but annoyingly the condition is only applied when your shell is “sh
“, not “bash
“, so I’ve ended up having to patch Modules to make this work for bash
as well. This patch is against 3.2.9c:
--- utility.c.orig 2011-11-29 08:27:13.000000000 +1100 +++ utility.c 2012-05-16 15:08:34.012038000 +1000 @@ -1422,7 +1422,7 @@ ** Shells supporting extended bourne shell syntax .... **/ if( (!strcmp( shell_name, "sh") && bourne_alias) - || !strcmp( shell_name, "bash") + || ( !strcmp( shell_name, "bash") && bourne_alias ) || !strcmp( shell_name, "zsh" ) || !strcmp( shell_name, "ksh")) { /** @@ -1471,7 +1471,7 @@ fprintf( aliasfile, "'%c", alias_separator); - } else if( !strcmp( shell_name, "sh") + } else if( ( !strcmp( shell_name, "sh") || !strcmp( shell_name, "bash") ) && bourne_funcs) { /**
Hopefully this patch will be of use to people..
Hey Chris,
Given the low maintenance of modules, maybe it’s time to fork it on github?
It could do with many other improvements, I believe.
Actually I’ve contacted them to ask if they’d like any help – there are still CVS commits happening occasionally (last one was in April) so it’s not completely dead..
At least suggest that they convert to something usable, like, say, git…
I’d just settle for getting the tracker clear of spam as a start..