mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
gnu: quodlibet: Update to 4.7.1.
* gnu/packages/music.scm (quodlibet): Update to 4.7.1. * gnu/packages/patches/quodlibet-fix-invalid-glob.patch: Remove. * gnu/packages/patches/quodlibet-fix-mtime-tests.patch: Remove. Change-Id: I88c1de51642374c4e52a9ce7d996f3ab120efb1c Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
This commit is contained in:
parent
dc1de3ba5b
commit
2916e73004
4 changed files with 7 additions and 142 deletions
|
@ -2044,8 +2044,6 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/qcodeeditor-qt6.patch \
|
%D%/packages/patches/qcodeeditor-qt6.patch \
|
||||||
%D%/packages/patches/qtdeclarative-5-disable-qmlcache.patch \
|
%D%/packages/patches/qtdeclarative-5-disable-qmlcache.patch \
|
||||||
%D%/packages/patches/qtdeclarative-disable-qmlcache.patch \
|
%D%/packages/patches/qtdeclarative-disable-qmlcache.patch \
|
||||||
%D%/packages/patches/quodlibet-fix-invalid-glob.patch \
|
|
||||||
%D%/packages/patches/quodlibet-fix-mtime-tests.patch \
|
|
||||||
%D%/packages/patches/qucs-s-qucsator-rf-search.patch \
|
%D%/packages/patches/qucs-s-qucsator-rf-search.patch \
|
||||||
%D%/packages/patches/qxlsx-fix-include-directory.patch \
|
%D%/packages/patches/qxlsx-fix-include-directory.patch \
|
||||||
%D%/packages/patches/scn-fast-float-compat.patch \
|
%D%/packages/patches/scn-fast-float-compat.patch \
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
;;; Copyright © 2021 Thomas Albers Raviola <thomas@thomaslabs.org>
|
;;; Copyright © 2021 Thomas Albers Raviola <thomas@thomaslabs.org>
|
||||||
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
|
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
|
||||||
;;; Copyright © 2022, 2023 Sughosha <sughosha@disroot.org>
|
;;; Copyright © 2022, 2023 Sughosha <sughosha@disroot.org>
|
||||||
;;; Copyright © 2022 Remco van 't Veer <remco@remworks.net>
|
;;; Copyright © 2022, 2025 Remco van 't Veer <remco@remworks.net>
|
||||||
;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||||
;;; Copyright © 2022 Wamm K. D. <jaft.r@outlook.com>
|
;;; Copyright © 2022 Wamm K. D. <jaft.r@outlook.com>
|
||||||
;;; Copyright © 2022 Jose G Perez Taveras <josegpt27@gmail.com>
|
;;; Copyright © 2022 Jose G Perez Taveras <josegpt27@gmail.com>
|
||||||
|
@ -8034,7 +8034,7 @@ streaming audio server.")
|
||||||
(define-public quodlibet
|
(define-public quodlibet
|
||||||
(package
|
(package
|
||||||
(name "quodlibet")
|
(name "quodlibet")
|
||||||
(version "4.5.0")
|
(version "4.7.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -8042,10 +8042,8 @@ streaming audio server.")
|
||||||
(url "https://github.com/quodlibet/quodlibet")
|
(url "https://github.com/quodlibet/quodlibet")
|
||||||
(commit (string-append "release-" version))))
|
(commit (string-append "release-" version))))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(patches (search-patches "quodlibet-fix-invalid-glob.patch"
|
|
||||||
"quodlibet-fix-mtime-tests.patch"))
|
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1i5k93k3bfp7hpcwkbr865mbj9jam3jv2a5k1bazcyp4f5vdrb0v"))))
|
(base32 "0nk2n4j0vm9ibrm3p9qwf5s0a4iwjkbvr6z23sc0v3rdxvaxrgf6"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(list
|
(list
|
||||||
|
@ -8064,10 +8062,8 @@ streaming audio server.")
|
||||||
(if tests?
|
(if tests?
|
||||||
(invoke "xvfb-run" "pytest"
|
(invoke "xvfb-run" "pytest"
|
||||||
;; needs network
|
;; needs network
|
||||||
"--ignore=tests/test_browsers_iradio.py"
|
"--ignore=tests/plugin/test_covers.py"
|
||||||
;; broken upstream
|
"--ignore=tests/test_browsers_iradio.py")
|
||||||
"--disable-warnings"
|
|
||||||
"--ignore=tests/quality/test_flake8.py")
|
|
||||||
(format #t "test suite not run~%"))))
|
(format #t "test suite not run~%"))))
|
||||||
(add-after 'install 'glib-or-gtk-wrap ; ensure icons loaded
|
(add-after 'install 'glib-or-gtk-wrap ; ensure icons loaded
|
||||||
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
|
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
|
||||||
|
@ -8082,7 +8078,7 @@ streaming audio server.")
|
||||||
`("GI_TYPELIB_PATH" ":" = (,gi-typelib-path))
|
`("GI_TYPELIB_PATH" ":" = (,gi-typelib-path))
|
||||||
`("GST_PLUGIN_SYSTEM_PATH" ":" suffix (,gst-plugins-path))))
|
`("GST_PLUGIN_SYSTEM_PATH" ":" suffix (,gst-plugins-path))))
|
||||||
'("exfalso" "quodlibet"))))))))
|
'("exfalso" "quodlibet"))))))))
|
||||||
(native-inputs (list xvfb-run gettext-minimal))
|
(native-inputs (list xvfb-run gettext-minimal python-pytest))
|
||||||
(inputs
|
(inputs
|
||||||
(list adwaita-icon-theme
|
(list adwaita-icon-theme
|
||||||
bash-minimal
|
bash-minimal
|
||||||
|
@ -8098,7 +8094,7 @@ streaming audio server.")
|
||||||
hicolor-icon-theme
|
hicolor-icon-theme
|
||||||
keybinder-3.0 ; keybindings outside of GNOME
|
keybinder-3.0 ; keybindings outside of GNOME
|
||||||
(librsvg-for-system)
|
(librsvg-for-system)
|
||||||
libsoup-minimal-2
|
libsoup-minimal
|
||||||
python
|
python
|
||||||
python-cheetah
|
python-cheetah
|
||||||
python-dbus
|
python-dbus
|
||||||
|
@ -8110,7 +8106,6 @@ streaming audio server.")
|
||||||
python-pycairo
|
python-pycairo
|
||||||
python-pygobject
|
python-pygobject
|
||||||
python-pyinotify
|
python-pyinotify
|
||||||
python-pytest
|
|
||||||
python-sgmllib3k
|
python-sgmllib3k
|
||||||
python-toml))
|
python-toml))
|
||||||
(home-page "https://github.com/quodlibet/quodlibet")
|
(home-page "https://github.com/quodlibet/quodlibet")
|
||||||
|
|
|
@ -1,89 +0,0 @@
|
||||||
From 5f55431a28509fd4f4f7b40dc246f3d34fa8549e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Christoph Reiter <reiter.christoph@gmail.com>
|
|
||||||
Date: Sun, 26 Jun 2022 23:14:28 +0200
|
|
||||||
Subject: [PATCH] builtin cover: fix handling of invalid glob ranges with
|
|
||||||
Python 3.10.5+ (#4027)
|
|
||||||
|
|
||||||
Previously Python would raise if an invalid range was given
|
|
||||||
to glob, but with 3.10.5 they fixed it to not match anything.
|
|
||||||
https://github.com/python/cpython/issues/89973
|
|
||||||
|
|
||||||
Our tests depended on the previous logic and treating the glob pattern
|
|
||||||
as a literal file name in that case.
|
|
||||||
|
|
||||||
One could argue that this is wrong since a range that doesn't contain anything
|
|
||||||
should also not match anything, so wrap glob() to make it not match for all
|
|
||||||
Python versions in that case and adjust the tests accordingly.
|
|
||||||
|
|
||||||
This should fix the Windows CI, which is currently the only job using 3.10.5
|
|
||||||
---
|
|
||||||
quodlibet/util/cover/built_in.py | 22 +++++++++++-----------
|
|
||||||
tests/test_util_cover.py | 12 +++---------
|
|
||||||
2 files changed, 14 insertions(+), 20 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/quodlibet/util/cover/built_in.py b/quodlibet/util/cover/built_in.py
|
|
||||||
index f2a8791a2..01474c9b6 100644
|
|
||||||
--- a/quodlibet/util/cover/built_in.py
|
|
||||||
+++ b/quodlibet/util/cover/built_in.py
|
|
||||||
@@ -100,6 +100,15 @@ class FilesystemCover(CoverSourcePlugin):
|
|
||||||
base = self.song('~dirname')
|
|
||||||
images = []
|
|
||||||
|
|
||||||
+ def safe_glob(*args, **kwargs):
|
|
||||||
+ try:
|
|
||||||
+ return glob.glob(*args, **kwargs)
|
|
||||||
+ except sre_constants.error:
|
|
||||||
+ # https://github.com/python/cpython/issues/89973
|
|
||||||
+ # old glob would fail with invalid ranges, newer one
|
|
||||||
+ # handles it correctly.
|
|
||||||
+ return []
|
|
||||||
+
|
|
||||||
if config.getboolean("albumart", "force_filename"):
|
|
||||||
score = 100
|
|
||||||
for filename in config.get("albumart", "filename").split(","):
|
|
||||||
@@ -107,17 +116,8 @@ class FilesystemCover(CoverSourcePlugin):
|
|
||||||
filename = filename.strip()
|
|
||||||
|
|
||||||
escaped_path = os.path.join(glob.escape(base), filename)
|
|
||||||
- try:
|
|
||||||
- for path in glob.glob(escaped_path):
|
|
||||||
- images.append((score, path))
|
|
||||||
- except sre_constants.error:
|
|
||||||
- # Use literal filename if globbing causes errors
|
|
||||||
- path = os.path.join(base, filename)
|
|
||||||
-
|
|
||||||
- # We check this here, so we can search for alternative
|
|
||||||
- # files in case no preferred file was found.
|
|
||||||
- if os.path.isfile(path):
|
|
||||||
- images.append((score, path))
|
|
||||||
+ for path in safe_glob(escaped_path):
|
|
||||||
+ images.append((score, path))
|
|
||||||
|
|
||||||
# So names and patterns at the start are preferred
|
|
||||||
score -= 1
|
|
||||||
diff --git a/tests/test_util_cover.py b/tests/test_util_cover.py
|
|
||||||
index db81e4d1f..71a48ad9a 100644
|
|
||||||
--- a/tests/test_util_cover.py
|
|
||||||
+++ b/tests/test_util_cover.py
|
|
||||||
@@ -105,15 +105,9 @@ class TCoverManager(TestCase):
|
|
||||||
config.set("albumart", "force_filename", str(True))
|
|
||||||
config.set("albumart", "filename", "[a-2].jpg")
|
|
||||||
|
|
||||||
- # Should match
|
|
||||||
- f = self.add_file("[a-2].jpg")
|
|
||||||
- assert path_equal(
|
|
||||||
- os.path.abspath(self._find_cover(self.song).name), f)
|
|
||||||
-
|
|
||||||
- # Should not crash
|
|
||||||
- f = self.add_file("test.jpg")
|
|
||||||
- assert not path_equal(
|
|
||||||
- os.path.abspath(self._find_cover(self.song).name), f)
|
|
||||||
+ # Invalid glob range, should not match anything
|
|
||||||
+ self.add_file("a.jpg")
|
|
||||||
+ assert self._find_cover(self.song) is None
|
|
||||||
|
|
||||||
def test_invalid_glob_path(self):
|
|
||||||
config.set("albumart", "force_filename", str(True))
|
|
||||||
--
|
|
||||||
2.39.2
|
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
From 06a32b319f065550efe0d2a9ff10ca6bdc32b893 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Christoph Reiter <reiter.christoph@gmail.com>
|
|
||||||
Date: Sat, 23 Jul 2022 20:15:18 +0200
|
|
||||||
Subject: [PATCH] operon: hopefully better fix for flaky mtime tests
|
|
||||||
|
|
||||||
copy the mtime after we write everything, so there is no chance of
|
|
||||||
it changing before we note the initial value.
|
|
||||||
---
|
|
||||||
quodlibet/operon/commands.py | 8 ++++----
|
|
||||||
1 files changed, 4 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/quodlibet/operon/commands.py b/quodlibet/operon/commands.py
|
|
||||||
index e0a5ef33a..af2dcfa8b 100644
|
|
||||||
--- a/quodlibet/operon/commands.py
|
|
||||||
+++ b/quodlibet/operon/commands.py
|
|
||||||
@@ -227,16 +227,16 @@ class EditCommand(Command):
|
|
||||||
# write to tmp file
|
|
||||||
fd, path = tempfile.mkstemp(suffix=".txt")
|
|
||||||
|
|
||||||
- # XXX: copy mtime here so we can test for changes in tests by
|
|
||||||
- # setting a out of date mtime on the source song file
|
|
||||||
- copy_mtime(args[0], path)
|
|
||||||
-
|
|
||||||
try:
|
|
||||||
try:
|
|
||||||
os.write(fd, dump)
|
|
||||||
finally:
|
|
||||||
os.close(fd)
|
|
||||||
|
|
||||||
+ # XXX: copy mtime here so we can test for changes in tests by
|
|
||||||
+ # setting a out of date mtime on the source song file
|
|
||||||
+ copy_mtime(args[0], path)
|
|
||||||
+
|
|
||||||
# only parse the result if the editor returns 0 and the mtime has
|
|
||||||
# changed
|
|
||||||
old_mtime = mtime(path)
|
|
||||||
--
|
|
||||||
2.39.2
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue