diff --git a/pkgs/applications/audio/quodlibet/default.nix b/pkgs/applications/audio/quodlibet/default.nix index 704e20cc8c56..386a5110a817 100644 --- a/pkgs/applications/audio/quodlibet/default.nix +++ b/pkgs/applications/audio/quodlibet/default.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchurl, python3, wrapGAppsHook, gettext, libsoup, gnome3, gtk3, gdk-pixbuf, - tag ? "", xvfb_run, dbus, glibcLocales, glib, glib-networking, gobject-introspection, +{ stdenv, fetchurl, python3, wrapGAppsHook, gettext, libsoup, gnome3, gtk3, gdk-pixbuf, librsvg, + tag ? "", xvfb_run, dbus, glibcLocales, glib, glib-networking, gobject-introspection, hicolor-icon-theme, gst_all_1, withGstPlugins ? true, xineBackend ? false, xineLib, withDbusPython ? false, withPyInotify ? false, withMusicBrainzNgs ? false, withPahoMqtt ? false, @@ -9,16 +9,18 @@ let optionals = stdenv.lib.optionals; in python3.pkgs.buildPythonApplication rec { pname = "quodlibet${tag}"; - version = "4.2.1"; + version = "4.3.0"; src = fetchurl { url = "https://github.com/quodlibet/quodlibet/releases/download/release-${version}/quodlibet-${version}.tar.gz"; - sha256 = "0b1rvr4hqs2bjmhayms7vxxkn3d92k9v7p1269rjhf11hpk122l7"; + sha256 = "1q17ckblfa4fcs7wsjwsq1dj7360ymrdyjkyqmj864wzlqkw1rd2"; }; + patches = [ ./quodlibet-feedparser6.patch ]; + nativeBuildInputs = [ wrapGAppsHook gettext ]; - checkInputs = [ gdk-pixbuf ] ++ (with python3.pkgs; [ pytest pytest_xdist polib xvfb_run dbus.daemon glibcLocales ]); + checkInputs = [ gdk-pixbuf hicolor-icon-theme ] ++ (with python3.pkgs; [ pytest pytest_xdist polib xvfb_run dbus.daemon glibcLocales ]); buildInputs = [ gnome3.adwaita-icon-theme libsoup glib glib-networking gtk3 webkitgtk gdk-pixbuf keybinder3 gtksourceview libmodplug libappindicator-gtk3 kakasi gobject-introspection ] ++ (if xineBackend then [ xineLib ] else with gst_all_1; @@ -36,6 +38,10 @@ python3.pkgs.buildPythonApplication rec { pytestFlags = stdenv.lib.optionals (xineBackend || !withGstPlugins) [ "--ignore=tests/plugin/test_replaygain.py" ] ++ [ + # requires networking + "--ignore=tests/test_browsers_iradio.py" + # the default theme doesn't have the required icons + "--ignore=tests/plugin/test_trayicon.py" # upstream does actually not enforce source code linting "--ignore=tests/quality" # build failure on Arch Linux @@ -45,7 +51,13 @@ python3.pkgs.buildPythonApplication rec { checkPhase = '' runHook preCheck + # newer gettext spews some warnings which fail the tests + substituteInPlace tests/test_po.py --replace "strict=True" "strict=False" + # otherwise tests can't find the app icons; instead of creating index.theme from scratch + # I re-used the one from hicolor-icon-theme which seems to work + cp "${hicolor-icon-theme}/share/icons/hicolor/index.theme" quodlibet/images/hicolor env XDG_DATA_DIRS="$out/share:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_ICON_DIRS:$XDG_DATA_DIRS" \ + GDK_PIXBUF_MODULE_FILE=${librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache \ HOME=$(mktemp -d) \ xvfb-run -s '-screen 0 800x600x24' dbus-run-session \ --config-file=${dbus.daemon}/share/dbus-1/session.conf \ @@ -73,7 +85,7 @@ python3.pkgs.buildPythonApplication rec { & internet radio, and all major audio formats. ''; - maintainers = with maintainers; [ coroa sauyon ]; + maintainers = with maintainers; [ coroa pbogdan ]; homepage = "https://quodlibet.readthedocs.io/en/latest/"; }; } diff --git a/pkgs/applications/audio/quodlibet/quodlibet-feedparser6.patch b/pkgs/applications/audio/quodlibet/quodlibet-feedparser6.patch new file mode 100644 index 000000000000..41c6c75cea25 --- /dev/null +++ b/pkgs/applications/audio/quodlibet/quodlibet-feedparser6.patch @@ -0,0 +1,12 @@ +Support feedparser 6, based on https://github.com/quodlibet/quodlibet/pull/3464 + +--- a/quodlibet/browsers/audiofeeds.py ++++ b/quodlibet/browsers/audiofeeds.py +@@ -137,7 +137,4 @@ class Feed(list): + def parse(self): + try: +- if not self._check_feed(): +- return False +- + doc = feedparser.parse(self.uri) + except Exception as e: