diff --git a/pkgs/applications/audio/rhythmbox/default.nix b/pkgs/applications/audio/rhythmbox/default.nix index 2f35f1fe65c..0ba86567c7c 100644 --- a/pkgs/applications/audio/rhythmbox/default.nix +++ b/pkgs/applications/audio/rhythmbox/default.nix @@ -1,17 +1,30 @@ -{ lib, stdenv, fetchurl, pkg-config, fetchFromGitLab +{ stdenv +, lib +, fetchurl +, fetchpatch +, pkg-config +, meson +, ninja +, fetchFromGitLab , python3 -, perl -, perlPackages +, vala +, glib , gtk3 -, intltool , libpeas , libsoup +, libxml2 , libsecret , libnotify , libdmapsharing , gnome , gobject-introspection , totem-pl-parser +, libgudev +, libgpod +, libmtp +, lirc +, brasero +, grilo , tdb , json-glib , itstool @@ -19,38 +32,32 @@ , gst_all_1 , gst_plugins ? with gst_all_1; [ gst-plugins-good gst-plugins-ugly ] }: -let - # The API version of libdmapsharing required by rhythmbox 3.4.4 is 3.0. - - # This PR would solve the issue: - # https://gitlab.gnome.org/GNOME/rhythmbox/-/merge_requests/12 - # Unfortunately applying this patch produces a rhythmbox which - # cannot fetch data from DAAP shares. - - libdmapsharing_3 = libdmapsharing.overrideAttrs (old: rec { - version = "2.9.41"; - src = fetchFromGitLab { - domain = "gitlab.gnome.org"; - owner = "GNOME"; - repo = old.pname; - rev = "${lib.toUpper old.pname}_${lib.replaceStrings ["."] ["_"] version}"; - sha256 = "05kvrzf0cp3mskdy6iv7zqq24qdczl800q2dn1h4bk3d9wchgm4p"; - }; - }); - -in stdenv.mkDerivation rec { +stdenv.mkDerivation rec { pname = "rhythmbox"; - version = "3.4.4"; + version = "3.4.5"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"; + sha256 = "l+u8YPN4sibaRbtEbYmQL26hgx4j8Q76ujZVk7HnTyo="; }; + patches = [ + # Fix stuff linking against rhythmdb not finding libxml headers + # included by rhythmdb.h header. + # https://gitlab.gnome.org/GNOME/rhythmbox/-/merge_requests/147 + (fetchpatch { + url = "https://gitlab.gnome.org/GNOME/rhythmbox/-/commit/7e8c7b803a45b7badf350132f8e78e3d75b99a21.patch"; + sha256 = "5CE/NVlmx7FItNJCVQxx+x0DCYhUkAi/UuksfAiyWBg="; + }) + ]; + nativeBuildInputs = [ pkg-config - intltool perl perlPackages.XMLParser + meson + ninja + vala + glib itstool wrapGAppsHook ]; @@ -58,13 +65,20 @@ in stdenv.mkDerivation rec { buildInputs = [ python3 libsoup + libxml2 tdb json-glib + glib gtk3 libpeas totem-pl-parser - gnome.adwaita-icon-theme + libgudev + libgpod + libmtp + lirc + brasero + grilo gobject-introspection python3.pkgs.pygobject3 @@ -76,16 +90,14 @@ in stdenv.mkDerivation rec { gst_all_1.gst-plugins-ugly gst_all_1.gst-libav - libdmapsharing_3 # necessary for daap support + libdmapsharing # for daap support libsecret libnotify ] ++ gst_plugins; - configureFlags = [ - "--enable-daap" - "--enable-libnotify" - "--with-libsecret" - ]; + postInstall = '' + glib-compile-schemas "$out/share/glib-2.0/schemas" + ''; preFixup = '' gappsWrapperArgs+=( @@ -93,8 +105,6 @@ in stdenv.mkDerivation rec { ) ''; - enableParallelBuilding = true; - passthru = { updateScript = gnome.updateScript { packageName = pname;