Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37379001
en ru br
Репозитории ALT

Группа :: Development/Tools
Пакет: cube

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

%define _unpackaged_files_terminate_build 1

%ifarch %e2k ppc64le
%def_disable qtwebengine
%else
%def_enable qtwebengine
%endif

Name: cube
Version: 4.5
Release: alt2
License: BSD-3-Clause
Group: Development/Tools
Summary: Performance report explorer for Scalasca and Score-P
Url: http://www.scalasca.org/software/cube-4.x/download.html

Source: cubelib-%version.tar
Source1: cubew-%version.tar
Source2: cubegui-%version.tar

Patch1: cube-fedora-no-version-check.patch
Patch2: cube-alt-linking.patch

BuildRequires: gcc-c++ zlib-devel uncrustify doxygen
BuildRequires: libdbus-devel flex graphviz texlive-base-bin
BuildRequires: chrpath
BuildRequires: qt5-base-devel
%if_enabled qtwebengine
BuildRequires: qt5-webengine-devel
%endif

Requires: lib%name = %EVR

%description
Cube, which is used as performance report explorer for Scalasca and
Score-P, is a generic tool for displaying a multi-dimensional
performance space consisting of the dimensions (i) performance metric,
(ii) call path, and (iii) system resource. Each dimension can be
represented as a tree, where non-leaf nodes of the tree can be collapsed
or expanded to achieve the desired level of granularity. In addition,
Cube can display multi-dimensional Cartesian process topologies.

The Cube 4.x series report explorer and the associated Cube4 data format
is provided for Cube files produced with the Score-P performance
instrumentation and measurement infrastructure or the Scalasca version
2.x trace analyzer (and other compatible tools). However, for backwards
compatibility, Cube 4.x can also read and display Cube 3.x data.

%package -n lib%name
Summary: Shared libraries of Cube
Group: System/Libraries

%description -n lib%name
Cube, which is used as performance report explorer for Scalasca and
Score-P, is a generic tool for displaying a multi-dimensional
performance space consisting of the dimensions (i) performance metric,
(ii) call path, and (iii) system resource. Each dimension can be
represented as a tree, where non-leaf nodes of the tree can be collapsed
or expanded to achieve the desired level of granularity. In addition,
Cube can display multi-dimensional Cartesian process topologies.

This package contains shared libraries of Cube.

%package -n lib%name-devel
Summary: Development files of Cube
Group: Development/C++
Requires: lib%name = %EVR

%description -n lib%name-devel
Cube, which is used as performance report explorer for Scalasca and
Score-P, is a generic tool for displaying a multi-dimensional
performance space consisting of the dimensions (i) performance metric,
(ii) call path, and (iii) system resource. Each dimension can be
represented as a tree, where non-leaf nodes of the tree can be collapsed
or expanded to achieve the desired level of granularity. In addition,
Cube can display multi-dimensional Cartesian process topologies.

This package contains development files of Cube.

%package -n lib%{name}gui
Summary: Shared libraries of Cube
Group: System/Libraries

%description -n lib%{name}gui
Cube, which is used as performance report explorer for Scalasca and
Score-P, is a generic tool for displaying a multi-dimensional
performance space consisting of the dimensions (i) performance metric,
(ii) call path, and (iii) system resource. Each dimension can be
represented as a tree, where non-leaf nodes of the tree can be collapsed
or expanded to achieve the desired level of granularity. In addition,
Cube can display multi-dimensional Cartesian process topologies.

This package contains shared libraries of Cube.

%package -n lib%{name}gui-devel
Summary: Development files of Cube
Group: Development/C++
Requires: lib%{name}gui = %EVR

%description -n lib%{name}gui-devel
Cube, which is used as performance report explorer for Scalasca and
Score-P, is a generic tool for displaying a multi-dimensional
performance space consisting of the dimensions (i) performance metric,
(ii) call path, and (iii) system resource. Each dimension can be
represented as a tree, where non-leaf nodes of the tree can be collapsed
or expanded to achieve the desired level of granularity. In addition,
Cube can display multi-dimensional Cartesian process topologies.

This package contains development files of Cube.

%package docs
Summary: Documentation for Cube
Group: Documentation
BuildArch: noarch

