commit:     222915a6d3edbdbf4ba8c48276f1fecfca1f3742
Author:     Aisha Tammy <gentoo <AT> aisha <DOT> cc>
AuthorDate: Sun Jan 24 17:16:48 2021 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Sun Feb 14 08:25:03 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=222915a6

sys-cluster/lmod: lua based environment modules system

used in HPC clusters, scientific computing labs,
research labs and a lot of other production environments

Package-Manager: Portage-3.0.13, Repoman-3.0.2
Signed-off-by: Aisha Tammy <gentoo <AT> aisha.cc>
Closes: https://github.com/gentoo/gentoo/pull/19193
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 sys-cluster/lmod/Manifest                          |   1 +
 sys-cluster/lmod/files/99lmod                      |   1 +
 .../lmod/files/lmod-8.4.19-no-libsandbox.patch     |  13 +
 sys-cluster/lmod/files/module.1-8.4.20             | 539 +++++++++++++++++++++
 sys-cluster/lmod/lmod-8.4.20.ebuild                | 133 +++++
 sys-cluster/lmod/lmod-9999.ebuild                  | 133 +++++
 sys-cluster/lmod/metadata.xml                      |  28 ++
 7 files changed, 848 insertions(+)

diff --git a/sys-cluster/lmod/Manifest b/sys-cluster/lmod/Manifest
new file mode 100644
index 00000000000..0eb72d5282f
--- /dev/null
+++ b/sys-cluster/lmod/Manifest
@@ -0,0 +1 @@
+DIST lmod-8.4.20.tar.gz 19889342 BLAKE2B 
aef498ec8dd2b87aca02d66f394418aba4a81d1fec4684750e59d48d06bad16db7a24290920e40290ecba8a4bc65c7dbe5c23be28654db79433f41164fa4aaf6
 SHA512 
9749e34e7ad75531c87770b73fd20dab16c89c24e1a2d01e58f09f8510ffc8f896dfa7eab9dab26fe4d6d14ba04d331f98e08e92e0943aede9fe5131af038970

diff --git a/sys-cluster/lmod/files/99lmod b/sys-cluster/lmod/files/99lmod
new file mode 100644
index 00000000000..506b824d5a0
--- /dev/null
+++ b/sys-cluster/lmod/files/99lmod
@@ -0,0 +1 @@
+LMOD_CACHED_LOADS=yes

diff --git a/sys-cluster/lmod/files/lmod-8.4.19-no-libsandbox.patch 
b/sys-cluster/lmod/files/lmod-8.4.19-no-libsandbox.patch
new file mode 100644
index 00000000000..02248bc4548
--- /dev/null
+++ b/sys-cluster/lmod/files/lmod-8.4.19-no-libsandbox.patch
@@ -0,0 +1,13 @@
+diff --git a/configure.ac b/configure.ac
+index ca75e34c..e9cc49e0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -616,7 +616,7 @@ AC_SUBST(SYS_LD_LIB_PATH)
+ SYS_LD_LIB_PATH=$LD_LIBRARY_PATH
+ 
+ AC_SUBST(SYS_LD_PRELOAD)
+-SYS_LD_PRELOAD=$LD_PRELOAD
++SYS_LD_PRELOAD=$(printf %s\\n $LD_PRELOAD | sed -e "s/libsandbox.so//g")
+ 
+ AC_SUBST(PATH_TO_SRC)
+ SRCDIR=$( cd $srcdir; pwd)

