Blame SOURCES/grilo-0.2.12-vala-revert.patch

07f81f
From c9127ac6218c997ff2ddf250dbf5a6d5af9fd12d Mon Sep 17 00:00:00 2001
07f81f
From: Bastien Nocera <hadess@hadess.net>
07f81f
Date: Mon, 4 May 2015 15:45:47 +0200
07f81f
Subject: [PATCH 1/7] Revert "vala: Add some missing definitions"
07f81f
07f81f
This reverts commit 78d4690dabd4fe1822ab8d610a76faa385d2e3e3.
07f81f
---
07f81f
 bindings/vala/grilo-0.2-custom.vala | 6 ------
07f81f
 1 file changed, 6 deletions(-)
07f81f
07f81f
diff --git a/bindings/vala/grilo-0.2-custom.vala b/bindings/vala/grilo-0.2-custom.vala
07f81f
index d045526..4e075e9 100644
07f81f
--- a/bindings/vala/grilo-0.2-custom.vala
07f81f
+++ b/bindings/vala/grilo-0.2-custom.vala
07f81f
@@ -112,12 +112,6 @@ namespace Grl {
07f81f
 		[CCode (cname ="GRL_METADATA_KEY_AUDIO_TRACK")]
07f81f
 		public static Grl.KeyID AUDIO_TRACK;
07f81f
 
07f81f
-		[CCode (cname ="GRL_METADATA_KEY_CHILDCOUNT_UNKNOWN")]
07f81f
-		public static uint CHILDCOUNT_UNKNOWN;
07f81f
-
07f81f
-		[CCode (cname ="GRL_SOURCE_REMAINING_UNKNOWN")]
07f81f
-		public static uint REMAINING_UNKNOWN;
07f81f
-
07f81f
 		public static GLib.List list_new (Grl.KeyID p, ...);
07f81f
 	}
07f81f
 }
07f81f
-- 
07f81f
2.4.0
07f81f
07f81f
07f81f
From 62845c257f736472c7bba9043e6ad04c435f4f32 Mon Sep 17 00:00:00 2001
07f81f
From: Bastien Nocera <hadess@hadess.net>
07f81f
Date: Mon, 4 May 2015 15:46:56 +0200
07f81f
Subject: [PATCH 2/7] Revert "build: fix distcheck for Vala"
07f81f
07f81f
This reverts commit 76eafa8194c4563190cbfe6cd058c02576e8c7f4.
07f81f
---
07f81f
 bindings/vala/Makefile.am | 5 +----
07f81f
 1 file changed, 1 insertion(+), 4 deletions(-)
07f81f
07f81f
diff --git a/bindings/vala/Makefile.am b/bindings/vala/Makefile.am
07f81f
index acb859c..bb494be 100644
07f81f
--- a/bindings/vala/Makefile.am
07f81f
+++ b/bindings/vala/Makefile.am
07f81f
@@ -1,5 +1,4 @@
07f81f
 EXTRA_DIST =
07f81f
-CLEANFILES =
07f81f
 
07f81f
 if ENABLE_VAPIGEN
07f81f
 -include $(VAPIGEN_MAKEFILE)
07f81f
@@ -12,7 +11,7 @@ grilo_@GRL_MAJORMINOR_NORM@_vapi_DEPS = gio-2.0
07f81f
 grilo_@GRL_MAJORMINOR_NORM@_vapi_METADATADIRS = $(srcdir)
07f81f
 grilo_@GRL_MAJORMINOR_NORM@_vapi_FILES = $(srcdir)/grilo-@GRL_MAJORMINOR@-custom.vala $(top_builddir)/src/Grl-@GRL_MAJORMINOR@.gir
07f81f
 
07f81f
-EXTRA_DIST += Grl-@GRL_MAJORMINOR@.metadata grilo-@GRL_MAJORMINOR@.deps grilo-@GRL_MAJORMINOR@-custom.vala
07f81f
+EXTRA_DIST += grilo-@GRL_MAJORMINOR@.metadata grilo-@GRL_MAJORMINOR@.deps grilo-@GRL_MAJORMINOR@-custom.vala
07f81f
 
07f81f
 grilo-net-@GRL_MAJORMINOR@.vapi:  $(top_builddir)/libs/net/GrlNet-@GRL_MAJORMINOR@.gir grilo-net-@GRL_MAJORMINOR@-custom.vala grilo-net-@GRL_MAJORMINOR@.deps GrlNet-@GRL_MAJORMINOR@.metadata
07f81f
 
07f81f
@@ -25,8 +24,6 @@ EXTRA_DIST += GrlNet-@GRL_MAJORMINOR@.metadata grilo-net-@GRL_MAJORMINOR@.deps g
07f81f
 vapidir = $(datadir)/vala/vapi
07f81f
 vapi_DATA = $(VAPIGEN_VAPIS) $(VAPIGEN_VAPIS:.vapi=.deps)
07f81f
 
07f81f
-CLEANFILES += $(vapi_DATA)
07f81f
-
07f81f
 endif
07f81f
 
07f81f
 -include $(top_srcdir)/git.mk
07f81f
-- 
07f81f
2.4.0
07f81f
07f81f
07f81f
From d58512af408ad8e1de508b4c22a57a00f0d36bd7 Mon Sep 17 00:00:00 2001
07f81f
From: Bastien Nocera <hadess@hadess.net>
07f81f
Date: Mon, 4 May 2015 15:48:30 +0200
07f81f
Subject: [PATCH 3/7] Revert "build: Add vapigen.m4 file"
07f81f
07f81f
This reverts commit 7a7ccfc43d558e5b6f425498fd8be9d2664eabd0.
07f81f
---
07f81f
 m4/vapigen.m4 | 101 ----------------------------------------------------------
07f81f
 1 file changed, 101 deletions(-)
07f81f
 delete mode 100644 m4/vapigen.m4
07f81f
07f81f
diff --git a/m4/vapigen.m4 b/m4/vapigen.m4
07f81f
deleted file mode 100644
07f81f
index 2c435e7..0000000
07f81f
--- a/m4/vapigen.m4
07f81f
+++ /dev/null
07f81f
@@ -1,101 +0,0 @@
07f81f
-dnl vapigen.m4
07f81f
-dnl
07f81f
-dnl Copyright 2012 Evan Nemerson
07f81f
-dnl
07f81f
-dnl This library is free software; you can redistribute it and/or
07f81f
-dnl modify it under the terms of the GNU Lesser General Public
07f81f
-dnl License as published by the Free Software Foundation; either
07f81f
-dnl version 2.1 of the License, or (at your option) any later version.
07f81f
-dnl
07f81f
-dnl This library is distributed in the hope that it will be useful,
07f81f
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
07f81f
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
07f81f
-dnl Lesser General Public License for more details.
07f81f
-dnl
07f81f
-dnl You should have received a copy of the GNU Lesser General Public
07f81f
-dnl License along with this library; if not, write to the Free Software
07f81f
-dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
07f81f
-
07f81f
-# VAPIGEN_CHECK([VERSION], [API_VERSION], [FOUND_INTROSPECTION], [DEFAULT])
07f81f
-# --------------------------------------
07f81f
-# Check vapigen existence and version
07f81f
-#
07f81f
-# See http://live.gnome.org/Vala/UpstreamGuide for detailed documentation
07f81f
-AC_DEFUN([VAPIGEN_CHECK],
07f81f
-[
07f81f
-  AS_IF([test "x$3" != "xyes"], [
07f81f
-      m4_provide_if([GOBJECT_INTROSPECTION_CHECK], [], [
07f81f
-          m4_provide_if([GOBJECT_INTROSPECTION_REQUIRE], [], [
07f81f
-              AC_MSG_ERROR([[You must call GOBJECT_INTROSPECTION_CHECK or GOBJECT_INTROSPECTION_REQUIRE before using VAPIGEN_CHECK unless using the FOUND_INTROSPECTION argument is "yes"]])
07f81f
-            ])
07f81f
-        ])
07f81f
-    ])
07f81f
-
07f81f
-  AC_ARG_ENABLE([vala],
07f81f
-    [AS_HELP_STRING([--enable-vala[=@<:@no/auto/yes@:>@]],[build Vala bindings @<:@default=]ifelse($4,,auto,$4)[@:>@])],,[
07f81f
-      AS_IF([test "x$4" = "x"], [
07f81f
-          enable_vala=auto
07f81f
-        ], [
07f81f
-          enable_vala=$4
07f81f
-        ])
07f81f
-    ])
07f81f
-
07f81f
-  AS_CASE([$enable_vala], [no], [enable_vala=no],
07f81f
-      [yes], [
07f81f
-        AS_IF([test "x$3" != "xyes" -a "x$found_introspection" != "xyes"], [
07f81f
-            AC_MSG_ERROR([Vala bindings require GObject Introspection])
07f81f
-          ])
07f81f
-      ], [auto], [
07f81f
-        AS_IF([test "x$3" != "xyes" -a "x$found_introspection" != "xyes"], [
07f81f
-            enable_vala=no
07f81f
-          ])
07f81f
-      ], [
07f81f
-        AC_MSG_ERROR([Invalid argument passed to --enable-vala, should be one of @<:@no/auto/yes@:>@])
07f81f
-      ])
07f81f
-
07f81f
-  AS_IF([test "x$2" = "x"], [
07f81f
-      vapigen_pkg_name=vapigen
07f81f
-    ], [
07f81f
-      vapigen_pkg_name=vapigen-$2
07f81f
-    ])
07f81f
-  AS_IF([test "x$1" = "x"], [
07f81f
-      vapigen_pkg="$vapigen_pkg_name"
07f81f
-    ], [
07f81f
-      vapigen_pkg="$vapigen_pkg_name >= $1"
07f81f
-    ])
07f81f
-
07f81f
-  PKG_PROG_PKG_CONFIG
07f81f
-
07f81f
-  PKG_CHECK_EXISTS([$vapigen_pkg], [
07f81f
-      AS_IF([test "$enable_vala" = "auto"], [
07f81f
-          enable_vala=yes
07f81f
-        ])
07f81f
-    ], [
07f81f
-      AS_CASE([$enable_vala], [yes], [
07f81f
-          AC_MSG_ERROR([$vapigen_pkg not found])
07f81f
-        ], [auto], [
07f81f
-          enable_vala=no
07f81f
-        ])
07f81f
-    ])
07f81f
-
07f81f
-  AC_MSG_CHECKING([for vapigen])
07f81f
-
07f81f
-  AS_CASE([$enable_vala],
07f81f
-    [yes], [
07f81f
-      VAPIGEN=`$PKG_CONFIG --variable=vapigen $vapigen_pkg_name`
07f81f
-      VAPIGEN_MAKEFILE=`$PKG_CONFIG --variable=datadir $vapigen_pkg_name`/vala/Makefile.vapigen
07f81f
-      AS_IF([test "x$2" = "x"], [
07f81f
-          VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir $vapigen_pkg_name`
07f81f
-        ], [
07f81f
-          VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned $vapigen_pkg_name`
07f81f
-        ])
07f81f
-    ])
07f81f
-
07f81f
-  AC_MSG_RESULT([$enable_vala])
07f81f
-
07f81f
-  AC_SUBST([VAPIGEN])
07f81f
-  AC_SUBST([VAPIGEN_VAPIDIR])
07f81f
-  AC_SUBST([VAPIGEN_MAKEFILE])
07f81f
-
07f81f
-  AM_CONDITIONAL(ENABLE_VAPIGEN, test "x$enable_vala" = "xyes")
07f81f
-])
07f81f
-- 
07f81f
2.4.0
07f81f
07f81f
07f81f
From 010af674f7e32d22aed070e78fe84c5f7f4c5510 Mon Sep 17 00:00:00 2001
07f81f
From: Bastien Nocera <hadess@hadess.net>
07f81f
Date: Mon, 4 May 2015 15:49:21 +0200
07f81f
Subject: [PATCH 4/7] Revert "build-sys: fix out-of-tree build of vapi"
07f81f
07f81f
This reverts commit 8a583607a59395958169dbd2230ab39b90d59e81.
07f81f
---
07f81f
 bindings/vala/Makefile.am | 4 ++--
