summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys-cluster/lmod/Manifest1
-rw-r--r--sys-cluster/lmod/files/lmod-8.7.55-fix-bashism-in-configure-script.patch256
-rw-r--r--sys-cluster/lmod/lmod-8.7.55.ebuild137
-rw-r--r--sys-cluster/lmod/lmod-9999.ebuild13
4 files changed, 402 insertions, 5 deletions
diff --git a/sys-cluster/lmod/Manifest b/sys-cluster/lmod/Manifest
index 19f9a0fedbe0..b996d75f4bd6 100644
--- a/sys-cluster/lmod/Manifest
+++ b/sys-cluster/lmod/Manifest
@@ -1,2 +1,3 @@
DIST lmod-8.6.14.tar.gz 15804818 BLAKE2B 5a5f076cb7121d073de456da3ad2937127c013cc47d0f389eaf00f9923b571bc4c941f8efd5cc527628d14d328d696e27e062629b4eede2f4c0273cc7015293e SHA512 b14acf4a008ccfe04d12352664bc6d4afe87a677803534ea7ccf9c3adb012a3df83edfb205e39f3d0e65db418f16dbce70871932d90b837924b889dc1829e672
DIST lmod-8.7.23.tar.gz 20609950 BLAKE2B 20b2028c15a602f7b165eae342a83a238313d37ea4669e08c5ff22c47ae4e18e3190c83739bc6e39178b60d9e3ed19c7ade20466a65833e28677ca56799aa065 SHA512 029be9c08dbe3f3f8fd5c034eaab94746679b8403d8c401bc76b18b800f4f72d21f14b0a71fe20d2c1546b8b9d6f2e032226ea3528992ea6cdab8f02c2a5d99d
+DIST lmod-8.7.55.tar.gz 29572901 BLAKE2B a898fbcf738870035548d47ef79651904c31c67476d70434ab9fbd1ff2bee35aa66a65cfa5e2c64a040773521b63da62137d8c7cb93d60b85882fe31f4d345c6 SHA512 d278ef77f58dc67685415410dfe0de3ccf03c6a6507e74b9ce084057c6e6c0b1e881f03e0c8c3b2f35a014266a773a5b5d3a58ba9853bd77c4cddc7755400401
diff --git a/sys-cluster/lmod/files/lmod-8.7.55-fix-bashism-in-configure-script.patch b/sys-cluster/lmod/files/lmod-8.7.55-fix-bashism-in-configure-script.patch
new file mode 100644
index 000000000000..cbea09516b53
--- /dev/null
+++ b/sys-cluster/lmod/files/lmod-8.7.55-fix-bashism-in-configure-script.patch
@@ -0,0 +1,256 @@
+From 46c7622bf324fd61f032065053661a71b0c92af0 Mon Sep 17 00:00:00 2001
+From: Robert McLay <mclay@zaniahgroup.com>
+Date: Tue, 24 Dec 2024 15:52:07 -0700
+Subject: [PATCH] Issue #741: Change configure.ac to use only dash compatible
+ code
+
+---
+ configure | 24 ++++++++++++------------
+ configure.ac | 24 ++++++++++++------------
+ proj_mgmt/DATE_cmd.sh | 2 +-
+ proj_mgmt/convert_mode.sh | 2 +-
+ rt/end2end/end2end.tdesc | 3 +--
+ 5 files changed, 27 insertions(+), 28 deletions(-)
+
+diff --git a/configure b/configure
+index 6c335867c..fc0015b5c 100755
+--- a/configure
++++ b/configure
+@@ -4435,7 +4435,7 @@ fi
+ if test ${with_lua+y}
+ then :
+ withval=$with_lua; PATH_TO_LUA="$withval"
+- if test ${PATH_TO_LUA:0:1} != '/' ; then
++ if test $(printf %.1s "$PATH_TO_LUA") != '/' ; then
+ echo
+ echo "ERROR: Path to lua must be absolute!"
+ exit 1
+@@ -4459,7 +4459,7 @@ fi
+ if test ${with_luac+y}
+ then :
+ withval=$with_luac; PATH_TO_LUAC="$withval"
+- if test ${PATH_TO_LUAC:0:1} != '/' ; then
++ if test $(printf %.1s "$PATH_TO_LUAC") != '/' ; then
+ echo
+ echo "ERROR: Path to luac must be absolute"
+ exit 1
+@@ -4735,7 +4735,7 @@ PATH_TO_SRC=$SRCDIR
+
+
+
+-if test $MODE == "user_default" ; then
++if test $MODE = "user_default" ; then
+ mode=0755
+ EXEC_BITS=$(( 0111 & $mode ));
+ if test $EXEC_BITS = 0; then
+@@ -5403,14 +5403,14 @@ test -n "$PATH_TO_LS" || PATH_TO_LS=""""
+
+ ##### LUA configuration -- start
+
+-if ! command -v $PATH_TO_LUA &>/dev/null ; then
++if ! (command -v $PATH_TO_LUA &>/dev/null) ; then
+ echo 'The program "'$PATH_TO_LUA'" must be in your path'
+ rm -f makefile
+ exit 1
+ fi
+
+ if test "${LUA_SUFFIX}" != no ; then
+- if test "${PATH_TO_LUA:0:1}" = '/' -o "${PATH_TO_LUAC:0:1}" = '/'; then
++ if test $(printf %.1s "$PATH_TO_LUA") = '/' -o $(printf %.1s "$PATH_TO_LUA") = '/'; then
+ echo "Neither --with-lua= nor --with-luac= can be used with --with-luaSuffix="
+ rm -f makefile
+ exit 1
+@@ -5420,10 +5420,10 @@ if test "${LUA_SUFFIX}" != no ; then
+ echo "1) PATH_TO_LUA: $PATH_TO_LUA"
+ else
+ mismatch=
+- if test "${PATH_TO_LUA:0:1}" = '/' -a "${PATH_TO_LUAC:0:1}" != '/'; then
++ if test $(printf %.1s "$PATH_TO_LUA") = '/' -a $(printf %.1s "$PATH_TO_LUA") != '/'; then
+ mismatch="true"
+ fi
+- if test "${PATH_TO_LUA:0:1}" != '/' -a "${PATH_TO_LUAC:0:1}" = '/'; then
++ if test $(printf %.1s "$PATH_TO_LUA") != '/' -a $(printf %.1s "$PATH_TO_LUA") = '/'; then
+ mismatch="true"
+ fi
+ if test "$mismatch" = true ; then
+@@ -5433,13 +5433,13 @@ else
+ fi
+ fi
+
+-if ! command -v $PATH_TO_LUA &>/dev/null ; then
++if ! (command -v $PATH_TO_LUA &>/dev/null) ; then
+ echo 'The program "'$PATH_TO_LUA'" must be in your path'
+ rm -f makefile
+ exit 1
+ fi
+
+-if test ${PATH_TO_LUA:0:1} != '/' ; then
++if test $(printf %.1s "$PATH_TO_LUA") != '/' ; then
+ # Extract the first word of "$PATH_TO_LUA", so it can be a program name with args.
+ set dummy $PATH_TO_LUA; ac_word=$2
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+@@ -5488,13 +5488,13 @@ fi
+ PATH_TO_LUA=$(FOLLOW_READLINK $FIND_PATH_TO_LUA)
+ fi
+
+-if ! command -v $PATH_TO_LUAC &>/dev/null ; then
++if ! (command -v $PATH_TO_LUAC &>/dev/null) ; then
+ echo 'The program "'$PATH_TO_LUAC'" must be in your path'
+ rm -f makefile
+ exit 1
+ fi
+
+-if test "${PATH_TO_LUAC:0:1}" != '/' ; then
++if test $(printf %.1s "$PATH_TO_LUA") != '/' ; then
+ # Extract the first word of "$PATH_TO_LUAC", so it can be a program name with args.
+ set dummy $PATH_TO_LUAC; ac_word=$2
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+@@ -5589,7 +5589,7 @@ printf "checking for lua modules: posix"
+
+ missingModules=""
+ for i in posix; do
+- if ! $PATH_TO_LUA $ac_confdir/proj_mgmt/luaModuleAvailable $i 2> /dev/null ; then
++ if ! ($PATH_TO_LUA $ac_confdir/proj_mgmt/luaModuleAvailable $i 2> /dev/null) ; then
+ missingModules="$missingModules $i"
+ fi
+ done
+diff --git a/configure.ac b/configure.ac
+index 1c9f0645a..90fb56d84 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -678,7 +678,7 @@ AC_SUBST(PATH_TO_LUA)
+ AC_ARG_WITH(lua,
+ AS_HELP_STRING([--with-lua=ans],[absolute path to the lua interpreter to use [[lua]]]),
+ PATH_TO_LUA="$withval"
+- if test ${PATH_TO_LUA:0:1} != '/' ; then
++ if test $(printf %.1s "$PATH_TO_LUA") != '/' ; then
+ echo
+ echo "ERROR: Path to lua must be absolute!"
+ exit 1
+@@ -695,7 +695,7 @@ AC_SUBST(PATH_TO_LUAC)
+ AC_ARG_WITH(luac,
+ AS_HELP_STRING([--with-luac=ans],[absolute path to the luac interpreter to use [[luac]]]),
+ PATH_TO_LUAC="$withval"
+- if test ${PATH_TO_LUAC:0:1} != '/' ; then
++ if test $(printf %.1s "$PATH_TO_LUAC") != '/' ; then
+ echo
+ echo "ERROR: Path to luac must be absolute"
+ exit 1
+@@ -816,7 +816,7 @@ AC_SUBST(PATH_TO_HASHSUM)
+ AC_SUBST(PATH_TO_PAGER)
+ AC_SUBST(PATH_TO_TCLSH)
+
+-if test $MODE == "user_default" ; then
++if test $MODE = "user_default" ; then
+ mode=0755
+ EXEC_BITS=$(( 0111 & $mode ));
+ if test $EXEC_BITS = 0; then
+@@ -909,14 +909,14 @@ AC_PATH_PROGS(PATH_TO_LS, [gls] [ls], "")
+
+ ##### LUA configuration -- start
+
+-if ! command -v $PATH_TO_LUA &>/dev/null ; then
++if ! (command -v $PATH_TO_LUA &>/dev/null) ; then
+ echo 'The program "'$PATH_TO_LUA'" must be in your path'
+ rm -f makefile
+ exit 1
+ fi
+
+ if test "${LUA_SUFFIX}" != no ; then
+- if test "${PATH_TO_LUA:0:1}" = '/' -o "${PATH_TO_LUAC:0:1}" = '/'; then
++ if test $(printf %.1s "$PATH_TO_LUA") = '/' -o $(printf %.1s "$PATH_TO_LUA") = '/'; then
+ echo "Neither --with-lua= nor --with-luac= can be used with --with-luaSuffix="
+ rm -f makefile
+ exit 1
+@@ -926,10 +926,10 @@ if test "${LUA_SUFFIX}" != no ; then
+ echo "1) PATH_TO_LUA: $PATH_TO_LUA"
+ else
+ mismatch=
+- if test "${PATH_TO_LUA:0:1}" = '/' -a "${PATH_TO_LUAC:0:1}" != '/'; then
++ if test $(printf %.1s "$PATH_TO_LUA") = '/' -a $(printf %.1s "$PATH_TO_LUA") != '/'; then
+ mismatch="true"
+ fi
+- if test "${PATH_TO_LUA:0:1}" != '/' -a "${PATH_TO_LUAC:0:1}" = '/'; then
++ if test $(printf %.1s "$PATH_TO_LUA") != '/' -a $(printf %.1s "$PATH_TO_LUA") = '/'; then
+ mismatch="true"
+ fi
+ if test "$mismatch" = true ; then
+@@ -939,24 +939,24 @@ else
+ fi
+ fi
+
+-if ! command -v $PATH_TO_LUA &>/dev/null ; then
++if ! (command -v $PATH_TO_LUA &>/dev/null) ; then
+ echo 'The program "'$PATH_TO_LUA'" must be in your path'
+ rm -f makefile
+ exit 1
+ fi
+
+-if test ${PATH_TO_LUA:0:1} != '/' ; then
++if test $(printf %.1s "$PATH_TO_LUA") != '/' ; then
+ AC_PATH_PROG(FIND_PATH_TO_LUA, $PATH_TO_LUA)
+ PATH_TO_LUA=$(FOLLOW_READLINK $FIND_PATH_TO_LUA)
+ fi
+
+-if ! command -v $PATH_TO_LUAC &>/dev/null ; then
++if ! (command -v $PATH_TO_LUAC &>/dev/null) ; then
+ echo 'The program "'$PATH_TO_LUAC'" must be in your path'
+ rm -f makefile
+ exit 1
+ fi
+
+-if test "${PATH_TO_LUAC:0:1}" != '/' ; then
++if test $(printf %.1s "$PATH_TO_LUA") != '/' ; then
+ AC_PATH_PROG(FIND_PATH_TO_LUAC, $PATH_TO_LUAC)
+ PATH_TO_LUAC=$(FOLLOW_READLINK $FIND_PATH_TO_LUAC)
+ fi
+@@ -1007,7 +1007,7 @@ printf "checking for lua modules: posix"
+
+ missingModules=""
+ for i in posix; do
+- if ! $PATH_TO_LUA $ac_confdir/proj_mgmt/luaModuleAvailable $i 2> /dev/null ; then
++ if ! ($PATH_TO_LUA $ac_confdir/proj_mgmt/luaModuleAvailable $i 2> /dev/null) ; then
+ missingModules="$missingModules $i"
+ fi
+ done
+diff --git a/proj_mgmt/DATE_cmd.sh b/proj_mgmt/DATE_cmd.sh
+index 1c01fd3ba..059cfc07e 100755
+--- a/proj_mgmt/DATE_cmd.sh
++++ b/proj_mgmt/DATE_cmd.sh
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ # -*- shell-script -*-
+
+ arg="$1"
+diff --git a/proj_mgmt/convert_mode.sh b/proj_mgmt/convert_mode.sh
+index e56627ee3..51ada7521 100755
+--- a/proj_mgmt/convert_mode.sh
++++ b/proj_mgmt/convert_mode.sh
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ # -*- shell-script -*-
+
+ KIND=$1
+diff --git a/rt/end2end/end2end.tdesc b/rt/end2end/end2end.tdesc
+index 8371d7fff..bc749ed08 100644
+--- a/rt/end2end/end2end.tdesc
++++ b/rt/end2end/end2end.tdesc
+@@ -29,7 +29,6 @@ testdescript = {
+ DIR=Lmod
+ dir=lmod
+
+-
+ remove_generated_lmod_files build b0 lmod results.csv
+
+ GIT_BRANCH=`git status | head -n 1 | sed -e 's/^[# ]*On branch //g' -e 's/^[# ]*HEAD detached at//g'`
+@@ -37,7 +36,7 @@ testdescript = {
+ LmodV=`$LUA_EXEC $projectDir/src/$CMD bash --dumpversion 2>&1`
+ echo LmodV=$LmodV
+ mkdir b0
+- (cd b0; $(projectDir)/configure --prefix=$(outputDir)/b0 --with-useBuiltinPkgs=yes)
++ (cd b0; sh $(projectDir)/configure --prefix=$(outputDir)/b0 --with-useBuiltinPkgs=yes)
+ (cd $(projectDir); make -f $(outputDir)/b0/makefile dist GIT_BRANCH=$GIT_BRANCH)
+ tar xf $projectDir/${DIR}-$LmodV.tar.bz2
+ rm -rf $projectDir/${DIR}-$LmodV.tar.bz2
diff --git a/sys-cluster/lmod/lmod-8.7.55.ebuild b/sys-cluster/lmod/lmod-8.7.55.ebuild
new file mode 100644
index 000000000000..fe5982b75cb2
--- /dev/null
+++ b/sys-cluster/lmod/lmod-8.7.55.ebuild
@@ -0,0 +1,137 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1..3} )
+inherit autotools lua-single prefix
+
+DESCRIPTION="Environment Module System based on Lua"
+HOMEPAGE="https://lmod.readthedocs.io/en/latest https://github.com/TACC/Lmod"
+
+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 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~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}]
+ ')
+"
+BDEPEND="${RDEPEND}
+ app-alternatives/bc
+ test? (
+ $(lua_gen_cond_dep '
+ dev-util/hermes[${LUA_SINGLE_USEDEP}]
+ ')
+ app-shells/tcsh
+ )
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-8.4.19-no-libsandbox.patch
+ "${FILESDIR}"/${P}-fix-bashism-in-configure-script.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
+ hprefixify -w '/#\!\/bin\/tcsh/' rt/csh_swap/csh_swap.tdesc || 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
+ --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() {
+ dosym -r /usr/share/Lmod/init/profile /etc/bash/bashrc.d/z00_lmod.sh
+ dosym -r /usr/share/Lmod/init/profile /etc/profile.d/z00_lmod.sh
+ dosym -r /usr/share/Lmod/init/cshrc /etc/profile.d/z00_lmod.csh
+ dosym -r /usr/share/Lmod/init/profile.fish /etc/fish/conf.d/z00_lmod.fish
+ 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
+ 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
index b2d53897161a..df3ca153a574 100644
--- a/sys-cluster/lmod/lmod-9999.ebuild
+++ b/sys-cluster/lmod/lmod-9999.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
LUA_COMPAT=( lua5-{1..3} )
inherit autotools lua-single prefix
@@ -33,16 +33,16 @@ RDEPEND="${LUA_DEPS}
dev-lua/luaposix[${LUA_USEDEP}]
dev-lua/lua-term[${LUA_USEDEP}]
')
- virtual/pkgconfig
"
-DEPEND="${RDEPEND}"
BDEPEND="${RDEPEND}
+ app-alternatives/bc
test? (
$(lua_gen_cond_dep '
dev-util/hermes[${LUA_SINGLE_USEDEP}]
')
app-shells/tcsh
)
+ virtual/pkgconfig
"
PATCHES=( "${FILESDIR}"/${PN}-8.4.19-no-libsandbox.patch )
@@ -90,7 +90,6 @@ src_configure() {
--with-caseIndependentSorting
--without-hiddenItalic
--with-exportedModuleCmd
- --with-useDotFiles
--without-redirect
--with-extendedDefault
$(use_with cache cachedLoads)
@@ -112,6 +111,10 @@ src_test() {
}
src_install() {
+ dosym -r /usr/share/Lmod/init/profile /etc/bash/bashrc.d/z00_lmod.sh
+ dosym -r /usr/share/Lmod/init/profile /etc/profile.d/z00_lmod.sh
+ dosym -r /usr/share/Lmod/init/cshrc /etc/profile.d/z00_lmod.csh
+ dosym -r /usr/share/Lmod/init/profile.fish /etc/fish/conf.d/z00_lmod.fish
default
newman "${FILESDIR}"/module.1-8.4.20 module.1
# not a real man page