%description docs
Cube, which is used as performance report explorer for Scalasca and
Score-P, is a generic tool for displaying a multi-dimensional
performance space consisting of the dimensions (i) performance metric,
(ii) call path, and (iii) system resource. Each dimension can be
represented as a tree, where non-leaf nodes of the tree can be collapsed
or expanded to achieve the desired level of granularity. In addition,
Cube can display multi-dimensional Cartesian process topologies.

This package contains documentation for Cube.

%prep
%setup -n cubelib-%version -b1 -b2

pushd ../cubegui-%version
%patch1 -p1
%patch2 -p2
popd

pushd ..
# Fiddle for cubelib not being installed when building cubegui
cat <<END >cubelib-config
#!/bin/sh
case \$1 in
--cppflags|--cflags) printf '%%s\n' -I$(pwd)/cubelib-%version/inst%_includedir/cubelib ;;
--ldflags)  printf '%%s\n' -L$(pwd)/cubelib-%version/inst%_libdir ;;
--libs) printf '%%s\n' '-lcube4 -lz' ;;
--interface-version) printf '%%s\n' 9:0:2 ;;
esac
END
chmod +x cubelib-config
popd

%build
export CC=gcc
export CXX=g++

%define unhardcode \
 sed -i -e 's/HARDCODE_INTO_LIBS"]="1"/HARDCODE_INTO_LIBS"]="0"/' \\\
        -e "s/hardcode_into_libs='yes'/hardcode_into_libs='no'/"

pushd ../cubew-%version
%autoreconf
pushd build-backend
%autoreconf
popd
pushd build-frontend
%autoreconf
popd
%configure \
--enable-shared \
--disable-static \
--disable-silent-rules \
%nil

%unhardcode build-backend/config.status
%make_build
popd

%autoreconf
pushd build-frontend
%autoreconf
popd
%configure \
--enable-shared \
--disable-static \
--disable-silent-rules \
%nil

%unhardcode build-frontend/config.status
%make_build

# Collect it for use by cubegui

make install DESTDIR=$(pwd)/inst
# Wrong paths in .la cause trouble
rm inst%_libdir/*.la

pushd ../cubegui-%version
# Kludge: For some reason the Qt dependencies are found as .so paths
# and libtool re-orders them with libcube4gui after what it
# should link against, and linking fails.
export LIBS="$LIBS -lQt5PrintSupport -lQt5Widgets -lQt5Gui -lQt5Network -lQt5Concurrent -lQt5Core"
%if_enabled qtwebengine
export LIBS="$LIBS -lQt5WebEngineWidgets"
%endif

%autoreconf
pushd build-frontend
%autoreconf
popd
%configure \
--disable-static \
--disable-silent-rules \
--with-platform=linux \
--with-cubelib=$(pwd)/.. \
%nil

%unhardcode build-frontend/config.status
%make_build
popd

%install
%makeinstall_std -C ../cubew-%version
%makeinstall_std
%makeinstall_std -C ../cubegui-%version

chrpath -d -k %buildroot%_bindir/* %buildroot%_libdir/{,cube-plugins/}*.so  || :

# remove unpackaged files

find %buildroot -name '*.la' -delete
find %buildroot -name '*.a' -delete

%files
%_bindir/*
%exclude %_bindir/cube_server
%exclude %_bindir/cube*-config
%_libdir/libgraphwidgetcommon-plugin.so.*
%_libdir/cube-plugins
%_datadir/cubegui
%_datadir/icons/cubegui

%files -n lib%name
%_bindir/cube_server
%_libdir/*.so.*
%exclude %_libdir/lib%{name}4gui*.so.*
%exclude %_libdir/libgraphwidgetcommon-plugin.so.*
%_datadir/cubelib
%_datadir/cubew

%files -n lib%name-devel
%_bindir/cubelib-config
%_bindir/cubew-config
%_includedir/cubelib
%_includedir/cubew
%_libdir/*.so
%exclude %_libdir/lib%{name}4gui*.so

%files -n lib%{name}gui
%_libdir/lib%{name}4gui*.so.*

%files -n lib%{name}gui-devel
%_bindir/cubegui-config
%_includedir/cubegui
%_libdir/lib%{name}4gui*.so

%files docs
%_docdir/*

%changelog

Полный changelog можно просмотреть здесь

 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin