aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbicatali <bicatali@32389bae-6d03-0410-99cf-db05cde120eb>2008-03-17 16:21:32 +0000
committerbicatali <bicatali@32389bae-6d03-0410-99cf-db05cde120eb>2008-03-17 16:21:32 +0000
commit76ffb781ed7a917f23b67454e9f950e5e3b83527 (patch)
tree94fa8e1ddc7cb9ef80b78ea7896a5845f074f95b /app-admin
parentmove stuff to root (diff)
downloadsci-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/ChangeLog7
-rw-r--r--app-admin/eselect-mpi/Manifest5
-rw-r--r--app-admin/eselect-mpi/eselect-mpi-0.0.1.ebuild24
-rw-r--r--app-admin/eselect-mpi/eselect-mpi-0.0.2.ebuild24
-rw-r--r--app-admin/eselect-mpi/files/mpi.eselect-0.0.1235
-rw-r--r--app-admin/eselect-mpi/files/mpi.eselect-0.0.2237
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 :