Files
python-bqplot/python-bqplot.spec
Benjamin Greiner 1e6f218cf7 - Add bqplot-js.patch boo#1248431 CVE-2025-9287 CVE-2025-9288
* We need to keep most of the js lock (yarn.lock) because 0.12
    is still not fully updatable with jupyterlab 4. This will
    hopefully change with 0.13, which is at rc stage

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:jupyter/python-bqplot?expand=0&rev=48
2025-08-21 17:14:14 +00:00

137 lines
4.5 KiB
RPMSpec

#
# spec file for package python-bqplot
#
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
# https://github.com/bqplot/bqplot/issues/1639
%define skip_python312 1
%define skip_python313 1
%define pyver 0.12.45
%define jupver 0.5.46
Name: python-bqplot
Version: %{pyver}
Release: 0
Summary: Interactive plotting package for the Jupyter notebook
License: Apache-2.0
URL: https://github.com/bqplot/bqplot
Source0: https://github.com/bqplot/bqplot/archive/refs/tags/%{pyver}.tar.gz#/bqplot-%{pyver}-gh.tar.gz
Source1: node_modules.tar.xz
# Script to vendor node_modules sources
Source2: create_node_modules.sh
# PATCH-FIX-OPENSUSE bqplot-js.patch boo#1248431 CVE-2025-9287 CVE-2025-9288
Patch0: bqplot-js.patch
BuildRequires: %{python_module jupyter-packaging}
BuildRequires: %{python_module jupyterlab}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: jupyter-jupyterlab-filesystem >= 20211114
BuildRequires: jupyter-notebook-filesystem
BuildRequires: python-rpm-macros
Requires: jupyter-bqplot-notebook = %{jupver}
Requires: python-numpy >= 1.10.4
Requires: python-traitlets >= 4.3.0
Requires: python-traittypes >= 0.0.6
Requires: (python-ipywidgets >= 7.5.0 with python-ipywidgets < 9)
Requires: (python-pandas >= 1 with python-pandas < 3)
Provides: python-jupyter_bqplot = %{pyver}
Obsoletes: python-jupyter_bqplot < %{pyver}
BuildArch: noarch
# SECTION test requirements
BuildRequires: %{python_module ipywidgets >= 7.5.0 with %python-ipywidgets < 9}
BuildRequires: %{python_module nbval}
BuildRequires: %{python_module numpy >= 1.10.4}
BuildRequires: %{python_module pandas >= 1 with %python-pandas < 3}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module traitlets >= 4.3.0}
BuildRequires: %{python_module traittypes >= 0.0.6}
# /SECTION
%python_subpackages
%description
Plotting system for the Jupyter notebook based on the
interactive Jupyter widgets.
This package provides the python interface.
%package -n jupyter-bqplot-notebook
Version: %{jupver}
Summary: Interactive plotting package for Jupyter Notebooke
Requires: jupyter-notebook
Requires: python3dist(bqplot) = %{pyver}
Provides: jupyter-bqplot = %{pyver}-%{release}
# the jupyter-bqplot rpm package had the python package version until 0.12.13
Obsoletes: jupyter-bqplot < %{pyver}-%{release}
%description -n jupyter-bqplot-notebook
Plotting system for the Jupyter notebook based on the
interactive Jupyter widgets.
This package provides the jupyter notebook extension.
%package -n jupyter-bqplot-jupyterlab
Version: %{jupver}
Summary: Interactive plotting package for Jupyterlab
Requires: jupyter-jupyterlab
Requires: python3dist(bqplot) = %{pyver}
%description -n jupyter-bqplot-jupyterlab
Plotting system for the Jupyter notebook based on the
interactive Jupyter widgets.
This package provides the jupyterlab extension.
%prep
%autosetup -p1 -n bqplot-%{pyver} -a1
rm bqplot/install.py
%build
pushd js
export PATH="${PATH}:node_modules/.bin"
jlpm run build
popd
%pyproject_wheel
%install
%pyproject_install
%fdupes %{buildroot}%{_jupyter_prefix}
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
%python_expand PYTHONPATH=%{buildroot}%{$python_sitelib} $python -c "import bqplot"
# dtype no longer unsupported
donttest="test_dtype_with_str"
%pytest tests/ -k "not ($donttest)"
%pytest --nbval ui-tests/tests/notebooks
%files %{python_files}
%doc README.md
%license LICENSE
%{python_sitelib}/bqplot/
%{python_sitelib}/bqplot-%{pyver}.dist-info
%files -n jupyter-bqplot-notebook
%license LICENSE
%_jupyter_config %{_jupyter_nb_notebook_confdir}/bqplot.json
%{_jupyter_nbextension_dir}/bqplot/
%files -n jupyter-bqplot-jupyterlab
%license LICENSE
%{_jupyter_labextensions_dir3}/bqplot/
%changelog