summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAisha Tammy <gentoo@aisha.cc>2021-01-24 17:16:48 +0000
committerJoonas Niilola <juippis@gentoo.org>2021-02-14 10:25:03 +0200
commit222915a6d3edbdbf4ba8c48276f1fecfca1f3742 (patch)
tree73a6466393bc675f84eddf26cc0ff9e3bd5865c0 /sys-cluster/lmod/lmod-8.4.20.ebuild
parentdev-util/hermes: move to commit version for >lua5.1 compat (diff)
downloadgentoo-222915a6d3edbdbf4ba8c48276f1fecfca1f3742.tar.gz
gentoo-222915a6d3edbdbf4ba8c48276f1fecfca1f3742.tar.bz2
gentoo-222915a6d3edbdbf4ba8c48276f1fecfca1f3742.zip
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@aisha.cc> Closes: https://github.com/gentoo/gentoo/pull/19193 Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'sys-cluster/lmod/lmod-8.4.20.ebuild')
-rw-r--r--sys-cluster/lmod/lmod-8.4.20.ebuild133
1 files changed, 133 insertions, 0 deletions
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 000000000000..a6f6713feebb
--- /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
+}