[grilo-plugins] all: Get rid of XML plugin definitions



commit b4ec244db7ae010310a76cf0b8b7900020aec54b
Author: Juan A. Suarez Romero <jasuarez igalia com>
Date:   Thu Dec 10 11:30:40 2015 +0000

    all: Get rid of XML plugin definitions
    
    Use the new GRL_PLUGIN_DEFINE() to create the plugins.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=759295

 configure.ac                              |   13 +++++++++++--
 src/bookmarks/Makefile.am                 |    4 ----
 src/bookmarks/grl-bookmarks.c             |   18 ++++++++++++------
 src/bookmarks/grl-bookmarks.xml           |   10 ----------
 src/dleyna/Makefile.am                    |   12 +-----------
 src/dleyna/grl-dleyna.c                   |   17 ++++++++++++-----
 src/dleyna/grl-dleyna.xml                 |   10 ----------
 src/dmap/Makefile.am                      |   10 ----------
 src/dmap/grl-daap.c                       |   17 ++++++++++++-----
 src/dmap/grl-daap.xml                     |   10 ----------
 src/dmap/grl-dpap.c                       |   17 ++++++++++++-----
 src/dmap/grl-dpap.xml                     |   10 ----------
 src/filesystem/Makefile.am                |   12 ------------
 src/filesystem/grl-filesystem.c           |   17 ++++++++++++-----
 src/filesystem/grl-filesystem.xml         |   10 ----------
 src/flickr/Makefile.am                    |    4 ----
 src/flickr/grl-flickr.c                   |   17 ++++++++++++-----
 src/flickr/grl-flickr.xml                 |   10 ----------
 src/freebox/Makefile.am                   |    4 +---
 src/freebox/grl-freebox.c                 |   17 ++++++++++++-----
 src/freebox/grl-freebox.xml               |   10 ----------
 src/gravatar/Makefile.am                  |    4 ----
 src/gravatar/grl-gravatar.c               |   20 +++++++++++++-------
 src/gravatar/grl-gravatar.xml             |   10 ----------
 src/jamendo/Makefile.am                   |    4 ----
 src/jamendo/grl-jamendo.c                 |   17 ++++++++++++-----
 src/jamendo/grl-jamendo.xml               |   10 ----------
 src/local-metadata/Makefile.am            |   12 ------------
 src/local-metadata/grl-local-metadata.c   |   17 ++++++++++++-----
 src/local-metadata/grl-local-metadata.xml |   10 ----------
 src/lua-factory/Makefile.am               |    9 ---------
 src/lua-factory/grl-lua-factory.c         |   14 ++++++++++++--
 src/lua-factory/grl-lua-factory.xml       |   10 ----------
 src/magnatune/Makefile.am                 |    4 ----
 src/magnatune/grl-magnatune.c             |   13 ++++++++++++-
 src/magnatune/grl-magnatune.xml           |   10 ----------
 src/metadata-store/Makefile.am            |    4 ----
 src/metadata-store/grl-metadata-store.c   |   17 ++++++++++++-----
 src/metadata-store/grl-metadata-store.xml |   10 ----------
 src/opensubtitles/Makefile.am             |   12 ------------
 src/opensubtitles/grl-opensubtitles.c     |   17 ++++++++++++-----
 src/opensubtitles/grl-opensubtitles.xml   |   10 ----------
 src/optical-media/Makefile.am             |    4 ----
 src/optical-media/grl-optical-media.c     |   17 ++++++++++++-----
 src/optical-media/grl-optical-media.xml   |   10 ----------
 src/podcasts/Makefile.am                  |    4 ----
 src/podcasts/grl-podcasts.c               |   17 ++++++++++++-----
 src/podcasts/grl-podcasts.xml             |   10 ----------
 src/raitv/Makefile.am                     |    4 +---
 src/raitv/grl-raitv.c                     |   18 ++++++++++++------
 src/raitv/grl-raitv.xml                   |   10 ----------
 src/shoutcast/Makefile.am                 |    4 ----
 src/shoutcast/grl-shoutcast.c             |   17 ++++++++++++-----
 src/shoutcast/grl-shoutcast.xml           |   10 ----------
 src/thetvdb/Makefile.am                   |   10 ----------
 src/thetvdb/grl-thetvdb.c                 |   13 ++++++++++++-
 src/thetvdb/grl-thetvdb.xml               |   10 ----------
 src/tmdb/Makefile.am                      |   12 ------------
 src/tmdb/grl-tmdb.c                       |   18 ++++++++++++------
 src/tmdb/grl-tmdb.xml                     |   10 ----------
 src/tracker/Makefile.am                   |    4 ----
 src/tracker/grl-tracker.c                 |   16 ++++++++++++----
 src/tracker/grl-tracker.xml               |   10 ----------
 src/vimeo/Makefile.am                     |   12 +-----------
 src/vimeo/grl-vimeo.c                     |   17 ++++++++++++-----
 src/vimeo/grl-vimeo.xml                   |   10 ----------
 src/youtube/Makefile.am                   |    4 +---
 src/youtube/grl-youtube.c                 |   17 ++++++++++++-----
 src/youtube/grl-youtube.xml               |   10 ----------
 69 files changed, 293 insertions(+), 488 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index bd73a5d..a769507 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5,8 +5,11 @@
 #
 # Copyright (C) 2010, 2011 Igalia S.L.. All rights reserved.
 
-m4_define([prj_name],    [grilo-plugins])
-m4_define([prj_version], [0.3.0])
+m4_define([prj_name],          [grilo-plugins])
+m4_define([grl_major_version], [0])
+m4_define([grl_minor_version], [3])
+m4_define([grl_micro_version], [0])
+m4_define([prj_version],       [grl_major_version.grl_minor_version.grl_micro_version])
 
 AC_INIT([prj_name],
         [prj_version],
@@ -101,9 +104,15 @@ AC_SUBST(GLIB_COMPILE_RESOURCES)
 
 # Plugins directory
 
+GRL_MAJOR=grl_major_version
+GRL_MINOR=grl_minor_version
 GRL_PLUGINS_DIR=`${PKG_CONFIG} --variable=plugindir ${GRL_NAME}`
+AC_SUBST(GRL_MAJOR)
+AC_SUBST(GRL_MINOR)
 AC_SUBST(GRL_PLUGINS_DIR)
 AC_DEFINE_UNQUOTED(GRL_PLUGINS_DIR, "$GRL_PLUGINS_DIR", [Plugins directory])
+AC_DEFINE_UNQUOTED(GRL_MAJOR, $GRL_MAJOR, [plugins major version])
+AC_DEFINE_UNQUOTED(GRL_MINOR, $GRL_MINOR, [plugins minor version])
 
 # ----------------------------------------------------------
 # EXTERNAL/OPTIONAL DEPENDENCIES
diff --git a/src/bookmarks/Makefile.am b/src/bookmarks/Makefile.am
index 66222d6..f91a48a 100644
--- a/src/bookmarks/Makefile.am
+++ b/src/bookmarks/Makefile.am
@@ -29,9 +29,5 @@ libgrlbookmarks_la_SOURCES =          \
        bookmarks-resource.h
 
 extdir                         = $(GRL_PLUGINS_DIR)
-bookmarksxmldir        = $(GRL_PLUGINS_DIR)
-bookmarksxml_DATA      = $(BOOKMARKS_PLUGIN_ID).xml
-
-EXTRA_DIST += $(bookmarksxml_DATA)
 
 -include $(top_srcdir)/git.mk
diff --git a/src/bookmarks/grl-bookmarks.c b/src/bookmarks/grl-bookmarks.c
index 2fb75b0..dfdfef8 100644
--- a/src/bookmarks/grl-bookmarks.c
+++ b/src/bookmarks/grl-bookmarks.c
@@ -61,8 +61,6 @@ GRL_LOG_DOMAIN_STATIC(bookmarks_log_domain);
 
 /* --- Plugin information --- */
 
-#define PLUGIN_ID   BOOKMARKS_PLUGIN_ID
-
 #define SOURCE_ID   "grl-bookmarks"
 #define SOURCE_NAME _("Bookmarks")
 #define SOURCE_DESC _("A source for organizing media bookmarks")
@@ -168,10 +166,18 @@ grl_bookmarks_plugin_register_keys (GrlRegistry *registry,
   }
 }
 
