File tulip.spec of Package tulip
#
# spec file for package tulip
#
# 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: tulip
Summary: Visualization of huge graphs
License: GPL-2.0+
Group: Productivity/Graphics/Visualization/Graph
Version: 3.7.0
Release: 0
Url: http://www.tulip-software.org/
# .so version
%define tulip_version 3.7
Source: %{name}-%{version}-src.tar.bz2
Source1: %{name}.desktop
Source2: %{name}-%{version}-html.tar.bz2
Source4: %{name}-rpmlintrc
Patch1: %{name}-lib64-install.patch
Patch2: %{name}-enable-tlprender.patch
# add return statements to nonvoid function without return
# upstream #3490918
Patch3: add-return-to-nonvoid-functions.patch
Patch4: %{name}-gcc-4.7.patch
Patch5: tulip-ppc64.patch
Patch6: tulip-crash-handler.patch
# libpng16.patch emailed to auber@tulip-software.org
Patch7: tulip-libpng16.patch
# link against system ftgl; if not applied, tulip builds it's own
# copy and store it into /usr/lib64/libftgl.so, which conflicts
# with ftgl-devel
Patch8: tulip-system-ftgl.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: Mesa-devel
BuildRequires: cmake
BuildRequires: dos2unix
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: freefont
BuildRequires: ftgl-devel
BuildRequires: glew-devel
BuildRequires: libdrm-devel
BuildRequires: libjpeg-devel
BuildRequires: libqt4-devel
BuildRequires: libtool
BuildRequires: libxml2-devel
BuildRequires: update-alternatives
BuildRequires: update-desktop-files
BuildRequires: xorg-x11-devel
%if 0%{?suse_version} > 1130
BuildRequires: qt4-assistant-adp-devel
BuildRequires: pkgconfig(glu)
%endif
%if 0%{?suse_version} > 1110
BuildRequires: libgle-devel
%else
BuildRequires: gle
%endif
# These are for (cd docs; make html) below
# To speed up build time, this is pre-generated
#BuildRequires: graphviz-gd xmltex passivetex texlive texlive-bin java libqt4-devel-doc-data
%description
Tulip software is a system dedicated to the visualization of huge
graphs. It manages graphs with a number of elements(node and edges) up
to 500.000 on a personal computer(PIII 600, with 256MB). Its SuperGraph
technology architecture enables to do the following things :
* 3D visualizations
* 3D modifications
* Plug-in support for easy evolution
* Building of clusters and navigation into it
* Automatic drawing of graphs
* Automatic clustering of graphs
* Automatic selection of elements
* Automatic Metric coloration of graphs
%package devel
Summary: Visualization of huge graphs - development files
Group: Development/Libraries/Other
Requires: tulip = %{version}
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
%description devel
Tulip software is a system dedicated to the visualization of huge
graphs. It manages graphs with a number of elements(node and edges) up
to 500.000 on a personal computer(PIII 600, with 256MB). Its SuperGraph
technology architecture enables to do the following things :
* 3D visualizations
* 3D modifications
* Plug-in support for easy evolution
* Building of clusters and navigation into it
* Automatic drawing of graphs
* Automatic clustering of graphs
* Automatic selection of elements
* Automatic Metric coloration of graphs
%package doc
Summary: Visualization of huge graphs - user documentation
Group: Productivity/Graphics/Visualization/Graph
Requires: tulip = %{version}
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
%description doc
Tulip software is a system dedicated to the visualization of huge
graphs. It manages graphs with a number of elements(node and edges) up
to 500.000 on a personal computer(PIII 600, with 256MB). Its SuperGraph
technology architecture enables to do the following things :
* 3D visualizations
* 3D modifications
* Plug-in support for easy evolution
* Building of clusters and navigation into it
* Automatic drawing of graphs
* Automatic clustering of graphs
* Automatic selection of elements
* Automatic Metric coloration of graphs
%package devel-doc
Summary: Visualization of huge graphs - development documentation
Group: Documentation/HTML
Requires: tulip-doc = %{version}
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
%description devel-doc
Tulip software is a system dedicated to the visualization of huge
graphs. It manages graphs with a number of elements(node and edges) up
to 500.000 on a personal computer(PIII 600, with 256MB). Its SuperGraph
technology architecture enables to do the following things :
* 3D visualizations
* 3D modifications
* Plug-in support for easy evolution
* Building of clusters and navigation into it
* Automatic drawing of graphs
* Automatic clustering of graphs
* Automatic selection of elements
* Automatic Metric coloration of graphs
%package -n libtulip
Summary: A library for handling large graphs
Group: Productivity/Graphics/Visualization/Graph
%description -n libtulip
See package 'tulip' for details.
%package -n tulip-ogdf
Summary: A library for displaying graph in a GL context
Group: Productivity/Graphics/Visualization/Graph
Requires: Mesa
%description -n tulip-ogdf
See package 'tulip' for details.
%package -n libtulip-ogl
Summary: A library for displaying graph in a GL context
Group: Productivity/Graphics/Visualization/Graph
Requires: Mesa
%description -n libtulip-ogl
See package 'tulip' for details.
%package -n libtulip-qt4
Provides: libtulip-qt3
Obsoletes: libtulip-qt3
Summary: A set of Qt Widgets for tulip/tulip-ogl
Group: Productivity/Graphics/Visualization/Graph
%description -n libtulip-qt4
See package 'tulip' for details.
%prep
%setup -q -n %{name}-%{version}-src
dos2unix CMakeLists.txt
%patch1 -p1
# tlprender disabled until OSmesa is available
##%patch2 -p1
%patch3 -p1
%if 0%{?suse_version} > 1210
%patch4 -p1
%endif
%patch5 -p1
%patch6 -p1
%patch7
%patch8
%build
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
export CXXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -Wno-deprecated"
cmake . -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_VERBOSE_MAKEFILE=TRUE \
-DCMAKE_C_FLAGS_RELEASE:STRING="$RPM_OPT_FLAGS -fno-strict-aliasing -Wall -O2 -g" \
-DCMAKE_CXX_FLAGS_RELEASE:STRING="$RPM_OPT_FLAGS -fno-strict-aliasing -Wno-deprecated -Wall -O2 -g" \
-DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_RPATH=1 -DSYSTEM_FTGL=1
# parallel make is not working, do not use it. -Marcus 20091115
make RPM_OPT_FLAGS="$RPM_OPT_FLAGS"
# generating docs during build is disabled
#(cd docs; make html)
# copy pre-generated docs instead
%install
make DESTDIR=$RPM_BUILD_ROOT install
mkdir -p $RPM_BUILD_ROOT%{_datadir}/tulip
(cd $RPM_BUILD_ROOT%{_datadir}/tulip; tar xf %{S:2}; mv %{name}-%{version}-html html)
%fdupes $RPM_BUILD_ROOT%{_datadir}/tulip/html
chmod -x NEWS
#cd docs
#sh gen-profile.sh
#make DESTDIR=${RPM_BUILD_ROOT} install
#cd ..
%suse_update_desktop_file -i tulip Graphics 3DGraphics
find $RPM_BUILD_ROOT%{_libdir} -name *.la | xargs rm -f
%fdupes $RPM_BUILD_ROOT%{_docdir}/tulip
%fdupes $RPM_BUILD_ROOT%{_includedir}/tulip
rm -f $RPM_BUILD_ROOT/%{_libdir}/*.a
%clean
rm -rf $RPM_BUILD_ROOT
%post -n libtulip -p /sbin/ldconfig
%postun -n libtulip -p /sbin/ldconfig
%post -n libtulip-qt4 -p /sbin/ldconfig
%postun -n libtulip-qt4 -p /sbin/ldconfig
%post -n libtulip-ogl -p /sbin/ldconfig
%postun -n libtulip-ogl -p /sbin/ldconfig
%files
%defattr(-,root,root)
%{_bindir}/tulip
%{_bindir}/tulip_app
%{_bindir}/tulip_need_restart
%{_bindir}/tulip_check_pl
# tlprender disabled until OSmesa is available
##%{_bindir}/tlprender
%{_datadir}/applications/*.desktop
#%dir %{_libdir}/tlp
#%{_libdir}/libtulip-pluginsmanager-%{tulip_version}.so*
%dir %{_datadir}/tulip
%dir %{_datadir}/tulip/bitmaps
%{_datadir}/tulip/bitmaps/*
%{_datadir}/tulip/tulip*
%doc NEWS
%files -n tulip-ogdf
%defattr(-,root,root)
%{_libdir}/libOGDF.so
%dir %{_libdir}/tulip
%{_libdir}/tulip/libogdf*
%{_libdir}/libtulip-ogdf-%{tulip_version}.so
%files -n libtulip
%defattr(-,root,root)
%{_bindir}/tulip-config
%{_libdir}/libgzstream.so
%{_libdir}/libtulip-%{tulip_version}.*
%dir %{_libdir}/tulip
%dir %{_libdir}/tulip/interactors
%{_libdir}/tulip/interactors/lib*so
%{_libdir}/tulip/libAdjacencyMatrixImport-%{version}.*
%{_libdir}/tulip/libAutoSize-%{version}.*
%{_libdir}/tulip/libBetweennessCentrality-%{version}.*
%{_libdir}/tulip/libBiconnectedComponent-%{version}.*
%{_libdir}/tulip/libBubbleTree-%{version}.*
%{_libdir}/tulip/libCircular-%{version}.*
%{_libdir}/tulip/libClusterMetric-%{version}.*
%{_libdir}/tulip/libColorMapping-%{version}.so
%{_libdir}/tulip/libCompleteGraph-%{version}.*
%{_libdir}/tulip/libCompleteTree-%{version}.*
%{_libdir}/tulip/libConeTreeExtended-%{version}.*
%{_libdir}/tulip/libConnectedComponent-%{version}.*
%{_libdir}/tulip/libConnectedComponentPacking-%{version}.*
%{_libdir}/tulip/libDagLevelMetric-%{version}.*
%{_libdir}/tulip/libDegreeMetric-%{version}.so
%{_libdir}/tulip/libdelaunay-%{version}.so
%{_libdir}/tulip/libDendrogram-%{version}.*
%{_libdir}/tulip/libDepthMetric-%{version}.*
%{_libdir}/tulip/libDotImport-%{version}.*
%{_libdir}/tulip/libEccentricity-%{version}.*
%{_libdir}/tulip/libEqualValueClustering-%{version}.*
%{_libdir}/tulip/libGemLayout-%{version}.*
%{_libdir}/tulip/libHierarchicalGraph-%{version}.*
%{_libdir}/tulip/libGMLExport-%{version}.*
%{_libdir}/tulip/libGMLImport-%{version}.*
%{_libdir}/tulip/libGrid-%{version}.*
%{_libdir}/tulip/libHierarchicalClustering-%{version}.*
%{_libdir}/tulip/libIdMetric-%{version}.*
%{_libdir}/tulip/libImportPajek-%{version}.so
%{_libdir}/tulip/libImportUCINET-%{version}.so
%{_libdir}/tulip/libImprovedWalker-%{version}.*
%{_libdir}/tulip/libInducedSubGraphSelection-%{version}.*
%{_libdir}/tulip/libKruskal-%{version}.*
%{_libdir}/tulip/libLeafMetric-%{version}.*
%{_libdir}/tulip/libLoopSelection-%{version}.*
%{_libdir}/tulip/libMetricSizeMapping-%{version}.*
%{_libdir}/tulip/libMixedModel-%{version}.*
%{_libdir}/tulip/libMultipleSelection-%{version}.*
%{_libdir}/tulip/libNodeMetric-%{version}.*
%{_libdir}/tulip/libPathLengthMetric-%{version}.*
%{_libdir}/tulip/libPlanarGraph-%{version}.*
%{_libdir}/tulip/libQuotientClustering-%{version}.*
%{_libdir}/tulip/libRandom-%{version}.*
%{_libdir}/tulip/libRandomGraph-%{version}.*
%{_libdir}/tulip/libRandomMetric-%{version}.*
%{_libdir}/tulip/libRandomSimpleGraph-%{version}.*
%{_libdir}/tulip/libRandomTree-%{version}.*
%{_libdir}/tulip/libRandomTreeGeneral-%{version}.*
%{_libdir}/tulip/libReachableSubGraphSelection-%{version}.*
%{_libdir}/tulip/libSmallWorldGraph-%{version}.*
%{_libdir}/tulip/libSpanningDagSelection-%{version}.*
%{_libdir}/tulip/libSpanningTreeSelection-%{version}.*
%{_libdir}/tulip/libSquarifiedTreeMap-%{version}.*
%{_libdir}/tulip/libStrahlerMetric-%{version}.*
%{_libdir}/tulip/libStrengthClustering-%{version}.*
%{_libdir}/tulip/libStrengthMetric-%{version}.*
%{_libdir}/tulip/libStrongComponent-%{version}.*
%{_libdir}/tulip/libTreeLeaf-%{version}.*
%{_libdir}/tulip/libTreeRadial-%{version}.*
%{_libdir}/tulip/libTreeReingoldAndTilforExtended-%{version}.*
%{_libdir}/tulip/libTutte-%{version}.*
%files -n libtulip-ogl
%defattr(-,root,root)
%{_libdir}/libtulip-ogl-%{tulip_version}.so
%dir %{_libdir}/tulip/glyphs
%{_libdir}/tulip/glyphs/lib*-%{version}.*
%{_libdir}/tulip/libFitToLabels-%{version}.*
%files -n libtulip-qt4
%defattr(-,root,root)
%{_libdir}/libtulip-qt4-%{tulip_version}.so
%{_libdir}/tulip/libConvolutionClustering-%{version}.*
%{_libdir}/tulip/libFileSystem-%{version}.*
%{_libdir}/tulip/libWebImport-%{version}.*
%dir %{_libdir}/tulip/view
%{_libdir}/tulip/view/libSpreadSheet-%{version}.*
%files doc
%defattr(-,root,root)
%doc %dir %{_datadir}/tulip/html
%doc %dir %{_datadir}/tulip/html/common
%doc %{_datadir}/tulip/html/common
%doc %dir %{_datadir}/tulip/html/userHandbook
%doc %{_datadir}/tulip/html/userHandbook
%files devel
%defattr(-,root,root)
%dir %{_includedir}/tulip
%{_includedir}/tulip/*
%{_datadir}/tulip/*.cmake
%files devel-doc
%defattr(-,root,root)
%doc %dir %{_datadir}/tulip/html/doxygen
%doc %{_datadir}/tulip/html/doxygen
%doc %dir %{_datadir}/tulip/html/developerHandbook
%doc %{_datadir}/tulip/html/developerHandbook
%changelog