Blob Blame History Raw
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.20.14
Release:	4%{?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
#		Adjustment for newer jedi (Backport from upstream git)
Patch0:		%{name}-adjustment-for-newer-jedi.patch

BuildArch:	noarch
BuildRequires:	python2-devel
BuildRequires:	python3-devel
BuildRequires:	python2-ipykernel
BuildRequires:	python3-ipykernel
BuildRequires:	python2-pexpect >= 4.2
BuildRequires:	python3-pexpect >= 4.2
#		For testing:
BuildRequires:	python2-nose
BuildRequires:	python3-nose
BuildRequires:	python2-ipyparallel
BuildRequires:	python3-ipyparallel
BuildRequires:	python2-jedi
BuildRequires:	python3-jedi
BuildRequires:	man
#		For documentation
BuildRequires:	python3-sphinx
BuildRequires:	python3-sphinx-bootstrap-theme
BuildRequires:	python3-numpydoc

%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).

%package -n python2-metakernel
Summary:	Metakernel for Jupyter
%{?python_provide:%python_provide python2-metakernel}
Requires:	python2-ipykernel
Requires:	python2-pexpect >= 4.2

%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 python3-metakernel
Summary:	Metakernel for Jupyter
%{?python_provide:%python_provide python3-metakernel}
Requires:	python3-ipykernel
Requires:	python3-pexpect >= 4.2

%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 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-nose
Requires:	python2-ipyparallel
Requires:	python2-jedi
Requires:	man

%description -n python2-metakernel-tests
This package contains the tests of python2-metakernel.

%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-nose
Requires:	python3-ipyparallel
Requires:	python3-jedi
Requires:	man

%description -n python3-metakernel-tests
This package contains the tests of python3-metakernel.

%package doc
Summary:	Documentation for python-metakernel
Provides:	python2-metakernel-doc = %{version}-%{release}
Provides:	python3-metakernel-doc = %{version}-%{release}
Obsoletes:	python2-metakernel-doc < 0.20.14
Obsoletes:	python3-metakernel-doc < 0.20.14

%description doc
This package contains the documentation of python-metakernel.

%package -n python2-metakernel-python
Version:	0.19.1
Release:	14%{?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 python3-metakernel-python
Version:	0.19.1
Release:	14%{?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

%description -n python3-metakernel-python
A Python kernel for Jupyter/IPython, based on MetaKernel.

%package -n python2-metakernel-echo
Version:	0.19.1
Release:	14%{?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.

%package -n python3-metakernel-echo
Version:	0.19.1
Release:	14%{?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

%description -n python3-metakernel-echo
A simple echo kernel for Jupyter/IPython, based on MetaKernel.

%package -n python2-metakernel-bash
Version:	0.19.1
Release:	14%{?dist}
Summary:	A Bash kernel for Jupyter/IPython
%{?python_provide:%python_provide python2-metakernel-bash}
Requires:	python2-metakernel = %{pkgversion}-%{pkgrelease}
Requires:	python-jupyter-filesystem

%description -n python2-metakernel-bash
A Bash kernel for Jupyter/IPython, based on MetaKernel.

%package -n python3-metakernel-bash
Version:	0.19.1
Release:	14%{?dist}
Summary:	A Bash kernel for Jupyter/IPython
%{?python_provide:%python_provide python3-metakernel-bash}
Requires:	python3-metakernel = %{pkgversion}-%{pkgrelease}
Requires:	python-jupyter-filesystem

%description -n python3-metakernel-bash
A Bash kernel for Jupyter/IPython, based on MetaKernel.

%prep
%setup -q -n metakernel-%{pkgversion}
%patch0 -p1

%build
%py2_build
%py3_build

pushd metakernel_python
%py2_build
%py3_build
popd

pushd metakernel_echo
%py2_build
%py3_build
popd

pushd metakernel_bash
%py2_build
%py3_build
popd

pushd docs
PYTHONPATH=.. make html SPHINXBUILD=sphinx-build-3
rm -f _build/html/.buildinfo
popd

%install
%py2_install
%py3_install

pushd metakernel_python
%py2_install
%py3_install
popd

pushd metakernel_echo
%py2_install
%py3_install
popd

pushd metakernel_bash
%py2_install
%py3_install
popd

for f in tests/test_expect.py tests/_echo_wait.py; do
  sed '/\/usr\/bin\/env/d' -i %{buildroot}%{python2_sitelib}/metakernel/${f}
  sed '/\/usr\/bin\/env/d' -i %{buildroot}%{python3_sitelib}/metakernel/${f}
done

PYTHONPATH=metakernel_python \
  python2 -m metakernel_python install --name python2-metakernel-python \
  --prefix %{buildroot}%{_prefix}
PYTHONPATH=metakernel_python \
  python3 -m metakernel_python install --name python3-metakernel-python \
  --prefix %{buildroot}%{_prefix}

PYTHONPATH=metakernel_echo \
  python2 -m metakernel_echo install --name python2-metakernel-echo \
  --prefix %{buildroot}%{_prefix}
PYTHONPATH=metakernel_echo \
  python3 -m metakernel_echo install --name python3-metakernel-echo \
  --prefix %{buildroot}%{_prefix}

PYTHONPATH=metakernel_bash \
  python2 -m metakernel_bash install --name python2-metakernel-bash \
  --prefix %{buildroot}%{_prefix}
PYTHONPATH=metakernel_bash \
  python3 -m metakernel_bash install --name python3-metakernel-bash \
  --prefix %{buildroot}%{_prefix}

# 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

%check
PYTHONPATH=metakernel_python ipcluster-2 start -n=3 &
pid=$!
nosetests-2 -v -a !network
ipcluster-2 stop
wait $pid
rm -f ${HOME}/.ipython/metakernel/magics/*.pyc

PYTHONPATH=metakernel_python ipcluster-3 start -n=3 &
pid=$!
nosetests-3 -v -a !network
ipcluster-3 stop
wait $pid
rm -f ${HOME}/.ipython/metakernel/magics/__pycache__/*.pyc

%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 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 python2-metakernel-tests
%{python2_sitelib}/metakernel/tests
%{python2_sitelib}/metakernel/magics/tests

%files -n python3-metakernel-tests
%{python3_sitelib}/metakernel/tests
%{python3_sitelib}/metakernel/magics/tests

%files doc
%license LICENSE.txt
%doc docs/_build/html

%files -n python2-metakernel-python
%{python2_sitelib}/metakernel_python-*.egg-info
%{python2_sitelib}/metakernel_python.py*
%{_datadir}/jupyter/kernels/python2-metakernel-python

%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 python2-metakernel-echo
%{python2_sitelib}/metakernel_echo-*.egg-info
%{python2_sitelib}/metakernel_echo.py*
%{_datadir}/jupyter/kernels/python2-metakernel-echo

%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

%files -n python2-metakernel-bash
%{python2_sitelib}/metakernel_bash-*.egg-info
%{python2_sitelib}/metakernel_bash.py*
%{_datadir}/jupyter/kernels/python2-metakernel-bash

%files -n python3-metakernel-bash
%{python3_sitelib}/metakernel_bash-*.egg-info
%{python3_sitelib}/metakernel_bash.py
%{python3_sitelib}/__pycache__/metakernel_bash.*
%{_datadir}/jupyter/kernels/python3-metakernel-bash

%changelog
* 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