- GRL_PLUGIN_REGISTER_FULL (grl_bookmarks_plugin_init,
-                           NULL,
-                           grl_bookmarks_plugin_register_keys,
-                           PLUGIN_ID);
+GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                   GRL_MINOR,
+                   BOOKMARKS_PLUGIN_ID,
+                   "Bookmarks",
+                   "A plugin for organizing media bookmarks",
+                   "Igalia S.L.",
+                   VERSION,
+                   "LGPL",
+                   "http://www.igalia.com";,
+                   grl_bookmarks_plugin_init,
+                   NULL,
+                   grl_bookmarks_plugin_register_keys);
 
  /* ================== Bookmarks GObject ================ */
 
diff --git a/src/dleyna/Makefile.am b/src/dleyna/Makefile.am
index 1bb1ce7..41d4ca6 100644
--- a/src/dleyna/Makefile.am
+++ b/src/dleyna/Makefile.am
@@ -46,15 +46,6 @@ libgrldleyna_la_SOURCES =       \
        $(NULL)
 
 extdir         = $(GRL_PLUGINS_DIR)
-dleynaxmldir   = $(GRL_PLUGINS_DIR)
-dleynaxml_DATA = $(DLEYNA_PLUGIN_ID).xml
-
-# This lets us test the plugin without installing it, because grilo expects the
-# .so and .xml files to be in the same directory.
-copy-xml-to-libs-dir: libgrldleyna.la
-       $(AM_V_at)cp -f $(srcdir)/$(dleynaxml_DATA) $(builddir)/.libs/
-
-all-local: copy-xml-to-libs-dir
 
 grl-dleyna-proxy-mediaserver2.h grl-dleyna-proxy-mediaserver2.c: org.gnome.UPnP.MediaServer2.xml
        $(AM_V_GEN)${GDBUS_CODEGEN} \
@@ -80,7 +71,6 @@ grl-dleyna-proxy-mediadevice.h grl-dleyna-proxy-mediadevice.c: com.intel.dLeynaS
 EXTRA_DIST +=                                                                          \
        com.intel.dLeynaServer.Manager.xml     \
        com.intel.dLeynaServer.MediaDevice.xml \
-       org.gnome.UPnP.MediaServer2.xml        \
-       $(dleynaxml_DATA)
+       org.gnome.UPnP.MediaServer2.xml
 
 -include $(top_srcdir)/git.mk
diff --git a/src/dleyna/grl-dleyna.c b/src/dleyna/grl-dleyna.c
index 3af3b56..ac38175 100644
--- a/src/dleyna/grl-dleyna.c
+++ b/src/dleyna/grl-dleyna.c
@@ -33,8 +33,6 @@
 #define GRL_LOG_DOMAIN_DEFAULT dleyna_log_domain
 GRL_LOG_DOMAIN(dleyna_log_domain);
 
-#define PLUGIN_ID   DLEYNA_PLUGIN_ID
-
 /* Globals */
 static GrlDleynaServersManager *servers = NULL;
 
@@ -132,6 +130,15 @@ grl_dleyna_plugin_deinit (GrlPlugin *plugin)
   g_clear_object (&servers);
 }
 
-GRL_PLUGIN_REGISTER (grl_dleyna_plugin_init,
-                     grl_dleyna_plugin_deinit,
-                     PLUGIN_ID);
+GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                   GRL_MINOR,
+                   DLEYNA_PLUGIN_ID,
+                   "dLeyna",
+                   "A plugin for browsing DLNA servers",
+                   "Intel Corp.",
+                   VERSION,
+                   "LGPL",
+                   "https://01.org/dleyna";,
+                   grl_dleyna_plugin_init,
+                   grl_dleyna_plugin_deinit,
+                   NULL);
diff --git a/src/dmap/Makefile.am b/src/dmap/Makefile.am
index e6f3cf0..6db4fc6 100644
--- a/src/dmap/Makefile.am
+++ b/src/dmap/Makefile.am
@@ -35,11 +35,6 @@ libgrldaap_la_SOURCES =                              \
        grl-daap-db.c                                   \
        grl-daap-db.h
 
-daapxmldir             = $(GRL_PLUGINS_DIR)
-daapxml_DATA   = $(DAAP_PLUGIN_ID).xml
-
-EXTRA_DIST    += $(daapxml_DATA)
-
 libgrldpap_la_CFLAGS = \
        $(DEPS_DMAP_CFLAGS)     \
        -DG_LOG_DOMAIN=\"GrlDmap\" \
@@ -65,9 +60,4 @@ libgrldpap_la_SOURCES =                               \
        grl-dpap-db.c                                   \
        grl-dpap-db.h
 
-dpapxmldir             = $(GRL_PLUGINS_DIR)
-dpapxml_DATA   = $(DPAP_PLUGIN_ID).xml
-
-EXTRA_DIST    += $(dpapxml_DATA)
-
 -include $(top_srcdir)/git.mk
diff --git a/src/dmap/grl-daap.c b/src/dmap/grl-daap.c
index 2cb683a..edcdb61 100644
--- a/src/dmap/grl-daap.c
+++ b/src/dmap/grl-daap.c
@@ -46,8 +46,6 @@ GRL_LOG_DOMAIN_STATIC(daap_log_domain);
 
 /* --- Plugin information --- */
 
-#define PLUGIN_ID   DAAP_PLUGIN_ID
-
 #define SOURCE_ID_TEMPLATE   "grl-daap-%s"
 #define SOURCE_DESC_TEMPLATE _("A source for browsing the DAAP server '%s'")
 
@@ -142,9 +140,18 @@ grl_daap_plugin_init (GrlRegistry *registry,
   return TRUE;
 }
 
-GRL_PLUGIN_REGISTER (grl_daap_plugin_init,
-                     NULL,
-                     PLUGIN_ID);
+GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                   GRL_MINOR,
+                   DAAP_PLUGIN_ID,
+                   "DMAP",
+                   "A plugin for browsing DAAP servers",
+                   "W. Michael Petullo",
+                   VERSION,
+                   "LGPL",
+                   "http://www.flyn.org";,
+                   grl_daap_plugin_init,
+                   NULL,
+                   NULL);
 
 /* ================== DAAP GObject ====================== */
 
diff --git a/src/dmap/grl-dpap.c b/src/dmap/grl-dpap.c
index 007e220..0e9ad1c 100644
--- a/src/dmap/grl-dpap.c
+++ b/src/dmap/grl-dpap.c
@@ -46,8 +46,6 @@ GRL_LOG_DOMAIN_STATIC(dmap_log_domain);
 
 /* --- Plugin information --- */
 
