diff -Nru quodlibet-4.4.0/debian/changelog quodlibet-4.4.0/debian/changelog --- quodlibet-4.4.0/debian/changelog 2021-08-21 23:27:47.000000000 +0000 +++ quodlibet-4.4.0/debian/changelog 2022-05-07 10:32:15.000000000 +0000 @@ -1,3 +1,10 @@ +quodlibet (4.4.0-2ubuntu0.1) jammy; urgency=medium + + * Added python-3.10.patch, fixing compatibility with Python 3.10. + Cherry-picked from upstream release 4.5.0. (LP: #1964791) + + -- Maia Everett Sat, 07 May 2022 17:32:15 +0700 + quodlibet (4.4.0-2) unstable; urgency=medium * Team upload diff -Nru quodlibet-4.4.0/debian/control quodlibet-4.4.0/debian/control --- quodlibet-4.4.0/debian/control 2021-08-21 23:24:05.000000000 +0000 +++ quodlibet-4.4.0/debian/control 2022-05-07 10:32:15.000000000 +0000 @@ -1,7 +1,8 @@ Source: quodlibet Section: sound Priority: optional -Maintainer: Debian Python Team +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Debian Python Team Uploaders: Ondřej Kuzník , Christine Spang , Tristan Seligmann diff -Nru quodlibet-4.4.0/debian/patches/python-3.10.patch quodlibet-4.4.0/debian/patches/python-3.10.patch --- quodlibet-4.4.0/debian/patches/python-3.10.patch 1970-01-01 00:00:00.000000000 +0000 +++ quodlibet-4.4.0/debian/patches/python-3.10.patch 2022-05-07 10:32:15.000000000 +0000 @@ -0,0 +1,128 @@ +Description: Compatibility with Python 3.10 +Author: luk1337 +Applied-Upstream: 4.5.0, https://github.com/quodlibet/quodlibet/pull/3800/files +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/quodlibet/+bug/1964791 +Index: quodlibet-4.4.0/quodlibet/packages/raven/context.py +=================================================================== +--- quodlibet-4.4.0.orig/quodlibet/packages/raven/context.py ++++ quodlibet-4.4.0/quodlibet/packages/raven/context.py +@@ -7,7 +7,10 @@ raven.context + """ + from __future__ import absolute_import + +-from collections import Mapping, Iterable ++try: ++ from collections import abc ++except ImportError: ++ import collections as abc # type: ignore + from threading import local + from weakref import ref as weakref + +@@ -30,7 +33,7 @@ def get_active_contexts(): + return [] + + +-class Context(local, Mapping, Iterable): ++class Context(local, abc.Mapping, abc.Iterable): + """ + Stores context until cleared. + +Index: quodlibet-4.4.0/quodlibet/player/gstbe/util.py +=================================================================== +--- quodlibet-4.4.0.orig/quodlibet/player/gstbe/util.py ++++ quodlibet-4.4.0/quodlibet/player/gstbe/util.py +@@ -6,7 +6,10 @@ + # the Free Software Foundation; either version 2 of the License, or + # (at your option) any later version. + +-import collections ++try: ++ from collections import abc ++except ImportError: ++ import collections as abc # type: ignore + import subprocess + from enum import Enum + from typing import Iterable, Tuple +@@ -183,7 +186,7 @@ def GStreamerSink(pipeline_desc): + return pipe, pipeline_desc + + +-class TagListWrapper(collections.Mapping): ++class TagListWrapper(abc.Mapping): + def __init__(self, taglist, merge=False): + self._list = taglist + self._merge = merge +Index: quodlibet-4.4.0/quodlibet/util/collection.py +=================================================================== +--- quodlibet-4.4.0.orig/quodlibet/util/collection.py ++++ quodlibet-4.4.0/quodlibet/util/collection.py +@@ -24,7 +24,10 @@ from quodlibet.formats._audio import (TA + AudioFile) + from quodlibet.formats._audio import PEOPLE as _PEOPLE + from quodlibet.pattern import Pattern +-from collections import Iterable ++try: ++ from collections import abc ++except ImportError: ++ import collections as abc # type: ignore + + from quodlibet.util import is_windows + from quodlibet.util.path import escape_filename, unescape_filename, limit_path +@@ -332,7 +335,7 @@ class Album(Collection): + + @hashable + @total_ordering +-class Playlist(Collection, Iterable): ++class Playlist(Collection, abc.Iterable): + """A Playlist is a `Collection` that has list-like features + Songs can appear more than once. + """ +@@ -340,7 +343,7 @@ class Playlist(Collection, Iterable): + __instances: Set["Playlist"] = set() + + @classmethod +- def playlists_featuring(cls, song: AudioFile) -> Iterable[Playlist]: ++ def playlists_featuring(cls, song: AudioFile) -> abc.Iterable[Playlist]: + """Returns a generator yielding playlists in which this song appears""" + return (pl for pl in cls.__instances if song in pl._list) + +Index: quodlibet-4.4.0/quodlibet/util/collections.py +=================================================================== +--- quodlibet-4.4.0.orig/quodlibet/util/collections.py ++++ quodlibet-4.4.0/quodlibet/util/collections.py +@@ -9,7 +9,11 @@ + + from __future__ import absolute_import + +-from collections import MutableSequence, defaultdict ++try: ++ from collections import abc ++except ImportError: ++ import collections as abc # type: ignore ++from collections import defaultdict + + from .misc import total_ordering + +@@ -139,7 +143,7 @@ class DictProxy(DictMixin): + return self.__dict.keys() + + +-class HashedList(MutableSequence): ++class HashedList(abc.MutableSequence): + """A list-like collection that can only take hashable items + and provides fast membership tests. + +Index: quodlibet-4.4.0/quodlibet/util/http.py +=================================================================== +--- quodlibet-4.4.0.orig/quodlibet/util/http.py ++++ quodlibet-4.4.0/quodlibet/util/http.py +@@ -7,8 +7,7 @@ + # (at your option) any later version. + + import json +-from collections import Callable +-from typing import Optional, Any ++from typing import Optional, Any, Callable + + from gi.repository import Soup, Gio, GLib, GObject + from gi.repository.GObject import ParamFlags, SignalFlags diff -Nru quodlibet-4.4.0/debian/patches/series quodlibet-4.4.0/debian/patches/series --- quodlibet-4.4.0/debian/patches/series 2021-08-21 23:24:05.000000000 +0000 +++ quodlibet-4.4.0/debian/patches/series 2022-05-07 10:32:15.000000000 +0000 @@ -1,2 +1,3 @@ use-editor-not-nano.patch remove-reference-to-online-css.patch +python-3.10.patch