%if %{?fedora}%{!?fedora:0} >= 30 # Don't build Python 2 packages for Fedora >= 30 %global buildpy2 0 %else %global buildpy2 1 %endif Name: python-metakernel # The python, echo and bash subpackages have their own version # and release numbers - update below in each package section # Running rpmdev-bumpspec on this specfile will update all the # release tags automatically Version: 0.24.1 Release: 1%{?dist} %global pkgversion %{version} %global pkgrelease %{release} Summary: Metakernel for Jupyter License: BSD URL: https://github.com/Calysto/metakernel Source0: https://github.com/Calysto/metakernel/archive/v%{version}/%{name}-%{version}.tar.gz # https://github.com/Calysto/metakernel/pull/192 Patch0: %{name}-Fix-TypeError.patch BuildArch: noarch %if %{buildpy2} BuildRequires: python2-devel BuildRequires: python2-ipykernel BuildRequires: python2-pexpect >= 4.2 # For testing: BuildRequires: python2-pytest BuildRequires: python2-requests BuildRequires: python2-ipyparallel BuildRequires: python2-jedi %endif BuildRequires: python3-devel BuildRequires: python3-ipykernel BuildRequires: python3-pexpect >= 4.2 # For testing: BuildRequires: python3-pytest BuildRequires: python3-requests BuildRequires: python3-ipyparallel BuildRequires: python3-jedi BuildRequires: man # For documentation BuildRequires: python3-sphinx BuildRequires: python3-sphinx-bootstrap-theme BuildRequires: python3-numpydoc BuildRequires: python3-recommonmark %description A Jupyter/IPython kernel template which includes core magic functions (including help, command and file path completion, parallel and distributed processing, downloads, and much more). %if %{buildpy2} %package -n python2-metakernel Summary: Metakernel for Jupyter %{?python_provide:%python_provide python2-metakernel} Requires: python2-ipykernel Requires: python2-pexpect >= 4.2 Obsoletes: python2-metakernel-bash < 0.19.1-24 %description -n python2-metakernel A Jupyter/IPython kernel template which includes core magic functions (including help, command and file path completion, parallel and distributed processing, downloads, and much more). %package -n python2-metakernel-tests Summary: Tests for python2-metakernel %{?python_provide:%python_provide python2-metakernel-tests} Requires: python2-metakernel = %{version}-%{release} Requires: python2-metakernel-python Requires: python2-pytest Requires: python2-requests Requires: python2-ipyparallel Requires: python2-jedi Requires: man %description -n python2-metakernel-tests This package contains the tests of python2-metakernel. %endif %package -n python3-metakernel Summary: Metakernel for Jupyter %{?python_provide:%python_provide python3-metakernel} Requires: python3-ipykernel Requires: python3-pexpect >= 4.2 Obsoletes: python3-metakernel-bash < 0.19.1-24 %if ! %{buildpy2} Obsoletes: python2-metakernel < %{version}-%{release} Obsoletes: python2-metakernel-bash < 0.19.1-24 %endif %description -n python3-metakernel A Jupyter/IPython kernel template which includes core magic functions (including help, command and file path completion, parallel and distributed processing, downloads, and much more). %package -n python3-metakernel-tests Summary: Tests for python3-metakernel %{?python_provide:%python_provide python3-metakernel-tests} Requires: python3-metakernel = %{version}-%{release} Requires: python3-metakernel-python Requires: python3-pytest Requires: python3-requests Requires: python3-ipyparallel Requires: python3-jedi Requires: man %if ! %{buildpy2} Obsoletes: python2-metakernel-tests < %{version}-%{release} %endif %description -n python3-metakernel-tests This package contains the tests of python3-metakernel. %package doc Summary: Documentation for python-metakernel %description doc This package contains the documentation of python-metakernel. %if %{buildpy2} %package -n python2-metakernel-python Version: 0.19.1 Release: 24%{?dist} Summary: A Python kernel for Jupyter/IPython %{?python_provide:%python_provide python2-metakernel-python} Requires: python2-metakernel = %{pkgversion}-%{pkgrelease} Requires: python2-jedi Requires: python-jupyter-filesystem %description -n python2-metakernel-python A Python kernel for Jupyter/IPython, based on MetaKernel. %package -n python2-metakernel-echo Version: 0.19.1 Release: 24%{?dist} Summary: A simple echo kernel for Jupyter/IPython %{?python_provide:%python_provide python2-metakernel-echo} Requires: python2-metakernel = %{pkgversion}-%{pkgrelease} Requires: python-jupyter-filesystem %description -n python2-metakernel-echo A simple echo kernel for Jupyter/IPython, based on MetaKernel. %endif %package -n python3-metakernel-python Version: 0.19.1 Release: 24%{?dist} Summary: A Python kernel for Jupyter/IPython %{?python_provide:%python_provide python3-metakernel-python} Requires: python3-metakernel = %{pkgversion}-%{pkgrelease} Requires: python3-jedi Requires: python-jupyter-filesystem %if ! %{buildpy2} Obsoletes: python2-metakernel-python < %{version}-%{release} %endif %description -n python3-metakernel-python A Python kernel for Jupyter/IPython, based on MetaKernel. %package -n python3-metakernel-echo Version: 0.19.1 Release: 24%{?dist} Summary: A simple echo kernel for Jupyter/IPython %{?python_provide:%python_provide python3-metakernel-echo} Requires: python3-metakernel = %{pkgversion}-%{pkgrelease} Requires: python-jupyter-filesystem %if ! %{buildpy2} Obsoletes: python2-metakernel-echo < %{version}-%{release} %endif %description -n python3-metakernel-echo A simple echo kernel for Jupyter/IPython, based on MetaKernel. %prep %setup -q -n metakernel-%{pkgversion} %patch0 -p1 %build %if %{buildpy2} %py2_build pushd metakernel_python %py2_build popd pushd metakernel_echo %py2_build popd %endif %py3_build pushd metakernel_python %py3_build popd pushd metakernel_echo %py3_build popd pushd docs PYTHONPATH=.. make html SPHINXBUILD=sphinx-build-3 rm -f _build/html/.buildinfo popd %install %if %{buildpy2} %py2_install pushd metakernel_python %py2_install popd pushd metakernel_echo %py2_install popd for f in tests/test_expect.py; do sed '/\/usr\/bin\/env/d' -i %{buildroot}%{python2_sitelib}/metakernel/${f} done PYTHONPATH=metakernel_python \ python2 -m metakernel_python install --name python2-metakernel-python \ --prefix %{buildroot}%{_prefix} PYTHONPATH=metakernel_echo \ python2 -m metakernel_echo install --name python2-metakernel-echo \ --prefix %{buildroot}%{_prefix} %endif %py3_install pushd metakernel_python %py3_install popd pushd metakernel_echo %py3_install popd for f in tests/test_expect.py; do sed '/\/usr\/bin\/env/d' -i %{buildroot}%{python3_sitelib}/metakernel/${f} done PYTHONPATH=metakernel_python \ python3 -m metakernel_python install --name python3-metakernel-python \ --prefix %{buildroot}%{_prefix} PYTHONPATH=metakernel_echo \ python3 -m metakernel_echo install --name python3-metakernel-echo \ --prefix %{buildroot}%{_prefix} %if %{buildpy2} # Distinguish display names for python 2 and python 3 based kernels sed 's/MetaKernel [A-Za-z]*/& (Python 2)/' \ -i %{buildroot}%{_datadir}/jupyter/kernels/python2-metakernel-*/kernel.json sed 's/MetaKernel [A-Za-z]*/& (Python 3)/' \ -i %{buildroot}%{_datadir}/jupyter/kernels/python3-metakernel-*/kernel.json %endif %check %if %{buildpy2} PYTHONPATH=metakernel_python ipcluster-2 start -n=3 & pid=$! pytest-2 -v metakernel ipcluster-2 stop wait $pid rm -f ${HOME}/.ipython/metakernel/magics/*.pyc %endif %if %{buildpy2} ipcluster=ipcluster-3 %else ipcluster=ipcluster %endif PYTHONPATH=metakernel_python ${ipcluster} start -n=3 & pid=$! pytest-3 -v metakernel ${ipcluster} stop wait $pid rm -f ${HOME}/.ipython/metakernel/magics/__pycache__/*.pyc %if %{buildpy2} %files -n python2-metakernel %license LICENSE.txt %doc README.rst %{python2_sitelib}/metakernel-*.egg-info %dir %{python2_sitelib}/metakernel %{python2_sitelib}/metakernel/*.py* %{python2_sitelib}/metakernel/images %dir %{python2_sitelib}/metakernel/magics %{python2_sitelib}/metakernel/magics/*.py* %{python2_sitelib}/metakernel/utils %files -n python2-metakernel-tests %{python2_sitelib}/metakernel/tests %{python2_sitelib}/metakernel/magics/tests %endif %files -n python3-metakernel %license LICENSE.txt %doc README.rst %{python3_sitelib}/metakernel-*.egg-info %dir %{python3_sitelib}/metakernel %{python3_sitelib}/metakernel/*.py %{python3_sitelib}/metakernel/__pycache__ %{python3_sitelib}/metakernel/images %dir %{python3_sitelib}/metakernel/magics %{python3_sitelib}/metakernel/magics/*.py %{python3_sitelib}/metakernel/magics/__pycache__ %{python3_sitelib}/metakernel/utils %files -n python3-metakernel-tests %{python3_sitelib}/metakernel/tests %{python3_sitelib}/metakernel/magics/tests %files doc %license LICENSE.txt %doc docs/_build/html %if %{buildpy2} %files -n python2-metakernel-python %{python2_sitelib}/metakernel_python-*.egg-info %{python2_sitelib}/metakernel_python.py* %{_datadir}/jupyter/kernels/python2-metakernel-python %files -n python2-metakernel-echo %{python2_sitelib}/metakernel_echo-*.egg-info %{python2_sitelib}/metakernel_echo.py* %{_datadir}/jupyter/kernels/python2-metakernel-echo %endif %files -n python3-metakernel-python %{python3_sitelib}/metakernel_python-*.egg-info %{python3_sitelib}/metakernel_python.py %{python3_sitelib}/__pycache__/metakernel_python.* %{_datadir}/jupyter/kernels/python3-metakernel-python %files -n python3-metakernel-echo %{python3_sitelib}/metakernel_echo-*.egg-info %{python3_sitelib}/metakernel_echo.py %{python3_sitelib}/__pycache__/metakernel_echo.* %{_datadir}/jupyter/kernels/python3-metakernel-echo %changelog * Wed Jun 05 2019 Mattias Ellert - 0.24.1-1 - Update to version 0.24.1 - Drop metakernel-bash packages (upstream removed sources) - Tests are now using pytest instead of nose - Fix a TypeError * Mon May 13 2019 Mattias Ellert - 0.23.0-1 - Update to version 0.23.0 * Sun May 05 2019 Mattias Ellert - 0.22.1-1 - Update to version 0.22.1 * Wed May 01 2019 Mattias Ellert - 0.21.2-1 - Update to version 0.21.2 * Mon Apr 29 2019 Mattias Ellert - 0.21.0-1 - Update to version 0.21.0 - Drop patch python-metakernel-adjustment-for-newer-jedi.patch (backported) - Drop patch python-metakernel-python-exec.patch (accepted upstream) * Sat Feb 02 2019 Fedora Release Engineering - 0.20.14-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild * Fri Nov 16 2018 Mattias Ellert - 0.20.14-9 - Adapt to Python 3 only ipcluster in Fedora >= 30 * Tue Nov 13 2018 Mattias Ellert - 0.20.14-8 - Don't build Python 2 packages for Fedora >= 30 * Mon Jul 16 2018 Mattias Ellert - 0.20.14-7 - Don't rely on 'python' in path during testing * Sat Jul 14 2018 Fedora Release Engineering - 0.20.14-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Mon Jun 25 2018 Mattias Ellert - 0.20.14-5 - Rebuilt for Python 3.7 * Mon Jun 25 2018 Mattias Ellert - 0.20.14-4 - Adjustment for newer jedi (Backport from upstream git) * Tue Jun 19 2018 Miro HronĨok - 0.20.14-3 - Rebuilt for Python 3.7 * Fri Feb 09 2018 Fedora Release Engineering - 0.20.14-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild * Wed Jan 24 2018 Mattias Ellert - 0.20.14-1 - Update to 0.20.14 - Drop patches python-metakernel-install.patch and python-metakernel-bash-eval.patch (accepted upstream) - Only provide one documentation package * Sun Nov 26 2017 Mattias Ellert - 0.20.12-2 - Use full path to python interpreter in kernel description - Fix missing printout in bash kernel * Fri Nov 17 2017 Mattias Ellert - 0.20.12-1 - Update to 0.20.12 * Mon Oct 23 2017 Mattias Ellert - 0.20.10-1 - Update to 0.20.10 * Fri Oct 20 2017 Mattias Ellert - 0.20.8-1 - Update to 0.20.8 * Fri Sep 22 2017 Mattias Ellert - 0.20.7-1 - Update to 0.20.7 * Thu Jul 27 2017 Fedora Release Engineering - 0.20.4-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Wed Jun 14 2017 Mattias Ellert - 0.20.4-1 - Update to 0.20.4 * Thu May 18 2017 Mattias Ellert - 0.20.2-2 - Put tests in a separate subpackage * Sat May 13 2017 Mattias Ellert - 0.20.2-1 - Update to 0.20.2 * Sat Apr 29 2017 Mattias Ellert - 0.20.1-1 - Initial packaging