nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 stdenv,
3 lib,
4 fetchurl,
5 pkg-config,
6 meson,
7 ninja,
8 python3,
9 vala,
10 glib,
11 gtk3,
12 libpeas,
13 libsoup_3,
14 libxml2,
15 libsecret,
16 libnotify,
17 libdmapsharing,
18 gnome,
19 gobject-introspection,
20 totem-pl-parser,
21 libgudev,
22 libgpod,
23 libmtp,
24 lirc,
25 brasero-unwrapped, # libdvdcss is not needed for rhythmbox
26 grilo,
27 tdb,
28 json-glib,
29 itstool,
30 wrapGAppsHook3,
31 desktop-file-utils,
32 gst_all_1,
33 gst_plugins ? with gst_all_1; [
34 gst-plugins-good
35 gst-plugins-ugly
36 ],
37 check,
38}:
39
40stdenv.mkDerivation rec {
41 pname = "rhythmbox";
42 version = "3.4.9";
43
44 src = fetchurl {
45 url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
46 sha256 = "5CKRoY33oh/+azUr9z8F1+KYu04FvOWWf5jujO5ECPE=";
47 };
48
49 postPatch = ''
50 # We backported girepository-2.0 support to libpeas 1.36
51 substituteInPlace meson.build \
52 --replace-fail "and libpeas.version() > '1.36'" ""
53 '';
54
55 nativeBuildInputs = [
56 pkg-config
57 meson
58 ninja
59 vala
60 glib
61 itstool
62 wrapGAppsHook3
63 desktop-file-utils
64 gobject-introspection
65 ];
66
67 buildInputs = [
68 python3
69 libsoup_3
70 libxml2
71 tdb
72 json-glib
73
74 glib
75 gtk3
76 libpeas
77 totem-pl-parser
78 libgudev
79 libgpod
80 libmtp
81 lirc
82 brasero-unwrapped
83 grilo
84
85 python3.pkgs.pygobject3
86
87 gst_all_1.gstreamer
88 gst_all_1.gst-plugins-base
89 gst_all_1.gst-plugins-good
90 gst_all_1.gst-plugins-bad
91 gst_all_1.gst-plugins-ugly
92 gst_all_1.gst-libav
93
94 libdmapsharing # for daap support
95 libsecret
96 libnotify
97 ]
98 ++ gst_plugins;
99
100 nativeCheckInputs = [
101 check
102 ];
103
104 mesonFlags = [
105 "-Ddaap=enabled"
106 "-Dtests=disabled"
107 ];
108
109 # Requires DISPLAY
110 doCheck = false;
111
112 preFixup = ''
113 gappsWrapperArgs+=(
114 --prefix PYTHONPATH : "$out/lib/rhythmbox/plugins/"
115 )
116 '';
117
118 passthru = {
119 updateScript = gnome.updateScript {
120 packageName = pname;
121 versionPolicy = "none";
122 };
123 };
124
125 meta = {
126 homepage = "https://gitlab.gnome.org/GNOME/rhythmbox";
127 description = "Music playing application for GNOME";
128 license = lib.licenses.gpl2Plus;
129 platforms = lib.platforms.linux;
130 maintainers = [ ];
131 };
132}