Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build issues with python 3.13 of quodlibet 4.6.0 #4473

Open
hannes101 opened this issue Jan 24, 2024 · 6 comments
Open

Build issues with python 3.13 of quodlibet 4.6.0 #4473

hannes101 opened this issue Jan 24, 2024 · 6 comments

Comments

@hannes101
Copy link

hannes101 commented Jan 24, 2024

Steps to reproduce

During the preparations for fedora 40 there is a mass rebuild to check if the python packages can be built with python 3.13.

There are a couple of issues with quodlibet, which I think can be fixed rather easily.
The details can be found in the following bug report https://bugzilla.redhat.com/show_bug.cgi?id=2259638
`quodlibet fails to build with Python 3.13.03.

+ /usr/bin/pytest -m 'not network'
============================= test session starts ==============================
platform linux -- Python 3.13.0a3, pytest-7.4.3, pluggy-1.3.0
rootdir: /builddir/build/BUILD/quodlibet-4.6.0
configfile: setup.cfg
collected 4561 items / 5 errors / 9 deselected / 1 skipped / 4552 selected

==================================== ERRORS ====================================
_______________ ERROR collecting tests/test_browsers_podcasts.py _______________
ImportError while importing test module '/builddir/build/BUILD/quodlibet-4.6.0/tests/test_browsers_podcasts.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/test_browsers_podcasts.py:9: in <module>
    from quodlibet.browsers.podcasts import Podcasts, AddFeedDialog, Feed
quodlibet/browsers/podcasts.py:17: in <module>
    import feedparser
/usr/lib/python3.13/site-packages/feedparser/__init__.py:28: in <module>
    from .api import parse
/usr/lib/python3.13/site-packages/feedparser/api.py:35: in <module>
    from .encodings import convert_to_utf8
/usr/lib/python3.13/site-packages/feedparser/encodings.py:29: in <module>
    import cgi
E   ModuleNotFoundError: No module named 'cgi'
_________________ ERROR collecting tests/test_qltk_exfalso.py __________________
ImportError while importing test module '/builddir/build/BUILD/quodlibet-4.6.0/tests/test_qltk_exfalso.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/test_qltk_exfalso.py:6: in <module>
    from quodlibet.qltk import exfalsowindow
quodlibet/qltk/exfalsowindow.py:41: in <module>
    from quodlibet.update import UpdateDialog
quodlibet/update.py:22: in <module>
    import feedparser
/usr/lib/python3.13/site-packages/feedparser/__init__.py:28: in <module>
    from .api import parse
/usr/lib/python3.13/site-packages/feedparser/api.py:35: in <module>
    from .encodings import convert_to_utf8
/usr/lib/python3.13/site-packages/feedparser/encodings.py:29: in <module>
    import cgi
E   ModuleNotFoundError: No module named 'cgi'
_____________ ERROR collecting tests/test_qltk_quodlibetwindow.py ______________
ImportError while importing test module '/builddir/build/BUILD/quodlibet-4.6.0/tests/test_qltk_quodlibetwindow.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/test_qltk_quodlibetwindow.py:11: in <module>
    from quodlibet.qltk.quodlibetwindow import QuodLibetWindow, PlaybackErrorDialog
quodlibet/qltk/quodlibetwindow.py:30: in <module>
    from quodlibet.update import UpdateDialog
quodlibet/update.py:22: in <module>
    import feedparser
/usr/lib/python3.13/site-packages/feedparser/__init__.py:28: in <module>
    from .api import parse
/usr/lib/python3.13/site-packages/feedparser/api.py:35: in <module>
    from .encodings import convert_to_utf8
/usr/lib/python3.13/site-packages/feedparser/encodings.py:29: in <module>
    import cgi
E   ModuleNotFoundError: No module named 'cgi'
____________________ ERROR collecting tests/test_update.py _____________________
ImportError while importing test module '/builddir/build/BUILD/quodlibet-4.6.0/tests/test_update.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/test_update.py:8: in <module>
    from quodlibet.update import UpdateDialog
quodlibet/update.py:22: in <module>
    import feedparser
/usr/lib/python3.13/site-packages/feedparser/__init__.py:28: in <module>
    from .api import parse
/usr/lib/python3.13/site-packages/feedparser/api.py:35: in <module>
    from .encodings import convert_to_utf8
/usr/lib/python3.13/site-packages/feedparser/encodings.py:29: in <module>
    import cgi
E   ModuleNotFoundError: No module named 'cgi'
_________________ ERROR collecting tests/plugin/test_prefs.py __________________
ImportError while importing test module '/builddir/build/BUILD/quodlibet-4.6.0/tests/plugin/test_prefs.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/plugin/test_prefs.py:13: in <module>
    from quodlibet.ext._shared.squeezebox.server import SqueezeboxException
quodlibet/ext/_shared/squeezebox/server.py:10: in <module>
    from telnetlib import Telnet
E   ModuleNotFoundError: No module named 'telnetlib'

According to https://docs.python.org/3.13/whatsnew/3.13.html:
PEP 594: Remove the telnetlib module, deprecated in Python 3.11: use the projects telnetlib3 or Exscript instead.
(Contributed by Victor Stinner in gh-104773.)

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/06939269-quodlibet/

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

@hannes101 hannes101 added the bug label Jan 24, 2024
@declension
Copy link
Member

Hmm yeah

feedparser (cgi)

I think we're on a really old version, and I suspect that upstream will have fixed this ages ago, but can check

telnet

Options (not exclusive)

  1. retire that plugin, I can't test it any more either.
  2. Rewrite the telnet stuff using even lower level socket code (etc)
  3. But at least it should catch the import error and fail just the plugin

@declension
Copy link
Member

Looks like the feedparser issue is resolved upstream

@hannes101
Copy link
Author

hannes101 commented Feb 4, 2024

Thanks, will check on updating python3-feedparser in fedora. It currently is at 6.0.10, so should be fixed, when this is updated. Of course this only goes for the feedparser error, the telnet one is still present.
Is this correct that this is the Squeezebox plugin? I am wondering how big the user base for this might still be, given that apparently these were discontinued to be sold in 2012, according to https://en.wikipedia.org/wiki/Squeezebox_(network_music_player)

@declension
Copy link
Member

Is this correct that this is the Squeezebox plugin? I am wondering how big the user base for this might still be, given that apparently these were discontinued to be sold in 2012, according to https://en.wikipedia.org/wiki/Squeezebox_(network_music_player)

Yes. Who knows. I wrote it for myself originally but no longer have that setup. But it's a strong DIY and alternative-hardware (RPi, Chromecast, etc) ecosystem when i last checked so might be nice to keep it alive.

@declension
Copy link
Member

The immediate build issues should be fixed - can we retest @hannes101 ?

@hannes101
Copy link
Author

I also got python-feedparser updated in fedora, so yes I think it should be testable. Will try to build it soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants