Ditch old names
This commit was SVN r9743.
Этот коммит содержится в:
родитель
48ce14c6e5
Коммит
609b94a2ec
229
contrib/dist/linux/ompi-switcher-modulefile.spec
поставляемый
229
contrib/dist/linux/ompi-switcher-modulefile.spec
поставляемый
@ -1,229 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2006 The Trustees of Indiana University and Indiana
|
|
||||||
# University Research and Technology
|
|
||||||
# Corporation. All rights reserved.
|
|
||||||
# Copyright (c) 2006 Cisco Systems, Inc. All rights reserved.
|
|
||||||
# $COPYRIGHT$
|
|
||||||
#
|
|
||||||
# Additional copyrights may follow
|
|
||||||
#
|
|
||||||
# $HEADER$
|
|
||||||
|
|
||||||
#############################################################################
|
|
||||||
#
|
|
||||||
# Helpful defines
|
|
||||||
#
|
|
||||||
#############################################################################
|
|
||||||
|
|
||||||
# This is an OSCAR-specific RPM specfile. It exists for two reasons:
|
|
||||||
# 1. Installing an Open MPI-installation-agnostic modulefile that will
|
|
||||||
# automatically pick which of multiple Open MPI installations to use
|
|
||||||
# if a specific one is not asked for by the user.
|
|
||||||
# 2. Make the main Open MPI spec file cleaner (don't need any of this
|
|
||||||
# switcher gorp).
|
|
||||||
|
|
||||||
# Values specified here are what are used if the user does not pass in
|
|
||||||
# any defaults.
|
|
||||||
|
|
||||||
%{!?oscar_prefix: %define oscar_prefix /opt/%{name}}
|
|
||||||
|
|
||||||
%define _prefix %{oscar_prefix}-%{version}
|
|
||||||
%define _pkgdatadir %{oscar_prefix}-%{version}/share/openmpi
|
|
||||||
|
|
||||||
# Defining these to nothing overrides the stupid automatic RH9
|
|
||||||
# functionality of making "debuginfo" RPMs.
|
|
||||||
|
|
||||||
%define debug_package %{nil}
|
|
||||||
%define __check_files %{nil}
|
|
||||||
|
|
||||||
|
|
||||||
#############################################################################
|
|
||||||
#
|
|
||||||
# Preamble Section
|
|
||||||
#
|
|
||||||
#############################################################################
|
|
||||||
|
|
||||||
Summary: OSCAR-specific modulefile for run-time picking of an Open MPI installation to use
|
|
||||||
Name: openmpi-switcher-modulefile
|
|
||||||
Version: OPENMPIVERSION
|
|
||||||
Release: 1
|
|
||||||
Vendor: Open MPI Team
|
|
||||||
License: BSD
|
|
||||||
Group: Development/Libraries
|
|
||||||
Source: openmpi-switcher-modulefile.tcl
|
|
||||||
URL: http://www.open-mpi.org/
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-root
|
|
||||||
Requires: %__rm %__mkdir %__sed %__mv %__chmod %__chown
|
|
||||||
Requires: modules-oscar
|
|
||||||
Requires: env-switcher
|
|
||||||
|
|
||||||
%description
|
|
||||||
|
|
||||||
This RPM is used to install a Open MPI-installation-agnostic
|
|
||||||
modulefile that is used to automatically select which Open MPI
|
|
||||||
installation to use on a per-shell basis. That is, if there are
|
|
||||||
multiple Open MPI installations on a single node (due to limitations
|
|
||||||
in the OSCAR design, aimed at difficulties in knowing exactly which
|
|
||||||
version of various support libraries to compile Open MPI against), it
|
|
||||||
will attempt to pick the "right" one and load the appropriate
|
|
||||||
modulefile for that installation.
|
|
||||||
|
|
||||||
Current possibilities include:
|
|
||||||
- plain vanilla Open MPI
|
|
||||||
- Open MPI with gm
|
|
||||||
- Open MPI with blcr
|
|
||||||
- Open MPI with blcr and gm
|
|
||||||
|
|
||||||
|
|
||||||
#############################################################################
|
|
||||||
#
|
|
||||||
# Prep Section
|
|
||||||
#
|
|
||||||
#############################################################################
|
|
||||||
%prep
|
|
||||||
|
|
||||||
# Nothing to do...
|
|
||||||
|
|
||||||
|
|
||||||
#############################################################################
|
|
||||||
#
|
|
||||||
# Build Section
|
|
||||||
#
|
|
||||||
#############################################################################
|
|
||||||
%build
|
|
||||||
|
|
||||||
cd "$RPM_BUILD_DIR"
|
|
||||||
%__mkdir -p %{name}-%{version}
|
|
||||||
%__chmod -R a+rX,g-w,o-w %{name}-%{version}
|
|
||||||
cd %{name}-%{version}
|
|
||||||
|
|
||||||
%__cp "$RPM_SOURCE_DIR/openmpi-switcher-modulefile.tcl" \
|
|
||||||
"$RPM_BUILD_DIR/%{name}-%{version}/openmpi-%{version}"
|
|
||||||
%__chmod 644 "$RPM_BUILD_DIR/%{name}-%{version}/openmpi-%{version}"
|
|
||||||
|
|
||||||
|
|
||||||
#############################################################################
|
|
||||||
#
|
|
||||||
# Install Section
|
|
||||||
#
|
|
||||||
#############################################################################
|
|
||||||
%install
|
|
||||||
rm -rf "$RPM_BUILD_ROOT"
|
|
||||||
|
|
||||||
# Copy the shell script to pkgdatadir
|
|
||||||
|
|
||||||
pkgdatadir="$RPM_BUILD_ROOT/%{_pkgdatadir}"
|
|
||||||
%__mkdir -p "$pkgdatadir"
|
|
||||||
%__cp "$RPM_BUILD_DIR/%{name}-%{version}/openmpi-%{version}" \
|
|
||||||
"$pkgdatadir/openmpi-%{version}"
|
|
||||||
%__chmod 644 "$pkgdatadir/openmpi-%{version}"
|
|
||||||
|
|
||||||
|
|
||||||
#############################################################################
|
|
||||||
#
|
|
||||||
# Clean Section
|
|
||||||
#
|
|
||||||
#############################################################################
|
|
||||||
%clean
|
|
||||||
%__rm -rf "$RPM_BUILD_ROOT"
|
|
||||||
|
|
||||||
|
|
||||||
#############################################################################
|
|
||||||
#
|
|
||||||
# Post (module) section
|
|
||||||
#
|
|
||||||
#############################################################################
|
|
||||||
%post
|
|
||||||
|
|
||||||
# Add ourselves into the switcher repository. Run the modules and
|
|
||||||
# switcher setup scripts because this RPM install may be part of a
|
|
||||||
# massive "rpm -ivh ..." that includes the modules and switcher RPMs
|
|
||||||
# themselves -- in which case, the environment for those packages will
|
|
||||||
# not yet have been setup.
|
|
||||||
|
|
||||||
# In an ungrade situation, there will already be a openmpi-%{version}
|
|
||||||
# modulefile resigtered, so we have to unregister it first, and then
|
|
||||||
# do the registration.
|
|
||||||
|
|
||||||
if test "$1" \> 1; then
|
|
||||||
switcher mpi --rm-name openmpi-%{version} --force --silent
|
|
||||||
fi
|
|
||||||
|
|
||||||
. /etc/profile.d/00-modules.sh
|
|
||||||
switcher mpi --add-name openmpi-%{version} %{_pkgdatadir} --force --silent
|
|
||||||
|
|
||||||
|
|
||||||
#############################################################################
|
|
||||||
#
|
|
||||||
# Preun (module) Section
|
|
||||||
#
|
|
||||||
#############################################################################
|
|
||||||
%preun
|
|
||||||
|
|
||||||
# Remove ourselves from the switcher repository. Run the modules and
|
|
||||||
# switcher setup scripts because this RPM install may be part of the
|
|
||||||
# same shell that "rpm -ivh ..." the switcher/modules RPM's, in which
|
|
||||||
# case, the environment for those packages will not yet have been
|
|
||||||
# setup. This is important to do *before* we are uninstalled because
|
|
||||||
# of the case where "rpm -Uvh openmpi-module..." is used; the current
|
|
||||||
# RPM will be uninstalled and then the new one will be installed. If
|
|
||||||
# we are %postun here, then the new RPM will be installed, and then
|
|
||||||
# this will run, which will remove the [new] tag from switcher, which
|
|
||||||
# is obviously not what we want.
|
|
||||||
|
|
||||||
# Grrr... It seems that "rpm -ivh a.rpm b.rpm c.rpm" is smart enough
|
|
||||||
# to re-order the order of installation to ensure that dependencies
|
|
||||||
# are met. However, "rpm -e a b c" does *not* order the
|
|
||||||
# uninstallations to ensure that dependencies are still met. So if
|
|
||||||
# someone does "rpm -e switcher modules openmpi-module", it is quite
|
|
||||||
# possible that rpm will uninstall switcher and/or modules *before*
|
|
||||||
# this RPM is uninstalled. As such, the following lines will fail,
|
|
||||||
# which will cause all kinds of Badness. Arrggh!! So we have to test
|
|
||||||
# to ensure that these files are still here before we try to use them.
|
|
||||||
|
|
||||||
# If this is an upgrade, then we only want to do this when the last
|
|
||||||
# RPM is removed (i.e., when this is *not* an upgrade).
|
|
||||||
|
|
||||||
if test "$1" == 0; then
|
|
||||||
a=/etc/profile.d/00-modules.sh
|
|
||||||
which switcher > /dev/null 2> /dev/null
|
|
||||||
b=$?
|
|
||||||
if test -f $a -a "$b" = "0"; then
|
|
||||||
. $a
|
|
||||||
default="`switcher mpi --show --system | grep default | cut -d= -f2`"
|
|
||||||
|
|
||||||
# If this RPM was the system default switcher module, then
|
|
||||||
# both print a warning and remove the system default.
|
|
||||||
|
|
||||||
if test "$default" = "openmpi-%{version}"; then
|
|
||||||
echo "WARNING: This RPM was the default MPI implementation!"
|
|
||||||
echo "WARNING: There is no NO DEFAULT MPI implementation!"
|
|
||||||
switcher mpi = none --system --force --silent
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove this module's name from the switcher repository
|
|
||||||
|
|
||||||
switcher mpi --rm-name openmpi-%{version} --force --silent
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#############################################################################
|
|
||||||
#
|
|
||||||
# Files Section
|
|
||||||
#
|
|
||||||
#############################################################################
|
|
||||||
%files
|
|
||||||
%defattr(-,root,root)
|
|
||||||
%{_pkgdatadir}/openmpi-%{version}
|
|
||||||
|
|
||||||
|
|
||||||
#############################################################################
|
|
||||||
#
|
|
||||||
# Changelog
|
|
||||||
#
|
|
||||||
#############################################################################
|
|
||||||
%changelog
|
|
||||||
* Wed Dec 31 2003 Jeff Squyres <jsquyres@lam-mpi.rg>
|
|
||||||
- First version. Hopefully, this RPM won't need to live very long
|
|
||||||
because LAM/MPI 7.1 will obviate the need for it.
|
|
65
contrib/dist/linux/ompi-switcher-modulefile.tcl
поставляемый
65
contrib/dist/linux/ompi-switcher-modulefile.tcl
поставляемый
@ -1,65 +0,0 @@
|
|||||||
#%Module -*- tcl -*-
|
|
||||||
#
|
|
||||||
# Copyright (c) 2006 The Trustees of Indiana University and Indiana
|
|
||||||
# University Research and Technology
|
|
||||||
# Corporation. All rights reserved.
|
|
||||||
# Copyright (c) 2006 Cisco Systems, Inc. All rights reserved.
|
|
||||||
# $COPYRIGHT$
|
|
||||||
#
|
|
||||||
# Additional copyrights may follow
|
|
||||||
#
|
|
||||||
# $HEADER$
|
|
||||||
|
|
||||||
# This modulefile is a dispatcher for other Open MPI modulefiles. It
|
|
||||||
# looks around the environment of the machine and determines which
|
|
||||||
# Open MPI modulefile to load (i.e., which Open MPI installation to
|
|
||||||
# use).
|
|
||||||
|
|
||||||
proc ModulesHelp { } {
|
|
||||||
puts stderr "\tThis module acts as a dispatcher to automatically"
|
|
||||||
puts stderr "\tload the 'right' Open MPI installation into your"
|
|
||||||
puts stderr "\tenvironment based on what Open MPI installations are"
|
|
||||||
puts stderr "\tavailable and the environment available on this machine."
|
|
||||||
}
|
|
||||||
|
|
||||||
module-whatis "Automatically select an appropriate Open MPI modulefile to load."
|
|
||||||
|
|
||||||
# Don't let any other MPI module be loaded while this one is loaded
|
|
||||||
|
|
||||||
conflict mpi
|
|
||||||
|
|
||||||
# Directory where we'll find the Open MPI modulefiles.
|
|
||||||
|
|
||||||
set modulefiledir /opt/modules/modulefiles
|
|
||||||
|
|
||||||
# See if we have BLCR and/or GM
|
|
||||||
|
|
||||||
set have_blcr [file exists /usr/lib/libcr.so]
|
|
||||||
set have_gm [file exists /usr/lib/libgm.so]
|
|
||||||
|
|
||||||
# Get the version number of the Open MPI represented by this modulefile
|
|
||||||
|
|
||||||
set version [lindex [split [module-info name] "-"] 1]
|
|
||||||
|
|
||||||
# If we find a matching modulefile, [un]load it. Otherwise, fail
|
|
||||||
# silently because we don't want to interject stuff in stderr for fear
|
|
||||||
# of breaking system-level scripts (e.g., cexec). The "break"
|
|
||||||
# statement in the final else clause will ensure that this module is
|
|
||||||
# actually not loaded. So fail silently, but under protest. ;-)
|
|
||||||
|
|
||||||
set dir "$modulefiledir/openmpi"
|
|
||||||
if { $have_blcr == 1 && $have_gm == 1 &&
|
|
||||||
[file exists $dir/openmpi-with-blcr-and-gm-$version] } {
|
|
||||||
module load $dir/openmpi-with-blcr-and-gm-$version
|
|
||||||
} elseif { $have_blcr == 0 && $have_gm == 1 &&
|
|
||||||
[file exists $dir/openmpi-with-gm-$version] } {
|
|
||||||
module load $dir/openmpi-with-gm-$version
|
|
||||||
} elseif { $have_blcr == 1 && $have_gm == 0 &&
|
|
||||||
[file exists $dir/openmpi-with-blcr-$version] } {
|
|
||||||
module load $dir/openmpi-with-blcr-$version
|
|
||||||
} elseif { [file exists $dir/openmpi-$version] } {
|
|
||||||
module load $dir/openmpi-$version
|
|
||||||
} else {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче
Block a user