07f81f
 1 file changed, 2 insertions(+), 2 deletions(-)
07f81f
07f81f
diff --git a/bindings/vala/Makefile.am b/bindings/vala/Makefile.am
07f81f
index bb494be..abcef6b 100644
07f81f
--- a/bindings/vala/Makefile.am
07f81f
+++ b/bindings/vala/Makefile.am
07f81f
@@ -9,7 +9,7 @@ grilo-@GRL_MAJORMINOR@.vapi: $(top_builddir)/src/Grl-@GRL_MAJORMINOR@.gir grilo-
07f81f
 
07f81f
 grilo_@GRL_MAJORMINOR_NORM@_vapi_DEPS = gio-2.0
07f81f
 grilo_@GRL_MAJORMINOR_NORM@_vapi_METADATADIRS = $(srcdir)
07f81f
-grilo_@GRL_MAJORMINOR_NORM@_vapi_FILES = $(srcdir)/grilo-@GRL_MAJORMINOR@-custom.vala $(top_builddir)/src/Grl-@GRL_MAJORMINOR@.gir
07f81f
+grilo_@GRL_MAJORMINOR_NORM@_vapi_FILES = grilo-@GRL_MAJORMINOR@-custom.vala $(top_builddir)/src/Grl-@GRL_MAJORMINOR@.gir
07f81f
 
07f81f
 EXTRA_DIST += grilo-@GRL_MAJORMINOR@.metadata grilo-@GRL_MAJORMINOR@.deps grilo-@GRL_MAJORMINOR@-custom.vala
07f81f
 
07f81f
@@ -17,7 +17,7 @@ grilo-net-@GRL_MAJORMINOR@.vapi:  $(top_builddir)/libs/net/GrlNet-@GRL_MAJORMINO
07f81f
 
07f81f
 grilo_net_@GRL_MAJORMINOR_NORM@_vapi_DEPS = gio-2.0
07f81f
 grilo_net_@GRL_MAJORMINOR_NORM@_vapi_METADATADIRS = $(srcdir)
07f81f
-grilo_net_@GRL_MAJORMINOR_NORM@_vapi_FILES = $(srcdir)/grilo-net-@GRL_MAJORMINOR@-custom.vala $(top_builddir)/libs/net/GrlNet-@GRL_MAJORMINOR@.gir
07f81f
+grilo_net_@GRL_MAJORMINOR_NORM@_vapi_FILES = grilo-net-@GRL_MAJORMINOR@-custom.vala $(top_builddir)/libs/net/GrlNet-@GRL_MAJORMINOR@.gir
07f81f
 
07f81f
 EXTRA_DIST += GrlNet-@GRL_MAJORMINOR@.metadata grilo-net-@GRL_MAJORMINOR@.deps grilo-net-@GRL_MAJORMINOR@-custom.vala
07f81f
 
07f81f
-- 
07f81f
2.4.0
07f81f
07f81f
07f81f
From f5375ed920981265477b6034b7fcdda43846c9f3 Mon Sep 17 00:00:00 2001
07f81f
From: Bastien Nocera <hadess@hadess.net>
07f81f
Date: Mon, 4 May 2015 15:50:58 +0200
07f81f
Subject: [PATCH 5/7] Revert "build-sys: fix gio-2.0 gir bindings errors"
07f81f
07f81f
This reverts commit c760d284acad86bb6f60af711af7d079052832f7.
07f81f
---
07f81f
 bindings/vala/Makefile.am | 4 ++--
07f81f
 1 file changed, 2 insertions(+), 2 deletions(-)
07f81f
07f81f
diff --git a/bindings/vala/Makefile.am b/bindings/vala/Makefile.am
07f81f
index abcef6b..77947ac 100644
07f81f
--- a/bindings/vala/Makefile.am
07f81f
+++ b/bindings/vala/Makefile.am
07f81f
@@ -7,7 +7,7 @@ VAPIGEN_VAPIS = grilo-@GRL_MAJORMINOR@.vapi grilo-net-@GRL_MAJORMINOR@.vapi
07f81f
 
07f81f
 grilo-@GRL_MAJORMINOR@.vapi: $(top_builddir)/src/Grl-@GRL_MAJORMINOR@.gir grilo-@GRL_MAJORMINOR@-custom.vala grilo-@GRL_MAJORMINOR@.deps Grl-@GRL_MAJORMINOR@.metadata
07f81f
 
07f81f
-grilo_@GRL_MAJORMINOR_NORM@_vapi_DEPS = gio-2.0
07f81f
+grilo_@GRL_MAJORMINOR_NORM@_vapi_DEPS =
07f81f
 grilo_@GRL_MAJORMINOR_NORM@_vapi_METADATADIRS = $(srcdir)
07f81f
 grilo_@GRL_MAJORMINOR_NORM@_vapi_FILES = grilo-@GRL_MAJORMINOR@-custom.vala $(top_builddir)/src/Grl-@GRL_MAJORMINOR@.gir
07f81f
 
