[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1107769: marked as done (unblock: jupyterlab/4.0.11+ds1+~cs11.25.27-7)



Your message dated Wed, 25 Jun 2025 12:07:56 +0000
with message-id <E1uUOuy-00DrtC-2f@respighi.debian.org>
and subject line unblock jupyterlab
has caused the Debian Bug report #1107769,
regarding unblock: jupyterlab/4.0.11+ds1+~cs11.25.27-7
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
1107769: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1107769
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
X-Debbugs-Cc: jupyterlab@packages.debian.org
Control: affects -1 + src:jupyterlab
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package jupyterlab

I prepare a working version of jupyterlab.


[ Reason ]

The -6 version is not working at all due to an issue in the packaging, which was fixed by Jeremy-lal #1102558

I also fixed a few remaining issue, wchih prevented jupyterlab from being well integrated.
I switch to the upstream build system, instead of the Debian home made setuptools conf. This way all expected files are installed.

[ Impact ]

A non working jupyterlab. 5when starting the application the browser present a blanck screen due to #1102558.

[ Tests ]

I installed this version in our institut synchrotron-soleil, and I can confirme thaht it works.

To test you can install jupyterlab and run this command

jupyter-lab

it should open a browser and present a working jupyter lab application.

[ Risks ]

not a great risque, since the current version is non focntionnal.

[ Checklist ]
  [X] all changes are documented in the d/changelog
  [X] I reviewed all changes and I approve them
  [X] attach debdiff against the package in testing

[ Other info ]

Sorry I updated the patches series with gbp-pq and it seems that it changed one patch metadata.

unblock jupyterlab/4.0.11+ds1+~cs11.25.27-7
diff -Nru jupyterlab-4.0.11+ds1+~cs11.25.27/debian/changelog jupyterlab-4.0.11+ds1+~cs11.25.27/debian/changelog
--- jupyterlab-4.0.11+ds1+~cs11.25.27/debian/changelog	2025-04-02 18:46:10.000000000 +0200
+++ jupyterlab-4.0.11+ds1+~cs11.25.27/debian/changelog	2025-06-05 14:45:20.000000000 +0200
@@ -1,3 +1,25 @@
+jupyterlab (4.0.11+ds1+~cs11.25.27-7) unstable; urgency=medium
+
+  * Team upload
+  [ Jérémy Lal ]
+  * Fix build of bundled browser module (Closes: #1102558).
+    Adds a webpack plugin to support modules prefixed by "node:".
+
+  [ Picca Frédéric-Emmanuel ]
+  * switch to the upstream (hatchling) build system.
+    - now jupyterlab is well integrated with jupyterhub
+    - do not install examples at the wrong place.
+    - the Python dist-info are right.
+  * Bug fix: "missing four files from upstream distribution", thanks to
+    Julian Gilbey (Closes: #1101429).
+  * Bug fix: "advertises Python package version as 0.0.0", thanks to
+    Julian Gilbey (Closes: #1086709).
+  * Bug fix: "installs examples into dist-packages", thanks to Piotr
+    Ożarowski (Closes: #1102934).
+  * d/control: B-D on webpack (>= 5.97.1+dfsg1+~cs11.18.27-3~)
+
+ -- Picca Frédéric-Emmanuel <picca@debian.org>  Thu, 05 Jun 2025 14:45:20 +0200
+
 jupyterlab (4.0.11+ds1+~cs11.25.27-6) unstable; urgency=medium
 
   * Declare compliance with policy 4.7.2
diff -Nru jupyterlab-4.0.11+ds1+~cs11.25.27/debian/clean jupyterlab-4.0.11+ds1+~cs11.25.27/debian/clean
--- jupyterlab-4.0.11+ds1+~cs11.25.27/debian/clean	2025-04-02 18:46:10.000000000 +0200
+++ jupyterlab-4.0.11+ds1+~cs11.25.27/debian/clean	1970-01-01 01:00:00.000000000 +0100
@@ -1,29 +0,0 @@
-.pybuild/
-builder/lib/
-buildutils/lib/
-buildutils/*/lib/
-dev_mode/schemas/
-dev_mode/static/
-dev_mode/themes/
-duplicate-package-checker-webpack-plugin/lib/
-galata/extension/lib/
-galata/lib/
-jupyter-ydoc/javascript/lib/
-
-jupyterlab/galata/@jupyterlab/
-jupyterlab/schemas/
-jupyterlab/staging/build/
-jupyterlab/static/
-jupyterlab/style.js
-jupyterlab/themes/
-
-
-packages/nbconvert-css/style/
-packages/*/lib/
-packages/*/tsconfig.tsbuildinfo
-
-node_modules/
-*/node_modules/
-*/*/node_modules/
-*/tsconfig.tsbuildinfo
-*/*/tsconfig.tsbuildinfo
diff -Nru jupyterlab-4.0.11+ds1+~cs11.25.27/debian/control jupyterlab-4.0.11+ds1+~cs11.25.27/debian/control
--- jupyterlab-4.0.11+ds1+~cs11.25.27/debian/control	2025-04-02 18:46:10.000000000 +0200
+++ jupyterlab-4.0.11+ds1+~cs11.25.27/debian/control	2025-06-05 14:45:20.000000000 +0200
@@ -7,7 +7,7 @@
 Testsuite: autopkgtest-pkg-nodejs
 Build-Depends: debhelper-compat (= 13)
  , dh-nodejs (>= 0.15.22~)
- , dh-python (>= 2.20160609~)
+ , dh-sequence-python3
  , node-ajv (>= 8)
  , node-babel7
  , node-codemirror-autocomplete
@@ -110,6 +110,7 @@
  , node-y-codemirror
  , node-y-protocols
  , node-yjs
+ , pybuild-plugin-pyproject
  , python3-all
  , python3-async-lru
  , python3-hatch-jupyter-builder
@@ -117,8 +118,7 @@
  , python3-jupyterlab-server
  , python3-notebook
  , python3-notebook-shim
- , python3-setuptools
- , webpack
+ , webpack (>= 5.97.1+dfsg1+~cs11.18.27-3~)
  , yarnpkg
 Standards-Version: 4.7.2
 Homepage: https://github.com/jupyterlab/jupyterlab
diff -Nru jupyterlab-4.0.11+ds1+~cs11.25.27/debian/patches/0001-setuptools-list-packages-to-build.patch jupyterlab-4.0.11+ds1+~cs11.25.27/debian/patches/0001-setuptools-list-packages-to-build.patch
--- jupyterlab-4.0.11+ds1+~cs11.25.27/debian/patches/0001-setuptools-list-packages-to-build.patch	2025-04-02 18:46:10.000000000 +0200
+++ jupyterlab-4.0.11+ds1+~cs11.25.27/debian/patches/0001-setuptools-list-packages-to-build.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,24 +0,0 @@
-From: Roland Mas <roland.mas@entierement.net>
-Date: Wed, 25 Oct 2023 08:01:12 +0200
-Subject: setuptools: list packages to build
-
----
- pyproject.toml | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/pyproject.toml b/pyproject.toml
-index 59c4b56..5862575 100644
---- a/pyproject.toml
-+++ b/pyproject.toml
-@@ -308,3 +308,11 @@ ignore = [
- "packages/services/examples/node/main.py" = ["RUF012"]
- # T201 `print` found
- "scripts/i18n_check.py" = ["T201"]
-+
-+#[tool.setuptools]
-+#packages = ['jupyterlab']
-+
-+[tool.setuptools.packages.find]
-+where = ["."]
-+#include = ["pkg*"]  # alternatively: `exclude = ["additional*"]`
-+#namespaces = false
diff -Nru jupyterlab-4.0.11+ds1+~cs11.25.27/debian/patches/fix-build.patch jupyterlab-4.0.11+ds1+~cs11.25.27/debian/patches/fix-build.patch
--- jupyterlab-4.0.11+ds1+~cs11.25.27/debian/patches/fix-build.patch	2025-04-02 18:46:10.000000000 +0200
+++ jupyterlab-4.0.11+ds1+~cs11.25.27/debian/patches/fix-build.patch	2025-06-05 14:45:20.000000000 +0200
@@ -9,11 +9,9 @@
  dev_mode/webpack.config.js     | 10 +++++-----
  2 files changed, 6 insertions(+), 5 deletions(-)
 
-diff --git a/builder/src/webpack-plugins.ts b/builder/src/webpack-plugins.ts
-index 0c97ce0..5d97394 100644
 --- a/builder/src/webpack-plugins.ts
 +++ b/builder/src/webpack-plugins.ts
-@@ -242,6 +242,7 @@ export namespace WPPlugin {
+@@ -242,6 +242,7 @@
        for (const mod of modules) {
          report.packages.push({
            name: mod.name || '',
@@ -21,11 +19,9 @@
            versionInfo: mod.packageJson.version || '',
            licenseId: mod.licenseId || '',
            extractedText: mod.licenseText || ''
-diff --git a/dev_mode/webpack.config.js b/dev_mode/webpack.config.js
-index 4beb160..70c9ed9 100644
 --- a/dev_mode/webpack.config.js
 +++ b/dev_mode/webpack.config.js
-@@ -9,8 +9,8 @@ const Handlebars = require('handlebars');
+@@ -9,8 +9,8 @@
  const HtmlWebpackPlugin = require('html-webpack-plugin');
  const webpack = require('webpack');
  const merge = require('webpack-merge').default;
@@ -36,7 +32,20 @@
  const baseConfig = require('@jupyterlab/builder/lib/webpack.config.base');
  const { ModuleFederationPlugin } = webpack.container;
  
-@@ -272,9 +272,9 @@ const plugins = [
+@@ -243,7 +243,12 @@
+   shared[pkg].singleton = true;
+ }
+ 
++const nodePrefixReg = /^node:/;
++
+ const plugins = [
++  new webpack.NormalModuleReplacementPlugin(nodePrefixReg, res => {
++    res.request = res.request.replace(nodePrefixReg, '');
++  }),
+   new WPPlugin.NowatchDuplicatePackageCheckerPlugin({
+     verbose: true,
+     exclude(instance) {
+@@ -272,9 +277,9 @@
    })
  ];
  
@@ -49,3 +58,18 @@
  
  module.exports = [
    merge(baseConfig, {
+--- a/jupyterlab/staging/webpack.config.js
++++ b/jupyterlab/staging/webpack.config.js
+@@ -242,7 +242,12 @@
+   shared[pkg].singleton = true;
+ }
+ 
++const nodePrefixReg = /^node:/;
++
+ const plugins = [
++  new webpack.NormalModuleReplacementPlugin(nodePrefixReg, res => {
++    res.request = res.request.replace(nodePrefixReg, '');
++  }),
+   new WPPlugin.NowatchDuplicatePackageCheckerPlugin({
+     verbose: true,
+     exclude(instance) {
diff -Nru jupyterlab-4.0.11+ds1+~cs11.25.27/debian/patches/fix-webpack.patch jupyterlab-4.0.11+ds1+~cs11.25.27/debian/patches/fix-webpack.patch
--- jupyterlab-4.0.11+ds1+~cs11.25.27/debian/patches/fix-webpack.patch	2025-04-02 18:46:10.000000000 +0200
+++ jupyterlab-4.0.11+ds1+~cs11.25.27/debian/patches/fix-webpack.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,30 +0,0 @@
-Description: fix regression in commonjs build
-Author: Yadd <yadd@debian.org>
-Bug-Debian: https://bugs.debian.org/1101851
-Forwarded: not-needed
-Last-Update: 2025-04-02
-
---- a/dev_mode/webpack.prod.minimize.config.js
-+++ b/dev_mode/webpack.prod.minimize.config.js
-@@ -36,6 +36,9 @@
-       })
-     ]
-   },
-+  externals: {
-+    'node:crypto': 'commonjs crypto',
-+  },
-   plugins: [
-     new WPPlugin.JSONLicenseWebpackPlugin({
-       excludedPackageTest: packageName =>
---- a/jupyterlab/staging/webpack.prod.minimize.config.js
-+++ b/jupyterlab/staging/webpack.prod.minimize.config.js
-@@ -37,6 +37,9 @@
-       })
-     ]
-   },
-+  externals: {
-+    'node:crypto': 'commonjs crypto',
-+  },
-   plugins: [
-     new WPPlugin.JSONLicenseWebpackPlugin({
-       excludedPackageTest: packageName =>
diff -Nru jupyterlab-4.0.11+ds1+~cs11.25.27/debian/patches/reproducible.patch jupyterlab-4.0.11+ds1+~cs11.25.27/debian/patches/reproducible.patch
--- jupyterlab-4.0.11+ds1+~cs11.25.27/debian/patches/reproducible.patch	2025-04-02 18:46:10.000000000 +0200
+++ jupyterlab-4.0.11+ds1+~cs11.25.27/debian/patches/reproducible.patch	2025-06-05 14:45:20.000000000 +0200
@@ -44,7 +44,7 @@
      "build:prod:minimize": "webpack --config webpack.prod.minimize.config.js",
 --- a/dev_mode/webpack.config.js
 +++ b/dev_mode/webpack.config.js
-@@ -276,6 +276,7 @@
+@@ -281,6 +281,7 @@
  //  plugins.push(new BundleAnalyzerPlugin());
  //}
  
@@ -52,7 +52,7 @@
  module.exports = [
    merge(baseConfig, {
      mode: 'development',
-@@ -285,7 +286,7 @@
+@@ -290,7 +291,7 @@
      output: {
        path: path.resolve(buildDir),
        publicPath: '{{page_config.fullStaticUrl}}/',
@@ -113,7 +113,7 @@
      "build:prod:minimize": "webpack --config webpack.prod.minimize.config.js",
 --- a/jupyterlab/staging/webpack.config.js
 +++ b/jupyterlab/staging/webpack.config.js
-@@ -271,6 +271,7 @@
+@@ -276,6 +276,7 @@
    })
  ];
  
@@ -121,7 +121,7 @@
  module.exports = [
    merge(baseConfig, {
      mode: 'development',
-@@ -280,7 +281,7 @@
+@@ -285,7 +286,7 @@
      output: {
        path: path.resolve(buildDir),
        publicPath: '{{page_config.fullStaticUrl}}/',
diff -Nru jupyterlab-4.0.11+ds1+~cs11.25.27/debian/patches/series jupyterlab-4.0.11+ds1+~cs11.25.27/debian/patches/series
--- jupyterlab-4.0.11+ds1+~cs11.25.27/debian/patches/series	2025-04-02 18:46:10.000000000 +0200
+++ jupyterlab-4.0.11+ds1+~cs11.25.27/debian/patches/series	2025-06-05 14:45:20.000000000 +0200
@@ -1,4 +1,3 @@
-0001-setuptools-list-packages-to-build.patch
 0002-drop-useless-and-unavailable-plugins.patch
 0003-Use-system-provided-yarn.js.patch
 fix-package-list.patch
@@ -11,4 +10,3 @@
 fix-babel-config.patch
 reproducible.patch
 CVE-2024-43805.patch
-fix-webpack.patch
diff -Nru jupyterlab-4.0.11+ds1+~cs11.25.27/debian/rules jupyterlab-4.0.11+ds1+~cs11.25.27/debian/rules
--- jupyterlab-4.0.11+ds1+~cs11.25.27/debian/rules	2025-04-02 18:46:10.000000000 +0200
+++ jupyterlab-4.0.11+ds1+~cs11.25.27/debian/rules	2025-06-05 14:45:20.000000000 +0200
@@ -15,53 +15,56 @@
 export NODE_ENV=production
 
 %:
-	dh $@ --with python3 --buildsystem=pybuild
+	dh $@
 
-execute_after_dh_auto_configure:
+override_dh_auto_configure:
 	dh_auto_configure --buildsystem=nodejs
+	dh_auto_configure --buildsystem=pybuild
 
-execute_after_dh_auto_build:
+override_dh_auto_build:
 	# Replace html-loader preprocessing
 	grep -lr '<%= require(.html-loader'|./debian/html-loader.pl
 	# Update build links
 	ln -s ../../packages/fileeditor-extension node_modules/@jupyterlab/ || true
 	# Build duplicate-package-checker-webpack-plugin
 	cd duplicate-package-checker-webpack-plugin && sh -ex ../debian/nodejs/duplicate-package-checker-webpack-plugin/build
+
 	# Build @jupyterlab/* libraries
+	# activating the next line
+	# dh_auto_build --buildsystem=nodejs
+	# produce this error during the build
+	# dh_auto_build: warning: Max loop command exceed, aborting
+	# dh_auto_build: warning: Max loop command exceed, aborting
+	# instead call directly the nodejs build script
 	sh -ex debian/nodejs/build
-	cd jupyterlab/staging && \
-		webpack --config webpack.prod.minimize.config.js
 
-execute_after_dh_auto_install:
-	# Install Node.js libraries
+	dh_auto_build --buildsystem=pybuild
+
+override_dh_auto_install:
 	dh_auto_install --buildsystem=nodejs
+	dh_auto_install --buildsystem=pybuild
+
 
 execute_after_dh_install:
-	mkdir -p $(JUPYTERLAB_DIR)
-	for i in $(shell py3versions -s) ; do \
-		ln -s ../../../python3/dist-packages/jupyterlab/staging \
-			../../../python3/dist-packages/jupyterlab/node-version-check.js \
-		 debian/jupyterlab/usr/lib/$$i/dist-packages/jupyterlab/ || true; \
-		cp -f jupyterlab/staging/yarn.js \
-			debian/jupyterlab/usr/lib/$$i/dist-packages/jupyterlab/staging/; \
-	done
-	set -e ; TMPDIR=$$(mktemp -d) ; \
-		HOME=$$TMPDIR PYTHONPATH=$(CURDIR)/debian/jupyterlab/usr/lib/python$(PYVERS)/dist-packages/ \
-		 debian/jupyterlab/usr/bin/jupyter-lab build ; \
-		rm -r $$TMPDIR/
-	set -e; for i in $(BUILD_EXTENSIONS) ; do \
-		echo Building extension $$i ; \
-		TMPDIR=$$(mktemp -d) ; \
-		HOME=$$TMPDIR \
-		PATH=`pwd`/debian/jupyterlab/usr/bin/:$$PATH \
-		PYTHONPATH=$(CURDIR)/debian/jupyterlab/usr/lib/python$(PYVERS)/dist-packages/ \
-		 debian/jupyterlab/usr/bin/jupyter-labextension build $$i ; \
-		rm -r $$TMPDIR/ ; \
-	done
-	# Clean temporary files
-	rm -rf `find debian/jupyterlab -name __pycache__ -o -name node_modules`
+	# move /usr/etc files into /etc
+	mv -f debian/jupyterlab/usr/etc debian/jupyterlab/
+
+	# add the missing .js.map files ???
+	cp -f debian/jupyterlab/usr/lib/python3/dist-packages/jupyterlab/staging/build/*.js.map \
+              debian/jupyterlab/usr/share/jupyter/lab/static
+
+	# link instead of copy (to save space)
+	rm -rf /usr/lib/python3/dist-packages/jupyterlab/static
+	dh_link -p jupyterlab /usr/share/jupyter/lab/static /usr/lib/python3/dist-packages/jupyterlab/static
+	rm -rf /usr/lib/python3/dist-packages/jupyterlab/schemas
+	dh_link -p jupyterlab /usr/share/jupyter/lab/schemas /usr/lib/python3/dist-packages/jupyterlab/schemas
+	rm -rf /usr/lib/python3/dist-packages/jupyterlab/themes
+	dh_link -p jupyterlab /usr/share/jupyter/lab/themes /usr/lib/python3/dist-packages/jupyterlab/themes
+
+	# remove unwanted files
 	find debian/jupyterlab -name build_log.json -delete
 	rm -rf debian/jupyterlab/usr/lib/python3/dist-packages/jupyterlab/staging/build
+	rm -rf debian/jupyterlab/usr/lib/python3/dist-packages/jupyterlab/staging/node_modules
 
 override_dh_auto_test:
 	@echo "Tests disabled because of missing depends"

--- End Message ---
--- Begin Message ---
Unblocked jupyterlab.

--- End Message ---

Reply to: