diff options
-rw-r--r-- | sys-cluster/lmod/Manifest | 1 | ||||
-rw-r--r-- | sys-cluster/lmod/files/lmod-8.7.55-fix-bashism-in-configure-script.patch | 256 | ||||
-rw-r--r-- | sys-cluster/lmod/lmod-8.7.55.ebuild | 137 | ||||
-rw-r--r-- | sys-cluster/lmod/lmod-9999.ebuild | 13 |
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 |