From 0e27d410aa3f4ef60edf09b09ce7d8c5566c5a3e Mon Sep 17 00:00:00 2001 From: Ankur Sinha (Ankur Sinha Gmail) Date: Sep 23 2020 16:40:07 +0000 Subject: Initial commit --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4c5a5a0 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/bokeh-2.2.1.tar.gz diff --git a/parse-deps.py b/parse-deps.py new file mode 100644 index 0000000..96ace29 --- /dev/null +++ b/parse-deps.py @@ -0,0 +1,24 @@ +#!/usr/bin/python3 +""" +Parse the package-lock.json to populate Provides for the spec + +File: parse-deps.py + +Copyright 2020 Ankur Sinha +Author: Ankur Sinha +""" + + +import json + + +with open("package-lock.json", 'r') as f: + lockfile = json.load(f) + for depname, depdict in lockfile['dependencies'].items(): + if 'dev' not in depdict: + print("Provides: bundled(nodejs-{}) = {}".format( + depname, depdict['version'])) + # Generate package URLs to check license + for depname, depdict in lockfile['dependencies'].items(): + if 'dev' not in depdict: + print("https://www.npmjs.com/package/{}".format(depname)) diff --git a/python-bokeh.spec b/python-bokeh.spec new file mode 100644 index 0000000..881ea94 --- /dev/null +++ b/python-bokeh.spec @@ -0,0 +1,238 @@ +# Wants to download sample data, also wants firefox or geckodriver etc. +# So, we skip tests and rely on upstream's CI +%bcond_with tests + +%global pypi_name bokeh + +%global _description %{expand: +Bokeh is an interactive visualization library for modern web browsers. It +provides elegant, concise construction of versatile graphics, and affords +high-performance interactivity over large or streaming data sets. Bokeh can help +anyone who would like to quickly and easily make interactive plots, dashboards, +and data applications.} + +Name: python-%{pypi_name} +Version: 2.2.1 +Release: 3%{?dist} +Summary: Interactive plots and applications in the browser from Python + +# License breakdown: licensecheck -r . | sed '/UNKNOWN/ d' | sort -t ':' -k 2 +# The software is released under the BSD license, but includes files that are +# independently also marked with ASL 2.0 and MIT licenses +# The JS bits are npm based + +# ASL: +# bokeh/palettes.py +# bokeh/server/static/lib/lib.* + +# BSD: +# bokeh/server/static/js/bokeh-api.js +# bokeh/server/static/js/bokeh-api.legacy.js +# bokeh/server/static/js/bokeh-api.legacy.min.js +# bokeh/server/static/js/bokeh-api.min.js +# bokeh/server/static/js/bokeh.js +# bokeh/server/static/js/bokeh.legacy.js +# bokeh/server/static/js/bokeh.legacy.min.js +# bokeh/server/static/js/bokeh.min.js +# bokeh/server/static/js/bokeh-tables.js +# bokeh/server/static/js/bokeh-tables.legacy.js +# bokeh/server/static/js/bokeh-widgets.js +# bokeh/server/static/js/bokeh-widgets.legacy.js +# bokeh/server/static/js/bokeh-widgets.legacy.min.js +# bokeh/server/static/js/bokeh-widgets.min.js +# bokeh/server/static/js/compiler.js +# bokeh/server/static/js/compiler/prelude.js +# tests/unit/bokeh/test___init__.py +# bokeh/server/static/js/lib/api/palettes.js +# bokeh/server/static/js/types/api/palettes.d.ts + +# MIT (Expat) +# bokeh/server/static/js/lib/core/util/array.js +# bokeh/server/static/js/lib/core/util/callback.js +# bokeh/server/static/js/lib/core/util/types.js +# bokeh/server/static/js/lib/core/util/wheel.js +# bokeh/server/static/js/types/core/util/wheel.d.ts + +# Multiple licenses: +# bokeh/server/static/js/bokeh.json: Expat License Apache License 2.0 +# bokeh/server/static/js/bokeh-tables.legacy.min.js: Expat License BSD 3-clause "New" or "Revised" License +# bokeh/server/static/js/bokeh-tables.min.js: Expat License BSD 3-clause "New" or "Revised" License + +# Also see the breakdown in the bundled JS below +# and https://github.com/bokeh/bokeh/blob/branch-2.2/bokehjs/LICENSE +License: BSD and ASL 2.0 and MIT and ISC +URL: https://github.com/bokeh/bokeh +Source0: %pypi_source +# Read package-lock.json and general list of bundled runtime libraries their versions +Source1: parse-deps.py + +BuildArch: noarch + +%description %_description + +%package -n python3-%{pypi_name} +Summary: %{summary} +BuildRequires: python3-devel +BuildRequires: python3-setuptools + +###### Bundles various js bits ##### +# From: https://github.com/bokeh/bokeh/blob/0b9526ef553d938bf5de187e2511564c648c13bd/bokehjs/package-lock.json +# using parse-deps.py +# Also verify using the instructions here +# https://github.com/bokeh/bokeh/blob/branch-2.2/bokehjs/LICENSE#L45 +# MIT +Provides: bundled(nodejs-@bokeh/numbro) = 1.6.2 +# MIT +Provides: bundled(nodejs-@bokeh/slickgrid) = 2.4.2701 +# MIT +Provides: bundled(nodejs-@types/jquery) = 3.5.1 +# MIT +Provides: bundled(nodejs-@types/sizzle) = 2.3.2 +# MIT +Provides: bundled(nodejs-@types/slickgrid) = 2.1.30 +# MIT +Provides: bundled(nodejs-choices.js) = 9.0.1 +# ISC +Provides: bundled(nodejs-d) = 1.0.1 +# MIT +Provides: bundled(nodejs-deepmerge) = 4.2.2 +# ISC +Provides: bundled(nodejs-es5-ext) = 0.10.53 +# MIT +Provides: bundled(nodejs-es6-iterator) = 2.0.3 +# MIT +Provides: bundled(nodejs-es6-map) = 0.1.5 +# MIT +Provides: bundled(nodejs-es6-promise) = 4.2.8 +# MIT +Provides: bundled(nodejs-es6-set) = 0.1.5 +# ISC +Provides: bundled(nodejs-es6-symbol) = 3.1.3 +# ISC +Provides: bundled(nodejs-es6-weak-map) = 2.0.3 +# MIT +Provides: bundled(nodejs-event-emitter) = 0.3.5 +# ISC +Provides: bundled(nodejs-ext) = 1.4.0 +# ISC +Provides: bundled(nodejs-flatbush) = 3.3.0 +# MIT +Provides: bundled(nodejs-flatpickr) = 4.6.3 +# ISC +Provides: bundled(nodejs-flatqueue) = 1.2.1 +# ASL 2.0 +Provides: bundled(nodejs-fuse.js) = 3.6.1 +# MIT +Provides: bundled(nodejs-hammerjs) = 2.0.8 +# MIT +Provides: bundled(nodejs-jquery-ui) = 1.12.1 +# MIT +Provides: bundled(nodejs-jquery) = 3.5.1 +# MIT +Provides: bundled(nodejs-js-tokens) = 4.0.0 +# MIT +Provides: bundled(nodejs-loose-envify) = 1.4.0 +# MIT +Provides: bundled(nodejs-mgrs) = 1.0.0 +# ISC +Provides: bundled(nodejs-next-tick) = 1.0.0 +# MIT +Provides: bundled(nodejs-nouislider) = 14.6.0 +# MIT +Provides: bundled(nodejs-proj4) = 2.6.2 +# MIT +Provides: bundled(nodejs-redux) = 4.0.5 +# BSD +Provides: bundled(nodejs-sprintf-js) = 1.1.2 +# MIT +Provides: bundled(nodejs-symbol-observable) = 1.2.0 +# MIT +Provides: bundled(nodejs-timezone) = 1.0.23 +# BSD +Provides: bundled(nodejs-tslib) = 1.13.0 +# ISC +Provides: bundled(nodejs-type) = 1.2.0 +# MIT +Provides: bundled(nodejs-underscore.template) = 0.1.7 +# MIT +Provides: bundled(nodejs-wkt-parser) = 1.2.4 + +# Optional deps +# https://docs.bokeh.org/en/latest/docs/installation.html#installation +Recommends: %{py3_dist jupyter-core} +Recommends: %{py3_dist networkx} +Recommends: %{py3_dist pandas} +Recommends: %{py3_dist psutil} +Recommends: %{py3_dist sphinx} + +# Bokeh will look for whatever browser is available and use that, so not adding +# firefox etc to Recommends +# https://docs.bokeh.org/en/latest/docs/user_guide/export.html#userguide-export + +%if %{with tests} +BuildRequires: %{py3_dist beautifulsoup4} +BuildRequires: %{py3_dist flaky} +BuildRequires: %{py3_dist Jinja2} >= 2.7 +BuildRequires: %{py3_dist mock} +BuildRequires: %{py3_dist nbconvert} +BuildRequires: %{py3_dist networkx} +BuildRequires: %{py3_dist numpy} >= 1.11.3 +BuildRequires: %{py3_dist packaging} >= 16.8 +BuildRequires: %{py3_dist pillow} >= 7.1.0 +BuildRequires: %{py3_dist pytest} +BuildRequires: %{py3_dist python-dateutil} >= 2.1 +BuildRequires: %{py3_dist PyYAML} >= 3.10 +BuildRequires: %{py3_dist requests} +BuildRequires: %{py3_dist selenium} +BuildRequires: %{py3_dist tornado} >= 5.1 +BuildRequires: %{py3_dist typing_extensions} >= 3.7.4 +%endif + + +%description -n python3-%{pypi_name} %_description + +%prep +%autosetup -n %{pypi_name}-%{version} +rm -rf %{pypi_name}.egg-info + +%build +%py3_build + +%install +%py3_install + +# Remove zero length file +rm -f %{buildroot}/%{python3_sitelib}/bokeh/server/static/.keep + +%check +%if %{with tests} +# https://docs.bokeh.org/en/latest/docs/dev_guide/testing.html +# skip js tests, skip selenium tests +%pytest -m "not selenium" tests/unit +%endif + +%files -n python3-%{pypi_name} +%license LICENSE.txt +%doc README.md +%{_bindir}/%{pypi_name} +%{python3_sitelib}/%{pypi_name}-%{version}-py%{python3_version}.egg-info +%{python3_sitelib}/%{pypi_name} + +%changelog +* Fri Sep 18 2020 Ankur Sinha - 2.2.1-3 +- Update naming scheme for bundled bits, also in script +- Comment use of parse script +- Correct parse script shebang + +* Thu Sep 17 2020 Ankur Sinha - 2.2.1-2 +- Include detailed licensing +- Add optional requirements +- Remove commented shebang correction command +- List bundled nodejs libs with licenses +- include parse script in srpm +- Remove zero length files + +* Wed Sep 16 2020 Ankur Sinha - 2.2.1-1 +- Remove dependency generator: no longer needed since F30 +- Remove python provide line: no longer needed for F33+ +- Initial build diff --git a/sources b/sources new file mode 100644 index 0000000..cb87243 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (bokeh-2.2.1.tar.gz) = 8f58196468750f8fa24b4a8165ecb1407e61cfe207f1e0c82f0efc83d7b41f1db73ae56363e52bccc3b1f1cb9cc93f1a3ab40af0bb4b981e8b241c4c19c7b900