diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..48fff89 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/networkx-1.11.tar.gz diff --git a/.python-networkx.metadata b/.python-networkx.metadata new file mode 100644 index 0000000..68a54b7 --- /dev/null +++ b/.python-networkx.metadata @@ -0,0 +1 @@ +714ae728f5a85bf914547b7e69f9e6a5affedcd9 SOURCES/networkx-1.11.tar.gz diff --git a/SOURCES/networkx-optional-modules.patch b/SOURCES/networkx-optional-modules.patch new file mode 100644 index 0000000..6d2cc35 --- /dev/null +++ b/SOURCES/networkx-optional-modules.patch @@ -0,0 +1,29 @@ +make importing of drawing and geo subpackages optional + +diff -Naur networkx-networkx-1.10.orig/networkx/__init__.py networkx-networkx-1.10/networkx/__init__.py +--- networkx-networkx-1.10.orig/networkx/__init__.py 2015-10-30 15:41:35.000000000 -0600 ++++ networkx-networkx-1.10/networkx/__init__.py 2015-11-24 09:34:20.741823392 -0700 +@@ -95,5 +95,8 @@ + from networkx.linalg import * + from networkx.tests.test import run as test + +-import networkx.drawing +-from networkx.drawing import * ++try: ++ import networkx.drawing ++ from networkx.drawing import * ++except ImportError: ++ pass +diff -Naur networkx-networkx-1.10.orig/networkx/readwrite/__init__.py networkx-networkx-1.10/networkx/readwrite/__init__.py +--- networkx-networkx-1.10.orig/networkx/readwrite/__init__.py 2015-10-30 15:41:35.000000000 -0600 ++++ networkx-networkx-1.10/networkx/readwrite/__init__.py 2015-11-24 09:34:46.539738141 -0700 +@@ -14,4 +14,8 @@ + from networkx.readwrite.gml import * + from networkx.readwrite.graphml import * + from networkx.readwrite.gexf import * +-from networkx.readwrite.nx_shp import * ++ ++try: ++ from networkx.readwrite.nx_shp import * ++except ImportError: ++ pass diff --git a/SOURCES/python-networkx-sphinx.patch b/SOURCES/python-networkx-sphinx.patch new file mode 100644 index 0000000..137e98e --- /dev/null +++ b/SOURCES/python-networkx-sphinx.patch @@ -0,0 +1,11 @@ +diff -up networkx-networkx-1.11/doc/source/conf.py.sphinx networkx-networkx-1.11/doc/source/conf.py +--- networkx-networkx-1.11/doc/source/conf.py.sphinx 2016-01-30 10:25:44.000000000 -0700 ++++ networkx-networkx-1.11/doc/source/conf.py 2016-12-23 09:54:55.280925006 -0700 +@@ -74,7 +74,6 @@ extensions = [ + 'sphinx.ext.intersphinx', + 'sphinx.ext.mathjax', + 'sphinx.ext.napoleon', +- 'sphinx.ext.pngmath', + 'sphinx.ext.todo', + 'sphinx.ext.viewcode', + #'sphinxcontrib.bibtex', diff --git a/SPECS/python-networkx.spec b/SPECS/python-networkx.spec new file mode 100644 index 0000000..b17c3de --- /dev/null +++ b/SPECS/python-networkx.spec @@ -0,0 +1,490 @@ +%if 0%{?fedora} || 0%{?rhel} > 7 +# Enable python3 build by default +%bcond_without python3 +%else +%bcond_with python3 +%endif + +%if 0%{?rhel} > 7 +# Disable python2 build by default +%bcond_with python2 +%bcond_with docs +%else +%bcond_without python2 +%bcond_without docs +%endif + +%if 0%{?fedora} || 0%{?rhel} > 7 +%global with_gdal 0 +%endif + +%global srcname networkx + +Name: python-%{srcname} +Version: 1.11 +Release: 16.1%{?dist} +Summary: Creates and Manipulates Graphs and Networks +License: BSD +URL: http://networkx.github.io/ +Source0: https://github.com/networkx/networkx/archive/%{srcname}-%{version}.tar.gz +Patch0: %{srcname}-optional-modules.patch +# Fix sphinx build error +# https://github.com/networkx/networkx/issues/2340 +Patch3: python-networkx-sphinx.patch +BuildArch: noarch + +%description +NetworkX is a Python package for the creation, manipulation, and +study of the structure, dynamics, and functions of complex networks. + +%if %{with python2} +%package -n python2-%{srcname} +Summary: Creates and Manipulates Graphs and Networks +Requires: python2-%{srcname}-core = %{version}-%{release} +%if 0%{?with_gdal} +Requires: python2-%{srcname}-geo = %{version}-%{release} +Requires: python2-%{srcname}-drawing = %{version}-%{release} +%endif # with gdal + +%{?python_provide:%python_provide python2-%{srcname}} + +%description -n python2-%{srcname} +NetworkX is a Python 2 package for the creation, manipulation, and +study of the structure, dynamics, and functions of complex networks. + +%package -n python2-%{srcname}-core +Summary: Creates and Manipulates Graphs and Networks +BuildRequires: python2-devel +BuildRequires: python2-decorator +BuildRequires: python2-scipy +BuildRequires: python2-setuptools +BuildRequires: python2-yaml +BuildRequires: python2-pyparsing +BuildRequires: python2-nose + +Requires: python2-decorator +Requires: python2-scipy +Requires: python2-yaml +Requires: python2-pyparsing + +%{?python_provide:%python_provide python2-%{srcname}-core} + +%description -n python2-%{srcname}-core +NetworkX is a Python 2 package for the creation, manipulation, and +study of the structure, dynamics, and functions of complex networks. + + +%if 0%{?with_gdal} + +%package -n python2-%{srcname}-geo +Summary: GDAL I/O +Requires: python2-%{srcname}-core = %{version}-%{release} +BuildRequires: python2-gdal +Requires: python2-gdal + +%{?python_provide:%python_provide python2-%{srcname}-geo} + +%description -n python2-%{srcname}-geo +NetworkX is a Python 3 package for the creation, manipulation, and +study of the structure, dynamics, and functions of complex networks. + +This package provides GDAL I/O support. + + +%package -n python2-%{srcname}-drawing +Summary: visual representations for graphs and networks +Requires: python2-%{srcname}-core = %{version}-%{release} +BuildRequires: python2-graphviz +BuildRequires: python2-matplotlib +BuildRequires: python2-pydotplus +Requires: python2-graphviz +Requires: python2-matplotlib +Requires: python2-pydotplus + +%{?python_provide:%python_provide python2-%{srcname}-drawing} + +%description -n python2-%{srcname}-drawing +NetworkX is a Python 2 package for the creation, manipulation, and +study of the structure, dynamics, and functions of complex networks. + +This package provides support for graph visualizations. + +%endif # with gdal +%endif # with python2 + + +%if %{with python3} +%package -n python3-%{srcname} +Summary: Creates and Manipulates Graphs and Networks +Requires: python3-%{srcname}-core = %{version}-%{release} +%if 0%{?with_gdal} +Requires: python3-%{srcname}-geo = %{version}-%{release} +Requires: python3-%{srcname}-drawing = %{version}-%{release} +%endif + +%{?python_provide:%python_provide python3-%{srcname}} + +%description -n python3-%{srcname} +NetworkX is a Python 3 package for the creation, manipulation, and +study of the structure, dynamics, and functions of complex networks. + +%package -n python3-%{srcname}-core +Summary: Creates and Manipulates Graphs and Networks +BuildRequires: python3-devel +BuildRequires: python3-setuptools +Requires: python3-decorator +Requires: python3-yaml +Requires: python3-scipy +Requires: python3-pyparsing + +%{?python_provide:%python_provide python3-%{srcname}-core} + +%description -n python3-%{srcname}-core +NetworkX is a Python 3 package for the creation, manipulation, and +study of the structure, dynamics, and functions of complex networks. + +%if 0%{?with_gdal} +%package -n python3-%{srcname}-geo +Summary: GDAL I/O +Requires: python3-%{srcname}-core = %{version}-%{release} +BuildRequires: gdal-python3 +Requires: gdal-python3 + +%{?python_provide:%python_provide python3-%{srcname}-geo} + +%description -n python3-%{srcname}-geo +NetworkX is a Python 3 package for the creation, manipulation, and +study of the structure, dynamics, and functions of complex networks. + +This package provides GDAL I/O support. + +%package -n python3-%{srcname}-drawing +Summary: visual representations for graphs and networks +Requires: python3-%{srcname}-core = %{version}-%{release} +BuildRequires: python3-matplotlib +BuildRequires: python3-pydotplus +Requires: python3-matplotlib +Requires: python3-pydotplus + +%{?python_provide:%python_provide python3-%{srcname}-drawing} + +%description -n python3-%{srcname}-drawing +NetworkX is a Python 3 package for the creation, manipulation, and +study of the structure, dynamics, and functions of complex networks. + +This package provides support for graph visualizations. +%endif + +%endif # with python3 + + +%if %{with docs} +%package doc +Summary: Documentation for networkx + +BuildRequires: python2-pydotplus +BuildRequires: python2-sphinx +BuildRequires: python2-sphinx_rtd_theme +BuildRequires: tex(latex) +BuildRequires: tex-preview +BuildRequires: python2-matplotlib +Provides: bundled(jquery) + + +%description doc +Documentation for networkx +%endif # with docs + + +%prep +%setup -q -n %{srcname}-%{srcname}-%{version} +%patch0 -p1 +%patch3 -p1 -b .sphinx + +# Fix permissions +find examples -type f -perm /0111 -exec chmod a-x {} + + +%build +%if %{with python2} +%py2_build +%endif # with python2 + +# Documentation build +# Conditionalize it since it requires python2 for now +%if %{with docs} +PYTHONPATH=$PWD/build/lib make SPHINXBUILD=sphinx-build -C doc html +%endif # with docs + +%if %{with python3} +# Setup for python3 +%if %{with python2} +mv build build2 +mv networkx/*.pyc build2 +%endif # with python2 +# Build for python3 +%py3_build +%endif # with python3 + +%install +%if %{with python3} +# Install the python3 version +%py3_install +%endif # with python3 + +%if %{with python2} +# Setup for python2 +mv build build3 +mv build2 build +mv -f build/*.pyc networkx + +# Install the python2 version +%py2_install + +# Fix permissions and binary paths +for f in `grep -FRl /usr/bin/env $RPM_BUILD_ROOT%{python2_sitelib}`; do + sed 's|/usr/bin/env python|%{_bindir}/python2|' $f > $f.new + touch -r $f $f.new + chmod a+x $f.new + mv -f $f.new $f +done +%endif # with python2 + +%if %{with python3} +for f in `grep -FRl /usr/bin/env $RPM_BUILD_ROOT%{python3_sitelib}`; do + sed 's|/usr/bin/env python|%{__python3}|' $f > $f.new + touch -r $f $f.new + chmod a+x $f.new + mv -f $f.new $f +done +%endif # with python3 + +#if %{with docs} +mv $RPM_BUILD_ROOT%{_docdir}/networkx-%{version} ./installed-docs +rm -f installed-docs/INSTALL.txt +#endif # with docs + +%clean +rm -fr %{buildroot} +rm -f /tmp/tmp?????? + +%check +%if %{with python2} +mkdir site-packages +mv networkx site-packages +PYTHONPATH=$PWD/site-packages %{__python2} -c "import networkx; networkx.test()" +%endif # with python2 + +%if %{with python2} +%files -n python2-%{srcname} +%doc README.rst +%license LICENSE.txt + +%files -n python2-%{srcname}-core +%doc installed-docs/* +%{python2_sitelib}/* +%exclude %{python2_sitelib}/networkx/drawing/ +%if 0%{?with_gdal} +%exclude %{python2_sitelib}/networkx/readwrite/nx_shp.py* +%endif # with gdal + +%if 0%{?with_gdal} +%files -n python2-%{srcname}-drawing +%{python2_sitelib}/networkx/drawing + +%files -n python2-%{srcname}-geo +%{python2_sitelib}/networkx/readwrite/nx_shp.py* +%endif # with gdal +%endif # with python2 + +%if %{with python3} +%files -n python3-networkx +%doc README.rst +%license LICENSE.txt + +%files -n python3-networkx-core +%doc installed-docs/* +%{python3_sitelib}/* +%exclude %{python3_sitelib}/networkx/drawing/ +%if 0%{?with_gdal} +%exclude %{python3_sitelib}/networkx/readwrite/nx_shp.py +%exclude %{python3_sitelib}/networkx/readwrite/__pycache__/nx_shp.* +%endif # with gdal + +%if 0%{?with_gdal} +%files -n python3-networkx-drawing +%{python3_sitelib}/networkx/drawing + +%files -n python3-networkx-geo +%{python3_sitelib}/networkx/readwrite/nx_shp.py +%{python3_sitelib}/networkx/readwrite/__pycache__/nx_shp.* +%endif # with gdal +%endif # with python3 + +%if %{with docs} +%files doc +%doc doc/build/html/* +%endif # with docs + + +%changelog +* Tue Oct 22 2019 Petr Lautrbach - 1.11-16.1 +- Build dependencies cleanup + +* Thu Jan 17 2019 Lon Hohberger - 1.11-15 +- Fix gdal requires block + +* Wed Jun 13 2018 Petr Viktorin - 1.11-14 +- Don't build the geo subpackage + +* Thu Jun 07 2018 Tomas Orsava - 1.11-13 +- Switch hardcoded python3 shebangs into the %%{__python3} macro + +* Tue Apr 17 2018 Lumír Balhar - 1.11-12 +- Build dependencies cleanup + +* Wed Apr 11 2018 Charalampos Stratakis - 1.11-11 +- Conditionalize the Python 2 subpackage and don't build it on EL > 7 + +* Fri Mar 09 2018 Iryna Shcherbina - 1.11-10 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Fri Feb 09 2018 Fedora Release Engineering - 1.11-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Dec 07 2017 Merlin Mathesius - 1.11-8 +- Cleanup spec file conditionals + +* Thu Jul 27 2017 Fedora Release Engineering - 1.11-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Feb 11 2017 Fedora Release Engineering - 1.11-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Fri Dec 23 2016 Orion Poplawski - 1.11-5 +- Add patch to fix sphinx build + +* Mon Dec 19 2016 Miro Hrončok - 1.11-5 +- Rebuild for Python 3.6 + +* Tue Jul 19 2016 Fedora Release Engineering - 1.11-4 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Thu Apr 14 2016 Jerry James - 1.11-3 +- Change pydot dependencies to pydotplus (bz 1326957) + +* Sat Apr 2 2016 Jerry James - 1.11-2 +- Fix gdal and pydot dependencies + +* Sat Mar 5 2016 Jerry James - 1.11-1 +- New upstream version +- Drop upstreamed -numpy patch + +* Thu Feb 04 2016 Fedora Release Engineering - 1.10-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Mon Feb 1 2016 Jerry James - 1.10-1 +- Comply with latest python packaging guidelines (bz 1301767) + +* Tue Dec 1 2015 Jerry James - 1.10-1 +- New upstream version +- Update URLs +- Add -numpy patch to fix test failure + +* Tue Nov 10 2015 Fedora Release Engineering - 1.9.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 + +* Thu Jun 18 2015 Fedora Release Engineering - 1.9.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat Feb 21 2015 Jerry James - 1.9.1-3 +- Note bundled jquery + +* Tue Oct 7 2014 Jerry James - 1.9.1-2 +- Fix python3-networkx-drawing subpackage (bz 1149980) +- Fix python(3)-geo subpackage + +* Mon Sep 22 2014 Jerry James - 1.9.1-1 +- New upstream version +- Fix license handling + +* Thu Jul 10 2014 Jerry James - 1.9-2 +- BR python-setuptools + +* Tue Jul 8 2014 Jerry James - 1.9-1 +- New upstream version +- Drop upstreamed -test-rounding-fix patch +- Upstream no longer bundles python-decorator; drop the workaround + +* Sat Jun 07 2014 Fedora Release Engineering - 1.8.1-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Wed May 14 2014 Bohuslav Kabrda - 1.8.1-13 +- Rebuilt for https://fedoraproject.org/wiki/Changes/Python_3.4 + +* Thu Mar 13 2014 Pádraig Brady - 1.8.1-12 +- Split to subpackages and support EL6 and EL7 + +* Thu Oct 3 2013 Jerry James - 1.8.1-2 +- Update project and source URLs + +* Fri Aug 9 2013 Jerry James - 1.8.1-1 +- New upstream version + +* Mon Jul 29 2013 Jerry James - 1.8-1 +- New upstream version +- Add tex-preview BR for documentation + +* Thu Feb 14 2013 Fedora Release Engineering - 1.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Mon Aug 6 2012 Jerry James - 1.7-1 +- New upstream version + +* Sat Jul 21 2012 Fedora Release Engineering - 1.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue Jan 10 2012 Jerry James - 1.6-2 +- Mass rebuild for Fedora 17 + +* Mon Nov 28 2011 Jerry James - 1.6-1 +- New upstream version +- Do not use bundled python-decorator +- Remove Requires: ipython, needed by one example only +- Clean junk files left in /tmp + +* Wed Jun 22 2011 Jerry James - 1.5-1 +- New upstream version +- Drop defattr +- Build documentation + +* Sat Apr 23 2011 Jerry James - 1.4-1 +- New upstream version +- Build for both python2 and python3 +- Drop BuildRoot, clean script, and clean at start of install script + +* Tue Feb 08 2011 Fedora Release Engineering - 1.0.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Thu Jul 22 2010 David Malcolm - 1.0.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild + +* Wed Jan 20 2010 Conrad Meyer - 1.0.1-1 +- Bump version to 1.0.1. +- License changed LGPLv2+ -> BSD. + +* Sun Jul 26 2009 Fedora Release Engineering - 0.99-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Tue Mar 24 2009 Conrad Meyer - 0.99-3 +- Replace __python macros with direct python invocations. +- Disable checks for now. +- Replace a define with global. + +* Thu Mar 12 2009 Conrad Meyer - 0.99-2 +- License is really LGPLv2+. +- Include license as documentation. +- Add a check section to run tests. + +* Sat Dec 13 2008 Conrad Meyer - 0.99-1 +- Initial package.