From 3ef047dea6f61463ecd8c0c0d0631568fbb1eccd Mon Sep 17 00:00:00 2001 From: Cameron Nemo Date: Fri, 15 Oct 2021 16:47:02 -0700 Subject: [PATCH] quodlibet: patch for python 3.10 --- .../quodlibet/patches/collections_abc.patch | 103 ++++++++++++++++++ srcpkgs/quodlibet/template | 3 +- 2 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/quodlibet/patches/collections_abc.patch diff --git a/srcpkgs/quodlibet/patches/collections_abc.patch b/srcpkgs/quodlibet/patches/collections_abc.patch new file mode 100644 index 000000000000..60cf01bb04b4 --- /dev/null +++ b/srcpkgs/quodlibet/patches/collections_abc.patch @@ -0,0 +1,103 @@ +Upstream: yes + +commit d4e05aef03fe9775de9c00f2730d89815450022e +Author: LuK1337 +Date: Sat Sep 11 11:46:46 2021 +0200 + + Finish up collections -> collections.abc migration + + This lets us start QuodLibet on Python 3.10 ^.^ + +diff --git a/quodlibet/packages/raven/context.py b/quodlibet/packages/raven/context.py +index 272259a3b..2a3eab4a7 100644 +--- a/quodlibet/packages/raven/context.py ++++ b/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. + +diff --git a/quodlibet/player/gstbe/util.py b/quodlibet/player/gstbe/util.py +index 2611f8120..7439b716a 100644 +--- a/quodlibet/player/gstbe/util.py ++++ b/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 +diff --git a/quodlibet/util/collection.py b/quodlibet/util/collection.py +index b726f98e9..83646b8af 100644 +--- a/quodlibet/util/collection.py ++++ b/quodlibet/util/collection.py +@@ -24,7 +24,10 @@ from quodlibet.formats._audio import (TAG_TO_SORT, NUMERIC_ZERO_DEFAULT, + 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. + """ +diff --git a/quodlibet/util/collections.py b/quodlibet/util/collections.py +index ba9d5c1a4..f0b83b5e9 100644 +--- a/quodlibet/util/collections.py ++++ b/quodlibet/util/collections.py +@@ -9,7 +9,12 @@ + + from __future__ import absolute_import + +-from collections import MutableSequence, defaultdict ++try: ++ from collections.abc import MutableSequence ++except ImportError: ++ from collections import MutableSequence ++from collections import defaultdict ++from typing import Any + + from .misc import total_ordering + diff --git a/srcpkgs/quodlibet/template b/srcpkgs/quodlibet/template index 0253eb320bfe..9d08f9952a59 100644 --- a/srcpkgs/quodlibet/template +++ b/srcpkgs/quodlibet/template @@ -1,7 +1,7 @@ # Template file for 'quodlibet' pkgname=quodlibet version=4.4.0 -revision=2 +revision=3 build_style=python3-module pycompile_module="quodlibet" hostmakedepends="intltool python3-devel" @@ -14,3 +14,4 @@ license="GPL-2.0-or-later" homepage="https://quodlibet.readthedocs.io/en/latest/" distfiles="https://github.com/quodlibet/quodlibet/releases/download/release-${version}/quodlibet-${version}.tar.gz" checksum=a03318d2767e4959551763d0a87fad977387af712608fe572714176a24bbf367 +make_check=no # requires X server