-#define PLUGIN_ID   DPAP_PLUGIN_ID
-
 #define SOURCE_ID_TEMPLATE   "grl-dpap-%s"
 #define SOURCE_DESC_TEMPLATE _("A source for browsing the DPAP server '%s'")
 
@@ -142,9 +140,18 @@ grl_dpap_plugin_init (GrlRegistry *registry,
   return TRUE;
 }
 
-GRL_PLUGIN_REGISTER (grl_dpap_plugin_init,
-                     NULL,
-                     PLUGIN_ID);
+GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                   GRL_MINOR,
+                   DPAP_PLUGIN_ID,
+                   "DPAP",
+                   "A plugin for browsing DPAP servers",
+                   "W. Michael Petullo",
+                   VERSION,
+                   "LGPL",
+                   "http://www.flyn.org";,
+                   grl_dpap_plugin_init,
+                   NULL,
+                   NULL);
 
 /* ================== DMAP GObject ====================== */
 
diff --git a/src/filesystem/Makefile.am b/src/filesystem/Makefile.am
index 261dea8..9a463d6 100644
--- a/src/filesystem/Makefile.am
+++ b/src/filesystem/Makefile.am
@@ -25,17 +25,5 @@ libgrlfilesystem_la_LDFLAGS = \
 libgrlfilesystem_la_SOURCES = grl-filesystem.c grl-filesystem.h
 
 extdir                                 = $(GRL_PLUGINS_DIR)
-filesystemxmldir               = $(GRL_PLUGINS_DIR)
-filesystemxml_DATA     = $(FILESYSTEM_PLUGIN_ID).xml
-
-# This lets us test the plugin without installing it,
-# because grilo expects the .so and .xml files to be in
-# the same directory:
-copy-xml-to-libs-dir: libgrlfilesystem.la
-       cp -f $(srcdir)/$(filesystemxml_DATA) $(builddir)/.libs/
-
-all-local: copy-xml-to-libs-dir
-
-EXTRA_DIST += $(filesystemxml_DATA)
 
 -include $(top_srcdir)/git.mk
diff --git a/src/filesystem/grl-filesystem.c b/src/filesystem/grl-filesystem.c
index 82b475e..c71545a 100644
--- a/src/filesystem/grl-filesystem.c
+++ b/src/filesystem/grl-filesystem.c
@@ -54,8 +54,6 @@ GRL_LOG_DOMAIN_STATIC(filesystem_log_domain);
 
 /* --- Plugin information --- */
 
-#define PLUGIN_ID   FILESYSTEM_PLUGIN_ID
-
 #define SOURCE_ID   "grl-filesystem"
 #define SOURCE_NAME _("Filesystem")
 #define SOURCE_DESC _("A source for browsing the filesystem")
@@ -198,9 +196,18 @@ grl_filesystem_plugin_init (GrlRegistry *registry,
   return TRUE;
 }
 
-GRL_PLUGIN_REGISTER (grl_filesystem_plugin_init,
-                     NULL,
-                     PLUGIN_ID);
+GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                   GRL_MINOR,
+                   FILESYSTEM_PLUGIN_ID,
+                   "Filesystem",
+                   "A plugin for browsing the filesystem",
+                   "Igalia S.L.",
+                   VERSION,
+                   "LGPL",
+                   "http://www.igalia.com";,
+                   grl_filesystem_plugin_init,
+                   NULL,
+                   NULL);
 
 /* ================== Filesystem GObject ================ */
 
diff --git a/src/flickr/Makefile.am b/src/flickr/Makefile.am
index ceb00cd..ee7968c 100644
--- a/src/flickr/Makefile.am
+++ b/src/flickr/Makefile.am
@@ -31,9 +31,5 @@ libgrlflickr_la_SOURCES =     \
        flickr-oauth.h
 
 libplugindir           = $(GRL_PLUGINS_DIR)
-flickrlibxmldir        = $(GRL_PLUGINS_DIR)
-flickrlibxml_DATA = $(FLICKR_PLUGIN_ID).xml
-
-EXTRA_DIST += $(flickrlibxml_DATA)
 
 -include $(top_srcdir)/git.mk
diff --git a/src/flickr/grl-flickr.c b/src/flickr/grl-flickr.c
index 4ae721c..9f8b99a 100644
--- a/src/flickr/grl-flickr.c
+++ b/src/flickr/grl-flickr.c
@@ -56,8 +56,6 @@ GRL_LOG_DOMAIN(flickr_log_domain);
 
 /* --- Plugin information --- */
 
-#define PLUGIN_ID   FLICKR_PLUGIN_ID
-
 #define PUBLIC_SOURCE_ID   "grl-flickr"
 #define PUBLIC_SOURCE_NAME "Flickr"
 #define PUBLIC_SOURCE_DESC _("A source for browsing and searching Flickr photos")
@@ -248,9 +246,18 @@ grl_flickr_plugin_init (GrlRegistry *registry,
   return TRUE;
 }
 
-GRL_PLUGIN_REGISTER (grl_flickr_plugin_init,
-                     NULL,
-                     PLUGIN_ID);
+GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                   GRL_MINOR,
+                   FLICKR_PLUGIN_ID,
+                   "Flickr",
+                   "A plugin for browsing and searching Flickr photos",
+                   "Igalia S.L.",
+                   VERSION,
+                   "LGPL",
+                   "http://www.igalia.com";,
+                   grl_flickr_plugin_init,
+                   NULL,
+                   NULL);
 
 /* ================== Flickr GObject ================ */
 
diff --git a/src/freebox/Makefile.am b/src/freebox/Makefile.am
index 2a674fa..91f19a7 100644
--- a/src/freebox/Makefile.am
+++ b/src/freebox/Makefile.am
@@ -38,10 +38,8 @@ freeboxresources.c: freebox.gresource.xml freeboxresources.h free.png
                --target=$@ --sourcedir=$(srcdir) --c-name _grl_freebox --generate-source
 
 extdir         = $(GRL_PLUGINS_DIR)
-freeboxxmldir  = $(GRL_PLUGINS_DIR)
-freeboxxml_DATA        = $(FREEBOX_PLUGIN_ID).xml
 
-EXTRA_DIST += $(freeboxxml_DATA) free.png radios.m3u freebox.gresource.xml
+EXTRA_DIST += free.png radios.m3u freebox.gresource.xml
 
 CLEANFILES = freeboxresources.h freeboxresources.c
 
diff --git a/src/freebox/grl-freebox.c b/src/freebox/grl-freebox.c
index 7310c57..e06699e 100644
--- a/src/freebox/grl-freebox.c
+++ b/src/freebox/grl-freebox.c
@@ -44,8 +44,6 @@ GRL_LOG_DOMAIN_STATIC(freebox_log_domain);
 
 /* --- Plugin information --- */
 
-#define PLUGIN_ID   FREEBOX_PLUGIN_ID
-
 #define TV_SOURCE_ID   "grl-freeboxtv"
 #define TV_SOURCE_NAME _("Freebox TV")
 #define TV_SOURCE_DESC _("A source for browsing Freebox TV channels")
@@ -169,9 +167,18 @@ grl_freebox_plugin_init (GrlRegistry *registry,
   return TRUE;
 }
 
-GRL_PLUGIN_REGISTER (grl_freebox_plugin_init,
-                     NULL,
-                     PLUGIN_ID);
+GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                   GRL_MINOR,
+                   FREEBOX_PLUGIN_ID,
+                   "Freebox",
+                   "A plugin for Freebox TV channels",
+                   "GNOME",
+                   VERSION,
+                   "LGPL",
+                   "http://www.gnome.org";,
+                   grl_freebox_plugin_init,
+                   NULL,
+                   NULL);
 
 /* ================== Freebox GObject ================ */
 
