diff options
author | bicatali <bicatali@32389bae-6d03-0410-99cf-db05cde120eb> | 2008-03-17 16:21:32 +0000 |
---|---|---|
committer | bicatali <bicatali@32389bae-6d03-0410-99cf-db05cde120eb> | 2008-03-17 16:21:32 +0000 |
commit | 76ffb781ed7a917f23b67454e9f950e5e3b83527 (patch) | |
tree | 94fa8e1ddc7cb9ef80b78ea7896a5845f074f95b /app-admin | |
parent | move stuff to root (diff) | |
download | sci-76ffb781ed7a917f23b67454e9f950e5e3b83527.tar.gz sci-76ffb781ed7a917f23b67454e9f950e5e3b83527.tar.bz2 sci-76ffb781ed7a917f23b67454e9f950e5e3b83527.zip |
moved overlay to new directory
git-svn-id: http://overlays.gentoo.org/svn/proj/science/overlay@979 32389bae-6d03-0410-99cf-db05cde120eb
Diffstat (limited to 'app-admin')
-rw-r--r-- | app-admin/eselect-mpi/ChangeLog | 7 | ||||
-rw-r--r-- | app-admin/eselect-mpi/Manifest | 5 | ||||
-rw-r--r-- | app-admin/eselect-mpi/eselect-mpi-0.0.1.ebuild | 24 | ||||
-rw-r--r-- | app-admin/eselect-mpi/eselect-mpi-0.0.2.ebuild | 24 | ||||
-rw-r--r-- | app-admin/eselect-mpi/files/mpi.eselect-0.0.1 | 235 | ||||
-rw-r--r-- | app-admin/eselect-mpi/files/mpi.eselect-0.0.2 | 237 |
6 files changed, 532 insertions, 0 deletions
diff --git a/app-admin/eselect-mpi/ChangeLog b/app-admin/eselect-mpi/ChangeLog new file mode 100644 index 000000000..fadac87aa --- /dev/null +++ b/app-admin/eselect-mpi/ChangeLog @@ -0,0 +1,7 @@ +# ChangeLog for app-admin/eselect-mpi +# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2 +# $Header: $ + + 29 Feb 2008; Justin Bronder <jsbronder@gentoo.org> ChangeLog: + Initial import + diff --git a/app-admin/eselect-mpi/Manifest b/app-admin/eselect-mpi/Manifest new file mode 100644 index 000000000..22a86472e --- /dev/null +++ b/app-admin/eselect-mpi/Manifest @@ -0,0 +1,5 @@ +AUX mpi.eselect-0.0.1 5906 RMD160 50fe1e3bbd33b53ff1e991559833fdc1d3a29786 SHA1 d50f55983ae7b04ac307ee8d0f76f11796116dcb SHA256 75371c29d48487f8271cc7cd52ee433f01ba902e1977cad34cb0816164e52835 +AUX mpi.eselect-0.0.2 6241 RMD160 8d156a0c6f4a0726b58f23f7e61ea0ae443529ad SHA1 a8da7af051d30fe039d850fab306bcf12bb133b7 SHA256 a5c98c1af12145b489f9c7ef5bb7c822e835496d9024b2e6a00246cc4382f92b +EBUILD eselect-mpi-0.0.1.ebuild 471 RMD160 a0ebe2dd4b15145b4b59ba3315e024bc40d5c666 SHA1 3ea3e291035938ea60cd6317d567dd4a6bbe8bcf SHA256 2b8e45415133a5c7af1c83b088e68a01e7a7671e0e1ad300fd73f5a567ed797f +EBUILD eselect-mpi-0.0.2.ebuild 471 RMD160 a0ebe2dd4b15145b4b59ba3315e024bc40d5c666 SHA1 3ea3e291035938ea60cd6317d567dd4a6bbe8bcf SHA256 2b8e45415133a5c7af1c83b088e68a01e7a7671e0e1ad300fd73f5a567ed797f +MISC ChangeLog 204 RMD160 2942e0f3e4c22cc4de7fbd3cac7c4782a9a1277b SHA1 6f370d97e1ba7f201511f9076be8792b2f4a7681 SHA256 61111109097ea69c5124a0297fe5776115fae9e60e3097eaa9e966a1e3586f30 diff --git a/app-admin/eselect-mpi/eselect-mpi-0.0.1.ebuild b/app-admin/eselect-mpi/eselect-mpi-0.0.1.ebuild new file mode 100644 index 000000000..7a6d8f600 --- /dev/null +++ b/app-admin/eselect-mpi/eselect-mpi-0.0.1.ebuild @@ -0,0 +1,24 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +DESCRIPTION="eselect-mpi" +HOMEPAGE="localhost" +SRC_URI="" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64" +IUSE="" + +DEPEND="app-admin/eselect" +RDEPEND="${DEPEND}" + +src_install() { + local MODULEDIR="/usr/share/eselect/modules" + local MODULE="mpi" + dodir ${MODULEDIR} + insinto ${MODULEDIR} + newins "${FILESDIR}"/${MODULE}.eselect-${PVR} ${MODULE}.eselect +} + diff --git a/app-admin/eselect-mpi/eselect-mpi-0.0.2.ebuild b/app-admin/eselect-mpi/eselect-mpi-0.0.2.ebuild new file mode 100644 index 000000000..7a6d8f600 --- /dev/null +++ b/app-admin/eselect-mpi/eselect-mpi-0.0.2.ebuild @@ -0,0 +1,24 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +DESCRIPTION="eselect-mpi" +HOMEPAGE="localhost" +SRC_URI="" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64" +IUSE="" + +DEPEND="app-admin/eselect" +RDEPEND="${DEPEND}" + +src_install() { + local MODULEDIR="/usr/share/eselect/modules" + local MODULE="mpi" + dodir ${MODULEDIR} + insinto ${MODULEDIR} + newins "${FILESDIR}"/${MODULE}.eselect-${PVR} ${MODULE}.eselect +} + diff --git a/app-admin/eselect-mpi/files/mpi.eselect-0.0.1 b/app-admin/eselect-mpi/files/mpi.eselect-0.0.1 new file mode 100644 index 000000000..098110358 --- /dev/null +++ b/app-admin/eselect-mpi/files/mpi.eselect-0.0.1 @@ -0,0 +1,235 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id: $ + +DESCRIPTION="Manage MPI implementations" +MAINTAINER="jsbronder@gentoo.org" +SVN_DATE='$Date: $' +VERSION="0.0.1" + +inherit path-manipulation config + +# The basic idea is we want to allow every use to select their own mpi +# implementation they want, and a ${HOME}/.env.d/mpi file is created for them. +# A user then is -required- to source the env file. This sets PATH, MANPATH, +# and LD_LIBRARY_PATH. I'm sure I'm forgetting something here. +# Calling unset only wipes out the env file, replacing it with what we +# previously added stripped out. + +# If you can think of a better way to do this, while still allowing user's +# freedom, please let me know. + +# List the valid mpi implementations currently installed. +find_implementations() { + local imps + for f in ${ROOT}/etc/env.d/mpi/*; do + [[ -f ${f} ]] || continue + f=$(basename ${f}) + [[ "${f#mpi-}" == "${f}" ]] && continue + imps=(${imps[@]} ${f}) + done + echo ${imps[@]} +} + +# User's current environment has the implementation configured in it. +is_in_use() { [ "${ESELECT_MPI_IMP}" == "${1}" ]; } + +# User's env file is ready for sourcing for this implementation. +is_enabled() { + [ "$(var_from_user_envd ESELECT_MPI_IMP)" == "${1}" ] +} + +var_from_user_envd(){ + [ ! -f ${user_ev} ] && return 0 + echo "$(source ${user_ev}; echo ${!1})" +} + +# Is this a valid implementation? +is_implementation() { + local imps=$(find_implementations) + for i in ${imps[@]}; do + [[ "${i}" == "${1}" ]] && return 0 + done + return 1 +} + +init() { + local d + [[ ${UID} -eq 0 ]] && HOME="${ROOT}/root" + d="$(canonicalise "${ROOT}/${HOME}")" + user_ev="${d}/.env.d/mpi"; + + if [[ ! -d "${d}" ]]; then + mkdir "${d}" || die -q "Failed to create ${d}." + elif [[ ! -w "${d}" ]]; then + die -q "You do not have permission to mkdir ${d}." + fi + [[ -f "${f}" && ! -w "${f}" ]] && die -q "You do not have permission to write to ${f}." +} + +global_env() { + local d=$(canonicalise "${ROOT}/etc/env.d/mpi/${1}") + [ -z "${d}" ] && die "Cannot find global env file for ${1}" + ev=${d} +} + +clean_var() { + local imp v + local value="${!1}" + local d="$(canonicalise "${ROOT}/etc/env.d/mpi/${imp}")" + [ -z "${value}" ] && return 0 + [ -z "${d}" ] && continue + + for imp in $(find_implementations); do + v=$(load_config ${d}/${imp} ${1}) + [ -z "${v}" ] && continue + value="$(echo ${value} | sed -e "s|${v}:||g")" + done + echo ${value} +} + + +### list action ### + +describe_list() { echo "List available implementations"; } +describe_list_parameters() { echo "[-p]"; } + +do_list() { + imps=( $(find_implementations) ) + init + if [[ ${@} == *-p* ]]; then + echo "${imps[@]}" + else + write_list_start "Available MPI implementations:" + if [[ -n "${imps[@]}" ]]; then + for (( i=0; i<${#imps[@]}; i++ )); do + if is_in_use ${imps[$i]} && is_enabled ${imps[$i]}; then + write_kv_list_entry "${imps[$i]}" "Enabled, In Use" + elif is_in_use ${imps[$i]}; then + write_kv_list_entry "${imps[$i]}" "In Use" + elif is_enabled ${imps[$i]}; then + write_kv_list_entry "${imps[$i]}" "Enabled" + else + write_kv_list_entry "${imps[$i]}" "--" + fi + done + else + write_kv_list_entry "(none found)" "" + fi + fi + return 0 +} + + +### set action ### + +describe_set() { + echo "Select a MPI implementation." +} + +describe_set_parameters() { + echo "<target>" +} + +do_set() { + local binpath lld manpath + + init + global_env ${1} + + [[ -z ${1} ]] && die -q "You didnt specifiy any implementation for use." + [[ ${#@} -ne 1 ]] && die -q "You may only select exactly one implementation." + ! is_implementation ${1} && die -q "${1} is not an implementation." + is_enabled ${1} && return 0 + + binpath="$(load_config ${ev} PATH):$(clean_var PATH)" + lld="$(load_config ${ev} LD_LIBRARY_PATH):$(clean_var LD_LIBRARY_PATH)" + manpath="$(load_config ${ev} MANPATH):$(clean_var MANPATH)" + +cat <<-EOF >${user_ev} +PATH="${binpath}" +MANPATH="${manpath}" +LD_LIBRARY_PATH="${lld}" +ESELECT_MPI_IMP="${1}" +export LD_LIBRARY_PATH +export PATH +export MANPATH +export ESELECT_MPI_IMP +EOF + echo "Remember to source ${user_ev}" +} + + +### unset action ### +describe_unset() { + echo "Restore MPI-less environment." +} + +do_unset() { + local binpath lld manpath + + init + + binpath="$(clean_var PATH)" + lld="$(clean_var LD_LIBRARY_PATH)" + manpath="$(clean_var MANPATH)" +cat <<-EOF >${user_ev} +PATH="${binpath}" +MANPATH="${manpath}" +LD_LIBRARY_PATH="${lld}" +export LD_LIBRARY_PATH +export PATH +export MANPATH +unset ESELECT_MPI_IMP +EOF + echo "Remember to source ${user_ev}" +} + +### add action (from skel pretty much) +describe_add() { + echo "Add a new mpi implementation" +} + +describe_add_parameters() { + echo "<file>" +} + +do_add() { + local imp + [[ ${#@} -ne 1 ]] \ + && die -q "Bad arguments, use: mpi add /some/full/path/<implementation>.eselect" + + # If $D is set, we're adding from portage so we want to respect sandbox. + # Otherwise, respect the ROOT variable. + local PREFIX=${D:-${ROOT}/} + + # Create directory if necessary + if [[ ! -e ${PREFIX}/etc/env.d/mpi/ ]]; then + mkdir -p ${PREFIX}/etc/env.d/mpi/ + else + if [[ ! -d ${PREFIX}/etc/env.d/mpi/ ]]; then + die -q "${PREFIX}/etc/env.d/mpi/ exists but isn't a directory!" + fi + fi + + imp=$(basename ${1}); imp=${imp%.eselect} + if ! cp ${1} ${PREFIX}/etc/env.d/mpi/${imp}; then + die -q "Installing ${1} as ${PREFIX}/etc/env.d/mpi/${imp} failed!" + fi +} + + +### printvar action ### +describe_printvar() { echo "Print variables stored in global env.d file."; } +describe_printvar_parameters() { echo "<implementation> <variable>"; } + +do_printvar() { + if [[ ${#@} -ne 2 ]] \ + || ! is_implementation ${1}; then + die -q "Specify exactly 1 implementation and 1 variable." + fi + global_env ${1} + echo "$(load_config ${ev} ${2})" +} + +# vim: set ft=eselect : diff --git a/app-admin/eselect-mpi/files/mpi.eselect-0.0.2 b/app-admin/eselect-mpi/files/mpi.eselect-0.0.2 new file mode 100644 index 000000000..4f000c9df --- /dev/null +++ b/app-admin/eselect-mpi/files/mpi.eselect-0.0.2 @@ -0,0 +1,237 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id: $ + +DESCRIPTION="Manage MPI implementations" +MAINTAINER="jsbronder@gentoo.org" +SVN_DATE='$Date: $' +VERSION="0.0.2" + +inherit path-manipulation config + +# The basic idea is we want to allow every use to select their own mpi +# implementation they want, and a ${HOME}/.env.d/mpi file is created for them. +# A user then is -required- to source the env file. This sets PATH, MANPATH, +# and LD_LIBRARY_PATH. I'm sure I'm forgetting something here. +# Calling unset only wipes out the env file, replacing it with what we +# previously added stripped out. + +# If you can think of a better way to do this, while still allowing user's +# freedom, please let me know. + +# List the valid mpi implementations currently installed. +find_implementations() { + local imps + for f in ${ROOT}/etc/env.d/mpi/*; do + [[ -f ${f} ]] || continue + f=$(basename ${f}) + [[ "${f#mpi-}" == "${f}" ]] && continue + imps=(${imps[@]} ${f}) + done + echo ${imps[@]} +} + +# User's current environment has the implementation configured in it. +is_in_use() { [ "${ESELECT_MPI_IMP}" == "${1}" ]; } + +# User's env file is ready for sourcing for this implementation. +is_enabled() { + [ "$(var_from_user_envd ESELECT_MPI_IMP)" == "${1}" ] +} + +var_from_user_envd(){ + [ ! -f ${user_ev} ] && return 0 + echo "$(source ${user_ev}; echo ${!1})" +} + +# Is this a valid implementation? +is_implementation() { + local imps=$(find_implementations) + for i in ${imps[@]}; do + [[ "${i}" == "${1}" ]] && return 0 + done + return 1 +} + +init() { + local d + [[ ${UID} -eq 0 ]] && HOME="${ROOT}/root" + d="$(canonicalise "${ROOT}/${HOME}")" + d="${d}/.env.d/" + user_ev="${d}mpi"; + + if [[ ! -d "${d}" ]]; then + mkdir "${d}" || die -q "Failed to create ${d}." + elif [[ ! -w "${d}" ]]; then + die -q "You do not have permission to mkdir ${d}." + fi + [[ -f "${user_ev}" && ! -w "${user_ev}" ]] \ + && die -q "You do not have permission to write to ${user_ev}." +} + +global_env() { + local d=$(canonicalise "${ROOT}/etc/env.d/mpi/${1}") + [ -z "${d}" ] && die "Cannot find global env file for ${1}" + ev=${d} +} + +clean_var() { + local imp v + local value="${!1}" + local d="$(canonicalise "${ROOT}/etc/env.d/mpi/${imp}")" + [ -z "${value}" ] && return 0 + [ -z "${d}" ] && continue + + for imp in $(find_implementations); do + v=$(load_config ${d}/${imp} ${1}) + [ -z "${v}" ] && continue + value="$(echo ${value} | sed -e "s|${v}:||g")" + done + echo ${value} +} + + +### list action ### + +describe_list() { echo "List available implementations"; } +describe_list_parameters() { echo "[-p]"; } + +do_list() { + imps=( $(find_implementations) ) + init + if [[ ${@} == *-p* ]]; then + echo "${imps[@]}" + else + write_list_start "Available MPI implementations:" + if [[ -n "${imps[@]}" ]]; then + for (( i=0; i<${#imps[@]}; i++ )); do + if is_in_use ${imps[$i]} && is_enabled ${imps[$i]}; then + write_kv_list_entry "${imps[$i]}" "Enabled, In Use" + elif is_in_use ${imps[$i]}; then + write_kv_list_entry "${imps[$i]}" "In Use" + elif is_enabled ${imps[$i]}; then + write_kv_list_entry "${imps[$i]}" "Enabled" + else + write_kv_list_entry "${imps[$i]}" "--" + fi + done + else + write_kv_list_entry "(none found)" "" + fi + fi + return 0 +} + + +### set action ### + +describe_set() { + echo "Select a MPI implementation." +} + +describe_set_parameters() { + echo "<target>" +} + +do_set() { + local binpath lld manpath + + init + global_env ${1} + + [[ -z ${1} ]] && die -q "You didnt specifiy any implementation for use." + [[ ${#@} -ne 1 ]] && die -q "You may only select exactly one implementation." + ! is_implementation ${1} && die -q "${1} is not an implementation." + is_enabled ${1} && return 0 + + binpath="$(load_config ${ev} PATH):$(clean_var PATH)" + lld="$(load_config ${ev} LD_LIBRARY_PATH):$(clean_var LD_LIBRARY_PATH)" + manpath="$(load_config ${ev} MANPATH):$(clean_var MANPATH)" + +cat <<-EOF >${user_ev} +PATH="${binpath}" +MANPATH="${manpath}" +LD_LIBRARY_PATH="${lld}" +ESELECT_MPI_IMP="${1}" +export LD_LIBRARY_PATH +export PATH +export MANPATH +export ESELECT_MPI_IMP +EOF + echo "Remember to source ${user_ev}" +} + + +### unset action ### +describe_unset() { + echo "Restore MPI-less environment." +} + +do_unset() { + local binpath lld manpath + + init + + binpath="$(clean_var PATH)" + lld="$(clean_var LD_LIBRARY_PATH)" + manpath="$(clean_var MANPATH)" +cat <<-EOF >${user_ev} +PATH="${binpath}" +MANPATH="${manpath}" +LD_LIBRARY_PATH="${lld}" +export LD_LIBRARY_PATH +export PATH +export MANPATH +unset ESELECT_MPI_IMP +EOF + echo "Remember to source ${user_ev}" +} + +### add action (from skel pretty much) +describe_add() { + echo "Add a new mpi implementation" +} + +describe_add_parameters() { + echo "<file>" +} + +do_add() { + local imp + [[ ${#@} -ne 1 ]] \ + && die -q "Bad arguments, use: mpi add /some/full/path/<implementation>.eselect" + + # If $D is set, we're adding from portage so we want to respect sandbox. + # Otherwise, respect the ROOT variable. + local PREFIX=${D:-${ROOT}/} + + # Create directory if necessary + if [[ ! -e ${PREFIX}/etc/env.d/mpi/ ]]; then + mkdir -p ${PREFIX}/etc/env.d/mpi/ + else + if [[ ! -d ${PREFIX}/etc/env.d/mpi/ ]]; then + die -q "${PREFIX}/etc/env.d/mpi/ exists but isn't a directory!" + fi + fi + + imp=$(basename ${1}); imp=${imp%.eselect} + if ! cp ${1} ${PREFIX}/etc/env.d/mpi/${imp}; then + die -q "Installing ${1} as ${PREFIX}/etc/env.d/mpi/${imp} failed!" + fi +} + + +### printvar action ### +describe_printvar() { echo "Print variables stored in global env.d file."; } +describe_printvar_parameters() { echo "<implementation> <variable>"; } + +do_printvar() { + if [[ ${#@} -ne 2 ]] \ + || ! is_implementation ${1}; then + die -q "Specify exactly 1 implementation and 1 variable." + fi + global_env ${1} + echo "$(load_config ${ev} ${2})" +} + +# vim: set ft=eselect : |