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
openSUSE Build Service is sponsored by