Spec URL: https://lbalhar.fedorapeople.org/python-jupyterlab.spec SRPM URL: https://lbalhar.fedorapeople.org/python-jupyterlab-4.0.0~a32-1.fc37.src.rpm Description: JupyterLab is the next-generation user interface for Project Jupyter offering all the familiar building blocks of the classic Jupyter Notebook (notebook, terminal, text editor, file browser, rich outputs, etc.) in a flexible and powerful user interface. Fedora Account System Username: lbalhar I'm testing this package together with many more in COPR designed to package Jupyterlab and the latest Python notebook into Fedora: https://copr.fedorainfracloud.org/coprs/lbalhar/notebook/builds/
Copr build: https://copr.fedorainfracloud.org/coprs/build/5239303 (failed) Build log: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2161525-python-jupyterlab/fedora-rawhide-x86_64/05239303-python-jupyterlab/builder-live.log.gz Please make sure the package builds successfully at least for Fedora Rawhide. - If the build failed for unrelated reasons (e.g. temporary network unavailability), please ignore it. - If the build failed because of missing BuildRequires, please make sure they are listed in the "Depends On" field --- This comment was created by the fedora-review-service https://github.com/FrostyX/fedora-review-service
Updated to alpha 33. Spec URL: https://lbalhar.fedorapeople.org/python-jupyterlab.spec SRPM URL: https://lbalhar.fedorapeople.org/python-jupyterlab-4.0.0~a33-1.fc37.src.rpm
Created attachment 1940807 [details] The .spec file difference from Copr build 5239303 to 5334341
Copr build: https://copr.fedorainfracloud.org/coprs/build/5334341 (failed) Build log: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2161525-python-jupyterlab/fedora-rawhide-x86_64/05334341-python-jupyterlab/builder-live.log.gz Please make sure the package builds successfully at least for Fedora Rawhide. - If the build failed for unrelated reasons (e.g. temporary network unavailability), please ignore it. - If the build failed because of missing BuildRequires, please make sure they are listed in the "Depends On" field --- This comment was created by the fedora-review-service https://github.com/FrostyX/fedora-review-service
Before the deps are available in rawhide, I've looked at the spec only. This is used 3 times in the spec file: 4.0.0%{prerel} Maybe you might want to define a macro for it. But it's probably fine as it is :/ I suspect that once this goes out of pre-releases, this will be replaced simply with %{version} forever. > BuildRequires: nodejs > BuildRequires: npm This makes me ask: Are there no bundled javascript libraries in this package? > pytest-tornasync will never be available in Fedora Why never? If the comment said "is not available" I would be less curious :D > upstream will switch to pytest-jupyter soon Any links for this that could be added to the spec? > %config(noreplace) %{_sysconfdir}/jupyter/jupyter_notebook_config.d/jupyterlab.json > %config(noreplace) %{_sysconfdir}/jupyter/jupyter_server_config.d/jupyterlab.json Please add Requires: python-jupyter-filesystem
(In reply to Miro Hrončok from comment #5) > Before the deps are available in rawhide, I've looked at the spec only. > > > This is used 3 times in the spec file: 4.0.0%{prerel} > > Maybe you might want to define a macro for it. But it's probably fine as it > is :/ I suspect that once this goes out of pre-releases, this will be > replaced simply with %{version} forever. It will, yes. > > > BuildRequires: nodejs > > BuildRequires: npm > > This makes me ask: Are there no bundled javascript libraries in this package? I don't think so. None of the js files look like a bundled library to me. > > > pytest-tornasync will never be available in Fedora > > Why never? If the comment said "is not available" I would be less curious :D Upstream is dead and pytest-jupyter contains some parts of tornasync now. > > > upstream will switch to pytest-jupyter soon > > Any links for this that could be added to the spec? Link added. > > > %config(noreplace) %{_sysconfdir}/jupyter/jupyter_notebook_config.d/jupyterlab.json > > %config(noreplace) %{_sysconfdir}/jupyter/jupyter_server_config.d/jupyterlab.json > > Please add Requires: python-jupyter-filesystem Fixed. Spec URL: https://lbalhar.fedorapeople.org/python-jupyterlab.spec SRPM URL: https://lbalhar.fedorapeople.org/python-jupyterlab-4.0.0~a33-1.fc37.src.rpm
Created attachment 1941094 [details] The .spec file difference from Copr build 5334341 to 5363541
Copr build: https://copr.fedorainfracloud.org/coprs/build/5363541 (failed) Build log: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2161525-python-jupyterlab/fedora-rawhide-x86_64/05363541-python-jupyterlab/builder-live.log.gz Please make sure the package builds successfully at least for Fedora Rawhide. - If the build failed for unrelated reasons (e.g. temporary network unavailability), please ignore it. - If the build failed because of missing BuildRequires, please make sure they are listed in the "Depends On" field --- This comment was created by the fedora-review-service https://github.com/FrostyX/fedora-review-service
I've fixed License and added all bundled Provides. There are now 303 bundled JS libs. There is only one package right now containing more bundled libs than this one - grafana with 540 bundled libs. Spec URL: https://lbalhar.fedorapeople.org/python-jupyterlab.spec SRPM URL: https://lbalhar.fedorapeople.org/python-jupyterlab-4.0.0~a33-1.fc37.src.rpm
WOW. What is the meaning of @ in the bundled provides?
Created attachment 1944063 [details] The .spec file difference from Copr build 5363541 to 5525076
fedora-review complains about the non-marked license file in jupyterlab/static, there is more of them $ ls | grep 'LICEN[CS]E' 1036.f6c57d1265adca83594e.js.LICENSE.txt 3807.1801a45778a3aa52b8b9.js.LICENSE.txt 3935.200aeb85f6884cbd976d.js.LICENSE.txt 4008.9030f3b9de5aecde1790.js.LICENSE.txt 5096.d02334b201bf65864ddb.js.LICENSE.txt 7294.78897ca348581a9dae29.js.LICENSE.txt 7451.e06be24e1fee9b2e4387.js.LICENSE.txt 911.f79cede096e683d1ea34.js.LICENSE.txt 9747.56b3d4353668e791b7de.js.LICENSE.txt
If desired, prepending the lines in %{pyproject_files} with %license could be done via a sed -i call.
I've added this: # Add %%license to some bundled LICENSE.txt files sed -i "s/\(.*\.LICEN[SC]E\.txt\)/%%license \1/" %{pyproject_files} And the result is: $ rpm -qLp python3-jupyterlab-4.0.0\~a33-1.fc39.noarch.rpm /usr/lib/python3.11/site-packages/jupyterlab-4.0.0a33.dist-info/licenses/LICENSE /usr/lib/python3.11/site-packages/jupyterlab/static/1036.f6c57d1265adca83594e.js.LICENSE.txt /usr/lib/python3.11/site-packages/jupyterlab/static/3807.1801a45778a3aa52b8b9.js.LICENSE.txt /usr/lib/python3.11/site-packages/jupyterlab/static/3935.200aeb85f6884cbd976d.js.LICENSE.txt /usr/lib/python3.11/site-packages/jupyterlab/static/4008.9030f3b9de5aecde1790.js.LICENSE.txt /usr/lib/python3.11/site-packages/jupyterlab/static/5096.d02334b201bf65864ddb.js.LICENSE.txt /usr/lib/python3.11/site-packages/jupyterlab/static/7294.78897ca348581a9dae29.js.LICENSE.txt /usr/lib/python3.11/site-packages/jupyterlab/static/7451.e06be24e1fee9b2e4387.js.LICENSE.txt /usr/lib/python3.11/site-packages/jupyterlab/static/911.f79cede096e683d1ea34.js.LICENSE.txt /usr/lib/python3.11/site-packages/jupyterlab/static/9747.56b3d4353668e791b7de.js.LICENSE.txt Spec URL: https://lbalhar.fedorapeople.org/python-jupyterlab.spec SRPM URL: https://lbalhar.fedorapeople.org/python-jupyterlab-4.0.0~a33-1.fc37.src.rpm
Created attachment 1946927 [details] The .spec file difference from Copr build 5525076 to 5579097
I don't know whether this is required or just the oversensitivity of the fedora-review: - If (and only if) the source package includes the text of the license(s) in its own file, then that file, containing the text of the license(s) for the package is included in %license. Note: License file third-party-licenses.json is not marked as %license See: https://docs.fedoraproject.org/en-US/packaging- guidelines/LicensingGuidelines/#_license_text [?]: Avoid bundling fonts in non-fonts packages. Note: Package contains font files in jupyterlab/static: $ ls | grep -v js 373c04fd2418f5c77eea.eot 3f6d3488cf65374f6f67.woff 79d088064beb3826054f.eot 8ea8791754915a898a31.woff2 9674eb1bd55047179038.svg 9834b82ad26e2a37583d.woff2 a3b9817780214caf01e8.svg af6397503fcefbd61397.ttf be0a084962d8066884f7.svg cb9e9e693192413cde2b.woff cda59d6efffa685830fd.ttf e4299464e7b012968eed.eot e42a88444448ac3d6054.woff2 e8711bbb871afd8e9dea.ttf f9217f66874b0c01cd8c.woff Packaging guidelines are rather short on the matter and it's unclear to me what applies in this case. For example in the Web Assets page there's an explicit ban on WOFF font formats (https://docs.fedoraproject.org/en-US/packaging-guidelines/Web_Assets/). These files don't land in the %{_datadir}/web-assets though. I don't know what to suggest here :(. Also, rpmlint prints out a long list of errors, some of them may be moot, but some look like something to fix. python3-jupyterlab.noarch: E: zero-length /usr/lib/python3.11/site-packages/jupyterlab/themes/@jupyterlab/theme-dark-extension/index.js python3-jupyterlab.noarch: E: zero-length /usr/lib/python3.11/site-packages/jupyterlab/themes/@jupyterlab/theme-light-extension/index.js python3-jupyterlab.noarch: E: zero-length /usr/share/jupyter/lab/themes/@jupyterlab/theme-dark-extension/index.js python3-jupyterlab.noarch: E: zero-length /usr/share/jupyter/lab/themes/@jupyterlab/theme-light-extension/index.js python3-jupyterlab.noarch: E: non-executable-script /usr/lib/python3.11/site-packages/jupyterlab/node-version-check.js 644 /usr/bin/env node python3-jupyterlab.noarch: E: non-executable-script /usr/lib/python3.11/site-packages/jupyterlab/staging/yarn.js 644 /usr/bin/env node python3-jupyterlab.noarch: W: no-manual-page-for-binary jlpm python3-jupyterlab.noarch: W: no-manual-page-for-binary jupyter-lab python3-jupyterlab.noarch: W: no-manual-page-for-binary jupyter-labextension python3-jupyterlab.noarch: W: no-manual-page-for-binary jupyter-labhub python3-jupyterlab.noarch: W: hidden-file-or-dir /usr/lib/python3.11/site-packages/jupyterlab/staging/.yarnrc python3-jupyterlab.noarch: W: files-duplicate /usr/lib/python3.11/site-packages/jupyterlab/tests/mock_packages/interop/consumer/jlab_mock_consumer.py /usr/lib/python3.11/site-packages/jupyterlab/tests/mock_packages/extension/mock_package.py python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/application-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/apputils-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/cell-toolbar-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/codemirror-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/collaboration-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/completer-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/console-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/csvviewer-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/debugger-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/docmanager-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/documentsearch-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/extensionmanager-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/filebrowser-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/fileeditor-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/help-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/htmlviewer-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/hub-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/imageviewer-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/inspector-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/launcher-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/logconsole-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/lsp-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/mainmenu-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/markdownviewer-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/metadataform-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/notebook-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/running-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/settingeditor-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/shortcuts-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/statusbar-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/terminal-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/toc-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/tooltip-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/translation-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/application-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/apputils-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/cell-toolbar-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/codemirror-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/collaboration-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/completer-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/console-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/csvviewer-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/debugger-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/docmanager-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/documentsearch-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/extensionmanager-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/filebrowser-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/fileeditor-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/help-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/htmlviewer-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/hub-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/imageviewer-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/inspector-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/launcher-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/logconsole-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/lsp-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/mainmenu-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/markdownviewer-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/metadataform-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/notebook-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/running-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/settingeditor-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/shortcuts-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/statusbar-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/terminal-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/toc-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/tooltip-extension/package.json.orig python3-jupyterlab.noarch: E: backup-file-in-package /usr/share/jupyter/lab/schemas/@jupyterlab/translation-extension/package.json.orig
(In reply to Karolina Surma from comment #16) > I don't know whether this is required or just the oversensitivity of the > fedora-review: > > - If (and only if) the source package includes the text of the license(s) > in its own file, then that file, containing the text of the license(s) > for the package is included in %license. > Note: License file third-party-licenses.json is not marked as %license > See: https://docs.fedoraproject.org/en-US/packaging- > guidelines/LicensingGuidelines/#_license_text The file jupyterlab/static/third-party-licenses.json contains licenses for bundled packages and those are already mentioned in the License tag in the spec. Do you think that including an 1800-line-long JSON file with some of the licenses on a single line has any additional value? > [?]: Avoid bundling fonts in non-fonts packages. > Note: Package contains font files > > in jupyterlab/static: > > $ ls | grep -v js > 373c04fd2418f5c77eea.eot > 3f6d3488cf65374f6f67.woff > 79d088064beb3826054f.eot > 8ea8791754915a898a31.woff2 > 9674eb1bd55047179038.svg > 9834b82ad26e2a37583d.woff2 > a3b9817780214caf01e8.svg > af6397503fcefbd61397.ttf > be0a084962d8066884f7.svg > cb9e9e693192413cde2b.woff > cda59d6efffa685830fd.ttf > e4299464e7b012968eed.eot > e42a88444448ac3d6054.woff2 > e8711bbb871afd8e9dea.ttf > f9217f66874b0c01cd8c.woff > > Packaging guidelines are rather short on the matter and it's unclear to me > what applies in this case. > For example in the Web Assets page there's an explicit ban on WOFF font > formats > (https://docs.fedoraproject.org/en-US/packaging-guidelines/Web_Assets/). > These files don't land in the %{_datadir}/web-assets though. I don't know > what to suggest here :(. The problem is that those font files are somehow built in a similar way as the other static files so I don't think it would be easy to just remove them, require a package containing the fonts and add a symlink somewhere. I did that in python-nbclassic, see https://src.fedoraproject.org/rpms/python-nbclassic/blob/rawhide/f/python-nbclassic.spec#_112 But I have no idea how to do it here. I can remove the woff fonts and we'll see what happens. > Also, rpmlint prints out a long list of errors, some of them may be moot, > but some look like something to fix. > > python3-jupyterlab.noarch: E: zero-length > /usr/lib/python3.11/site-packages/jupyterlab/themes/@jupyterlab/theme-dark- > extension/index.js > python3-jupyterlab.noarch: E: zero-length > /usr/lib/python3.11/site-packages/jupyterlab/themes/@jupyterlab/theme-light- > extension/index.js > python3-jupyterlab.noarch: E: zero-length > /usr/share/jupyter/lab/themes/@jupyterlab/theme-dark-extension/index.js > python3-jupyterlab.noarch: E: zero-length > /usr/share/jupyter/lab/themes/@jupyterlab/theme-light-extension/index.js > python3-jupyterlab.noarch: E: non-executable-script > /usr/lib/python3.11/site-packages/jupyterlab/node-version-check.js 644 > /usr/bin/env node > python3-jupyterlab.noarch: E: non-executable-script > /usr/lib/python3.11/site-packages/jupyterlab/staging/yarn.js 644 > /usr/bin/env node > python3-jupyterlab.noarch: W: no-manual-page-for-binary jlpm > python3-jupyterlab.noarch: W: no-manual-page-for-binary jupyter-lab > python3-jupyterlab.noarch: W: no-manual-page-for-binary jupyter-labextension > python3-jupyterlab.noarch: W: no-manual-page-for-binary jupyter-labhub > python3-jupyterlab.noarch: W: hidden-file-or-dir > /usr/lib/python3.11/site-packages/jupyterlab/staging/.yarnrc > python3-jupyterlab.noarch: W: files-duplicate > /usr/lib/python3.11/site-packages/jupyterlab/tests/mock_packages/interop/ > consumer/jlab_mock_consumer.py > /usr/lib/python3.11/site-packages/jupyterlab/tests/mock_packages/extension/ > mock_package.py > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/application- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/apputils- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/cell- > toolbar-extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/codemirror- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/ > collaboration-extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/completer- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/console- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/csvviewer- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/debugger- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/docmanager- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/ > documentsearch-extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/ > extensionmanager-extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/filebrowser- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/fileeditor- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/help- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/htmlviewer- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/hub- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/imageviewer- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/inspector- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/launcher- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/logconsole- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/lsp- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/mainmenu- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/ > markdownviewer-extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/ > metadataform-extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/notebook- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/running- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/ > settingeditor-extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/shortcuts- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/statusbar- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/terminal- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/toc- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/tooltip- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/lib/python3.11/site-packages/jupyterlab/schemas/@jupyterlab/translation- > extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/application-extension/package. > json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/apputils-extension/package.json. > orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/cell-toolbar-extension/package. > json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/codemirror-extension/package.json. > orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/collaboration-extension/package. > json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/completer-extension/package.json. > orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/console-extension/package.json. > orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/csvviewer-extension/package.json. > orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/debugger-extension/package.json. > orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/docmanager-extension/package.json. > orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/documentsearch-extension/package. > json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/extensionmanager-extension/ > package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/filebrowser-extension/package. > json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/fileeditor-extension/package.json. > orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/help-extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/htmlviewer-extension/package.json. > orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/hub-extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/imageviewer-extension/package. > json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/inspector-extension/package.json. > orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/launcher-extension/package.json. > orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/logconsole-extension/package.json. > orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/lsp-extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/mainmenu-extension/package.json. > orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/markdownviewer-extension/package. > json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/metadataform-extension/package. > json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/notebook-extension/package.json. > orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/running-extension/package.json. > orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/settingeditor-extension/package. > json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/shortcuts-extension/package.json. > orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/statusbar-extension/package.json. > orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/terminal-extension/package.json. > orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/toc-extension/package.json.orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/tooltip-extension/package.json. > orig > python3-jupyterlab.noarch: E: backup-file-in-package > /usr/share/jupyter/lab/schemas/@jupyterlab/translation-extension/package. > json.orig I can remove all the hidden, empty, and backup files and see what impact it'll have.
A nitpick from the metadata inspection: pyproject.toml contains `pytest-cov` which is detected by macros and pulled as a build-time dependency.
(In reply to Karolina Surma from comment #18) > A nitpick from the metadata inspection: pyproject.toml contains `pytest-cov` > which is detected by macros and pulled as a build-time dependency. Fixed. And after a couple more seds, rms, finds and lns, the result of rpmlint is: python3-jupyterlab.noarch: W: no-manual-page-for-binary jlpm python3-jupyterlab.noarch: W: no-manual-page-for-binary jupyter-lab python3-jupyterlab.noarch: W: no-manual-page-for-binary jupyter-labextension python3-jupyterlab.noarch: W: no-manual-page-for-binary jupyter-labhub ==== 1 packages and 0 specfiles checked; 0 errors, 4 warnings, 0 badness; has taken 0.3 s ==== After some manual testing, it seems that it still works fine. I'll report some of the manual modification to upstream later. Spec URL: https://lbalhar.fedorapeople.org/python-jupyterlab.spec SRPM URL: https://lbalhar.fedorapeople.org/python-jupyterlab-4.0.0~a33-1.fc37.src.rpm
Created attachment 1947015 [details] The .spec file difference from Copr build 5579097 to 5580050
I did an update to alpha 34, checked the licenses, and re-generated the bundled provides. It still builds, installs, and works well. Spec URL: https://lbalhar.fedorapeople.org/python-jupyterlab.spec SRPM URL: https://lbalhar.fedorapeople.org/python-jupyterlab-4.0.0~a34-1.fc37.src.rpm The next generation of notebook will use this package as a library but for users, it's an application. Therefore I'm thinking about renaming the package to jupyterlab. What do you think about it? We have pytest and poetry but python-notebook …
Created attachment 1947486 [details] The .spec file difference from Copr build 5580050 to 5586278
> The next generation of notebook will use this package as a library but for users, it's an application. Agreed. I'd name it jupyterlab and add %py_provides python3-jupyterlab.
Spec URL: https://lbalhar.fedorapeople.org/jupyterlab.spec SRPM URL: https://lbalhar.fedorapeople.org/jupyterlab-4.0.0~a34-1.fc37.src.rpm
I've noticed one thing. %global _description and %descriptinn is rather far away from each other, and the %_description macro is now only used once. Maybe it might be cleaner to drop it and write the text directly into %description?
(In reply to Miro Hrončok from comment #25) > I've noticed one thing. %global _description and %descriptinn is rather far > away from each other, and the %_description macro is now only used once. > Maybe it might be cleaner to drop it and write the text directly into > %description? Fixed.
I installed the package on my Rawhide machine and checked around half of the menu items, no issues spotted. I don't see anything striking in the package metadata, nor the build logs. Things in the specfile are commented around, I find it sufficient. Please raise the uncovered issues with upstream. Package APPROVED. Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated Issues: ======= - Packages MUST NOT have dependencies (either build-time or runtime) on packages named with the unversioned python- prefix unless no properly versioned package exists. Dependencies on Python packages instead MUST use names beginning with python2- or python3- as appropriate. Note: Unversionned Python dependency found. See: https://docs.fedoraproject.org/en-US/packaging- guidelines/Python/#_dependencies That's a new one -- It seems it comes from python-jupyter-filesystem though, so this is not an issue (see Requires below) [?]: Package contains desktop file if it is a GUI application. - Notebook has got one, maybe the Lab could too? (Not a MUST item). [?]: (Possible future enhancement) There's `%{_datadir}/jupyter/lab` in the files -- if other extension packages will use this directory, maybe it'll make sense in to include it into python-jupyter-filesystem. - If (and only if) the source package includes the text of the license(s) in its own file, then that file, containing the text of the license(s) for the package is included in %license. Note: License file third-party-licenses.json is not marked as %license See: https://docs.fedoraproject.org/en-US/packaging- guidelines/LicensingGuidelines/#_license_text Decided that's moot. License texts were marked correctly. ===== MUST items ===== Generic: [x]: Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines. [x]: License field in the package spec file matches the actual license. Note: Checking patched sources after %prep for licenses. Licenses found: "Unknown or generated", "BSD 3-Clause License", "MIT License BSD 3-Clause License", "*No copyright* BSD 3-Clause License", "BSD 3-Clause License [generated file]", "*No copyright* [generated file]", "MIT License", "BSD 0-Clause License", "Apache License 2.0", "*No copyright* Apache License 2.0". 555 files have unknown license. Detailed output of licensecheck in /home/ksurma/tmp/2161525-jupyterlab/licensecheck.txt [x]: If the package is under multiple licenses, the licensing breakdown must be documented in the spec. [x]: Package contains no bundled libraries without FPC exception. [x]: Changelog in prescribed format. [x]: Sources contain only permissible code or content. [?]: Package contains desktop file if it is a GUI application. - Notebook has got one, maybe the Lab could too? [-]: Development files must be in a -devel package [x]: Package uses nothing in %doc for runtime. [x]: Package consistently uses macros (instead of hard-coded directory names). [x]: Package is named according to the Package Naming Guidelines. [x]: Package does not generate any conflict. [x]: Package obeys FHS, except libexecdir and /usr/target. [-]: If the package is a rename of another package, proper Obsoletes and Provides are present. [x]: Requires correct, justified where necessary. [x]: Spec file is legible and written in American English. [-]: Package contains systemd file(s) if in need. [x]: Package is not known to require an ExcludeArch tag. [x]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 20480 bytes in 1 files. [x]: Package complies to the Packaging Guidelines [x]: Package successfully compiles and builds into binary rpms on at least one supported primary architecture. [x]: Package installs properly. [x]: Rpmlint is run on all rpms the build produces. Note: There are rpmlint messages (see attachment). [x]: Package requires other packages for directories it uses. [x]: Package must own all directories that it creates. [x]: Package does not own files or directories owned by other packages. [x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT [x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. [x]: %config files are marked noreplace or the reason is justified. [x]: Macros in Summary, %description expandable at SRPM build time. [x]: Dist tag is present. [x]: Package does not contain duplicates in %files. [x]: Permissions on files are set properly. [x]: Package must not depend on deprecated() packages. [x]: Package use %makeinstall only when make install DESTDIR=... doesn't work. [x]: Package is named using only allowed ASCII characters. [x]: No %config files under /usr. [x]: Package does not use a name that already exists. [x]: Package is not relocatable. [x]: Sources used to build the package match the upstream source, as provided in the spec URL. [x]: Spec file name must match the spec package %{name}, in the format %{name}.spec. [x]: File names are valid UTF-8. [x]: Packages must not store files under /srv, /opt or /usr/local Python: [x]: Python eggs must not download any dependencies during the build process. [-]: A package which is used by another package via an egg interface should provide egg info. [x]: Package meets the Packaging Guidelines::Python [x]: Package contains BR: python2-devel or python3-devel [x]: Python packages must not contain %{pythonX_site(lib|arch)}/* in %files [x]: Binary eggs must be removed in %prep ===== SHOULD items ===== Generic: [x]: Avoid bundling fonts in non-fonts packages. Note: Package contains font files - it's not a trivial task in this package [-]: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. [x]: Final provides and requires are sane (see attachments). [x]: Package functions as described. [x]: Latest version is packaged. [x]: Package does not include license text files separate from upstream. [-]: Sources are verified with gpgverify first in %prep if upstream publishes signatures. Note: gpgverify is not used. [x]: Package should compile and build into binary rpms on all supported architectures. [x]: %check is present and all tests pass. [?]: Packages should try to preserve timestamps of original installed files. [x]: Reviewer should test that the package builds in mock. [x]: Buildroot is not present [x]: Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) [x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: Sources can be downloaded from URI in Source: tag [x]: SourceX is a working URL. [x]: Spec use %global instead of %define unless justified. ===== EXTRA items ===== Generic: [x]: Rpmlint is run on all installed packages. Note: There are rpmlint messages (see attachment). [x]: Spec file according to URL is the same as in SRPM. Rpmlint ------- Checking: jupyterlab-4.0.0~a34-1.fc39.noarch.rpm jupyterlab-4.0.0~a34-1.fc39.src.rpm ================================================ rpmlint session starts =============================================== rpmlint: 2.4.0 configuration: /usr/lib/python3.11/site-packages/rpmlint/configdefaults.toml /etc/xdg/rpmlint/fedora-legacy-licenses.toml /etc/xdg/rpmlint/fedora-spdx-licenses.toml /etc/xdg/rpmlint/fedora.toml /etc/xdg/rpmlint/scoring.toml /etc/xdg/rpmlint/users-groups.toml /etc/xdg/rpmlint/warn-on-functions.toml rpmlintrc: [PosixPath('/tmp/tmpgpzzk9ut')] checks: 31, packages: 2 jupyterlab.noarch: W: no-manual-page-for-binary jlpm jupyterlab.noarch: W: no-manual-page-for-binary jupyter-lab jupyterlab.noarch: W: no-manual-page-for-binary jupyter-labextension jupyterlab.noarch: W: no-manual-page-for-binary jupyter-labhub jupyterlab.noarch: W: name-repeated-in-summary JupyterLab jupyterlab.src: W: name-repeated-in-summary JupyterLab ================= 2 packages and 0 specfiles checked; 0 errors, 6 warnings, 0 badness; has taken 1.5 s ================ Requires -------- jupyterlab (rpmlib, GLIBC filtered): (python3.11dist(jupyter-server) < 3~~ with python3.11dist(jupyter-server) >= 2.0.1) (python3.11dist(jupyterlab-server) < 3~~ with python3.11dist(jupyterlab-server) >= 2.19) /usr/bin/python3 config(jupyterlab) python(abi) python-jupyter-filesystem python3.11dist(async-lru) python3.11dist(ipykernel) python3.11dist(jinja2) python3.11dist(jupyter-core) python3.11dist(jupyter-lsp) python3.11dist(notebook-shim) python3.11dist(packaging) python3.11dist(tornado) python3.11dist(traitlets)
The Pagure repository was created at https://src.fedoraproject.org/rpms/jupyterlab