07f81f
@@ -15,7 +15,7 @@ EXTRA_DIST += grilo-@GRL_MAJORMINOR@.metadata grilo-@GRL_MAJORMINOR@.deps grilo-
07f81f
 
07f81f
 grilo-net-@GRL_MAJORMINOR@.vapi:  $(top_builddir)/libs/net/GrlNet-@GRL_MAJORMINOR@.gir grilo-net-@GRL_MAJORMINOR@-custom.vala grilo-net-@GRL_MAJORMINOR@.deps GrlNet-@GRL_MAJORMINOR@.metadata
07f81f
 
07f81f
-grilo_net_@GRL_MAJORMINOR_NORM@_vapi_DEPS = gio-2.0
07f81f
+grilo_net_@GRL_MAJORMINOR_NORM@_vapi_DEPS =
07f81f
 grilo_net_@GRL_MAJORMINOR_NORM@_vapi_METADATADIRS = $(srcdir)
07f81f
 grilo_net_@GRL_MAJORMINOR_NORM@_vapi_FILES = grilo-net-@GRL_MAJORMINOR@-custom.vala $(top_builddir)/libs/net/GrlNet-@GRL_MAJORMINOR@.gir
07f81f
 
07f81f
-- 
07f81f
2.4.0
07f81f
07f81f
07f81f
From 7d34bd88a20b90a6eca14743eddae3ff9f689625 Mon Sep 17 00:00:00 2001
07f81f
From: Bastien Nocera <hadess@hadess.net>
07f81f
Date: Mon, 4 May 2015 16:18:21 +0200
07f81f
Subject: [PATCH 6/7] Revert "build: Require vala 0.27"
07f81f
07f81f
This reverts commit f48941d8e38cace3f709c78a2609c30d2693d998.
07f81f
---
07f81f
 configure.ac | 2 +-
07f81f
 1 file changed, 1 insertion(+), 1 deletion(-)
07f81f
07f81f
diff --git a/configure.ac b/configure.ac
07f81f
index a7e45a1..7c845e0 100644
07f81f
--- a/configure.ac
07f81f
+++ b/configure.ac
07f81f
@@ -258,7 +258,7 @@ GOBJECT_INTROSPECTION_CHECK([0.9])
07f81f
 # VALA BINDINGS
07f81f
 # ----------------------------------------------------------
07f81f
 
07f81f
-VAPIGEN_CHECK([0.27])
07f81f
+VAPIGEN_CHECK([0.26])
07f81f
 
07f81f
 # ----------------------------------------------------------
07f81f
 # GETTEXT/INTLTOOL
07f81f
-- 
07f81f
2.4.0
07f81f
07f81f
07f81f
From 98b94d97697bc63bdb16a64ed74da0d1f95bfc26 Mon Sep 17 00:00:00 2001
07f81f
From: Bastien Nocera <hadess@hadess.net>
07f81f
Date: Mon, 4 May 2015 16:18:29 +0200
07f81f
Subject: [PATCH 7/7] Revert "vala: modernize bindings generation"
07f81f
07f81f
This reverts commit 689bf702cb3d264cca9b1a689d6237f611ad3407.
07f81f
---
07f81f
 bindings/Makefile.am                             |  6 +-
07f81f
 bindings/vala/Grl-0.2.metadata                   | 15 -----
07f81f
 bindings/vala/GrlNet-0.2.metadata                |  3 -
07f81f
 bindings/vala/Makefile.am                        | 83 +++++++++++++++++++-----
07f81f
 bindings/vala/grilo-0.2-custom.vala              | 17 ++++-
07f81f
 bindings/vala/grilo-0.2.metadata                 | 58 +++++++++++++++++
07f81f
 bindings/vala/grilo-net-0.2.metadata             |  6 ++
07f81f
 bindings/vala/grilo-net-uninstalled.files.in     |  2 +
07f81f
 bindings/vala/grilo-net-uninstalled.namespace.in |  1 +
07f81f
 bindings/vala/grilo-uninstalled.defines          |  1 +
07f81f
 bindings/vala/grilo-uninstalled.files.in         | 13 ++++
07f81f
 bindings/vala/grilo-uninstalled.namespace.in     |  1 +
07f81f
 configure.ac                                     | 49 ++++++++++++--
07f81f
 13 files changed, 211 insertions(+), 44 deletions(-)
07f81f
 delete mode 100644 bindings/vala/Grl-0.2.metadata
07f81f
 delete mode 100644 bindings/vala/GrlNet-0.2.metadata
07f81f
 create mode 100644 bindings/vala/grilo-0.2.metadata
07f81f
 create mode 100644 bindings/vala/grilo-net-0.2.metadata
07f81f
 create mode 100644 bindings/vala/grilo-net-uninstalled.files.in
07f81f
 create mode 100644 bindings/vala/grilo-net-uninstalled.namespace.in
07f81f
 create mode 100644 bindings/vala/grilo-uninstalled.defines
07f81f
 create mode 100644 bindings/vala/grilo-uninstalled.files.in
07f81f
 create mode 100644 bindings/vala/grilo-uninstalled.namespace.in
07f81f
07f81f
diff --git a/bindings/Makefile.am b/bindings/Makefile.am
07f81f
index 86de8f0..50c92aa 100644
07f81f
--- a/bindings/Makefile.am
07f81f
+++ b/bindings/Makefile.am
07f81f
@@ -1,3 +1,7 @@
07f81f
-SUBDIRS = vala
07f81f
+SUBDIRS =
07f81f
+
07f81f
+if HAVE_VALA
07f81f
+SUBDIRS += vala
07f81f
+endif
07f81f
 
07f81f
 -include $(top_srcdir)/git.mk
07f81f
diff --git a/bindings/vala/Grl-0.2.metadata b/bindings/vala/Grl-0.2.metadata
07f81f
deleted file mode 100644
07f81f
index c59ffd8..0000000
07f81f
--- a/bindings/vala/Grl-0.2.metadata
07f81f
+++ /dev/null
07f81f
@@ -1,15 +0,0 @@
07f81f
-// vapigen has issues with the callbacks
07f81f
-PluginDescriptor skip=true
07f81f
-
07f81f
-Source.browse#method name="do_browse"
07f81f
-Source.query#method name="do_query"
07f81f
-Source.remove#method name="do_remove"
07f81f
-Source.resolve#method name="do_resolve"
07f81f
-Source.search#method name="do_search"
07f81f
-Source.store#method name="do_store"
07f81f
-Source.store_metadata#method name="do_store_metadata"
07f81f
-Source.supported_operations#method name="get_supported_operations"
07f81f
-*.callback delegate_target_cname="user_data"
07f81f
-
07f81f
-
07f81f
-SourceStoreSpec.user_data type="string"
07f81f
\ No newline at end of file
07f81f
diff --git a/bindings/vala/GrlNet-0.2.metadata b/bindings/vala/GrlNet-0.2.metadata
07f81f
deleted file mode 100644
07f81f
index 73465ad..0000000
07f81f
--- a/bindings/vala/GrlNet-0.2.metadata
07f81f
+++ /dev/null
07f81f
@@ -1,3 +0,0 @@
07f81f
-Wc.request_with_headers_hash_async finish_name="grl_net_wc_request_finish"
07f81f
-Wc.request_with_headers_async skip=false
07f81f
-Wc.request_with_headers_async finish_name="grl_net_wc_request_finish"
07f81f
diff --git a/bindings/vala/Makefile.am b/bindings/vala/Makefile.am
07f81f
index 77947ac..8c0fffe 100644
07f81f
--- a/bindings/vala/Makefile.am
07f81f
+++ b/bindings/vala/Makefile.am
07f81f
@@ -1,29 +1,78 @@
07f81f
-EXTRA_DIST =
07f81f
+# This Makefile is a tad convoluted. I've tried to make it so that the vapi
07f81f
+# can be built at the same time as the library in the hope that this will make
07f81f
+# it easier to keep it up-to-date.
07f81f
+#
07f81f
+# The vapi is generated in 2 steps:
07f81f
+#
07f81f
+#   vala-gen-introspect looks at headers and libs and generates a gidl for the
07f81f
+#   library. It takes a .files file containing paths to these. It also takes a
07f81f
+#   .namespace file containing the Vala namespace corresponding to this
07f81f
+#   library. Both these files are expected to be in the directory where you run
07f81f
+#   vala-gen-introspect.
07f81f
+#
07f81f
+#   vapigen takes the gidl, a .deps file containing the list of libs needed
07f81f
+#   to link this library, and a .metadata file containing annotations to the
07f81f
+#   gidl (e.g. foo() is the free function for object X).
07f81f
+#
07f81f
+# vala-gen-introspect runs with the -uninstalled .pc file. The .files is
07f81f
+# generated so that it has links to the headers and libraries from the source
07f81f
+# and build trees. The .namespace file is generated, though it doesn't need
07f81f
+# to be, so that it exists in the build tree where vala-gen-introspect is run
07f81f
+# (because this may not be the same as the source tree). Since we're working
07f81f
+# with the -uninstalled files, and vala-gen-introspect assumes filenames are
07f81f
+# named as <package>.<extension>, all the associated file names have an
07f81f
+# -uninstalled suffix.
07f81f
+#
07f81f
+# Running vapigen is simpler. It generates a the .vapi file using the gidl
07f81f
+# file from vala-gen-introspect. Since we want the final files to be in the
07f81f
+# form <libname>-<version>.*, we use the same convention for naming the files
07f81f
+# associated with this step (contrast with the -uninstalled suffix for the
07f81f
+# vala-gen-introspect step). The only file implicitly used by vapigen is the
07f81f
+# .deps file, so to make the build independent of a split source/build tree,
07f81f
+# I've put the deps on the vapigen command-line (it's redundant, but helps
07f81f
+# with distcheck).
07f81f
+#
07f81f
 
07f81f
-if ENABLE_VAPIGEN
07f81f
--include $(VAPIGEN_MAKEFILE)
07f81f
+targets = grilo-@GRL_MAJORMINOR@
07f81f
 
07f81f
-VAPIGEN_VAPIS = grilo-@GRL_MAJORMINOR@.vapi grilo-net-@GRL_MAJORMINOR@.vapi
07f81f
+if BUILD_GRILO_NET
07f81f
+targets += grilo-net-@GRL_MAJORMINOR@
07f81f
+endif
07f81f
+
07f81f
+targets_u = $(foreach target,$(targets),$(subst @GRL_MAJORMINOR@,uninstalled,$(target)))
07f81f
 
07f81f
-grilo-@GRL_MAJORMINOR@.vapi: $(top_builddir)/src/Grl-@GRL_MAJORMINOR@.gir grilo-@GRL_MAJORMINOR@-custom.vala grilo-@GRL_MAJORMINOR@.deps Grl-@GRL_MAJORMINOR@.metadata
07f81f
+# "source" files for vala-gen-introspect
07f81f
+filesfiles_src = $(foreach target,$(targets_u),$(target).files.in)
07f81f
+filesfiles = $(foreach target,$(targets_u),$(target).files)
07f81f
+nsfiles_src = $(foreach target,$(targets_u),$(target).namespace.in)
07f81f
+nsfiles = $(foreach target,$(targets_u),$(target).namespace)
07f81f
 
