# Copyright (c) 2015 Dave Love, University of Liverpool # Licence as for the package itself Name: muster Version: 1.0.1 Release: 3%{?dist} Summary: Massively scalable clustering License: BSD URL: http://github.com/tgamblin/muster Source0: https://github.com/scalability-llnl/muster/archive/v%version.tar.gz BuildRequires: openmpi-devel boost-devel doxygen cmake %global sover 1 %global desc\ The Muster library provides implementations of serial and parallel\ K-Medoids clustering algorithms. It is intended as a general\ framework for parallel cluster analysis, particularly for performance\ data analysis on systems with very large numbers of processes.\ \ The parallel implementations in the Muster are designed to perform\ well even in environments where the data to be clustered is entirely\ distributed. For example, many performance tools need to analyze one\ data element from each process in a system. To analyze this data\ efficiently, clustering algorithms that move as little data as\ possible are required. In Muster, we exploit sampled clustering\ algorithms to realize this efficiency.\ \ The parallel algorithms in Muster are implemented using the Message\ Passing Interface (MPI), making them suitable for use on many of the\ world's largest supercomputers. They should, however, also run\ efficiently on your laptop. %description %desc %package devel Summary: Development files for %name Requires: boost-devel%{?_isa} Requires: %name%{?_isa} = %version-%release %description devel Development files for %name %package openmpi Summary: Massively scalable clustering - openmpi Requires: openmpi%{?_isa} %description openmpi %desc This is the openmpi version %package openmpi-devel Summary: Development files for %name-openmpi Requires: boost-devel%{?_isa} Requires: openmpi-devel%{?_isa} boost-devel%{?_isa} Requires: %name-openmpi%{?isa} = %version-%release %description openmpi-devel Development files for %name-openmpi %package doc Summary: Documentation for %name BuildArch: noarch %description doc Documentation for %name %prep %setup -q -n %name-%version mkdir serial openmpi %build pushd serial %cmake -DBUILD_SHARED_LIBS=true .. # I don't know how to get cmake to DTRT sed -i 's/libmuster.so/libmuster.so.%sover/' src/CMakeFiles/muster.dir/link.txt make %{?smp_mflags} ln -sf libmuster.so.%sover ../src/libmuster.so popd %_openmpi_load pushd openmpi %cmake -DBUILD_SHARED_LIBS=true -DCMAKE_INSTALL_PREFIX=$MPI_HOME \ -DMUSTER_USE_PMPI=TRUE .. # I don't know how to get cmake to DTRT sed -i 's/libmuster.so/libmuster.so.%sover/' src/CMakeFiles/muster.dir/link.txt make %{?smp_mflags} popd %_openmpi_unload doxygen %install rm -rf $RPM_BUILD_ROOT make -C serial install DESTDIR=$RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT%_includedir/%name $RPM_BUILD_ROOT%_libdir mv $RPM_BUILD_ROOT%_includedir/*.h $RPM_BUILD_ROOT%_includedir/%name mv $RPM_BUILD_ROOT%_prefix/lib/libmuster.so $RPM_BUILD_ROOT%_libdir/libmuster.so.%sover ln -s libmuster.so.%sover $RPM_BUILD_ROOT%_libdir/libmuster.so %_openmpi_load mkdir -p $RPM_BUILD_ROOT$MPI_INCLUDE make -C openmpi install DESTDIR=$RPM_BUILD_ROOT mv $RPM_BUILD_ROOT$MPI_HOME/include $RPM_BUILD_ROOT$MPI_INCLUDE/muster mv $RPM_BUILD_ROOT$MPI_LIB/libmuster.so $RPM_BUILD_ROOT$MPI_LIB/libmuster.so.%sover ln -s libmuster.so.%sover $RPM_BUILD_ROOT$MPI_LIB/libmuster.so %_openmpi_unload %clean rm -rf $RPM_BUILD_ROOT %files %doc LICENSE README %_libdir/*.so.* %files devel %_includedir/muster %_libdir/*.so %files openmpi %doc LICENSE README %_libdir/openmpi/lib/*.so.* %files openmpi-devel %_includedir/openmpi-%_arch/muster %_libdir/openmpi/lib/*.so %files doc %doc doc/* LICENSE README %changelog * Mon Jun 29 2015 Dave Love - 1.0.1-3 - Fix openmpi header installation * Wed Apr 1 2015 Dave Love - 1.0.1-2 - -openmpi package * Tue Dec 16 2014 Dave Love - 1.0.1-1 - Initial packaging