Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:garloff:HPC
mpich2
mpich2.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File mpich2.spec of Package mpich2
# # spec file for package mpich2 # # Copyright (c) 2008 Kurt Garloff, Vasil Yordanov, Deji Akingunola. # This file and all modifications and additions to the pristine # package are under the same license as the package itself. # File based on excellent work by Deji Akingunola # ftp://czar.eas.yorku.ca/pub/mpich2/mpich2.spec # # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %define javadev java-sdk %define fortran gcc-gfortran %if 0%{?fedora_version} >= 7 %define javadev java-1.5.0-gcj-devel %endif %if 0%{?rhel_version} >= 5 %define javadev java-devel %endif %if 0%{?mandriva_version} %define javadev java-devel %endif %if 0%{?suse_version} %define fortran gcc-fortran %if 0%{?suse_version} == 1020 %define javadev java-1_4_2-gcj-compat-devel %define need_jni_detect 1 %endif %if 0%{?suse_version} == 1030 # /etc/alternatives/java_djk/include/jni.h is not found with gcc-java/libgcj-devel :-( %define need_jni_detect 1 %endif %if 0%{?suse_version} < 1000 %define javadev java-devel %define fortran gcc-g77 %endif %endif # norootforbuild Summary: High-performance implementation of MPI-1 and MPI-2 Name: mpich2 Version: 1.2.1p1 # Release: 2%{?dist} Release: 0 License: Freely redistributable without restriction Group: Development/Libraries URL: http://www.mcs.anl.gov/mpi/mpich2 Source: ftp://ftp.mcs.anl.gov/pub/mpi/%{name}-%{version}.tar.bz2 Source1: mpich2.module.in Patch1: obs-shmget.diff Patch2: detect_jni.diff Patch3: mpe2-install.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: e2fsprogs-devel python %{javadev} %{fortran} %if 0%{?fedora_version} BuildRequires: emacs-common libXt-devel gcc-c++ %endif %if 0%{?rhel_version} BuildRequires: emacs-common libXt-devel gcc-c++ %endif %if 0%{?mandriva_version} BuildRequires: emacs-common libXt-devel gcc-c++ %endif %if 0%{?suse_version} BuildRequires: emacs-nox xorg-x11-devel gcc-c++ unzip update-alternatives BuildRequires: ElectricFence psmisc %endif Requires: %{name}-libs = %{version}-%{release} Requires: python %if 0%{?fedora_version} Requires(post): /usr/sbin/alternatives Requires(preun):/usr/sbin/alternatives %endif %description MPICH2 is implemented by Argonne National Laboratory. The goals of MPICH2 are: 1. to provide an MPI implementation that efficiently supports different computation and communication platforms including commodity clusters (desktop systems, shared-memory systems, multicore architectures), high-speed networks (10Gigabit Ethernet, Inifinband, Myrinet, Quadrics) and proprietary high-end computing systems (Blue Gene, Cray, SiCortex). 2. to enable cutting-edge research in MPI through an easy-to-extend modular framework for other derived implemenations. %package devel Summary: Development files for mpich2 Group: Development/Libraries Requires: %{name} = %{version}-%{release} Requires: pkgconfig Requires: %{fortran} %if 0%{?fedora_version} Requires(post): /usr/sbin/alternatives Requires(preun):/usr/sbin/alternatives %endif %description devel Contains development headers and libraries for mpich2 %package libs Summary: Libraries and configuration files for mpich2 Group: Development/Libraries %description libs Contains the arch dependent libraries and their build configuration for mpich2 %package doc Summary: Documentation files for mpich2 Group: Development/Documentation Requires: %{name} = %{version}-%{release} %description doc Contains the documentation for mpich2. %if 0 # TO BE DONE %if 0%{?suse_version} > 0 %ifarch x86_64 %package libs-32bit Summary: 32bit libraries for mpich2 Group: Development/Libraries %description 32bit Contains the 32bit versions of the libraries %endif %endif %endif # We only compile with gcc, but other people may want other compilers. # Set the compiler here. %ifarch %{ix86} ppc %define mode 32 %define priority 40 %else %define mode 64 %define priority 41 %endif %prep %define opt_cc gcc %define opt_fc gfortran # Optional CFLAGS to use with the specific compiler...gcc doesn't need any, # so uncomment and undefine to NOT use %if 0%{?suse_version} > 0 RPM_OPT_FLAGS=$(echo $RPM_OPT_FLAGS | sed 's/\-fstack\-protector//') %else RPM_OPT_FLAGS="%{optflags}" %endif %ifarch %{ix86} x86_64 RPM_OPT_FLAGS="$RPM_OPT_FLAGS -ftree-vectorize -fprefetch-loop-arrays -momit-leaf-frame-pointer" %else RPM_OPT_FLAGS="$RPM_OPT_FLAGS -ftree-vectorize -fprefetch-loop-arrays" %endif %ifarch %{ix86} RPM_OPT_FLAGS="$RPM_OPT_FLAGS -msse" %endif # % define opt_fc_fflags %{opt_cc_flags} %setup -q -b0 %patch1 -p1 -b .shmget %if 0%{?need_jni_detect} > 0 %patch2 -p1 -b .jni %endif %patch3 -p1 -b .mpe2 %if 0%{?suse_verion} > 1100 autoreconf -fi %endif #aclocal #autoheader #autoconf %configure \ --enable-f90 --enable-sharedlibs=gcc \ --sysconfdir=%{_sysconfdir}/%{name}-%{mode} \ --includedir=%{_includedir}/%{name} \ --libdir=%{_libdir}/%{name} \ --datadir=%{_datadir}/%{name} \ --htmldir=%{_docdir}/%{name}-%{version}/www \ --docdir=%{_docdir}/%{name}-%{version} \ --with-java=%{_sysconfdir}/alternatives/java_sdk \ --with-device=ch3:dllchan:sock,shm,ssm \ --with-thread-package=pthreads --enable-mpe \ F90=%{opt_fc} \ F77=%{opt_fc} \ CFLAGS="$RPM_OPT_FLAGS" \ CXXFLAGS="$RPM_OPT_FLAGS" \ F90FLAGS="$RPM_OPT_FLAGS" \ FFLAGS="$RPM_OPT_FLAGS" \ LDFLAGS='-Wl,-z,noexecstack' %build #make %{?_smp_mflags} doesn't work #make %{?jobs:-j%jobs} make %install #rm -rf %{buildroot} make DESTDIR=%{buildroot} install # PACKAGE=mpich2-%{version} ## Resolve clashes with LAM/OPENMP: mpicxx mpicc mpif77 mpif90 mpiexec mpirun rm -f %{buildroot}%{_bindir}/{mpiexec,mpirun,mpdrun} mv %{buildroot}%{_mandir}/man1/{,mp-}mpiexec.1 pushd %{buildroot}%{_bindir}/ ln -s mpiexec.py mpdrun popd mkdir -p %{buildroot}%{_datadir}/%{name}/bin%{mode} for b in mpicxx mpicc mpif77 mpif90; do mv %{buildroot}%{_bindir}/$b %{buildroot}%{_bindir}/mp%{mode}-$b; mv %{buildroot}%{_mandir}/man1/$b.1 %{buildroot}%{_mandir}/man1/mp-$b.1; ln -s %{_bindir}/mp%{mode}-$b %{buildroot}%{_datadir}/%{name}/bin%{mode}/$b done mv %{buildroot}%{_libdir}/%{name}/pkgconfig %{buildroot}%{_libdir}/ chmod -x %{buildroot}%{_libdir}/pkgconfig/*.pc ## Create modules file sed 's#@DATADIR@#'%{_datadir}/%{name}'#;s#@LIBDIR@#'%{_libdir}/%{name}'#;s#@INCLUDEDIR@#'%{_includedir}/%{name}'#;s#@MODE@#'%{mode}'#' < %SOURCE1 > %{buildroot}%{_datadir}/%{name}/%{name}.module #:; # Manually copy doc file here instead of the %files section to prevent the rpm #build script from throwing the other things in there out mkdir -p %{buildroot}%{_docdir}/%{name}-%{version} cp -pr CHANGES COPYRIGHT README RELEASE_NOTES %{buildroot}%{_docdir}/%{name}-%{version}/ cp -pr src/mpe2/README %{buildroot}%{_docdir}/%{name}-%{version}/README.mpe #mv %{buildroot}/%{_datadir}/%{name}/doc %{buildroot}%{_docdir}/%{name}-%{version} ln -s %{_docdir}/%{name}-%{version} %{buildroot}/%{_datadir}/%{name}/doc # Silence rpmlint sed -i '/^#! \//,1 d' %{buildroot}%{_sysconfdir}/%{name}-%{mode}/mp*.conf #Rename the MPI routine manpages, to avoid conflict with openmpi for man in %{buildroot}%{_mandir}/man3/*; do manf=`basename $man .3` mv %{buildroot}%{_mandir}/man3/$manf.3 %{buildroot}%{_mandir}/man4/$manf.4 sed s/3/4/1 -i %{buildroot}%{_mandir}/man4/$manf.4 done mv %{buildroot}%{_mandir}/man4/MPE*.* %{buildroot}%{_mandir}/man3/ # The uninstall script that is installed in this directory is not needed in rpm # packaging rm -rf %{buildroot}%{_sbindir}/mpe* find %{buildroot} -type f -name "*.la" -exec rm -f {} ';' %clean rm -rf %{buildroot} %if 0%{?fedora_version} %post /usr/sbin/alternatives \ --install %{_bindir}/mpirun mpi-run %{_bindir}/mpiexec.py 41 \ --slave %{_bindir}/mpiexec mpi-exec %{_bindir}/mpiexec.py \ --slave %{_mandir}/man1/mpiexec.1.gz mpi-exec-man \ %{_mandir}/man1/mp-mpiexec.1.gz \ --slave %{_mandir}/man1/mpif90.1.gz mpif90-man \ %{_mandir}/man1/mp-mpif90.1.gz \ --slave %{_mandir}/man1/mpif77.1.gz mpif77-man \ %{_mandir}/man1/mp-mpif77.1.gz \ --slave %{_mandir}/man1/mpicc.1.gz mpicc-man \ %{_mandir}/man1/mp-mpicc.1.gz \ --slave %{_mandir}/man1/mpic++.1.gz mpic++-man \ %{_mandir}/man1/mp-mpicxx.1.gz %endif %if 0%{?fedora_version} %preun /usr/sbin/alternatives --remove mpi-run %{_bindir}/mpiexec.py %endif %if 0%{?fedora_version} %post devel /usr/sbin/alternatives \ --install %{_bindir}/mpicc mpicc %{_bindir}/mp%{mode}-mpicc %{priority}\ --slave %{_bindir}/mpicxx mpicxx %{_bindir}/mp%{mode}-mpicxx \ --slave %{_bindir}/mpif90 mpif90 %{_bindir}/mp%{mode}-mpif90 \ --slave %{_bindir}/mpif77 mpif77 %{_bindir}/mp%{mode}-mpif77 %endif %if 0%{?fedora_version} > 0 %preun devel /usr/sbin/alternatives --remove mpicc %{_bindir}/mp%{mode}-mpicc %endif %files %defattr(-,root,root,-) %{_bindir}/* #%exclude %{_bindir}/mp*.pyc #%exclude %{_bindir}/mp*.pyo %exclude %{_bindir}/mp%{mode}-mpicc %exclude %{_bindir}/mp%{mode}-mpicxx %exclude %{_bindir}/mp%{mode}-mpif90 %exclude %{_bindir}/mp%{mode}-mpif77 %{_mandir}/man1/* %dir %{_datadir}/%{name} %{_datadir}/%{name}/logfiles %{_datadir}/%{name}/doc #%dir %{_datadir}/%{name}/%{name}-%{version} #%{_datadir}/%{name}/* %dir %{_docdir}/%{name}-%{version} %doc %{_docdir}/%{name}-%{version}/READM* %doc %{_docdir}/%{name}-%{version}/CHANGE* %doc %{_docdir}/%{name}-%{version}/COPYR* %doc %{_docdir}/%{name}-%{version}/RELEASE* %files doc %defattr(-,root,root,-) %dir %{_docdir}/%{name}-%{version} %doc %{_docdir}/%{name}-%{version}/*.pdf %doc %{_docdir}/%{name}-%{version}/jumpshot* %doc %{_docdir}/%{name}-%{version}/www %files libs %defattr(-,root,root,-) %dir %{_libdir}/%{name} %{_libdir}/%{name}/*.jar %{_libdir}/%{name}/mpe*.o %{_libdir}/%{name}/*.so.* %config %{_sysconfdir}/%{name}-%{mode}/ %files devel %defattr(-,root,root,-) %{_bindir}/mp%{mode}-mpicc %{_bindir}/mp%{mode}-mpicxx %{_bindir}/mp%{mode}-mpif90 %{_bindir}/mp%{mode}-mpif77 %{_includedir}/* %{_libdir}/%{name}/*.a %{_libdir}/%{name}/*.so %dir %{_libdir}/%{name}/trace_rlog %{_libdir}/%{name}/trace_rlog/libTraceInput.so %{_libdir}/pkgconfig/%{name}-ch3.pc %{_libdir}/pkgconfig/openpa.pc %dir %{_datadir}/%{name} %{_datadir}/%{name}/bin%{mode}/ %{_datadir}/%{name}/%{name}.module %{_datadir}/%{name}/examples* %{_mandir}/man3/*.gz %{_mandir}/man4/*.gz #%doc README.testing README.romio README.developer %changelog * Sun Aug 15 2010 Kurt Garloff <kurt@garloff.de> - Update to mpi2ch2-1.2.1p1: * Minor bug fixes (PowerPC, IOAT, mpdboot) * Mon Nov 23 2009 Kurt Garloff <kurt@garloff.de> - Update to mpich2-1.2.1: * Bug fixes with MX and Hydra * support hwloc process binding library * add valgrind support for debug builds - Update to MPICH2-1.2: * MPI-2.2 support * Several bug fixes and code cleanup * Fri Jul 10 2009 Kurt Garloff <kurt@garloff.de> - Update to mpich2-1.1: * Hydra Process Management support * Shared-memory Collectives * Nemesis Communication Channel * Many fixes and performance improvements * Fri Feb 13 2009 Kurt Garloff <kurt@garloff.de> - Split off -doc subpackage. * Thu Feb 12 2009 Kurt Garloff <kurt@garloff.de> - Update to mpich2-1.0.8: * Added support for MPI 2.1 * Added support for MPI_Type_create_resized and MPI_Type_create_indexed_block datatypes in ROMIO. * Many other bug fixes, memory leak fixes and code cleanup. * Tue Jun 17 2008 Kurt Garloff <kurt@garloff.de> - Update to mpich2-1.0.7 * Thu Feb 14 2008 Kurt Garloff <kurt@garloff.de> - Handle fortran variaton also in Requires: of -devel package * Tue Feb 12 2008 Kurt Garloff <garloff@opensuse.org> - Make build in openSUSE Build Service for various distributions - Optimization flags * Mon Oct 15 2007 Deji Akingunola <dakingun@gmail.com> - 1.0.6p1-1 - Update to 1.0.6p1 * Mon Oct 15 2007 Deji Akingunola <dakingun@gmail.com> - 1.0.6-1 - New version upgrade * Mon Jul 31 2007 Deji Akingunola <dakingun@gmail.com> - 1.0.5p4-4 - Create a -mpi-manpages subpackage for the MPI routines manuals * Fri Jul 27 2007 Deji Akingunola <dakingun@gmail.com> - 1.0.5p4-3 - Fix java-gcj-compat BR - Handle upgrades in the post scripts * Mon Jun 12 2007 Deji Akingunola <dakingun@gmail.com> - 1.0.5p4-2 - Fix typos and make other adjustments arising from Fedora package reviews * Mon Jun 12 2007 Deji Akingunola <dakingun@gmail.com> - 1.0.5p4-1 - Patch #4 release * Mon Feb 12 2007 Deji Akingunola <dakingun@gmail.com> - 1.0.5p2-1 - Patch #2 release * Tue Jan 09 2007 Deji Akingunola <dakingun@gmail.com> - 1.0.5p1-1 - New release with manpages - Create a -libs subpackage as it's done in Fedora's openmpi to help with multi-libs packaging - Disable modules support (until I can properly figure it out) * Wed Dec 27 2006 Deji Akingunola <dakingun@gmail.com> - 1.0.5-1 - New release * Sat Nov 18 2006 Deji Akingunola <dakingun@gmail.com> - 1.0.4p1-2 - Set the java_sdk directory so all java bit work * Sat Sep 02 2006 Deji Akingunola <dakingun@gmail.com> - 1.0.4p1-1 - Update to version 1.0.4p1 - Cleanup up spec file to use alternatives similarly to FC's openmpi * Wed Aug 02 2006 Deji Akingunola <dakingun@gmail.com> - 1.0.4-1 - Update to version 1.0.4 * Thu May 18 2006 Deji Akingunola <dakingun@gmail.com> - 1.0.3-3 - Add missing BRs (Orion Polawski) * Mon Apr 10 2006 Deji Akingunola <dakingun@gmail.com> - 1.0.3-2 - Rewrite the spec, borrowing extensively from openmpi's spec by Jason Vas Dias - Allows use of environment modules and alternatives * Fri Nov 25 2005 Deji Akingunola <dakingun@gmail.com> - 1.0.3-1 - Update to new version * Sat Oct 15 2005 Deji Akingunola <deji.aking@gmail.com> - 1.0.2p1-1 - Initial package
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor