%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 <mattias.ellert@physics.uu.se> - 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 <mattias.ellert@physics.uu.se> - 0.23.0-1
- Update to version 0.23.0
* Sun May 05 2019 Mattias Ellert <mattias.ellert@physics.uu.se> - 0.22.1-1
- Update to version 0.22.1
* Wed May 01 2019 Mattias Ellert <mattias.ellert@physics.uu.se> - 0.21.2-1
- Update to version 0.21.2
* Mon Apr 29 2019 Mattias Ellert <mattias.ellert@physics.uu.se> - 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 <releng@fedoraproject.org> - 0.20.14-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Nov 16 2018 Mattias Ellert <mattias.ellert@physics.uu.se> - 0.20.14-9
- Adapt to Python 3 only ipcluster in Fedora >= 30
* Tue Nov 13 2018 Mattias Ellert <mattias.ellert@physics.uu.se> - 0.20.14-8
- Don't build Python 2 packages for Fedora >= 30
* Mon Jul 16 2018 Mattias Ellert <mattias.ellert@physics.uu.se> - 0.20.14-7
- Don't rely on 'python' in path during testing
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.20.14-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Mon Jun 25 2018 Mattias Ellert <mattias.ellert@physics.uu.se> - 0.20.14-5
- Rebuilt for Python 3.7
* Mon Jun 25 2018 Mattias Ellert <mattias.ellert@physics.uu.se> - 0.20.14-4
- Adjustment for newer jedi (Backport from upstream git)
* Tue Jun 19 2018 Miro HronĨok <mhroncok@redhat.com> - 0.20.14-3
- Rebuilt for Python 3.7
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.20.14-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Wed Jan 24 2018 Mattias Ellert <mattias.ellert@physics.uu.se> - 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 <mattias.ellert@physics.uu.se> - 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 <mattias.ellert@physics.uu.se> - 0.20.12-1
- Update to 0.20.12
* Mon Oct 23 2017 Mattias Ellert <mattias.ellert@physics.uu.se> - 0.20.10-1
- Update to 0.20.10
* Fri Oct 20 2017 Mattias Ellert <mattias.ellert@physics.uu.se> - 0.20.8-1
- Update to 0.20.8
* Fri Sep 22 2017 Mattias Ellert <mattias.ellert@physics.uu.se> - 0.20.7-1
- Update to 0.20.7
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.20.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Wed Jun 14 2017 Mattias Ellert <mattias.ellert@physics.uu.se> - 0.20.4-1
- Update to 0.20.4
* Thu May 18 2017 Mattias Ellert <mattias.ellert@physics.uu.se> - 0.20.2-2
- Put tests in a separate subpackage
* Sat May 13 2017 Mattias Ellert <mattias.ellert@physics.uu.se> - 0.20.2-1
- Update to 0.20.2
* Sat Apr 29 2017 Mattias Ellert <mattias.ellert@physics.uu.se> - 0.20.1-1
- Initial packaging