diff --git a/srcpkgs/beets/patches/python-3.8.patch b/srcpkgs/beets/patches/python-3.8.patch new file mode 100644 index 00000000000..423f25985b2 --- /dev/null +++ b/srcpkgs/beets/patches/python-3.8.patch @@ -0,0 +1,53 @@ +From dab0c1f9abda5b17cc7488f89a6fe08be7bc56a0 Mon Sep 17 00:00:00 2001 +From: wisp3rwind <17089248+wisp3rwind@users.noreply.github.com> +Date: Tue, 9 Jun 2020 19:34:31 +0200 +Subject: [PATCH] compatibility with breaking changes to the ast module + +new in 3.10, also backported to 3.8 and 3.9: https://github.com/python/cpython/pull/20649 +In fact, our generation of some Literals has been invalid since Python +3.4, fix that too. +--- + https://github.com/beetbox/beets/pull/3621 + beets/util/functemplate.py | 29 ++++++++++++++++++++--------- + 2 files changed, 21 insertions(+), 9 deletions(-) + +diff --git beets/util/functemplate.py beets/util/functemplate.py +index af22b79082..266534a9b4 100644 +--- beets/util/functemplate.py ++++ beets/util/functemplate.py +@@ -73,15 +73,26 @@ def ex_literal(val): + """An int, float, long, bool, string, or None literal with the given + value. + """ +- if val is None: +- return ast.Name('None', ast.Load()) +- elif isinstance(val, six.integer_types): +- return ast.Num(val) +- elif isinstance(val, bool): +- return ast.Name(bytes(val), ast.Load()) +- elif isinstance(val, six.string_types): +- return ast.Str(val) +- raise TypeError(u'no literal for {0}'.format(type(val))) ++ if sys.version_info[:2] < (3, 4): ++ if val is None: ++ return ast.Name('None', ast.Load()) ++ elif isinstance(val, six.integer_types): ++ return ast.Num(val) ++ elif isinstance(val, bool): ++ return ast.Name(bytes(val), ast.Load()) ++ elif isinstance(val, six.string_types): ++ return ast.Str(val) ++ raise TypeError(u'no literal for {0}'.format(type(val))) ++ elif sys.version_info[:2] < (3, 6): ++ if val in [None, True, False]: ++ return ast.NameConstant(val) ++ elif isinstance(val, six.integer_types): ++ return ast.Num(val) ++ elif isinstance(val, six.string_types): ++ return ast.Str(val) ++ raise TypeError(u'no literal for {0}'.format(type(val))) ++ else: ++ return ast.Constant(val) + + + def ex_varassign(name, expr): diff --git a/srcpkgs/beets/template b/srcpkgs/beets/template index 975e6ec9f86..bf0240f1f54 100644 --- a/srcpkgs/beets/template +++ b/srcpkgs/beets/template @@ -1,13 +1,17 @@ # Template file for 'beets' pkgname=beets version=1.4.9 -revision=2 +revision=3 archs=noarch build_style=python3-module -pycompile_module="beets beetsplug" hostmakedepends="python3-setuptools" depends="python3-setuptools python3-munkres python3-musicbrainzngs python3-Unidecode python3-yaml python3-jellyfish python3-six python3-mutagen" +# test_web is failing +checkdepends="$depends python3-discogs_client python3-mpd2 python3-xdg + python3-rarfile python3-pylast python3-gobject python3-mock python3-Flask + python3-BeautifulSoup4 python3-itsdangerous python3-click python3-Werkzeug + python3-Jinja2 python3-soupsieve python3-MarkupSafe" short_desc="Media library management system for obsessive-compulsive music geeks" maintainer="Orphaned " license="MIT"