From a8036790521d0a68f977ad1f69a43bd0e010131d Mon Sep 17 00:00:00 2001 From: Ankur Sinha (Ankur Sinha Gmail) Date: Jul 06 2023 12:07:49 +0000 Subject: [PATCH 1/3] chore: use rpmautospec --- diff --git a/changelog b/changelog new file mode 100644 index 0000000..0312cae --- /dev/null +++ b/changelog @@ -0,0 +1,45 @@ +* Tue Jun 13 2023 Python Maint - 2.3.0-8 +- Rebuilt for Python 3.12 + +* Fri Jan 20 2023 Fedora Release Engineering - 2.3.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Jul 22 2022 Fedora Release Engineering - 2.3.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 13 2022 Python Maint - 2.3.0-5 +- Rebuilt for Python 3.11 + +* Fri Jan 21 2022 Fedora Release Engineering - 2.3.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 2.3.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Jun 04 2021 Python Maint - 2.3.0-2 +- Rebuilt for Python 3.10 + +* Sun Mar 28 2021 Ankur Sinha - 2.3.0-1 +- Update to latest release + +* Wed Jan 27 2021 Fedora Release Engineering - 2.2.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* 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/python-bokeh.spec b/python-bokeh.spec index e852874..1649fda 100644 --- a/python-bokeh.spec +++ b/python-bokeh.spec @@ -13,7 +13,7 @@ and data applications.} Name: python-%{pypi_name} Version: 2.3.0 -Release: 8%{?dist} +Release: %autorelease Summary: Interactive plots and applications in the browser from Python # License breakdown: licensecheck -r . | sed '/UNKNOWN/ d' | sort -t ':' -k 2 @@ -219,47 +219,4 @@ rm -f %{buildroot}/%{python3_sitelib}/bokeh/server/static/.keep %{python3_sitelib}/%{pypi_name} %changelog -* Tue Jun 13 2023 Python Maint - 2.3.0-8 -- Rebuilt for Python 3.12 - -* Fri Jan 20 2023 Fedora Release Engineering - 2.3.0-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Fri Jul 22 2022 Fedora Release Engineering - 2.3.0-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Mon Jun 13 2022 Python Maint - 2.3.0-5 -- Rebuilt for Python 3.11 - -* Fri Jan 21 2022 Fedora Release Engineering - 2.3.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Fri Jul 23 2021 Fedora Release Engineering - 2.3.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Fri Jun 04 2021 Python Maint - 2.3.0-2 -- Rebuilt for Python 3.10 - -* Sun Mar 28 2021 Ankur Sinha - 2.3.0-1 -- Update to latest release - -* Wed Jan 27 2021 Fedora Release Engineering - 2.2.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* 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 +%autochangelog From efb214ca5f0fb832cbbc8ae61d297b6af95fa8c1 Mon Sep 17 00:00:00 2001 From: Ankur Sinha (Ankur Sinha Gmail) Date: Jul 06 2023 15:15:51 +0000 Subject: [PATCH 2/3] feat: update to 3.2.0 (fixes rhbz#1944501, rhbz#2155217) --- diff --git a/.gitignore b/.gitignore index 3fad370..0f3fabf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /bokeh-2.2.1.tar.gz /bokeh-2.3.0.tar.gz +/bokeh-3.2.0.tar.gz diff --git a/parse-deps.py b/parse-deps.py deleted file mode 100644 index 96ace29..0000000 --- a/parse-deps.py +++ /dev/null @@ -1,24 +0,0 @@ -#!/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 index 1649fda..2bc6cdf 100644 --- a/python-bokeh.spec +++ b/python-bokeh.spec @@ -1,9 +1,8 @@ # Wants to download sample data, also wants firefox or geckodriver etc. # So, we skip tests and rely on upstream's CI +# Needs to be run with --enable-network %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 @@ -11,8 +10,8 @@ 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.3.0 +Name: python-bokeh +Version: 3.2.0 Release: %autorelease Summary: Interactive plots and applications in the browser from Python @@ -62,101 +61,17 @@ Summary: Interactive plots and applications in the browser from Python # 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 +Source0: %{pypi_source bokeh} BuildArch: noarch %description %_description -%package -n python3-%{pypi_name} +%package -n python3-bokeh 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} @@ -171,6 +86,7 @@ Recommends: %{py3_dist sphinx} %if %{with tests} BuildRequires: %{py3_dist beautifulsoup4} +BuildRequires: %{py3_dist icalendar} BuildRequires: %{py3_dist flaky} BuildRequires: %{py3_dist Jinja2} >= 2.7 BuildRequires: %{py3_dist mock} @@ -184,39 +100,51 @@ BuildRequires: %{py3_dist python-dateutil} >= 2.1 BuildRequires: %{py3_dist PyYAML} >= 3.10 BuildRequires: %{py3_dist requests} BuildRequires: %{py3_dist selenium} +BuildRequires: %{py3_dist sphinx} +BuildRequires: %{py3_dist toml} BuildRequires: %{py3_dist tornado} >= 5.1 BuildRequires: %{py3_dist typing_extensions} >= 3.7.4 %endif -%description -n python3-%{pypi_name} %_description +%description -n python3-bokeh %_description %prep -%autosetup -n %{pypi_name}-%{version} -rm -rf %{pypi_name}.egg-info +%autosetup -n bokeh-%{version} + +%if %{with tests} +# pytest doesn't like it +sed -i 's/^timeout = 60//' pyproject.toml +%endif + +%generate_buildrequires +%pyproject_buildrequires %build -%py3_build +%pyproject_wheel %install -%py3_install +%pyproject_install +%pyproject_save_files bokeh # 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 +# download sample data +PYTHONPATH="%{buildroot}/%{python3_sitelib}/" %{python3} -c 'import bokeh ; bokeh.sampledata.download();' +# run complete import check +%pyproject_check_import bokeh +# skip pytests: pypi doesn't include necessary code bits, but we can't use github tar because it doesn't include the necessary js etc. +%else +# skip tests that want to download things +%pyproject_check_import bokeh -e *airport_routes* -e *webdriver* -e *sampledata* -e *bokeh_autodoc* -e *sphinxext* %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} +%files -n python3-bokeh -f %{pyproject_files} +%{_bindir}/bokeh %changelog %autochangelog diff --git a/sources b/sources index b2c48ea..1a06c3b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (bokeh-2.3.0.tar.gz) = 9e584810ffd1cc66b2c97ffbd527cb0fe4a7c63dd0cc9ddae29beae167db9c4333c2323928a91117ac226e401997dd2b2d6f8968c0618c3b40c70c6bac334c95 +SHA512 (bokeh-3.2.0.tar.gz) = 9f9972737009e279a0bf300524a202f8da42dcdb9c02294c4db436103e8b35d738306c0c1a6ef2701a0be5e6b1d6614969b69fa322aaeeb1a013ef6e07a662c1 From 10323e80dc7985e40ce12d4f3c2e032cdf19aea5 Mon Sep 17 00:00:00 2001 From: Ankur Sinha (Ankur Sinha Gmail) Date: Jul 06 2023 15:58:09 +0000 Subject: [PATCH 3/3] feat: update license breakdown (fixes rhbz#2155217, fixes rhbz#1944501) --- diff --git a/python-bokeh.spec b/python-bokeh.spec index 2bc6cdf..a2cbeba 100644 --- a/python-bokeh.spec +++ b/python-bokeh.spec @@ -16,50 +16,62 @@ Release: %autorelease 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 +# The software is released under the BSD license + +# Apache License 2.0 +#./src/bokeh/palettes.py: Apache License 2.0 +#./src/bokeh/server/static/lib/lib.* + +# BSD 3-Clause +#./src/bokeh/server/static/js/bokeh-api.js +#./src/bokeh/server/static/js/bokeh-api.min.js +#./src/bokeh/server/static/js/bokeh-gl.js +#./src/bokeh/server/static/js/bokeh-gl.min.js +#./src/bokeh/server/static/js/bokeh.js +#./src/bokeh/server/static/js/bokeh-mathjax.js: +#./src/bokeh/server/static/js/bokeh-mathjax.min.js +#./src/bokeh/server/static/js/bokeh.min.js +#./src/bokeh/server/static/js/bokeh-tables.js +#./src/bokeh/server/static/js/bokeh-widgets.js +#./src/bokeh/server/static/js/bokeh-widgets.min.js +#./src/bokeh/server/static/js/compiler.js + +# MIT +#./src/bokeh/sampledata/antibiotics.py: MIT License +#./src/bokeh/sampledata/haar_cascade.py: MIT License +#./src/bokeh/sampledata/perceptions.py: MIT License +#./src/bokeh/server/static/js/lib/core/util/wheel.d.ts: MIT License + +# CC +#./src/bokeh/sampledata/gapminder.py: Creative Commons Attribution 2.0 +#./src/bokeh/sampledata/us_cities.py: Creative Commons Attribution 2.0 +#./src/bokeh/sampledata/world_cities.py: Creative Commons Attribution 2.0 +#./src/bokeh/sampledata/population.py: Creative Commons Attribution 3.0 +#./src/bokeh/sampledata/les_mis.py: Creative Commons Attribution-NoDerivatives 4.0 +#./src/bokeh/sampledata/anscombe.py: Creative Commons Attribution-ShareAlike 3.0 +#./src/bokeh/sampledata/browsers.py: Creative Commons Attribution-ShareAlike 3.0 + +# ODC +#./src/bokeh/sampledata/airport_routes.py: ODC Open Database License v1.0 + +# Public Domain +#./src/bokeh/sampledata/airports.py: Public domain +#./src/bokeh/sampledata/commits.py: Public domain +#./src/bokeh/sampledata/periodic_table.py: Public domain +#./src/bokeh/sampledata/unemployment1948.py: Public domain +#./src/bokeh/sampledata/unemployment.py: Public domain +#./src/bokeh/sampledata/us_marriages_divorces.py: Public domain + # 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 +#./src/bokeh/server/static/js/lib/api/palettes.d.ts: BSD 3-Clause License Apache License 2.0 +#./src/bokeh/server/static/js/bokeh-tables.min.js: MIT License BSD 3-Clause License + +# NC: non free: to remove? +#./src/bokeh/sampledata/movies_data.py: Creative Commons Attribution-NonCommercial 4.0 + -# 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 +License: Apache-2.0 and BSD-3-Clause and MIT and ODbL-1.0 and LicenseRef-Fedora-Public-Domain and CC-BY-2.0 and CC-BY-3.0 and CC-BY-ND-4.0 and CC-BY-SA-3.0 URL: https://github.com/bokeh/bokeh Source0: %{pypi_source bokeh}