diff --git a/src/gravatar/Makefile.am b/src/gravatar/Makefile.am
index 192bb13..e527096 100644
--- a/src/gravatar/Makefile.am
+++ b/src/gravatar/Makefile.am
@@ -25,9 +25,5 @@ libgrlgravatar_la_LDFLAGS = \
 libgrlgravatar_la_SOURCES = grl-gravatar.c grl-gravatar.h
 
 extdir                         = $(GRL_PLUGINS_DIR)
-gravatarxmldir         = $(GRL_PLUGINS_DIR)
-gravatarxml_DATA       = $(GRAVATAR_PLUGIN_ID).xml
-
-EXTRA_DIST += $(gravatarxml_DATA)
 
 -include $(top_srcdir)/git.mk
diff --git a/src/gravatar/grl-gravatar.c b/src/gravatar/grl-gravatar.c
index 355e908..4ee47a3 100644
--- a/src/gravatar/grl-gravatar.c
+++ b/src/gravatar/grl-gravatar.c
@@ -42,9 +42,7 @@ GRL_LOG_DOMAIN_STATIC(gravatar_log_domain);
 
 /* ------- Pluging Info -------- */
 
-#define PLUGIN_ID   GRAVATAR_PLUGIN_ID
-
-#define SOURCE_ID   PLUGIN_ID
+#define SOURCE_ID   GRAVATAR_PLUGIN_ID
 #define SOURCE_NAME _("Avatar provider from Gravatar")
 #define SOURCE_DESC _("A plugin to get avatars for artist and author fields")
 
@@ -127,10 +125,18 @@ grl_gravatar_source_plugin_register_keys (GrlRegistry *registry,
                                                GRL_METADATA_KEY_AUTHOR_AVATAR);
 }
 
-GRL_PLUGIN_REGISTER_FULL (grl_gravatar_source_plugin_init,
-                          NULL,
-                          grl_gravatar_source_plugin_register_keys,
-                          PLUGIN_ID);
+GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                   GRL_MINOR,
+                   GRAVATAR_PLUGIN_ID,
+                   "Avatar provider from Gravatar",
+                   "A plugin to get avatars for artist and author fields",
+                   "Igalia S.L.",
+                   VERSION,
+                   "LGPL",
+                   "http://www.igalia.com";,
+                   grl_gravatar_source_plugin_init,
+                   NULL,
+                   grl_gravatar_source_plugin_register_keys);
 
 /* ================== Gravatar GObject ================ */
 
diff --git a/src/jamendo/Makefile.am b/src/jamendo/Makefile.am
index b8ee92a..bffbb8d 100644
--- a/src/jamendo/Makefile.am
+++ b/src/jamendo/Makefile.am
@@ -27,9 +27,5 @@ libgrljamendo_la_SOURCES =    \
        grl-jamendo.h
 
 extdir                         = $(GRL_PLUGINS_DIR)
-jamendoxmldir          = $(GRL_PLUGINS_DIR)
-jamendoxml_DATA        = $(JAMENDO_PLUGIN_ID).xml
-
-EXTRA_DIST += $(jamendoxml_DATA)
 
 -include $(top_srcdir)/git.mk
diff --git a/src/jamendo/grl-jamendo.c b/src/jamendo/grl-jamendo.c
index 035b124..7793585 100644
--- a/src/jamendo/grl-jamendo.c
+++ b/src/jamendo/grl-jamendo.c
@@ -86,8 +86,6 @@ GRL_LOG_DOMAIN_STATIC(jamendo_log_domain);
 
 /* --- Plugin information --- */
 
-#define PLUGIN_ID   JAMENDO_PLUGIN_ID
-
 #define SOURCE_ID   "grl-jamendo"
 #define SOURCE_NAME "Jamendo"
 #define SOURCE_DESC _("A source for browsing and searching Jamendo music")
@@ -216,9 +214,18 @@ grl_jamendo_plugin_init (GrlRegistry *registry,
   return TRUE;
 }
 
-GRL_PLUGIN_REGISTER (grl_jamendo_plugin_init,
-                     NULL,
-                     PLUGIN_ID);
+GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                   GRL_MINOR,
+                   JAMENDO_PLUGIN_ID,
+                   "Jamendo",
+                   "A plugin for browsing and searching Jamendo videos",
+                   "Igalia S.L.",
+                   VERSION,
+                   "LGPL",
+                   "http://www.igalia.com";,
+                   grl_jamendo_plugin_init,
+                   NULL,
+                   NULL);
 
 /* ================== Jamendo GObject ================ */
 
diff --git a/src/local-metadata/Makefile.am b/src/local-metadata/Makefile.am
index ea0b136..261b6d7 100644
--- a/src/local-metadata/Makefile.am
+++ b/src/local-metadata/Makefile.am
@@ -26,17 +26,5 @@ libgrllocalmetadata_la_LDFLAGS = \
 libgrllocalmetadata_la_SOURCES = grl-local-metadata.c grl-local-metadata.h
 
 extdir                                         = $(GRL_PLUGINS_DIR)
-localmetadataxmldir            = $(GRL_PLUGINS_DIR)
-localmetadataxml_DATA  = $(LOCALMETADATA_PLUGIN_ID).xml
-
-# This lets us test the plugin without installing it,
-# because grilo expects the .so and .xml files to be in 
-# the same directory:
-copy-xml-to-libs-dir: libgrllocalmetadata.la
-       cp -f $(srcdir)/$(localmetadataxml_DATA) $(builddir)/.libs/
-
-all-local: copy-xml-to-libs-dir
-
-EXTRA_DIST += $(localmetadataxml_DATA)
 
 -include $(top_srcdir)/git.mk
diff --git a/src/local-metadata/grl-local-metadata.c b/src/local-metadata/grl-local-metadata.c
index 8c4a09c..6ecce31 100644
--- a/src/local-metadata/grl-local-metadata.c
+++ b/src/local-metadata/grl-local-metadata.c
@@ -38,8 +38,6 @@
 #define GRL_LOG_DOMAIN_DEFAULT local_metadata_log_domain
 GRL_LOG_DOMAIN_STATIC(local_metadata_log_domain);
 
-#define PLUGIN_ID   LOCALMETADATA_PLUGIN_ID
-
 #define SOURCE_ID   "grl-local-metadata"
 #define SOURCE_NAME _("Local Metadata Provider")
 #define SOURCE_DESC _("A source providing locally available metadata")
@@ -110,9 +108,18 @@ grl_local_metadata_source_plugin_init (GrlRegistry *registry,
   return TRUE;
 }
 
-GRL_PLUGIN_REGISTER (grl_local_metadata_source_plugin_init,
-                     NULL,
-                     PLUGIN_ID);
+GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                   GRL_MINOR,
+                   LOCALMETADATA_PLUGIN_ID,
+                   "Local Metadata Provider",
+                   "A plugin that gets simple-to-obtain metadata from the local filesystem",
+                   "Igalia S.L.",
+                   VERSION,
+                   "LGPL",
+                   "http://www.igalia.com";,
+                   grl_local_metadata_source_plugin_init,
+                   NULL,
+                   NULL);
 
 /* ================== GrlLocalMetadata GObject ================ */
 
