public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/sci:master commit in: sys-cluster/empi/, sys-cluster/empi/files/
@ 2013-02-22 10:18 Justin Lecher
  0 siblings, 0 replies; 5+ messages in thread
From: Justin Lecher @ 2013-02-22 10:18 UTC (permalink / raw
  To: gentoo-commits

commit:     86d0295a8821ba68d6e55cc48dc2bb4e904c7801
Author:     Justin Bronder <jbronder <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 22 04:39:54 2013 +0000
Commit:     Justin Lecher <jlec <AT> gentoo <DOT> org>
CommitDate: Fri Feb 22 04:40:02 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=86d0295a

empi:  bump 0.8

Package-Manager: portage-2.1.11.50
RepoMan-Options: --force

---
 sys-cluster/empi/ChangeLog                         |   10 +-
 .../empi/{empi-0.7.ebuild => empi-0.8.ebuild}      |    2 +-
 sys-cluster/empi/files/ChangeLog-0.7               |  164 -------
 sys-cluster/empi/files/ChangeLog-0.8               |   68 +++
 sys-cluster/empi/files/empi-0.7                    |  408 ----------------
 sys-cluster/empi/files/empi-0.8                    |  492 ++++++++++++++++++++
 .../files/{eselect.mpi-0.7 => eselect.mpi-0.8}     |    2 +-
 7 files changed, 571 insertions(+), 575 deletions(-)

diff --git a/sys-cluster/empi/ChangeLog b/sys-cluster/empi/ChangeLog
index 0b8069b..b69a7df 100644
--- a/sys-cluster/empi/ChangeLog
+++ b/sys-cluster/empi/ChangeLog
@@ -1,7 +1,15 @@
 # ChangeLog for sys-cluster/empi
-# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
+# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
 # $Header: $
 
+*empi-0.8 (22 Feb 2013)
+
+  22 Feb 2013; Justin Bronder <jsbronder@gentoo.org> -files/ChangeLog-0.7,
+  -files/empi-0.7, -files/eselect.mpi-0.7, -empi-0.7.ebuild,
+  +files/ChangeLog-0.8, +files/empi-0.8, +files/eselect.mpi-0.8,
+  +empi-0.8.ebuild:
+  empi: bump 0.8
+
   21 Jan 2010; Justin Bronder <jsbronder@gentoo.org> -files/ChangeLog-0.6,
   -files/empi-0.6:
   cleanup

diff --git a/sys-cluster/empi/empi-0.7.ebuild b/sys-cluster/empi/empi-0.8.ebuild
similarity index 93%
rename from sys-cluster/empi/empi-0.7.ebuild
rename to sys-cluster/empi/empi-0.8.ebuild
index f50e61a..bb3daff 100644
--- a/sys-cluster/empi/empi-0.7.ebuild
+++ b/sys-cluster/empi/empi-0.8.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2010 Gentoo Foundation
+# Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Header: $
 

diff --git a/sys-cluster/empi/files/ChangeLog-0.7 b/sys-cluster/empi/files/ChangeLog-0.7
deleted file mode 100644
index 4110eca..0000000
--- a/sys-cluster/empi/files/ChangeLog-0.7
+++ /dev/null
@@ -1,164 +0,0 @@
-commit 49905d1a07f32ddf55a9a5d7e7cd1a5fcbfff26f
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Wed Jan 20 23:32:09 2010 -0500
-
-    Revert "Remove useless scripts"
-    
-    This reverts commit b633bb1b420c55cbd397be328e4438f0c82cac3d.
-    
-    Yeah, they were not useless.
-
-commit b633bb1b420c55cbd397be328e4438f0c82cac3d
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Wed Jan 20 23:28:11 2010 -0500
-
-    Remove useless scripts
-
-commit 788b09ade81df31177bfa1fc154e8f5886c09122
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Wed Jan 20 23:26:40 2010 -0500
-
-    update empi version
-
-commit c0896d1906d68ae2751e0c5f1d98f35e4db1d3ff
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Wed Jan 20 23:22:46 2010 -0500
-
-    Update version to sync with sci overlay
-
-commit bb04e7f10557dfc25adf855172bde2fa52fda3ce
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Wed Jan 20 23:13:11 2010 -0500
-
-    Gentoo likes tabs in eselect modules
-
-commit 964efc1c8484bf811c6292abb9ca61b9824cea87
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Wed Jan 20 23:09:08 2010 -0500
-
-    eselect-mpi:  cleanup .env.d files.
-    
-    Cleanup .env.d files so we don't save variables at the time of the
-    eselect call and instead use the ones from the current environment at
-    the time of sourcing.
-    
-    Thanks to EBo <ebo@sandien.com> for reporting and giving the initial
-    code for the fix.
-
-commit 720dafe3c8d895d2f23a553e5bfdf0a746f54cae
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Thu Dec 3 21:51:39 2009 -0500
-
-    add mpi_pkg_set_ld_library_path()
-
-commit 943336f0af5a8541fe0992797df402ffcda44a39
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Thu Dec 3 20:36:14 2009 -0500
-
-    Add MPI_PKG_USE_ROMIO to mpi.eclass.
-
-commit da1150d684f2bf93cdc4a863ff1d468dead856ea
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Thu Dec 3 20:30:44 2009 -0500
-
-    Recreate virtual ebuild when adding packages.
-    
-    As we have to copy process the virtual/${class} ebuild, it should be
-    re-copied from the portage tree each time a package is added to a class.
-    This way, any additions to the virtual are also picked up.
-
-commit 9b2b8fb7f2be159e5dc358156457960b779e75e3
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Tue Jun 30 16:47:45 2009 -0400
-
-    mpi.eclass:  mpi_doman fixes.
-    
-    Create usr/share if it doesn't already exist.
-    Remove usr/share if it's empty after installing man pages.
-
-commit e2aa61aaac8ca9dd95255f5f5aa84d2bf1a3cde0
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Fri Jun 26 21:52:37 2009 -0400
-
-    mpi.eclass:  Update changelog
-
-commit 8daf4445fc87ccaeec9dcf5629d5d21990808ed4
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Fri Jun 26 21:49:38 2009 -0400
-
-    mpi.eclass:  Remove dep on eselect-mpi
-    
-    It's moving into the empi ebuild, so there's no way to get
-    a classed build without having it.
-
-commit ce6dad7d94ef47e498a513195e64287b07d5cc0f
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Fri Jun 26 21:47:22 2009 -0400
-
-    empi:  Handle keywords/use for virtual/${class}
-
-commit 3f208612423f6ed66f6036aee544304f28c39992
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Fri Jun 26 21:33:54 2009 -0400
-
-    empi:  Trap regexps to beginning of line.
-
-commit 040640d118d4020c6584050208685b8f9c6c55fb
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Fri Jun 26 21:32:39 2009 -0400
-
-    mpi.eclass:  Fix virtual name when classed.
-
-commit b390a492636e939188a3a8c44fa8ac7b1e3e8579
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Fri Jun 26 21:32:05 2009 -0400
-
-    mpi.eclass:  Fix syntax errors.
-
-commit 6e9465dfd27434436899d742db6dbcac9e876ca8
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Fri Jun 26 21:20:52 2009 -0400
-
-    empi.eclass:  Fix calculation of invalid implementations in deplist
-
-commit 6acf8c47449f8884f4f93e9229c8a718816772e2
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Fri Jun 26 20:58:30 2009 -0400
-
-    Revert "empi.eclass:  Replace MPI_PKG_NEED_IMPS with MPI_PKG_INVAL_IMPS"
-    
-    This reverts commit 7430f4fa81526aa541a215cbbe6334928f8fda7f.
-
-commit 7430f4fa81526aa541a215cbbe6334928f8fda7f
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Fri Jun 26 20:49:48 2009 -0400
-
-    empi.eclass:  Replace MPI_PKG_NEED_IMPS with MPI_PKG_INVAL_IMPS
-
-commit 1cd78c6504a7e082b6993b6d8474b004f6340f57
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Fri Jun 26 20:43:16 2009 -0400
-
-    mpi.eclass:  Depend on the mpi virtual ebuild.
-
-commit 97ae3eb571b64cb2012872f22a11a3433230a0ef
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Fri Jun 26 20:35:43 2009 -0400
-
-    Update .gitignore
-
-commit e55047d85900ae9077f1f1e209a752d0c45b40e5
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Fri Jun 26 20:32:56 2009 -0400
-
-    empi:  Create a specific virtual/mpi-${class}
-    
-    To be used with the eclass so we do not need to specify every
-    implementation when calculating mpi_pkg_deps.  Also allows us
-    to use USE deps.
-
-commit 288305180c3a71a8975325241a4c5bb13e07f932
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Fri Jun 26 19:26:12 2009 -0400
-
-    initial commit

diff --git a/sys-cluster/empi/files/ChangeLog-0.8 b/sys-cluster/empi/files/ChangeLog-0.8
new file mode 100644
index 0000000..15652b0
--- /dev/null
+++ b/sys-cluster/empi/files/ChangeLog-0.8
@@ -0,0 +1,68 @@
+commit a17e4452cb93014e2a4d5f7615e5d09f2df9c6a2 (HEAD, tag: v0.8, origin/master, origin/HEAD, master)
+Author: Justin Bronder <jsbronder@gmail.com>
+Date:   Thu Feb 21 22:56:27 2013 -0500
+
+    empi-0.8
+
+commit b38f48aa70933858d410abce58964e55708471c9
+Author: Justin Bronder <jsbronder@gmail.com>
+Date:   Thu Feb 21 22:54:28 2013 -0500
+
+    empi:  manage overlay metadata
+    
+    Add overlay metadata management.  Snagged from crossdev.
+    http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git
+
+commit 4305d879c232acd663a8bb13505e5cfa403c5df5
+Author: Justin Bronder <jsbronder@gmail.com>
+Date:   Thu Feb 21 21:05:19 2013 -0500
+
+    empi:  provide and set overlay default
+    
+    Set default overlay path to /var/cache/overlays/mpi
+
+commit fd7eed35034cb54dbe0d8f553c57abceee3c0eea
+Author: Justin Bronder <jsbronder@gmail.com>
+Date:   Thu Feb 21 20:40:36 2013 -0500
+
+    empi:  allow all users to see usage screen
+
+commit 84aa3a41dbbf2924dc223614c267ff6e79bfce2e
+Author: Justin Bronder <jsbronder@gmail.com>
+Date:   Fri Jan 11 16:43:08 2013 -0500
+
+    rename MPI_PORTDIR and pull it from the portage env
+
+commit 77318d28462f05b4a8a6f1ac7b270aa07b5ebc8a
+Author: Justin Bronder <jsbronder@gmail.com>
+Date:   Fri Jan 11 16:07:14 2013 -0500
+
+    rename global variables to be obvious
+
+commit 07beb4baf6af2a45bd382d6b7ba87d8bcbeda7a7
+Author: Justin Bronder <jsbronder@gmail.com>
+Date:   Fri Jan 11 15:44:50 2013 -0500
+
+    sanitize whitespace
+
+commit 7c7fb4f0669d554a5301e70a46ae82e584685aff
+Author: Justin Bronder <jsbronder@gmail.com>
+Date:   Tue Mar 22 10:27:53 2011 -0400
+
+    mpi.eclass:  Improve handling of unclassed dep strings
+    
+    Instead of requiring a list of packages to block when calculating the
+    dep list for an unclassed ebuild, simply inject a dep string.  This
+    will allow the use of USE-conditional blockers.
+
+commit 0319e9cac8325bda7440f0f48eeac30056658b7e
+Author: Nicolas Bigaouette <nbigaouette@gmail.com>
+Date:   Wed Nov 24 22:42:49 2010 -0500
+
+    Typo: 'classs' to 'classes'
+
+commit 7f0ce9ea97ee8f72dc275ebdf3ce7ab44ad6538a
+Author: Justin Bronder <jsbronder@gmail.com>
+Date:   Mon Nov 29 11:51:31 2010 -0500
+
+    Initial import to git.

diff --git a/sys-cluster/empi/files/empi-0.7 b/sys-cluster/empi/files/empi-0.7
deleted file mode 100755
index 97663c6..0000000
--- a/sys-cluster/empi/files/empi-0.7
+++ /dev/null
@@ -1,408 +0,0 @@
-#!/bin/bash
-VERSION=0.3
-
-source /etc/init.d/functions.sh
-
-# class (category)      Implementation we're installing for.  mpi-*
-# targets               Packages to run action on.  When creating, the implementation to use.
-# action                create, add, update, remove.
-
-die(){
-    if [ -n "${1}" ]; then
-        echo; eerror $1; echo
-    fi
-    exit 1
-}
-
-usage(){
-    local rc=${1:-0}
-    shift
-cat <<-EOF
-empi-${VERSION}
-Usage: ${HILITE}empi${NORMAL} ${GOOD}[actions]${NORMAL} ${BRACKET}[options]${NORMAL} 
-
-Actions:
-    ${GOOD}-c, --create${NORMAL} pkgspec        (Re)Initialize setup for mpi class.
-    ${GOOD}-a, --add${NORMAL} pkgspec(s)        Add packages using specified mpi class.
-    ${GOOD}-d, --delete${NORMAL} class          Remove everything related to specified class.
-
-Options:
-    ${GOOD}-C, --class${NORMAL} class           MPI class to use.
-    ${GOOD}-t, --tree${NORMAL} path             Path to portage tree to use ebuilds from.
-    ${GOOD}-o, --overlaydir${NORMAL} path       Directory to use for the empi portage overlay.
-    ${GOOD}    --noemerge${NORMAL}              Do not call emerge, only preform overlay setup.
-
-Notes:
-    ${HILITE}-${NORMAL} pkgspec is specified by a package string.  Without a version, the 
-      portageq best_visible is used.  For example, all of the following
-      are valid: openmpi, sys-cluster/openmpi, =sys-cluster/openmpi-1.2.5.
-    ${HILITE}-${NORMAL} class (-c) is user defined but must be prefixed with "mpi-"
-
-Examples:
-${BRACKET}Create a new class based on openmpi.${NORMAL}
-    empi --create sys-cluster/openmpi --class mpi-ompi
-${BRACKET}Rebuild the above.${NORMAL}
-    emerge mpi-ompi/openmpi
-${BRACKET}Add hpl to mpi-ompi${NORMAL}
-    empi --class mpi-ompi --add sys-cluster/hpl
-EOF
-    [[ -n $* ]] && echo && eerror "Error: $*"
-    exit ${rc}
-}
-
-class_is_valid() {
-    [[ -z ${class} ]] && usage 1 "No class defined."
-    [[ ${class} != mpi-* ]] && usage 1 "Classes must be prefixed with mpi-"
-    [[ ${class//./} != ${class} ]] && usage 1 "Classes cannot contain . (period)"
-}
-
-is_class_category() {
-    local i
-    for i in $(eselect mpi list -p); do
-        [[ ${1} == ${i} ]] && return 0
-    done
-    return 1
-}
-
-split_atom() {
-    local cpv c pf pn pv
-    cpv=$(portageq best_visible / ${1})
-    if [[ -z ${cpv} || ${rc} -ne 0 ]]; then
-        cpv=$(portageq best_visible / =${1})
-        [[ -z ${cpv} || ${rc} -ne 0 ]] && return 1
-    fi
-    c=${cpv%/*}; pf=${cpv#${c}/}; pn=${pf%%-[0-9]*}; pv=${pf#${pn}-}
-    echo "${c} ${pn} ${pv}"
-}
-
-parse_pkgspecs() {
-    local atom i
-    for ((i=0; i<${#targets[@]}; i++)); do
-        atom=($(split_atom ${targets[i]}))
-        if [[ $? -ne 0 ]]; then
-            eerror "Unable to find a unique package or valid version for ${targets[i]}"
-            eerror "Is the package unmasked and unblocked normally?"
-            die ""
-        fi
-        targets[i]=${atom[0]}/${atom[1]}-${atom[2]}
-    done
-}
-
-# handle_etc_portage package_spec
-# parses /etc/portage/package.{keywords,use}.  If ${class}/${pn} is seen, we don't
-# do a thing.  Otherwise copy any lines that have ${cat}/${pn} inserting them again
-# with the new category.  Also keywords virtual/${class} if necessary.
-handle_etc_portage() {
-    local atom=( $(split_atom ${1}) )
-    local ext line gfiles f
-    
-    for ext in "keywords" "use"; do
-        if [ -d /etc/portage/package.${ext} ]; then
-            gfiles="/etc/portage/package.${ext}/*"
-            f=/etc/portage/package.${ext}/${class}
-        else
-            gfiles="/etc/portage/package.${ext}"
-            f=/etc/portage/package.${ext}
-        fi
-
-        if ! grep "^[>=<]*${class}/${atom[1]}" ${gfiles} &>/dev/null; then
-            grep -h "^[>=<]*${atom[0]}/${atom[1]}" ${gfiles} 2>/dev/null \
-                | sed "s,${atom[0]},${class}," \
-            | while read line; do
-               echo "${line}" >> ${f}
-                [[ ${VERBOSE} -ne 0 ]] \
-                    && einfo "Addition to ${f}: ${line}"
-            done
-        elif [[ ${VERBOSE} -ne 0 ]]; then
-            ewarn "Keys for ${class}/${atom[1]} already exist in ${f}.  Will not replicate them."
-        fi
-
-        if ! grep "^${class}/mpi" ${gfiles} &>/dev/null; then
-            grep -h "^virtual/mpi" ${gfiles} 2>/dev/null \
-                | sed "s,/mpi,/${class}," \
-            | while read line; do
-                echo "${line}" >> ${f}
-            [[ ${VERBOSE} -ne 0 ]] \
-                && einfo "Addition to ${f}: ${line}"
-            done 
-        elif [[ ${VERBOSE} -ne 0 ]]; then
-            ewarn "Keys for virtual/${class} already exist.  Will not replicate."
-        fi
-    done
-}
-            
-
-
-get_ebuild_dir() {
-    local d a
-    local want_uses_mpi=${2:-0}
-    local found=0
-
-    a=($(split_atom ${1}))
-    [[ $? -ne 0 ]] && die "Unable to find a unique package or valid version for ${1}."
-    is_class_category ${a[0]} && die "It makes no sense to build a new mpi-class from a current one."
-
-    if [[ -z ${portage_tree} ]]; then
-        for d in $(portageq portdir_overlay) $(portageq portdir); do
-            if [[ ${want_uses_mpi} -ne 0 ]]; then
-                [[ -f "${d}/${a[0]}/${a[1]}/${a[1]}-${a[2]}.ebuild" ]] \
-                    && ebuild_uses_mpi ${d}/${a[0]}/${a[1]} ${a[1]}-${a[2]} \
-                    && found=1
-            else
-                [[ -f "${d}/${a[0]}/${a[1]}/${a[1]}-${a[2]}.ebuild" ]] && found=1
-            fi
-            [[ ${found} -ne 0 ]] && break
-        done
-        if [[ ${found} -ne 0 ]]; then
-            portage_tree=${d}
-        else
-            die "Could not find an ebuild for ${a[0]}/${a[1]}-${a[2]}."
-        fi
-    fi
-    
-    ebuild_dir="${portage_tree}/${a[0]}/${a[1]}"
-}
-
-ebuild_uses_mpi() {
-    grep 'inherit .*mpi' "${1}/${2##*/}.ebuild" &>/dev/null
-}
-
-link_ebuild_dir() {
-    ln -snf "${ebuild_dir}" "${MPI_PORTDIR}"/${class}/${ebuild_dir##*/} \
-        || die "Failed to link ${ebuild_dir} to ${MPI_PORTDIR}/${class}/${ebuild_dir##*/}"
-}
-
-# TODO:  Needs to be called after get_ebuild_dir which sets $portage_tree
-create_virtual_mpi() {
-    local d_dir="${MPI_PORTDIR}"/virtual/${class}
-    local version d_file mpi_ebuild s_dir
-
-    # Try to get virtual/mpi from the same tree as the other ebuilds.
-    # Otherwise we fall back and get it from anywhere.
-    version=$(portageq best_visible / ${_virtual_mpi_version})
-    version=${version#virtual/mpi-}
-    
-    for s_dir in ${portage_tree} $(portageq portdir_overlay) $(portageq portdir); do
-        mpi_ebuild="${s_dir}"/virtual/mpi/mpi-${version}.ebuild
-        [ -f "${mpi_ebuild}" ] && break;
-    done 
- 
-    [[ ! -f "${mpi_ebuild}" ]] \
-        && die "Cannot satisfy ${_virtual_mpi_version}"
-
-    d_file=${class}-${version}.ebuild
-
-    mkdir -p "${d_dir}" || die "Could not create ${d_dir}"
-
-    cp "${mpi_ebuild}" "${d_dir}"/${d_file} \
-        || die "Could not copy ${mpi_ebuild} to ${d_dir}/${d_file}"
-
-    sed -i "s,sys-cluster/,${class}/," ${d_dir}/${d_file}
-    ebuild ${d_dir}/${d_file} digest > /dev/null \
-        || die "Failed to digest ${d_dir}/${d_file}"
-}
-
-
-
-do_emerge() {
-    [[ ${DO_EMERGE} -eq 0 ]] && return 0
-    einfo "Emerging $*"
-    emerge ${emerge_opts} $* || die "emerge failed!"
-}
-
-# We should have only one target here.
-create_class() {
-    local mpi_class_pkg d mpi_class_pn
-
-    [[ ${#targets[@]} -ne 1 ]] && die "Can only create one class at a time."
-
-    for d in $(eselect mpi list -p); do
-        [ "${d}" == "${class}" ] && die "${class} has already been created."
-    done
-     
-    # Prevent laziness
-    [[ ${targets[0]} == ${targets[0]##*/} ]] \
-        && targets[0]="sys-cluster/${targets[0]}"
- 
-    parse_pkgspecs 
-    get_ebuild_dir ${targets[0]} 1
-    create_virtual_mpi
-    mpi_class_pn=${ebuild_dir##*/}
-    mpi_class_pkg=${targets[0]}
-    handle_etc_portage ${targets[0]}
-    targets[0]="=${class}/${targets[0]##*/}"
-
-    # Refuse to break systems.  If there is already a class 
-    # installed in that directory, we're not going to add another one as
-    # the eclass doesn't fix one problem just to introduce a bigger one.
-    for d in $(find ${MPI_PORTDIR}/${class} -maxdepth 1 -mindepth 1 -type l 2>/dev/null);do
-        d=${d##*/}
-        [[ ${d} == ${mpi_class_pn} ]] && continue
-        for i in ${MPI_ALL_IMPS}; do
-            [[ ${i} == ${d} ]] \
-                && die "${class} already has MPI implementation ${d}, refusing to add ${mpi_class_pn}"
-        done
-    done
-
-    if [[ -d "${MPI_PORTDIR}"/${class} ]]; then
-        [[ ${VERBOSE} -ne 0 ]] && ewarn "Overlay for ${class} has already been created."
-    else
-        mkdir -p ${MPI_PORTDIR}/${class}
-        link_ebuild_dir
-    fi
-    if ! grep "^${class}$" /etc/portage/categories &>/dev/null; then
-        echo "${class}" >> /etc/portage/categories
-    fi
-
-
-cat << EOF
-Creating ${HILITE}${class}${NORMAL}
-    Class:                  ${GOOD}${class}${NORMAL}
-    MPI Implementation:     ${GOOD}${mpi_class_pkg}${NORMAL}
-    Source:                 ${GOOD}${ebuild_dir}${NORMAL}
-    Destination:            ${GOOD}${MPI_PORTDIR}/${class}${NORMAL}
-EOF
-    do_emerge ${targets[0]}
-}
-
-
-add_packages(){
-    local i j deps
-
-    [[ -d "${MPI_PORTDIR}"/${class} ]] || die "Class ${class} has not been created yet."
-    [[ ${#targets[@]} -lt 1 ]] && die "You need to specify at least one package"
-    
-    parse_pkgspecs
-    for ((i=0;i<${#targets[@]};i++)); do
-        get_ebuild_dir ${targets[i]}
-        create_virtual_mpi
-        if ebuild_uses_mpi ${ebuild_dir} ${targets[i]}; then
-            link_ebuild_dir
-            handle_etc_portage ${targets[i]}
-            targets[i]="=${class}/${targets[i]##*/}"
-        else
-            targets[i]="=${targets[i]}"
-        fi
-
-        # I don't know about this, but do you have a better idea?
-        deps="$(emerge --color=n --onlydeps -p --quiet ${targets[i]})"
-        if [[ $? -ne 0 ]]; then
-            emerge --onlydeps -p ${targets[i]}
-            die "Unable to calculate deps for ${targets[i]}"
-        fi
-        deps=( $(echo ${deps} | sed -e 's:\[[a-z]* [A-Z] \] :=:g') )
-        for ((j=0;j<${#deps[@]};j++)); do
-            get_ebuild_dir ${deps[j]}
-            if ebuild_uses_mpi ${deps[i]}; then
-                link_ebuild_dir
-            fi
-        done
-    done
-cat << EOF
-Adding packages to ${HILIGHT}${class}${NORMAL}
-    Packages:       ${GOOD}${targets[@]}${NORMAL}
-EOF
-    do_emerge ${targets[@]}
-}
-
-
-delete_class() {
-    local pkgs=( $(ls /var/db/pkg/${class}/ 2>/dev/null) )
-    local ext d i rc
-    [[ -d "${MPI_PORTDIR}"/${class} ]] || die "Class ${class} has not been created yet."
-    rc=0
-   
-    for (( i=0; i<${#pkgs[@]}; i++)); do
-        pkgs[i]="=${class}/${pkgs[i]}"
-    done
-
-    if [[ ${#pkgs[@]} -gt 0 ]] && ! emerge -C ${emerge_opts/-u/} ${pkgs[@]}; then
-        die "Failed to unmerge ${pkgs[@]}"
-    fi
-
-    for ext in "keywords" "use"; do
-        if [ -d /etc/portage/package.${ext} ]; then
-            rm /etc/portage/package.${ext}/${class} &>/dev/null
-            rc=$((rc+$?))
-        elif [ -f /etc/portage/package.${ext} ]; then
-            sed -i -e "/^${class}\//d" /etc/portage/package.${ext}
-            rc=$((rc+$?))
-        fi
-    done
-
-    [ ! -f /etc/portage/categories ] || sed -i -e "/^${class}$/d" /etc/portage/categories
-    rc=$((rc+$?))
-   
-   for d in $(ls "${MPI_PORTDIR}"/${class}/ 2>/dev/null); do
-        rm "${MPI_PORTDIR}"/${class}/${d}
-        rc=$((rc+$?))
-    done
-
-    for d in "${MPI_PORTDIR}/${class}" /var/db/pkg/${class}; do
-        [ ! -d "${d}" ] || rmdir "${d}"
-        rc=$((rc+$?))
-    done
-
-    [[ ${rc} -ne 0 ]] \
-        && ewarn "Errors were encountered during delete_class()"
-    return ${rc}
-}
-
-# Internal variables.
-_virtual_mpi_version=">=virtual/mpi-2.0"
-
-[[ ${UID} -ne 0 ]] && die "You must be root."
-DO_EMERGE=1
-VERBOSE=0
-targets=""
-emerge_opts="-u"  # Packages can be recompiled by hand if necessary.
-portage_tree=""
-action=""
-
-while [[ $# -gt 0 ]]; do
-    case $1 in
-        -h|--help)
-            usage;;
-        -c|--create)
-            action="${action}create";;
-        -a|--add)
-            action="${action}add";;
-        -d|--delete)
-            action="${action}delete"
-            shift; class=${1};;
-        -C|--class)
-            shift; class=${1};;
-        -t|--tree)
-            shift; portage_tree=${1};;
-        -o|--overlaydir)
-            shift; MPI_PORTDIR=${1};;
-        -v|--verbose)
-            VERBOSE=1;;
-        --noemerge)
-            DO_EMERGE=0;;
-        -*)
-            emerge_opts="${emerge_opts} ${1}";;
-        *)
-            targets=( $(echo ${targets[@]}) ${1} );;
-    esac
-    shift
-done
-
-if [ -z "${MPI_PORTDIR}" ]; then
-    MPI_PORTDIR="$(portageq portdir_overlay)"
-    MPI_PORTDIR="${MPI_PORTDIR%% *}"
-fi
-
-if [ ! -d "${MPI_PORTDIR}" ]; then
-    mkdir -p "${MPI_PORTDIR}" || die "Failed to mkdir ${MPI_PORTDIR}"
-fi
-
-export PORTDIR_OVERLAY="${MPI_PORTDIR} $(portageq portdir_overlay)"
-export PKGDIR="$(portageq envvar PKGDIR)/mpi/${class}"
-
-[[ -z ${action} ]] && usage 1 "No action defined."
-class_is_valid
-
-[[ ${action} == *create* ]] && create_class
-[[ ${action} == *add* ]]    && add_packages
-[[ ${action} == *delete* ]] && delete_class

diff --git a/sys-cluster/empi/files/empi-0.8 b/sys-cluster/empi/files/empi-0.8
new file mode 100755
index 0000000..a1e6009
--- /dev/null
+++ b/sys-cluster/empi/files/empi-0.8
@@ -0,0 +1,492 @@
+#!/bin/bash
+VERSION=0.8
+
+source /etc/init.d/functions.sh
+
+die(){
+    if [ -n "${1}" ]; then
+        echo; eerror $1; echo
+    fi
+    exit 1
+}
+
+has() {
+    [[ " ${@:2} " == *" $1 "* ]]
+}
+
+usage(){
+    local rc=${1:-0}
+    shift
+cat <<-EOF
+empi-${VERSION}
+Usage: ${HILITE}empi${NORMAL} ${GOOD}[actions]${NORMAL} ${BRACKET}[options]${NORMAL}
+
+Actions:
+    ${GOOD}-c, --create${NORMAL} pkgspec        (Re)Initialize setup for mpi class.
+    ${GOOD}-a, --add${NORMAL} pkgspec(s)        Add packages using specified mpi class.
+    ${GOOD}-d, --delete${NORMAL} class          Remove everything related to specified class.
+
+Options:
+    ${GOOD}-C, --class${NORMAL} class           MPI class to use.
+    ${GOOD}-t, --tree${NORMAL} path             Path to portage tree to use ebuilds from.
+    ${GOOD}-o, --overlaydir${NORMAL} path       Directory to use for the empi portage overlay.
+                                Defaults to MPI_OVERLAY_DIR [${DEFAULT_MPI_OVERLAY_DIR}]
+    ${GOOD}    --noemerge${NORMAL}              Do not call emerge, only preform overlay setup.
+
+Notes:
+    ${HILITE}-${NORMAL} pkgspec is specified by a package string.  Without a version, the
+      portageq best_visible is used.  For example, all of the following
+      are valid: openmpi, sys-cluster/openmpi, =sys-cluster/openmpi-1.2.5.
+    ${HILITE}-${NORMAL} class (-c) is user defined but must be prefixed with "mpi-"
+
+Examples:
+${BRACKET}Create a new class based on openmpi.${NORMAL}
+    empi --create sys-cluster/openmpi --class mpi-ompi
+${BRACKET}Rebuild the above.${NORMAL}
+    emerge mpi-ompi/openmpi
+${BRACKET}Add hpl to mpi-ompi${NORMAL}
+    empi --class mpi-ompi --add sys-cluster/hpl
+EOF
+    [[ -n $* ]] && echo && eerror "Error: $*"
+    exit ${rc}
+}
+
+class_is_valid() {
+    [[ -z ${CLASS} ]] && usage 1 "No class defined."
+    [[ ${CLASS} != mpi-* ]] && usage 1 "Classes must be prefixed with mpi-"
+    [[ ${CLASS//./} != ${CLASS} ]] && usage 1 "Classes cannot contain . (period)"
+}
+
+is_class_category() {
+    local i
+    for i in $(eselect mpi list -p); do
+        [[ ${1} == ${i} ]] && return 0
+    done
+    return 1
+}
+
+split_atom() {
+    local cpv c pf pn pv
+    cpv=$(portageq best_visible / ${1})
+    if [[ -z ${cpv} || ${rc} -ne 0 ]]; then
+        cpv=$(portageq best_visible / =${1})
+        [[ -z ${cpv} || ${rc} -ne 0 ]] && return 1
+    fi
+    c=${cpv%/*}; pf=${cpv#${c}/}; pn=${pf%%-[0-9]*}; pv=${pf#${pn}-}
+    echo "${c} ${pn} ${pv}"
+}
+
+parse_pkgspecs() {
+    local atom i
+    for ((i=0; i<${#TARGETS[@]}; i++)); do
+        atom=($(split_atom ${TARGETS[i]}))
+        if [[ $? -ne 0 ]]; then
+            eerror "Unable to find a unique package or valid version for ${TARGETS[i]}"
+            eerror "Is the package unmasked and unblocked normally?"
+            die ""
+        fi
+        TARGETS[i]=${atom[0]}/${atom[1]}-${atom[2]}
+    done
+}
+
+# handle_etc_portage package_spec
+# parses /etc/portage/package.{keywords,use}.  If ${CLASS}/${pn} is seen, we don't
+# do a thing.  Otherwise copy any lines that have ${cat}/${pn} inserting them again
+# with the new category.  Also keywords virtual/${CLASS} if necessary.
+handle_etc_portage() {
+    local atom=( $(split_atom ${1}) )
+    local ext line gfiles f
+
+    for ext in "keywords" "use"; do
+        if [ -d /etc/portage/package.${ext} ]; then
+            gfiles="/etc/portage/package.${ext}/*"
+            f=/etc/portage/package.${ext}/${CLASS}
+        else
+            gfiles="/etc/portage/package.${ext}"
+            f=/etc/portage/package.${ext}
+        fi
+
+        if ! grep "^[>=<]*${CLASS}/${atom[1]}" ${gfiles} &>/dev/null; then
+            grep -h "^[>=<]*${atom[0]}/${atom[1]}" ${gfiles} 2>/dev/null \
+                | sed "s,${atom[0]},${CLASS}," \
+            | while read line; do
+               echo "${line}" >> ${f}
+                [[ ${VERBOSE} -ne 0 ]] \
+                    && einfo "Addition to ${f}: ${line}"
+            done
+        elif [[ ${VERBOSE} -ne 0 ]]; then
+            ewarn "Keys for ${CLASS}/${atom[1]} already exist in ${f}.  Will not replicate them."
+        fi
+
+        if ! grep "^${CLASS}/mpi" ${gfiles} &>/dev/null; then
+            grep -h "^virtual/mpi" ${gfiles} 2>/dev/null \
+                | sed "s,/mpi,/${CLASS}," \
+            | while read line; do
+                echo "${line}" >> ${f}
+            [[ ${VERBOSE} -ne 0 ]] \
+                && einfo "Addition to ${f}: ${line}"
+            done
+        elif [[ ${VERBOSE} -ne 0 ]]; then
+            ewarn "Keys for virtual/${CLASS} already exist.  Will not replicate."
+        fi
+    done
+}
+
+
+
+get_ebuild_dir() {
+    local d a
+    local want_uses_mpi=${2:-0}
+    local found=0
+
+    a=($(split_atom ${1}))
+    [[ $? -ne 0 ]] && die "Unable to find a unique package or valid version for ${1}."
+    is_class_category ${a[0]} && die "It makes no sense to build a new mpi-class from a current one."
+
+    if [[ -z ${PORTAGE_TREE} ]]; then
+        for d in $(portageq portdir_overlay) $(portageq portdir); do
+            if [[ ${want_uses_mpi} -ne 0 ]]; then
+                [[ -f "${d}/${a[0]}/${a[1]}/${a[1]}-${a[2]}.ebuild" ]] \
+                    && ebuild_uses_mpi ${d}/${a[0]}/${a[1]} ${a[1]}-${a[2]} \
+                    && found=1
+            else
+                [[ -f "${d}/${a[0]}/${a[1]}/${a[1]}-${a[2]}.ebuild" ]] && found=1
+            fi
+            [[ ${found} -ne 0 ]] && break
+        done
+        if [[ ${found} -ne 0 ]]; then
+            PORTAGE_TREE=${d}
+        else
+            die "Could not find an ebuild for ${a[0]}/${a[1]}-${a[2]}."
+        fi
+    fi
+
+    EBUILD_DIR="${PORTAGE_TREE}/${a[0]}/${a[1]}"
+}
+
+ebuild_uses_mpi() {
+    grep 'inherit .*mpi' "${1}/${2##*/}.ebuild" &>/dev/null
+}
+
+link_ebuild_dir() {
+    ln -snf "${EBUILD_DIR}" "${MPI_OVERLAY_DIR}"/${CLASS}/${EBUILD_DIR##*/} \
+        || die "Failed to link ${EBUILD_DIR} to ${MPI_OVERLAY_DIR}/${CLASS}/${EBUILD_DIR##*/}"
+}
+
+# TODO:  Needs to be called after get_ebuild_dir which sets $PORTAGE_TREE
+create_virtual_mpi() {
+    local d_dir="${MPI_OVERLAY_DIR}"/virtual/${CLASS}
+    local version d_file mpi_ebuild s_dir
+
+    # Try to get virtual/mpi from the same tree as the other ebuilds.
+    # Otherwise we fall back and get it from anywhere.
+    version=$(portageq best_visible / ${__VIRTUAL_MPI_VERSION})
+    version=${version#virtual/mpi-}
+
+    for s_dir in ${PORTAGE_TREE} $(portageq portdir_overlay) $(portageq portdir); do
+        mpi_ebuild="${s_dir}"/virtual/mpi/mpi-${version}.ebuild
+        [ -f "${mpi_ebuild}" ] && break;
+    done
+
+    [[ ! -f "${mpi_ebuild}" ]] \
+        && die "Cannot satisfy ${__VIRTUAL_MPI_VERSION}"
+
+    d_file=${CLASS}-${version}.ebuild
+
+    mkdir -p "${d_dir}" || die "Could not create ${d_dir}"
+
+    cp "${mpi_ebuild}" "${d_dir}"/${d_file} \
+        || die "Could not copy ${mpi_ebuild} to ${d_dir}/${d_file}"
+
+    sed -i "s,sys-cluster/,${CLASS}/," ${d_dir}/${d_file}
+    ebuild ${d_dir}/${d_file} digest > /dev/null \
+        || die "Failed to digest ${d_dir}/${d_file}"
+}
+
+set_metadata() {
+    # Snagged from crossdev:  http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git
+    # 3cab8c394fec72f2353e209d98429dd1aaf1d337
+
+    # for people who have eclasses spread over their overlays, generate
+    # a layout.conf file so portage can find them.  this is a crapshoot
+    # when diff overlay sources have conflicting eclasses, but nothing
+    # we really can do about that.
+    local autogen_tag="# Autogenerated and managed by empi"
+    local meta=${MPI_OVERLAY_DIR}/metadata
+    local layout=${meta}/layout.conf
+    local d name masters thin_manifests="false"
+
+    mkdir -p "${meta}"
+    if [[ -e ${layout} ]] ; then
+        if ! grep -qs "^${autogen_tag}" "${layout}" ; then
+            einfo "leaving metadata/layout.conf alone in ${MPI_OVERLAY_DIR}"
+            return
+        fi
+
+        # We are managing it, so blow it away
+        rm -f "${layout}"
+    fi
+
+    # build up a list of possible repos where we can pull from
+    for d in ${PORTDIR_OVERLAY} "${PORTDIR}" ; do
+        [[ -z ${d} ]] && continue
+
+        name=
+        if [[ -e ${d}/profiles/repo_name ]] ; then
+            name=$(<"${d}"/profiles/repo_name)
+        fi
+        [[ -z ${name} ]] && continue
+
+        # If this repo has an eclass dir, mark it as a master.
+        # Note: portage reads the masters list in reverse order,
+        #       so we have to prepare it the same way.
+        if [[ -d ${d}/eclass ]] ; then
+            has ${name} ${masters} || masters="${name} ${masters}"
+        fi
+
+        # If one of the overlays uses thin manifests, then turn it on
+        if [[ -z ${this_manifests} ]] && has ${name} ${masters} && \
+            sed \
+                -e 's:#.*::' \
+                -e 's:^[[:space:]]*::' \
+                -e 's:[[:space:]]*$::' \
+                -e 's:[[:space:]]*=[[:space:]]*:=:' \
+                "${d}/metadata/layout.conf" 2>/dev/null | \
+            gawk -F= '{
+                    if ($1 == "use-manifests") um = $2
+                    if ($1 == "thin-manifests") tm = $2
+                }
+                END {
+                    exit !(um != "false" && tm == "true")
+                }'
+        then
+            einfo "enabling thin-manifests due to ${d}"
+            this_manifests="use-manifests = true\nthin-manifests = true"
+        fi
+    done
+
+    # write out that layout.conf!
+    cat <<-EOF > "${layout}"
+	${autogen_tag}
+	# Delete the above line if you want to manage this file yourself
+	masters = ${masters% }
+	$(printf '%b' "${this_manifests}")
+	EOF
+}
+
+do_emerge() {
+    [[ ${DO_EMERGE} -eq 0 ]] && return 0
+    einfo "Emerging $*"
+    emerge ${EMERGE_OPTS} $* || die "emerge failed!"
+}
+
+# We should have only one target here.
+create_class() {
+    local mpi_class_pkg d mpi_class_pn
+
+    [[ ${#TARGETS[@]} -ne 1 ]] && die "Can only create one class at a time."
+
+    for d in $(eselect mpi list -p); do
+        [ "${d}" == "${CLASS}" ] && die "${CLASS} has already been created."
+    done
+
+    # Prevent laziness
+    [[ ${TARGETS[0]} == ${TARGETS[0]##*/} ]] \
+        && TARGETS[0]="sys-cluster/${TARGETS[0]}"
+
+    parse_pkgspecs
+    get_ebuild_dir ${TARGETS[0]} 1
+    create_virtual_mpi
+    mpi_class_pn=${EBUILD_DIR##*/}
+    mpi_class_pkg=${TARGETS[0]}
+    handle_etc_portage ${TARGETS[0]}
+    TARGETS[0]="=${CLASS}/${TARGETS[0]##*/}"
+
+    # Refuse to break systems.  If there is already a class
+    # installed in that directory, we're not going to add another one as
+    # the eclass doesn't fix one problem just to introduce a bigger one.
+    for d in $(find ${MPI_OVERLAY_DIR}/${CLASS} -maxdepth 1 -mindepth 1 -type l 2>/dev/null);do
+        d=${d##*/}
+        [[ ${d} == ${mpi_class_pn} ]] && continue
+        for i in ${MPI_ALL_IMPS}; do
+            [[ ${i} == ${d} ]] \
+                && die "${CLASS} already has MPI implementation ${d}, refusing to add ${mpi_class_pn}"
+        done
+    done
+
+    if [[ -d "${MPI_OVERLAY_DIR}"/${CLASS} ]]; then
+        [[ ${VERBOSE} -ne 0 ]] && ewarn "Overlay for ${CLASS} has already been created."
+    else
+        mkdir -p ${MPI_OVERLAY_DIR}/${CLASS}
+        link_ebuild_dir
+		set_metadata
+    fi
+    if ! grep "^${CLASS}$" /etc/portage/categories &>/dev/null; then
+        echo "${CLASS}" >> /etc/portage/categories
+    fi
+
+
+cat << EOF
+Creating ${HILITE}${CLASS}${NORMAL}
+    Class:                  ${GOOD}${CLASS}${NORMAL}
+    MPI Implementation:     ${GOOD}${mpi_class_pkg}${NORMAL}
+    Source:                 ${GOOD}${EBUILD_DIR}${NORMAL}
+    Destination:            ${GOOD}${MPI_OVERLAY_DIR}/${CLASS}${NORMAL}
+EOF
+    do_emerge ${TARGETS[0]}
+}
+
+
+add_packages(){
+    local i j deps
+
+    [[ -d "${MPI_OVERLAY_DIR}"/${CLASS} ]] || die "Class ${CLASS} has not been created yet."
+    [[ ${#TARGETS[@]} -lt 1 ]] && die "You need to specify at least one package"
+
+    parse_pkgspecs
+    for ((i=0;i<${#TARGETS[@]};i++)); do
+        get_ebuild_dir ${TARGETS[i]}
+        create_virtual_mpi
+        if ebuild_uses_mpi ${EBUILD_DIR} ${TARGETS[i]}; then
+            link_ebuild_dir
+            handle_etc_portage ${TARGETS[i]}
+            TARGETS[i]="=${CLASS}/${TARGETS[i]##*/}"
+        else
+            TARGETS[i]="=${TARGETS[i]}"
+        fi
+
+        # I don't know about this, but do you have a better idea?
+        deps="$(emerge --color=n --onlydeps -p --quiet ${TARGETS[i]})"
+        if [[ $? -ne 0 ]]; then
+            emerge --onlydeps -p ${TARGETS[i]}
+            die "Unable to calculate deps for ${TARGETS[i]}"
+        fi
+        deps=( $(echo ${deps} | sed -e 's:\[[a-z]* [A-Z] \] :=:g') )
+        for ((j=0;j<${#deps[@]};j++)); do
+            get_ebuild_dir ${deps[j]}
+            if ebuild_uses_mpi ${deps[i]}; then
+                link_ebuild_dir
+            fi
+        done
+    done
+cat << EOF
+Adding packages to ${HILIGHT}${CLASS}${NORMAL}
+    Packages:       ${GOOD}${TARGETS[@]}${NORMAL}
+EOF
+    do_emerge ${TARGETS[@]}
+}
+
+
+delete_class() {
+    local pkgs=( $(ls /var/db/pkg/${CLASS}/ 2>/dev/null) )
+    local ext d i rc
+    [[ -d "${MPI_OVERLAY_DIR}"/${CLASS} ]] || die "Class ${CLASS} has not been created yet."
+    rc=0
+
+    for (( i=0; i<${#pkgs[@]}; i++)); do
+        pkgs[i]="=${CLASS}/${pkgs[i]}"
+    done
+
+    if [[ ${#pkgs[@]} -gt 0 ]] && ! emerge -C ${EMERGE_OPTS/-u/} ${pkgs[@]}; then
+        die "Failed to unmerge ${pkgs[@]}"
+    fi
+
+    for ext in "keywords" "use"; do
+        if [ -d /etc/portage/package.${ext} ]; then
+            rm /etc/portage/package.${ext}/${CLASS} &>/dev/null
+            rc=$((rc+$?))
+        elif [ -f /etc/portage/package.${ext} ]; then
+            sed -i -e "/^${CLASS}\//d" /etc/portage/package.${ext}
+            rc=$((rc+$?))
+        fi
+    done
+
+    [ ! -f /etc/portage/categories ] || sed -i -e "/^${CLASS}$/d" /etc/portage/categories
+    rc=$((rc+$?))
+
+   for d in $(ls "${MPI_OVERLAY_DIR}"/${CLASS}/ 2>/dev/null); do
+        rm "${MPI_OVERLAY_DIR}"/${CLASS}/${d}
+        rc=$((rc+$?))
+    done
+
+    for d in "${MPI_OVERLAY_DIR}/${CLASS}" /var/db/pkg/${CLASS}; do
+        [ ! -d "${d}" ] || rmdir "${d}"
+        rc=$((rc+$?))
+    done
+
+    [[ ${rc} -ne 0 ]] \
+        && ewarn "Errors were encountered during delete_class()"
+    return ${rc}
+}
+
+# Internal variables.
+__VIRTUAL_MPI_VERSION=">=virtual/mpi-2.0"
+
+ACTION=""
+CLASS=""
+PORTAGE_TREE=""
+MPI_OVERLAY_DIR=""
+VERBOSE=0
+DO_EMERGE=1
+EMERGE_OPTS="-u"  # Packages can be recompiled by hand if necessary.
+TARGETS=""
+DEFAULT_MPI_OVERLAY_DIR=/var/cache/overlays/mpi
+
+PORTDIR_OVERLAY=""
+PKGDIR=""
+
+EBUILD_DIR=""
+
+while [[ $# -gt 0 ]]; do
+    case $1 in
+        -h|--help)
+            usage;;
+        -c|--create)
+            ACTION="${ACTION}create";;
+        -a|--add)
+            ACTION="${ACTION}add";;
+        -d|--delete)
+            ACTION="${ACTION}delete"
+            shift; CLASS=${1};;
+        -C|--class)
+            shift; CLASS=${1};;
+        -t|--tree)
+            shift; PORTAGE_TREE=${1};;
+        -o|--overlaydir)
+            shift; MPI_OVERLAY_DIR=${1};;
+        -v|--verbose)
+            VERBOSE=1;;
+        --noemerge)
+            DO_EMERGE=0;;
+        -*)
+            EMERGE_OPTS="${EMERGE_OPTS} ${1}";;
+        *)
+            TARGETS=( $(echo ${TARGETS[@]}) ${1} );;
+    esac
+    shift
+done
+
+[[ ${UID} -ne 0 ]] && die "You must be root to preform any actions."
+
+: ${MPI_OVERLAY_DIR:=$(portageq envvar MPI_OVERLAY_DIR)}
+if [ -z "${MPI_OVERLAY_DIR}" ]; then
+    MPI_OVERLAY_DIR=${DEFAULT_MPI_OVERLAY_DIR}
+    einfo "MPI_OVERLAY_DIR not set, defaulting to ${MPI_OVERLAY_DIR} and updating /etc/make.conf"
+    echo "MPI_OVERLAY_DIR=\"${MPI_OVERLAY_DIR}\"" >> /etc/make.conf
+fi
+
+if [ ! -d "${MPI_OVERLAY_DIR}" ]; then
+    mkdir -p "${MPI_OVERLAY_DIR}" || die "Failed to mkdir ${MPI_OVERLAY_DIR}"
+fi
+
+export PORTDIR_OVERLAY="${MPI_OVERLAY_DIR} $(portageq portdir_overlay)"
+export PKGDIR="$(portageq envvar PKGDIR)/mpi/${CLASS}"
+export PORTDIR="$(portageq envvar PORTDIR)"
+
+[[ -z ${ACTION} ]] && usage 1 "No action defined."
+class_is_valid
+
+set_metadata
+[[ ${ACTION} == *create* ]] && create_class
+[[ ${ACTION} == *add* ]]    && add_packages
+[[ ${ACTION} == *delete* ]] && delete_class

diff --git a/sys-cluster/empi/files/eselect.mpi-0.7 b/sys-cluster/empi/files/eselect.mpi-0.8
similarity index 99%
rename from sys-cluster/empi/files/eselect.mpi-0.7
rename to sys-cluster/empi/files/eselect.mpi-0.8
index 6aa6d65..e1f0902 100644
--- a/sys-cluster/empi/files/eselect.mpi-0.7
+++ b/sys-cluster/empi/files/eselect.mpi-0.8
@@ -1,4 +1,4 @@
-# Copyright 1999-2005 Gentoo Foundation
+# Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id: $
 


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] proj/sci:master commit in: sys-cluster/empi/, sys-cluster/empi/files/
@ 2013-07-02  0:09 Justin Bronder
  0 siblings, 0 replies; 5+ messages in thread
From: Justin Bronder @ 2013-07-02  0:09 UTC (permalink / raw
  To: gentoo-commits

commit:     a799287fec5bd24967e2db89b4657cd297a5034b
Author:     Justin Bronder <jbronder <AT> gentoo <DOT> org>
AuthorDate: Tue Jul  2 00:08:57 2013 +0000
Commit:     Justin Bronder <jsbronder <AT> gentoo <DOT> org>
CommitDate: Tue Jul  2 00:08:57 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=a799287f

bump

Package-Manager: portage-2.1.12.2
RepoMan-Options: --force

---
 sys-cluster/empi/ChangeLog                            | 6 ++++++
 sys-cluster/empi/{empi-0.8.ebuild => empi-0.9.ebuild} | 0
 sys-cluster/empi/files/{empi-0.8 => empi-0.9}         | 4 ++--
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/sys-cluster/empi/ChangeLog b/sys-cluster/empi/ChangeLog
index b69a7df..607ee1e 100644
--- a/sys-cluster/empi/ChangeLog
+++ b/sys-cluster/empi/ChangeLog
@@ -2,6 +2,12 @@
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
 # $Header: $
 
+*empi-0.9 (02 Jul 2013)
+
+  02 Jul 2013; Justin Bronder <jsbronder@gentoo.org> -empi-0.8.ebuild,
+  +empi-0.9.ebuild, -files/empi-0.8, +files/empi-0.9:
+  bump
+
 *empi-0.8 (22 Feb 2013)
 
   22 Feb 2013; Justin Bronder <jsbronder@gentoo.org> -files/ChangeLog-0.7,

diff --git a/sys-cluster/empi/empi-0.8.ebuild b/sys-cluster/empi/empi-0.9.ebuild
similarity index 100%
rename from sys-cluster/empi/empi-0.8.ebuild
rename to sys-cluster/empi/empi-0.9.ebuild

diff --git a/sys-cluster/empi/files/empi-0.8 b/sys-cluster/empi/files/empi-0.9
similarity index 99%
rename from sys-cluster/empi/files/empi-0.8
rename to sys-cluster/empi/files/empi-0.9
index a1e6009..8a9523c 100755
--- a/sys-cluster/empi/files/empi-0.8
+++ b/sys-cluster/empi/files/empi-0.9
@@ -1,5 +1,5 @@
 #!/bin/bash
-VERSION=0.8
+VERSION=0.9
 
 source /etc/init.d/functions.sh
 
@@ -356,7 +356,7 @@ add_packages(){
         fi
 
         # I don't know about this, but do you have a better idea?
-        deps="$(emerge --color=n --onlydeps -p --quiet ${TARGETS[i]})"
+        deps="$(emerge --color=n --onlydeps -p --quiet ${TARGETS[i]} | grep '^\[')"
         if [[ $? -ne 0 ]]; then
             emerge --onlydeps -p ${TARGETS[i]}
             die "Unable to calculate deps for ${TARGETS[i]}"


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] proj/sci:master commit in: sys-cluster/empi/, sys-cluster/empi/files/
@ 2013-07-02 17:08 Nicolas Bock
  0 siblings, 0 replies; 5+ messages in thread
From: Nicolas Bock @ 2013-07-02 17:08 UTC (permalink / raw
  To: gentoo-commits

commit:     ab17ed6576da0ffd5e27f0d86fdc504e81813721
Author:     Justin Lecher <jlec <AT> gentoo <DOT> org>
AuthorDate: Tue Jul  2 07:42:51 2013 +0000
Commit:     Nicolas Bock <nicolasbock <AT> gmail <DOT> com>
CommitDate: Tue Jul  2 07:42:51 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=ab17ed65

sys-cluster/empi: Fix version Bump

Package-Manager: portage-2.2.0_alpha186

---
 sys-cluster/empi/ChangeLog                                  | 5 +++++
 sys-cluster/empi/empi-0.9.ebuild                            | 2 ++
 sys-cluster/empi/files/{ChangeLog-0.8 => ChangeLog-0.9}     | 0
 sys-cluster/empi/files/{eselect.mpi-0.8 => eselect.mpi-0.9} | 0
 4 files changed, 7 insertions(+)

diff --git a/sys-cluster/empi/ChangeLog b/sys-cluster/empi/ChangeLog
index 9ed4bd2..067558d 100644
--- a/sys-cluster/empi/ChangeLog
+++ b/sys-cluster/empi/ChangeLog
@@ -2,6 +2,11 @@
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
 # $Header: $
 
+  02 Jul 2013; Justin Lecher <jlec@gentoo.org> empi-0.9.ebuild,
+  -files/ChangeLog-0.8, -files/eselect.mpi-0.8, +files/ChangeLog-0.9,
+  +files/eselect.mpi-0.9:
+  Fix version Bump
+
   02 Jul 2013; Justin Lecher <jlec@gentoo.org> empi-0.9.ebuild, metadata.xml:
   Bump EAPI, fix DESCRIPTION
 

diff --git a/sys-cluster/empi/empi-0.9.ebuild b/sys-cluster/empi/empi-0.9.ebuild
index a1b21f4..a78565a 100644
--- a/sys-cluster/empi/empi-0.9.ebuild
+++ b/sys-cluster/empi/empi-0.9.ebuild
@@ -17,6 +17,8 @@ IUSE=""
 DEPEND="app-admin/eselect"
 RDEPEND="${DEPEND}"
 
+S="${WORKDIR}"
+
 src_install() {
 	newbin "${FILESDIR}"/${P} ${PN}
 	dodoc "${FILESDIR}"/README.txt

diff --git a/sys-cluster/empi/files/ChangeLog-0.8 b/sys-cluster/empi/files/ChangeLog-0.9
similarity index 100%
rename from sys-cluster/empi/files/ChangeLog-0.8
rename to sys-cluster/empi/files/ChangeLog-0.9

diff --git a/sys-cluster/empi/files/eselect.mpi-0.8 b/sys-cluster/empi/files/eselect.mpi-0.9
similarity index 100%
rename from sys-cluster/empi/files/eselect.mpi-0.8
rename to sys-cluster/empi/files/eselect.mpi-0.9


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] proj/sci:master commit in: sys-cluster/empi/, sys-cluster/empi/files/
@ 2013-07-11  0:32 Justin Bronder
  0 siblings, 0 replies; 5+ messages in thread
From: Justin Bronder @ 2013-07-11  0:32 UTC (permalink / raw
  To: gentoo-commits

commit:     b28fbde3a4e784b4d5d182cc49daa2379c7f4194
Author:     Justin Bronder <jbronder <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 11 00:29:26 2013 +0000
Commit:     Justin Bronder <jsbronder <AT> gentoo <DOT> org>
CommitDate: Thu Jul 11 00:29:26 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=b28fbde3

bump

Package-Manager: portage-2.1.12.2
RepoMan-Options: --force

---
 sys-cluster/empi/ChangeLog                         |  8 ++++
 .../empi/{empi-0.9.ebuild => empi-0.10.ebuild}     |  0
 .../empi/files/{ChangeLog-0.9 => ChangeLog-0.10}   | 55 +++++++++++++++++++++-
 sys-cluster/empi/files/{empi-0.9 => empi-0.10}     | 11 +++--
 .../files/{eselect.mpi-0.9 => eselect.mpi-0.10}    |  0
 5 files changed, 70 insertions(+), 4 deletions(-)

diff --git a/sys-cluster/empi/ChangeLog b/sys-cluster/empi/ChangeLog
index 067558d..214aaec 100644
--- a/sys-cluster/empi/ChangeLog
+++ b/sys-cluster/empi/ChangeLog
@@ -2,6 +2,14 @@
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
 # $Header: $
 
+*empi-0.10 (11 Jul 2013)
+
+  11 Jul 2013; Justin Bronder <jsbronder@gentoo.org> -empi-0.9.ebuild,
+  +empi-0.10.ebuild, -files/ChangeLog-0.9, -files/empi-0.9,
+  -files/eselect.mpi-0.9, +files/ChangeLog-0.10, +files/empi-0.10,
+  +files/eselect.mpi-0.10:
+  bump
+
   02 Jul 2013; Justin Lecher <jlec@gentoo.org> empi-0.9.ebuild,
   -files/ChangeLog-0.8, -files/eselect.mpi-0.8, +files/ChangeLog-0.9,
   +files/eselect.mpi-0.9:

diff --git a/sys-cluster/empi/empi-0.9.ebuild b/sys-cluster/empi/empi-0.10.ebuild
similarity index 100%
rename from sys-cluster/empi/empi-0.9.ebuild
rename to sys-cluster/empi/empi-0.10.ebuild

diff --git a/sys-cluster/empi/files/ChangeLog-0.9 b/sys-cluster/empi/files/ChangeLog-0.10
similarity index 54%
rename from sys-cluster/empi/files/ChangeLog-0.9
rename to sys-cluster/empi/files/ChangeLog-0.10
index 15652b0..ac5eff0 100644
--- a/sys-cluster/empi/files/ChangeLog-0.9
+++ b/sys-cluster/empi/files/ChangeLog-0.10
@@ -1,4 +1,57 @@
-commit a17e4452cb93014e2a4d5f7615e5d09f2df9c6a2 (HEAD, tag: v0.8, origin/master, origin/HEAD, master)
+commit ab2dc2e2210f81d24b42180359d0842eb33f994a (HEAD, tag: v0.10, origin/master, origin/HEAD, master)
+Author: Justin Bronder <jsbronder@gmail.com>
+Date:   Wed Jul 10 20:22:13 2013 -0400
+
+    empi-0.10
+
+commit d84c6ce3949f9eeeb1bab816e3e25eef0dd75661
+Author: Justin Bronder <jsbronder@gmail.com>
+Date:   Tue Jul 9 18:48:01 2013 -0400
+
+    empi:  support make.conf move
+    
+    Later versions of portage moved /etc/make.conf to /etc/portage/make.conf
+    by default while still supporting the old location.
+
+commit 914c277799fd0f44266864fa16fef338046be5f6
+Author: Justin Bronder <jsbronder@gmail.com>
+Date:   Tue Jul 9 18:12:50 2013 -0400
+
+    eclass: add sys-cluster/mpich
+    
+    upstream renamed mpich2 to mpich.
+
+commit 5c80290f4f0d90fe84fa0f18f2264052c544c008
+Author: Justin Bronder <jsbronder@gmail.com>
+Date:   Mon Jul 1 22:16:04 2013 -0400
+
+    Revert "eclass:  workaround OpenMPI build issue #462602"
+    
+    This reverts commit 5e9b1be531ca02607e730a5b43765850eae9a0c5.
+
+commit a5d63455bf53a1ca6ab0220e3f308707a852b0cc (tag: v0.9)
+Author: Justin Bronder <jsbronder@gmail.com>
+Date:   Mon Jul 1 20:06:50 2013 -0400
+
+    empi-0.9
+
+commit 4540a319542ddc7c0fbcea47174fe85e1810561c
+Author: Justin Bronder <jsbronder@gmail.com>
+Date:   Mon Jul 1 20:05:35 2013 -0400
+
+    empi:  better filtering of emerge output
+    
+    Ignore extra information spit out by emerge, like news.
+
+commit 5e9b1be531ca02607e730a5b43765850eae9a0c5
+Author: Justin Bronder <jsbronder@gmail.com>
+Date:   Mon Jul 1 20:04:58 2013 -0400
+
+    eclass:  workaround OpenMPI build issue #462602
+    
+    export FAKEROOTKEY=1 to stop OpenMPI from replacing malloc.
+
+commit a17e4452cb93014e2a4d5f7615e5d09f2df9c6a2 (tag: v0.8)
 Author: Justin Bronder <jsbronder@gmail.com>
 Date:   Thu Feb 21 22:56:27 2013 -0500
 

diff --git a/sys-cluster/empi/files/empi-0.9 b/sys-cluster/empi/files/empi-0.10
similarity index 98%
rename from sys-cluster/empi/files/empi-0.9
rename to sys-cluster/empi/files/empi-0.10
index 8a9523c..cf41dbb 100755
--- a/sys-cluster/empi/files/empi-0.9
+++ b/sys-cluster/empi/files/empi-0.10
@@ -1,5 +1,5 @@
 #!/bin/bash
-VERSION=0.9
+VERSION=0.10
 
 source /etc/init.d/functions.sh
 
@@ -431,6 +431,7 @@ DO_EMERGE=1
 EMERGE_OPTS="-u"  # Packages can be recompiled by hand if necessary.
 TARGETS=""
 DEFAULT_MPI_OVERLAY_DIR=/var/cache/overlays/mpi
+MAKE_CONF=/etc/make.conf
 
 PORTDIR_OVERLAY=""
 PKGDIR=""
@@ -468,11 +469,15 @@ done
 
 [[ ${UID} -ne 0 ]] && die "You must be root to preform any actions."
 
+if [ -s /etc/portage/make.conf ]; then
+    MAKE_CONF=/etc/portage/make.conf
+fi
+
 : ${MPI_OVERLAY_DIR:=$(portageq envvar MPI_OVERLAY_DIR)}
 if [ -z "${MPI_OVERLAY_DIR}" ]; then
     MPI_OVERLAY_DIR=${DEFAULT_MPI_OVERLAY_DIR}
-    einfo "MPI_OVERLAY_DIR not set, defaulting to ${MPI_OVERLAY_DIR} and updating /etc/make.conf"
-    echo "MPI_OVERLAY_DIR=\"${MPI_OVERLAY_DIR}\"" >> /etc/make.conf
+    einfo "MPI_OVERLAY_DIR not set, defaulting to ${MPI_OVERLAY_DIR} and updating make.conf"
+    echo "MPI_OVERLAY_DIR=\"${MPI_OVERLAY_DIR}\"" >> ${MAKE_CONF}
 fi
 
 if [ ! -d "${MPI_OVERLAY_DIR}" ]; then

diff --git a/sys-cluster/empi/files/eselect.mpi-0.9 b/sys-cluster/empi/files/eselect.mpi-0.10
similarity index 100%
rename from sys-cluster/empi/files/eselect.mpi-0.9
rename to sys-cluster/empi/files/eselect.mpi-0.10


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] proj/sci:master commit in: sys-cluster/empi/, sys-cluster/empi/files/
@ 2020-09-26  1:21 Aisha Tammy
  0 siblings, 0 replies; 5+ messages in thread
From: Aisha Tammy @ 2020-09-26  1:21 UTC (permalink / raw
  To: gentoo-commits

commit:     a42f9583abb3ccd778376c64d783c1f41ca02ba6
Author:     Aisha Tammy <gentoo <AT> aisha <DOT> cc>
AuthorDate: Sat Sep 26 01:21:27 2020 +0000
Commit:     Aisha Tammy <gentoo <AT> aisha <DOT> cc>
CommitDate: Sat Sep 26 01:21:27 2020 +0000
URL:        https://gitweb.gentoo.org/proj/sci.git/commit/?id=a42f9583

sys-cluster/empi: drop dead package

Package-Manager: Portage-3.0.8, Repoman-3.0.1
Signed-off-by: Aisha Tammy <gentoo <AT> aisha.cc>

 sys-cluster/empi/empi-0.10.ebuild       |  31 --
 sys-cluster/empi/files/ChangeLog-0.10   | 121 --------
 sys-cluster/empi/files/README.txt       |  76 -----
 sys-cluster/empi/files/empi-0.10        | 497 --------------------------------
 sys-cluster/empi/files/eselect.mpi-0.10 | 273 ------------------
 sys-cluster/empi/files/mpi.csh          |   3 -
 sys-cluster/empi/files/mpi.sh           |   3 -
 sys-cluster/empi/metadata.xml           |  11 -
 8 files changed, 1015 deletions(-)

diff --git a/sys-cluster/empi/empi-0.10.ebuild b/sys-cluster/empi/empi-0.10.ebuild
deleted file mode 100644
index 5f24f1107..000000000
--- a/sys-cluster/empi/empi-0.10.ebuild
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit eutils
-
-DESCRIPTION="Handling Multiple MPI Implementations"
-HOMEPAGE="http://dev.gentoo.org/~jsbronder/empi.xml"
-SRC_URI=""
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE=""
-DEPEND="app-admin/eselect"
-RDEPEND="${DEPEND}"
-
-S="${WORKDIR}"
-
-src_install() {
-	newbin "${FILESDIR}"/${P} ${PN}
-	dodoc "${FILESDIR}"/README.txt
-	dodoc "${FILESDIR}"/ChangeLog-${PV}
-
-	insinto /usr/share/eselect/modules
-	newins "${FILESDIR}"/eselect.mpi-${PV} mpi.eselect
-	exeinto /etc/profile.d
-	doexe "${FILESDIR}"/mpi.sh
-	doexe "${FILESDIR}"/mpi.csh
-}

diff --git a/sys-cluster/empi/files/ChangeLog-0.10 b/sys-cluster/empi/files/ChangeLog-0.10
deleted file mode 100644
index ac5eff065..000000000
--- a/sys-cluster/empi/files/ChangeLog-0.10
+++ /dev/null
@@ -1,121 +0,0 @@
-commit ab2dc2e2210f81d24b42180359d0842eb33f994a (HEAD, tag: v0.10, origin/master, origin/HEAD, master)
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Wed Jul 10 20:22:13 2013 -0400
-
-    empi-0.10
-
-commit d84c6ce3949f9eeeb1bab816e3e25eef0dd75661
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Tue Jul 9 18:48:01 2013 -0400
-
-    empi:  support make.conf move
-    
-    Later versions of portage moved /etc/make.conf to /etc/portage/make.conf
-    by default while still supporting the old location.
-
-commit 914c277799fd0f44266864fa16fef338046be5f6
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Tue Jul 9 18:12:50 2013 -0400
-
-    eclass: add sys-cluster/mpich
-    
-    upstream renamed mpich2 to mpich.
-
-commit 5c80290f4f0d90fe84fa0f18f2264052c544c008
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Mon Jul 1 22:16:04 2013 -0400
-
-    Revert "eclass:  workaround OpenMPI build issue #462602"
-    
-    This reverts commit 5e9b1be531ca02607e730a5b43765850eae9a0c5.
-
-commit a5d63455bf53a1ca6ab0220e3f308707a852b0cc (tag: v0.9)
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Mon Jul 1 20:06:50 2013 -0400
-
-    empi-0.9
-
-commit 4540a319542ddc7c0fbcea47174fe85e1810561c
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Mon Jul 1 20:05:35 2013 -0400
-
-    empi:  better filtering of emerge output
-    
-    Ignore extra information spit out by emerge, like news.
-
-commit 5e9b1be531ca02607e730a5b43765850eae9a0c5
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Mon Jul 1 20:04:58 2013 -0400
-
-    eclass:  workaround OpenMPI build issue #462602
-    
-    export FAKEROOTKEY=1 to stop OpenMPI from replacing malloc.
-
-commit a17e4452cb93014e2a4d5f7615e5d09f2df9c6a2 (tag: v0.8)
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Thu Feb 21 22:56:27 2013 -0500
-
-    empi-0.8
-
-commit b38f48aa70933858d410abce58964e55708471c9
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Thu Feb 21 22:54:28 2013 -0500
-
-    empi:  manage overlay metadata
-    
-    Add overlay metadata management.  Snagged from crossdev.
-    http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git
-
-commit 4305d879c232acd663a8bb13505e5cfa403c5df5
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Thu Feb 21 21:05:19 2013 -0500
-
-    empi:  provide and set overlay default
-    
-    Set default overlay path to /var/cache/overlays/mpi
-
-commit fd7eed35034cb54dbe0d8f553c57abceee3c0eea
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Thu Feb 21 20:40:36 2013 -0500
-
-    empi:  allow all users to see usage screen
-
-commit 84aa3a41dbbf2924dc223614c267ff6e79bfce2e
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Fri Jan 11 16:43:08 2013 -0500
-
-    rename MPI_PORTDIR and pull it from the portage env
-
-commit 77318d28462f05b4a8a6f1ac7b270aa07b5ebc8a
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Fri Jan 11 16:07:14 2013 -0500
-
-    rename global variables to be obvious
-
-commit 07beb4baf6af2a45bd382d6b7ba87d8bcbeda7a7
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Fri Jan 11 15:44:50 2013 -0500
-
-    sanitize whitespace
-
-commit 7c7fb4f0669d554a5301e70a46ae82e584685aff
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Tue Mar 22 10:27:53 2011 -0400
-
-    mpi.eclass:  Improve handling of unclassed dep strings
-    
-    Instead of requiring a list of packages to block when calculating the
-    dep list for an unclassed ebuild, simply inject a dep string.  This
-    will allow the use of USE-conditional blockers.
-
-commit 0319e9cac8325bda7440f0f48eeac30056658b7e
-Author: Nicolas Bigaouette <nbigaouette@gmail.com>
-Date:   Wed Nov 24 22:42:49 2010 -0500
-
-    Typo: 'classs' to 'classes'
-
-commit 7f0ce9ea97ee8f72dc275ebdf3ce7ab44ad6538a
-Author: Justin Bronder <jsbronder@gmail.com>
-Date:   Mon Nov 29 11:51:31 2010 -0500
-
-    Initial import to git.

diff --git a/sys-cluster/empi/files/README.txt b/sys-cluster/empi/files/README.txt
deleted file mode 100644
index 0148775fd..000000000
--- a/sys-cluster/empi/files/README.txt
+++ /dev/null
@@ -1,76 +0,0 @@
-= Introduction =
-Empi is basically a reworking of vapier's crossdev script to
-handle installing multiple mpi implementations and applications
-that depend on them.  This is done through trickery involving
-adding categories that portage will recognize, moving mpi-enabled
-packages (defined as those using mpi.eclass) to a local overlay
-directory and then emerging these packages using the new
-category.
-
-Empi handles getting mpi application ebuilds into the overlay,
-copying anything in package.{use,keywords}, and wrapping the
-emerge process.  The eclass handles putting the package files
-into separate "root" directories based on the category name as
-well as making sure the applications build against the
-appropriate environment.
-
-I also provide eselect-mpi, which unlike every other eselect
-module I've ever used, is designed to manage a users personal
-environment by writing to ${HOME}/.env.d/mpi.  This provides a
-quick and easy way for users to experiment with various
-implementations while imposing on any other user's ability to
-use their preferred implementation.
-
-The newly written mpi.eclass should handle empi-based and standard
-emerging of packages in a manner that enables package maintainers
-to quickly port their applications without much knowledge of the
-underlying mechanics.  At least, that was my intent, maybe I
-succeeded.
-
-
-= Definitions =
-Class:  Fake category name used by empi.  Must be
-    prefixed with mpi-
-Base Implementation:  Actual mpi-implementation package that will
-    provide all mpi functionality to the above.
-
-
-= Instructions =
-
-The following creates a class called "mpi-openmpi"
-using sys-cluster/openmpi as the base implementation.  We also
-set some USE flags and make sure to unmask the appropriate
-version of sys-cluster/openmpi.  Long options and full package
-atoms are used, but not required.
-
-1.) Sync the science overlay.
-
-2.) Emerge empi
-
-3.) Setup /etc/portage/package stuff.
-    # echo ">=sys-cluster/openmpi-1.2.5-r1 pbs fortran romio smp" >> /etc/portage/package.use
-    # echo ">=sys-cluster/openmpi-1.2.5-r1" >> /etc/portage/package.keywords
-
-4.) Create the implementation.
-    # empi --create --class mpi-openmpi =sys-cluster/openmpi-1.2.5-r1
-
-5.) Add packages.
-    # empi --add --class mpi-openmpi hpl mpi-examples
-
-6.) Setup your user.
-    $ eselect mpi set mpi-openmpi
-    $ echo <<-EOF >> .bash_profile
-for i in $(ls ${HOME}/.env.d/*); do
-    source ${i}
-done
-EOF
-    $ source .bash_profile
-
-7.) Do stuff, or decide this is all worthless and cleanup the mess.
-    # empi --delete mpi-openmpi
-
-
-= Links =
-http://dev.gentoo.org/~vapier/CROSS-COMPILE-HOWTO
-http://archives.gentoo.org/gentoo-cluster/msg_f29032b0d85f7f47d9e52940e9322d91.xml
-http://dev.gentoo.org/~jsbronder/empi.xml

diff --git a/sys-cluster/empi/files/empi-0.10 b/sys-cluster/empi/files/empi-0.10
deleted file mode 100644
index cf41dbbce..000000000
--- a/sys-cluster/empi/files/empi-0.10
+++ /dev/null
@@ -1,497 +0,0 @@
-#!/bin/bash
-VERSION=0.10
-
-source /etc/init.d/functions.sh
-
-die(){
-    if [ -n "${1}" ]; then
-        echo; eerror $1; echo
-    fi
-    exit 1
-}
-
-has() {
-    [[ " ${@:2} " == *" $1 "* ]]
-}
-
-usage(){
-    local rc=${1:-0}
-    shift
-cat <<-EOF
-empi-${VERSION}
-Usage: ${HILITE}empi${NORMAL} ${GOOD}[actions]${NORMAL} ${BRACKET}[options]${NORMAL}
-
-Actions:
-    ${GOOD}-c, --create${NORMAL} pkgspec        (Re)Initialize setup for mpi class.
-    ${GOOD}-a, --add${NORMAL} pkgspec(s)        Add packages using specified mpi class.
-    ${GOOD}-d, --delete${NORMAL} class          Remove everything related to specified class.
-
-Options:
-    ${GOOD}-C, --class${NORMAL} class           MPI class to use.
-    ${GOOD}-t, --tree${NORMAL} path             Path to portage tree to use ebuilds from.
-    ${GOOD}-o, --overlaydir${NORMAL} path       Directory to use for the empi portage overlay.
-                                Defaults to MPI_OVERLAY_DIR [${DEFAULT_MPI_OVERLAY_DIR}]
-    ${GOOD}    --noemerge${NORMAL}              Do not call emerge, only preform overlay setup.
-
-Notes:
-    ${HILITE}-${NORMAL} pkgspec is specified by a package string.  Without a version, the
-      portageq best_visible is used.  For example, all of the following
-      are valid: openmpi, sys-cluster/openmpi, =sys-cluster/openmpi-1.2.5.
-    ${HILITE}-${NORMAL} class (-c) is user defined but must be prefixed with "mpi-"
-
-Examples:
-${BRACKET}Create a new class based on openmpi.${NORMAL}
-    empi --create sys-cluster/openmpi --class mpi-ompi
-${BRACKET}Rebuild the above.${NORMAL}
-    emerge mpi-ompi/openmpi
-${BRACKET}Add hpl to mpi-ompi${NORMAL}
-    empi --class mpi-ompi --add sys-cluster/hpl
-EOF
-    [[ -n $* ]] && echo && eerror "Error: $*"
-    exit ${rc}
-}
-
-class_is_valid() {
-    [[ -z ${CLASS} ]] && usage 1 "No class defined."
-    [[ ${CLASS} != mpi-* ]] && usage 1 "Classes must be prefixed with mpi-"
-    [[ ${CLASS//./} != ${CLASS} ]] && usage 1 "Classes cannot contain . (period)"
-}
-
-is_class_category() {
-    local i
-    for i in $(eselect mpi list -p); do
-        [[ ${1} == ${i} ]] && return 0
-    done
-    return 1
-}
-
-split_atom() {
-    local cpv c pf pn pv
-    cpv=$(portageq best_visible / ${1})
-    if [[ -z ${cpv} || ${rc} -ne 0 ]]; then
-        cpv=$(portageq best_visible / =${1})
-        [[ -z ${cpv} || ${rc} -ne 0 ]] && return 1
-    fi
-    c=${cpv%/*}; pf=${cpv#${c}/}; pn=${pf%%-[0-9]*}; pv=${pf#${pn}-}
-    echo "${c} ${pn} ${pv}"
-}
-
-parse_pkgspecs() {
-    local atom i
-    for ((i=0; i<${#TARGETS[@]}; i++)); do
-        atom=($(split_atom ${TARGETS[i]}))
-        if [[ $? -ne 0 ]]; then
-            eerror "Unable to find a unique package or valid version for ${TARGETS[i]}"
-            eerror "Is the package unmasked and unblocked normally?"
-            die ""
-        fi
-        TARGETS[i]=${atom[0]}/${atom[1]}-${atom[2]}
-    done
-}
-
-# handle_etc_portage package_spec
-# parses /etc/portage/package.{keywords,use}.  If ${CLASS}/${pn} is seen, we don't
-# do a thing.  Otherwise copy any lines that have ${cat}/${pn} inserting them again
-# with the new category.  Also keywords virtual/${CLASS} if necessary.
-handle_etc_portage() {
-    local atom=( $(split_atom ${1}) )
-    local ext line gfiles f
-
-    for ext in "keywords" "use"; do
-        if [ -d /etc/portage/package.${ext} ]; then
-            gfiles="/etc/portage/package.${ext}/*"
-            f=/etc/portage/package.${ext}/${CLASS}
-        else
-            gfiles="/etc/portage/package.${ext}"
-            f=/etc/portage/package.${ext}
-        fi
-
-        if ! grep "^[>=<]*${CLASS}/${atom[1]}" ${gfiles} &>/dev/null; then
-            grep -h "^[>=<]*${atom[0]}/${atom[1]}" ${gfiles} 2>/dev/null \
-                | sed "s,${atom[0]},${CLASS}," \
-            | while read line; do
-               echo "${line}" >> ${f}
-                [[ ${VERBOSE} -ne 0 ]] \
-                    && einfo "Addition to ${f}: ${line}"
-            done
-        elif [[ ${VERBOSE} -ne 0 ]]; then
-            ewarn "Keys for ${CLASS}/${atom[1]} already exist in ${f}.  Will not replicate them."
-        fi
-
-        if ! grep "^${CLASS}/mpi" ${gfiles} &>/dev/null; then
-            grep -h "^virtual/mpi" ${gfiles} 2>/dev/null \
-                | sed "s,/mpi,/${CLASS}," \
-            | while read line; do
-                echo "${line}" >> ${f}
-            [[ ${VERBOSE} -ne 0 ]] \
-                && einfo "Addition to ${f}: ${line}"
-            done
-        elif [[ ${VERBOSE} -ne 0 ]]; then
-            ewarn "Keys for virtual/${CLASS} already exist.  Will not replicate."
-        fi
-    done
-}
-
-
-
-get_ebuild_dir() {
-    local d a
-    local want_uses_mpi=${2:-0}
-    local found=0
-
-    a=($(split_atom ${1}))
-    [[ $? -ne 0 ]] && die "Unable to find a unique package or valid version for ${1}."
-    is_class_category ${a[0]} && die "It makes no sense to build a new mpi-class from a current one."
-
-    if [[ -z ${PORTAGE_TREE} ]]; then
-        for d in $(portageq portdir_overlay) $(portageq portdir); do
-            if [[ ${want_uses_mpi} -ne 0 ]]; then
-                [[ -f "${d}/${a[0]}/${a[1]}/${a[1]}-${a[2]}.ebuild" ]] \
-                    && ebuild_uses_mpi ${d}/${a[0]}/${a[1]} ${a[1]}-${a[2]} \
-                    && found=1
-            else
-                [[ -f "${d}/${a[0]}/${a[1]}/${a[1]}-${a[2]}.ebuild" ]] && found=1
-            fi
-            [[ ${found} -ne 0 ]] && break
-        done
-        if [[ ${found} -ne 0 ]]; then
-            PORTAGE_TREE=${d}
-        else
-            die "Could not find an ebuild for ${a[0]}/${a[1]}-${a[2]}."
-        fi
-    fi
-
-    EBUILD_DIR="${PORTAGE_TREE}/${a[0]}/${a[1]}"
-}
-
-ebuild_uses_mpi() {
-    grep 'inherit .*mpi' "${1}/${2##*/}.ebuild" &>/dev/null
-}
-
-link_ebuild_dir() {
-    ln -snf "${EBUILD_DIR}" "${MPI_OVERLAY_DIR}"/${CLASS}/${EBUILD_DIR##*/} \
-        || die "Failed to link ${EBUILD_DIR} to ${MPI_OVERLAY_DIR}/${CLASS}/${EBUILD_DIR##*/}"
-}
-
-# TODO:  Needs to be called after get_ebuild_dir which sets $PORTAGE_TREE
-create_virtual_mpi() {
-    local d_dir="${MPI_OVERLAY_DIR}"/virtual/${CLASS}
-    local version d_file mpi_ebuild s_dir
-
-    # Try to get virtual/mpi from the same tree as the other ebuilds.
-    # Otherwise we fall back and get it from anywhere.
-    version=$(portageq best_visible / ${__VIRTUAL_MPI_VERSION})
-    version=${version#virtual/mpi-}
-
-    for s_dir in ${PORTAGE_TREE} $(portageq portdir_overlay) $(portageq portdir); do
-        mpi_ebuild="${s_dir}"/virtual/mpi/mpi-${version}.ebuild
-        [ -f "${mpi_ebuild}" ] && break;
-    done
-
-    [[ ! -f "${mpi_ebuild}" ]] \
-        && die "Cannot satisfy ${__VIRTUAL_MPI_VERSION}"
-
-    d_file=${CLASS}-${version}.ebuild
-
-    mkdir -p "${d_dir}" || die "Could not create ${d_dir}"
-
-    cp "${mpi_ebuild}" "${d_dir}"/${d_file} \
-        || die "Could not copy ${mpi_ebuild} to ${d_dir}/${d_file}"
-
-    sed -i "s,sys-cluster/,${CLASS}/," ${d_dir}/${d_file}
-    ebuild ${d_dir}/${d_file} digest > /dev/null \
-        || die "Failed to digest ${d_dir}/${d_file}"
-}
-
-set_metadata() {
-    # Snagged from crossdev:  http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git
-    # 3cab8c394fec72f2353e209d98429dd1aaf1d337
-
-    # for people who have eclasses spread over their overlays, generate
-    # a layout.conf file so portage can find them.  this is a crapshoot
-    # when diff overlay sources have conflicting eclasses, but nothing
-    # we really can do about that.
-    local autogen_tag="# Autogenerated and managed by empi"
-    local meta=${MPI_OVERLAY_DIR}/metadata
-    local layout=${meta}/layout.conf
-    local d name masters thin_manifests="false"
-
-    mkdir -p "${meta}"
-    if [[ -e ${layout} ]] ; then
-        if ! grep -qs "^${autogen_tag}" "${layout}" ; then
-            einfo "leaving metadata/layout.conf alone in ${MPI_OVERLAY_DIR}"
-            return
-        fi
-
-        # We are managing it, so blow it away
-        rm -f "${layout}"
-    fi
-
-    # build up a list of possible repos where we can pull from
-    for d in ${PORTDIR_OVERLAY} "${PORTDIR}" ; do
-        [[ -z ${d} ]] && continue
-
-        name=
-        if [[ -e ${d}/profiles/repo_name ]] ; then
-            name=$(<"${d}"/profiles/repo_name)
-        fi
-        [[ -z ${name} ]] && continue
-
-        # If this repo has an eclass dir, mark it as a master.
-        # Note: portage reads the masters list in reverse order,
-        #       so we have to prepare it the same way.
-        if [[ -d ${d}/eclass ]] ; then
-            has ${name} ${masters} || masters="${name} ${masters}"
-        fi
-
-        # If one of the overlays uses thin manifests, then turn it on
-        if [[ -z ${this_manifests} ]] && has ${name} ${masters} && \
-            sed \
-                -e 's:#.*::' \
-                -e 's:^[[:space:]]*::' \
-                -e 's:[[:space:]]*$::' \
-                -e 's:[[:space:]]*=[[:space:]]*:=:' \
-                "${d}/metadata/layout.conf" 2>/dev/null | \
-            gawk -F= '{
-                    if ($1 == "use-manifests") um = $2
-                    if ($1 == "thin-manifests") tm = $2
-                }
-                END {
-                    exit !(um != "false" && tm == "true")
-                }'
-        then
-            einfo "enabling thin-manifests due to ${d}"
-            this_manifests="use-manifests = true\nthin-manifests = true"
-        fi
-    done
-
-    # write out that layout.conf!
-    cat <<-EOF > "${layout}"
-	${autogen_tag}
-	# Delete the above line if you want to manage this file yourself
-	masters = ${masters% }
-	$(printf '%b' "${this_manifests}")
-	EOF
-}
-
-do_emerge() {
-    [[ ${DO_EMERGE} -eq 0 ]] && return 0
-    einfo "Emerging $*"
-    emerge ${EMERGE_OPTS} $* || die "emerge failed!"
-}
-
-# We should have only one target here.
-create_class() {
-    local mpi_class_pkg d mpi_class_pn
-
-    [[ ${#TARGETS[@]} -ne 1 ]] && die "Can only create one class at a time."
-
-    for d in $(eselect mpi list -p); do
-        [ "${d}" == "${CLASS}" ] && die "${CLASS} has already been created."
-    done
-
-    # Prevent laziness
-    [[ ${TARGETS[0]} == ${TARGETS[0]##*/} ]] \
-        && TARGETS[0]="sys-cluster/${TARGETS[0]}"
-
-    parse_pkgspecs
-    get_ebuild_dir ${TARGETS[0]} 1
-    create_virtual_mpi
-    mpi_class_pn=${EBUILD_DIR##*/}
-    mpi_class_pkg=${TARGETS[0]}
-    handle_etc_portage ${TARGETS[0]}
-    TARGETS[0]="=${CLASS}/${TARGETS[0]##*/}"
-
-    # Refuse to break systems.  If there is already a class
-    # installed in that directory, we're not going to add another one as
-    # the eclass doesn't fix one problem just to introduce a bigger one.
-    for d in $(find ${MPI_OVERLAY_DIR}/${CLASS} -maxdepth 1 -mindepth 1 -type l 2>/dev/null);do
-        d=${d##*/}
-        [[ ${d} == ${mpi_class_pn} ]] && continue
-        for i in ${MPI_ALL_IMPS}; do
-            [[ ${i} == ${d} ]] \
-                && die "${CLASS} already has MPI implementation ${d}, refusing to add ${mpi_class_pn}"
-        done
-    done
-
-    if [[ -d "${MPI_OVERLAY_DIR}"/${CLASS} ]]; then
-        [[ ${VERBOSE} -ne 0 ]] && ewarn "Overlay for ${CLASS} has already been created."
-    else
-        mkdir -p ${MPI_OVERLAY_DIR}/${CLASS}
-        link_ebuild_dir
-		set_metadata
-    fi
-    if ! grep "^${CLASS}$" /etc/portage/categories &>/dev/null; then
-        echo "${CLASS}" >> /etc/portage/categories
-    fi
-
-
-cat << EOF
-Creating ${HILITE}${CLASS}${NORMAL}
-    Class:                  ${GOOD}${CLASS}${NORMAL}
-    MPI Implementation:     ${GOOD}${mpi_class_pkg}${NORMAL}
-    Source:                 ${GOOD}${EBUILD_DIR}${NORMAL}
-    Destination:            ${GOOD}${MPI_OVERLAY_DIR}/${CLASS}${NORMAL}
-EOF
-    do_emerge ${TARGETS[0]}
-}
-
-
-add_packages(){
-    local i j deps
-
-    [[ -d "${MPI_OVERLAY_DIR}"/${CLASS} ]] || die "Class ${CLASS} has not been created yet."
-    [[ ${#TARGETS[@]} -lt 1 ]] && die "You need to specify at least one package"
-
-    parse_pkgspecs
-    for ((i=0;i<${#TARGETS[@]};i++)); do
-        get_ebuild_dir ${TARGETS[i]}
-        create_virtual_mpi
-        if ebuild_uses_mpi ${EBUILD_DIR} ${TARGETS[i]}; then
-            link_ebuild_dir
-            handle_etc_portage ${TARGETS[i]}
-            TARGETS[i]="=${CLASS}/${TARGETS[i]##*/}"
-        else
-            TARGETS[i]="=${TARGETS[i]}"
-        fi
-
-        # I don't know about this, but do you have a better idea?
-        deps="$(emerge --color=n --onlydeps -p --quiet ${TARGETS[i]} | grep '^\[')"
-        if [[ $? -ne 0 ]]; then
-            emerge --onlydeps -p ${TARGETS[i]}
-            die "Unable to calculate deps for ${TARGETS[i]}"
-        fi
-        deps=( $(echo ${deps} | sed -e 's:\[[a-z]* [A-Z] \] :=:g') )
-        for ((j=0;j<${#deps[@]};j++)); do
-            get_ebuild_dir ${deps[j]}
-            if ebuild_uses_mpi ${deps[i]}; then
-                link_ebuild_dir
-            fi
-        done
-    done
-cat << EOF
-Adding packages to ${HILIGHT}${CLASS}${NORMAL}
-    Packages:       ${GOOD}${TARGETS[@]}${NORMAL}
-EOF
-    do_emerge ${TARGETS[@]}
-}
-
-
-delete_class() {
-    local pkgs=( $(ls /var/db/pkg/${CLASS}/ 2>/dev/null) )
-    local ext d i rc
-    [[ -d "${MPI_OVERLAY_DIR}"/${CLASS} ]] || die "Class ${CLASS} has not been created yet."
-    rc=0
-
-    for (( i=0; i<${#pkgs[@]}; i++)); do
-        pkgs[i]="=${CLASS}/${pkgs[i]}"
-    done
-
-    if [[ ${#pkgs[@]} -gt 0 ]] && ! emerge -C ${EMERGE_OPTS/-u/} ${pkgs[@]}; then
-        die "Failed to unmerge ${pkgs[@]}"
-    fi
-
-    for ext in "keywords" "use"; do
-        if [ -d /etc/portage/package.${ext} ]; then
-            rm /etc/portage/package.${ext}/${CLASS} &>/dev/null
-            rc=$((rc+$?))
-        elif [ -f /etc/portage/package.${ext} ]; then
-            sed -i -e "/^${CLASS}\//d" /etc/portage/package.${ext}
-            rc=$((rc+$?))
-        fi
-    done
-
-    [ ! -f /etc/portage/categories ] || sed -i -e "/^${CLASS}$/d" /etc/portage/categories
-    rc=$((rc+$?))
-
-   for d in $(ls "${MPI_OVERLAY_DIR}"/${CLASS}/ 2>/dev/null); do
-        rm "${MPI_OVERLAY_DIR}"/${CLASS}/${d}
-        rc=$((rc+$?))
-    done
-
-    for d in "${MPI_OVERLAY_DIR}/${CLASS}" /var/db/pkg/${CLASS}; do
-        [ ! -d "${d}" ] || rmdir "${d}"
-        rc=$((rc+$?))
-    done
-
-    [[ ${rc} -ne 0 ]] \
-        && ewarn "Errors were encountered during delete_class()"
-    return ${rc}
-}
-
-# Internal variables.
-__VIRTUAL_MPI_VERSION=">=virtual/mpi-2.0"
-
-ACTION=""
-CLASS=""
-PORTAGE_TREE=""
-MPI_OVERLAY_DIR=""
-VERBOSE=0
-DO_EMERGE=1
-EMERGE_OPTS="-u"  # Packages can be recompiled by hand if necessary.
-TARGETS=""
-DEFAULT_MPI_OVERLAY_DIR=/var/cache/overlays/mpi
-MAKE_CONF=/etc/make.conf
-
-PORTDIR_OVERLAY=""
-PKGDIR=""
-
-EBUILD_DIR=""
-
-while [[ $# -gt 0 ]]; do
-    case $1 in
-        -h|--help)
-            usage;;
-        -c|--create)
-            ACTION="${ACTION}create";;
-        -a|--add)
-            ACTION="${ACTION}add";;
-        -d|--delete)
-            ACTION="${ACTION}delete"
-            shift; CLASS=${1};;
-        -C|--class)
-            shift; CLASS=${1};;
-        -t|--tree)
-            shift; PORTAGE_TREE=${1};;
-        -o|--overlaydir)
-            shift; MPI_OVERLAY_DIR=${1};;
-        -v|--verbose)
-            VERBOSE=1;;
-        --noemerge)
-            DO_EMERGE=0;;
-        -*)
-            EMERGE_OPTS="${EMERGE_OPTS} ${1}";;
-        *)
-            TARGETS=( $(echo ${TARGETS[@]}) ${1} );;
-    esac
-    shift
-done
-
-[[ ${UID} -ne 0 ]] && die "You must be root to preform any actions."
-
-if [ -s /etc/portage/make.conf ]; then
-    MAKE_CONF=/etc/portage/make.conf
-fi
-
-: ${MPI_OVERLAY_DIR:=$(portageq envvar MPI_OVERLAY_DIR)}
-if [ -z "${MPI_OVERLAY_DIR}" ]; then
-    MPI_OVERLAY_DIR=${DEFAULT_MPI_OVERLAY_DIR}
-    einfo "MPI_OVERLAY_DIR not set, defaulting to ${MPI_OVERLAY_DIR} and updating make.conf"
-    echo "MPI_OVERLAY_DIR=\"${MPI_OVERLAY_DIR}\"" >> ${MAKE_CONF}
-fi
-
-if [ ! -d "${MPI_OVERLAY_DIR}" ]; then
-    mkdir -p "${MPI_OVERLAY_DIR}" || die "Failed to mkdir ${MPI_OVERLAY_DIR}"
-fi
-
-export PORTDIR_OVERLAY="${MPI_OVERLAY_DIR} $(portageq portdir_overlay)"
-export PKGDIR="$(portageq envvar PKGDIR)/mpi/${CLASS}"
-export PORTDIR="$(portageq envvar PORTDIR)"
-
-[[ -z ${ACTION} ]] && usage 1 "No action defined."
-class_is_valid
-
-set_metadata
-[[ ${ACTION} == *create* ]] && create_class
-[[ ${ACTION} == *add* ]]    && add_packages
-[[ ${ACTION} == *delete* ]] && delete_class

diff --git a/sys-cluster/empi/files/eselect.mpi-0.10 b/sys-cluster/empi/files/eselect.mpi-0.10
deleted file mode 100644
index 2c7a56776..000000000
--- a/sys-cluster/empi/files/eselect.mpi-0.10
+++ /dev/null
@@ -1,273 +0,0 @@
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-DESCRIPTION="Manage MPI classes"
-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 classes currently installed.
-find_classes() {
-	local classes
-	for f in ${ROOT}/etc/env.d/mpi/*; do
-		[[ -f ${f} ]] || continue
-		f=$(basename ${f})
-		[[ "${f#mpi-}" == "${f}" ]] && continue
-		classes=(${classes[@]} ${f})
-	done
-	echo ${classes[@]}
-}
-
-# User's current environment has the class configured in it.
-is_in_use() { [ "${ESELECT_MPI_IMP}" == "${1}" ]; }
-
-# User's env file is ready for sourcing for this class
-is_enabled() {
-	[ "$(var_from_user_envd ESELECT_MPI_IMP)" == "${1}" ]
-}
-
-var_from_user_envd(){
-	[ ! -f ${user_ev_sh} ] && return 0
-	echo "$(source ${user_ev_sh}; echo ${!1})"
-}
-
-# Is this a valid class?
-is_class() {
-	local classes=$(find_classes)
-	for i in ${classes[@]}; 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_sh="${d}mpi.sh"; 
-	user_ev_csh="${d}mpi.csh"; 
-	
-	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_sh}" && ! -w "${user_ev_sh}" \
-		&& -f "${user_ev_csh}" && ! -w "${user_ev_csh}" ]] \
-		&& die -q "You do not have permission to write to ${user_ev_sh} or ${user_ev_csh}."
-}
-
-global_env() {
-	local d=$(canonicalise "${ROOT}/etc/env.d/mpi/${1}")
-	[ -z "${d}" ] && die "Cannot find global env file for ${1}"
-	ev=${d}
-}
-
-### list action ###
-
-describe_list() {  echo "List available classs"; }
-describe_list_parameters() { echo "[-p]"; }
-
-do_list() {
-	classes=( $(find_classes) )
-	init
-	if [[ ${@} == *-p* ]]; then
-		echo "${classes[@]}"
-	else
-		write_list_start "Available MPI classs:"
-		if [[ -n "${classes[@]}" ]]; then
-			for (( i=0; i<${#classes[@]}; i++ )); do
-				if is_in_use ${classes[$i]} && is_enabled ${classes[$i]}; then
-					write_kv_list_entry "${classes[$i]}" "Enabled, In Use"
-				elif is_in_use ${classes[$i]}; then
-					write_kv_list_entry "${classes[$i]}" "In Use"
-				elif is_enabled ${classes[$i]}; then
-					write_kv_list_entry "${classes[$i]}" "Enabled"
-				else
-					write_kv_list_entry "${classes[$i]}" "--"
-				fi
-			done
-		else
-			write_kv_list_entry "(none found)" ""
-		fi
-	fi
-	return 0
-}
-
-
-### set action ###
-
-describe_set() {
-	echo "Select a MPI class."
-}
-
-describe_set_parameters() {
-	echo "<target>"
-}
-
-do_set() {
-	local binpath lld manpath current_imp
-
-	init
-	current_imp="$(var_from_user_envd ESELECT_MPI_IMP)"
-	global_env ${1}
-
-	[[ -z ${1} ]] && die -q "You didnt specifiy any class for use."
-	[[ ${#@} -ne 1 ]] && die -q "You may only select exactly one class."
-	! is_class ${1} && die -q "${1} is not an class."
-	if is_enabled ${1}; then
-		echo "${1} implemention is currently in use.  This is a no-op."
-		return
-	elif [ -n "${current_imp}" ]; then
-		echo "Cannot select ${1} when ${current_imp} is in use."
-		return 1
-	fi
-	
-   binpath="$(load_config ${ev} PATH)"
-   lld="$(load_config ${ev} LD_LIBRARY_PATH)"
-   manpath="$(load_config ${ev} MANPATH)"
-
-cat <<-EOF >${user_ev_sh}
-bpl=\`expr "\${PATH}" : ".*${binpath}:"\`
-mpl=\`expr "\${MANPATH}" : ".*${manpath}:"\`
-llpl=\`expr "\${LD_LIBRARY_PATH}" : ".*${lld}:"\`
-
-if [ \${bpl} -eq 0 ]; then
-	export PATH="${binpath}:\${PATH}"
-fi
-
-if [ \${mpl} -eq 0 ]; then
-	export MANPATH="${manpath}:\${MANPATH}"
-fi
-
-if [ \${llpl} -eq 0 ]; then
-	export LD_LIBRARY_PATH="${lld}:\${LD_LIBRARY_PATH}"
-fi
-export ESELECT_MPI_IMP="${1}"
-EOF
-
-cat <<-EOF >${user_ev_csh}
-set bpl=\`expr "\${PATH}" : ".*${binpath}:"\`
-set mpl=\`expr "\${MANPATH}" : ".*${manpath}:"\`
-set llpl=\`expr "\${LD_LIBRARY_PATH}" : ".*${lld}:"\`
-
-if ( \$bpl == 0 ) \
-	setenv PATH "${binpath}:\${PATH}"
-
-if ( \$mpl == 0 ) \
-	setenv MANPATH "${manpath}:\${MANPATH}"
-
-if ( \$llpl  == 0 ) \
-	setenv LD_LIBRARY_PATH "${lld}:\${LD_LIBRARY_PATH}"
-
-setenv ESELECT_MPI_IMP "${1}"
-EOF
-
-	echo "Remember to source /etc/profile or /etc/csh.login"
-}
-
-
-### unset action ###
-describe_unset() {
-	echo "Restore MPI-less environment."
-}
-
-do_unset() {
-   	local lld current_imp
-   	init
-
-	current_imp="$(var_from_user_envd ESELECT_MPI_IMP)"
-
-	if [ -z "${current_imp}" ]; then
-		echo "No implemention currently in use.  This is a no-op."
-		return
-	fi
-	
-	global_env "${ESELECT_MPI_IMP}"
-	lld="$(load_config ${ev} LD_LIBRARY_PATH)"
-
-   # PATH and MANPATH are reset in /etc/profile.
-cat <<-EOF > ${user_ev_sh}
-unset ESELECT_MPI_IMP
-l=\`expr "\${LD_LIBRARY_PATH}:" : ".*${lld}:"\`
-l=\$(( \${l} + 1 ))
-
-if [ \${l} -gt 1 ]; then
-	export LD_LIBRARY_PATH="\`expr substr \${LD_LIBRARY_PATH} \${l} 1024\`"
-fi
-EOF
-
-cat <<-EOF > ${user_ev_csh}
-unsetenv ESELECT_MPI_IMP
-set l=\`expr "\${LD_LIBRARY_PATH}:" : ".*${lld}:"\`
-@ l = ( \${l} + 1 )
-
-if ( \${l} > 1 ) \
-	setenv LD_LIBRARY_PATH "\`expr substr \${LD_LIBRARY_PATH} \${l} 1024\`"
-EOF
-
-   echo "Remember to source /etc/profile or /etc/csh.login"
-}
-
-### add action (from skel pretty much)
-describe_add() {
-	echo "Add a new mpi class"
-}
-
-describe_add_parameters() {
-	echo "<file>"
-}
-
-do_add() {
-	local class
-	[[ ${#@} -ne 1 ]] \
-		&& die -q "Bad arguments, use:  mpi add /some/full/path/<class>.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
-
-	class=$(basename ${1}); class=${class%.eselect}
-	if ! cp ${1} ${PREFIX}/etc/env.d/mpi/${class}; then
-		die -q "Installing ${1} as ${PREFIX}/etc/env.d/mpi/${class} failed!"
-	fi
-}
-
-
-### printvar action ###
-describe_printvar() { echo "Print variables stored in global env.d file."; }
-describe_printvar_parameters() { echo "<class> <variable>"; }
-
-do_printvar() {
-	if [[ ${#@} -ne 2 ]] \
-		|| ! is_class ${1}; then
-		die -q "Specify exactly 1 class and 1 variable."
-	fi
-	global_env ${1}
-	echo "$(load_config ${ev} ${2})"
-}
-
-# vim: ft=eselect:noet
-

diff --git a/sys-cluster/empi/files/mpi.csh b/sys-cluster/empi/files/mpi.csh
deleted file mode 100644
index 32506b4cc..000000000
--- a/sys-cluster/empi/files/mpi.csh
+++ /dev/null
@@ -1,3 +0,0 @@
-if ( -d "${HOME}"/.env.d && -f "${HOME}"/.env.d/mpi.csh ) then
-    source "${HOME}"/.env.d/mpi.csh
-endif

diff --git a/sys-cluster/empi/files/mpi.sh b/sys-cluster/empi/files/mpi.sh
deleted file mode 100644
index 5483247e5..000000000
--- a/sys-cluster/empi/files/mpi.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-if [ -d "${HOME}"/.env.d -a -f "${HOME}"/.env.d/mpi.sh ]; then
-    source "${HOME}"/.env.d/mpi.sh
-fi

diff --git a/sys-cluster/empi/metadata.xml b/sys-cluster/empi/metadata.xml
deleted file mode 100644
index c74b39b01..000000000
--- a/sys-cluster/empi/metadata.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-	<maintainer type="person">
-		<email>jsbronder@gentoo.org</email>
-	</maintainer>
-	<maintainer type="project">
-		<email>cluster@gentoo.org</email>
-		<name>Gentoo Cluster Project</name>
-	</maintainer>
-</pkgmetadata>


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-09-26  1:21 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-11  0:32 [gentoo-commits] proj/sci:master commit in: sys-cluster/empi/, sys-cluster/empi/files/ Justin Bronder
  -- strict thread matches above, loose matches on Subject: below --
2020-09-26  1:21 Aisha Tammy
2013-07-02 17:08 Nicolas Bock
2013-07-02  0:09 Justin Bronder
2013-02-22 10:18 Justin Lecher

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox