1
1

Merge pull request #3248 from jsquyres/pr/remove-macosx-pkg-support

dist: remove OS X package script
Этот коммит содержится в:
Jeff Squyres 2017-03-29 18:46:14 -04:00 коммит произвёл GitHub
родитель f980cba6b3 f0a8a0af51
Коммит 7e57075f0d
3 изменённых файлов: 1 добавлений и 587 удалений

Просмотреть файл

@ -9,7 +9,7 @@
# University of Stuttgart. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2009-2017 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2010 IBM Corporation. All rights reserved.
# Copyright (c) 2010-2011 Oak Ridge National Labs. All rights reserved.
# Copyright (c) 2013-2016 Los Alamos National Security, Inc. All rights
@ -38,8 +38,6 @@ EXTRA_DIST = \
dist/linux/openmpi.spec \
dist/mofed/compile_debian_mlnx_example.in \
dist/mofed/debian \
dist/macosx-pkg/buildpackage.sh \
dist/macosx-pkg/ReadMe.rtf \
platform/optimized \
platform/redstorm \
platform/cray_xt3 \

34
contrib/dist/macosx-pkg/ReadMe.rtf поставляемый
Просмотреть файл

@ -1,34 +0,0 @@
{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
{\fonttbl\f0\fnil\fcharset77 Verdana;\f1\fswiss\fcharset77 Helvetica;}
{\colortbl;\red255\green255\blue255;\red0\green0\blue236;}
\margl1440\margr1440\vieww10580\viewh15280\viewkind0
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sa240\ql\qnatural
\f0\fs24 \cf0 Open MPI is a project combining technologies and resources from several other projects ({\field{\*\fldinst{HYPERLINK "http://icl.cs.utk.edu/ftmpi/"}}{\fldrslt \cf2 \ul \ulc2 FT-MPI}}, {\field{\*\fldinst{HYPERLINK "http://public.lanl.gov/lampi/"}}{\fldrslt \cf2 \ul \ulc2 LA-MPI}}, {\field{\*\fldinst{HYPERLINK "http://www.lam-mpi.org/"}}{\fldrslt \cf2 \ul \ulc2 LAM/MPI}}, and {\field{\*\fldinst{HYPERLINK "http://www.hlrs.de/organization/pds/projects/pacx-mpi/"}}{\fldrslt \cf2 \ul \ulc2 PACX-MPI}}) in order to build the best MPI library available. A completely new MPI-2 compliant implementation, Open MPI offers advantages for system and software vendors, application developers and computer science researchers.
\f1 More information about Open MPI, including all the source code and documentation, is available from the main web site:\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
\cf0 \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\qc
{\field{\*\fldinst{HYPERLINK "http://www.open-mpi.org/"}}{\fldrslt \cf0 http://www.open-mpi.org/}}\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
\cf0 \
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
\cf0 \ul \ulc0 Special OS X Package Notes\ulnone \
\
The binary package for Open MPI includes support for TCP and shared memory transports, with rsh/ssh and XGrid job launching. Sites requiring support for other networks or job launching mechanisms will need to rebuild from source.\
\
There is no Fortran support in this binary package, as Apple does not ship a Fortran compiler with the Developer Tools - if you have a Fortran compiler and need Fortran support from Open MPI, you will have to build it from source.\
\
Because HFS+ is case-preserving but not case-sensitive, the C++ wrapper compiler is named mpic++, not the traditional mpiCC (which would conflict with mpicc).\
\
\
\ul Getting Help\
\ulnone \
Please see the Open MPI web page for help with Open MPI, especially the frequently asked questions.\
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\qc
\cf0 http://www.open-mpi.org/faq/\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
\cf0 \
If this does not answer your question, further help is available via our mailing list at users@open-mpi.org}

550
contrib/dist/macosx-pkg/buildpackage.sh поставляемый
Просмотреть файл

@ -1,550 +0,0 @@
#!/bin/bash
# Copyright (c) 2001-2006 The Trustees of Indiana University.
# All rights reserved.
# Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights
# reserved.
#
# This file is part of the Open MPI software package. For license
# information, see the LICENSE file in the top level directory of the
# Open MPI source distribution.
#
#
#
# Build a Mac OS X package for use by Installer.app
#
# Usage: buildpackage.sh <tarball> [prefix]
#
# Prefix defaults to /usr/local
########################################################################
#
# Configuration Options
#
########################################################################
#
# User-configurable stuff
#
OMPI_PACKAGE="openmpi"
OMPI_PREFIX="/usr/local/"
OMPI_OPTIONS="--disable-mpi-f77 --without-cs-fs --enable-mca-no-build=ras-slurm,pls-slurm,gpr-null,sds-pipe,sds-slurm,pml-cm NM=\"nm -p\""
OMPI_OSX_README="ReadMe.rtf"
# note - if want XGrid support, make sure that a cocoa-supported
# architecture appears first on the list. Otherwise, we won't
# lipo that component and it will be dropped
OPAL_ARCH_LIST="ppc ppc64 i386 x86_64"
OMPI_SDK="/Developer/SDKs/MacOSX10.4u.sdk"
#
# Not so modifiable stuff
#
BUILD_TMP="/tmp/buildpackage-$$"
if test ! "$2" = ""; then
OMPI_PREFIX="$2"
fi
OMPI_STARTDIR=`pwd`
echo "--> Configuration options:"
echo " Package Name: $OMPI_PACKAGE"
echo " Prefix: $OMPI_PREFIX"
echo " Config Options: $OMPI_OPTIONS"
echo " Architectures: $OPAL_ARCH_LIST"
echo " Target SDK: $OMPI_SDK"
echo ""
########################################################################
#
# Start actual code that does stuff
#
########################################################################
#
# Sanity check
#
fulltarball="$1"
if test "$fulltarball" = ""; then
echo "Usage: buildpackage.sh <tarball> [prefix]"
exit 1
fi
if test ! -f $fulltarball; then
echo "*** Can't find $fulltarball!"
exit 1
fi
echo "--> Found tarball: $fulltarball"
#
# Find version info
#
tarball=`basename $fulltarball`
first="`echo $tarball | cut -d- -f2`"
version="`echo $first | sed -e 's/\.tar\.gz//'`"
unset first
echo "--> Found OMPI version: $version"
OMPI_VER_PACKAGE="${OMPI_PACKAGE}-${version}"
#
# Sanity check that we can continue
#
if test -d "/Volumes/${OMPI_VER_PACKAGE}"; then
echo "*** Already have disk image (/Volumes/${OMPI_VER_PACKAGE}) mounted."
echo "*** Unmount and try again"
exit 1
fi
if test ! -r "${OMPI_OSX_README}"; then
echo "*** Can not find ${OMPI_OSX_README} in `pwd`."
exit 1
else
OMPI_OSX_README="`pwd`/${OMPI_OSX_README}"
fi
#
# Clean out the environment a bit
#
echo "--> Cleaning environment"
PATH=/bin:/sbin/:/usr/bin
LANGUAGE=C
LC_ALL=C
LC_MESSAGES=
LANG=
export PATH LANGUAGE LC_ALL LC_MESSAGES LANG
unset LD_LIBRARY_PATH CC CXX FC F77 OBJC
#
# Make some play space
#
echo "--> Making play space: $BUILD_TMP"
if test -d $BUILD_TMP; then
echo "Build dir $BUILD_TMP exists - exiting"
exit 1
fi
# -p is safe - will only run on OS X
mkdir -p $BUILD_TMP
########################################################################
#
# Configure, Build, and Install Open MPI
#
########################################################################
#
# Put tarball in right place
#
echo "--> Copying tarball"
cp $fulltarball $BUILD_TMP/.
cd $BUILD_TMP
#
# Expand tarball
#
# we know there can't be spaces in $tarball - filename only
cmd="tar xzf $tarball"
echo "--> Untarring source: $cmd"
eval $cmd
srcdir="$BUILD_TMP/openmpi-$version"
if test ! -d "$srcdir"; then
echo "*** Didn't find $srcdir as expected - aborting"
exit 1
fi
build_arch=`uname -p`"-apple-darwin"`uname -r`
real_install=1
for arch in $OPAL_ARCH_LIST ; do
builddir="$BUILD_TMP/build-$arch"
mkdir "$builddir"
case "$arch" in
ppc)
host_arch="powerpc-apple-darwin"`uname -r`
;;
ppc64)
# lie, but makes building on G4 easier
host_arch="powerpc64-apple-darwin"`uname -r`
;;
i386)
host_arch="i386-apple-darwin"`uname -r`
;;
x86_64)
host_arch="x86_64-apple-darwin"`uname -r`
;;
*)
echo "**** Could not find arch string for $arch ****"
exit 1
;;
esac
#
# Run configure
#
cd $builddir
config="$srcdir/configure CFLAGS=\"-arch $arch -isysroot $OMPI_SDK\" CXXFLAGS=\"-arch $arch -isysroot $OMPI_SDK\" OBJCFLAGS=\"-arch $arch -isysroot $OMPI_SDK\" --prefix=$OMPI_PREFIX $OMPI_OPTIONS --build=$build_arch --host=$host_arch"
echo "--> Running configure: $config"
eval $config > "$BUILD_TMP/configure.out-$arch" 2>&1
if test $? != 0; then
echo "*** Problem running configure - aborting!"
echo "*** See $BUILD_TMP/configure.out-$arch for help."
exit 1
fi
#
# Build
#
cmd="make -j 4 all"
echo "--> Building: $cmd"
eval $cmd > "$BUILD_TMP/make.out-$arch" 2>&1
if test $? != 0; then
echo "*** Problem building - aborting!"
echo "*** See $BUILD_TMP/make.out-$arch for help."
exit 1
fi
#
# Install into tmp place
#
if test $real_install -eq 1 ; then
distdir="dist"
real_install=0
else
distdir="dist-$arch"
fi
fulldistdir="$BUILD_TMP/$distdir"
cmd="make DESTDIR=$fulldistdir install"
echo "--> Installing:"
eval $cmd > "$BUILD_TMP/install.out-$arch" 2>&1
if test $? != 0; then
echo "*** Problem installing - aborting!"
echo "*** See $BUILD_TMP/install.out-$arch for help."
exit 1
fi
#
# Copy in special doc files
#
SPECIAL_FILES="README LICENSE"
echo "--> Copying in special files: $SPECIAL_FILES"
pushd $srcdir >/dev/null
mkdir -p "${fulldistdir}/${OMPI_PREFIX}/share/openmpi/doc"
cp $SPECIAL_FILES "${fulldistdir}/${OMPI_PREFIX}/share/openmpi/doc/."
if [ ! $? = 0 ]; then
echo "*** Problem copying files $SPECIAL_FILES. Aborting!"
exit 1
fi
popd >/dev/null
distdir=
fulldistdir=
done
########################################################################
#
# Make the fat binary
#
########################################################################
print_arch_if() {
case "$1" in
ppc)
echo "#ifdef __ppc__" >> mpi.h
;;
ppc64)
echo "#ifdef __ppc64__" >> mpi.h
;;
i386)
echo "#ifdef __i386__" >> mpi.h
;;
x86_64)
echo "#ifdef __x86_64__" >> mpi.h
;;
*)
echo "*** Could not find arch #ifdef for $1"
exit 1
;;
esac
}
# Set arch to the first arch in the list. Go through the for loop,
# although we'll break out at the end of the first time through. Look
# at the other arches that were built by using ls.
for arch in $OPAL_ARCH_LIST ; do
cd $BUILD_TMP
other_archs=`ls -d dist-*`
fulldistdir="$BUILD_TMP/dist"
echo "--> Creating fat binares and libraries"
for other_arch in $other_archs ; do
cd "$fulldistdir"
# <prefix>/bin - don't copy in 64 bit binaries
if echo $other_arch | grep -v 64 > /dev/null ; then
files=`find ./${OMPI_PREFIX}/bin -type f -print`
for file in $files ; do
other_file="$BUILD_TMP/${other_arch}/$file"
if test -r $other_file ; then
lipo -create $file $other_file -output $file
fi
done
fi
# <prefix>/lib - ignore .la files
files=`find ./${OMPI_PREFIX}/lib -type f -print | grep -v '\.la$'`
for file in $files ; do
other_file="$BUILD_TMP/${other_arch}/$file"
if test -r $other_file ; then
lipo -create $file $other_file -output $file
else
echo "Not lipoing missing file $other_file"
fi
done
done
cd $BUILD_TMP
echo "--> Creating multi-architecture mpi.h"
# mpi.h
# get the top of mpi.h
mpih_top=`grep -n '@OMPI_BEGIN_CONFIGURE_SECTION@' $BUILD_TMP/dist/${OMPI_PREFIX}/include/mpi.h | cut -f1 -d:`
mpih_top=`echo "$mpih_top - 1" | bc`
head -n $mpih_top $BUILD_TMP/dist/${OMPI_PREFIX}/include/mpi.h > mpih_top.txt
# now the bottom of mpi.h
mpih_bottom_top=`grep -n '@OMPI_END_CONFIGURE_SECTION@' $BUILD_TMP/dist/${OMPI_PREFIX}/include/mpi.h | cut -f1 -d:`
mpih_bottom_bottom=`wc -l $BUILD_TMP/dist/${OMPI_PREFIX}/include/mpi.h | cut -f1 -d/`
mpih_bottom=`echo "$mpih_bottom_bottom - $mpih_bottom_top" | bc`
tail -n $mpih_bottom $BUILD_TMP/dist/${OMPI_PREFIX}/include/mpi.h > mpih_bottom.txt
# now get our little section of fun
mpih_top=`echo "$mpih_top + 1" | bc`
mpih_fun_len=`echo "$mpih_bottom_top - $mpih_top + 1" | bc`
head -n $mpih_bottom_top $BUILD_TMP/dist/${OMPI_PREFIX}/include/mpi.h | tail -n $mpih_fun_len > mpih_$arch.txt
# start putting it back together
rm -f mpi.h
cat mpih_top.txt > mpi.h
print_arch_if $arch
cat mpih_$arch.txt >> mpi.h
echo "#endif" >> mpi.h
for other_arch_dir in $other_archs ; do
other_arch=`echo $other_arch_dir | cut -f2 -d-`
mpih_top=`grep -n '@OMPI_BEGIN_CONFIGURE_SECTION@' $BUILD_TMP/$other_arch_dir/${OMPI_PREFIX}/include/mpi.h | cut -f1 -d:`
mpih_bottom_top=`grep -n '@OMPI_END_CONFIGURE_SECTION@' $BUILD_TMP/$other_arch_dir/${OMPI_PREFIX}/include/mpi.h | cut -f1 -d:`
mpih_fun_len=`echo "$mpih_bottom_top - $mpih_top + 1" | bc`
head -n $mpih_bottom_top $BUILD_TMP/$other_arch_dir/${OMPI_PREFIX}/include/mpi.h | tail -n $mpih_fun_len > mpih_$other_arch.txt
print_arch_if $other_arch
cat mpih_$other_arch.txt >> mpi.h
echo "#endif" >> mpi.h
done
cat mpih_bottom.txt >> mpi.h
mv mpi.h $BUILD_TMP/dist/${OMPI_PREFIX}/include/.
rm mpih*
break
done
# set component load errors to false, as we're almost always going to
# fail to load the XGrid components on 64 bit systems, and users don't
# need to see that.
echo "mca_component_show_load_errors = 0" >> $BUILD_TMP/dist/${OMPI_PREFIX}/etc/openmpi-mca-params.conf
########################################################################
#
# Do all the package mojo
#
########################################################################
#
# Prep package info
#
debug_file="${BUILD_TMP}/disk.out"
touch "$debug_file"
echo "--> Creating Package Info:"
cd $BUILD_TMP
pkdir="${BUILD_TMP}/${OMPI_PACKAGE}.pkg"
mkdir -p ${pkdir}
mkdir ${pkdir}/Contents
mkdir ${pkdir}/Contents/Resources
mkdir ${pkdir}/Contents/Resources/English.lproj
echo 'pmkrpkg1' > ${pkdir}/Contents/PkgInfo
infofile=${pkdir}/Contents/Resources/English.lproj/${OMPI_PACKAGE}.info
echo "Title Open MPI ${version}" > ${infofile}
echo "Version ${version}" >> ${infofile}
echo "Description Install Open MPI ${version}" >> ${infofile}
echo 'DefaultLocation /' >> ${infofile}
echo 'DeleteWarning' >> ${infofile}
echo 'NeedsAuthorization YES' >> ${infofile}
echo 'Required NO' >> ${infofile}
echo 'Relocatable NO' >> ${infofile}
echo 'RequiresReboot NO' >> ${infofile}
echo 'UseUserMask NO' >> ${infofile}
echo 'OverwritePermissions NO' >> ${infofile}
echo 'InstallFat NO' >> ${infofile}
echo "--> Copying OS X-specific ReadMe into package"
cp "${OMPI_OSX_README}" "${pkdir}/Contents/Resources/ReadMe.rtf"
if [ ! $? = 0 ]; then
echo "*** Could not copy in ReadMe.rtf. Aborting!"
exit 1
fi
echo "--> Creating pax file"
CWD=`pwd`
cd "$fulldistdir"
pax -w -f "${pkdir}/Contents/Resources/${OMPI_PACKAGE}.pax" . >> "$debug_file" 2>&1
if [ ! $? = 0 ]; then
echo "*** Failed building pax file. Aborting!"
echo "*** Check $debug_file for information"
cd "$CWD"
exit 1
fi
cd "$CWD"
unset CWD
echo "--> Compressing pax file"
gzip "${pkdir}/Contents/Resources/${OMPI_PACKAGE}.pax" >> "$debug_file" 2>&1
if [ ! $? = 0 ]; then
echo "*** Failed compressing pax file. Aborting!"
echo "*** Check $debug_file for information"
exit 1
fi
echo "--> Creating bom file"
mkbom "$fulldistdir" "${pkdir}/Contents/Resources/${OMPI_PACKAGE}.bom" >> "$debug_file" 2>&1
if [ ! $? = 0 ]; then
echo "*** Failed building bom file. Aborting!"
echo "*** Check $debug_file for information"
exit 1
fi
echo "--> Generating sizes file:"
sizesfile="${pkdir}/Contents/Resources/${OMPI_PACKAGE}.sizes"
numFiles=`du -a ${fulldistdir} | wc -l`
installedSize=`du -s ${fulldistdir} | cut -f1`
compressedSize=`du -s ${fulldistdir} | cut -f1`
echo "NumFiles ${numFiles}" > ${sizesfile}
echo "InstalledSize ${installedSize}" >> ${sizesfile}
echo "CompressedSize ${compressedSize}" >> ${sizesfile}
cat ${sizesfile}
#
# Make a disk image in read-write mode
#
echo "--> Creating Disc Image"
# Allocated about 2.5MB more than we need, just to be safe. If that
# number is less than about 5MB, make 5MB to keep disk utilities
# happy.
sectorsAlloced=`echo 2*${compressedSize}+50|bc`
if [ $sectorsAlloced -lt 10000 ]; then
sectorsAlloced=10000
fi
hdiutil create -ov "${BUILD_TMP}/${OMPI_VER_PACKAGE}RW" -sectors ${sectorsAlloced} >> "$debug_file" 2>&1
if [ ! $? = 0 ]; then
echo "*** Failed hdiutil create. Aborting!"
echo "*** Check $debug_file for information"
exit 1
fi
mountLoc=`hdid -nomount ${BUILD_TMP}/${OMPI_VER_PACKAGE}RW.dmg | grep HFS | cut -f1`
/sbin/newfs_hfs -v ${OMPI_VER_PACKAGE} ${mountLoc} >> "$debug_file" 2>&1
if [ ! $? = 0 ]; then
echo "*** Failed building HFS+ file system. Aborting!"
echo "*** Check $debug_file for information"
exit 1
fi
hdiutil eject ${mountLoc} >> "$debug_file" 2>&1
if [ ! $? = 0 ]; then
echo "*** Could not unmount $mountLoc. Aborting!"
echo "*** Check $debug_file for information"
exit 1
fi
#
# Copy above package into the disk image
#
echo "--> Copying Package to Disc Image"
hdid "${BUILD_TMP}/${OMPI_VER_PACKAGE}RW.dmg" >> "$debug_file" 2>&1
if [ ! $? = 0 ]; then
echo "*** Could not mount ${BUILD_TMP}/${OMPI_VER_PACKAGE}RW.dmg. Aborting!"
echo "*** Check $debug_file for information"
exit 1
fi
if [ ! -d "/Volumes/${OMPI_VER_PACKAGE}" ]; then
echo "*** /Volumes/${OMPI_VER_PACKAGE} does not exist. Aborting!"
echo "*** Check $debug_file for information"
exit 1
fi
cp -R "${pkdir}" "/Volumes/${OMPI_VER_PACKAGE}"
if [ ! $? = 0 ]; then
echo "*** Error copying ${OMPI_VER_PACKAGE}.pkg. Aborting!"
echo "*** Check $debug_file for information"
exit 1
fi
#
# Converting Disk Image to read-only (and shrink to size needed)
#
cmd="hdiutil eject ${mountLoc}"
echo "--> Ejecting R/W disk: $cmd"
eval $cmd >> "$debug_file" 2>&1
if [ ! $? = 0 ]; then
echo "*** Error ejecting R/W disk. Aborting!"
echo "*** Check $debug_file for information"
exit 1
fi
cmd="hdiutil resize \"${BUILD_TMP}/${OMPI_VER_PACKAGE}RW.dmg\" -sectors min"
echo "--> Resizing: $cmd"
eval $cmd >> "$debug_file" 2>&1
if [ ! $? = 0 ]; then
echo "*** Error resizing disk. Aborting!"
echo "*** Check $debug_file for information"
exit 1
fi
cmd="hdiutil convert \"${BUILD_TMP}/${OMPI_VER_PACKAGE}RW.dmg\" -format UDRO -o \"/tmp/${OMPI_VER_PACKAGE}.dmg\""
echo "--> Converting to R-O: $cmd"
eval $cmd >> "$debug_file" 2>&1
if [ ! $? = 0 ]; then
echo "*** Error converting disk to read-only. Aborting!"
echo "*** Check $debug_file for information"
exit 1
fi
echo "--> Compressing disk image"
gzip --best "/tmp/${OMPI_VER_PACKAGE}.dmg"
echo "--> Cleaning up the staging directory"
rm -rf "${BUILD_TMP}"
if [ ! $? = 0 ]; then
echo "*** Could not clean up ${BUILD_TMP}."
echo "You may want to clean it up yourself."
exit 1
fi
echo "--> Done. Package is at: /tmp/${OMPI_VER_PACKAGE}.dmg.gz"