File pvm.spec of Package pvm
#
# spec file for package pvm
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: pvm
BuildRequires: gcc-fortran
BuildRequires: readline-devel
BuildRequires: tcsh
Summary: Parallel Virtual Machine
License: MIT and GPL-2.0+
Group: Development/Libraries/Parallel
Version: 3.4.5
Release: 0
Source0: ftp://ftp.netlib.org/pvm3/%{name}-%{version}.tar.bz2
Source3: Makefile
Patch0: %{name}-%{version}.dif
Patch1: pvm-%{version}-cons.patch
Patch2: pvm-%{version}-gcc4.patch
Patch3: pvm-3.4.5_missing_includes.patch
Patch4: pvm-3.4.5_missing_format_param.patch
Url: http://www.epm.ornl.gov/pvm/pvm_home.html
BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: %ix86 alpha sparc sparc64 ppc ppc64 ia64 s390 s390x hppa x86_64 %arm
%define _pvm_root /usr/lib/pvm3
%ifarch %{ix86}
%define _pvm_arch LINUX
%else
%ifarch alpha
%define _pvm_arch LINUXALPHA
%else
%ifarch sparc sparc64
%define _pvm_arch LINUXSPARC
%else
%ifarch ppc
%define _pvm_arch LINUXPPC
%else
%ifarch ppc64
%define _pvm_arch LINUXPPC64
%else
%ifarch ia64
%define _pvm_arch LINUX64
%else
%ifarch s390 s390x
%define _pvm_arch LINUXS390
%else
%ifarch hppa
%define _pvm_arch LINUXHPPA
%else
%ifarch x86_64
%define _pvm_arch LINUX64
%else
%ifarch %arm
%define _pvm_arch LINUXARM
%endif
%endif
%endif
%endif
%endif
%endif
%endif
%endif
%endif
%endif
%description
PVM is a software system that enables a collection of heterogeneous
computers to be used as a coherent and flexible concurrent
computational resource.
The individual computers may be shared- or local-memory
multiprocessors, vector supercomputers, specialized graphics engines,
or scalar workstations, that may be interconnected by a variety of
networks, such as ethernet, FDDI. User programs written in C, C++ or
Fortran access PVM through library routines.
After installation you find in /usr/share/doc/packages/pvm/ the
documentation as PostScript file pvm-book.ps. Furthermore some
examples are packed together in two tar archives. Those archives
should be extracted into your HOME directory which leads to
~/pvm3/examples/ or ~/pvm3/gexamples/ in your HOME directory. The call
`aimk all' (see manual page aimk(1)) e.g. in ~/pvm3/examples/ compiles
the examples for the PVM system.
The PVM web home page is at http://www.epm.ornl.gov/pvm/pvm_home.html .
Authors:
--------
J. J. Dongarra <pvm@msr.epm.ornl.gov>
G. E. Fagg <pvm@msr.epm.ornl.gov>
G. A. Geist <pvm@msr.epm.ornl.gov>
J. A. Kohl <pvm@msr.epm.ornl.gov>
R. J. Manchek <pvm@msr.epm.ornl.gov>
P. Mucci <pvm@msr.epm.ornl.gov>
P. M. Papadopoulos <pvm@msr.epm.ornl.gov>
S. L. Scott <pvm@msr.epm.ornl.gov>
V. S. Sunderam <pvm@msr.epm.ornl.gov>
%package devel
Summary: Parallel Virtual Machine
Group: Development/Libraries/Parallel
Requires: %{name} = %{version}
%description devel
PVM is a software system that enables a collection of heterogeneous
computers to be used as a coherent and flexible concurrent
computational resource.
The individual computers may be shared- or local-memory
multiprocessors, vector supercomputers, specialized graphics engines,
or scalar workstations, that may be interconnected by a variety of
networks, such as ethernet, FDDI. User programs written in C, C++ or
Fortran access PVM through library routines.
After installation you find in /usr/share/doc/packages/pvm/ the
documentation as PostScript file pvm-book.ps. Furthermore some
examples are packed together in two tar archives. Those archives
should be extracted into your HOME directory which leads to
~/pvm3/examples/ or ~/pvm3/gexamples/ in your HOME directory. The call
`aimk all' (see manual page aimk(1)) e.g. in ~/pvm3/examples/ compiles
the examples for the PVM system.
The PVM web home page is at http://www.epm.ornl.gov/pvm/pvm_home.html .
Authors:
--------
J. J. Dongarra <pvm@msr.epm.ornl.gov>
G. E. Fagg <pvm@msr.epm.ornl.gov>
G. A. Geist <pvm@msr.epm.ornl.gov>
J. A. Kohl <pvm@msr.epm.ornl.gov>
R. J. Manchek <pvm@msr.epm.ornl.gov>
P. Mucci <pvm@msr.epm.ornl.gov>
P. M. Papadopoulos <pvm@msr.epm.ornl.gov>
S. L. Scott <pvm@msr.epm.ornl.gov>
V. S. Sunderam <pvm@msr.epm.ornl.gov>
%prep
%setup -q -n pvm3
%patch0
%patch1
%patch2 -p1
%patch3
%patch4
%build
mkdir -p src/%{_pvm_arch}
cp %{SOURCE3} src/%{_pvm_arch}/Makefile
PVM_ROOT=`pwd` \
make %{?_smp_mflags} OPT_FLAGS="$RPM_OPT_FLAGS -fPIC -DPIC -fno-strict-aliasing"
%install
install -d $RPM_BUILD_ROOT{%{_bindir},%{_includedir},%{_libdir},%{_pvm_root}/conf,%{_docdir}/%{name}} \
$RPM_BUILD_ROOT%{_docdir}/%{name}/{examples,gexamples,hoster,misc,tasker,xep} \
$RPM_BUILD_ROOT{%{_mandir}/man{1,3},%{_sbindir},%{_pvm_root}/bin/%{_pvm_arch},%{_pvm_root}/lib/%{_pvm_arch}}
install -c -m 0755 lib/%{_pvm_arch}/* $RPM_BUILD_ROOT%{_pvm_root}/lib/%{_pvm_arch}
install -c -m 0755 lib/pvmtmparch $RPM_BUILD_ROOT%{_pvm_root}/lib
install -c -m 0755 lib/pvmgetarch $RPM_BUILD_ROOT%{_pvm_root}/lib
install -c -m 0755 lib/pvmd $RPM_BUILD_ROOT%{_pvm_root}/lib
install -c -m 0755 lib/pvmd $RPM_BUILD_ROOT%{_bindir}
install -c -m 0755 lib/aimk $RPM_BUILD_ROOT%{_pvm_root}/lib
install -c -m 0755 bin/%{_pvm_arch}/{pvm_gstat,pvmgroups,pvmgs,tracer,trcsort} $RPM_BUILD_ROOT%{_pvm_root}/bin/%{_pvm_arch}
install -c -m 0755 lib/pvm $RPM_BUILD_ROOT%{_bindir}
install -c -m 0755 lib/wrapper $RPM_BUILD_ROOT%{_bindir}/pvm_gstat
install -c -m 0755 lib/wrapper $RPM_BUILD_ROOT%{_bindir}/pvmgroups
install -c -m 0755 lib/wrapper $RPM_BUILD_ROOT%{_bindir}/pvmgs
install -c -m 0755 lib/wrapper $RPM_BUILD_ROOT%{_bindir}/tracer
install -c -m 0755 lib/wrapper $RPM_BUILD_ROOT%{_bindir}/trcsort
install conf/%{_pvm_arch}.def $RPM_BUILD_ROOT%{_pvm_root}/conf
install include/{fpvm3,pvm3,pvmproto,pvmtev}.h $RPM_BUILD_ROOT%{_includedir}
#install lib/%{_pvm_arch}/lib*.a $RPM_BUILD_ROOT%{_libdir}
install lib/%{_pvm_arch}/lib*.so $RPM_BUILD_ROOT%{_libdir}/libpvm3.so.3.4
(
cd $RPM_BUILD_ROOT%{_libdir}
for lib in `ls pvm3/lib/%{_pvm_arch}/*.a`; do
basen=$(basename $lib)
ln -sf pvm3/lib/%{_pvm_arch}/${basen}
done
ln -sf libpvm3.so.3.4 libpvm3.so.3
ln -sf libpvm3.so.3.4 libpvm3.so
)
install -m 0644 man/man1/* $RPM_BUILD_ROOT%{_mandir}/man1
install -m 0644 man/man3/* $RPM_BUILD_ROOT%{_mandir}/man3
# Examples
cp -rf examples gexamples hoster misc tasker xep $RPM_BUILD_ROOT%{_docdir}/%{name}
#install %{SOURCE2} $RPM_BUILD_ROOT%{_docdir}/%{name}/pvm-book.ps
#gzip -9nf $RPM_BUILD_ROOT%{_docdir}/%{name}/pvm-book.ps
rm $RPM_BUILD_ROOT/%{_pvm_root}/lib/%{_pvm_arch}/*.so
rm -f $RPM_BUILD_ROOT/%{_libdir}/lib*.a
# make PVM_ROOT valid with some symlinks
%__mkdir -p %buildroot/%{_pvm_root}/include
%__ln_s %{_includedir}/fpvm3.h %buildroot/%{_pvm_root}/include/fpvm3.h
%__ln_s %{_includedir}/pvm3.h %buildroot/%{_pvm_root}/include/pvm3.h
%__ln_s %{_includedir}/pvmproto.h %buildroot/%{_pvm_root}/include/pvmproto.h
%__ln_s %{_includedir}/pvmtev.h %buildroot/%{_pvm_root}/include/pvmtev.h
%__ln_s %{_libdir}/libpvm3.so %buildroot/%{_pvm_root}/lib/%{_pvm_arch}/libpvm3.so
%__ln_s %{_libdir}/libpvm3.so.3 %buildroot/%{_pvm_root}/lib/%{_pvm_arch}/libpvm3.so.3
%__ln_s %{_libdir}/libpvm3.so.3.4 %buildroot/%{_pvm_root}/lib/%{_pvm_arch}/libpvm3.so.3.4
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%defattr(-,root,root)
%{_bindir}/*
%{_libdir}/libpvm3.so.*
%dir %{_pvm_root}
%dir %{_pvm_root}/lib
%dir %{_pvm_root}/lib/%{_pvm_arch}
%{_pvm_root}/bin
%{_pvm_root}/lib/%{_pvm_arch}/pvm*
%{_pvm_root}/lib/pvmd
%{_pvm_root}/lib/pvmgetarch
%{_pvm_root}/lib/pvmtmparch
%{_pvm_root}/lib/%{_pvm_arch}/libpvm3.so.*
%doc %{_mandir}/man1/pvm*
%doc %{_mandir}/man1/PVM*
%{_docdir}/%{name}
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_pvm_root}/lib/aimk
%{_pvm_root}/conf
%{_libdir}/libpvm3.so
%{_includedir}/fpvm3.h
%{_includedir}/pvm3.h
%{_includedir}/pvmproto.h
%{_includedir}/pvmtev.h
%dir %{_pvm_root}/include
%{_pvm_root}/include/*.h
%{_pvm_root}/lib/%{_pvm_arch}/libfpvm3.a
%{_pvm_root}/lib/%{_pvm_arch}/libgpvm3.a
%{_pvm_root}/lib/%{_pvm_arch}/libpvm3.a
%{_pvm_root}/lib/%{_pvm_arch}/libpvmtrc.a
%{_pvm_root}/lib/%{_pvm_arch}/libpvm3.so
%{_mandir}/man1/aimk.1*
%{_mandir}/man3/*
%changelog