#1 WIP: needs license audit: update to 3.2.0, fix FTBFS, use pyproject macros, use rpmautospec
Opened 10 months ago by ankursinha. Modified 9 months ago
rpms/ ankursinha/python-bokeh feat/3.2.0  into  rawhide

file modified
+1
@@ -1,2 +1,3 @@ 

  /bokeh-2.2.1.tar.gz

  /bokeh-2.3.0.tar.gz

+ /bokeh-3.2.0.tar.gz

file added
+45
@@ -0,0 +1,45 @@ 

+ * Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 2.3.0-8

+ - Rebuilt for Python 3.12

+ 

+ * Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.0-7

+ - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

+ 

+ * Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.0-6

+ - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

+ 

+ * Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 2.3.0-5

+ - Rebuilt for Python 3.11

+ 

+ * Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.0-4

+ - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

+ 

+ * Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.0-3

+ - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

+ 

+ * Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 2.3.0-2

+ - Rebuilt for Python 3.10

+ 

+ * Sun Mar 28 2021 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 2.3.0-1

+ - Update to latest release

+ 

+ * Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.1-4

+ - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

+ 

+ * Fri Sep 18 2020 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 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 <ankursinha AT fedoraproject DOT org> - 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 <ankursinha AT fedoraproject DOT org> - 2.2.1-1

+ - Remove dependency generator: no longer needed since F30

+ - Remove python provide line: no longer needed for F33+

+ - Initial build

+ 

file removed
-24
@@ -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 <sanjay DOT ankur AT gmail DOT com>

- """

- 

- 

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

file modified
+87 -190
@@ -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,152 +10,80 @@ 

  anyone who would like to quickly and easily make interactive plots, dashboards,

  and data applications.}

  

- Name:           python-%{pypi_name}

- Version:        2.3.0

- Release:        8%{?dist}

+ Name:           python-bokeh

+ Version:        3.2.0

+ 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

Does this need to be removed given that non-commercial is not FOSS?

https://docs.fedoraproject.org/en-US/legal/not-allowed-licenses/

  

- # 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

- # 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 +98,7 @@ 

  

  %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,82 +112,51 @@ 

  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

- * Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 2.3.0-8

- - Rebuilt for Python 3.12

- 

- * Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.0-7

- - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

- 

- * Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.0-6

- - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

- 

- * Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 2.3.0-5

- - Rebuilt for Python 3.11

- 

- * Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.0-4

- - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

- 

- * Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.0-3

- - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

- 

- * Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 2.3.0-2

- - Rebuilt for Python 3.10

- 

- * Sun Mar 28 2021 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 2.3.0-1

- - Update to latest release

- 

- * Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.1-4

- - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

- 

- * Fri Sep 18 2020 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 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 <ankursinha AT fedoraproject DOT org> - 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 <ankursinha AT fedoraproject DOT org> - 2.2.1-1

- - Remove dependency generator: no longer needed since F30

- - Remove python provide line: no longer needed for F33+

- - Initial build

+ %autochangelog

file modified
+1 -1
@@ -1,1 +1,1 @@ 

- SHA512 (bokeh-2.3.0.tar.gz) = 9e584810ffd1cc66b2c97ffbd527cb0fe4a7c63dd0cc9ddae29beae167db9c4333c2323928a91117ac226e401997dd2b2d6f8968c0618c3b40c70c6bac334c95

+ SHA512 (bokeh-3.2.0.tar.gz) = 9f9972737009e279a0bf300524a202f8da42dcdb9c02294c4db436103e8b35d738306c0c1a6ef2701a0be5e6b1d6614969b69fa322aaeeb1a013ef6e07a662c1

Builds fine, needs a license audit.

Note: it doesn' t seem to bundle bokehjs anymore, so the parse-deps.py script no longer works. Still need to see if it bundles other stuff.gg

1 new commit added

  • feat: update license breakdown (fixes rhbz#2155217, fixes rhbz#1944501)
10 months ago

Does this need to be removed given that non-commercial is not FOSS?

https://docs.fedoraproject.org/en-US/legal/not-allowed-licenses/

Could someone please give this a once over to check the licensing breakdown?

You know, I'm not an expert, but for
./src/bokeh/sampledata/*
The license for the file (the code) is "The full license is in the file LICENSE.txt, distributed with this software."
The other license mentioned in the files is related to the sample data that will be eventually downloaded with

import bokeh.sampledata
bokeh.sampledata.download()

Such sample dataset files are not included in the package, so, IMO, we could get rid of all license breakdown for ./src/bokeh/sampledata/*

Ah, yeh, that makes sense. I'll update the spec.