Bug 2161525 - Review Request: jupyterlab - JupyterLab computational environment
Summary: Review Request: jupyterlab - JupyterLab computational environment
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Karolina Surma
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 2161519 2161520 2161522
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-01-17 08:04 UTC by Lumír Balhar
Modified: 2023-03-15 13:16 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2023-03-15 13:16:54 UTC
Type: ---
Embargoed:
ksurma: fedora-review+


Attachments (Terms of Use)
The .spec file difference from Copr build 5239303 to 5334341 (963 bytes, patch)
2023-01-27 20:44 UTC, Jakub Kadlčík
no flags Details | Diff
The .spec file difference from Copr build 5334341 to 5363541 (663 bytes, patch)
2023-01-30 14:20 UTC, Jakub Kadlčík
no flags Details | Diff
The .spec file difference from Copr build 5363541 to 5525076 (18.33 KB, patch)
2023-02-14 10:32 UTC, Jakub Kadlčík
no flags Details | Diff
The .spec file difference from Copr build 5525076 to 5579097 (36.13 KB, patch)
2023-02-28 13:39 UTC, Jakub Kadlčík
no flags Details | Diff
The .spec file difference from Copr build 5579097 to 5580050 (1.71 KB, patch)
2023-02-28 18:02 UTC, Jakub Kadlčík
no flags Details | Diff
The .spec file difference from Copr build 5580050 to 5586278 (19.60 KB, patch)
2023-03-02 13:42 UTC, Jakub Kadlčík
no flags Details | Diff

Description Lumír Balhar 2023-01-17 08:04:20 UTC
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/

Comment 1 Jakub Kadlčík 2023-01-17 08:08:51 UTC
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

Comment 3 Jakub Kadlčík 2023-01-27 20:44:28 UTC
Created attachment 1940807 [details]
The .spec file difference from Copr build 5239303 to 5334341

Comment 4 Jakub Kadlčík 2023-01-27 20:44:30 UTC
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

Comment 5 Miro Hrončok 2023-01-30 12:03:03 UTC
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

Comment 6 Lumír Balhar 2023-01-30 14:17:02 UTC
(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

Comment 7 Jakub Kadlčík 2023-01-30 14:20:51 UTC
Created attachment 1941094 [details]
The .spec file difference from Copr build 5334341 to 5363541

Comment 8 Jakub Kadlčík 2023-01-30 14:20:53 UTC
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

Comment 9 Lumír Balhar 2023-02-14 10:16:43 UTC
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

Comment 10 Miro Hrončok 2023-02-14 10:27:22 UTC
WOW.

What is the meaning of @ in the bundled provides?

Comment 11 Jakub Kadlčík 2023-02-14 10:32:29 UTC
Created attachment 1944063 [details]
The .spec file difference from Copr build 5363541 to 5525076

Comment 12 Karolina Surma 2023-02-28 11:45:58 UTC
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

Comment 13 Miro Hrončok 2023-02-28 12:10:11 UTC
If desired, prepending the lines in %{pyproject_files} with %license could be done via a sed -i call.

Comment 14 Lumír Balhar 2023-02-28 13:27:05 UTC
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

Comment 15 Jakub Kadlčík 2023-02-28 13:39:47 UTC
Created attachment 1946927 [details]
The .spec file difference from Copr build 5525076 to 5579097

Comment 16 Karolina Surma 2023-02-28 15:40:38 UTC
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

Comment 17 Lumír Balhar 2023-02-28 16:14:33 UTC
(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.

Comment 18 Karolina Surma 2023-02-28 17:25:53 UTC
A nitpick from the metadata inspection: pyproject.toml contains `pytest-cov` which is detected by macros and pulled as a build-time dependency.

Comment 19 Lumír Balhar 2023-02-28 17:50:59 UTC
(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

Comment 20 Jakub Kadlčík 2023-02-28 18:02:53 UTC
Created attachment 1947015 [details]
The .spec file difference from Copr build 5579097 to 5580050

Comment 21 Lumír Balhar 2023-03-02 13:32:07 UTC
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 …

Comment 22 Jakub Kadlčík 2023-03-02 13:42:43 UTC
Created attachment 1947486 [details]
The .spec file difference from Copr build 5580050 to 5586278

Comment 23 Miro Hrončok 2023-03-02 13:51:30 UTC
> 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.

Comment 25 Miro Hrončok 2023-03-02 15:44:04 UTC
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?

Comment 26 Lumír Balhar 2023-03-03 08:58:47 UTC
(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.

Comment 27 Karolina Surma 2023-03-03 15:19:16 UTC
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)

Comment 28 Fedora Admin user for bugzilla script actions 2023-03-04 21:07:28 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/jupyterlab


Note You need to log in before you can comment on or make changes to this bug.