Bug 2247194 - linkchecker fails to build with Python 3.13: ModuleNotFoundError: No module named 'nntplib' (fixed upstream) + AttributeError: module 'importlib.resources' has no attribute 'path'
Summary: linkchecker fails to build with Python 3.13: ModuleNotFoundError: No module n...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: linkchecker
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Miro Hrončok
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 2247339
Blocks: PYTHON3.13
TreeView+ depends on / blocked
 
Reported: 2023-10-31 08:26 UTC by Karolina Surma
Modified: 2023-11-14 13:57 UTC (History)
7 users (show)

Fixed In Version: linkchecker-10.3.0-2.fc40
Clone Of:
Environment:
Last Closed: 2023-11-14 13:57:35 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github linkchecker linkchecker issues 768 0 None open Python 3.13: AttributeError: module 'importlib.resources' has no attribute 'path' 2023-11-01 00:02:10 UTC

Description Karolina Surma 2023-10-31 08:26:06 UTC
linkchecker fails to build with Python 3.13.0a1.

______________ ERROR collecting tests/checker/test_whitespace.py _______________
ImportError while importing test module '/builddir/build/BUILD/linkchecker-10.2.1/tests/checker/test_whitespace.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib64/python3.13/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
tests/checker/__init__.py:22: in <module>
    import linkcheck.checker
linkcheck/checker/__init__.py:206: in <module>
    from . import (  # noqa: E402
linkcheck/checker/fileurl.py:26: in <module>
    from . import urlbase, get_index_html
linkcheck/checker/urlbase.py:40: in <module>
    from .const import (
linkcheck/checker/const.py:20: in <module>
    import nntplib
E   ModuleNotFoundError: No module named 'nntplib'
=================================== FAILURES ===================================
_______________________ TestLinkchecker.test_linkchecker _______________________
[gw0] linux -- Python 3.13.0 /usr/bin/python3
tests/test_linkchecker.py:40: in test_linkchecker
    run_with_options([option])
tests/test_linkchecker.py:22: in run_with_options
    run_checked([sys.executable, "-m", "linkcheck"] + options)
tests/__init__.py:54: in run_checked
    raise OSError(msg)
E   OSError: Command `['/usr/bin/python3', '-m', 'linkcheck', '-V']' returned non-zero exit status 1
----------------------------- Captured stderr call -----------------------------
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/builddir/build/BUILD/linkchecker-10.2.1/linkcheck/__main__.py", line 1, in <module>
    from .command.linkchecker import linkchecker
  File "/builddir/build/BUILD/linkchecker-10.2.1/linkcheck/command/linkchecker.py", line 28, in <module>
    from .arg_parser import ArgParser
  File "/builddir/build/BUILD/linkchecker-10.2.1/linkcheck/command/arg_parser.py", line 22, in <module>
    from .. import checker, logconf, logger, COMMAND_NAME
  File "/builddir/build/BUILD/linkchecker-10.2.1/linkcheck/checker/__init__.py", line 206, in <module>
    from . import (  # noqa: E402
  File "/builddir/build/BUILD/linkchecker-10.2.1/linkcheck/checker/fileurl.py", line 26, in <module>
    from . import urlbase, get_index_html
  File "/builddir/build/BUILD/linkchecker-10.2.1/linkcheck/checker/urlbase.py", line 40, in <module>
    from .const import (
  File "/builddir/build/BUILD/linkchecker-10.2.1/linkcheck/checker/const.py", line 20, in <module>
    import nntplib
ModuleNotFoundError: No module named 'nntplib'

=========================== short test summary info ============================
SKIPPED [1] tests/__init__.py:74: geoip is not available
SKIPPED [2] tests/__init__.py:74: ClamAV is not available
SKIPPED [3] tests/__init__.py:74: network is not available
SKIPPED [1] tests/__init__.py:74: Windows system is not available
ERROR tests/test_cgi.py
ERROR tests/test_console.py
ERROR tests/test_cookies.py
ERROR tests/test_filenames.py
ERROR tests/test_urlbuild.py
ERROR tests/checker/test_all_parts.py
ERROR tests/checker/test_anchor.py
ERROR tests/checker/test_base.py
ERROR tests/checker/test_bookmarks.py
ERROR tests/checker/test_build_url.py
ERROR tests/checker/test_charsets.py
ERROR tests/checker/test_content_allows_robots.py
ERROR tests/checker/test_error.py
ERROR tests/checker/test_file.py
ERROR tests/checker/test_frames.py
ERROR tests/checker/test_ftp.py
ERROR tests/checker/test_guess_url.py
ERROR tests/checker/test_http.py
ERROR tests/checker/test_http_misc.py
ERROR tests/checker/test_http_redirect.py
ERROR tests/checker/test_http_robots.py
ERROR tests/checker/test_httpbin.py
ERROR tests/checker/test_https.py
ERROR tests/checker/test_https_redirect.py
ERROR tests/checker/test_ignoreerrors.py
ERROR tests/checker/test_internpat.py
ERROR tests/checker/test_loginurl.py
ERROR tests/checker/test_mail_bad.py
ERROR tests/checker/test_mail_good.py
ERROR tests/checker/test_misc.py
ERROR tests/checker/test_news.py
ERROR tests/checker/test_unknown.py
ERROR tests/checker/test_urllen.py
ERROR tests/checker/test_viruscheck.py
ERROR tests/checker/test_whitespace.py
FAILED tests/test_linkchecker.py::TestLinkchecker::test_linkchecker - OSError...
======= 1 failed, 192 passed, 7 skipped, 16 warnings, 35 errors in 3.18s =======


PEP 594: The remaining 19 “dead batteries” have been removed from the standard library: aifc, audioop, cgi, cgitb, chunk, crypt, imghdr, mailcap, msilib, nis, nntplib, ossaudiodev, pipes, sndhdr, spwd, sunau, telnetlib, uu and xdrlib.

https://docs.python.org/3.13/whatsnew/3.13.html

For the build logs, see:
https://copr-be.cloud.fedoraproject.org/results/@python/python3.13/fedora-rawhide-x86_64/06583941-linkchecker/

For all our attempts to build linkchecker with Python 3.13, see:
https://copr.fedorainfracloud.org/coprs/g/python/python3.13/package/linkchecker/

Testing and mass rebuild of packages is happening in copr.
You can follow these instructions to test locally in mock if your package builds with Python 3.13:
https://copr.fedorainfracloud.org/coprs/g/python/python3.13/

Let us know here if you have any questions.

Python 3.13 is planned to be included in Fedora 41.
To make that update smoother, we're building Fedora packages with all pre-releases of Python 3.13.
A build failure prevents us from testing all dependent packages (transitive [Build]Requires),
so if this package is required a lot, it's important for us to get it fixed soon.

We'd appreciate help from the people who know this package best,
but if you don't want to work on this now, let us know so we can try to work around it on our side.

Comment 2 Miro Hrončok 2023-11-01 00:02:11 UTC
Updating to 10.3.0 gives:

=================================== FAILURES ===================================
_______________________ TestLinkchecker.test_linkchecker _______________________
[gw2] linux -- Python 3.13.0 /usr/bin/python3
tests/test_linkchecker.py:40: in test_linkchecker
    run_with_options([option])
tests/test_linkchecker.py:22: in run_with_options
    run_checked([sys.executable, "-m", "linkcheck"] + options)
tests/__init__.py:55: in run_checked
    raise OSError(msg)
E   OSError: Command `['/usr/bin/python3', '-m', 'linkcheck', '-V']' returned non-zero exit status 1
----------------------------- Captured stderr call -----------------------------
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/builddir/build/BUILD/LinkChecker-10.3.0/linkcheck/__main__.py", line 3, in <module>
    linkchecker()
  File "/builddir/build/BUILD/LinkChecker-10.3.0/linkcheck/command/linkchecker.py", line 143, in linkchecker
    config.read(files=files)
  File "/builddir/build/BUILD/LinkChecker-10.3.0/linkcheck/configuration/__init__.py", line 219, in read
    userconf = get_user_config()
               ^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/LinkChecker-10.3.0/linkcheck/configuration/__init__.py", line 388, in get_user_config
    with importlib.resources.path(
         ^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'importlib.resources' has no attribute 'path'


Reported as https://github.com/linkchecker/linkchecker/issues/768

Comment 4 Fedora Update System 2023-11-14 13:56:17 UTC
FEDORA-2023-080b215470 has been submitted as an update to Fedora 40. https://bodhi.fedoraproject.org/updates/FEDORA-2023-080b215470

Comment 5 Fedora Update System 2023-11-14 13:57:35 UTC
FEDORA-2023-080b215470 has been pushed to the Fedora 40 stable repository.
If problem still persists, please make note of it in this bug report.


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