Change:
<del> { lib, fetchurl, python3, wrapGAppsHook, gettext, libsoup, gnome, gtk3, gdk-pixbuf, librsvg, tag ? "", xvfb-run, dbus, glibcLocales, glib, glib-networking, gobject-introspection, hicolor-icon-theme, gst_all_1, withGstPlugins ? true, xineBackend ? false, xine-lib, withDbusPython ? false, withPyInotify ? false, withMusicBrainzNgs ? false, withPahoMqtt ? false, webkitgtk ? null, keybinder3 ? null, gtksourceview ? null, libmodplug ? null, kakasi ? null, libappindicator-gtk3 ? null }: let optionals = lib.optionals; in </del> <ins> { lib , fetchFromGitHub , fetchpatch , tag ? "" # build time , gettext , gobject-introspection , wrapGAppsHook # runtime , adwaita-icon-theme , gdk-pixbuf , glib , glib-networking , gtk3 , gtksourceview , kakasi , keybinder3 , libappindicator-gtk3 , libmodplug , librsvg , libsoup , webkitgtk # optional features , withDbusPython ? false , withPypresence ? false , withPyInotify ? false , withMusicBrainzNgs ? false , withPahoMqtt ? false , withSoco ? false # backends , withGstreamerBackend ? true, gst_all_1 , withGstPlugins ? withGstreamerBackend , withXineBackend ? true, xine-lib # tests , dbus , glibcLocales , hicolor-icon-theme , python3 , xvfb-run }: </ins> python3.pkgs.buildPythonApplication rec { pname = "quodlibet${tag}"; version = "4.5.0"; <ins> format = "pyproject"; </ins> <del> src = fetchurl { url = "https://github.com/quodlibet/quodlibet/releases/download/release-${version}/quodlibet-${version}.tar.gz"; sha256 = "sha256-MBYVgp9lLLr+2zVTkjcWKli8HucaVn0kn3eJ2SaCRbw="; </del> <ins> src = fetchFromGitHub { owner = "quodlibet"; repo = "quodlibet"; rev = "refs/tags/release-${version}"; hash = "sha256-G6zcdnHkevbVCrMoseWoSia5ajEor8nZhee6NeZIs8Q="; </ins> }; <del> nativeBuildInputs = [ wrapGAppsHook gettext ]; </del> <ins> patches = [ (fetchpatch { # Fixes cover globbing under python 3.10.5+ url = "https://github.com/quodlibet/quodlibet/commit/5eb7c30766e1dcb30663907664855ee94a3accc0.patch"; hash = "sha256-bDyEOE7Vs4df4BeN4QMvt6niisVEpvc1onmX5rtoAWc="; }) ]; outputs = [ "out" "doc" ]; </ins> <del> checkInputs = [ gdk-pixbuf hicolor-icon-theme ] ++ (with python3.pkgs; [ pytest pytest-xdist polib xvfb-run dbus.daemon glibcLocales ]); </del> <ins> nativeBuildInputs = [ gettext gobject-introspection wrapGAppsHook ] ++ (with python3.pkgs; [ sphinxHook sphinx-rtd-theme ]); </ins> <del> buildInputs = [ gnome.adwaita-icon-theme libsoup glib glib-networking gtk3 webkitgtk gdk-pixbuf keybinder3 gtksourceview libmodplug libappindicator-gtk3 kakasi gobject-introspection ] ++ (if xineBackend then [ xine-lib ] else with gst_all_1; [ gstreamer gst-plugins-base ] ++ optionals withGstPlugins [ gst-plugins-good gst-plugins-ugly gst-plugins-bad ]); </del> <ins> buildInputs = [ adwaita-icon-theme gdk-pixbuf glib glib-networking gtk3 gtksourceview kakasi keybinder3 libappindicator-gtk3 libmodplug libsoup webkitgtk ] ++ lib.optionals (withXineBackend) [ xine-lib ] ++ lib.optionals (withGstreamerBackend) (with gst_all_1; [ gst-plugins-base gstreamer ] ++ lib.optionals (withGstPlugins) [ gst-plugins-bad gst-plugins-good gst-plugins-ugly ]); </ins> <del> propagatedBuildInputs = with python3.pkgs; [ pygobject3 pycairo mutagen gst-python feedparser ] ++ optionals withDbusPython [ dbus-python ] ++ optionals withPyInotify [ pyinotify ] ++ optionals withMusicBrainzNgs [ musicbrainzngs ] ++ optionals withPahoMqtt [ paho-mqtt ]; </del> <ins> propagatedBuildInputs = with python3.pkgs; [ feedparser gst-python mutagen pycairo pygobject3 ] ++ lib.optionals withDbusPython [ dbus-python ] ++ lib.optionals withPypresence [ pypresence ] ++ lib.optionals withPyInotify [ pyinotify ] ++ lib.optionals withMusicBrainzNgs [ musicbrainzngs ] ++ lib.optionals withPahoMqtt [ paho-mqtt ] ++ lib.optionals withSoco [ soco ]; </ins> LC_ALL = "en_US.UTF-8"; <del> pytestFlags = lib.optionals (xineBackend || !withGstPlugins) [ "--ignore=tests/plugin/test_replaygain.py" ] ++ [ </del> <ins> checkInputs = [ dbus.daemon gdk-pixbuf glibcLocales hicolor-icon-theme xvfb-run ] ++ (with python3.pkgs; [ polib pytest pytest-xdist ]); pytestFlags = [ </ins> # requires networking <del> "--ignore=tests/test_browsers_iradio.py" # the default theme doesn't have the required icons "--ignore=tests/plugin/test_trayicon.py" </del> <ins> "--deselect=tests/test_browsers_iradio.py::TIRFile::test_download_tags" # missing translation strings in potfiles "--deselect=tests/test_po.py::TPOTFILESIN::test_missing" </ins> # upstream does actually not enforce source code linting "--ignore=tests/quality" # build failure on Arch Linux # https://github.com/NixOS/nixpkgs/pull/77796#issuecomment-575841355 "--ignore=tests/test_operon.py" <ins> ] ++ lib.optionals (withXineBackend || !withGstPlugins) [ "--ignore=tests/plugin/test_replaygain.py" </ins> ]; <ins> preCheck = '' export XDG_DATA_DIRS="$out/share:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_ICON_DIRS:$XDG_DATA_DIRS" export GDK_PIXBUF_MODULE_FILE=${librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache export HOME=$(mktemp -d) ''; </ins> checkPhase = '' runHook preCheck <del> # 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  py.test $pytestFlags </del> <ins> xvfb-run -s '-screen 0 1920x1080x24'  dbus-run-session --config-file=${dbus.daemon}/share/dbus-1/session.conf  pytest $pytestFlags </ins> runHook postCheck ''; <del> preFixup = lib.optionalString (kakasi != null) "gappsWrapperArgs+=(--prefix PATH : ${kakasi}/bin)"; </del> <ins> preFixup = lib.optionalString (kakasi != null) '' gappsWrapperArgs+=(--prefix PATH : ${kakasi}/bin) ''; </ins> meta = with lib; { description = "GTK-based audio player written in Python, using the Mutagen tagging library";

Discussion:
Steps to reproduce the behavior: quodlibet I have to my , but instead of using the pre-compiled cache it is recompiling it from scratch. <!-- Please @ people who are in the list of the offending package or module. If in doubt, check for whoever last touched something. --