about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/grilo-plugins
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/grilo-plugins')
-rw-r--r--nixpkgs/pkgs/development/libraries/grilo-plugins/chromaprint-gst-plugins.patch13
-rw-r--r--nixpkgs/pkgs/development/libraries/grilo-plugins/default.nix102
2 files changed, 115 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/grilo-plugins/chromaprint-gst-plugins.patch b/nixpkgs/pkgs/development/libraries/grilo-plugins/chromaprint-gst-plugins.patch
new file mode 100644
index 000000000000..cb6a1a354945
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/grilo-plugins/chromaprint-gst-plugins.patch
@@ -0,0 +1,13 @@
+diff --git a/src/chromaprint/grl-chromaprint.c b/src/chromaprint/grl-chromaprint.c
+index 5a3598b..8979291 100644
+--- a/src/chromaprint/grl-chromaprint.c
++++ b/src/chromaprint/grl-chromaprint.c
+@@ -111,6 +111,8 @@
+ 
+   gst_init (NULL, NULL);
+ 
++  @load_plugins@
++
+   source = grl_chromaprint_source_new ();
+   grl_registry_register_source (registry,
+                                 plugin,
diff --git a/nixpkgs/pkgs/development/libraries/grilo-plugins/default.nix b/nixpkgs/pkgs/development/libraries/grilo-plugins/default.nix
new file mode 100644
index 000000000000..21530c000dae
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/grilo-plugins/default.nix
@@ -0,0 +1,102 @@
+{ stdenv
+, fetchurl
+, substituteAll
+, meson
+, ninja
+, pkgconfig
+, gettext
+, gperf
+, sqlite
+, librest
+, libarchive
+, libsoup
+, gnome3
+, libxml2
+, lua5_3
+, liboauth
+, libgdata
+, libmediaart
+, grilo
+, gst_all_1
+, gnome-online-accounts
+, gmime
+, gom
+, json-glib
+, avahi
+, tracker
+, dleyna-server
+, itstool
+, totem-pl-parser
+}:
+
+stdenv.mkDerivation rec {
+  pname = "grilo-plugins";
+  version = "0.3.11";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "0wyd3n5mn7b77hxylkc3f62v01mlavh96901pz342hwrn42ydqnx";
+  };
+
+  patches = [
+    # grl-chromaprint requires the following GStreamer elements:
+    # * fakesink (gstreamer)
+    # * playbin (gst-plugins-base)
+    # * chromaprint (gst-plugins-bad)
+    (substituteAll {
+      src = ./chromaprint-gst-plugins.patch;
+      load_plugins = stdenv.lib.concatMapStrings (plugin: ''gst_registry_scan_path(gst_registry_get(), "${plugin}/lib/gstreamer-1.0");'') (with gst_all_1; [
+        gstreamer
+        gst-plugins-base
+        gst-plugins-bad
+      ]);
+    })
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkgconfig
+    gettext
+    itstool
+    gperf # for lua-factory
+  ];
+
+  buildInputs = [
+    grilo
+    libxml2
+    libgdata
+    lua5_3
+    liboauth
+    sqlite
+    gnome-online-accounts
+    totem-pl-parser
+    librest
+    libarchive
+    libsoup
+    gmime
+    gom
+    json-glib
+    avahi
+    libmediaart
+    tracker
+    dleyna-server
+    gst_all_1.gstreamer
+  ];
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+      versionPolicy = "none";
+    };
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Projects/Grilo;
+    description = "A collection of plugins for the Grilo framework";
+    maintainers = gnome3.maintainers;
+    license = licenses.lgpl21;
+    platforms = platforms.linux;
+  };
+}