From e0423db6f497b70a348b5d5ddaa01c0cdb151a1d Mon Sep 17 00:00:00 2001 From: Achim Gsell Date: Mon, 9 Jan 2017 17:25:51 +0100 Subject: [PATCH] implement/fix issue #2: move additional binaries to "$PMODULES_HOME/sbin" --- Pmodules/bash | 2 +- Pmodules/libpbuild.bash | 10 ++++++++-- Pmodules/libpmodules.bash | 3 ++- Pmodules/modmanage | 4 ++-- Pmodules/modmanage.bash.in | 2 +- Pmodules/modulecmd | 2 +- Pmodules/modulecmd.bash.in | 9 +++++---- Pmodules/modulecmd.tcl.in | 2 +- Tcl/build | 3 ++- bash/build | 1 + compile_pmodules.sh | 15 +++++++++------ config/environment.bash.in | 2 -- config/environment.bash.psi | 2 -- config/versions.conf | 2 +- coreutils/build | 3 ++- dialog/build | 1 + getopt/build | 2 ++ gettext/build | 1 + install_pmodules.sh | 6 +++++- 19 files changed, 45 insertions(+), 27 deletions(-) diff --git a/Pmodules/bash b/Pmodules/bash index b49ef38..da864f7 100644 --- a/Pmodules/bash +++ b/Pmodules/bash @@ -91,7 +91,7 @@ save_env() { s+="$( typeset -p $1 );" shift done - echo export PMODULES_ENV=$( "${PMODULES_HOME}/bin/base64" --wrap=0 <<< "$s" ) + echo export PMODULES_ENV=$( "${PMODULES_HOME}/sbin/base64" --wrap=0 <<< "$s" ) } #module purge diff --git a/Pmodules/libpbuild.bash b/Pmodules/libpbuild.bash index d572e69..ddcd707 100644 --- a/Pmodules/libpbuild.bash +++ b/Pmodules/libpbuild.bash @@ -222,10 +222,15 @@ find_tarball() { [[ -r "${fname}" ]] && break done if [[ "${fname}" == 'not found' ]] && [[ -n "${SOURCE_URL}" ]]; then - wget --no-check-certificate \ - --directory-prefix="${PMODULES_DISTFILESDIR}" \ + curl --insecure \ + --output "${PMODULES_DISTFILESDIR}/${basename}" \ "${SOURCE_URL}" || std::info "Downloading sources from '${SOURCE_URL}' failed." + sleep 2 + #wget --no-check-certificate \ + # --directory-prefix="${PMODULES_DISTFILESDIR}" \ + # "${SOURCE_URL}" || + # std::info "Downloading sources from '${SOURCE_URL}' failed." fname= "${PMODULES_DISTFILESDIR}/${basename}" fi if [[ -r "${fname}" ]]; then @@ -696,6 +701,7 @@ pbuild::make_all() { DYLD_LIBRARY_PATH="${PREFIX}/lib" PATH+=":${PREFIX}/bin" + PATH+=":${PREFIX}/sbin" } #...................................................................... diff --git a/Pmodules/libpmodules.bash b/Pmodules/libpmodules.bash index b1b6f2a..d124bed 100644 --- a/Pmodules/libpmodules.bash +++ b/Pmodules/libpmodules.bash @@ -3,10 +3,11 @@ if [[ -z ${bindir} ]]; then local bindir=$(dirname "${BASH_SOURCE}") bindir=$(cd "${bindir}"/.. && pwd)"/bin" + sbindir=$(cd "${bindir}"/.. && pwd)"/sbin" fi pmodules::get_options() { - "${bindir}/getopt" "$@" + "${sbindir}/getopt" "$@" } pmodules::check_env_vars() { diff --git a/Pmodules/modmanage b/Pmodules/modmanage index 9d215a4..c4c9d74 100644 --- a/Pmodules/modmanage +++ b/Pmodules/modmanage @@ -1,6 +1,6 @@ -#!/bin/bash --noprofile +#!/bin/sh unset BASH_ENV -declare -r bindir=$( cd $(dirname $0) && pwd -P ) +bindir=$( cd $(dirname "$0")/../sbin && pwd -P ) "${bindir}/bash" --noprofile --norc "${bindir}/../libexec/modmanage.bash" "$@" diff --git a/Pmodules/modmanage.bash.in b/Pmodules/modmanage.bash.in index 44b0ba0..8c22479 100755 --- a/Pmodules/modmanage.bash.in +++ b/Pmodules/modmanage.bash.in @@ -1,4 +1,4 @@ -#!@PMODULES_HOME@/bin/bash +#!@PMODULES_HOME@/sbin/bash # we have to unset CDPATH, otherwise 'cd' prints the directoy! unset CDPATH diff --git a/Pmodules/modulecmd b/Pmodules/modulecmd index ba39772..eb82f13 100644 --- a/Pmodules/modulecmd +++ b/Pmodules/modulecmd @@ -2,5 +2,5 @@ unset BASH_ENV -bindir=$( cd $(dirname "$0") && pwd -P ) +bindir=$( cd $(dirname "$0")/../sbin && pwd -P ) "${bindir}/bash" --noprofile --norc "${bindir}/../libexec/modulecmd.bash" "$@" diff --git a/Pmodules/modulecmd.bash.in b/Pmodules/modulecmd.bash.in index 3225483..a46eaa6 100755 --- a/Pmodules/modulecmd.bash.in +++ b/Pmodules/modulecmd.bash.in @@ -1,4 +1,4 @@ -#!@PMODULES_HOME@/bin/bash --noprofile +#!@PMODULES_HOME@/sbin/bash --noprofile # #set -o nounset @@ -11,13 +11,14 @@ declare -r CMD='module' declare -r mydir=$(cd $(dirname "$0") && pwd) declare prefix=$(dirname "${mydir}") declare -r bindir="${prefix}/bin" +declare -r sbindir="${prefix}/sbin" declare -r libdir="${prefix}/lib" declare -r libexecdir="${prefix}/libexec" source "${libdir}/libstd.bash" source "${libdir}/libpmodules.bash" -PATH="${bindir}:${PATH}" +PATH="${sbindir}:${bindir}:${PATH}" declare -r version='@PMODULES_VERSION@' @@ -73,7 +74,7 @@ pbuild::save_env() { [[ -n "${tmp}" ]] && s+="${tmp};" shift done - declare -g PMODULES_ENV=$( "${PMODULES_HOME}/bin/base64" --wrap=0 <<< "$s" ) + declare -g PMODULES_ENV=$( "${PMODULES_HOME}/sbin/base64" --wrap=0 <<< "$s" ) pbuild::export_env ${shell} PMODULES_ENV } @@ -1832,7 +1833,7 @@ subcommand_initclear() { } if [[ -n ${PMODULES_ENV} ]]; then - eval "$("${PMODULES_HOME}/bin/base64" -d <<< "${PMODULES_ENV}" 2>/dev/null)" + eval "$("${PMODULES_HOME}/sbin/base64" -d <<< "${PMODULES_ENV}" 2>/dev/null)" else pmodules_init fi diff --git a/Pmodules/modulecmd.tcl.in b/Pmodules/modulecmd.tcl.in index 42285de..15049a4 100644 --- a/Pmodules/modulecmd.tcl.in +++ b/Pmodules/modulecmd.tcl.in @@ -1,4 +1,4 @@ -#!@PMODULES_HOME@/bin/tclsh +#!@PMODULES_HOME@/sbin/tclsh ######################################################################## # This is a pure TCL implementation of the module command diff --git a/Tcl/build b/Tcl/build index 59d3536..9775503 100755 --- a/Tcl/build +++ b/Tcl/build @@ -12,12 +12,13 @@ pbuild::configure() { esac "${srcdir}"/configure \ --prefix="${PREFIX}" \ + --bindir="${PREFIX}/sbin" \ --enable-shared=no \ || exit 1 } pbuild::post_install() { - { cd "${PREFIX}"/bin && rm -f tclsh && ln -fs tclsh${V%.*} tclsh; }; + { cd "${PREFIX}"/sbin && rm -f tclsh && ln -fs tclsh${V%.*} tclsh; }; } pbuild::add_to_group 'Tools' diff --git a/bash/build b/bash/build index aade8e5..33b77ae 100755 --- a/bash/build +++ b/bash/build @@ -5,6 +5,7 @@ SOURCE_URL="https://ftp.gnu.org/gnu/$P/$P-$V.tar.gz" pbuild::configure() { "${MODULE_SRCDIR}"/configure \ --prefix="${PREFIX}" \ + --bindir="${PREFIX}/sbin" \ || exit 1 } diff --git a/compile_pmodules.sh b/compile_pmodules.sh index 9f98551..9e6b737 100755 --- a/compile_pmodules.sh +++ b/compile_pmodules.sh @@ -6,7 +6,6 @@ unset PMODULES_HOME unset PMODULES_VERSION source "${BOOTSTRAP_DIR}/Pmodules/libstd.bash" -source "${BOOTSTRAP_DIR}/config/environment.bash" declare force='no' @@ -33,6 +32,10 @@ while (( $# > 0 )); do done std::read_versions "${BOOTSTRAP_DIR}/config/versions.conf" +source "${BOOTSTRAP_DIR}/config/environment.bash" +PMODULES_VERSION='' +declare -x PMODULES_VERSION +echo $PMODULES_VERSION #if [[ -n ${PMODULES_DIR} ]] && [[ "${PMODULES_DIR}" != "/" ]] && [[ -d "${PMODULES_DIR}" ]]; then # rm -rf "${PMODULES_DIR}" @@ -47,11 +50,11 @@ build () { std::die 3 "Compiling '${name}' failed!" } -if [[ ! -f "${PMODULES_HOME}/bin/base64" ]] || [[ ${force} == 'yes' ]]; then +if [[ ! -f "${PMODULES_HOME}/sbin/base64" ]] || [[ ${force} == 'yes' ]]; then build coreutils "${COREUTILS_VERSION}" fi -if [[ ! -f "${PMODULES_HOME}/bin/xgettext" ]] || [[ ${force} == 'yes' ]]; then +if [[ ! -f "${PMODULES_HOME}/sbin/xgettext" ]] || [[ ${force} == 'yes' ]]; then build gettext "${GETTEXT_VERSION}" fi @@ -59,15 +62,15 @@ if [[ ! -f "${PMODULES_HOME}/bin/getopt" ]] || [[ ${force} == 'yes' ]]; then build getopt "${GETOPT_VERSION}" fi -if [[ ! -f "${PMODULES_HOME}/bin/dialog" ]] || [[ ${force} == 'yes' ]]; then +if [[ ! -f "${PMODULES_HOME}/sbin/dialog" ]] || [[ ${force} == 'yes' ]]; then build dialog "${DIALOG_VERSION}" fi -if [[ ! -f "${PMODULES_HOME}/bin/bash" ]] || [[ ${force} == 'yes' ]]; then +if [[ ! -f "${PMODULES_HOME}/sbin/bash" ]] || [[ ${force} == 'yes' ]]; then build bash "4.3.30" fi -if [[ ! -e "${PMODULES_HOME}/bin/tclsh" ]] || [[ ${force} == 'yes' ]]; then +if [[ ! -e "${PMODULES_HOME}/sbin/tclsh" ]] || [[ ${force} == 'yes' ]]; then build Tcl "${TCL_VERSION}" fi diff --git a/config/environment.bash.in b/config/environment.bash.in index 0fbbe4b..e111e15 100644 --- a/config/environment.bash.in +++ b/config/environment.bash.in @@ -6,8 +6,6 @@ declare -x PMODULES_CONFIG_DIR='config' declare -x PMODULES_MODULEFILES_DIR='modulefiles' declare -x PMODULES_TEMPLATES_DIR='templates' -declare -x PMODULES_VERSION="0.99.6" - declare -x PMODULES_HOME="${PMODULES_ROOT}/Tools/Pmodules/${PMODULES_VERSION}" declare -x PMODULES_DEFAULT_GROUPS='Tools Programming' diff --git a/config/environment.bash.psi b/config/environment.bash.psi index ba9994f..4aba456 100644 --- a/config/environment.bash.psi +++ b/config/environment.bash.psi @@ -6,8 +6,6 @@ declare -x PMODULES_CONFIG_DIR='config' declare -x PMODULES_MODULEFILES_DIR='modulefiles' declare -x PMODULES_TEMPLATES_DIR='templates' -declare -x PMODULES_VERSION="0.99.7" - declare -x PMODULES_HOME="${PMODULES_ROOT}/Tools/Pmodules/${PMODULES_VERSION}" declare -x PMODULES_DEFAULT_GROUPS='Tools Programming' diff --git a/config/versions.conf b/config/versions.conf index c7aa08a..6e9dae3 100644 --- a/config/versions.conf +++ b/config/versions.conf @@ -4,5 +4,5 @@ dialog 1.3-20160828 getopt 1.1.6 gettext 0.19.4 Modules 3.2.10 -Pmodules 0.99.7 +Pmodules 0.99.8 Tcl 8.6.6 diff --git a/coreutils/build b/coreutils/build index b4d3dd3..6e70051 100755 --- a/coreutils/build +++ b/coreutils/build @@ -4,7 +4,8 @@ SOURCE_URL="http://ftp.gnu.org/gnu/coreutils/$P-$V.tar.xz" pbuild::configure() { "${MODULE_SRCDIR}"/configure \ - --prefix="${PREFIX}" \ + --prefix="${PREFIX}" \ + --bindir="${PREFIX}"/sbin \ || exit 1 } diff --git a/dialog/build b/dialog/build index 4340324..bec6c4c 100755 --- a/dialog/build +++ b/dialog/build @@ -5,6 +5,7 @@ SOURCE_URL="ftp://invisible-island.net/$P/$P-$V.tgz" pbuild::configure() { "${MODULE_SRCDIR}"/configure \ --prefix="${PREFIX}" \ + --bindir="${PREFIX}/sbin" \ || exit 1 } diff --git a/getopt/build b/getopt/build index efb3ab4..00c247c 100755 --- a/getopt/build +++ b/getopt/build @@ -31,6 +31,8 @@ pbuild::install() { declare -x DESTDIR="${PREFIX}" declare -x prefix='' make -e install + mkdir -p "${PREFIX}/sbin" + mv "${PREFIX}/bin/getopt" "${PREFIX}/sbin" } pbuild::cleanup_build() { diff --git a/gettext/build b/gettext/build index def5804..6fc0e93 100755 --- a/gettext/build +++ b/gettext/build @@ -5,6 +5,7 @@ SOURCE_URL="https://ftp.gnu.org/pub/gnu/$P/$P-$V.tar.gz" pbuild::configure() { "${MODULE_SRCDIR}"/configure \ --prefix="${PREFIX}" \ + --bindir="${PREFIX}/sbin" \ --disable-java \ --disable-threads \ --disable-shared \ diff --git a/install_pmodules.sh b/install_pmodules.sh index dea2b4c..cc4e9cd 100755 --- a/install_pmodules.sh +++ b/install_pmodules.sh @@ -1,12 +1,16 @@ #!/bin/bash declare BOOTSTRAP_DIR=$(dirname "$0") + +unset PMODULES_HOME +unset PMODULES_VERSION + source "${BOOTSTRAP_DIR}/Pmodules/libstd.bash" -source "${BOOTSTRAP_DIR}/config/environment.bash" declare -r BOOTSTRAP_DIR=$(std::get_abspath "${BOOTSTRAP_DIR}") declare -r SRC_DIR="${BOOTSTRAP_DIR}/Pmodules" std::read_versions "${BOOTSTRAP_DIR}/config/versions.conf" +source "${BOOTSTRAP_DIR}/config/environment.bash" echo "Installing to ${PMODULES_HOME} ..."