Date: Saturday, December 4, 2021 @ 11:46:29 Author: felixonmars Revision: 1065019
archrelease: copy trunk to community-staging-any Added: quodlibet/repos/community-staging-any/ quodlibet/repos/community-staging-any/PKGBUILD (from rev 1065018, quodlibet/trunk/PKGBUILD) quodlibet/repos/community-staging-any/quodlibet-4.4.0-collections.patch (from rev 1065018, quodlibet/trunk/quodlibet-4.4.0-collections.patch) -----------------------------------+ PKGBUILD | 67 ++++++++++++++++++++ quodlibet-4.4.0-collections.patch | 118 ++++++++++++++++++++++++++++++++++++ 2 files changed, 185 insertions(+) Copied: quodlibet/repos/community-staging-any/PKGBUILD (from rev 1065018, quodlibet/trunk/PKGBUILD) =================================================================== --- community-staging-any/PKGBUILD (rev 0) +++ community-staging-any/PKGBUILD 2021-12-04 11:46:29 UTC (rev 1065019) @@ -0,0 +1,67 @@ +# Maintainer: David Runge <dv...@archlinux.org> +# Maintainer: Bruno Pagani <archa...@archlinux.org> +# Contributor: Eric BĂ©langer <e...@archlinux.org> + +pkgname=quodlibet +pkgver=4.4.0 +pkgrel=3 +pkgdesc="Music player and music library manager" +arch=(any) +url="https://quodlibet.readthedocs.io/" +license=(GPL2) +depends=(dbus-python gtk3 python-cairo python-feedparser python-gobject python-mutagen) +makedepends=(python-sphinx_rtd_theme) +# python-raven python-senf are currently vendored +checkdepends=(gst-plugins-base gst-plugins-good python-pytest python-xvfbwrapper) +optdepends=('gst-libav: Extra media codecs for the GStreamer backend' + 'gst-plugins-bad: Extra media codecs for the GStreamer backend; Audio Pitch / Speed, Crossfeed, Submit Acoustic Fingerprints plugins' + 'gst-plugins-base: Default audio backend' + 'gst-plugins-good: Extra media codecs, PulseAudio support for the GStreamer backend; Audio Compressor, Karaoke, Replay Gain plugins' + 'gst-plugins-ugly: Extra media codecs for the GStreamer backend' + 'gtksourceview3: Undo and redo support in multiline text fields' + 'kakasi: Kana/Kanji Simple Inverter plugin' + 'libappindicator-gtk3: Appindicator support in the Tray Icon plugin' + 'libkeybinder3: Multimedia key support under non Gnome setups' + 'libmodplug: MOD support' + 'python-musicbrainzngs: MusicBrainz Lookup, MusicBrainz Sync plugins' + 'python-paho-mqtt: MQTT Publisher plugin' + 'python-pyinotify: Automatic Library Update plugin' + 'rygel: UPnP AV Media Server plugin' + 'webkit2gtk: Web Lyrics plugin' + 'xine-lib: Alternative audio backend') +source=( + "https://github.com/${pkgname}/${pkgname}/releases/download/release-${pkgver}/${pkgname}-${pkgver}.tar.gz"{,.sig} + "${pkgname}-4.4.0-collections.patch::https://github.com/quodlibet/quodlibet/commit/49dd6474484f9f157adae485a51afc37e6c884f4.patch" +) +sha256sums=('a03318d2767e4959551763d0a87fad977387af712608fe572714176a24bbf367' + 'SKIP' + '6a5665838f01c30b2df0456985779e55a2e05d4ce76b7e3f1438c36e089ebc90') +validpgpkeys=(0EBF782C5D53F7E5FB02A66746BD761F7A49B0EC) # Christoph Reiter <reiter.christ...@gmail.com> + +prepare() { + cd ${pkgname}-${pkgver} + # use collections.abc + # backport of https://github.com/quodlibet/quodlibet/commit/49dd6474484f9f157adae485a51afc37e6c884f4 + patch -Np1 -i ../"${pkgname}-4.4.0-collections.patch" + # Fix zsh completions dir + sed -e 's|vendor-completions|site-functions|' -i gdist/zsh_completions.py +} + +build() { + cd ${pkgname}-${pkgver} + python setup.py build +} + +check() { + cd ${pkgname}-${pkgver} + export PYTHONPATH="build:${PYTHONPATH}" + # not running useless linter checks + # disable tests that are broken due to telnetlib (SqueezeboxPlaylistPlugin) + pytest -v -k 'not TFlake8 and not test_remove_all and not test_plugin_pref' +} + +package() { + cd ${pkgname}-${pkgver} + python setup.py install --root="${pkgdir}" --optimize=1 + install -vDm 644 {README,NEWS}.rst -t "${pkgdir}"/usr/share/doc/${pkgname} +} Copied: quodlibet/repos/community-staging-any/quodlibet-4.4.0-collections.patch (from rev 1065018, quodlibet/trunk/quodlibet-4.4.0-collections.patch) =================================================================== --- community-staging-any/quodlibet-4.4.0-collections.patch (rev 0) +++ community-staging-any/quodlibet-4.4.0-collections.patch 2021-12-04 11:46:29 UTC (rev 1065019) @@ -0,0 +1,118 @@ +diff -ruN a/quodlibet/packages/raven/context.py b/quodlibet/packages/raven/context.py +--- a/quodlibet/packages/raven/context.py 2021-02-28 20:26:26.003186000 +0100 ++++ b/quodlibet/packages/raven/context.py 2021-12-04 11:59:34.974753115 +0100 +@@ -7,7 +7,10 @@ + """ + 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 @@ + return [] + + +-class Context(local, Mapping, Iterable): ++class Context(local, abc.Mapping, abc.Iterable): + """ + Stores context until cleared. + +diff -ruN a/quodlibet/player/gstbe/util.py b/quodlibet/player/gstbe/util.py +--- a/quodlibet/player/gstbe/util.py 2021-02-28 20:26:26.007186000 +0100 ++++ b/quodlibet/player/gstbe/util.py 2021-12-04 11:59:34.978086457 +0100 +@@ -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 @@ + 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 -ruN a/quodlibet/util/collection.py b/quodlibet/util/collection.py +--- a/quodlibet/util/collection.py 2021-02-28 20:26:26.015186000 +0100 ++++ b/quodlibet/util/collection.py 2021-12-04 12:01:23.532557722 +0100 +@@ -24,7 +24,10 @@ + 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 @@ + + @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 @@ + __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) + +diff -ruN a/quodlibet/util/collections.py b/quodlibet/util/collections.py +--- a/quodlibet/util/collections.py 2021-02-28 20:26:26.015186000 +0100 ++++ b/quodlibet/util/collections.py 2021-12-04 12:03:18.200303036 +0100 +@@ -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 @@ + 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. + +diff -ruN a/quodlibet/util/http.py b/quodlibet/util/http.py +--- a/quodlibet/util/http.py 2021-02-28 20:26:26.015186000 +0100 ++++ b/quodlibet/util/http.py 2021-12-04 12:13:21.410973754 +0100 +@@ -7,7 +7,7 @@ + # (at your option) any later version. + + import json +-from collections import Callable ++from collections.abc import Callable + from typing import Optional, Any + + from gi.repository import Soup, Gio, GLib, GObject