# Copyright (c) 2014, 2015, 2016 Dave Love, Liverpool University # Copyright (c) 2018 Dave Love, University of Manchester # MIT licence (Fedora policy) # Fixme: Move auxiliary executables out of _bindir Name: paraver Version: 4.8.2 Release: 1%{?dist} Summary: Flexible performance analysis tool License: LGPLv2+ URL: https://tools.bsc.es/paraver Source0: https://ftp.tools.bsc.es/wxparaver/wxparaver-%version-src.tar.bz2 # Fix paths for config info Patch1: paraver-paths.patch BuildRequires: compat-wxGTK3-gtk2-devel wxGTK3-devel BuildRequires: extrae-openmpi-devel zlib-devel chrpath BuildRequires: boost-serialization >= 1.36, libxml2-devel gcc-c++ BuildRequires: boost%{?el6:148}-devel %description Paraver was developed to respond to the need to have a qualitative global perception of the application behavior by visual inspection and then to be able to focus on the detailed quantitative analysis of the problems. Expressive power, flexibility and the capability of efficiently handling large traces are key features addressed in the design of Paraver. The clear and modular structure of Paraver plays a significant role towards achieving these targets. Paraver is a very flexible data browser that is part of the CEPBA-Tools toolkit. Its analysis power is based on two main pillars. First, its trace format has no semantics; extending the tool to support new performance data or new programming models requires no changes to the visualizer, just to capture such data in a Paraver trace. The second pillar is that the metrics are not hardwired on the tool but programmed. To compute them, the tool offers a large set of time functions, a filter module, and a mechanism to combine two time lines. This approach allows displaying a huge number of metrics with the available data. To capture the experts knowledge, any view or set of views can be saved as a Paraver configuration file. After that, re-computing the view with new data is as simple as loading the saved file. The tool has been demonstrated to be very useful for performance analysis studies, giving much more details about the applications behaviour than most performance tools. Some Paraver features are the support for * Detailed quantitative analysis of program performance * Concurrent comparative analysis of several traces * Customizable semantics of the visualized information * Cooperative work, sharing views of the tracefile * Building of derived metrics %package devel Summary: Development files for %name Requires: %name%{_isa} = %version-%release %description devel Development files for %name %package gui Summary: GUI for %name Requires: %name%{_isa} = %version-%release %description gui The %name graphical interface %prep %setup -q -n wxparaver-%version %patch1 -p1 -b .paths %build mkdir inst export CPPFLAGS=-I%_includedir/boost%{?el6:148} # OMP used in api/window.h (computeSemanticRowParallel) # ... but then we get an error on the pragma # export CXXFLAGS="-fopenmp $CXXFLAGS" instdir=$(pwd)/inst for dir in paraver-kernel paraver-toolset wxparaver; do pushd src/$dir case $dir in paraver-kernel) # otf2prv doesn't build :-( %configure --with-boost-libdir=%_libdir%{?el6:/boost148} \ --with-ptools-common-files=$instdir%_prefix --disable-silent-rules ;; wxparaver) %configure --with-boost-libdir=%_libdir%{?el6:/boost148} \ --with-ptools-common-files=$instdir%_prefix \ --with-paraver=$instdir%_prefix --disable-silent-rules \ %{?el7:--with-wx-config=wx-config-3.0} ;; *) %configure --disable-silent-rules ;; esac if [ $dir = wxparaver ]; then %make_build AM_CPPFLAGS="$instdir%_includedir" else %make_build fi make install DESTDIR=$instdir ln -sf $instdir%_libdir $instdir%_prefix/lib popd done %install for dir in paraver-kernel paraver-toolset wxparaver; do pushd src/$dir %make_install popd done find $RPM_BUILD_ROOT%_libdir -name \*.la -exec rm {} \; mkdir -p $RPM_BUILD_ROOT%_datadir/%name mv $RPM_BUILD_ROOT%_datadir/{workspaces.xml,filters-config,wxparaver-signals} \ $RPM_BUILD_ROOT%_datadir/%name chmod 0644 $RPM_BUILD_ROOT%_datadir/paraver/filters-config/*.xml \ $RPM_BUILD_ROOT%_datadir/paraver/wxparaver-signals/* mkdir -p $RPM_BUILD_ROOT%_includedir/%name mv $RPM_BUILD_ROOT%_includedir/*.{cpp,h} $RPM_BUILD_ROOT%_includedir/%name mv $RPM_BUILD_ROOT%_includedir/utils $RPM_BUILD_ROOT%_includedir/%name chrpath -d $RPM_BUILD_ROOT%_libdir/paraver-kernel/*.so.?.* \ $RPM_BUILD_ROOT%_bindir/*.bin cp -r src/paraver-cfgs $RPM_BUILD_ROOT%_datadir/paraver/cfgs %files %exclude %_bindir/wxparaver* %license src/paraver-kernel/COPYING %doc AUTHORS ChangeLog %_bindir/* %_libdir/*/*.so.* %_datadir/paraver/filters-config %files devel %_includedir/paraver %_libdir/*/*.so %_libdir/*/*.a %files gui %_bindir/wxparaver* %_datadir/paraver/wxparaver-signals %_datadir/paraver/cfgs %_datadir/paraver/workspaces.xml %_docdir/wxparaver_help_contents %changelog * Sat Sep 14 2019 Dave Love - 4.8.2-1 - New version - Modify wx BRs for EPEL7 - Remove el6 conditionals * Sat Nov 10 2018 Dave Love - 4.8.0-2 - BR gcc-c++ * Fri Nov 9 2018 Dave Love - 4.8.0-1 - New version * Thu Jul 12 2018 Dave Love - 4.7.2-4 - Install cfgs - Move stuff in _datadir * Mon Jul 9 2018 Dave Love - 4.7.2-3 - Patch paths for cfgs etc. * Mon Apr 9 2018 Dave Love - 4.7.2-2 - Put all headers under paraver * Wed Mar 28 2018 Dave Love - 4.7.2-1 - New version * Sat Jan 27 2018 Dave Love - 4.7.1-1 - New version - Drop patch * Fri Dec 2 2016 Dave Love - 4.6.3-1 - New version with spec and patch modifications for it * Thu Nov 10 2016 Dave Love - 4.6.2-2 - Change URLs * Wed Aug 10 2016 Dave Love - 4.6.2-1 - New version - Drop patch2 - Adjust patch1 - Build against boost148 (1.41 in el6 isn't good enough, despite what the paraver web site says) * Mon Mar 14 2016 Dave Love - 4.6.1-1 - New version * Sat Feb 13 2016 Dave Love - 4.6.0-2 - Set CXX flags to build with gcc7 * Mon Feb 8 2016 Dave Love - 4.6.0-1 - New version - Clean up spec somewhat - Patch for missing header * Sat Aug 15 2015 Dave Love - 4.5.8-1 - New version - Fix some rpmlint-isms * Mon Jul 20 2015 Dave Love - 4.5.7-3 - Don't mess up LIB_DIR in scripts * Sun Jul 19 2015 Dave Love - 4.5.7-2 - Use autoconf268 on el6 * Mon Jul 13 2015 Dave Love - 4.5.7-1 - New version * Thu Feb 26 2015 Dave Love - 4.5.6-1 - New version - Modify patch * Sun Feb 22 2015 Dave Love - 4.5.5-1 - New version * Fri Nov 21 2014 Dave Love - 4.5.4-1 - New version * Thu Oct 9 2014 Dave Love - 4.5.2-2 - Separate the GUI * Sun Oct 5 2014 Dave Love - 4.5.2-1 - Initial packaging