rpms/orsa/devel ORSA_MPI,NONE,1.1 orsa.spec,1.9,1.10
Miloš Jakubíček
mjakubicek at fedoraproject.org
Fri Jul 24 10:37:32 UTC 2009
- Previous message (by thread): rpms/alt-ergo/F-10 .cvsignore, 1.2, 1.3 alt-ergo.spec, 1.2, 1.3 import.log, 1.2, 1.3 sources, 1.3, 1.4
- Next message (by thread): rpms/mediawiki/devel mediawiki.spec,1.33,1.34
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: mjakubicek
Update of /cvs/pkgs/rpms/orsa/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv21786
Modified Files:
orsa.spec
Added Files:
ORSA_MPI
Log Message:
- Reenabled MPI support in a way described in BZ#511099, introduced
separate subpackages with support for OpenMPI, MPICH2 and LAM MPI
implementations.
- Written ORSA_MPI user documentation about MPI support
--- NEW FILE ORSA_MPI ---
# USING ORSA WITH MPI SUPPORT IN FEDORA
# Last change: Milos Jakubicek, July 24, 2009
There are 4 different builds of orsa with different MPI support:
orsa(-devel) -- No MPI support
orsa-openmpi(-devel) -- Built with OpenMPI support
orsa-mpich2(-devel) -- Built with MPICH2 MPI support
orsa-lam-(-devel) -- Built with LAM MPI support
Environment-modules are used to enable parallel installation and usage of all of the supported MPI implementations.
Before using orsa with MPI support, you have to load the particular module, which ensures setting proper PATH and LD_LIBRARY_PATH variables:
First you have to load the functions:
. /etc/profile.d/modules.sh
followed by:
module load openmpi-%{_arch}
OR
module load %{_datadir}/mpich2/mpich2.module
OR
module load lam-%{_arch}
You can use
rpm --eval "%{_arch} %{_datadir}"
to find out proper values for your machine.
For unloading a module substitute "load" with "unload" in the above commands.
Index: orsa.spec
===================================================================
RCS file: /cvs/pkgs/rpms/orsa/devel/orsa.spec,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -p -r1.9 -r1.10
--- orsa.spec 13 Jul 2009 14:43:21 -0000 1.9
+++ orsa.spec 24 Jul 2009 10:37:31 -0000 1.10
@@ -1,12 +1,13 @@
Name: orsa
Version: 0.7.0
-Release: 9%{?dist}
+Release: 10%{?dist}
Summary: Orbit Reconstruction, Simulation and Analysis
Group: Amusements/Graphics
License: GPLv2+
URL: http://orsa.sourceforge.net
Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
+Source1: ORSA_MPI
# Patch to build with GCC 4.3
# Reported into upstream bugtracker as
# http://sourceforge.net/tracker/index.php?func=detail&aid=2099077&group_id=44502&atid=439768
@@ -32,8 +33,6 @@ BuildRequires: fftw2-devel
BuildRequires: gsl-devel
BuildRequires: cln-devel
BuildRequires: ginac-devel
-# Temporarily disabled as current openmpi builds do not ship -devel, nor its previous content in the main package
-# BuildRequires: openmpi-devel
%description
ORSA is an interactive tool for scientific grade Celestial Mechanics
@@ -48,30 +47,166 @@ Requires: fftw2-devel
Requires: gsl-devel
Requires: zlib-devel
Requires: %{name} = %{version}-%{release}
+Requires: %{name}-headers = %{version}-%{release}
%description devel
This package contains development files for %{name}.
+%package openmpi
+Summary: A build of %{name} with support for OpenMPI
+Group: Applications/Engineering
+
+BuildRequires: openmpi-devel
+
+%description openmpi
+This package contains a build of %{name} with support for OpenMPI.
+
+%package openmpi-devel
+Summary: Development files for %{name} build with support for OpenMPI
+Group: Development/Libraries
+
+Requires: %{name}-openmpi = %{version}-%{release}
+Requires: %{name}-headers = %{version}-%{release}
+
+%description openmpi-devel
+This package contains development files for a build of %{name}
+ with support for OpenMPI.
+
+%package mpich2
+Summary: A build of %{name} with support for MPICH2 MPI
+Group: Applications/Engineering
+
+BuildRequires: mpich2-devel
+
+%description mpich2
+This package contains a build of %{name} with support for MPICH2 MPI.
+
+%package mpich2-devel
+Summary: Development files for %{name} build with support for MPICH2 MPI
+Group: Development/Libraries
+
+Requires: %{name}-mpich2 = %{version}-%{release}
+Requires: %{name}-headers = %{version}-%{release}
+
+%description mpich2-devel
+This package contains development files for a build of %{name}
+with support for MPICH2 MPI.
+
+%package lam
+Summary: A build of %{name} with support for LAM MPI
+Group: Applications/Engineering
+
+BuildRequires: lam-devel
+
+%description lam
+This package contains a build of %{name} with support for LAM MPI.
+
+%package lam-devel
+Summary: Development files for %{name} build with support for LAM MPI
+Group: Development/Libraries
+
+Requires: %{name}-lam = %{version}-%{release}
+Requires: %{name}-headers = %{version}-%{release}
+
+%description lam-devel
+This package contains development files for a build of %{name}
+with support for LAM MPI.
+
+%package headers
+Summary: Headers for development with %{name}
+Group: Development/Libraries
+
+%description headers
+This package contains C++ header files for development with %{name}.
+
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2
+# Install user hints for MPI support
+install -p -m644 %{SOURCE1} .
+
%build
+# Have to build in the install step to do multiple builds
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
# honor $RPM_OPT_FLAGS
sed -i 's|-g -Wall -W -pipe -ftemplate-depth-64 -O3 -fno-exceptions -funroll-loops -fstrict-aliasing -fno-gcse|$CXXFLAGS|' configure
-%configure --disable-static --with-mpi "CLN_CONFIG=`which pkg-config` cln" "GINACLIB_CONFIG=`which pkg-config` ginac" CXXFLAGS="$CXXFLAGS -DHAVE_INLINE"
+
+# common configure options for MPI as well as non-MPI builds
+%global confflags --disable-dependency-tracking --disable-static "CLN_CONFIG=`which pkg-config` cln" "GINACLIB_CONFIG=`which pkg-config` ginac" CXXFLAGS="$CXXFLAGS -DHAVE_INLINE"
+
+# load the module function
+. /etc/profile.d/modules.sh
+%global OpenMPI_BIN %(. /etc/profile.d/modules.sh; module load openmpi-%{_arch}; echo $MPI_BIN)
+%global OpenMPI_LIB %(. /etc/profile.d/modules.sh; module load openmpi-%{_arch}; echo $MPI_LIB)
+%global LAM_BIN %(. /etc/profile.d/modules.sh; module load lam-%{_arch}; echo $MPI_BIN | sed 's|-L||')
+%global LAM_LIB %(. /etc/profile.d/modules.sh; module load lam-%{_arch}; echo $MPI_LIB | sed 's|-L||')
+%global MPICH_BIN %(. /etc/profile.d/modules.sh; module load %{_datadir}/mpich2/mpich2.module; echo $PATH | cut -f 1 -d :)
+
+################################
+echo -e "\n##############################\nNow making the non-MPI version\n##############################\n"
+################################
+
+%configure %{confflags}
# remove rpaths
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
make %{?_smp_mflags}
+make install DESTDIR=$RPM_BUILD_ROOT
+# we don't want to ship libtool archives:
+rm $RPM_BUILD_ROOT%{_libdir}/{liborsa.la,libxorsa.la}
+make clean
-%install
-rm -rf $RPM_BUILD_ROOT
+################################
+echo -e "\n##############################\nNow making the OpenMPI version\n##############################\n"
+################################
+module load openmpi-%{_arch}
+%configure --with-mpi --prefix=$MPI_HOME --bindir=$MPI_BIN --libdir=$MPI_LIB %{confflags}
+# remove rpaths
+sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
+sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
+make CC=mpicc %{?_smp_mflags}
make install DESTDIR=$RPM_BUILD_ROOT
# we don't want to ship libtool archives:
-rm $RPM_BUILD_ROOT%{_libdir}/liborsa.la $RPM_BUILD_ROOT%{_libdir}/libxorsa.la
+rm $RPM_BUILD_ROOT/$MPI_LIB/{liborsa.la,libxorsa.la}
+make clean
+module unload openmpi-%{_arch}
+
+################################
+echo -e "\n##############################\nNow making the MPICH2 version\n##############################\n"
+################################
+module load %{_datadir}/mpich2/mpich2.module
+%configure --with-mpi --bindir=%{MPICH_BIN} --libdir=%{_libdir}/mpich2/ %{confflags} MPICXX=mpicxx
+# remove rpaths
+sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
+sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
+make CC=mpicxx %{?_smp_mflags}
+make install DESTDIR=%{buildroot}
+# we don't want to ship libtool archives:
+rm $RPM_BUILD_ROOT%{_libdir}/mpich2/{liborsa.la,libxorsa.la}
+make clean
+module unload %{_datadir}/mpich2/mpich2.module
+
+################################
+echo -e "\n##############################\nNow making the LAM version\n##############################\n"
+################################
+module load lam-%{_arch}
+export MPI_HOME=`echo $MPI_HOME | sed 's|-L||'`
+export MPI_BIN=`echo $MPI_BIN | sed 's|-L||'`
+export MPI_LIB=`echo $MPI_LIB | sed 's|-L||'`
+%configure --with-mpi --prefix=$MPI_HOME --bindir=$MPI_BIN --libdir=$MPI_LIB %{confflags} MPICXX=mpic++
+# remove rpaths
+sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
+sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
+make CC=mpic++ %{?_smp_mflags}
+make install DESTDIR=%{buildroot}
+# we don't want to ship libtool archives:
+rm $RPM_BUILD_ROOT/$MPI_LIB/{liborsa.la,libxorsa.la}
%clean
rm -rf $RPM_BUILD_ROOT
@@ -82,18 +217,59 @@ rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
-%doc COPYING DEVELOPERS
+%doc COPYING DEVELOPERS ORSA_MPI
%{_bindir}/xorsa
%{_libdir}/liborsa.so.*
%{_libdir}/libxorsa.so.*
%files devel
%defattr(-,root,root,-)
+%{_libdir}/*.so
+
+%files headers
+%defattr(-,root,root,-)
%{_includedir}/*
-%{_libdir}/liborsa.so
-%{_libdir}/libxorsa.so
+
+%files openmpi
+%defattr(-,root,root,-)
+%doc COPYING DEVELOPERS ORSA_MPI
+%{OpenMPI_LIB}/liborsa.so.*
+%{OpenMPI_LIB}/libxorsa.so.*
+%{OpenMPI_BIN}/*
+
+%files openmpi-devel
+%defattr(-,root,root,-)
+%{OpenMPI_LIB}/*.so
+
+%files mpich2
+%defattr(-,root,root,-)
+%doc COPYING DEVELOPERS ORSA_MPI
+%{MPICH_BIN}/*
+%{_libdir}/mpich2/liborsa.so.*
+%{_libdir}/mpich2/libxorsa.so.*
+
+%files mpich2-devel
+%defattr(-,root,root,-)
+%{_libdir}/mpich2/*.so
+
+%files lam
+%defattr(-,root,root,-)
+%doc COPYING DEVELOPERS ORSA_MPI
+%{LAM_LIB}/liborsa.so.*
+%{LAM_LIB}/libxorsa.so.*
+%{LAM_BIN}/*
+
+%files lam-devel
+%defattr(-,root,root,-)
+%{LAM_LIB}/*.so
%changelog
+* Fri Jul 24 2009 Milos Jakubicek <xjakub at fi.muni.cz> - 0.7.0-10
+- Reenabled MPI support in a way described in BZ#511099, introduced
+ separate subpackages with support for OpenMPI, MPICH2 and LAM MPI
+ implementations.
+- Written ORSA_MPI user documentation about MPI support
+
* Mon Jul 13 2009 Milos Jakubicek <xjakub at fi.muni.cz> - 0.7.0-9
- Rebuilt against new cln 1.3.0
- Temporarily disabled MPI support as current openmpi builds do not ship -devel,
- Previous message (by thread): rpms/alt-ergo/F-10 .cvsignore, 1.2, 1.3 alt-ergo.spec, 1.2, 1.3 import.log, 1.2, 1.3 sources, 1.3, 1.4
- Next message (by thread): rpms/mediawiki/devel mediawiki.spec,1.33,1.34
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list