From d56a886c7881238a14c17c7c1598efc42ce6a0198e8b0536286c1c64ac8e0e0f Mon Sep 17 00:00:00 2001 From: Benjamin Greiner Date: Wed, 4 Dec 2024 13:32:14 +0000 Subject: [PATCH] - refresh node modules * update cross-spawn module to 7.0.6 - CVE-2024-21538 (bsc#1233851) OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:jupyter/python-nbclassic?expand=0&rev=47 --- .gitattributes | 23 +++ .gitignore | 1 + _multibuild | 3 + create_node_modules.sh | 9 + nbclassic-1.0.0-gh.tar.gz | 3 + nbclassic-1.0.0-py3-none-any.whl | 3 + nbclassic-1.1.0-gh.tar.gz | 3 + node_modules.tar.xz | 3 + python-nbclassic.changes | 307 +++++++++++++++++++++++++++++++ python-nbclassic.spec | 176 ++++++++++++++++++ 10 files changed, 531 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 _multibuild create mode 100644 create_node_modules.sh create mode 100644 nbclassic-1.0.0-gh.tar.gz create mode 100644 nbclassic-1.0.0-py3-none-any.whl create mode 100644 nbclassic-1.1.0-gh.tar.gz create mode 100644 node_modules.tar.xz create mode 100644 python-nbclassic.changes create mode 100644 python-nbclassic.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..ec2fdbb --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + test + \ No newline at end of file diff --git a/create_node_modules.sh b/create_node_modules.sh new file mode 100644 index 0000000..5d36113 --- /dev/null +++ b/create_node_modules.sh @@ -0,0 +1,9 @@ +#!/bin/sh +# +# Script to create node_modules.tar.xz +# needs bower, webpack and webpack-cli installed + +npm install +python3 setup.py jsdeps + +tar cJf node_modules.tar.xz node_modules nbclassic/static/components diff --git a/nbclassic-1.0.0-gh.tar.gz b/nbclassic-1.0.0-gh.tar.gz new file mode 100644 index 0000000..fe1893e --- /dev/null +++ b/nbclassic-1.0.0-gh.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0648209e9651b464786d8eefd7a4af39f3a9deb51ca5714f31a772a6e22843c7 +size 8320504 diff --git a/nbclassic-1.0.0-py3-none-any.whl b/nbclassic-1.0.0-py3-none-any.whl new file mode 100644 index 0000000..077d184 --- /dev/null +++ b/nbclassic-1.0.0-py3-none-any.whl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f99e4769b4750076cd4235c044b61232110733322384a94a63791d2e7beacc66 +size 9995162 diff --git a/nbclassic-1.1.0-gh.tar.gz b/nbclassic-1.1.0-gh.tar.gz new file mode 100644 index 0000000..a0e00ef --- /dev/null +++ b/nbclassic-1.1.0-gh.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4d7d3e9404888749f2ac50e44266c42a6ab0eadb86cc13de021b91aabdb496f +size 8326047 diff --git a/node_modules.tar.xz b/node_modules.tar.xz new file mode 100644 index 0000000..ca4d235 --- /dev/null +++ b/node_modules.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08896187c7b763452d14258b7b9b9d092da1f6215bd94dd1da831dc67b039036 +size 35392760 diff --git a/python-nbclassic.changes b/python-nbclassic.changes new file mode 100644 index 0000000..d534d30 --- /dev/null +++ b/python-nbclassic.changes @@ -0,0 +1,307 @@ +------------------------------------------------------------------- +Wed Dec 4 12:42:34 UTC 2024 - Nico Krapp + +- refresh node modules + * update cross-spawn module to 7.0.6 - CVE-2024-21538 (bsc#1233851) + +------------------------------------------------------------------- +Wed Jul 24 12:13:44 UTC 2024 - Daniel Garcia + +- Build from source instead of use .whl from pypi. + +------------------------------------------------------------------- +Tue Mar 5 18:34:12 UTC 2024 - Ben Greiner + +- Skip python39: no longer supported since ipython 8.19 + +------------------------------------------------------------------- +Thu Aug 17 15:59:44 UTC 2023 - Ben Greiner + +- Suggest primary python package -- boo#1214354 + +------------------------------------------------------------------- +Sun Jun 11 19:50:37 UTC 2023 - Ben Greiner + +- Update to 1.0.0 + * only documentation changes despite the big version bump + +------------------------------------------------------------------- +Mon May 1 17:46:44 UTC 2023 - Ben Greiner + +- Update to 0.5.6 + * Add show_banner trait to control the banner display #243 + (@echarles) + * Use the correct icon to display the application #245 + (@befeleme) + * State the correct name of the application in the desktop entry + #244 (@befeleme) + +------------------------------------------------------------------- +Sun Apr 23 20:25:35 UTC 2023 - Ben Greiner + +- Update to 0.5.5 + * Remove redirect from /notebooks to /files #235 (@mwouts) +- Release 0.5.4 + * Copy marked.umd.js to marked.js and revert loading #236 + (@echarles) + +------------------------------------------------------------------- +Sun Mar 19 16:11:24 UTC 2023 - Ben Greiner + +- Update to 0.5.3 + * Fix generating of .mo and .json files for nl translation #221 + (@frenzymadness) + * Fix banner icons #220 (@echarles) +- Release 0.5.2 + * Add news banner and log #215 (@echarles) + * Update get_rendered_contents further marked javascript upgrade + #210 (@echarles) + * Update security concerns link #218 (@RRosio) + * Don't require two different minimal versions of jupyter_server + #208 (@hroncok) + +------------------------------------------------------------------- +Thu Feb 9 16:16:06 UTC 2023 - Arun Persaud + +- specfile: + * update copyright year + +- update to version 0.5.1: + * Bugs fixed + + Add packages and package_data back in the setup_args #206 + (@echarles) + + Add static and templates as artifact for hatch build #205 + (@echarles) + +- changes from version 0.5.0: + * Enhancements made + + Upgrade to marked 4.0.10 #201 (@echarles) + * Bugs fixed + + Ci test fixes round1 #202 (@ericsnekbytes) + + fix loading of static and template path config #192 (@minrk) + + Add pytest_jupyter to the list of test deps #190 (@echarles) + + Align setup.py and setup.cfg #181 (@echarles) + * Maintenance and upkeep improvements + + Ci test fixes round1 #202 (@ericsnekbytes) + + Remove duplicate notebook_shim from setup.cfg #197 + (@frenzymadness) + + Upgrade moment javascript package #186 (@echarles) + + Add dependabot config #175 (@blink1073) + * Documentation improvements + + Update documentation #196 (@RRosio) + + Update the project URL #194 (@jtpio) + * Other merged PRs + + Fix the jupyter server base.handlers import #187 (@echarles) + + Revert pull request 168 #184 (@echarles) + +------------------------------------------------------------------- +Sat Dec 31 13:05:25 UTC 2022 - Benjamin Greiner + +- Add pytest-jupyter to test requirenents. Testing with + jupyter-server pulls it in now gh#jupyter/nbclassic#190 + +------------------------------------------------------------------- +Sat Nov 5 19:48:55 UTC 2022 - Arun Persaud + +- update to version 0.4.8: + * Enhancements made + + Playwright Testing Conversion #170 (@ericsnekbytes) + * Bugs fixed + + Handle async and sync contents managers #172 (@blink1073) + * Maintenance and upkeep improvements + + Playwright port #139 (@ericsnekbytes) + * Documentation improvements + + Documentation for the extensions configurator #174 (@echarles) + + Updating contributing docs for playwright tests #171 (@RRosio) + * Other merged PRs + + Update docs to remove install command #173 (@dleen) + +------------------------------------------------------------------- +Sat Oct 22 03:38:13 UTC 2022 - Arun Persaud + +- update to version 0.4.7: + * New features added + + Fix/nbclassic base url #168 (@mcrutch) + * Enhancements made + + Add a redirect from /nbclassic to /nbclassic/tree if both + notebook>=7 if both notebook>=7 and nbclassic are installed #166 + (@echarles) + * Bugs fixed + + Allow NBClassic to work with NB7 and ServerApp.base_url #165 + (@mcrutch) + +- changes from version 0.4.6: + * New features added + + Adds new file custom-preload that is loaded in a different order + than custom.js before the main.js script is executed #155 + (@lneves12) + * Bugs fixed + + Use var instead of const to ensure js-test succeed #159 + (@echarles) + * Documentation improvements + + add badge for documentation #160 (@RRosio) + +------------------------------------------------------------------- +Sun Oct 9 17:11:52 UTC 2022 - Arun Persaud + +- update to version 0.4.5: + * Bugs fixed + + fix: display the correct about box if jupyter notebook command + is used #156 (@echarles) + +------------------------------------------------------------------- +Sat Oct 1 19:17:58 UTC 2022 - Ben Greiner + +- Remove duplicates workaround + +------------------------------------------------------------------- +Fri Sep 30 15:15:04 UTC 2022 - Arun Persaud + +- specfile: + * jupyter-nbclassic-bundlerextension, + jupyter-nbclassic-extension, jupyter-nbclassic-serverextension + gained the "-nbclassic-" part of the name; updated binary-names for + update-alterantives + +- update to version 0.4.4: + * Enhancements made + + Stop looking in the old IPython directory for nbextensions #153 + (@minrk) + + Handlers under nbclassic if notebook 7 is found #141 (@echarles) + * Bugs fixed + + Fix resource display when redirecting from /notebooks/* #148 + (@echarles) + + Rename duplicate entrypoints #138 (@echarles) + + Point nbclassic at the classic jupyter_notebook_config path #137 + (@Zsailer) + * Maintenance and upkeep improvements + + Updating JS Dependencies #152 (@RRosio) + + Get the notebook version from notebook._version #133 (@echarles) + * Documentation improvements + + Updating documentation for nbclassic #134 (@RRosio) + * Other merged PRs + + UI: About box to display nbclassic instead of notebook #147 + (@echarles) + +------------------------------------------------------------------- +Tue Aug 2 15:59:57 UTC 2022 - Ben Greiner + +- Update to 0.4.3 + * Handle execution errors with empty traceback entries similar to + Lab #126 (@kevin-bates) + * fix some import errors in 0.4 #130 (@minrk) + * fix enable-on-install #127 (@minrk) + * Fix notebook shim version check #129 (@minrk) +- Release 0.4.2 + * Don't shim notebook if notebook<7 is available #123 (@echarles) + * Relax assert for IPythonHandler in case of notebook<6 #122 + (@echarles) + * Fix executable name in desktop file #119 (@antonio-rojas) +- Release 0.4.0 + * Shim to support the notebook extensions #113 (@echarles) + * nbclassic to use its own static assets #96 (@echarles) + * Add the notebook 6.4.x tests, docs and companion files (with + git history) #94 (@echarles) + * Add the notebook static assets (with git history) #93 + (@echarles) +- Use the pure wheel for install which has the JS stuff. +- Override notebook entrypoints with higer priority libalternatives + configurations gh#jupyter/notebook#6501 +- Test in multibuild for all the dependencies. Stay with nbclassic + tests only, not the notebook tests further down in the tree. + +------------------------------------------------------------------- +Sun Jun 5 17:18:58 UTC 2022 - Ben Greiner + +- Update to 0.3.7 + * Clean up packaging and CI #91 (@blink1073) +- Release 0.3.6 + * Depend on notebook_shim package for server-side shim layer #88 + (@Zsailer) + +------------------------------------------------------------------- +Thu Feb 17 16:37:03 UTC 2022 - Arun Persaud + +- specfile: + * update copyright year + +- update to version 0.3.5: + * Bugs fixed + + ensure extension name is passed to TerminalHandler #79 (@minrk) + * Maintenance and upkeep improvements + + Clean up downstream tests #82 (@blink1073) + + Enforce labels on PRs #80 (@blink1073) + +------------------------------------------------------------------- +Sun Nov 21 09:15:13 UTC 2021 - Ben Greiner + +- Accomodate moved config to distconfig + +------------------------------------------------------------------- +Sun Nov 14 15:53:25 UTC 2021 - Ben Greiner + +- Update to 0.3.4 + * Monkeypatch IPythonHandler to find nbclassic's jinja templates + #77 (@Zsailer) + * Run JupyterLab browser tests as downstream tests #76 (@Zsailer) + * add check-release workflow #75 (@Zsailer) +- Release 0.3.3 + * Use Jupyter Packaging and other cleanup #68 (@Zsailer) + * add missing lines to manifest #72 (@Zsailer) + * add changelog comments for jupyter-releaser #70 (@Zsailer) + * add setup.py back to enable jupyter_releaser #69 (@Zsailer) + * Add workflow to test JupyterLab #67 (@Zsailer) + * Expose classic notebook's static assets from their original + endpoints #63 (@Zsailer) +- Release 0.32.2 + * ExtensionManager's link_extension changed call signature #64 + (@athornton) + * Fix link to the Jupyter Notebook repo in README #62 + (@saiwing-yeung) +- Reenable libalternatives + +------------------------------------------------------------------- +Thu Oct 28 19:14:07 UTC 2021 - Ben Greiner + +- revert the usage of libalternatives due to + gh#openSUSE/libalternatives#11 + +------------------------------------------------------------------- +Wed Sep 8 10:31:31 UTC 2021 - Stefan Schubert + +- Use libalternatives instead of update-alternatives. + +------------------------------------------------------------------- +Mon Aug 16 12:20:06 UTC 2021 - Ben Greiner + +- reenable python36 build (uses python-ipykernel5 package) + +------------------------------------------------------------------- +Fri Jul 23 08:15:54 UTC 2021 - Ben Greiner + +- Update to version 0.3.1 + * bump jupyter_server dependency to 1.8 #58 (@Zsailer) +- Release 0.3.0 + * Support creating terminal with a given name. #52 (@cailiang9) + * BUG fix: correct redirection to {base_url}/edit/*. #55 + (@cailiang9) + * patch server's sorted_extensions to prioritize nbclassic #56 + (@Zsailer) +- Release 0.2.8 + * Remove forced sorting of extensions #49 (@minrk) + * Add Changelog #48 (@blink1073) +- Release 0.2.7 + * Fix deprecation warning when importing + jupyter_server.transutils._ #47 (@martinRenou) + * Add a redirect handler to open non-notebook files from the cli + #45 (@jtpio) + * Add default_url trait to NotebookApp #42 (@afshin) + * Fix GitHub Actions badge #40 (@jtpio) + * Run jupyter nbclassic -h on CI #29 (@jtpio) +- Skip python2 and python36 (no ipykernel 6 on python36) + +------------------------------------------------------------------- +Tue Feb 2 21:09:01 UTC 2021 - Ben Greiner + +- initial specfile for 0.2.6 +- required by jupyterlab 3 diff --git a/python-nbclassic.spec b/python-nbclassic.spec new file mode 100644 index 0000000..4cf62b9 --- /dev/null +++ b/python-nbclassic.spec @@ -0,0 +1,176 @@ +# +# spec file for package python-nbclassic +# +# Copyright (c) 2024 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/ +# + + +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "test" +%define psuffix -test +%bcond_without test +%else +%define psuffix %{nil} +%bcond_with test +%endif +%define skip_python39 1 +# this conditional is used in the python-rpm-macros, but `osc build --without libalternatives` won't work +%bcond_without libalternatives +# 1.1.0 gets abbreviated by pythondistdeps +%define shortversion 1.1 +Name: python-nbclassic%{psuffix} +Version: 1.1.0 +Release: 0 +Summary: Jupyter Notebook as a Jupyter Server Extension +License: BSD-3-Clause +URL: https://github.com/jupyterlab/nbclassic +# The github archive has the nbclassic tests +Source0: https://github.com/jupyterlab/nbclassic/archive/v%{version}.tar.gz#/nbclassic-%{version}-gh.tar.gz +Source1: node_modules.tar.xz +Source2: create_node_modules.sh +BuildRequires: %{python_module Babel} +BuildRequires: %{python_module base >= 3.7} +BuildRequires: %{python_module jupyter-packaging} +BuildRequires: %{python_module jupyter-server} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module wheel} +BuildRequires: fdupes +BuildRequires: hicolor-icon-theme +BuildRequires: jupyter-rpm-macros +BuildRequires: nodejs-common +BuildRequires: npm-default +BuildRequires: python-rpm-macros >= 20210929 +BuildRequires: update-desktop-files +Requires: jupyter-nbclassic = %{version} +Requires: python-Jinja2 +Requires: python-Send2Trash >= 1.8.0 +Requires: python-argon2-cffi +Requires: python-ipykernel +Requires: python-ipython_genutils +Requires: python-jupyter-client >= 6.1.1 +Requires: python-jupyter-core >= 4.6.1 +Requires: python-nbconvert >= 5 +Requires: python-nbformat +Requires: python-nest-asyncio >= 1.5 +Requires: python-notebook-shim >= 0.2.3 +Requires: python-prometheus-client +Requires: python-pyzmq >= 17 +Requires: python-terminado >= 0.8.3 +Requires: python-tornado >= 6.1 +Requires: python-traitlets >= 4.2.1 +BuildArch: noarch +%if %{with libalternatives} +BuildRequires: alts +Requires: alts +%else +BuildRequires: this-specfile-is-not-functional-without-libalternatives +%endif +%if %{with test} +BuildRequires: %{python_module nbclassic = %{version}} +BuildRequires: %{python_module pytest-console-scripts} +BuildRequires: %{python_module pytest-jupyter} +BuildRequires: %{python_module pytest-tornasync} +BuildRequires: %{python_module pytest} +%endif +%python_subpackages + +%description +NBClassic runs the Jupyter Notebook frontend on the Jupyter Server backend. + +This project prepares for a future where JupyterLab and other frontends switch +to Jupyter Server for their Python Web application backend. Using this package, +users can launch Jupyter Notebook, JupyterLab and other frontends side-by-side +on top of the new Python server backend. + +%package -n jupyter-nbclassic +Summary: Jupyter Notebook as a Jupyter Server Extension +# Any flavor is okay, but suggest the primary one for automatic zypper choice -- boo#1214354 +Requires: python3dist(nbclassic) = %{shortversion} +Suggests: python3-nbclassic + +%description -n jupyter-nbclassic +NBClassic runs the Jupyter Notebook frontend on the Jupyter Server backend. + +This project prepares for a future where JupyterLab and other frontends switch +to Jupyter Server for their Python Web application backend. Using this package, +users can launch Jupyter Notebook, JupyterLab and other frontends side-by-side +on top of the new Python server backend. + +This package contains the jupyterlab server configuration and desktop files + +%prep +%autosetup -p1 -n nbclassic-%{version} -a1 +python3 setup.py js css + +%build +%pyproject_wheel + +%if !%{with test} +%install +%pyproject_install +%python_clone -a %{buildroot}%{_bindir}/jupyter-nbclassic +%python_clone -a %{buildroot}%{_bindir}/jupyter-nbclassic-bundlerextension +%python_clone -a %{buildroot}%{_bindir}/jupyter-nbclassic-extension +%python_clone -a %{buildroot}%{_bindir}/jupyter-nbclassic-serverextension +%{python_expand # +rm %{buildroot}%{$python_sitelib}/nbclassic/bundler/tests/resources/subdir/subsubdir/.gitkeep + +%fdupes %{buildroot}%{$python_sitelib} + +# the locale structure is not compatible with (python_)find_lang. Roll our own. +echo '%%dir %{$python_sitelib}/nbclassic' > %{$python_prefix}-nbclassic.files +find %{buildroot}%{$python_sitelib}/nbclassic -mindepth 1 -maxdepth 1 -not -name i18n > non-lang-files +sed 's:%{buildroot}::' >> %{$python_prefix}-nbclassic.files < non-lang-files +find %{buildroot}%{$python_sitelib}/nbclassic/i18n -type f -o -type l > lang-files +sed -E ' + s:%{buildroot}:: + s:(.*/nbclassic/i18n/)([^/_]+)(.*(mo|po|json)$):%lang(\2) \1\2\3: +' >> %{$python_prefix}-nbclassic.files < lang-files +find %{buildroot}%{$python_sitelib}/nbclassic/i18n -type d > lang-dirs +sed -E ' + s:%{buildroot}:: + s:(.*):%%dir \1: +' >> %{$python_prefix}-nbclassic.files < lang-dirs +} + +%suse_update_desktop_file jupyter-nbclassic +%endif + +%pre +# Remove old update-alternatives entry for transition to libalternatives +%python_libalternatives_reset_alternative jupyter-nbclassic + +%if %{with test} +%check +%pytest +%endif + +%if !%{with test} +%files %{python_files} -f %{python_prefix}-nbclassic.files +%doc README.md +%license LICENSE +%python_alternative %{_bindir}/jupyter-nbclassic +%python_alternative %{_bindir}/jupyter-nbclassic-bundlerextension +%python_alternative %{_bindir}/jupyter-nbclassic-extension +%python_alternative %{_bindir}/jupyter-nbclassic-serverextension +%{python_sitelib}/nbclassic-%{version}*-info + +%files -n jupyter-nbclassic +%license LICENSE +%{_jupyter_config} %{_jupyter_server_confdir}/nbclassic.json +%{_datadir}/icons/hicolor/*/apps/nbclassic.svg +%{_datadir}/applications/jupyter-nbclassic.desktop +%endif + +%changelog