1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 nix-update-script,
6 meson,
7 ninja,
8 pkg-config,
9 vala,
10 wrapGAppsHook4,
11 elementary-gtk-theme,
12 elementary-icon-theme,
13 glib,
14 granite7,
15 gst_all_1,
16 gtk4,
17 libadwaita,
18}:
19
20stdenv.mkDerivation rec {
21 pname = "elementary-music";
22 version = "8.0.0";
23
24 src = fetchFromGitHub {
25 owner = "elementary";
26 repo = "music";
27 rev = version;
28 sha256 = "sha256-pqOAeHTFWSoJqXE9UCUkVIy5T7EoYsieJ4PMU1oX9ko=";
29 };
30
31 nativeBuildInputs = [
32 meson
33 ninja
34 pkg-config
35 vala
36 wrapGAppsHook4
37 ];
38
39 buildInputs = [
40 elementary-icon-theme
41 glib
42 granite7
43 gtk4
44 libadwaita
45 ]
46 ++ (with gst_all_1; [
47 gst-plugins-bad
48 gst-plugins-base
49 gst-plugins-good
50 gst-plugins-ugly
51 gstreamer
52 ]);
53
54 preFixup = ''
55 gappsWrapperArgs+=(
56 # The GTK theme is hardcoded.
57 --prefix XDG_DATA_DIRS : "${elementary-gtk-theme}/share"
58 # The icon theme is hardcoded.
59 --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS"
60 )
61 '';
62
63 passthru = {
64 updateScript = nix-update-script { };
65 };
66
67 meta = with lib; {
68 description = "Music player and library designed for elementary OS";
69 homepage = "https://github.com/elementary/music";
70 license = licenses.gpl3Plus;
71 platforms = platforms.linux;
72 teams = [ teams.pantheon ];
73 mainProgram = "io.elementary.music";
74 };
75}