diff --git a/README.txt b/README.txt
new file mode 100644
index 0000000..8b63d6a
--- /dev/null
+++ b/README.txt
@@ -0,0 +1,6 @@
+.. _examples_gallery:
+
+Gallery
+=======
+
+Graph visualization examples with pygraphviz.
diff --git a/_multibuild b/_multibuild
new file mode 100644
index 0000000..58ef5ee
--- /dev/null
+++ b/_multibuild
@@ -0,0 +1,3 @@
+
+ doc
+
diff --git a/docdir.patch b/docdir.patch
deleted file mode 100644
index 6860684..0000000
--- a/docdir.patch
+++ /dev/null
@@ -1,15 +0,0 @@
----
- setup.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/setup.py
-+++ b/setup.py
-@@ -54,7 +54,7 @@ with open("pygraphviz/__init__.py") as f
- break
-
- packages = ["pygraphviz", "pygraphviz.tests"]
--docdirbase = f"share/doc/pygraphviz-{version}"
-+docdirbase = f"share/doc/packages/pygraphviz-{version}"
- data = [
- (docdirbase, glob("*.txt")),
- (os.path.join(docdirbase, "examples"), glob("examples/*.py")),
diff --git a/pygraphviz-1.11.zip b/pygraphviz-1.11.zip
deleted file mode 100644
index f43b750..0000000
--- a/pygraphviz-1.11.zip
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a97eb5ced266f45053ebb1f2c6c6d29091690503e3a5c14be7f908b37b06f2d4
-size 120803
diff --git a/pygraphviz-1.13.tar.gz b/pygraphviz-1.13.tar.gz
new file mode 100644
index 0000000..d2d287b
--- /dev/null
+++ b/pygraphviz-1.13.tar.gz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6ad8aa2f26768830a5a1cfc8a14f022d13df170a8f6fdfd68fd1aa1267000964
+size 104642
diff --git a/python-pygraphviz.changes b/python-pygraphviz.changes
index 09cb5ec..ad8ac08 100644
--- a/python-pygraphviz.changes
+++ b/python-pygraphviz.changes
@@ -1,3 +1,22 @@
+-------------------------------------------------------------------
+Thu May 23 02:32:41 UTC 2024 - Steve Kowalik
+
+- Update to 1.13:
+ * Remove outdated pystrings.swg (#508).
+ * Fix segfault from repr attempting to access attrs on uninitialized
+ instance (#520).
+ * Add Python 3.12 support (#486).
+ * Copy edges keys when copying a graph
+ * Drop Python 3.8 support per SPEC 0 (#465).
+ * Drop Python 3.9 support (#487).
+ * Update documentation building requirements (#488).
+ * Add pyproject.toml (#471).
+ * Stop building pdf of the docs (#503).
+- Drop patch docdir.patch, no longer needed.
+- Build the documentation by hand, since now we need to, and do so in
+ its own flavor.
+- Switch to pyproject macros.
+
-------------------------------------------------------------------
Thu Jun 29 07:00:11 UTC 2023 - Andreas Schneider
diff --git a/python-pygraphviz.spec b/python-pygraphviz.spec
index b62ad32..6a16422 100644
--- a/python-pygraphviz.spec
+++ b/python-pygraphviz.spec
@@ -1,7 +1,7 @@
#
# spec file for package python-pygraphviz
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,28 +16,44 @@
#
-%bcond_without tests
+%global flavor @BUILD_FLAVOR@%{nil}
+%if "%{flavor}" == "doc"
+%define psuffix -doc
+%bcond_without doc
+%else
+%define psuffix %{nil}
+%bcond_with doc
+%endif
%{?sle15_python_module_pythons}
-Name: python-pygraphviz
-Version: 1.11
+Name: python-pygraphviz%{psuffix}
+Version: 1.13
Release: 0
Summary: Python interface to Graphviz
License: BSD-3-Clause
-Group: Development/Languages/Python
URL: https://pygraphviz.github.io/
-Source: https://files.pythonhosted.org/packages/source/p/pygraphviz/pygraphviz-%{version}.zip
-# PATCH-FIX-UPSTREAM docdir.patch
-Patch0: docdir.patch
-BuildRequires: %{python_module devel >= 3.8}
-# Needed even without tests
+Source: https://files.pythonhosted.org/packages/source/p/pygraphviz/pygraphviz-%{version}.tar.gz
+# https://github.com/pygraphviz/pygraphviz/issues/532
+Source1: https://raw.githubusercontent.com/pygraphviz/pygraphviz/main/examples/README.txt
+BuildRequires: %{python_module devel >= 3.10}
+BuildRequires: %{python_module pip}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module setuptools}
+BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: graphviz-devel >= 2.42
+BuildRequires: graphviz-gd
BuildRequires: libpng-devel
BuildRequires: python-rpm-macros
+%if %{with doc}
+BuildRequires: %{python_module pygraphviz = %{version}}
+BuildRequires: python3-Sphinx
+BuildRequires: python3-matplotlib
+BuildRequires: python3-numpydoc
+BuildRequires: python3-pydata-sphinx-theme
+BuildRequires: python3-sphinx-gallery
+BuildArch: noarch
+%endif
BuildRequires: swig
-BuildRequires: unzip
Requires: graphviz >= 2.42
%if 0%{?suse_version} >= 1550
BuildRequires: pkgconf-pkg-config
@@ -50,7 +66,6 @@ PyGraphviz can be used to create and draw networks and graphs with Graphviz.
%package -n %{name}-doc
Summary: Documentation for %{name}
-Group: Documentation/Other
Provides: %{python_module pygraphviz-doc = %{version}}
%description -n %{name}-doc
@@ -58,33 +73,53 @@ This package provides documentation and help files for %{name}
%prep
%autosetup -p1 -n pygraphviz-%{version}
+cp %SOURCE1 examples
%build
export CFLAGS="%{optflags}"
-%python_build
+%if ! %{with doc}
+%pyproject_wheel
+%else
+make -C doc html
+%endif
%install
export CFLAGS="%{optflags}"
-%python_install
-%fdupes %{buildroot}%{$python_sitearch}
+%if ! %{with doc}
+%pyproject_install
+%python_expand %fdupes %{buildroot}%{$python_sitearch}
+# Don't ship swig source
+%python_expand rm %{buildroot}%{$python_sitearch}/pygraphviz/graphviz_wrap.c
+%else
+mkdir -p %{buildroot}%{_docdir}/pygraphviz-%{version}
+cp -ar doc/build/html/* %{buildroot}%{_docdir}/pygraphviz-%{version}
+%endif
-%if %{with tests}
+%if ! %{with doc}
%check
-# export PYTEST_ADDOPTS="--doctest-modules --durations=10 --import-mode=importlib"
-export PYTEST_ADDOPTS="--import-mode=importlib"
+# We don't want to run the tests from the topdir
+tmpdir=$(mktemp -d)
+cp pygraphviz/tests/* $tmpdir
+pushd $tmpdir
# skip tests because of gh#pygraphviz/pygraphviz#366
donttest="test_drawing_makes_file or test_drawing_makes_file1 or test_drawing_makes_file or test_drawing_png_output_with_NULL_smoketest"
%pytest_arch -k "not ($donttest)"
+popd
+rm -rf $tmpdir
%endif
+%if ! %{with doc}
%files %{python_files}
%license LICENSE
%doc README.rst
-%{python_sitearch}/pygraphviz/
-%{python_sitearch}/pygraphviz-%{version}-py*.egg-info
+%{python_sitearch}/pygraphviz
+%{python_sitearch}/pygraphviz-%{version}.dist-info
+%endif
-%files -n %{name}-doc
+%if %{with doc}
+%files -n %{name}
%license LICENSE
%{_docdir}/pygraphviz-%{version}
+%endif
%changelog