Bug 2329837

Summary: ipython fails to build with sphinx 8.x: ERROR: Invalid inventory location value `''` in intersphinx_mapping['python'][1].
Product: [Fedora] Fedora Reporter: Tomáš Hrnčiar <thrnciar>
Component: ipythonAssignee: Lumír Balhar <lbalhar>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: epel-packagers-sig, lbalhar, mhroncok, michel, mrunge, orion, python-packagers-sig
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-12-03 06:27:37 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2275375    
Attachments:
Description Flags
This patch should fix the problem. none

Description Tomáš Hrnčiar 2024-12-02 10:12:23 UTC
ipython fails to build with sphinx 8.x in Fedora 42 (currently Rawhide).

The issue detected:
```
ERROR: Invalid inventory location value `''` in intersphinx_mapping['python'][1]. Inventory locations must be non-empty strings or None.
ERROR: Invalid inventory location value `''` in intersphinx_mapping['rpy2'][1]. Inventory locations must be non-empty strings or None.
ERROR: Invalid inventory location value `''` in intersphinx_mapping['jupyterclient'][1]. Inventory locations must be non-empty strings or None.
ERROR: Invalid inventory location value `''` in intersphinx_mapping['jupyter'][1]. Inventory locations must be non-empty strings or None.
ERROR: Invalid inventory location value `''` in intersphinx_mapping['jedi'][1]. Inventory locations must be non-empty strings or None.
ERROR: Invalid inventory location value `''` in intersphinx_mapping['traitlets'][1]. Inventory locations must be non-empty strings or None.
ERROR: Invalid inventory location value `''` in intersphinx_mapping['ipykernel'][1]. Inventory locations must be non-empty strings or None.
ERROR: Invalid inventory location value `''` in intersphinx_mapping['prompt_toolkit'][1]. Inventory locations must be non-empty strings or None.
ERROR: Invalid inventory location value `''` in intersphinx_mapping['ipywidgets'][1]. Inventory locations must be non-empty strings or None.
ERROR: Invalid inventory location value `''` in intersphinx_mapping['ipyparallel'][1]. Inventory locations must be non-empty strings or None.
ERROR: Invalid inventory location value `''` in intersphinx_mapping['pip'][1]. Inventory locations must be non-empty strings or None.

Configuration error:
Invalid `intersphinx_mapping` configuration (11 errors).
```

The intersphinx_mapping error can be easily fixed by adjusting conf.py.
You can take an inspiration from this PR: https://github.com/jupyterlab/jupyterlab/pull/14423

Please work with upstream on this issue, I plan to ship sphinx 8 in two weeks.


For the logs from testing build attempts, see:
https://copr.fedorainfracloud.org/coprs/thrnciar/python-sphinx/package/ipython/

You can test you package in mock running:

$ mock -r fedora-rawhide-x86_64
--addrepo=https://download.copr.fedorainfracloud.org/results/thrnciar/python-sphinx/fedora-rawhide-x86_64/ --no-clean your.src.rpm
$ mock -r fedora-rawhide-x86_64
--addrepo=https://download.copr.fedorainfracloud.org/results/thrnciar/python-sphinx/fedora-rawhide-x86_64/ shell

We'd like to include Sphinx 8 in Fedora 42.
Let us know here if you have any questions. Thank you!

Comment 1 Tomáš Hrnčiar 2024-12-02 10:14:43 UTC
Created attachment 2060789 [details]
This patch should fix the problem.

Comment 2 Lumír Balhar 2024-12-02 14:38:32 UTC
The patch makes Sphinx to search for the file named 'null' so it does not fail but complains about missing file:

loading intersphinx inventory 'jupyterclient' from null ...
WARNING: failed to reach any of the inventories with the following issues:
intersphinx inventory 'null' not fetchable due to <class 'FileNotFoundError'>: [Errno 2] No such file or directory: '/builddir/build/BUILD/ipython-8.30.0-build/ipython-8.30.0/docs/source/null'

Comment 3 Lumír Balhar 2024-12-03 06:27:37 UTC
Fixed in https://src.fedoraproject.org/rpms/ipython/pull-request/83