diff --git a/src/lua-factory/Makefile.am b/src/lua-factory/Makefile.am
index 8887db7..fa64ef4 100644
--- a/src/lua-factory/Makefile.am
+++ b/src/lua-factory/Makefile.am
@@ -40,8 +40,6 @@ libgrlluafactory_la_SOURCES =                                 \
        lua-library/lua-libraries.h
 
 extdir                 = $(GRL_PLUGINS_DIR)
-luafactoryxmldir       = $(GRL_PLUGINS_DIR)
-luafactoryxml_DATA     = $(LUA_FACTORY_PLUGIN_ID).xml
 
 lua_factory_resources_files =  \
   lua-library/inspect.lua
@@ -54,18 +52,11 @@ luafactoryresources.h: grl-lua-factory.gresource.xml
        $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $(srcdir)/grl-lua-factory.gresource.xml \
                --target=$@ --sourcedir=$(srcdir) --c-name _grl_lua_factory --generate-header
 
-# Rules to enable tests
-copy-xml-to-libs-dir: libgrlluafactory.la
-       cp -f $(srcdir)/$(luafactoryxml_DATA) $(builddir)/.libs/
-
-all-local: copy-xml-to-libs-dir
-
 CLEANFILES =                           \
        luafactoryresources.h           \
        luafactoryresources.c
 
 EXTRA_DIST +=                                  \
-       $(luafactoryxml_DATA)                   \
        $(lua_factory_resources_files)          \
        grl-lua-factory.gresource.xml           \
        lua-library/htmlentity.gperf
diff --git a/src/lua-factory/grl-lua-factory.c b/src/lua-factory/grl-lua-factory.c
index 5d62656..a37c7d1 100644
--- a/src/lua-factory/grl-lua-factory.c
+++ b/src/lua-factory/grl-lua-factory.c
@@ -40,7 +40,6 @@
 GRL_LOG_DOMAIN_STATIC (lua_factory_log_domain);
 
 #define ENV_LUA_SOURCES_PATH  "GRL_LUA_SOURCES_PATH"
-#define LUA_FACTORY_PLUGIN_ID "grl-lua-factory"
 
 /* --- Main table --- */
 #define LUA_SOURCE_TABLE            "source"
@@ -292,7 +291,18 @@ grl_lua_factory_plugin_deinit (GrlPlugin *plugin)
 #endif
 }
 
-GRL_PLUGIN_REGISTER (grl_lua_factory_plugin_init, grl_lua_factory_plugin_deinit, LUA_FACTORY_PLUGIN_ID);
+GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                   GRL_MINOR,
+                   LUA_FACTORY_PLUGIN_ID,
+                   "Lua Source Factory",
+                   "A plugin that creates sources from Lua plugins",
+                   "Victor Toso",
+                   VERSION,
+                   "LGPL",
+                   "http://victortoso.com";,
+                   grl_lua_factory_plugin_init,
+                   grl_lua_factory_plugin_deinit,
+                   NULL);
 
 /* ================== Lua-Factory GObject ================================== */
 
diff --git a/src/magnatune/Makefile.am b/src/magnatune/Makefile.am
index e12ffb7..f7afeb1 100644
--- a/src/magnatune/Makefile.am
+++ b/src/magnatune/Makefile.am
@@ -25,9 +25,5 @@ libgrlmagnatune_la_LDFLAGS = \
 libgrlmagnatune_la_SOURCES = grl-magnatune.c grl-magnatune.h
 
 extdir                         = $(GRL_PLUGINS_DIR)
-magnatunexmldir        = $(GRL_PLUGINS_DIR)
-magnatunexml_DATA      = $(MAGNATUNE_PLUGIN_ID).xml
-
-EXTRA_DIST += $(magnatunexml_DATA)
 
 -include $(top_srcdir)/git.mk
diff --git a/src/magnatune/grl-magnatune.c b/src/magnatune/grl-magnatune.c
index deb62e0..ba4637c 100644
--- a/src/magnatune/grl-magnatune.c
+++ b/src/magnatune/grl-magnatune.c
@@ -206,7 +206,18 @@ grl_magnatune_plugin_init(GrlRegistry *registry,
   return TRUE;
 }
 
-GRL_PLUGIN_REGISTER(grl_magnatune_plugin_init, NULL, SOURCE_ID);
+GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                   GRL_MINOR,
+                   MAGNATUNE_PLUGIN_ID,
+                   "Magnatune",
+                   "A plugin for searching music",
+                   "Victor Toso",
+                   VERSION,
+                   "LGPL",
+                   "http://www.igalia.com";,
+                   grl_magnatune_plugin_init,
+                   NULL,
+                   NULL);
 
 /* ================== Magnatune GObject ================= */
 
diff --git a/src/metadata-store/Makefile.am b/src/metadata-store/Makefile.am
index 02722e3..c0226dd 100644
--- a/src/metadata-store/Makefile.am
+++ b/src/metadata-store/Makefile.am
@@ -25,9 +25,5 @@ libgrlmetadatastore_la_LDFLAGS = \
 libgrlmetadatastore_la_SOURCES = grl-metadata-store.c grl-metadata-store.h
 
 extdir                                         = $(GRL_PLUGINS_DIR)
-metadatastorexmldir            = $(GRL_PLUGINS_DIR)
-metadatastorexml_DATA  = $(METADATA_STORE_PLUGIN_ID).xml
-
-EXTRA_DIST += $(metadatastorexml_DATA)
 
 -include $(top_srcdir)/git.mk
diff --git a/src/metadata-store/grl-metadata-store.c b/src/metadata-store/grl-metadata-store.c
index cdc760f..b91fdeb 100644
--- a/src/metadata-store/grl-metadata-store.c
+++ b/src/metadata-store/grl-metadata-store.c
@@ -41,8 +41,6 @@
 #define GRL_LOG_DOMAIN_DEFAULT metadata_store_log_domain
 GRL_LOG_DOMAIN_STATIC(metadata_store_log_domain);
 
-#define PLUGIN_ID   METADATA_STORE_PLUGIN_ID
-
 #define SOURCE_ID   "grl-metadata-store"
 #define SOURCE_NAME _("Metadata Store")
 #define SOURCE_DESC _("A plugin for storing extra metadata information")
@@ -174,9 +172,18 @@ grl_metadata_store_source_plugin_init (GrlRegistry *registry,
   return TRUE;
 }
 
-GRL_PLUGIN_REGISTER (grl_metadata_store_source_plugin_init,
-                     NULL,
-                     PLUGIN_ID);
+GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                   GRL_MINOR,
+                   METADATA_STORE_PLUGIN_ID,
+                   "Metadata Store",
+                   "A plugin for storing extra metadata information",
+                   "Igalia S.L.",
+                   VERSION,
+                   "LGPL",
+                   "http://www.igalia.com";,
+                   grl_metadata_store_source_plugin_init,
+                   NULL,
+                   NULL);
 
 /* ================== GrlMetadataStore GObject ================ */
 
diff --git a/src/opensubtitles/Makefile.am b/src/opensubtitles/Makefile.am
index 3a59205..3943fa3 100644
--- a/src/opensubtitles/Makefile.am
+++ b/src/opensubtitles/Makefile.am
@@ -19,17 +19,5 @@ libgrlopensubtitles_la_LDFLAGS = \
 libgrlopensubtitles_la_SOURCES = grl-opensubtitles.c grl-opensubtitles.h
 
 extdir                 = $(GRL_PLUGINS_DIR)