07f81f
-grilo_@GRL_MAJORMINOR_NORM@_vapi_DEPS =
07f81f
-grilo_@GRL_MAJORMINOR_NORM@_vapi_METADATADIRS = $(srcdir)
07f81f
-grilo_@GRL_MAJORMINOR_NORM@_vapi_FILES = grilo-@GRL_MAJORMINOR@-custom.vala $(top_builddir)/src/Grl-@GRL_MAJORMINOR@.gir
07f81f
+# "source" files for vapigen
07f81f
+depsfiles = $(foreach target,$(targets),$(target).deps)
07f81f
+gifiles = $(foreach target,$(targets),$(target).gi)
07f81f
+metadatafiles = $(foreach target,$(targets),$(target).metadata)
07f81f
 
07f81f
-EXTRA_DIST += grilo-@GRL_MAJORMINOR@.metadata grilo-@GRL_MAJORMINOR@.deps grilo-@GRL_MAJORMINOR@-custom.vala
07f81f
+vapidir = $(datadir)/vala/vapi
07f81f
 
07f81f
-grilo-net-@GRL_MAJORMINOR@.vapi:  $(top_builddir)/libs/net/GrlNet-@GRL_MAJORMINOR@.gir grilo-net-@GRL_MAJORMINOR@-custom.vala grilo-net-@GRL_MAJORMINOR@.deps GrlNet-@GRL_MAJORMINOR@.metadata
07f81f
+if HAVE_VALA
07f81f
+vapifiles = $(foreach target,$(targets),$(target).vapi)
07f81f
+vapi_DATA = $(depsfiles) $(vapifiles)
07f81f
+endif
07f81f
 
07f81f
-grilo_net_@GRL_MAJORMINOR_NORM@_vapi_DEPS =
07f81f
-grilo_net_@GRL_MAJORMINOR_NORM@_vapi_METADATADIRS = $(srcdir)
07f81f
-grilo_net_@GRL_MAJORMINOR_NORM@_vapi_FILES = grilo-net-@GRL_MAJORMINOR@-custom.vala $(top_builddir)/libs/net/GrlNet-@GRL_MAJORMINOR@.gir
07f81f
+%-@GRL_MAJORMINOR@.gi: %-uninstalled.files %-uninstalled.namespace
07f81f
+	PKG_CONFIG_PATH=$(top_builddir)/:${PKG_CONFIG_PATH} \
07f81f
+		$(VALA_GEN_INTROSPECT) $*-uninstalled .
07f81f
+	@mv $*-uninstalled.gi $*-@GRL_MAJORMINOR@.gi
07f81f
 
07f81f
-EXTRA_DIST += GrlNet-@GRL_MAJORMINOR@.metadata grilo-net-@GRL_MAJORMINOR@.deps grilo-net-@GRL_MAJORMINOR@-custom.vala
07f81f
+%.vapi: %.gi %.metadata %-custom.vala
07f81f
+	$(VAPIGEN) --library $* \
07f81f
+		$(top_srcdir)/bindings/vala/$*.metadata $*.gi \
07f81f
+		$*-custom.vala
07f81f
 
07f81f
-vapidir = $(datadir)/vala/vapi
07f81f
-vapi_DATA = $(VAPIGEN_VAPIS) $(VAPIGEN_VAPIS:.vapi=.deps)
07f81f
+all: $(vapifiles)
07f81f
 
07f81f
-endif
07f81f
+EXTRA_DIST = $(depsfiles) $(filesfiles_src) $(nsfiles_src) $(metadatafiles) $(vapifiles)
07f81f
+CLEANFILES = $(gifiles)
07f81f
+DISTCLEANFILES = $(vapifiles) $(filesfiles) $(nsfiles)
07f81f
 
07f81f
 -include $(top_srcdir)/git.mk
