# 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: 3.6.3 Release: 1%{?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 # Automatically converted from old format: BSD and ASL 2.0 and MIT and ISC - review is highly recommended. License: BSD-3-Clause AND Apache-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.4103 # MIT Provides: bundled(nodejs-@types/jquery) = 3.5.29 # MIT Provides: bundled(nodejs-@types/sizzle) = 2.3.8 # MIT Provides: bundled(nodejs-@types/slickgrid) = 2.1.40 # MIT Provides: bundled(nodejs-choices.js) = 10.2.0 # MIT Provides: bundled(nodejs-deepmerge) = 4.3.1 # MIT Provides: bundled(nodejs-esm) = 3.2.25 # ISC Provides: bundled(nodejs-flatbush) = 4.4.0 # MIT Provides: bundled(nodejs-flatpickr) = 4.6.13 # ISC Provides: bundled(nodejs-flatqueue) = 2.0.3 # ASL 2.0 Provides: bundled(nodejs-fuse.js) = 6.6.2 # MIT Provides: bundled(nodejs-jquery-ui) = 1.13.2 # MIT Provides: bundled(nodejs-jquery) = 3.7.1 # ASL 2.0 Provides: bundled(nodejs-mathjax-full) = 3.2.2 # ASL 2.0 Provides: bundled(nodejs-mhchemparser) = 4.2.1 # MIT Provides: bundled(nodejs-nouislider) = 15.7.1 # MIT Provides: bundled(nodejs-proj4) = 2.11.0 # MIT Provides: bundled(nodejs-regl) = 2.1.0 # MIT Provides: bundled(nodejs-redux) = 4.2.1 # BSD Provides: bundled(nodejs-sprintf-js) = 1.1.4 # MIT Provides: bundled(nodejs-timezone) = 1.0.23 # BSD Provides: bundled(nodejs-tslib) = 2.7.0 # MIT Provides: bundled(nodejs-underscore.template) = 0.1.7 # MIT Provides: bundled(nodejs-wkt-parser) = 1.3.3 # 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} -p1 rm -rf %{pypi_name}.egg-info # Add to generate correctly egg-info sed -i 's/dynamic = \["version"\]/version = "%{version}"'/ pyproject.toml %generate_buildrequires %pyproject_buildrequires %build %pyproject_wheel %install %pyproject_install # Remove zero length file rm -f %{buildroot}/%{python3_sitelib}/bokeh/server/static/.keep # Remove static typing information generated files rm -rf %{buildroot}/%{python3_sitelib}/typings %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}.dist-info %{python3_sitelib}/%{pypi_name} %changelog * Mon Jan 26 2026 Federico Pellegrin - 3.6.3-1 - Bump to 3.6.3 * Fri Jan 16 2026 Federico Pellegrin - 2.3.0-24 - Use new Python macros in spec file (rhbz#2377489) * Tue Jan 13 2026 Ankur Sinha - 2.3.0-23 - use spdx license * Fri Sep 19 2025 Python Maint - 2.3.0-22 - Rebuilt for Python 3.14.0rc3 bytecode * Fri Aug 15 2025 Python Maint - 2.3.0-21 - Rebuilt for Python 3.14.0rc2 bytecode * Fri Jul 25 2025 Fedora Release Engineering - 2.3.0-20 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild * Mon Jun 02 2025 Python Maint - 2.3.0-19 - Rebuilt for Python 3.14 * Wed Jan 22 2025 Sandro - 2.3.0-18 - Apply patch for NumPy 2.x compatibility * Sat Jan 18 2025 Fedora Release Engineering - 2.3.0-17 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild * Wed Sep 04 2024 Miroslav Suchý - 2.3.0-16 - convert license to SPDX * Fri Jul 19 2024 Fedora Release Engineering - 2.3.0-15 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild * Fri Jun 07 2024 Python Maint - 2.3.0-14 - Rebuilt for Python 3.13 * Fri Jan 26 2024 Fedora Release Engineering - 2.3.0-13 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Sun Jan 21 2024 Fedora Release Engineering - 2.3.0-12 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Tue Jul 25 2023 Mamoru TASAKA - 2.3.0-11 - Backport upstream patch for Jinja2 3.1 change * Tue Jul 25 2023 Mamoru TASAKA - 2.3.0-10 - Backport upstream patch for python 3.12 SafeConfigParser removal * Fri Jul 21 2023 Fedora Release Engineering - 2.3.0-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild * 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