-opensubtitlesxmldir    = $(GRL_PLUGINS_DIR)
-opensubtitlesxml_DATA  = $(OPENSUBTITLES_PLUGIN_ID).xml
-
-# This lets us test the plugin without installing it,
-# because grilo expects the .so and .xml files to be in
-# the same directory:
-copy-xml-to-libs-dir: libgrlopensubtitles.la
-       cp -f $(srcdir)/$(opensubtitlesxml_DATA) $(builddir)/.libs/
-
-all-local: copy-xml-to-libs-dir
-
-EXTRA_DIST += $(opensubtitlesxml_DATA)
 
 -include $(top_srcdir)/git.mk
diff --git a/src/opensubtitles/grl-opensubtitles.c b/src/opensubtitles/grl-opensubtitles.c
index 6237d7e..a6c5b2e 100644
--- a/src/opensubtitles/grl-opensubtitles.c
+++ b/src/opensubtitles/grl-opensubtitles.c
@@ -36,8 +36,6 @@
 #define GRL_LOG_DOMAIN_DEFAULT opensubtitles_log_domain
 GRL_LOG_DOMAIN_STATIC(opensubtitles_log_domain);
 
-#define PLUGIN_ID   OPENSUBTITLES_PLUGIN_ID
-
 #define SOURCE_ID   "grl-opensubtitles"
 #define SOURCE_NAME _("OpenSubtitles Provider")
 #define SOURCE_DESC _("A source providing a list of subtitles for a video")
@@ -149,9 +147,18 @@ grl_opensubtitles_source_plugin_init (GrlRegistry *registry,
   return TRUE;
 }
 
-GRL_PLUGIN_REGISTER (grl_opensubtitles_source_plugin_init,
-                     NULL,
-                     PLUGIN_ID);
+GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                   GRL_MINOR,
+                   OPENSUBTITLES_PLUGIN_ID,
+                   "OpenSubtitles Provider",
+                   "A plugin that gets a list of subtitles for a video",
+                   "Bastien Nocera",
+                   VERSION,
+                   "LGPL",
+                   "http://www.hadess.net";,
+                   grl_opensubtitles_source_plugin_init,
+                   NULL,
+                   NULL);
 
 /* ================== GrlOpenSubtitles GObject ================ */
 
diff --git a/src/optical-media/Makefile.am b/src/optical-media/Makefile.am
index 16d34b1..c9e6e1e 100644
--- a/src/optical-media/Makefile.am
+++ b/src/optical-media/Makefile.am
@@ -27,9 +27,5 @@ libgrloptical_media_la_SOURCES =      \
        grl-optical-media.h
 
 extdir                                         = $(GRL_PLUGINS_DIR)
-optical_mediaxmldir            = $(GRL_PLUGINS_DIR)
-optical_mediaxml_DATA  = $(OPTICAL_MEDIA_PLUGIN_ID).xml
-
-EXTRA_DIST += $(optical_mediaxml_DATA)
 
 -include $(top_srcdir)/git.mk
diff --git a/src/optical-media/grl-optical-media.c b/src/optical-media/grl-optical-media.c
index 96d50f4..7f251d3 100644
--- a/src/optical-media/grl-optical-media.c
+++ b/src/optical-media/grl-optical-media.c
@@ -40,8 +40,6 @@ GRL_LOG_DOMAIN_STATIC(optical_media_log_domain);
 
 /* --- Plugin information --- */
 
-#define PLUGIN_ID   OPTICAL_MEDIA_PLUGIN_ID
-
 #define SOURCE_ID   "grl-optical-media"
 #define SOURCE_NAME _("Optical Media")
 #define SOURCE_DESC _("A source for browsing optical media")
@@ -126,9 +124,18 @@ grl_optical_media_plugin_init (GrlRegistry *registry,
   return TRUE;
 }
 
-GRL_PLUGIN_REGISTER (grl_optical_media_plugin_init,
-                     NULL,
-                     PLUGIN_ID);
+GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                   GRL_MINOR,
+                   OPTICAL_MEDIA_PLUGIN_ID,
+                   "Optical Media",
+                   "A plugin for browsing optical media",
+                   "GNOME",
+                   VERSION,
+                   "LGPL",
+                   "http://www.gnome.org";,
+                   grl_optical_media_plugin_init,
+                   NULL,
+                   NULL);
 
 /* ================== OpticalMedia GObject ================ */
 
diff --git a/src/podcasts/Makefile.am b/src/podcasts/Makefile.am
index c6b29f9..982d022 100644
--- a/src/podcasts/Makefile.am
+++ b/src/podcasts/Makefile.am
@@ -25,9 +25,5 @@ libgrlpodcasts_la_LDFLAGS = \
 libgrlpodcasts_la_SOURCES = grl-podcasts.c grl-podcasts.h
 
 extdir                         = $(GRL_PLUGINS_DIR)
-podcastsxmldir         = $(GRL_PLUGINS_DIR)
-podcastsxml_DATA       = $(PODCASTS_PLUGIN_ID).xml
-
-EXTRA_DIST += $(podcastsxml_DATA)
 
 -include $(top_srcdir)/git.mk
diff --git a/src/podcasts/grl-podcasts.c b/src/podcasts/grl-podcasts.c
index 4251c22..89efa1d 100644
--- a/src/podcasts/grl-podcasts.c
+++ b/src/podcasts/grl-podcasts.c
@@ -148,8 +148,6 @@ GRL_LOG_DOMAIN_STATIC(podcasts_log_domain);
 
 /* --- Plugin information --- */
 
-#define PLUGIN_ID   PODCASTS_PLUGIN_ID
-
 #define SOURCE_ID   "grl-podcasts"
 #define SOURCE_NAME "Podcasts"
 #define SOURCE_DESC _("A source for browsing podcasts")
@@ -317,9 +315,18 @@ grl_podcasts_plugin_init (GrlRegistry *registry,
   return TRUE;
 }
 
-GRL_PLUGIN_REGISTER (grl_podcasts_plugin_init,
-                     NULL,
-                     PLUGIN_ID);
+GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                   GRL_MINOR,
+                   PODCASTS_PLUGIN_ID,
+                   "Podcasts",
+                   "A plugin for browsing podcasts",
+                   "Igalia S.L.",
+                   VERSION,
+                   "LGPL",
+                   "http://www.igalia.com";,
+                   grl_podcasts_plugin_init,
+                   NULL,
+                   NULL);
 
 /* ================== Podcasts GObject ================ */
 
diff --git a/src/raitv/Makefile.am b/src/raitv/Makefile.am
index f6a4733..298a2b8 100644
--- a/src/raitv/Makefile.am
+++ b/src/raitv/Makefile.am
@@ -28,8 +28,6 @@ nodist_libgrlraitv_la_SOURCES = \
        $(resource_sources)
 
 extdir                         = $(GRL_PLUGINS_DIR)
-raitvxmldir    = $(GRL_PLUGINS_DIR)
-raitvxml_DATA  = $(RAITV_PLUGIN_ID).xml
 
 raitvresources.h: raitv.gresource.xml
        $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $(srcdir)/raitv.gresource.xml \
@@ -44,6 +42,6 @@ resource_sources = \
        $(NULL)
 CLEANFILES = $(resource_sources)
 
-EXTRA_DIST += $(raitvxml_DATA) channel-rai.svg raitv.gresource.xml
+EXTRA_DIST += channel-rai.svg raitv.gresource.xml
 
 -include $(top_srcdir)/git.mk
