1# @configure_input@ 2 3#-- Global graphviz rpm and src.rpm tags------------------------------------- 4Name: graphviz 5Summary: Graph Visualization Tools 6Version: @VERSION@ 7Release: 1%{?dist} 8Group: Applications/Multimedia 9License: EPL 10URL: http://www.graphviz.org/ 11Source0: http://www.graphviz.org/pub/@GRAPHVIZ_SOURCES@/graphviz-@VERSION@.tar.gz 12 13# Necessary conditionals 14%ifarch %{mono_arches} 15%global SHARP 1 16%else 17%global SHARP 0 18%endif 19 20# Assuming Fedora 21%global LICENSE 1 22%global ANN 1 23%global ARRRR 1 24%global DEEEE 0 25%global DEVIL 1 26%global GOLANG 1 27%global GTS 1 28%global GTK 1 29%global GUILE 1 30%global JAVA 1 31%global JAVASCRIPT 0 32%global LASI 1 33%global OCAML 1 34%global WEBP 1 35%global PYTHON 0 36%global PYTHON2 1 37%global PYTHON3 1 38%global QT5 1 39# Not yet. 40%global MING 0 41 42# Overrides for RHEL 43%if 0%{?rhel} 44%global LICENSE 0 45%global ANN 0 46%global ARRRR 0 47%global DEEEE 0 48%global DEVIL 0 49%global GOLANG 0 50%global GTS 0 51%global GTK 0 52%global JAVASCRIPT 0 53%global LASI 0 54%if 0%{?rhel} >= 8 55%global PYTHON 0 56%global PYTHON2 1 57%global PYTHON3 1 58%else 59%global PYTHON 1 60%global PYTHON2 0 61%global PYTHON3 0 62%endif 63%global SHARP 0 64%global WEBP 0 65%endif 66 67# Plugins version 68%global pluginsver 6 69 70BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) 71 72BuildRequires: zlib-devel expat-devel ksh bison m4 flex swig gcc-c++ 73BuildRequires: libXaw-devel libSM-devel libICE-devel libXpm-devel libXt-devel 74BuildRequires: libXmu-devel libXext-devel libX11-devel gtk2-devel freeglut-devel 75BuildRequires: freetype-devel fontconfig-devel cairo-devel pango-devel 76BuildRequires: gmp-devel gd gd-devel librsvg2-devel 77BuildRequires: ghostscript ghostscript-devel poppler-glib-devel libtool-ltdl libtool-ltdl-devel 78BuildRequires: ruby ruby-devel php-devel lua-devel 79BuildRequires: perl-devel perl-libs perl-ExtUtils-Embed tcl tcl-devel tk tk-devel 80 81%if %{ANN} 82BuildRequires: ann-devel 83%endif 84%if %{ARRRR} 85BuildRequires: R-devel 86%endif 87%if %{DEEEE} 88BuildRequires: ldc-druntime-devel 89%endif 90%if %{DEVIL} 91BuildRequires: DevIL-devel 92%endif 93%if %{GOLANG} 94BuildRequires: golang gcc-go swig >= 3.0.2 95%endif 96%if %{GTK} 97BuildRequires: libglade2-devel gtkglext-devel 98%if 0%{?fedora} <= 32 99BuildRequires: glade3-libgladeui-devel 100%endif 101%endif 102%if %{GTS} 103BuildRequires: gts-devel 104%endif 105%if %{GUILE} 106BuildRequires: guile-devel 107%endif 108%if %{JAVA} 109BuildRequires: java-devel 110%endif 111#%if %{JAVASCRIPT} 112#BuildRequires: javascript-devel 113#%endif 114%if %{LASI} 115BuildRequires: lasi-devel 116%endif 117%if %{OCAML} 118BuildRequires: ocaml 119%endif 120%if %{PYTHON} 121BuildRequires: python python-devel 122%endif 123%if %{PYTHON2} 124BuildRequires: python2 python2-devel 125%endif 126%if %{PYTHON3} 127BuildRequires: python3 python3-devel 128%endif 129%if %{QT5} 130BuildRequires: qt5-qtbase-devel 131%endif 132%if %{SHARP} 133BuildRequires: mono-core 134%endif 135%if %{WEBP} 136BuildRequires: libwebp-devel 137%endif 138 139# What a meal PHP makes of versioning !!! 140%define php_extdir %(php-config --extension-dir 2>/dev/null || echo %{_libdir}/php4) 141%global php_apiver %((echo 0; php -i 2>/dev/null | sed -n 's/^PHP API => //p') | tail -1) 142 143%if "%{php_version}" < "5.6" 144%global ini_name %{name}.ini 145%else 146%global ini_name 40-%{name}.ini 147%endif 148 149# Fix private-shared-object-provides 150# RPM 4.8 151%{?filter_provides_in: %filter_provides_in %{php_extdir}/.*\.so$} 152%{?filter_setup} 153# RPM 4.9 154%global __provides_exclude_from %{?__provides_exclude_from:%__provides_exclude_from|}%{php_extdir}/.*\\.so$ 155 156# Fix for the i386 extended precision (rhbz#772637) 157%ifarch i386 i686 158%global FFSTORE -ffloat-store 159%endif 160 161#-- main graphviz rpm ------------------------------------------------ 162Requires: %{name}-nox = %{version}-%{release} 163Requires: %{name}-x = %{version}-%{release} 164 165%description 166A collection of tools for the manipulation and layout 167of graphs (as in nodes and edges, not as in bar-charts). 168 169%files 170%defattr(-,root,root,-) 171%if %{LICENSE} 172%license COPYING 173%endif 174%doc COPYING AUTHORS CHANGELOG.md NEWS README 175 176#-- graphviz-nox rpm -------------------------------------------------- 177%package nox 178Group: Applications/Multimedia 179Summary: Graphviz commands with no X11 dependencies 180Requires: urw-fonts 181Requires: %{name}-libs = %{version}-%{release} 182Requires: %{name}-plugins-core = %{version}-%{release} 183Provides: %{name}-nox = %{version}-%{release} 184 185%description nox 186Graphviz plugins and commands that do not depend on x11. 187When used alone, this is intended for minimalist web-server apps 188with no X11 on the server. 189 190# completely remove any old configs before any fresh install of dot. 191# don't remove any externally provided plugins. "doc -c" should refind them 192%pre nox 193rm -rf %{_libdir}/graphviz/config* || : 194 195# run "dot -c" to generate plugin config in {_libdir}/graphviz/config%{pluginsver} 196%post nox 197LD_LIBRARY_PATH=%{_libdir} %{_bindir}/dot -c 198 199%files nox 200%defattr(-,root,root,-) 201%if %{LICENSE} 202%license COPYING 203%endif 204%doc COPYING AUTHORS CHANGELOG.md NEWS README 205%exclude %{_bindir}/dot_builtins 206%{_bindir}/acyclic 207%{_bindir}/bcomps 208%{_bindir}/ccomps 209%{_bindir}/circo 210%{_bindir}/cluster 211%{_bindir}/dijkstra 212%{_bindir}/dot 213%{_bindir}/dot2gxl 214%{_bindir}/fdp 215%{_bindir}/gc 216%{_bindir}/gml2gv 217%{_bindir}/graphml2gv 218%{_bindir}/gv2gml 219%{_bindir}/gv2gxl 220%{_bindir}/gvcolor 221%{_bindir}/gvgen 222%{_bindir}/gvmap 223%{_bindir}/gvmap.sh 224%{_bindir}/gvpack 225%{_bindir}/gvpr 226%{_bindir}/gxl2dot 227%{_bindir}/gxl2gv 228%if %{ANN} 229%{_bindir}/mingle 230%endif 231%{_bindir}/edgepaint 232%{_bindir}/mm2gv 233%{_bindir}/neato 234%{_bindir}/nop 235%{_bindir}/osage 236%{_bindir}/patchwork 237%{_bindir}/prune 238%{_bindir}/sccmap 239%{_bindir}/sfdp 240%{_bindir}/tred 241%{_bindir}/twopi 242%{_bindir}/unflatten 243%{_mandir}/man1/acyclic.1* 244%{_mandir}/man1/bcomps.1* 245%{_mandir}/man1/ccomps.1* 246%{_mandir}/man1/circo.1* 247%{_mandir}/man1/cluster.1* 248%{_mandir}/man1/dijkstra.1* 249%{_mandir}/man1/dot.1* 250%{_mandir}/man1/dot2gxl.1* 251%{_mandir}/man1/fdp.1* 252%{_mandir}/man1/gc.1* 253%{_mandir}/man1/gml2gv.1* 254%{_mandir}/man1/graphml2gv.1* 255%{_mandir}/man1/gv2gml.1* 256%{_mandir}/man1/gv2gxl.1* 257%{_mandir}/man1/gvcolor.1* 258%{_mandir}/man1/gvgen.1* 259%{_mandir}/man1/gvmap.1* 260%{_mandir}/man1/gvmap.sh.1* 261%{_mandir}/man1/gvpack.1* 262%{_mandir}/man1/gvpr.1* 263%{_mandir}/man1/gxl2dot.1* 264%{_mandir}/man1/gxl2gv.1* 265%{_mandir}/man1/mingle.1* 266%{_mandir}/man1/edgepaint.1* 267%{_mandir}/man1/mm2gv.1* 268%{_mandir}/man1/neato.1* 269%{_mandir}/man1/nop.1* 270%{_mandir}/man1/osage.1* 271%{_mandir}/man1/patchwork.1* 272%{_mandir}/man1/prune.1* 273%{_mandir}/man1/sccmap.1* 274%{_mandir}/man1/sfdp.1* 275%{_mandir}/man1/tred.1* 276%{_mandir}/man1/twopi.1* 277%{_mandir}/man1/unflatten.1* 278%{_mandir}/man7/graphviz.7* 279%dir %{_datadir}/graphviz 280%{_datadir}/graphviz/gvpr/* 281 282#-- graphviz-libs rpm -------------------------------------------------- 283%package libs 284Group: Applications/Multimedia 285Summary: Graphviz base libs 286Requires(post): /sbin/ldconfig 287Requires(postun): /sbin/ldconfig 288 289%description libs 290Graphviz core libs 291 292%post libs 293/sbin/ldconfig 294 295%postun libs 296/sbin/ldconfig 297 298%files libs 299%defattr(-,root,root,-) 300%{_libdir}/libcdt.so.* 301%{_libdir}/libcgraph.so.* 302%{_libdir}/libgvc.so.* 303%{_libdir}/libgvpr.so.* 304%{_libdir}/libpathplan.so.* 305%{_libdir}/libxdot.so.4* 306%{_libdir}/liblab_gamut.so.* 307%exclude %{_libdir}/graphviz/* 308 309#-- graphviz-plugins-core rpm -------------------------------------------------- 310%package plugins-core 311Group: Applications/Multimedia 312Summary: Graphviz plugins - core layout engines and text renderers 313Requires: %{name}-nox = %{version}-%{release} 314 315%description plugins-core 316Graphviz plugins - core layout engines and text renderers 317 318# run "dot -c" to generate plugin config in {_libdir}/graphviz/config%{pluginsver} 319# this one is conditional because of rpm dependency ordering 320# on a fresh install this package is installed before dot is avaiable from graphviz-nox 321# no matter since dot -c is also run from the graphviz-nox install 322%post plugins-core 323[ -x %{_bindir}/dot ] && LD_LIBRARY_PATH=%{_libdir} %{_bindir}/dot -c || : 324 325# if there is no dot after everything else is done, then remove config 326%postun plugins-core 327if [ $1 -eq 0 ]; then 328 rm -f %{_libdir}/graphviz/config6 || : 329fi 330 331%files plugins-core 332%defattr(-,root,root,-) 333%dir %{_libdir}/graphviz 334%{_libdir}/graphviz/libgvplugin_core.so.* 335%{_libdir}/graphviz/libgvplugin_dot_layout.so.* 336%{_libdir}/graphviz/libgvplugin_neato_layout.so.* 337 338#-- graphviz-x rpm -------------------------------------------------- 339%package x 340Group: Applications/Multimedia 341Summary: Graphviz commands with X11 dependencies 342Requires: %{name}-nox = %{version}-%{release} 343Requires: %{name}-plugins-x = %{version}-%{release} 344 345%description x 346Graphviz commands with X11 dependencies 347 348%files x 349%defattr(-,root,root,-) 350%if %{LICENSE} 351%license COPYING 352%endif 353%doc COPYING AUTHORS CHANGELOG.md NEWS README 354%{_bindir}/lefty 355%{_bindir}/lneato 356%{_bindir}/dotty 357%{_bindir}/vimdot 358%{_mandir}/man1/lefty.1* 359%{_mandir}/man1/lneato.1* 360%{_mandir}/man1/dotty.1* 361%{_mandir}/man1/vimdot.1* 362%{_datadir}/graphviz/lefty 363%if %{GTK} 364%{_bindir}/smyrna 365%{_datadir}/graphviz/smyrna 366%{_mandir}/man1/smyrna.1* 367%endif 368 369#-- graphviz-plugins-x rpm -------------------------------------------------- 370%package plugins-x 371Group: Applications/Multimedia 372Summary: Graphviz plugins with X11 dependencies 373Requires: %{name} = %{version}-%{release} 374 375%description plugins-x 376Graphviz plugins that depend on x11 - most installations will want this. 377 378# run "dot -c" to generate plugin config in {_libdir}/graphviz/config6 379%post plugins-x 380LD_LIBRARY_PATH=%{_libdir} %{_bindir}/dot -c 381 382%postun plugins-x 383[ -x %{_bindir}/dot ] && LD_LIBRARY_PATH=%{_libdir} %{_bindir}/dot -c || : 384 385%files plugins-x 386%defattr(-,root,root,-) 387%dir %{_libdir}/graphviz 388%{_libdir}/graphviz/libgvplugin_xlib.so.* 389%{_libdir}/graphviz/libgvplugin_pango.so.* 390%{_libdir}/graphviz/libgvplugin_rsvg.so.* 391%{_libdir}/graphviz/libgvplugin_gdk.so.* 392%{_libdir}/graphviz/libgvplugin_gs.so.* 393%{_libdir}/graphviz/libgvplugin_poppler.so.* 394%if %{GTK} 395%{_libdir}/graphviz/libgvplugin_gtk.so.* 396%endif 397%if %{LASI} 398%{_libdir}/graphviz/libgvplugin_lasi.so.* 399%endif 400 401#-- graphviz-gd rpm -------------------------------------------------- 402%package gd 403Group: Applications/Multimedia 404Summary: Graphviz binaries that depend on libgd 405Requires: %{name} = %{version}-%{release} 406 407# this next Requires is not strictly neccessary for diffimg, 408# but users will probably expect the plugins to get pulled in 409Requires: %{name}-plugins-gd = %{version}-%{release} 410 411%description gd 412Graphviz binaries that depend on gd. (Unless you absolutely have 413to use GIF, you are recommended to use the PNG format instead because 414of the better quality anti-aliased lines provided by the cairo+pango 415based renderer.) 416 417%files gd 418%defattr(-,root,root,-) 419%{_bindir}/diffimg 420%{_mandir}/man1/diffimg.1* 421 422#-- graphviz-plugins-gd rpm -------------------------------------------------- 423%package plugins-gd 424Group: Applications/Multimedia 425Summary: Graphviz plugin for gd renderers 426Requires: %{name} = %{version}-%{release} 427 428%description plugins-gd 429Graphviz plugin for image rendering using libgd. (Unless you absolutely have 430to use GIF, you are recommended to use the PNG format instead because 431of the better quality anti-aliased lines provided by the cairo+pango 432based renderer.) 433 434# run "dot -c" to generate plugin config in {_libdir}/graphviz/config6 435%post plugins-gd 436LD_LIBRARY_PATH=%{_libdir} %{_bindir}/dot -c 437 438%postun plugins-gd 439[ -x %{_bindir}/dot ] && LD_LIBRARY_PATH=%{_libdir} %{_bindir}/dot -c || : 440 441%files plugins-gd 442%defattr(-,root,root,-) 443%dir %{_libdir}/graphviz 444%{_libdir}/graphviz/libgvplugin_gd.so.* 445 446#-- graphviz-plugins-webp rpm -------------------------------------------------- 447%if %{WEBP} 448%package plugins-webp 449Group: Applications/Multimedia 450Summary: Graphviz plugin for webp format images, using libwebp 451Requires: %{name}-x = %{version}-%{release} 452Obsoletes: %{name}-webp <= 2.41 453Provides: %{name}-webp = %{version}-%{release} 454 455%description plugins-webp 456Graphviz plugin for webp image rendering. 457 458# run "dot -c" to generate plugin config in {_libdir}/graphviz/config6 459%post plugins-webp 460LD_LIBRARY_PATH=%{_libdir} %{_bindir}/dot -c 461 462%postun plugins-webp 463[ -x %{_bindir}/dot ] && LD_LIBRARY_PATH=%{_libdir} %{_bindir}/dot -c || : 464 465%files plugins-webp 466%defattr(-,root,root,-) 467%dir %{_libdir}/graphviz 468%{_libdir}/graphviz/libgvplugin_webp.so.* 469%endif 470 471#-- graphviz-plugins-visio rpm -------------------------------------------------- 472%package plugins-visio 473Group: Applications/Multimedia 474Summary: Graphviz plugin for visio format images 475Requires: %{name}-nox = %{version}-%{release} 476 477%description plugins-visio 478Graphviz plugin for visio image rendering. 479 480# run "dot -c" to generate plugin config in {_libdir}/graphviz/config6 481%post plugins-visio 482LD_LIBRARY_PATH=%{_libdir} %{_bindir}/dot -c 483 484%postun plugins-visio 485[ -x %{_bindir}/dot ] && LD_LIBRARY_PATH=%{_libdir} %{_bindir}/dot -c || : 486 487%files plugins-visio 488%defattr(-,root,root,-) 489%dir %{_libdir}/graphviz 490%{_libdir}/graphviz/libgvplugin_visio.so.* 491 492#-- graphviz-plugins-devil rpm -------------------------------------------------- 493%if %{DEVIL} 494%package plugins-devil 495Group: Applications/Multimedia 496Summary: Graphviz plugin for renderers based on DevIL 497Requires: %{name}-x = %{version}-%{release} 498Obsoletes: %{name}-devil <= 2.41 499Provides: %{name}-devil = %{version}-%{release} 500 501%description plugins-devil 502Graphviz plugin for renderers based on DevIL. (Unless you absolutely have 503to use BMP, TIF, or TGA, you are recommended to use the PNG format instead 504supported directly by the cairo+pango based renderer in the base graphviz rpm.) 505 506# run "dot -c" to generate plugin config in {_libdir}/graphviz/config6 507%post plugins-devil 508LD_LIBRARY_PATH=%{_libdir} %{_bindir}/dot -c 509 510%postun plugins-devil 511[ -x %{_bindir}/dot ] && LD_LIBRARY_PATH=%{_libdir} %{_bindir}/dot -c || : 512 513%files plugins-devil 514%defattr(-,root,root,-) 515%dir %{_libdir}/graphviz 516%{_libdir}/graphviz/libgvplugin_devil.so.* 517%endif 518 519#-- graphviz-plugins-ming rpm -------------------------------------------------- 520%if %{MING} 521%package plugins-ming 522Group: Applications/Multimedia 523Summary: Graphviz plugin for flash renderer based on ming 524Requires: %{name}-x = %{version}-%{release} 525Obsoletes: %{name}-ming <= 2.41 526Provides: %{name}-ming = %{version}-%{release} 527 528%description plugins-ming 529Graphviz plugin for -Tswf (flash) renderer based on ming. 530 531# run "dot -c" to generate plugin config in {_libdir}/graphviz/config6 532%post plugins-ming 533LD_LIBRARY_PATH=%{_libdir} %{_bindir}/dot -c 534 535%postun plugins-ming 536[ -x %{_bindir}/dot ] && LD_LIBRARY_PATH=%{_libdir} %{_bindir}/dot -c || : 537 538%files plugins-ming 539%{_libdir}/graphviz/libgvplugin_ming.so.* 540%{_libdir}/graphviz/*fdb 541%endif 542 543#-- graphviz-qt rpm -------------------------------------------------- 544%package qt 545Group: Applications/Multimedia 546Summary: Graphviz applications using _QT 547Requires: %{name}-x = %{version}-%{release} 548 549%description qt 550Graphviz applications using _QT - currently just gvedit 551 552%files qt 553%defattr(-,root,root,-) 554%{_bindir}/gvedit 555%{_datadir}/graphviz/gvedit 556%{_mandir}/man1/gvedit.1* 557 558#-- graphviz-lang-sharp rpm -------------------------------------------- 559%if %{SHARP} 560%package lang-sharp 561Group: Applications/Multimedia 562Summary: C# extension for graphviz 563Requires: %{name} = %{version}-%{release}, mono-core 564Obsoletes: %{name}-sharp <= 2.41 565Provides: %{name}-sharp = %{version}-%{release} 566 567%description lang-sharp 568C# extension for graphviz. 569 570%files lang-sharp 571%defattr(-,root,root,-) 572%dir %{_libdir}/graphviz/sharp 573%{_libdir}/graphviz/sharp/* 574%{_mandir}/man3/*.3sharp.* 575%endif 576 577#-- graphviz-lang-d rpm --------------------------------------------- 578%if 0%{?DEEEE} 579%package lang-d 580Group: Applications/Multimedia 581Summary: D extension for graphviz 582Requires: %{name} = %{version}-%{release}, D 583Obsoletes: %{name}-d <= 2.41 584Provides: %{name}-d = %{version}-%{release} 585 586%description lang-d 587D extension for graphviz. 588 589%files lang-d 590%defattr(-,root,root,-) 591%dir %{_libdir}/graphviz/d 592%{_libdir}/graphviz/d/* 593%{_mandir}/man3/*.3d.* 594%endif 595 596#-- graphviz-lang-go rpm -------------------------------------------- 597%if %{GOLANG} 598%package lang-go 599Group: Applications/Multimedia 600Summary: GO extension for graphviz 601Requires: %{name} = %{version}-%{release}, golang 602Obsoletes: %{name}-go <= 2.41 603Provides: %{name}-go = %{version}-%{release} 604 605%description lang-go 606Guile extension for graphviz. 607 608%files lang-go 609%defattr(-,root,root,-) 610%dir %{_libdir}/graphviz/go 611%{_libdir}/graphviz/go/* 612%{_mandir}/man3/*.3go.* 613%endif 614 615#-- graphviz-lang-guile rpm -------------------------------------------- 616%if %{GUILE} 617%package lang-guile 618Group: Applications/Multimedia 619Summary: Guile extension for graphviz 620Requires: %{name} = %{version}-%{release}, guile 621Obsoletes: %{name}-guile <= 2.41 622Provides: %{name}-guile = %{version}-%{release} 623 624%description lang-guile 625Guile extension for graphviz. 626 627%files lang-guile 628%defattr(-,root,root,-) 629%dir %{_libdir}/graphviz/guile 630%{_libdir}/graphviz/guile/* 631%{_mandir}/man3/*.3guile.* 632%endif 633 634#-- graphviz-lang-io rpm ----------------------------------------------- 635%if 0%{?_IO} 636%package lang-io 637Group: Applications/Multimedia 638Summary: Io extension for graphviz 639Requires: %{name} = %{version}-%{release}, io 640Obsoletes: %{name}-io <= 2.41 641Provides: %{name}-io = %{version}-%{release} 642 643%description lang-io 644Io extension for graphviz. 645 646%files lang-io 647%defattr(-,root,root,-) 648%{_mandir}/man3/*.3io.* 649%endif 650 651#-- graphviz-lang-java rpm --------------------------------------------- 652%if 0%{?JAVA} 653%package lang-java 654Group: Applications/Multimedia 655Summary: Java extension for graphviz 656Requires: %{name} = %{version}-%{release}, java 657Obsoletes: %{name}-java <= 2.41 658Provides: %{name}-java = %{version}-%{release} 659 660%description lang-java 661Java extension for graphviz. 662 663%files lang-java 664%defattr(-,root,root,-) 665%dir %{_libdir}/graphviz/java 666%{_libdir}/graphviz/java/* 667%{_mandir}/man3/*.3java.* 668%endif 669 670#-- graphviz-lang-javascript rpm --------------------------------------------- 671%if 0%{?JAVASCRIPT} 672%package lang-javascript 673Group: Applications/Multimedia 674Summary: Javascript extension for graphviz 675Requires: %{name} = %{version}-%{release}, javascript 676Obsoletes: %{name}-javascript <= 2.41 677Provides: %{name}-javascript = %{version}-%{release} 678 679%description lang-javascript 680Javascript extension for graphviz. 681 682%files lang-javascript 683%defattr(-,root,root,-) 684%dir %{_libdir}/graphviz/javascript 685%{_libdir}/graphviz/javascript/* 686%{_mandir}/man3/*.3javascript.* 687%endif 688 689#-- graphviz-lang-lua rpm ---------------------------------------------- 690%package lang-lua 691Group: Applications/Multimedia 692Summary: Lua extension for graphviz 693Requires: %{name} = %{version}-%{release}, lua 694Obsoletes: %{name}-lua <= 2.41 695Provides: %{name}-lua = %{version}-%{release} 696 697%description lang-lua 698Lua extension for graphviz. 699 700%files lang-lua 701%defattr(-,root,root,-) 702%{_libdir}/lua*/* 703%{_datadir}/graphviz/demo/*.lua* 704%{_mandir}/man3/*.3lua.* 705%exclude %{_libdir}/graphviz/lua/*.so 706 707#-- graphviz-lang-ocaml rpm -------------------------------------------- 708%if %{OCAML} 709%package lang-ocaml 710Group: Applications/Multimedia 711Summary: Ocaml extension for graphviz 712Requires: %{name} = %{version}-%{release}, ocaml 713Obsoletes: %{name}-ocaml <= 2.41 714Provides: %{name}-ocaml = %{version}-%{release} 715 716%description lang-ocaml 717Ocaml extension for graphviz. 718 719%files lang-ocaml 720%defattr(-,root,root,-) 721%dir %{_libdir}/graphviz/ocaml 722%{_libdir}/graphviz/ocaml/* 723%{_mandir}/man3/*.3ocaml.* 724%endif 725 726#-- graphviz-lang-perl rpm --------------------------------------------- 727%package lang-perl 728Group: Applications/Multimedia 729Summary: Perl extension for graphviz 730Requires: %{name} = %{version}-%{release}, perl 731Obsoletes: %{name}-perl <= 2.41 732Provides: %{name}-perl = %{version}-%{release} 733 734%description lang-perl 735Perl extension for graphviz. 736 737%files lang-perl 738%defattr(-,root,root,-) 739%{_libdir}/perl*/* 740%{_datadir}/graphviz/demo/*.pl* 741%{_mandir}/man3/*.3perl.* 742%exclude %{_libdir}/graphviz/perl/*.so 743%exclude %{_libdir}/graphviz/perl/*.pm 744 745#-- graphviz-lang-php rpm ---------------------------------------------- 746%package lang-php 747Group: Applications/Multimedia 748Summary: PHP extension for graphviz 749Requires: %{name} = %{version}-%{release}, /usr/bin/php 750Obsoletes: %{name}-php <= 2.41 751Provides: %{name}-php = %{version}-%{release} 752 753%description lang-php 754PHP extension for graphviz. 755 756%files lang-php 757%defattr(-,root,root,-) 758%config(noreplace) %{_sysconfdir}/php.d/%{name}.ini 759%{php_extdir}/gv.so 760%{_datadir}/php*/* 761%{_datadir}/graphviz/demo/*.php* 762%{_mandir}/man3/*.3php.* 763%exclude %{_libdir}/graphviz/php/*.so 764%exclude %{_libdir}/graphviz/php/*.php 765 766#-- graphviz-lang-python rpm ------------------------------------------- 767%if %{PYTHON} 768%package lang-python 769Group: Applications/Multimedia 770Summary: Python extension for graphviz 771Requires: %{name} = %{version}-%{release}, python 772Obsoletes: %{name}-python <= 2.41 773Provides: %{name}-python = %{version}-%{release} 774 775%description lang-python 776Python extension for graphviz. 777 778%files lang-python 779%defattr(-,root,root,-) 780%{_libdir}/python*/* 781%{_datadir}/graphviz/demo/*.py* 782%{_mandir}/man3/gv.3python.* 783%exclude %{_libdir}/graphviz/python*/*.so 784%exclude %{_libdir}/graphviz/python*/*.py* 785%endif 786 787#-- graphviz-lang-python2 rpm ------------------------------------------- 788%if %{PYTHON2} 789%package lang-python2 790Group: Applications/Multimedia 791Summary: Python extension for graphviz 792Requires: %{name} = %{version}-%{release}, python2 793Conflicts: %{name}-python <= 2.41 794Conflicts: %{name}-lang-python <= 2.41 795 796%description lang-python2 797Python extension for graphviz. 798 799%files lang-python2 800%defattr(-,root,root,-) 801%{_libdir}/python2*/* 802%{_datadir}/graphviz/demo/*.py* 803%{_mandir}/man3/gv.3python.* 804%exclude %{_libdir}/graphviz/python2/*.so 805%exclude %{_libdir}/graphviz/python2/*.py* 806%endif 807 808#-- graphviz-lang-python3 rpm ------------------------------------------- 809%if %{PYTHON3} 810%package lang-python3 811Group: Applications/Multimedia 812Summary: Python extension for graphviz 813Requires: %{name} = %{version}-%{release}, python3 814Conflicts: %{name}-python <= 2.41 815Conflicts: %{name}-lang-python <= 2.41 816 817%description lang-python3 818Python extension for graphviz. 819 820%files lang-python3 821%defattr(-,root,root,-) 822%{_libdir}/python3*/* 823%{_datadir}/graphviz/demo/*.py* 824%{_mandir}/man3/gv.3python.* 825%exclude %{_libdir}/graphviz/python3/*.so 826%exclude %{_libdir}/graphviz/python3/*.py* 827%endif 828 829#-- graphviz-lang-R rpm --------------------------------------------- 830%if %{ARRRR} 831%package lang-R 832Group: Applications/Multimedia 833Summary: R extension for graphviz 834Requires: %{name} = %{version}-%{release}, R 835Obsoletes: %{name}-R <= 2.41 836Provides: %{name}-R = %{version}-%{release} 837 838%description lang-R 839R extension for graphviz. 840 841%files lang-R 842%defattr(-,root,root,-) 843%dir %{_libdir}/graphviz/R 844%{_libdir}/graphviz/R/* 845%{_mandir}/man3/*.3r.* 846%endif 847 848#-- graphviz-lang-ruby rpm --------------------------------------------- 849%package lang-ruby 850Group: Applications/Multimedia 851Summary: Ruby extension for graphviz 852Requires: %{name} = %{version}-%{release}, ruby 853Obsoletes: %{name}-ruby <= 2.41 854Provides: %{name}-ruby = %{version}-%{release} 855 856%description lang-ruby 857Ruby extension for graphviz. 858 859%files lang-ruby 860%defattr(-,root,root,-) 861%{_libdir}/*ruby*/* 862%{_datadir}/graphviz/demo/*.rb* 863%{_mandir}/man3/*.3ruby.* 864%exclude %{_libdir}/graphviz/ruby/*.so 865 866#-- graphviz-lang-tcl rpm ---------------------------------------------- 867%package lang-tcl 868Group: Applications/Multimedia 869Summary: Tcl extension & tools for graphviz 870Requires: %{name} = %{version}-%{release}, tcl >= 8.3 871Obsoletes: %{name}-tcl <= 2.41 872Provides: %{name}-tcl = %{version}-%{release} 873 874%description lang-tcl 875Various tcl packages (extensions) for the graphviz tools. 876 877%files lang-tcl 878%defattr(-,root,root,-) 879%{_libdir}/tcl*/* 880%{_datadir}/graphviz/demo/*.tcl* 881%{_datadir}/graphviz/demo/*_data 882%{_datadir}/graphviz/demo/entities.html 883%{_mandir}/man3/*.3tcl.* 884%exclude %{_libdir}/graphviz/tcl/* 885 886#-- graphviz-devel rpm -------------------------------------------- 887%package devel 888Group: Development/Libraries 889Summary: Development package for graphviz 890Requires: %{name}-libs = %{version}-%{release}, pkgconfig 891Requires(post): /sbin/ldconfig 892Requires(postun): /sbin/ldconfig 893 894%description devel 895A collection of tools for the manipulation and layout 896of graphs (as in nodes and edges, not as in bar-charts). 897This package contains development files for graphviz-libs. 898 899%post devel 900/sbin/ldconfig 901 902%postun devel 903/sbin/ldconfig 904 905%files devel 906%defattr(-,root,root,-) 907%{_includedir}/graphviz 908%{_libdir}/libcdt.so 909%{_mandir}/man3/cdt.3.* 910%{_libdir}/pkgconfig/libcdt.pc 911%{_libdir}/libcgraph.so 912%{_mandir}/man3/cgraph.3.* 913%{_libdir}/pkgconfig/libcgraph.pc 914%{_libdir}/libgvc.so 915%{_mandir}/man3/gvc.3.* 916%{_libdir}/pkgconfig/libgvc.pc 917%{_libdir}/libgvpr.so 918%{_mandir}/man3/gvpr.3.* 919%{_libdir}/pkgconfig/libgvpr.pc 920%{_libdir}/libpathplan.so 921%{_mandir}/man3/pathplan.3.* 922%{_libdir}/pkgconfig/libpathplan.pc 923%{_libdir}/libxdot.so 924%{_mandir}/man3/xdot.3.* 925%{_libdir}/pkgconfig/libxdot.pc 926%{_libdir}/liblab_gamut.so 927%{_libdir}/pkgconfig/liblab_gamut.pc 928%{_mandir}/man3/expr.3.* 929%{_mandir}/man3/pack.3.* 930%exclude %{_libdir}/graphviz/libgvplugin* 931%exclude %{_libdir}/graphviz/*.so 932 933#-- graphviz-graphs rpm ------------------------------------------- 934%package graphs 935Group: Applications/Multimedia 936Summary: Demo graphs for graphviz 937BuildArch: noarch 938 939%description graphs 940Some demo graphs for graphviz. 941 942%files graphs 943%defattr(-,root,root,-) 944%dir %{_datadir}/graphviz 945%{_datadir}/graphviz/graphs 946%if %{GTK} 947%{_datadir}/graphviz/examples 948%endif 949 950#-- graphviz-doc rpm ---------------------------------------------- 951%package doc 952Group: Documentation 953Summary: PDF and HTML documents for graphviz 954BuildArch: noarch 955 956%description doc 957Provides some additional PDF and HTML documentation for graphviz. 958 959%files doc 960%defattr(-,root,root,-) 961%doc __doc/* 962 963#-- building -------------------------------------------------- 964 965%prep 966%setup -q 967for p in %{patches}; do 968 patch -p1 < ${p} || exit 1 969done 970 971%build 972CFLAGS="$RPM_OPT_FLAGS" \ 973./configure \ 974 --prefix=%{_prefix} \ 975 --bindir=%{_bindir} \ 976 --libdir=%{_libdir} \ 977 --includedir=%{_includedir} \ 978 --datadir=%{_datadir} \ 979 --mandir=%{_mandir} \ 980 --disable-static \ 981 --disable-dependency-tracking \ 982 --enable-sharp \ 983 --enable-guile \ 984 --disable-io \ 985 --enable-java \ 986 --disable-d \ 987 --disable-javascript \ 988 --enable-lua \ 989 --enable-perl \ 990 --enable-php \ 991 --enable-ruby \ 992 --enable-tcl \ 993 --with-gdk \ 994 --with-ghostscript \ 995 --without-glitz \ 996 --with-ipsepcola \ 997%if ! %{ANN} 998 --without-ann \ 999%endif 1000%if ! %{PYTHON} 1001 --disable-python \ 1002%endif 1003%if ! %{PYTHON2} 1004 --disable-python2 \ 1005%endif 1006%if ! %{PYTHON3} 1007 --disable-python3 \ 1008%endif 1009%if ! %{GOLANG} 1010 --disable-go \ 1011%endif 1012%if ! %{JAVASCRIPT} 1013 --disable-javascript \ 1014%endif 1015%if ! %{JAVA} 1016 --disable-java \ 1017%endif 1018%if ! %{GUILE} 1019 --disable-guile \ 1020%endif 1021%if ! %{LASI} 1022 --without-lasi \ 1023%endif 1024%if ! %{GTS} 1025 --without-gts \ 1026%endif 1027%if ! %{SHARP} 1028 --disable-sharp \ 1029%endif 1030%if ! %{OCAML} 1031 --disable-ocaml \ 1032%endif 1033%if ! %{MING} 1034 --without-ming \ 1035%endif 1036%if ! %{ARRRR} 1037 --disable-r \ 1038%endif 1039%if ! %{DEEEE} 1040 --disable-d \ 1041%endif 1042%if ! %{WEBP} 1043 --without-webp \ 1044%endif 1045%if ! %{DEVIL} 1046 --without-devil \ 1047%endif 1048%if ! %{GTK} 1049 --without-gtk \ 1050 --without-gtkgl \ 1051 --without-gtkglext \ 1052 --without-smyrna \ 1053%endif 1054 --with-qt \ 1055 --with-visio \ 1056 --with-pangocairo \ 1057 --with-poppler \ 1058 --with-rsvg \ 1059 --with-ortho \ 1060 --with-sfdp \ 1061 --with-x 1062make %{?_smp_mflags} 1063 1064%install 1065rm -rf %{buildroot} __doc 1066make DESTDIR=%{buildroot} \ 1067 docdir=%{buildroot}%{_docdir}/%{name} \ 1068 pkgconfigdir=%{_libdir}/pkgconfig \ 1069 install 1070find %{buildroot} -type f -name "*.la" -exec rm -f {} ';' 1071chmod -x %{buildroot}%{_datadir}/%{name}/lefty/* 1072cp -a %{buildroot}%{_datadir}/%{name}/doc __doc 1073rm -rf %{buildroot}%{_datadir}/%{name}/doc 1074 1075# PHP configuration file 1076%{__mkdir_p} %{buildroot}%{_sysconfdir}/php.d 1077%{__cat} << __EOF__ > %{buildroot}%{_sysconfdir}/php.d/%{name}.ini 1078; Enable %{name} extension module 1079extension=gv.so 1080__EOF__ 1081 1082# Remove executable modes from demos 1083find %{buildroot}%{_datadir}/%{name}/demo -type f -exec chmod a-x {} ';' 1084 1085# Rename python demos to prevent byte compilation 1086find %{buildroot}%{_datadir}/%{name}/demo -type f -name "*.py" -exec mv {} {}.demo ';' 1087 1088# # Remove metadata from generated PDFs 1089# pushd %{buildroot}%{_docdir}/%{name}/pdf 1090# for f in prune lneato.1 lefty.1 gvgen.1 gc.1 dotty.1 dot.1 cluster.1 1091# do 1092# if [ -f $f.pdf ] 1093# then 1094# # ugly, but there is probably no better solution 1095# qpdf --empty --static-id --pages $f.pdf -- $f.pdf.$$ 1096# mv -f $f.pdf.$$ $f.pdf 1097# fi 1098# done 1099 1100# Ghost plugins config 1101touch %{buildroot}%{_libdir}/graphviz/config%{pluginsver} 1102 1103%check 1104%ifnarch ppc64 ppc 1105# regression test, segfaults on ppc/ppc64, possible endian issues? 1106#cd rtest 1107#make rtest 1108%endif 1109 1110%clean 1111# optional regression test using the products in the build tree 1112# FIXME - rtest not working reliably in rpm build environment - JCE 1113%if 0%{?rtest} 1114#cd rtest 1115#make rtest 1116%endif 1117# clean up temporary installation 1118rm -rf %{buildroot} 1119 1120#-- changelog -------------------------------------------------- 1121 1122%changelog 1123* @GRAPHVIZ_CHANGE_DATE@ @GRAPHVIZ_AUTHOR_NAME@ <@GRAPHVIZ_AUTHOR_EMAIL@> @VERSION@ 1124- see git log 1125 (This automatically-replaced single-entry is used for frequent 1126 updates in the unstable development series of releases. 1127 A properly constructed changelog entry is a requirement 1128 for stable releases.) 1129