1{ lib, stdenv
2, fetchurl
3, substituteAll
4, meson
5, ninja
6, pkg-config
7, gettext
8, gperf
9, sqlite
10, libarchive
11, libdmapsharing
12, libsoup_3
13, gnome
14, libxml2
15, lua5_4
16, liboauth
17, libgdata
18, libmediaart
19, grilo
20, gst_all_1
21, gnome-online-accounts
22, gmime
23, gom
24, json-glib
25, avahi
26, tracker
27, dleyna-server
28, itstool
29, totem-pl-parser
30}:
31
32stdenv.mkDerivation rec {
33 pname = "grilo-plugins";
34 version = "0.3.16";
35
36 src = fetchurl {
37 url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
38 sha256 = "/m9Nvlhsa4uiQGOU4gLyLQCdZCqW6zpU8y9qIdCEzcs=";
39 };
40
41 patches = [
42 # grl-chromaprint requires the following GStreamer elements:
43 # * fakesink (gstreamer)
44 # * playbin (gst-plugins-base)
45 # * chromaprint (gst-plugins-bad)
46 (substituteAll {
47 src = ./chromaprint-gst-plugins.patch;
48 load_plugins = lib.concatMapStrings (plugin: ''gst_registry_scan_path(gst_registry_get(), "${lib.getLib plugin}/lib/gstreamer-1.0");'') (with gst_all_1; [
49 gstreamer
50 gst-plugins-base
51 gst-plugins-bad
52 ]);
53 })
54 ];
55
56 nativeBuildInputs = [
57 meson
58 ninja
59 pkg-config
60 gettext
61 itstool
62 gperf # for lua-factory
63 ];
64
65 buildInputs = [
66 grilo
67 libxml2
68 # libgdata
69 lua5_4
70 liboauth
71 sqlite
72 gnome-online-accounts
73 totem-pl-parser
74 libarchive
75 libdmapsharing
76 libsoup_3
77 gmime
78 gom
79 json-glib
80 avahi
81 libmediaart
82 tracker
83 dleyna-server
84 gst_all_1.gstreamer
85 ];
86
87 passthru = {
88 updateScript = gnome.updateScript {
89 packageName = pname;
90 versionPolicy = "none";
91 };
92 };
93
94 meta = with lib; {
95 homepage = "https://wiki.gnome.org/Projects/Grilo";
96 description = "A collection of plugins for the Grilo framework";
97 maintainers = teams.gnome.members;
98 license = licenses.lgpl21Plus;
99 platforms = platforms.unix;
100 };
101}