diff --git a/src/raitv/grl-raitv.c b/src/raitv/grl-raitv.c
index 633fbd3..8ac022e 100644
--- a/src/raitv/grl-raitv.c
+++ b/src/raitv/grl-raitv.c
@@ -88,8 +88,6 @@ GRL_LOG_DOMAIN_STATIC(raitv_log_domain);
 
 /* --- Plugin information --- */
 
-#define PLUGIN_ID   RAITV_PLUGIN_ID
-
 #define SOURCE_ID   "grl-raitv"
 #define SOURCE_NAME "Rai.tv"
 #define SOURCE_DESC _("A source for browsing and searching Rai.tv videos")
@@ -248,10 +246,18 @@ grl_raitv_plugin_init (GrlRegistry *registry,
   return TRUE;
 }
 
-GRL_PLUGIN_REGISTER (grl_raitv_plugin_init,
-                     NULL,
-                     PLUGIN_ID);
-
+GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                   GRL_MINOR,
+                   RAITV_PLUGIN_ID,
+                   "Rai.tv",
+                   "A plugin for searching multimedia content using Rai.tv",
+                   "Marco Piazza",
+                   VERSION,
+                   "LGPL",
+                   "https://wiki.gnome.org/Projects/Grilo";,
+                   grl_raitv_plugin_init,
+                   NULL,
+                   NULL);
 
 /* ================== Rai.tv GObject ================ */
 
diff --git a/src/shoutcast/Makefile.am b/src/shoutcast/Makefile.am
index 1355f06..8ec5461 100644
--- a/src/shoutcast/Makefile.am
+++ b/src/shoutcast/Makefile.am
@@ -25,9 +25,5 @@ libgrlshoutcast_la_LDFLAGS = \
 libgrlshoutcast_la_SOURCES      = grl-shoutcast.c grl-shoutcast.h
 
 extdir                         = $(GRL_PLUGINS_DIR)
-shoutcastxmldir        = $(GRL_PLUGINS_DIR)
-shoutcastxml_DATA      = $(SHOUTCAST_PLUGIN_ID).xml
-
-EXTRA_DIST += $(shoutcastxml_DATA)
 
 -include $(top_srcdir)/git.mk
diff --git a/src/shoutcast/grl-shoutcast.c b/src/shoutcast/grl-shoutcast.c
index a5d42eb..df177d0 100644
--- a/src/shoutcast/grl-shoutcast.c
+++ b/src/shoutcast/grl-shoutcast.c
@@ -60,8 +60,6 @@ GRL_LOG_DOMAIN_STATIC(shoutcast_log_domain);
 
 /* --- Plugin information --- */
 
-#define PLUGIN_ID   SHOUTCAST_PLUGIN_ID
-
 #define SOURCE_ID   "grl-shoutcast"
 #define SOURCE_NAME "SHOUTcast"
 #define SOURCE_DESC _("A source for browsing SHOUTcast radios")
@@ -167,9 +165,18 @@ grl_shoutcast_plugin_init (GrlRegistry *registry,
   return TRUE;
 }
 
-GRL_PLUGIN_REGISTER (grl_shoutcast_plugin_init,
-                     NULL,
-                     PLUGIN_ID);
+GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                   GRL_MINOR,
+                   SHOUTCAST_PLUGIN_ID,
+                   "SHOUTcast",
+                   "A plugin for browsing SHOUTcast radios",
+                   "Igalia S.L.",
+                   VERSION,
+                   "LGPL",
+                   "http://www.igalia.com";,
+                   grl_shoutcast_plugin_init,
+                   NULL,
+                   NULL);
 
 /* ================== SHOUTcast GObject ================ */
 
diff --git a/src/thetvdb/Makefile.am b/src/thetvdb/Makefile.am
index cc1c056..99b1b13 100644
--- a/src/thetvdb/Makefile.am
+++ b/src/thetvdb/Makefile.am
@@ -31,15 +31,5 @@ libgrlthetvdb_la_SOURCES = \
         thetvdb-resources.h
 
 extdir                         = $(GRL_PLUGINS_DIR)
-thetvdbxmldir  = $(GRL_PLUGINS_DIR)
-thetvdbxml_DATA        = $(THETVDB_PLUGIN_ID).xml
-
-# Rules to enable tests
-copy-xml-to-libs-dir: libgrlthetvdb.la
-       cp -f $(srcdir)/$(thetvdbxml_DATA) $(builddir)/.libs/
-
-all-local: copy-xml-to-libs-dir
-
-EXTRA_DIST += $(thetvdbxml_DATA)
 
 -include $(top_srcdir)/git.mk
diff --git a/src/thetvdb/grl-thetvdb.c b/src/thetvdb/grl-thetvdb.c
index 414c678..aced782 100644
--- a/src/thetvdb/grl-thetvdb.c
+++ b/src/thetvdb/grl-thetvdb.c
@@ -288,7 +288,18 @@ grl_thetvdb_plugin_register_keys (GrlRegistry *registry,
     grl_registry_register_metadata_key (registry, spec, NULL);
 }
 
-GRL_PLUGIN_REGISTER_FULL (grl_thetvdb_plugin_init, NULL, grl_thetvdb_plugin_register_keys, SOURCE_ID);
+GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                   GRL_MINOR,
+                   THETVDB_PLUGIN_ID,
+                   "The TVDB",
+                   "A plugin for fetching metadata of television shows",
+                   "Victor Toso",
+                   VERSION,
+                   "LGPL",
+                   "http://victortoso.com";,
+                   grl_thetvdb_plugin_init,
+                   NULL,
+                   grl_thetvdb_plugin_register_keys);
 
 /* ================== TheTVDB GObject ================= */
 
diff --git a/src/tmdb/Makefile.am b/src/tmdb/Makefile.am
index 1982c57..c84cd93 100644
--- a/src/tmdb/Makefile.am
+++ b/src/tmdb/Makefile.am
@@ -26,17 +26,5 @@ libgrltmdb_la_SOURCES = \
        grl-tmdb-request.c grl-tmdb-request.h
 
 extdir                                 = $(GRL_PLUGINS_DIR)
-tmdbxmldir     = $(GRL_PLUGINS_DIR)
-tmdbxml_DATA   = $(TMDB_PLUGIN_ID).xml
-
-# This lets us test the plugin without installing it,
-# because grilo expects the .so and .xml files to be in 
-# the same directory:
-copy-xml-to-libs-dir: libgrltmdb.la
-       cp -f $(srcdir)/$(tmdbxml_DATA) $(builddir)/.libs/
-
-all-local: copy-xml-to-libs-dir
-
-EXTRA_DIST += $(tmdbxml_DATA)
 
 -include $(top_srcdir)/git.mk
diff --git a/src/tmdb/grl-tmdb.c b/src/tmdb/grl-tmdb.c
index 74892bb..c1b6fc0 100644
--- a/src/tmdb/grl-tmdb.c
+++ b/src/tmdb/grl-tmdb.c
@@ -39,8 +39,6 @@
 #define GRL_LOG_DOMAIN_DEFAULT tmdb_log_domain
 GRL_LOG_DOMAIN(tmdb_log_domain);
 
-#define PLUGIN_ID   TMDB_PLUGIN_ID
-
 #define SOURCE_ID   "grl-tmdb"
 #define SOURCE_NAME "TMDb Metadata Provider"
 #define SOURCE_DESC "A source for movie metadata from themoviedb.org"
@@ -191,10 +189,18 @@ grl_tmdb_source_plugin_register_keys (GrlRegistry *registry,
                            "ID of this movie at tmdb.org");
 }
 
