diff --git a/gen_version.py b/gen_version.py new file mode 100644 index 0000000000000000000000000000000000000000..9a5ad3e59919b66aa0f570c6ab854139fd22a81b --- /dev/null +++ b/gen_version.py @@ -0,0 +1,183 @@ +#!/usr/bin/env python3 + +""" +Generate version + +Release version entry format : .. + +Stable release version output format : .. +Development release version output format: ..~dev. + +The patch version of a development release should be the same as the +next stable release patch number. The string "~dev." and the +committer date will be added. + +Example sequence: + +Entry version Entry collection Output +2.44.1 stable => 2.44.1 +2.44.2 development => 2.44.2~dev.20200704.1652 +2.44.2 stable => 2.44.2 +2.44.3 development => 2.44.3~dev.20200824.1337 +""" + +import argparse +import os +from pathlib import Path +import re +import subprocess +import sys +from typing import Tuple + +CHANGELOG = Path(__file__).parent / "CHANGELOG.md" +assert CHANGELOG.exists(), "CHANGELOG.md file missing" + +def get_version() -> Tuple[int, int, int, str]: + """ + Derive a Graphviz version from the changelog information. + + Returns a tuple of major version, minor version, patch version, + "stable"/"development". + """ + + # is this a development revision (as opposed to a stable release)? + is_development = False + + with open(CHANGELOG, encoding="utf-8") as f: + for line in f: + + # is this a version heading? + m = re.match(r"## \[(?P[^\]]*)\]", line) + if m is None: + continue + heading = m.group("heading") + + # is this the leading unreleased heading of a development version? + UNRELEASED_PREFIX = "Unreleased (" + if heading.startswith(UNRELEASED_PREFIX): + is_development = True + heading = heading[len(UNRELEASED_PREFIX):] + + # extract the version components + m = re.match(r"(?P\d+)\.(?P\d+)\.(?P\d+)", heading) + if m is None: + raise RuntimeError("non-version ## heading encountered before seeing a " + "version heading") + + major = int(m.group("major")) + minor = int(m.group("minor")) + patch = int(m.group("patch")) + break + + else: + # we read the whole changelog without finding a version + raise RuntimeError("no version found") + + if is_development: + coll = "development" + else: + coll = "stable" + + return major, minor, patch, coll + +graphviz_date_format = "%Y%m%d.%H%M" +changelog_date_format = "%a %b %e %Y" + +parser = argparse.ArgumentParser(description="Generate Graphviz version.") +parser.add_argument("--committer-date-changelog", + dest="date_format", + action="store_const", + const=changelog_date_format, + help="Print changelog formatted committer date in UTC instead of version" +) +parser.add_argument("--committer-date-graphviz", + dest="date_format", + action="store_const", + const=graphviz_date_format, + help="Print graphviz special formatted committer date in UTC " + "instead of version" +) +parser.add_argument("--major", + dest="component", + action="store_const", + const="major", + help="Print major version") +parser.add_argument("--minor", + dest="component", + action="store_const", + const="minor", + help="Print minor version") +parser.add_argument("--patch", + dest="component", + action="store_const", + const="patch", + help="Print patch version") +parser.add_argument("--definition", + action="store_true", + help="Print a C-style preprocessor #define") +parser.add_argument("--output", + type=argparse.FileType("wt", encoding="ascii"), + default=sys.stdout, + help="Path to write result to") + +args = parser.parse_args() + +date_format = args.date_format or graphviz_date_format + +major_version, minor_version, patch_version, collection = get_version() + +if collection == "development": + patch_version = f"{patch_version}~dev" +else: + patch_version = str(patch_version) + +if not patch_version.isnumeric() or args.date_format: + os.environ["TZ"] = "UTC" + try: + committer_date = subprocess.check_output( + [ + "git", + "log", + "-n", + "1", + "--format=%cd", + f"--date=format-local:{date_format}" + ], + cwd=os.path.abspath(os.path.dirname(__file__)), + universal_newlines=True, + ).strip() + except (subprocess.CalledProcessError, FileNotFoundError): + sys.stderr.write("Warning: build not started in a Git clone, or Git is not " + "installed: setting version date to 0.\n") + committer_date = "0" + +if not patch_version.isnumeric(): + # Non-numerical patch version; add committer date + patch_version += f".{committer_date}" + +if args.date_format: + if args.definition: + args.output.write(f'#define BUILDDATE "{committer_date}"\n') + else: + args.output.write(f"{committer_date}\n") +elif args.component == "major": + if args.definition: + args.output.write(f'#define VERSION_MAJOR "{major_version}"\n') + else: + args.output.write(f"{major_version}\n") +elif args.component == "minor": + if args.definition: + args.output.write(f'#define VERSION_MINOR "{minor_version}"\n') + else: + args.output.write(f"{minor_version}\n") +elif args.component == "patch": + if args.definition: + args.output.write(f'#define VERSION_PATCH "{patch_version}"\n') + else: + args.output.write(f"{patch_version}\n") +else: + if args.definition: + args.output.write(f'#define VERSION "{major_version}.{minor_version}.' + f'{patch_version}"\n') + else: + args.output.write(f"{major_version}.{minor_version}.{patch_version}\n") diff --git a/graphviz-4.0.0-gvpack-neato-static.patch b/graphviz-4.0.0-gvpack-neato-static.patch new file mode 100644 index 0000000000000000000000000000000000000000..dcb6863e379b4b06c3b624c8ee575e27c1da4da0 --- /dev/null +++ b/graphviz-4.0.0-gvpack-neato-static.patch @@ -0,0 +1,15 @@ +diff --git a/cmd/tools/Makefile.am b/cmd/tools/Makefile.am +index 4978fea..9fbe2e2 100644 +--- a/cmd/tools/Makefile.am ++++ b/cmd/tools/Makefile.am +@@ -249,7 +249,9 @@ gvpack_LDADD = \ + $(top_builddir)/lib/ingraphs/libingraphs_C.la \ + $(top_builddir)/lib/cgraph/libcgraph.la \ + $(top_builddir)/lib/cdt/libcdt.la \ +- $(top_builddir)/plugin/neato_layout/libgvplugin_neato_layout.la ++ $(top_builddir)/plugin/neato_layout/libgvplugin_neato_layout_C.la \ ++ $(top_builddir)/lib/pathplan/libpathplan_C.la \ ++ $(EXPAT_LIBS) $(Z_LIBS) $(GTS_LIBS) $(SOCKET_LIBS) $(IPSEPCOLA_LIBS) $(MATH_LIBS) + + if ENABLE_STATIC + gvpack_static_SOURCES = gvpack.cpp diff --git a/graphviz-7.0.6-fix-python-3.12.patch b/graphviz-7.0.6-fix-python-3.12.patch new file mode 100644 index 0000000000000000000000000000000000000000..1cd864a42181c8e829a1a100d5d8eb6eb1a2adb9 --- /dev/null +++ b/graphviz-7.0.6-fix-python-3.12.patch @@ -0,0 +1,13 @@ +diff --git a/configure.ac b/configure.ac +index 49e027f..542c23a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1141,7 +1141,7 @@ else + use_python3="No (python-$PYTHON3_VERSION.pc not found)" + fi + fi +- PYTHON3_INSTALL_DIR="`$PYTHON3 -c 'from distutils import sysconfig; print(sysconfig.get_python_lib(1,0))'`" ++ PYTHON3_INSTALL_DIR="`$PYTHON3 -c 'import sysconfig; print(sysconfig.get_path("platlib"))'`" + save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$CPPFLAGS $PYTHON3_INCLUDES" + AC_CHECK_HEADER(Python.h,,[ diff --git a/graphviz-7.1.0.tar.xz b/graphviz-7.1.0.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..d007e10f8deee19f4ec6090614135f3cbe5a15c2 Binary files /dev/null and b/graphviz-7.1.0.tar.xz differ diff --git a/graphviz.spec b/graphviz.spec new file mode 100644 index 0000000000000000000000000000000000000000..596115d7d2332b088dd2167de304bac0b0e064e8 --- /dev/null +++ b/graphviz.spec @@ -0,0 +1,664 @@ +%define anolis_release 1 +%undefine _package_note_flags +# temporal drop of PHP support due to https://gitlab.com/graphviz/graphviz/-/issues/2277 +%bcond_with php +%bcond_with guile +%bcond_without gtk2 + +# Necessary conditionals +%global SHARP 0 +%global OCAML 0 +%global DEVIL 0 +%global ARRRR 0 + +# Build with QT applications (currently only gvedit) +# Disabled until the package gets better structuring, see bug #447133 +%global QTAPPS 0 + +%global GTS 0 +%global LASI 0 + +# Not in Fedora yet. +%global MING 0 + +%ifarch %{java_arches} +%global JAVA 1 +%else +%global JAVA 0 +%endif + +%if %{with php} +%global PHP 1 +%else +%global PHP 0 +%endif + +%if %{with guile} +%global GUILE 1 +%else +%global GUILE 0 +%endif + +%global GOLANG 0 + +# Plugins version +%global pluginsver 6 + +%global php_extdir %(php-config --extension-dir 2>/dev/null || echo %{_libdir}/php4) + +%global ini_name 40-%{name}.ini + +Name: graphviz +Summary: Graph Visualization Tools +Version: 7.1.0 +Release: %{anolis_release}%{?dist} +License: EPL-1.0 +URL: http://www.graphviz.org/ +Source0: https://gitlab.com/%{name}/%{name}/-/archive/%{version}/%{name}-%{version}.tar.xz +Source1: https://gitlab.com/graphviz/graphviz/-/raw/main/gen_version.py +BuildRequires: gcc-g++ +BuildRequires: zlib-devel +BuildRequires: libpng-devel +BuildRequires: libjpeg-devel +BuildRequires: expat-devel +BuildRequires: freetype-devel >= 2 +BuildRequires: ksh +BuildRequires: bison +BuildRequires: m4 +BuildRequires: flex +BuildRequires: tk-devel +BuildRequires: tcl-devel >= 8.3 +BuildRequires: swig +BuildRequires: sed +BuildRequires: fontconfig-devel +BuildRequires: libtool-ltdl-devel +BuildRequires: ruby-devel +BuildRequires: ruby +BuildRequires: libXt-devel +BuildRequires: libXmu-devel +%if %{GUILE} +BuildRequires: guile-devel +%endif +BuildRequires: python3-devel +BuildRequires: libXaw-devel +BuildRequires: libSM-devel +BuildRequires: libXext-devel +%if %{JAVA} +BuildRequires: java-devel +%endif +BuildRequires: cairo-devel >= 1.1.10 +BuildRequires: pango-devel +BuildRequires: gmp-devel +BuildRequires: lua-devel +%if %{with gtk2} +BuildRequires: gtk2-devel +%endif +BuildRequires: gd-devel +BuildRequires: perl-devel +BuildRequires: swig >= 1.3.33 +BuildRequires: automake +BuildRequires: autoconf +BuildRequires: libtool +BuildRequires: qpdf +# Temporary workaound for perl(Carp) not pulled +BuildRequires: perl-Carp +%if %{PHP} +BuildRequires: php-devel +%endif +%if %{SHARP} +BuildRequires: mono-core +%endif +%if %{DEVIL} +BuildRequires: DevIL-devel +%endif +%if %{ARRRR} +BuildRequires: R-devel +%endif +%if %{OCAML} +BuildRequires: ocaml +%endif +%if %{QTAPPS} +BuildRequires: qt-devel +%endif +%if %{GTS} +BuildRequires: gts-devel +%endif +%if %{LASI} +BuildRequires: lasi-devel +%endif +BuildRequires: urw-base35-fonts +BuildRequires: perl-ExtUtils-Embed +BuildRequires: perl-generators +BuildRequires: librsvg2-devel +# for ps2pdf +BuildRequires: ghostscript +BuildRequires: libgs-devel +BuildRequires: make +BuildRequires: poppler-glib-devel +BuildRequires: freeglut-devel +BuildRequires: libglade2-devel +BuildRequires: gtkglext-devel +BuildRequires: doxygen +%if %{GOLANG} +BuildRequires: golang +%endif +# ISO8859-1 fonts are required by lefty +Requires: urw-base35-fonts +Requires: xorg-x11-fonts-ISO8859-1-100dpi +# rhbz#1838679 +Patch0: graphviz-4.0.0-gvpack-neato-static.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=2155048 +Patch1: graphviz-7.0.6-fix-python-3.12.patch + +%if ! %{JAVA} +Obsoletes: graphviz-java < %{version}-%{release} +%endif + +%description +A collection of tools for the manipulation and layout of graphs (as in nodes +and edges, not as in barcharts). + +%package devel +Summary: Development package for graphviz +Requires: %{name} = %{version}-%{release} +Requires: %{name}-gd = %{version}-%{release} + +%description devel +A collection of tools for the manipulation and layout of graphs (as in nodes +and edges, not as in barcharts). This package contains development files for +graphviz. + +%if %{DEVIL} +%package devil +Summary: Graphviz plugin for renderers based on DevIL +Requires: %{name} = %{version}-%{release} + +%description devil +Graphviz plugin for renderers based on DevIL. (Unless you absolutely have +to use BMP, TIF, or TGA, you are recommended to use the PNG format instead +supported directly by the cairo+pango based renderer in the base graphviz rpm.) +%endif + +%package doc +Summary: PDF and HTML documents for graphviz +Buildarch: noarch + +%description doc +Provides some additional PDF and HTML documentation for graphviz. + +%if %{GTS} +%package smyrna +Summary: Graphviz interactive graph viewer + +%description smyrna +Smyrna is a viewer for graphs in the DOT format. +%endif + +%package gd +Summary: Graphviz plugin for renderers based on gd +Requires: %{name} = %{version}-%{release} +Requires(post): %{_bindir}/dot +Requires(postun): %{_bindir}/dot + +%description gd +Graphviz plugin for renderers based on gd. (Unless you absolutely have to use +GIF, you are recommended to use the PNG format instead because of the better +quality anti-aliased lines provided by the cairo+pango based renderer.) + +%if %{with gtk2} +%package gtk2 +Summary: Graphviz plugin for renderers based on gtk2 +Requires: %{name} = %{version}-%{release} +Requires(post): %{_bindir}/dot +Requires(postun): %{_bindir}/dot + +%description gtk2 +Graphviz plugin for renderers based on gtk2. +%endif + +%package graphs +Summary: Demo graphs for graphviz + +%description graphs +Some demo graphs for graphviz. + +%if %{GUILE} +%package guile +Summary: Guile extension for graphviz +Requires: %{name} = %{version}-%{release} + +%description guile +Guile extension for graphviz. +%endif + +%if %{JAVA} +%package java +Summary: Java extension for graphviz +Requires: %{name} = %{version}-%{release} + +%description java +Java extension for graphviz. +%endif + +%package lua +Summary: Lua extension for graphviz +Requires: %{name} = %{version}-%{release}, lua + +%description lua +Lua extension for graphviz. + +%if %{MING} +%package ming +Summary: Graphviz plugin for flash renderer based on ming +Requires: %{name} = %{version}-%{release} + +%description ming +Graphviz plugin for -Tswf (flash) renderer based on ming. +%endif + +%if %{OCAML} +%package ocaml +Summary: Ocaml extension for graphviz +Requires: %{name} = %{version}-%{release}, ocaml + +%description ocaml +Ocaml extension for graphviz. +%endif + +%package perl +Summary: Perl extension for graphviz +Requires: %{name} = %{version}-%{release} +Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) + +%description perl +Perl extension for graphviz. + +%if %{PHP} +%package php +Summary: PHP extension for graphviz +Requires: %{name} = %{version}-%{release} +Requires: php(zend-abi) = %{?php_zend_api}%{?!php_zend_api:UNDEFINED} +Requires: php(api) = %{?php_core_api}%{?!php_core_api:UNDEFINED} + +%description php +PHP extension for graphviz. +%endif + +%package python3 +Summary: Python 3 extension for graphviz +Requires: %{name} = %{version}-%{release} +# Manually add provides that would be generated automatically if .egg-info was present +Provides: python3dist(gv) = %{version} +Provides: python%{python3_version}dist(gv) = %{version} + +%description python3 +Python 3 extension for graphviz. + +%if %{ARRRR} +%package R +Summary: R extension for graphviz +Requires: %{name} = %{version}-%{release}, R-core + +%description R +R extension for graphviz. +%endif + +%package ruby +Summary: Ruby extension for graphviz +Requires: %{name} = %{version}-%{release}, ruby + +%description ruby +Ruby extension for graphviz. + +%if %{SHARP} +%package sharp +Summary: C# extension for graphviz +Requires: %{name} = %{version}-%{release}, mono-core + +%description sharp +C# extension for graphviz. +%endif + +%package tcl +Summary: Tcl extension & tools for graphviz +Requires: %{name} = %{version}-%{release}, tcl >= 8.3, tk + +%description tcl +Various tcl packages (extensions) for the graphviz tools. + +%if %{GOLANG} +%package go +Summary: Go extension for graphviz +Requires: %{name} = %{version}-%{release}, golang + +%description go +Go extension for graphviz. +%endif + +%prep +%autosetup -p1 +cp %{SOURCE1} . + +# Attempt to fix rpmlint warnings about executable sources +find -type f -regex '.*\.\(c\|h\)$' -exec chmod a-x {} ';' + +%build +./autogen.sh +%if %{JAVA} +# Hack in the java includes we need +sed -i '/JavaVM.framework/!s/JAVA_INCLUDES=/JAVA_INCLUDES=\"_MY_JAVA_INCLUDES_\"/g' configure +sed -i 's|_MY_JAVA_INCLUDES_|-I%{java_home}/include/ -I%{java_home}/include/linux/|g' configure +%endif +# Rewrite config_ruby.rb to work with Ruby 2.2 +sed -i 's|expand(|expand(RbConfig::|' config/config_ruby.rb +sed -i 's|sitearchdir|vendorarchdir|' config/config_ruby.rb + +# get the path to search for ruby/config.h to CPPFLAGS, so that configure can find it +export CPPFLAGS=-I`ruby -e "puts File.join(RbConfig::CONFIG['includedir'], RbConfig::CONFIG['sitearch'])" || echo /dev/null` +%configure --with-x --disable-static --disable-rpath --without-included-ltdl \ +%if ! %{JAVA} +--enable-java=no \ +%endif + --without-mylibgd --with-ipsepcola --with-pangocairo \ + --with-gdk-pixbuf --with-visio --disable-silent-rules --enable-lefty \ +%if ! %{LASI} + --without-lasi \ +%endif +%if ! %{GTS} + --without-gts \ +%endif +%if ! %{SHARP} + --disable-sharp \ +%endif +%if ! %{OCAML} + --disable-ocaml \ +%endif +%if ! %{MING} + --without-ming \ +%endif +%if ! %{ARRRR} + --disable-r \ +%endif +%if ! %{DEVIL} + --without-devil \ +%endif +%if ! %{QTAPPS} + --without-qt \ +%endif +%if %{GUILE} + --enable-guile=yes \ +%else + --enable-guile=no \ +%endif +%if %{GOLANG} + --enable-go=yes +%else + --enable-go=no +%endif + +# drop rpath +sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool +sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool + +%make_build CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fno-strict-overflow %{?FFSTORE}" \ + CXXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fno-strict-overflow %{?FFSTORE}" +make doxygen + +%install +%make_install docdir=%{_docdir}/%{name} + +# Install README +install -m0644 README %{buildroot}%{_docdir}/%{name} + +%if %{PHP} +# PHP configuration file +%{__mkdir_p} %{buildroot}%{_sysconfdir}/php.d +%{__cat} << __EOF__ > %{buildroot}%{_sysconfdir}/php.d/%{ini_name} +; Enable %{name} extension module +extension=gv.so +__EOF__ +%endif + +# Remove executable modes from demos +find %{buildroot}%{_datadir}/%{name}/demo -type f -exec chmod a-x {} ';' + +# Move demos to doc +mv %{buildroot}%{_datadir}/%{name}/demo %{buildroot}%{_docdir}/%{name}/ + +# Rename python demos to prevent byte compilation +find %{buildroot}%{_docdir}/%{name}/demo -type f -name "*.py" -exec mv {} {}.demo ';' + +# Remove dot_builtins, on demand loading should be sufficient +rm -f %{buildroot}%{_bindir}/dot_builtins + +# Remove metadata from generated PDFs +pushd %{buildroot}%{_docdir}/%{name} +for f in prune gvgen.1 gc.1 dot.1 cluster.1 +do + if [ -f $f.pdf ] + then +# ugly, but there is probably no better solution + qpdf --empty --static-id --pages $f.pdf -- $f.pdf.$$ + mv -f $f.pdf.$$ $f.pdf + fi +done +popd + +# Ghost plugins config +touch %{buildroot}%{_libdir}/graphviz/config%{pluginsver} + +# Fix lua file placement for flatpak +if [ "%{_prefix}" != "/usr" ]; then + cp -ru %{buildroot}/usr/* %{buildroot}%{_prefix}/ + rm -rf %{buildroot}/usr/* +fi + +# Explicitly create examples directory to always have it. +# At the moment there are only examples dependant on smyrna. I.e. if smyrna is not +# built this directory is empty. +mkdir -p %{buildroot}%{_datadir}/%{name}/examples + +%check +%if %{PHP} +# Minimal load test of php extension +LD_LIBRARY_PATH=%{buildroot}%{_libdir} \ +php --no-php-ini \ + --define extension_dir=%{buildroot}%{_libdir}/graphviz/php/ \ + --define extension=libgv_php.so \ + --modules | grep gv +%endif + +# upstream test suite +# testsuite seems broken, disabling it for now +# cd rtest +# make rtest + +%post +%{_bindir}/dot -c 2>/dev/null || : + +%if %{DEVIL} +# run "dot -c" to generate plugin config in %%{_libdir}/graphviz/config* +%post devil +%{_bindir}/dot -c 2>/dev/null || : + +%postun devil +%{_bindir}/dot -c 2>/dev/null || : +%endif + +# run "dot -c" to generate plugin config in %%{_libdir}/graphviz/config* +%post gd +%{_bindir}/dot -c 2>/dev/null || : + +%postun gd +%{_bindir}/dot -c 2>/dev/null || : + +%if %{with gtk2} +%post gtk2 +%{_bindir}/dot -c 2>/dev/null || : + +%postun gtk2 +%{_bindir}/dot -c 2>/dev/null || : +%endif + +%if %{MING} +# run "dot -c" to generate plugin config in %%{_libdir}/graphviz/config* +%post ming +%{_bindir}/dot -c 2>/dev/null || : + +%postun ming +%{_bindir}/dot -c 2>/dev/null || : +%endif + +%files +%doc %{_docdir}/%{name} +%if %{GTS} +%exclude %{_bindir}/smyrna +%exclude %{_mandir}/man1/smyrna.1* +%endif +%{_bindir}/* +%dir %{_libdir}/graphviz +%{_libdir}/*.so.* +%{_libdir}/graphviz/*.so.* +%{_mandir}/man1/*.1* +%{_mandir}/man7/*.7* +%dir %{_datadir}/%{name} +%exclude %{_docdir}/%{name}/*.html +%exclude %{_docdir}/%{name}/*.pdf +%exclude %{_docdir}/%{name}/demo +%{_datadir}/%{name}/gvpr +%{_datadir}/%{name}/examples +%ghost %{_libdir}/%{name}/config%{pluginsver} + +%if %{QTAPPS} +%{_datadir}/%{name}/gvedit +%endif + +%exclude %{_libdir}/graphviz/*/* +%exclude %{_libdir}/graphviz/libgvplugin_gd.* +%exclude %{_libdir}/graphviz/libgvplugin_gtk.* +%exclude %{_libdir}/graphviz/libgvplugin_gdk.* +%if %{DEVIL} +%exclude %{_libdir}/graphviz/libgvplugin_devil.* +%endif +%if %{MING} +%exclude %{_libdir}/graphviz/libgvplugin_ming.* +%exclude %{_libdir}/graphviz/*fdb +%endif + +%files devel +%{_includedir}/graphviz +%{_libdir}/*.so +%{_libdir}/%{name}/*.so +%{_libdir}/pkgconfig/*.pc +%{_mandir}/man3/*.3%{_extension} + +%if %{DEVIL} +%files devil +%{_libdir}/graphviz/libgvplugin_devil.so.* +%endif + +%files doc +%doc %{_docdir}/%{name}/*.html +%doc %{_docdir}/%{name}/*.pdf +%doc %{_docdir}/%{name}/demo + +%if %{GTS} +%files smyrna +%{_bindir}/smyrna +%{_datadir}/%{name}/smyrna +%{_mandir}/man1/smyrna.1* +%endif + +%files gd +%{_libdir}/graphviz/libgvplugin_gd.so.* + +%if %{with gtk2} +%files gtk2 +%{_libdir}/graphviz/libgvplugin_gtk.so.* +%{_libdir}/graphviz/libgvplugin_gdk.so.* +%endif + +%files graphs +%dir %{_datadir}/graphviz +%{_datadir}/graphviz/graphs + +%if %{GUILE} +%files guile +%{_libdir}/graphviz/guile/ +%{_mandir}/man3/gv.3guile* +%endif + +%if %{JAVA} +%files java +%{_libdir}/graphviz/java/ +%{_mandir}/man3/gv.3java* +%endif + +%files lua +%{_libdir}/graphviz/lua/ +%{_libdir}/lua*/* +%{_mandir}/man3/gv.3lua* + +%if %{MING} +%files ming +%{_libdir}/graphviz/libgvplugin_ming.so.* +%{_libdir}/graphviz/*fdb +%endif + +%if %{OCAML} +%files ocaml +%{_libdir}/graphviz/ocaml/ +%{_mandir}/man3/gv.3ocaml* +%endif + +%files perl +%{_libdir}/graphviz/perl/ +%{_libdir}/perl*/* +%{_mandir}/man3/gv.3perl* + +%if %{PHP} +%files php +%config(noreplace) %{_sysconfdir}/php.d/%{ini_name} +%{_libdir}/graphviz/php/ +%{php_extdir}/gv.so +%{_datadir}/php*/* +%{_mandir}/man3/gv.3php* +%endif + +%files python3 +%{python3_sitearch}/* +%{_mandir}/man3/gv.3python* + +%if %{ARRRR} +%files R +%{_libdir}/graphviz/R/ +%{_mandir}/man3/gv.3r.* +%endif + +%files ruby +%{_libdir}/graphviz/ruby/ +%{_libdir}/*ruby*/* +%{_mandir}/man3/gv.3ruby* + +%if %{SHARP} +%files sharp +%{_libdir}/graphviz/sharp/ +%{_mandir}/man3/gv.3sharp* +%endif + +%files tcl +%{_libdir}/graphviz/tcl/ +%{_libdir}/tcl*/* +# hack to include gv.3tcl only if available +# always includes tcldot.3tcl, gdtclft.3tcl +%{_mandir}/man3/*.3tcl* + +%if %{GOLANG} +%files go +%{_libdir}/graphviz/go/ +%{_mandir}/man3/gv.3go.* +%endif + +%changelog +* Sun Jan 22 2023 Funda Wang - 7.0.6-1 +- Import package for anolis 23