diff --git a/networkx-2.3.zip b/networkx-2.3.zip
deleted file mode 100644
index 47e79ba..0000000
--- a/networkx-2.3.zip
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8311ddef63cf5c5c5e7c1d0212dd141d9a1fe3f474915281b73597ed5f1d4e3d
-size 1743914
diff --git a/networkx-2.4.tar.gz b/networkx-2.4.tar.gz
new file mode 100644
index 0000000..912332f
--- /dev/null
+++ b/networkx-2.4.tar.gz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f8f4ff0b6f96e4f9b16af6b84622597b5334bf9cae8cf9b2e42e7985d5c95c64
+size 1462338
diff --git a/numpy-38-test.patch b/numpy-38-test.patch
new file mode 100644
index 0000000..3c0e4c1
--- /dev/null
+++ b/numpy-38-test.patch
@@ -0,0 +1,69 @@
+diff --git a/networkx/readwrite/tests/test_gexf.py b/networkx/readwrite/tests/test_gexf.py
+index afc40111..f16504c0 100644
+--- a/networkx/readwrite/tests/test_gexf.py
++++ b/networkx/readwrite/tests/test_gexf.py
+@@ -404,7 +404,8 @@ gexf.net/1.2draft http://www.gexf.net/1.2draft/gexf.xsd" version="1.2">
+ nx.set_node_attributes(G, {n: n for n in numpy.arange(4)}, 'number')
+ G[0][1]['edge-number'] = numpy.float64(1.1)
+
+- expected = """
+
+@@ -449,6 +450,54 @@ gexf.net/1.2draft http://www.gexf.net/1.2draft/gexf.xsd" version="1.2">
+
+
+
++""".format(time.strftime('%Y-%m-%d'), nx.__version__)
++ else:
++ expected = """
++
++ NetworkX {}
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+ """.format(time.strftime('%Y-%m-%d'), nx.__version__)
+ obtained = '\n'.join(nx.generate_gexf(G))
+ assert expected == obtained
diff --git a/python-networkx.changes b/python-networkx.changes
index 03bc975..9d3055d 100644
--- a/python-networkx.changes
+++ b/python-networkx.changes
@@ -1,3 +1,23 @@
+-------------------------------------------------------------------
+Fri Nov 22 00:41:03 UTC 2019 - steven.kowalik@suse.com
+
+- Drop incorrectly calculated dependency on python33
+- Switch to using %pytest macro
+
+-------------------------------------------------------------------
+Sun Nov 17 23:53:12 UTC 2019 - Steve Kowalik
+
+- Update to version 2.4
+ Highlights:
+ * Remove deprecated code from 1.x
+ * Support for Python 3.8
+ * Switched to pytest for testing
+ * Last release to support Python 3.5
+ * Fifteen new fuctions, including onion decomposition and linear prufing
+ * Three new generators, such as a directed joint degree generator
+- Add numpy-38-test.patch, to correct test failure under Python 3.8
+- Update URL, upstream changed to tarballs from zipfiles.
+
-------------------------------------------------------------------
Tue Jul 23 17:28:58 UTC 2019 - Todd R
diff --git a/python-networkx.spec b/python-networkx.spec
index f742fa0..73bae82 100644
--- a/python-networkx.spec
+++ b/python-networkx.spec
@@ -1,7 +1,7 @@
#
# spec file for package python-networkx
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,19 +19,21 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-networkx
-Version: 2.3
+Version: 2.4
Release: 0
Summary: Python package for the study of complex networks
License: BSD-3-Clause
Group: Development/Languages/Python
URL: https://networkx.github.io/
-Source: https://files.pythonhosted.org/packages/source/n/networkx/networkx-%{version}.zip
+Source: https://files.pythonhosted.org/packages/source/n/networkx/networkx-%{version}.tar.gz
+# UPSTREAM PATCH: gh#networkx/networkx#3724
+Patch0: numpy-38-test.patch
BuildRequires: %{python_module PyYAML}
BuildRequires: %{python_module decorator >= 3.4.0}
BuildRequires: %{python_module matplotlib}
-BuildRequires: %{python_module nose >= 0.10.1}
BuildRequires: %{python_module pydot}
BuildRequires: %{python_module pyparsing}
+BuildRequires: %{python_module pytest}
BuildRequires: %{python_module scipy}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
@@ -69,6 +71,7 @@ Documentation and examples for %{name}.
%prep
%setup -q -n networkx-%{version}
+%autopatch -p1
%build
%python_build
@@ -86,7 +89,8 @@ fi
%{python_expand pushd %{buildroot}%{$python_sitelib}
# Fix wrong-script-interpreter
-find networkx -name '*test*.py' -exec sed -i "s|#!%{_bindir}/env python|#!%__$python|" {} +
+find networkx -name '*test*.py' -exec sed -i "s|#!%{_bindir}/env python$|#!%__$python|" {} +
+find networkx -name '*test*.py' -exec sed -i "s|#!%{_bindir}/env python3$|#!%__$python|" {} +
find networkx -name '*test*.py' -exec grep -q '#!%__$python' {} \; -exec chmod a+x {} +
# Deduplicating files can generate a RPMLINT warning for pyc mtime
find networkx -name '*test*.py' -exec $python -m compileall -d %{$python_sitelib} {} \;
@@ -98,7 +102,7 @@ popd
%check
# test excluded because it leads to crashes on i586, gh#networkx/networkx#3304
-%python_exec setup.py nosetests -v -e 'test_subgraph_centrality_big_graph'
+%pytest -k 'not test_subgraph_centrality_big_graph'
%files %{python_files}
%license LICENSE.txt