-GRL_PLUGIN_REGISTER_FULL (grl_tmdb_source_plugin_init,
-                          NULL,
-                          grl_tmdb_source_plugin_register_keys,
-                          PLUGIN_ID);
+GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                   GRL_MINOR,
+                   TMDB_PLUGIN_ID,
+                   "TMDb Metadata Provider",
+                   "A plugin to retrieve movie metadata from themoviedb.org",
+                   "Canonical Ltd.",
+                   VERSION,
+                   "LGPL",
+                   "http://www.canonical.com";,
+                   grl_tmdb_source_plugin_init,
+                   NULL,
+                   grl_tmdb_source_plugin_register_keys);
 
 /* ================== GrlTmdbMetadata GObject ================ */
 
diff --git a/src/tracker/Makefile.am b/src/tracker/Makefile.am
index 39e4212..9d8eef1 100644
--- a/src/tracker/Makefile.am
+++ b/src/tracker/Makefile.am
@@ -40,9 +40,5 @@ libgrltracker_la_SOURCES =                    \
        grl-tracker-utils.h
 
 extdir                         = $(GRL_PLUGINS_DIR)
-trackerxmldir          = $(GRL_PLUGINS_DIR)
-trackerxml_DATA        = $(TRACKER_PLUGIN_ID).xml
-
-EXTRA_DIST += $(trackerxml_DATA)
 
 -include $(top_srcdir)/git.mk
diff --git a/src/tracker/grl-tracker.c b/src/tracker/grl-tracker.c
index 0eee368..900e3a5 100644
--- a/src/tracker/grl-tracker.c
+++ b/src/tracker/grl-tracker.c
@@ -294,7 +294,15 @@ grl_tracker_plugin_register_keys (GrlRegistry *registry,
                                       NULL);
 }
 
-GRL_PLUGIN_REGISTER_FULL (grl_tracker_plugin_init,
-                          grl_tracker_plugin_deinit,
-                          grl_tracker_plugin_register_keys,
-                          GRL_TRACKER_PLUGIN_ID);
+GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                   GRL_MINOR,
+                   GRL_TRACKER_PLUGIN_ID,
+                   "Tracker",
+                   "A plugin for searching multimedia content using Tracker",
+                   "Igalia S.L.",
+                   VERSION,
+                   "LGPL",
+                   "http://www.igalia.com";,
+                   grl_tracker_plugin_init,
+                   grl_tracker_plugin_deinit,
+                   grl_tracker_plugin_register_keys);
diff --git a/src/vimeo/Makefile.am b/src/vimeo/Makefile.am
index 3edb838..a9567af 100644
--- a/src/vimeo/Makefile.am
+++ b/src/vimeo/Makefile.am
@@ -32,16 +32,6 @@ nodist_libgrlvimeo_la_SOURCES = \
        $(resource_sources)
 
 extdir                 = $(GRL_PLUGINS_DIR)
-vimeoxmldir            = $(GRL_PLUGINS_DIR)
-vimeoxml_DATA  = $(VIMEO_PLUGIN_ID).xml
-
-# This lets us test the plugin without installing it,
-# because grilo expects the .so and .xml files to be in
-# the same directory:
-copy-xml-to-libs-dir: libgrlvimeo.la
-       cp -f $(srcdir)/$(vimeoxml_DATA) $(builddir)/.libs/
-
-all-local: copy-xml-to-libs-dir
 
 vimeoresources.h: vimeo.gresource.xml
        $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $(srcdir)/vimeo.gresource.xml \
@@ -56,6 +46,6 @@ resource_sources = \
        $(NULL)
 CLEANFILES = $(resource_sources)
 
-EXTRA_DIST += $(vimeoxml_DATA) channel-vimeo.svg vimeo.gresource.xml
+EXTRA_DIST += channel-vimeo.svg vimeo.gresource.xml
 
 -include $(top_srcdir)/git.mk
diff --git a/src/vimeo/grl-vimeo.c b/src/vimeo/grl-vimeo.c
index aa2c41c..3ddbaa5 100644
--- a/src/vimeo/grl-vimeo.c
+++ b/src/vimeo/grl-vimeo.c
@@ -51,8 +51,6 @@ GRL_LOG_DOMAIN_STATIC(vimeo_log_domain);
 
 /* --- Plugin information --- */
 
-#define PLUGIN_ID   VIMEO_PLUGIN_ID
-
 #define SOURCE_ID   "grl-vimeo"
 #define SOURCE_NAME "Vimeo"
 #define SOURCE_DESC _("A source for browsing and searching Vimeo videos")
@@ -162,9 +160,18 @@ grl_vimeo_plugin_init (GrlRegistry *registry,
   return init_result;
 }
 
-GRL_PLUGIN_REGISTER (grl_vimeo_plugin_init,
-                     NULL,
-                     PLUGIN_ID);
+GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                   GRL_MINOR,
+                   VIMEO_PLUGIN_ID,
+                   "Vimeo",
+                   "A plugin for searching Vimeo videos",
+                   "Igalia S.L.",
+                   VERSION,
+                   "LGPL",
+                   "http://www.igalia.com";,
+                   grl_vimeo_plugin_init,
+                   NULL,
+                   NULL);
 
 /* ================== Vimeo GObject ================ */
 
diff --git a/src/youtube/Makefile.am b/src/youtube/Makefile.am
index b84625c..009e89e 100644
--- a/src/youtube/Makefile.am
+++ b/src/youtube/Makefile.am
@@ -28,8 +28,6 @@ nodist_libgrlyoutube_la_SOURCES = \
        youtuberesources.c
 
 extdir                         = $(GRL_PLUGINS_DIR)
-youtubexmldir          = $(GRL_PLUGINS_DIR)
-youtubexml_DATA        = $(YOUTUBE_PLUGIN_ID).xml
 
 youtuberesources.h: youtube.gresource.xml
        $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $(srcdir)/youtube.gresource.xml \
@@ -44,6 +42,6 @@ resource_sources = \
        $(NULL)
 CLEANFILES = $(resource_sources)
 
-EXTRA_DIST += $(youtubexml_DATA) channel-youtube.svg youtube.gresource.xml
+EXTRA_DIST += channel-youtube.svg youtube.gresource.xml
 
 -include $(top_srcdir)/git.mk
diff --git a/src/youtube/grl-youtube.c b/src/youtube/grl-youtube.c
index 0dd6366..3547fd4 100644
--- a/src/youtube/grl-youtube.c
+++ b/src/youtube/grl-youtube.c
@@ -110,8 +110,6 @@ GRL_LOG_DOMAIN_STATIC(youtube_log_domain);
 
 /* --- Plugin information --- */
 
-#define PLUGIN_ID   YOUTUBE_PLUGIN_ID
-
 #define SOURCE_ID   "grl-youtube"
 #define SOURCE_NAME "YouTube"
 #define SOURCE_DESC _("A source for browsing and searching YouTube videos")
@@ -299,9 +297,18 @@ grl_youtube_plugin_init (GrlRegistry *registry,
   return TRUE;
 }
 
-GRL_PLUGIN_REGISTER (grl_youtube_plugin_init,
-                     NULL,
-                     PLUGIN_ID);
+GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                   GRL_MINOR,
+                   YOUTUBE_PLUGIN_ID,
+                   "YouTube",
+                   "A plugin for browsing and searching YouTube videos",
+                   "Igalia",
+                   VERSION,
+                   "LGPL",
+                   "http://www.igalia.com";,
+                   grl_youtube_plugin_init,
+                   NULL,
+                   NULL);
 
 /* ================== YouTube GObject ================ */
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]