diff --git a/sys-cluster/lmod/files/module.1-8.4.20 
b/sys-cluster/lmod/files/module.1-8.4.20
new file mode 100644
index 00000000000..2ec20e04ac8
--- /dev/null
+++ b/sys-cluster/lmod/files/module.1-8.4.20
@@ -0,0 +1,539 @@
+.Dd $Mdocdate: December 6 2020 $
+.Dt MODULE 1
+.Os
+.Sh NAME
+.Nm module
+.Nd lmod environment modules manager
+.Sh SYNOPSIS
+.Nm module
+.Op Ar options
+.Cm sub-command
+.Op Ar args ...
+.Sh DESCRIPTION
+.Nm
+from
+.Sy Lmod
+is a
+.Xr lua 1
+based module system to manage the users' environment under
+Unix systems, specifically designed to easily handle
+the
+.Ev MODULEPATH
+Hierarchical problem.
+Environment Modules provide a convenient way to
+dynamically change the users' environment through modulefiles.
+This includes easily adding or removing directories from the
+.Ev PATH , LD_LIBRARY_PATH , CPATH
+and other environment variables.
+All popular shells are supported, including bash, csh, fish,
+ksh, sh, tcsh, zsh, as well as some scripting languages such
+as tcl, perl and python.
+.Sh OPTIONS
+The following
+.Ar options
+are available:
+.Pp
+.Bl -tag -width Ds -compact
+.It Fl h , \&? , H , -help
+Show the help message.
+.Pp
+.It Fl -check_syntax , -checkSyntax
+Only check the
+.Nm
+command syntax, do not load any modules.
+.Pp
+.It Fl -config
+Report
+.Sy Lmod
+configuration.
+.Pp
+.It Fl -config_json
+Report
+.Sy Lmod
+configuration in json format.
+.Pp
+.It Fl D
+Write program tracing data to stderr.
+.Pp
+.It Fl d , -default
+List default modules only when used with
+.Cm avail .
+.Pp
+.It Fl -debug Ar dbglvl
+.Sy VALUES :
+1, 2, 3.
+.Pp
+Only write trace output with proper debug levels.
+.Pp
+.It Fl -dumpversion
+Dump version in a machine readable way and quit.
+.Pp
+.It Fl -expert
+Work in expert mode.
+.Pp
+.It Fl -force
+Force removal of a sticky module or save an empty collection.
+.Pp
+.It Fl -gitversion
+Dump git version in a machine readable way and quit.
+.Pp
+.It Fl -ignore_cache
+Treat the cache file(s) as out-of-date.
+.Pp
+.It Fl -initial_load
+Loading Lmod for first time in a user shell.
+.Pp
+.It Fl -latest
+Load latest (ignore default).
+.Pp
+.It Fl -mt
+Report Module Table State.
+.Pp
+.It Fl -no_redirect
+Force output of
+.Cm list ,
+.Cm avail
+and
+.Cm spider
+to stderr.
+.Pp
+.It Fl -novice
+Turn off
+.Fl -expert
+and
+.Fl -quiet
+flags.
+.Pp
+.It Fl -nx , -no_extensions
+.Pp
+.It Fl -pin_versions Ar pinVersions
+When doing a restore use the specified version, do not follow defaults.
+.Pp
+.It Fl q , -quiet
+Do not print out warnings.
+.Pp
+.It Fl r , -regexp
+Use regular expression match.
+.Pp
+.It Fl -raw
+Print modulefile in raw output when used with show.
+.Pp
+.It Fl -redirect
+Send the output of
+.Cm list ,
+.Cm avail
+and
+.Cm spider
+to stdout (not stderr).
+.Pp
+.It Fl -regression_testing
+Lmod regression testing.
+.Pp
+.It Fl -show_hidden
+.Cm avail
+and
+.Cm spider
+will report hidden modules.
+.Pp
+.It Fl -spider_timeout Ar timeout
+A timeout for
+.Cm spider .
+.Pp
+.It Fl s , -style Ar availStyle
+.Sy DEFAULT :
+system
+Site controlled avail style.
+.Pp
+.It Fl T , -trace
+.Pp
+.It Fl t , -terse
+Write out in machine readable format for
+.Cm list ,
+.Cm avail ,
+.Cm spider
+and
+.Cm savelist .
+.Pp
+.It Fl -timer
+Report run times.
+.Pp
+.It Fl v , -version
+Print version info and quit.
+.Pp
+.It Fl -w , -width Ar twidth
+Use
+.Ar twidth
+as max term width.
+.El
+.Sh SUB-COMMANDS
+.Ss HELP
+.TS
+tab(@);
+r l l.
+T{
+.Cm help
+T}@@T{
+Print the help message.
+T}
+T{
+.Cm help
+T}@T{
+.Ar module Op Ar moduleX moduleY ...
+T}@T{
+Print help messages from the given modules.
+T}
+.TE
+.Ss LOAD
+.TS
+tab(@);
+r l l.
+T{
+.Cm load , add
+T}@T{
+.Ar module Op Ar moduleX moduleY ...
+T}@T{
+Load the given modules.
+T}
+T{
+.Cm try-load , try-add
+T}@T{
+.Ar module Op Ar moduleX moduleY ...
+T}@T{
+Load the given modules, do not complain if not found.
+T}
+T{
+.Cm del , unload
+T}@T{
+.Ar module Op Ar moduleX moduleY ...
+T}@T{
+Unload the module(s), does not complain if not found.
+T}
+T{
+.Cm swap , sw , switch
+T}@T{
+.Ar moduleX moduleY
+T}@T{
+.Cm unload Ar moduleX
+and
+.Cm load Ar moduleY
+T}
+T{
+.Cm purge
+T}@@T{
+.Cm unload
+all modules
+T}
+T{
+.Cm refresh
+T}@@T{
+Reload aliases from the current list of modules.
+T}
+T{
+.Cm update
+T}@@T{
+Reload all currently loaded modules.
+T}
+.TE
+.Ss SEARCH
+.TS
+tab(@);
+r l l.
+T{
+.Cm list
+T}@@T{
+List all currently loaded modules.
+T}
+T{
+.Cm list
+T}@T{
+.Ar patX Op Ar patY ...
+T}@T{
+List all loaded modules that match any of the given patterns.
+T}
+T{
+.Cm avail , av
+T}@T{
+.Op Ar string
+T}@T{
+List all available modules.
+Restricts to modules containing
+.Ar string
+if it is provided.
+T}
+T{
+.Cm spider
+T}@@T{
+List all possible modules.
+T}
+T{
+.Cm spider
+T}@T{
+.Ar module
+T}@T{
+List all possible versions of that
+.Ar module
+file.
+T}
+T{
+.It Cm spider
+T}@T{
+.Ar string
+T}@T{
+List all modules that contain
+.Ar string .
+T}
+T{
+.Cm spider
+T}@T{
+.Ar name/version
+T}@T{
+Detailed information about that version of the module.
+T}
+T{
+.It Cm whatis
+T}@T{
+.Ar module
+T}@T{
+Print whatis information about the module.
+T}
+T{
+.Cm keyword , key 
+T}@T{
+.Ar string
+T}@T{
+Search all name and
+.Cm whatis
+that contain
+.Ar string .
+T}
+.TE
+.Pp
+All searching commands (
+.Cm spider ,
+.Cm list ,
+.Cm avail ,
+.Cm keyword
+) support regular expressions with the
+.Fl r
+flag.
+.Pp
+For example, to find all modules that start with
+.Sq p
+or
+.Sq P :
+.D1 module -r spider '^p'
+.Pp
+Find all modules that have
+.Dq mpi
+in their name:
+.D1 module -r spider mpi
+.Pp
+Find all modules that end with
+.Dq mpi
+in their name:
+.D1 module -r spider 'mpi$'
+.Ss COLLECTIONS
+.TS
+tab(@);
+r l l.
+T{
+.Cm save , s
+T}@@T{
+Save the current list of modules to a user defined
+.Dq default
+collection.
+T}
+T{
+.Cm save , s
+T}@T{
+.Ar name
+T}@T{
+Save the current list of modules to the
+.Ar name
+collection.
+T}
+T{
+.Cm reset
+T}@@T{
+The same as
+.Cm restore
+.Ar system .
+T}
+T{
+.Cm restore , r
+T}@@T{
+Restore modules from the user's
+.Dq default
+(if defined) or the system default.
+T}
+T{
+.Cm restore , r
+T}@T{
+.Ar name
+T}@T{
+Restore modules from
+.Ar name
+collection.
+T}
+T{
+.Cm restore
+T}@T{
+.Ar system
+T}@T{
+Restore module state to system defaults.
+T}
+T{
+.Cm savelist
+T}@@T{
+List of saved collections.
+T}
+T{
+.Cm describe , mcc
+T}@T{
+.Ar name
+T}@T{
+Describe the contents of the
+.Ar name
+module collection.
+T}
+T{
+.Cm disable
+T}@T{
+.Ar name
+T}@T{
+Disable (i.e. remove) the
+.Ar name
+collection.
+T}
+.TE
+.Ss MISC
+.TS
+tab(@);
+r l l.
+T{
+.Cm is-loaded 
+T}@T{
+.Ar modulefile
+T}@T{
+Return a true status if
+.Ar module
+is loaded.
+T}
+T{
+.Cm is-avail
+T}@T{
+.Ar modulefile
+T}@T{
+Return a true status if
+.Ar module
+can be loaded.
+T}
+T{
+.Cm show
+T}@T{
+.Ar modulefile
+T}@T{
+Show the commands in the
+.Ar module
+file.
+T}
+T{
+.Cm use [-a]
+T}@T{
+.Ar path
+T}@T{
+Prepend or append
+.Ar path
+to
+.Ev MODULEPATH .
+T}
+T{
+.Cm unuse
+T}@T{
+.Ar path
+T}@T{
+Remove
+.Ar path
+from
+.Ev MODULEPATH .
+T}
+T{
+.Cm tablelist
+T}@@T{
+Output list of active modules as a lua table.
+T}
+.TE
+.Ss DEPRECATED
+.TS
+tab(@);
+r l l.
+T{
+.Cm getdefault
+T}@T{
+.Op Ar name
+T}@T{
+Load the
+.Ar name
+collection of modules or the users
+.Dq default
+if no
+.Ar name
+given. Use
+.Cm restore
+Instead.
+T}
+T{
+.Cm setdefault
+T}@T{
+.Op Ar name
+T}@T{
+Save current list of modules to
+.Ar name
+if given, otherwise save as the
+.Dq default
+list for the user. Use
+.Cm save
+instead.
+T}
+.TE
+.Sh ENVIRONMENT
+To print properties and warnings in color, set the
+.Ev LMOD_COLORIZE
+environment variable to
+.Sy YES .
+.Sh SEE ALSO
+.Bd -filled -offset indent
+.TS
+tab(@);
+rb l.
+T{
+Documentation
+T}@T{
+.Lk http://lmod.readthedocs.org
+T}
+T{
+Github
+T}@T{
+.Lk https://github.com/TACC/Lmod
+T}
+T{
+Sourceforge
+T}@T{
+.Lk https://lmod.sf.net
+T}
+T{
+TACC Homepage
+T}@T{
+.Lk https://www.tacc.utexas.edu/research-development/tacc-projects/lmod
+T}
+.TE
+.Ed
+.Pp
+To report a bug please read
+.Lk http://lmod.readthedocs.io/en/latest/075_bug_reporting.html
+.Sh AUTHORS
+Modules based on Lua, written by
+.An Robert McLay Aq Mt mc...@tacc.utexas.edu .
+.Pp
+The man page for Gentoo linux is maintained by the
+.An Gentoo Science Project Aq Mt s...@gentoo.org .

diff --git a/sys-cluster/lmod/lmod-8.4.20.ebuild 
b/sys-cluster/lmod/lmod-8.4.20.ebuild
new file mode 100644
index 00000000000..a6f6713feeb
--- /dev/null
+++ b/sys-cluster/lmod/lmod-8.4.20.ebuild
@@ -0,0 +1,133 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+LUA_COMPAT=( lua5-{1..3} )
+inherit autotools lua-single
+
+DESCRIPTION="Environment Module System based on Lua"
+HOMEPAGE="https://lmod.readthedocs.io/en/latest";
+
+if [[ ${PV} == 9999 ]]; then
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/TACC/Lmod";
+else
+       SRC_URI="https://github.com/TACC/Lmod/archive/${PV}.tar.gz -> 
${P}.tar.gz"
+       S="${WORKDIR}"/Lmod-${PV}
+       KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="+auto-swap +cache duplicate-paths test"
+REQUIRED_USE="${LUA_REQUIRED_USE}"
+RESTRICT="!test? ( test )"
+
+RDEPEND="${LUA_DEPS}
+       dev-lang/tcl
+       dev-lang/tk
+       $(lua_gen_cond_dep '
+               >=dev-lua/luafilesystem-1.8.0[${LUA_USEDEP}]
+               dev-lua/luajson[${LUA_USEDEP}]
+               dev-lua/luaposix[${LUA_USEDEP}]
+               dev-lua/lua-term[${LUA_USEDEP}]
+       ')
+       virtual/pkgconfig
+"
+DEPEND="${RDEPEND}"
+BDEPEND="${RDEPEND}
+       test? (
+               $(lua_gen_cond_dep '
+                       dev-util/hermes[${LUA_SINGLE_USEDEP}]
+               ')
+               app-shells/tcsh
+       )
+"
+
+PATCHES=( "${FILESDIR}"/${PN}-8.4.19-no-libsandbox.patch )
+
+pkg_pretend() {
+       elog "You can control the siteName and syshost settings by"
+       elog "using the variables LMOD_SITENAME and LMOD_SYSHOST, during"
+       elog "build time, which are both set to 'Gentoo' by default."
+       elog "There are a lot of options for this package, especially"
+       elog "for run time behaviour. Remember to use the EXTRA_ECONF variable."
+       elog "To see full list of options visit:"
+       elog "\t 
https://lmod.readthedocs.io/en/latest/090_configuring_lmod.html";
+}
+
+src_prepare() {
+       default
+       rm -r pkgs/{luafilesystem,term} || die
+       rm -r rt/{ck_mtree_syntax,colorize,end2end,help,ifur,settarg} || die
+       eautoreconf
+}
+
+src_configure() {
+       local LMOD_SITENAME="${LMOD_SITENAME:-Gentoo}"
+       local LMOD_SYSHOST="${LMOD_SYSHOST:-Gentoo}"
+
+       local LUAC="${LUA%/*}/luac${LUA#*lua}"
+
+       local myconf=(
+               --with-tcl
+               --with-fastTCLInterp
+               --with-colorize
+               --with-supportKsh
+               --without-useBuiltinPkgs
+               --with-siteControlPrefix
+               --with-siteName="${LMOD_SITENAME}"
+               --with-syshost="${LMOD_SYSHOST}"
+               --with-lua_include="$(lua_get_include_dir)"
+               --with-lua="${LUA}"
+               --with-luac="${LUAC}"
+               --with-module-root-path="${EPREFIX}/etc/modulefiles"
+               --with-spiderCacheDir="${EPREFIX}/etc/lmod_cache/spider_cache"
+               --with-updateSystemFn="${EPREFIX}/etc/lmod_cache/system.txt"
+               --prefix="${EPREFIX}/usr/share/Lmod"
+               --with-caseIndependentSorting
+               --without-hiddenItalic
+               --with-exportedModuleCmd
+               --with-useDotFiles
+               --without-redirect
+               --with-extendedDefault
+               $(use_with cache cachedLoads)
+               $(use_with duplicate-paths duplicatePaths)
+               $(use_with auto-swap autoSwap)
+       )
+       econf "${myconf[@]}"
+}
+
+src_compile() {
+       CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" \
+       default
+}
+
+src_test() {
+       local -x PATH="${EPREFIX}/opt/hermes/bin:${PATH}"
+       tm -vvv || die
+       testcleanup || die
+}
+
+src_install() {
+       default
+       newman "${FILESDIR}"/module.1-8.4.20 module.1
+       # not a real man page
+       rm -r "${ED}"/usr/share/Lmod/share/man || die
+       doenvd "${FILESDIR}"/99lmod
+       insinto /etc/profile.d
+       newins "${ED}"/usr/share/Lmod/init/profile lmod.sh
+       newins "${ED}"/usr/share/Lmod/init/profile.fish lmod.fish
+       keepdir /etc/modulefiles
+       keepdir /etc/lmod_cache
+}
+
+pkg_postinst() {
+       if use cache ; then
+               elog "Lmod spider cache has been enabled."
+               elog "Remember to update the spider cache with"
+               elog "/usr/share/Lmod/libexec/update_lmod_system_cache_files \ "
+               elog "\t \$MODULEPATH"
+       fi
+}

diff --git a/sys-cluster/lmod/lmod-9999.ebuild 
b/sys-cluster/lmod/lmod-9999.ebuild
new file mode 100644
index 00000000000..a6f6713feeb
--- /dev/null
+++ b/sys-cluster/lmod/lmod-9999.ebuild
@@ -0,0 +1,133 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+LUA_COMPAT=( lua5-{1..3} )
+inherit autotools lua-single
+
+DESCRIPTION="Environment Module System based on Lua"
+HOMEPAGE="https://lmod.readthedocs.io/en/latest";
+
+if [[ ${PV} == 9999 ]]; then
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/TACC/Lmod";
+else
+       SRC_URI="https://github.com/TACC/Lmod/archive/${PV}.tar.gz -> 
${P}.tar.gz"
+       S="${WORKDIR}"/Lmod-${PV}
+       KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="+auto-swap +cache duplicate-paths test"
+REQUIRED_USE="${LUA_REQUIRED_USE}"
+RESTRICT="!test? ( test )"
+
+RDEPEND="${LUA_DEPS}
+       dev-lang/tcl
+       dev-lang/tk
+       $(lua_gen_cond_dep '
+               >=dev-lua/luafilesystem-1.8.0[${LUA_USEDEP}]
+               dev-lua/luajson[${LUA_USEDEP}]
+               dev-lua/luaposix[${LUA_USEDEP}]
+               dev-lua/lua-term[${LUA_USEDEP}]
+       ')
+       virtual/pkgconfig
+"
+DEPEND="${RDEPEND}"
+BDEPEND="${RDEPEND}
+       test? (
+               $(lua_gen_cond_dep '
+                       dev-util/hermes[${LUA_SINGLE_USEDEP}]
+               ')
+               app-shells/tcsh
+       )
+"
+
+PATCHES=( "${FILESDIR}"/${PN}-8.4.19-no-libsandbox.patch )
+
+pkg_pretend() {
+       elog "You can control the siteName and syshost settings by"
+       elog "using the variables LMOD_SITENAME and LMOD_SYSHOST, during"
+       elog "build time, which are both set to 'Gentoo' by default."
+       elog "There are a lot of options for this package, especially"
+       elog "for run time behaviour. Remember to use the EXTRA_ECONF variable."
+       elog "To see full list of options visit:"
+       elog "\t 
https://lmod.readthedocs.io/en/latest/090_configuring_lmod.html";
+}
+
+src_prepare() {
+       default
+       rm -r pkgs/{luafilesystem,term} || die
+       rm -r rt/{ck_mtree_syntax,colorize,end2end,help,ifur,settarg} || die
+       eautoreconf
+}
+
+src_configure() {
+       local LMOD_SITENAME="${LMOD_SITENAME:-Gentoo}"
+       local LMOD_SYSHOST="${LMOD_SYSHOST:-Gentoo}"
+
+       local LUAC="${LUA%/*}/luac${LUA#*lua}"
+
+       local myconf=(
+               --with-tcl
+               --with-fastTCLInterp
+               --with-colorize
+               --with-supportKsh
+               --without-useBuiltinPkgs
+               --with-siteControlPrefix
+               --with-siteName="${LMOD_SITENAME}"
+               --with-syshost="${LMOD_SYSHOST}"
+               --with-lua_include="$(lua_get_include_dir)"
+               --with-lua="${LUA}"
+               --with-luac="${LUAC}"
+               --with-module-root-path="${EPREFIX}/etc/modulefiles"
+               --with-spiderCacheDir="${EPREFIX}/etc/lmod_cache/spider_cache"
+               --with-updateSystemFn="${EPREFIX}/etc/lmod_cache/system.txt"
+               --prefix="${EPREFIX}/usr/share/Lmod"
+               --with-caseIndependentSorting
+               --without-hiddenItalic
+               --with-exportedModuleCmd
+               --with-useDotFiles
+               --without-redirect
+               --with-extendedDefault
+               $(use_with cache cachedLoads)
+               $(use_with duplicate-paths duplicatePaths)
+               $(use_with auto-swap autoSwap)
+       )
+       econf "${myconf[@]}"
+}
+
+src_compile() {
+       CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" \
+       default
+}
+
+src_test() {
+       local -x PATH="${EPREFIX}/opt/hermes/bin:${PATH}"
+       tm -vvv || die
+       testcleanup || die
+}
+
+src_install() {
+       default
+       newman "${FILESDIR}"/module.1-8.4.20 module.1
+       # not a real man page
+       rm -r "${ED}"/usr/share/Lmod/share/man || die
+       doenvd "${FILESDIR}"/99lmod
+       insinto /etc/profile.d
+       newins "${ED}"/usr/share/Lmod/init/profile lmod.sh
+       newins "${ED}"/usr/share/Lmod/init/profile.fish lmod.fish
+       keepdir /etc/modulefiles
+       keepdir /etc/lmod_cache
+}
+
+pkg_postinst() {
+       if use cache ; then
+               elog "Lmod spider cache has been enabled."
+               elog "Remember to update the spider cache with"
+               elog "/usr/share/Lmod/libexec/update_lmod_system_cache_files \ "
+               elog "\t \$MODULEPATH"
+       fi
+}

diff --git a/sys-cluster/lmod/metadata.xml b/sys-cluster/lmod/metadata.xml
new file mode 100644
index 00000000000..cee363a19e2
--- /dev/null
+++ b/sys-cluster/lmod/metadata.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person">
+               <email>gen...@aisha.cc</email>
+               <name>Aisha Tammy</name>
+       </maintainer>
+       <maintainer type="project">
+               <email>s...@gentoo.org</email>
+               <name>Gentoo Science Project</name>
+       </maintainer>
+       <longdescription>
+               Lmod is a lua based program to manage the user environment
+               under Unix systems, specifically designed to easily handle the 
MODULEPATH
+               Hierarchical problem.  Environment Modules provide a convenient 
way to
+               dynamically change the users' environment through modulefiles.  
This
+               includes easily adding or removing directories to the PATH,
+               LD_LIBRARY_PATH and other environment variables.
+       </longdescription>
+       <use>
+               <flag name="auto-swap">enable auto swapping of compiler</flag>
+               <flag name="cache">enable caching of modules</flag>
+               <flag name="duplicate-paths">allow duplicate entries in 
path</flag>
+       </use>
+       <upstream>
+               <remote-id type="github">TACC/Lmod</remote-id>
+       </upstream>
+</pkgmetadata>

Reply via email to