Blame python-notebook.spec

db5e28b
%global pypi_name notebook
ee7b19d
ee7b19d
Name:           python-%{pypi_name}
db5e28b
%global _docdir_fmt %{name}
db5e28b
f7de79c
# Updating this package? Update the list of bundled things bellow (twice)
5d4782b
Version:        5.3.0
db5e28b
ee7b19d
# a tag like rc1, set to %%{nil} if stable
8598565
%global tag %{nil}
ee7b19d
ee7b19d
# upstream version, like 1.2.3rc1
ee7b19d
%global uversion %{version}%{tag}
db5e28b
8598565
Release:        1%{tag}%{?dist}
ee7b19d
Summary:        A web-based notebook environment for interactive computing
db5e28b
License:        BSD
db5e28b
URL:            http://jupyter.org
ee7b19d
Source0:        https://files.pythonhosted.org/packages/source/n/%{pypi_name}/%{pypi_name}-%{uversion}.tar.gz
f9fba47
db5e28b
BuildArch:      noarch
db5e28b
db5e28b
BuildRequires:  python2-setuptools
db5e28b
BuildRequires:  python2-devel
db5e28b
db5e28b
BuildRequires:  python3-setuptools
db5e28b
BuildRequires:  python3-devel
db5e28b
5d4782b
BuildRequires:  git-core
f9fba47
ee7b19d
# rebuilding js and css
ee7b19d
BuildRequires:  /usr/bin/node
ee7b19d
db5e28b
# Tests:
db5e28b
BuildRequires:  pandoc
db5e28b
5d4782b
BuildRequires:  python3-dateutil
8598565
BuildRequires:  python3-ipykernel
db5e28b
BuildRequires:  python3-ipython_genutils
5d4782b
BuildRequires:  python3-jupyter-client >= 5.2.0
5d4782b
BuildRequires:  python3-jupyter-core >= 4.4.0
db5e28b
BuildRequires:  python3-nbconvert
db5e28b
BuildRequires:  python3-nbformat
db5e28b
BuildRequires:  python3-nose
f9fba47
BuildRequires:  python3-nose_warnings_filters
ee7b19d
BuildRequires:  python3-pandocfilters
5d4782b
BuildRequires:  python3-send2trash
5d4782b
BuildRequires:  python3-terminado >= 0.8.1
ee7b19d
BuildRequires:  python3-testpath
db5e28b
BuildRequires:  python3-tornado
5d4782b
BuildRequires:  python3-traitlets >= 4.2.1
db5e28b
5d4782b
BuildRequires:  python2-dateutil
db5e28b
BuildRequires:  python2-configparser
8598565
BuildRequires:  python2-ipykernel
db5e28b
BuildRequires:  python2-ipython_genutils
5d4782b
BuildRequires:  python2-jupyter-client >= 5.2.0
5d4782b
BuildRequires:  python2-jupyter-core >= 4.4.0
db5e28b
BuildRequires:  python2-mock
db5e28b
BuildRequires:  python2-nbconvert
db5e28b
BuildRequires:  python2-nbformat
db5e28b
BuildRequires:  python2-nose
f9fba47
BuildRequires:  python2-nose_warnings_filters
ee7b19d
BuildRequires:  python2-pandocfilters
db5e28b
BuildRequires:  python2-requests
5d4782b
BuildRequires:  python2-send2trash
5d4782b
BuildRequires:  python2-terminado >= 0.8.1
ee7b19d
BuildRequires:  python2-testpath
db5e28b
BuildRequires:  python2-tornado
5d4782b
BuildRequires:  python2-traitlets >= 4.2.1
db5e28b
db5e28b
# Docs:
f9fba47
BuildRequires:  python3-nbsphinx
db5e28b
BuildRequires:  python3-sphinx
db5e28b
BuildRequires:  python3-sphinx_rtd_theme
db5e28b
BuildRequires:  python3-ipython-sphinx
db5e28b
db5e28b
8598565
%?python_enable_dependency_generator
8598565
db5e28b
%global _description \
db5e28b
The Jupyter Notebook is a web application that allows you to create and \
db5e28b
share documents that contain live code, equations, visualizations, and \
db5e28b
explanatory text. The Notebook has support for multiple programming \
db5e28b
languages, sharing, and interactive widgets.
db5e28b
db5e28b
%description %_description
db5e28b
db5e28b
%package -n     python2-%{pypi_name}
db5e28b
Summary:        A web-based notebook environment for interactive computing
db5e28b
%{?python_provide:%python_provide python2-%{pypi_name}}
db5e28b
%{?python_provide:%python_provide python2-jupyter-%{pypi_name}}
db5e28b
%{?python_provide:%python_provide python2-ipython-%{pypi_name}}
db5e28b
Provides:       python2-jupyter-%{pypi_name} = %{version}-%{release}
db5e28b
Provides:       python2-ipython-%{pypi_name} = %{version}-%{release}
db5e28b
Obsoletes:      python2-ipython-%{pypi_name} < 4
db5e28b
Obsoletes:      python-ipython-%{pypi_name} < 4
db5e28b
db5e28b
Requires:       fontawesome-fonts
db5e28b
Requires:       fontawesome-fonts-web
ee7b19d
Requires:       mathjax >= 2.6
db5e28b
Requires:       js-backbone >= 1.2
db5e28b
Requires:       js-marked >= 0.3
db5e28b
Requires:       js-moment >= 2.8
ee7b19d
Requires:       js-underscore >= 1.8.3
db5e28b
db5e28b
# Versions from bower.json
f7de79c
# Updating this? Don't forgot the python3 subpackage
db5e28b
Provides:       bundled(bootstrap) = 3.3
db5e28b
Provides:       bundled(bootstrap-tour) = 0.9.0
ee7b19d
Provides:       bundled(codemirror) = 5.27
db5e28b
Provides:       bundled(es6-promise) = 1.0
db5e28b
Provides:       bundled(google-caja) = 5669
ee7b19d
Provides:       bundled(jed) = 1.1.1
db5e28b
Provides:       bundled(jquery) = 2.0
db5e28b
Provides:       bundled(jquery-typeahead) = 2.0.0
db5e28b
Provides:       bundled(jquery-ui) = 1.10
ee7b19d
Provides:       bundled(preact) = 7.2.0
ee7b19d
Provides:       bundled(preact-compat) = 3.14.3
ee7b19d
Provides:       bundled(proptypes) = 0.14.4
db5e28b
Provides:       bundled(requirejs) = 2.1
ee7b19d
Provides:       bundled(requirejs-text) = 2.0.15
ee7b19d
Provides:       bundled(requirejs-plugins) = 1.0.3
db5e28b
Provides:       bundled(text-encoding) = 0.1
f7de79c
Provides:       bundled(xterm.js) = 2.9.2
db5e28b
db5e28b
%description -n python2-%{pypi_name} %_description
db5e28b
db5e28b
%package -n     python3-%{pypi_name}
db5e28b
Summary:        A web-based notebook environment for interactive computing
db5e28b
%{?python_provide:%python_provide python3-%{pypi_name}}
db5e28b
%{?python_provide:%python_provide python3-jupyter-%{pypi_name}}
db5e28b
%{?python_provide:%python_provide python3-ipython-%{pypi_name}}
db5e28b
Provides:       python3-jupyter-%{pypi_name} = %{version}-%{release}
db5e28b
Provides:       python3-ipython-%{pypi_name} = %{version}-%{release}
db5e28b
Obsoletes:      python3-ipython-%{pypi_name} < 4
db5e28b
Provides:       %{pypi_name} = %{version}-%{release}
db5e28b
Provides:       jupyter-%{pypi_name} = %{version}-%{release}
db5e28b
db5e28b
Requires:       fontawesome-fonts
db5e28b
Requires:       fontawesome-fonts-web
ee7b19d
Requires:       mathjax >= 2.6
db5e28b
Requires:       js-backbone >= 1.2
db5e28b
Requires:       js-marked >= 0.3
db5e28b
Requires:       js-moment >= 2.8
ee7b19d
Requires:       js-underscore >= 1.8.3
db5e28b
db5e28b
# Versions from bower.json
f7de79c
# Updating this? Don't forgot the python2 subpackage
db5e28b
Provides:       bundled(bootstrap) = 3.3
db5e28b
Provides:       bundled(bootstrap-tour) = 0.9.0
ee7b19d
Provides:       bundled(codemirror) = 5.27
db5e28b
Provides:       bundled(es6-promise) = 1.0
db5e28b
Provides:       bundled(google-caja) = 5669
ee7b19d
Provides:       bundled(jed) = 1.1.1
db5e28b
Provides:       bundled(jquery) = 2.0
db5e28b
Provides:       bundled(jquery-typeahead) = 2.0.0
db5e28b
Provides:       bundled(jquery-ui) = 1.10
ee7b19d
Provides:       bundled(preact) = 7.2.0
ee7b19d
Provides:       bundled(preact-compat) = 3.14.3
ee7b19d
Provides:       bundled(proptypes) = 0.14.4
db5e28b
Provides:       bundled(requirejs) = 2.1
ee7b19d
Provides:       bundled(requirejs-text) = 2.0.15
ee7b19d
Provides:       bundled(requirejs-plugins) = 1.0.3
db5e28b
Provides:       bundled(text-encoding) = 0.1
f7de79c
Provides:       bundled(xterm.js) = 2.9.2
db5e28b
db5e28b
%description -n python3-%{pypi_name} %_description
db5e28b
db5e28b
%package -n python-%{pypi_name}-doc
db5e28b
Summary:        notebook documentation
db5e28b
%description -n python-%{pypi_name}-doc
db5e28b
Documentation for notebook
db5e28b
db5e28b
db5e28b
%prep
ee7b19d
%autosetup -n %{pypi_name}-%{uversion} -S git
db5e28b
db5e28b
%build
db5e28b
%py2_build
db5e28b
%py3_build
db5e28b
db5e28b
# generate html docs
db5e28b
# TODO fix import warnings?
db5e28b
sphinx-build-3 docs/source html
db5e28b
# remove the sphinx-build leftovers
db5e28b
rm -rf html/.{doctrees,buildinfo}
db5e28b
db5e28b
db5e28b
%install
db5e28b
# We do Python 2 installation first and we remove all the executables
db5e28b
# This way it's safe to assume all the executables will be Python 3
db5e28b
%py2_install
db5e28b
rm -f %{buildroot}%{_bindir}/*
db5e28b
db5e28b
%py3_install
db5e28b
f9fba47
# https://github.com/jupyter/notebook/issues/2373
f9fba47
rm -f %{buildroot}%{_bindir}/less-watch
f9fba47
db5e28b
# unbundle stuff
db5e28b
for SITELIB in %{python2_sitelib} %{python3_sitelib}; do
db5e28b
  pushd %{buildroot}${SITELIB}/%{pypi_name}/static/components
db5e28b
db5e28b
  rm -r font-awesome/fonts
db5e28b
  ln -vfs %{_datadir}/fonts/fontawesome font-awesome/fonts
db5e28b
db5e28b
  rm -r MathJax
db5e28b
  ln -vfs %{_datadir}/javascript/mathjax MathJax
db5e28b
db5e28b
  rm -r backbone
db5e28b
  ln -vfs %{_datadir}/javascript/backbone backbone
db5e28b
db5e28b
  rm -r marked/lib
db5e28b
  ln -vfs %{_datadir}/javascript/marked marked/lib
db5e28b
db5e28b
  rm -r moment
db5e28b
  ln -vfs %{_datadir}/javascript/moment moment
db5e28b
db5e28b
  rm -r underscore
db5e28b
  ln -vfs %{_datadir}/javascript/underscore underscore
db5e28b
db5e28b
  popd
db5e28b
done
db5e28b
db5e28b
db5e28b
%check
db5e28b
LANG=C.utf-8 nosetests-2 -v
db5e28b
LANG=C.utf-8 nosetests-3 -v
db5e28b
db5e28b
db5e28b
%files -n python2-%{pypi_name}
db5e28b
%doc README.md
db5e28b
%license COPYING.md
ee7b19d
%{python2_sitelib}/%{pypi_name}-%{uversion}-py?.?.egg-info
db5e28b
%{python2_sitelib}/%{pypi_name}/
db5e28b
db5e28b
%files -n python3-%{pypi_name}
db5e28b
%doc README.md
db5e28b
%license COPYING.md
f9fba47
%{_bindir}/jupyter-bundlerextension
db5e28b
%{_bindir}/jupyter-nbextension
db5e28b
%{_bindir}/jupyter-serverextension
db5e28b
%{_bindir}/jupyter-notebook
ee7b19d
%{python3_sitelib}/%{pypi_name}-%{uversion}-py?.?.egg-info
db5e28b
%{python3_sitelib}/%{pypi_name}/
db5e28b
db5e28b
%files -n python-%{pypi_name}-doc
db5e28b
%doc html
ca63d9b
%license COPYING.md
db5e28b
db5e28b
%changelog
8598565
* Fri Jan 19 2018 Miro Hrončok <mhroncok@redhat.com> - 5.3.0-1
8598565
- Update to 5.3.0
8598565
- Enable automatic dependency generator, drop manual Python requires
8598565
5d4782b
* Tue Jan 09 2018 Miro Hrončok <mhroncok@redhat.com> - 5.3.0-0.1.rc1
5d4782b
- Update to new 5.3.0rc1 version (#1532430)
5d4782b
- Only BR git-core instead of full git, it is sufficient
5d4782b
- Be more explciit about (Build)Required versions
5d4782b
- Require send2trash, dateutil
5d4782b
f7de79c
* Thu Nov 23 2017 Miro Hrončok <mhroncok@redhat.com> - 5.2.1-1
f7de79c
- Update to new 5.2.1 version (#1504386)
f7de79c
a4bc621
* Fri Sep 15 2017 Miro Hrončok <mhroncok@redhat.com> - 5.1.0-1
a4bc621
- Update to new 5.1.0 final version (#1491890)
a4bc621
00e5246
* Tue Sep 12 2017 Miro Hrončok <mhroncok@redhat.com> - 5.1.0-0.2.rc3
00e5246
- Update to new 5.1.0rc3 version (#1490880)
00e5246
- Remove 2 merged patches
00e5246
ee7b19d
* Wed Aug 23 2017 Miro Hrončok <mhroncok@redhat.com> - 5.1.0-0.1.rc2
ee7b19d
- Update to new 5.1.0rc2 version (#1482722)
ee7b19d
- Use node to compile JS and CSS
ee7b19d
b6640e0
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 5.0.0-2
b6640e0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
b6640e0
f9fba47
* Tue Apr 04 2017 Miro Hrončok <mhroncok@redhat.com> - 5.0.0-1
f9fba47
- Update to new 5.0.0 version (#1438917)
f9fba47
- Use autosetup with git
ca63d9b
- Add the license file to the doc subpackage
f9fba47
8b5844d
* Fri Mar 17 2017 Miro Hrončok <mhroncok@redhat.com> - 4.4.1-3
8b5844d
- Recommend terminado
8b5844d
db5e28b
* Tue Feb 21 2017 Miro Hrončok <mhroncok@redhat.com> - 4.4.1-2
db5e28b
- Make sure the Python 3 executables are really Python 3
db5e28b
- Build the docs
db5e28b
- Run the tests
db5e28b
- Use python2- where possible
db5e28b
- Unbundle some things, declare the rest
db5e28b
- Use the %%_description macro consistently
db5e28b
- Provide pythonX-jupyter-notebook
db5e28b
- Provide/Obsolete pythonX-ipython-notebook
db5e28b
db5e28b
* Thu Feb 09 2017 Thomas Spura <tomspur@fedoraproject.org> - 4.4.1-1
db5e28b
- rename to python-notebook
db5e28b
- only ship python3 executables
db5e28b
- update to 4.4.1
db5e28b
db5e28b
* Mon Apr 18 2016 Thomas Spura <tomspur@fedoraproject.org> - 4.2.0-1
db5e28b
- Initial package.