07f81f
diff --git a/bindings/vala/grilo-0.2-custom.vala b/bindings/vala/grilo-0.2-custom.vala
07f81f
index 4e075e9..1d13da3 100644
07f81f
--- a/bindings/vala/grilo-0.2-custom.vala
07f81f
+++ b/bindings/vala/grilo-0.2-custom.vala
07f81f
@@ -1,6 +1,19 @@
07f81f
 namespace Grl {
07f81f
+	[CCode (instance_pos = 3.1)]
07f81f
+	public delegate void SourceResolveCb (Grl.Source source, uint operation_id, Grl.Media? media, GLib.Error error);
07f81f
+	[CCode (instance_pos = 2.1)]
07f81f
+	public delegate void SourceRemoveCb (Grl.Source source, Grl.Media? media, GLib.Error error);
07f81f
+	[CCode (instance_pos = 4.1)]
07f81f
+	public delegate void SourceResultCb (Grl.Source source, uint operation_id, Grl.Media? media, uint remaining, GLib.Error? error);
07f81f
+	[CCode (instance_pos = 3.1)]
07f81f
+	public delegate void SourceStoreCb (Grl.Source source, Grl.MediaBox? parent, Grl.Media? media, GLib.Error? error);
07f81f
 
07f81f
-	public struct MetadataKey {
07f81f
+	[SimpleType]
07f81f
+	public struct KeyID {
07f81f
+	}
07f81f
+
07f81f
+	[Compact]
07f81f
+	public class MetadataKey {
07f81f
 		[CCode (cname ="GRL_METADATA_KEY_INVALID")]
07f81f
 		public static Grl.KeyID INVALID;
07f81f
 		[CCode (cname ="GRL_METADATA_KEY_ALBUM")]
07f81f
@@ -112,6 +125,6 @@ namespace Grl {
07f81f
 		[CCode (cname ="GRL_METADATA_KEY_AUDIO_TRACK")]
07f81f
 		public static Grl.KeyID AUDIO_TRACK;
07f81f
 
07f81f
-		public static GLib.List list_new (Grl.KeyID p, ...);
07f81f
+		public static unowned GLib.List list_new (Grl.KeyID p, ...);
07f81f
 	}
07f81f
 }
07f81f
diff --git a/bindings/vala/grilo-0.2.metadata b/bindings/vala/grilo-0.2.metadata
07f81f
new file mode 100644
07f81f
index 0000000..98ef88a
07f81f
--- /dev/null
07f81f
+++ b/bindings/vala/grilo-0.2.metadata
07f81f
@@ -0,0 +1,58 @@
07f81f
+# Grilo library
07f81f
+Grl cprefix="Grl" lower_case_cprefix="grl_" cheader_filename="grilo.h"
07f81f
+
07f81f
+# GrlConfig
07f81f
+grl_config_new.source nullable="1"
07f81f
+
07f81f
+# GrlRegistry
07f81f
+grl_registry_add_config.config transfer_ownership="1"
07f81f
+grl_registry_get_metadata_keys type_arguments="unowned KeyID" transfer_ownership="1"
07f81f
+grl_registry_get_sources type_arguments="unowned Plugin" transfer_ownership="1"
07f81f
+grl_registry_get_sources_by_operations type_arguments="unowned Plugin" transfer_ownership="1"
07f81f
+
07f81f
+# GrlPlugin
07f81f
+grl_plugin_get_info_keys type_arguments="unowned string" transfer_ownership="1"
07f81f
+
07f81f
+# GrlSource
07f81f
+grl_source_slow_keys type_arguments="unowned KeyID" transfer_ownership="0"
07f81f
+grl_source_supported_keys type_arguments="unowned KeyID" transfer_ownership="0"
07f81f
+grl_source_writable_keys type_arguments="unowned KeyID" transfer_ownership="0"
07f81f
+grl_source_browse.container nullable="1"
07f81f
+grl_source_browse.keys type_arguments="KeyID"
07f81f
+grl_source_browse_sync type_arguments="Media" transfer_ownership="1"
07f81f
+grl_source_browse_sync.keys type_arguments="KeyID"
07f81f
+grl_source_query.keys type_arguments="KeyID"
07f81f
+grl_source_query_sync type_arguments="Media" transfer_ownership="1"
07f81f
+grl_source_query_sync.keys type_arguments="KeyID"
07f81f
+grl_source_search.keys type_arguments="KeyID"
07f81f
+grl_source_search_sync type_arguments="Media" transfer_ownership="1"
07f81f
+grl_source_search_sync.keys type_arguments="KeyID"
07f81f
+grl_source_may_resolve.missing_keys type_arguments="unowned KeyID" is_out="1" transfer_ownership="1"
07f81f
+grl_source_resolve.keys type_arguments="KeyID"
07f81f
+grl_source_resolve_sync.keys type_arguments="KeyID"
07f81f
+grl_source_store_metadata.keys type_arguments="KeyID"
07f81f
+grl_source_set_metadata_sync.keys type_arguments="KeyID"
07f81f
+grl_source_key_depends type_arguments="unowned KeyID" transfer_ownership="0"
07f81f
+
07f81f
+# GrlOperationOptions
07f81f
+grl_operation_options_new.caps nullable="1"
07f81f
+
07f81f
+# GrlData
07f81f
+grl_data_get_keys type_arguments="unowned KeyID" transfer_ownership="1"
07f81f
+
07f81f
+# Error domain
07f81f
+GrlCoreError errordomain="1"
07f81f
+
07f81f
+# Callbacks
07f81f
+GrlSourceRemoveCb hidden="1"
07f81f
+GrlSourceResultCb hidden="1"
07f81f
+GrlSourceStoreCb hidden="1"
07f81f
+GrlSourceStoreMetadataCb hidden="1"
07f81f
+GrlSourceResolveCb hidden="1"
07f81f
+
07f81f
+# Util
07f81f
+grl_list_from_va ellipsis="1"
07f81f
+
07f81f
+# Grilo
07f81f
+grl_init.argc hidden="1"
07f81f
+grl_init.argv is_array="1" is_ref="1" array_length_pos="0.9"
07f81f
diff --git a/bindings/vala/grilo-net-0.2.metadata b/bindings/vala/grilo-net-0.2.metadata
07f81f
new file mode 100644
07f81f
index 0000000..3552012
07f81f
--- /dev/null
07f81f
+++ b/bindings/vala/grilo-net-0.2.metadata
07f81f
@@ -0,0 +1,6 @@
07f81f
+# Grilo Net library
07f81f
+GrlNet cprefix="GrlNet" lower_case_cprefix="grl_net_" cheader_filename="net/grl-net.h"
07f81f
+
07f81f
+# GrlNetWc
07f81f
+grl_net_wc_request_*.content transfer_ownership="0" is_out="1"
07f81f
+grl_net_wc_request_*.length nullable="1" is_out="1" default_value="null"
07f81f
diff --git a/bindings/vala/grilo-net-uninstalled.files.in b/bindings/vala/grilo-net-uninstalled.files.in
07f81f
new file mode 100644
07f81f
index 0000000..b857dbe
07f81f
--- /dev/null
07f81f
+++ b/bindings/vala/grilo-net-uninstalled.files.in
07f81f
@@ -0,0 +1,2 @@
07f81f
+@top_builddir@/libs/net/grl-net.h
07f81f
+@top_builddir@/libs/net/.libs/libgrlnet-0.2.so
07f81f
diff --git a/bindings/vala/grilo-net-uninstalled.namespace.in b/bindings/vala/grilo-net-uninstalled.namespace.in
07f81f
new file mode 100644
07f81f
index 0000000..6430318
07f81f
--- /dev/null
07f81f
+++ b/bindings/vala/grilo-net-uninstalled.namespace.in
07f81f
@@ -0,0 +1 @@
07f81f
+GrlNet
07f81f
diff --git a/bindings/vala/grilo-uninstalled.defines b/bindings/vala/grilo-uninstalled.defines
07f81f
new file mode 100644
07f81f
index 0000000..3bb8068
07f81f
--- /dev/null
07f81f
+++ b/bindings/vala/grilo-uninstalled.defines
07f81f
@@ -0,0 +1 @@
07f81f
+-DGRILO_COMPILATION
07f81f
diff --git a/bindings/vala/grilo-uninstalled.files.in b/bindings/vala/grilo-uninstalled.files.in
07f81f
new file mode 100644
07f81f
index 0000000..7c8a334
07f81f
--- /dev/null
07f81f
+++ b/bindings/vala/grilo-uninstalled.files.in
07f81f
@@ -0,0 +1,13 @@
07f81f
+@top_builddir@/src/grilo.h
07f81f
+@top_builddir@/src/grl-error.h
07f81f
+@top_builddir@/src/grl-log.h
07f81f
+@top_builddir@/src/grl-plugin.h
07f81f
+@top_builddir@/src/grl-source.h
07f81f
+
07f81f
+@top_builddir@/src/grl-caps.h
07f81f
+@top_builddir@/src/grl-operation-options.h
07f81f
+@top_builddir@/src/grl-multiple.h
07f81f
+@top_builddir@/src/grl-registry.h
07f81f
+@top_builddir@/src/grl-util.h
07f81f
+@top_builddir@/src/data/
07f81f
+@top_builddir@/src/.libs/libgrilo-0.2.so
07f81f
diff --git a/bindings/vala/grilo-uninstalled.namespace.in b/bindings/vala/grilo-uninstalled.namespace.in
07f81f
new file mode 100644
07f81f
index 0000000..a83f898
07f81f
--- /dev/null
07f81f
+++ b/bindings/vala/grilo-uninstalled.namespace.in
07f81f
@@ -0,0 +1 @@
07f81f
+Grl
07f81f
diff --git a/configure.ac b/configure.ac
07f81f
index 7c845e0..c3e2ae5 100644
07f81f
--- a/configure.ac
07f81f
+++ b/configure.ac
07f81f
@@ -243,22 +243,55 @@ AC_ARG_ENABLE([tests],
07f81f
 AM_CONDITIONAL(ENABLE_TESTS, test "enable_tests" = "xyes")
07f81f
 
07f81f
 # ----------------------------------------------------------
07f81f
-# GTK-DOC
07f81f
+# VALA BINDINGS
07f81f
 # ----------------------------------------------------------
07f81f
 
07f81f
-GTK_DOC_CHECK([1.10],[--flavour no-tmpl])
07f81f
+AC_PATH_PROG([VALAC], [valac])
07f81f
+AC_PATH_PROG([VALA_GEN_INTROSPECT], [vala-gen-introspect])
07f81f
+AC_PATH_PROG([VAPIGEN], [vapigen])
07f81f
+
07f81f
+AC_ARG_ENABLE([vala],
07f81f
+        AS_HELP_STRING([--enable-vala],
07f81f
+                [Enable Vala plugin support (default: auto)]),
07f81f
+        [
07f81f
+                case "$enableval" in
07f81f
+                     yes)
07f81f
+                        if test "x$VALAC" = "x"; then
07f81f
+                           AC_MSG_ERROR([valac not found, install it or use --disable-vala])
07f81f
+                        fi
07f81f
+                        if test "x$VALA_GEN_INTROSPECT" = "x"; then
07f81f
+                           AC_MSG_ERROR([vala-gen-introspect not found, install it or use --disable-vala])
07f81f
+                        fi
07f81f
+                        if test "x$VAPIGEN" = "x"; then
07f81f
+                           AC_MSG_ERROR([vapigen not found, install it or use --disable-vala])
07f81f
+                        fi
07f81f
+                        ;;
07f81f
+                     no)
07f81f
+                        enable_vala=no
07f81f
+                        ;;
07f81f
+                esac
07f81f
+        ],
07f81f
+        [
07f81f
+                if test "x$VALAC" != "x" -a "x$VALA_GEN_INTROSPECT" != "x" -a "x$VAPIGEN" != "x"; then
07f81f
+                   enable_vala=yes
07f81f
+                else
07f81f
+                   enable_vala=no
07f81f
+                fi
07f81f
+        ])
07f81f
+
07f81f
+AM_CONDITIONAL([HAVE_VALA], [test "x$enable_vala" = "xyes"])
07f81f
 
07f81f
 # ----------------------------------------------------------
07f81f
-# GOBJECT-INTROSPECTION
07f81f
+# GTK-DOC
07f81f
 # ----------------------------------------------------------
07f81f
 
07f81f
-GOBJECT_INTROSPECTION_CHECK([0.9])
07f81f
+GTK_DOC_CHECK([1.10],[--flavour no-tmpl])
07f81f
 
07f81f
 # ----------------------------------------------------------
07f81f
-# VALA BINDINGS
07f81f
+# GOBJECT-INTROSPECTION
07f81f
 # ----------------------------------------------------------
07f81f
 
07f81f
-VAPIGEN_CHECK([0.26])
07f81f
+GOBJECT_INTROSPECTION_CHECK([0.9])
07f81f
 
07f81f
 # ----------------------------------------------------------
07f81f
 # GETTEXT/INTLTOOL
07f81f
@@ -307,6 +340,10 @@ AC_CONFIG_FILES([
07f81f
   tools/grilo-launch/Makefile
07f81f
   bindings/Makefile
07f81f
   bindings/vala/Makefile
07f81f
+  bindings/vala/grilo-uninstalled.files
07f81f
+  bindings/vala/grilo-uninstalled.namespace
07f81f
+  bindings/vala/grilo-net-uninstalled.files
07f81f
+  bindings/vala/grilo-net-uninstalled.namespace
07f81f
   doc/Makefile
07f81f
   doc/grilo/Makefile
07f81f
   examples/Makefile
07f81f
-- 
07f81f
2.4.0
07f81f