Name: pvm Version: 3.4.6 Release: 1%{?dist} Summary: Libraries for distributed computing. # Includes regex code which is under GPLv2+ License: MIT and GPLv2+ Group: Development/Libraries URL: http://www.csm.ornl.gov/pvm/pvm_home.html Source0: http://www.netlib.org/pvm3/pvm%{version}.tgz Source1: http://www.netlib.org/pvm3/xpvm/XPVM.src.1.2.5.tgz Source2: xpvm.sh Source3: pvm.sh Source4: README.RedHat Patch0: xpvm-tcltk.patch Patch1: pvm3-vaargfix.patch Patch2: pvm-s390.patch Patch3: pvm3.4.5-strerror.patch Patch4: pvm3.4.4-envvars.patch Patch5: xpvm-1.2.5-envvars.patch Patch6: pvm3.4.5-x86_64-segfault.patch Patch7: pvm-3.4.5-bug_147337.patch Patch8: pvm-3.4.5-Pvmtev.patch Patch9: pvm-3.4.5-ppc64arch.patch Patch10: pvm-arch.patch BuildRequires: tk-devel tcl-devel tcl tk m4 Requires: initscripts >= 5.54, bash >= 2 %description PVM3 (Parallel Virtual Machine) is a library and daemon that allows distributed processing environments to be constructed on heterogeneous machines and architectures. %package gui Requires: pvm Summary: TCL/TK graphical frontend to monitor and manage a PVM cluster. Group: Applications/System %description gui Xpvm is a TCL/TK based tool that allows full manageability of the PVM cluster as well as the ability to monitor cluster performance. %prep %setup -q -T -c -n pvm install -m 0644 %SOURCE4 . rm -rf %{buildroot} mkdir -p %{buildroot}/usr/share/ cd %{buildroot}/usr/share tar -xzf %{SOURCE0} cd pvm3 tar -xzf %{SOURCE1} %patch0 -p0 #patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch6 -p1 #patch7 -p1 %patch8 -p1 %patch9 -p1 %patch10 -p1 find . -name \*.orig | xargs rm -f # Patch the LINUX*64.def files to look in lib64 dirs as well for libraries. perl -p -i -e "s|ARCHDLIB[ \ ]*=|ARCHDLIB = -L/usr/lib64 -L/usr/X11R6/lib64|" conf/LINUX64.def perl -p -i -e "s|ARCHLIB[ \ ]*=|ARCHLIB = -L/usr/lib64 -L/usr/X11R6/lib64|" conf/LINUX64.def %ifarch x86_64 echo 'ARCHCFLAGS += -fPIC' >> conf/LINUX64.def %endif cp conf/LINUX.def conf/LINUXS390.def cp conf/LINUX.m4 conf/LINUXS390.m4 cp conf/LINUX.def conf/LINUXI386.def cp conf/LINUX.m4 conf/LINUXI386.m4 cp conf/LINUX64.def conf/LINUXS390X.def cp conf/LINUX64.m4 conf/LINUXS390X.m4 cp conf/LINUX64.def conf/LINUXIA64.def cp conf/LINUX64.m4 conf/LINUXIA64.m4 cp conf/LINUX64.def conf/LINUXX86_64.def cp conf/LINUX64.m4 conf/LINUXX86_64.m4 cp conf/LINUX64.def conf/LINUXPPC64.def cp conf/LINUX64.m4 conf/LINUXPPC64.m4 #%define pvm_arch %(echo %{_os}%{_target_cpu} | tr 'a-z' 'A-Z') %build PVM_ROOT=%{buildroot}/usr/share/pvm3 \ PVM_ARCH=`/var/tmp/pvm-3.4.5-root/usr/share/pvm3/lib/pvmgetarch` \ PVM_DPATH=%{buildroot}/usr/share/pvm3/lib/pvmd \ CFLAGS=-fPIC \ make -C %{buildroot}/usr/share/pvm3 PVM_ROOT=%{buildroot}/usr/share/pvm3 \ PVM_ARCH=`/var/tmp/pvm-3.4.5-root/usr/share/pvm3/lib/pvmgetarch` \ XPVM_ROOT=%{buildroot}/usr/share/pvm3/xpvm \ make -C %{buildroot}/usr/share/pvm3/xpvm XLIBDIR=-L%{_prefix}/X11R6/%{_lib} TCLTKHOME=%{_libdir} ## FIXME: 'install' section used to start here ## We don't have a separate install section as the spec relied on old behaviour ## of rpm which didn't automatically remove the buildroot mkdir -p %{buildroot}%{_mandir}/man{1,3} install -m 644 %{buildroot}/usr/share/pvm3/man/man1/* %{buildroot}%{_mandir}/man1 install -m 644 %{buildroot}/usr/share/pvm3/man/man3/* %{buildroot}%{_mandir}/man3 mkdir -p %{buildroot}/usr/bin install -m 0755 %{SOURCE2} %{buildroot}/usr/bin/xpvm PVM_ROOT=%{buildroot}/usr/share/pvm3 \ PVM_ARCH=`/var/tmp/pvm-3.4.5-root/usr/share/pvm3/lib/pvmgetarch` \ XPVM_ROOT=%{buildroot}/usr/share/pvm3/xpvm \ make -C %{buildroot}/usr/share/pvm3/xpvm install mkdir -p %{buildroot}/usr/bin install -m 0755 %{SOURCE3} %{buildroot}/usr/bin/pvm # Move the documentation the directory RPM thinks it's using, so we # can classify it as documentation files mv %{buildroot}/usr/share/pvm3/doc/* $RPM_BUILD_DIR/pvm/ rmdir %{buildroot}/usr/share/pvm3/doc # Use /var/run/pvm for state files mkdir -p %{buildroot}/var/run/pvm3 # build the file list find %{buildroot} -type f -o -type l | \ sed -e "s|%{buildroot}||g" | \ grep -v -i win32 | \ grep -v "/pvm3/man/man" | \ grep -v "usr/man" | \ grep -v "xpvm" | \ grep -v "example" | \ grep -v "conf/" | \ grep -v "\.o$" > files.list find %{buildroot} -type f -o -type l | \ sed -e "s|%{buildroot}||g" | \ grep "conf/LINUX" >> files.list find %{buildroot} -type f -o -type l | \ grep example | \ sed -e "s|%{buildroot}|%doc |g" >> files.list find %{buildroot}/usr/share/pvm3 -type d | \ sed -e "s|%{buildroot}|%dir |g" | \ grep -v "xpvm" >> files.list # Remove man pages from list grep -v "%{_mandir}" files.list > files.list2 mv files.list2 files.list #Fix broken man pages pushd %{buildroot}/%{_mandir} rm man1/PVM.1 man1/pvmd.1 ln -sf pvm_intro.1 man1/PVM.1 ln -sf pvmd3.1 man1/pvmd.1 popd # remove unpackaged files from the buildroot rm -f %{buildroot}%{_datadir}/pvm3/Readme.Win32 rm -f `find %{buildroot} -name "*.o"` rm -rf %{buildroot}%{_datadir}/pvm3/WIN32/* rm -rf %{buildroot}%{_datadir}/pvm3/libfpvm/WIN32/* rm -f %{buildroot}%{_datadir}/pvm3/man/WIN32/* rm -f %{buildroot}%{_datadir}/pvm3/lib/xpvm pushd %{buildroot}%{_datadir}/pvm3/conf rm -rf `find . -not -name "LINUX*"` ||: popd pushd %{buildroot}%{_datadir}/pvm3/man rm -f `find . -type f` popd %clean rm -rf %{buildroot} rm -f files.list %pre if [ $1 -eq 1 ]; then /usr/sbin/groupadd -g 24 -r -f pvm > /dev/null 2>&1 /usr/sbin/useradd -u 24 -g 24 -d /usr/share/pvm3 -r -s /bin/bash pvm > /dev/null 2>&1 ||: fi %preun if [ $1 -eq 0 ]; then /usr/sbin/userdel pvm > /dev/null 2>&1 /usr/sbin/groupdel pvm > /dev/null 2>&1 ||: fi %triggerun -- pvm <= 3.4.3-25 /sbin/chkconfig --del pvmd %files -f files.list %doc arches bugreport example.pvmrc release-notes README.RedHat %{_mandir}/*/* %dir %attr(755,pvm,pvm) /var/run/pvm3 %files gui %dir %{_datadir}/pvm3/xpvm %{_bindir}/xpvm %{_datadir}/pvm3/bin/*/xpvm %{_datadir}/pvm3/xpvm/* %changelog * Wed Dec 28 2011 Richard Shaw <hobbes1069@gmail.com> - 3.4.6-1 - Update to 3.4.6. - Initial release for EL6.