[packages/libgda5] - updated to 5.2.0 - graphviz-api,missing,vala patches replaced by new versions - added format patch

qboosh qboosh at pld-linux.org
Sat Nov 16 22:44:43 CET 2013


commit 0e86675981f7a2cad3592c33dee6779e7288cdfb
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sat Nov 16 22:45:19 2013 +0100

    - updated to 5.2.0
    - graphviz-api,missing,vala patches replaced by new versions
    - added format patch (fix build with -Werror=format-security)
    - added yelp patch (fix gnome-doc-utils -> yelp transition)
    - package vala binding and "vala extensions" (libgdadata C/GObject library written in Vala)
    - package Firebird providers

 graphviz-api.patch    |  72 ++----
 libgda5-format.patch  |  11 +
 libgda5-missing.patch | 656 ++++++++++++++++++++++++++++++++------------------
 libgda5-vala.patch    |  20 +-
 libgda5-yelp.patch    |  15 ++
 libgda5.spec          | 129 ++++++++--
 6 files changed, 578 insertions(+), 325 deletions(-)
---
diff --git a/libgda5.spec b/libgda5.spec
index d74dcc1..f1955b6 100644
--- a/libgda5.spec
+++ b/libgda5.spec
@@ -1,11 +1,14 @@
-# TODO: oracle provider; fix broken Vala support?
+# TODO:
+# - oracle provider
+# - glade catalog?
 #
 # Conditional build:
 %bcond_without	apidocs		# API documentation
 %bcond_without	static_libs	# static libraries build
-%bcond_with	vala		# Vala support (doesn't build as of 5.0.4/vala 0.20)
+%bcond_without	vala		# Vala APIs and GdaData C library
 # - database plugins:
 %bcond_without	dbsql		# BerkeleyDB SQL plugin
+%bcond_without	firebird	# Firebird plugins
 %bcond_without	jdbc		# JDBC plugin
 %bcond_without	ldap		# LDAP plugin
 %bcond_without	mdb		# MDB plugin
@@ -19,43 +22,46 @@
 Summary:	GNU Data Access library
 Summary(pl.UTF-8):	Biblioteka GNU Data Access
 Name:		libgda5
-Version:	5.0.4
+Version:	5.2.0
 Release:	1
 License:	LGPL v2+/GPL v2+
 Group:		Libraries
-Source0:	http://ftp.gnome.org/pub/GNOME/sources/libgda/5.0/libgda-%{version}.tar.xz
-# Source0-md5:	33880eae7203c1aed2edb512733cf270
+Source0:	http://ftp.gnome.org/pub/GNOME/sources/libgda/5.2/libgda-%{version}.tar.xz
+# Source0-md5:	db4c6dd95493f7fa032c3862893c4f4b
 Patch0:		%{name}-configure.patch
 Patch1:		graphviz-api.patch
 Patch2:		%{name}-missing.patch
 Patch3:		%{name}-vala.patch
+Patch4:		%{name}-format.patch
+Patch5:		%{name}-yelp.patch
 URL:		http://www.gnome-db.org/
-BuildRequires:	autoconf >= 2.67
-BuildRequires:	automake >= 1:1.8
+%{?with_firebird:BuildRequires:	Firebird-devel}
+BuildRequires:	autoconf >= 2.68
+BuildRequires:	automake >= 1:1.11.1
 BuildRequires:	bison
 BuildRequires:	db-devel
 %{?with_dbsql:BuildRequires:	db-sql-devel}
 BuildRequires:	docbook-dtd412-xml
 BuildRequires:	flex
-BuildRequires:	gdk-pixbuf2-devel
+BuildRequires:	gdk-pixbuf2-devel >= 2.0
 BuildRequires:	gettext-devel
-BuildRequires:	glib2-devel >= 1:2.28.0
+BuildRequires:	glib2-devel >= 1:2.32.0
 BuildRequires:	glibc-misc
-BuildRequires:	gnome-doc-utils >= 0.9.0
-BuildRequires:	gobject-introspection-devel >= 0.6.5
+BuildRequires:	gobject-introspection-devel >= 1.30.0
 BuildRequires:	goocanvas2-devel >= 2.0
 BuildRequires:	graphviz-devel
 BuildRequires:	gtk+3-devel >= 3.0.0
 BuildRequires:	gtk-doc >= 1.14
 BuildRequires:	gtksourceview3-devel >= 3.0
-BuildRequires:	intltool >= 0.40.0
+BuildRequires:	intltool >= 0.40.6
 BuildRequires:	iso-codes
 %{?with_jdbc:BuildRequires:	jdk}
 BuildRequires:	json-glib-devel
 BuildRequires:	libgcrypt-devel >= 1.1.42
-BuildRequires:	libgnome-keyring-devel
+%{?with_vala:BuildRequires:	libgee-devel >= 0.8.0}
+BuildRequires:	libsecret-devel
 BuildRequires:	libsoup-devel >= 2.24.0
-BuildRequires:	libtool >= 2:2.0
+BuildRequires:	libtool >= 2:2.2.6
 BuildRequires:	libunique-devel
 BuildRequires:	libxml2-devel >= 1:2.6.26
 BuildRequires:	libxslt-devel >= 1.1.17
@@ -71,9 +77,10 @@ BuildRequires:	readline-devel >= 5.0
 BuildRequires:	rpmbuild(macros) >= 1.601
 BuildRequires:	sqlite3-devel >= 3.6.11
 BuildRequires:	tar >= 1:1.22
-%{?with_vala:BuildRequires:	vala >= 0.20}
+%{?with_vala:BuildRequires:	vala >= 2:0.18}
 BuildRequires:	xz
-Requires:	glib2 >= 1:2.28.0
+BuildRequires:	yelp-tools
+Requires:	glib2 >= 1:2.32.0
 Conflicts:	libgda4 < 4.2.10-2
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
@@ -100,7 +107,7 @@ Summary:	GNU Data Access development files
 Summary(pl.UTF-8):	Pliki programistyczne biblioteki GNU Data Access
 Group:		Development/Libraries
 Requires:	%{name} = %{version}-%{release}
-Requires:	glib2-devel >= 1:2.28.0
+Requires:	glib2-devel >= 1:2.32.0
 Requires:	libxml2-devel >= 1:2.6.26
 Requires:	libxslt-devel >= 1.1.17
 
@@ -134,13 +141,13 @@ Summary:	libgda 5.x API for Vala language
 Summary(pl.UTF-8):	API libgda 5.x dla języka Vala
 Group:		Development/Libraries
 Requires:	%{name}-devel = %{version}-%{release}
-Requires:	vala >= 0.14
+Requires:	vala >= 2:0.18
 
 %description -n vala-libgda5
-libgda 4.x API for Vala language.
+libgda 5.x API for Vala language.
 
 %description -n vala-libgda5 -l pl.UTF-8
-API libgda 4.x dla języka Vala.
+API libgda 5.x dla języka Vala.
 
 %package ui
 Summary:	GNU Data Access UI library
@@ -181,6 +188,19 @@ GNU Data Access UI static library.
 %description ui-static -l pl.UTF-8
 Statyczna biblioteka GNU Data Access UI.
 
+%package -n vala-libgda5-ui
+Summary:	libgda-ui 5.x API for Vala language
+Summary(pl.UTF-8):	API libgda-ui 5.x dla języka Vala
+Group:		Development/Libraries
+Requires:	%{name}-ui-devel = %{version}-%{release}
+Requires:	vala-libgda5 = %{version}-%{release}
+
+%description -n vala-libgda5-ui
+libgda-ui 5.x API for Vala language.
+
+%description -n vala-libgda5-ui -l pl.UTF-8
+API libgda-ui 5.x dla języka Vala.
+
 %package apidocs
 Summary:	GNU Data Access API documentation
 Summary(pl.UTF-8):	Dokumentacja API GNU Data Access
@@ -217,6 +237,18 @@ This package contains the GDA Berkeley DB SQL provider.
 %description provider-dbsql -l pl.UTF-8
 Pakiet dostaczający dane z Berkeley DB SQL dla GDA.
 
+%package provider-firebird
+Summary:	GDA Firebird providers
+Summary(pl.UTF-8):	Źródła danych Firebirda dla GDA
+Group:		Libraries
+Requires:	%{name} = %{version}-%{release}
+
+%description provider-firebird
+This package contains the GDA Firebird providers.
+
+%description provider-firebird -l pl.UTF-8
+Pakiet dostaczający dane z Firebirda dla GDA.
+
 %package provider-jdbc
 Summary:	GDA JDBC provider
 Summary(pl.UTF-8):	Źródło danych JDBC dla GDA
@@ -334,6 +366,8 @@ Narzędzia graficzne dla GDA.
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
+%patch4 -p1
+%patch5 -p1
 
 %build
 # included version is bash-specific, use system file
@@ -347,19 +381,29 @@ export JAVA_HOME="%{java_home}"
 %{__aclocal} -I m4
 %{__autoconf}
 %{__automake}
+%if %{with jdbc}
+# included getsp.class fails with Sun/Oracle JDK 1.6, regenerate
+javac getsp.java
+%endif
 %configure \
 	--disable-silent-rules \
 	%{!?with_vala:--disable-vala} \
+	--enable-gda-gi \
+	--enable-gdaui-gi \
+	%{?with_vala:--enable-gdaui-vala} \
+	--enable-gtk-doc%{!?with_apidocs:=no} \
+	--enable-json \
 	%{?with_static_libs:--enable-static} \
 	--enable-system-sqlite \
-	--%{?with_apidocs:en}%{!?with_apidocs:dis}able-gtk-doc \
-	--with-html-dir=%{_gtkdocdir} \
+	%{?with_vala:--enable-vala --enable-vala-extensions} \
 	--with-bdb=/usr \
 	--with-bdb-libdir-name=%{_lib} \
-	--with%{!?with_jdbc:out}-java \
-	--with%{!?with_mdb:out}-mdb \
-	--with%{!?with_mysql:out}-mysql \
-	--with%{!?with_pgsql:out}-postgres \
+	--with-html-dir=%{_gtkdocdir} \
+	--with-firebird%{!?with_firebird:=no} \
+	--with-java%{!?with_jdbc:=no} \
+	--with-mdb%{!?with_mdb:=no} \
+	--with-mysql%{!?with_mysql:=no} \
+	--with-postgres%{!?with_pgsql:=no} \
 	--without-oracle
 
 %{__make} -j1
@@ -419,7 +463,14 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %ghost %{_libdir}/libgda-report-5.0.so.4
 %attr(755,root,root) %{_libdir}/libgda-xslt-5.0.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libgda-xslt-5.0.so.4
+%if %{with vala}
+%attr(755,root,root) %{_libdir}/libgdadata-5.0.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libgdadata-5.0.so.0
+%endif
 %{_libdir}/girepository-1.0/Gda-5.0.typelib
+%if %{with vala}
+%{_libdir}/girepository-1.0/GdaData-5.0.typelib
+%endif
 %dir %{_libdir}/libgda-5.0
 %dir %{_libdir}/libgda-5.0/providers
 %dir %{_datadir}/libgda-5.0
@@ -445,11 +496,18 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_libdir}/libgda-5.0.so
 %attr(755,root,root) %{_libdir}/libgda-report-5.0.so
 %attr(755,root,root) %{_libdir}/libgda-xslt-5.0.so
+%if %{with vala}
+%attr(755,root,root) %{_libdir}/libgdadata-5.0.so
+%endif
 %{_datadir}/gir-1.0/Gda-5.0.gir
+%if %{with vala}
+%{_datadir}/gir-1.0/GdaData-5.0.gir
+%endif
 %{_includedir}/libgda-5.0
 %{_pkgconfigdir}/libgda-5.0.pc
 %{_pkgconfigdir}/libgda-bdb-5.0.pc
 %{?with_dbsql:%{_pkgconfigdir}/libgda-bdbsql-5.0.pc}
+%{?with_firebird:%{_pkgconfigdir}/libgda-firebird-5.0.pc}
 %{?with_jdbc:%{_pkgconfigdir}/libgda-jdbc-5.0.pc}
 %{?with_ldap:%{_pkgconfigdir}/libgda-ldap-5.0.pc}
 %{?with_mdb:%{_pkgconfigdir}/libgda-mdb-5.0.pc}
@@ -460,6 +518,7 @@ rm -rf $RPM_BUILD_ROOT
 %{_pkgconfigdir}/libgda-sqlite-5.0.pc
 %{_pkgconfigdir}/libgda-xslt-5.0.pc
 %{_pkgconfigdir}/libgda-web-5.0.pc
+%{?with_vala:%{_pkgconfigdir}/libgdadata-5.0.pc}
 
 %if %{with static_libs}
 %files static
@@ -467,11 +526,15 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libgda-5.0.a
 %{_libdir}/libgda-report-5.0.a
 %{_libdir}/libgda-xslt-5.0.a
+%if %{with vala}
+%{_libdir}/libgdadata-5.0.a
+%endif
 %endif
 
 %if %{with vala}
 %files -n vala-libgda5
 %defattr(644,root,root,755)
+%{_datadir}/vala/vapi/gdadata-5.0.vapi
 %{_datadir}/vala/vapi/libgda-5.0.vapi
 %endif
 
@@ -498,6 +561,12 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libgda-ui-5.0.a
 %endif
 
+%if %{with vala}
+%files -n vala-libgda5-ui
+%defattr(644,root,root,755)
+%{_datadir}/vala/vapi/libgdaui-5.0.vapi
+%endif
+
 %if %{with apidocs}
 %files apidocs
 %defattr(644,root,root,755)
@@ -517,6 +586,14 @@ rm -rf $RPM_BUILD_ROOT
 %{_datadir}/libgda-5.0/bdbsql_specs_*.xml
 %endif
 
+%if %{with firebird}
+%files provider-firebird
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libgda-5.0/providers/libgda-firebird-client.so
+%attr(755,root,root) %{_libdir}/libgda-5.0/providers/libgda-firebird-embed.so
+%{_datadir}/libgda-5.0/firebird_specs_*.xml
+%endif
+
 %if %{with jdbc}
 %files provider-jdbc
 %defattr(644,root,root,755)
diff --git a/graphviz-api.patch b/graphviz-api.patch
index 3140f23..24a7b44 100644
--- a/graphviz-api.patch
+++ b/graphviz-api.patch
@@ -1,55 +1,19 @@
-From f3c0fe314744b079b745afab4c24e5f7c63de784 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ha=C3=AFkel=20Gu=C3=A9mar?= <hguemar at fedoraproject.org>
-Date: Sun, 10 Mar 2013 10:15:36 +0100
-Subject: [PATCH 2/2] fix calls to deprecated graphviz graph API
-
----
- tools/browser/canvas/browser-canvas.c | 18 +++++++++---------
- 1 file changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/tools/browser/canvas/browser-canvas.c b/tools/browser/canvas/browser-canvas.c
-index a67f2f0..b228fd3 100644
---- a/tools/browser/canvas/browser-canvas.c
-+++ b/tools/browser/canvas/browser-canvas.c
-@@ -851,13 +851,13 @@ browser_canvas_perform_auto_layout (BrowserCanvas *canvas, gboolean animate, Bro
- 	if (!gvc)
- 		gvc = gvContext ();
+--- libgda-5.2.0/configure.ac.orig	2013-11-15 17:06:38.881824566 +0100
++++ libgda-5.2.0/configure.ac	2013-11-15 17:30:10.915098425 +0100
+@@ -260,6 +260,8 @@
+ 		if test "x$have_graphviz" = "xyes"
+ 		then
+ 			dnl test if new API is supported
++			save_CFLAGS="$CFLAGS"
++			CFLAGS="$CFLAGS $GRAPHVIZ_CFLAGS"
+ 			AC_MSG_CHECKING([whether Graphviz's new API is supported])
+ 			AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+ #include <gvc.h>
+@@ -270,6 +272,7 @@
+ }
+ ])],
+                         graphviz_new_api=yes, graphviz_new_api=no)
++			CFLAGS="$save_CFLAGS"
  
--	graph = agopen ("BrowserCanvasLayout", AGRAPH);
--        agnodeattr (graph, "shape", "box");
--        agnodeattr (graph, "height", ".1");
--        agnodeattr (graph, "width", ".1");
--        agnodeattr (graph, "fixedsize", "true");
--        agnodeattr (graph, "pack", "true");
--	agnodeattr (graph, "packmode", "node");
-+	graph = agopen ("BrowserCanvasLayout", Agdirected, NULL);
-+        agnode (graph, "shape", "box");
-+        agset (graph, "height", ".1");
-+        agset (graph, "width", ".1");
-+        agset (graph, "fixedsize", "true");
-+        agset (graph, "pack", "true");
-+	agset (graph, "packmode", "node");
- 
- 
- 	if (class->get_layout_items)
-@@ -885,7 +885,7 @@ browser_canvas_perform_auto_layout (BrowserCanvas *canvas, gboolean animate, Bro
- 		nodes_list = g_slist_prepend (nodes_list, nl);
- 		
- 		tmp = g_strdup_printf ("%p", item);
--		node = agnode (graph, tmp);
-+		node = agnode (graph, tmp, 0);
- 		nl->node = node;
- 		g_hash_table_insert (nodes_hash, item, node);
- 		
-@@ -929,7 +929,7 @@ browser_canvas_perform_auto_layout (BrowserCanvas *canvas, gboolean animate, Bro
- 			from_node = (Agnode_t*) g_hash_table_lookup (nodes_hash, from);
- 			to_node = (Agnode_t*) g_hash_table_lookup (nodes_hash, to);
- 			if (from_node && to_node)
--				agedge (graph, from_node, to_node);
-+			  agedge (graph, from_node, to_node, "", 0);
- 		}
- 	}
- 
--- 
-1.8.1.4
-
+ 			AC_MSG_RESULT($graphviz_new_api)
+ 			if test "$graphviz_new_api" = "yes"; then
diff --git a/libgda5-format.patch b/libgda5-format.patch
new file mode 100644
index 0000000..bb5f4e4
--- /dev/null
+++ b/libgda5-format.patch
@@ -0,0 +1,11 @@
+--- libgda-5.2.0/libgda-ui/demos/ddl_queries.c.orig	2013-10-19 14:35:28.000000000 +0200
++++ libgda-5.2.0/libgda-ui/demos/ddl_queries.c	2013-11-15 17:05:25.348494222 +0100
+@@ -478,7 +478,7 @@
+ 
+ 		dlg = gtk_message_dialog_new_with_markup (GTK_WINDOW (data->top_window),
+ 							  GTK_DIALOG_MODAL,
+-							  msg_type, GTK_BUTTONS_CLOSE, msg);
++							  msg_type, GTK_BUTTONS_CLOSE, "%s", msg);
+ 		g_free (sql);
+ 		g_free (msg);
+ 
diff --git a/libgda5-missing.patch b/libgda5-missing.patch
index 087611f..de9dfb6 100644
--- a/libgda5-missing.patch
+++ b/libgda5-missing.patch
@@ -1,236 +1,422 @@
---- libgda-5.0.4/doc/C/data-model-writing.xml.orig	1970-01-01 01:00:00.000000000 +0100
-+++ libgda-5.0.4/doc/C/data-model-writing.xml	2013-06-08 21:31:36.889155994 +0200
-@@ -0,0 +1,190 @@
+--- libgda-5.2.0/tools/help/C/gda-sql-help.xml.orig	1970-01-01 01:00:00.000000000 +0100
++++ libgda-5.2.0/tools/help/C/gda-sql-help.xml	2013-11-16 10:27:41.669203270 +0100
+@@ -0,0 +1,419 @@
 +<?xml version="1.0"?>
-+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
-+"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"[
-+<!ENTITY LIBGDA          "<application>Libgda</application>">
-+]>
-+<sect1 id="gda-data-model-writing">
-+  <title>Implementing your own data model</title>
-+  <para>
-+    You may need at some point to implement your own data model because the implementations in
-+    &LIBGDA; don't suit your needs. This section is dedicated to explaining to you how this can be done.
-+  </para>
-+  <para>
-+    Implementing a new <link linkend="GdaDataModel">GdaDataModel</link> is simply a matter of
-+    creating a new GObject which implements the <link linkend="GdaDataModel">GdaDataModel</link>
-+    interface, which is described below. Thos new class needs to inherit GObject, but needs not
-+    be direct descendant of it. The way to subclass an object using GLib
-+    is not covered in this documentation, for this matter reref to
-+    <link linkend="howto-gobject-code">GObject's documentation</link>, or
-+    <ulink url="http://developer.gnome.org/gobject/stable/howto-gobject.html">online</ulink>.
-+  </para>
-+
-+  <sect2 id="gda-data-model-writing-virtual-methods">
-+    <title>Virtual methods</title>
-+    <para>
-+      The interface's methods which can and/or need to be implemented are defined below.
-+    </para>
-+
-+    <sect3 id="i_get_n_rows">
-+      <title>i_get_n_rows() - optional</title>
-+      <para>This method, if implemented, returns the total number of rows in the data model, or -1 if
-+      unknown. If it's not implemented, then it is assumed that -1 is returned in all cases.</para>
-+    </sect3>
-+
-+    <sect3 id="i_get_n_columns">
-+      <title>i_get_n_columns() - required</title>
-+      <para>This method, returns the total number of columns in the data model, or -1 if unknown.</para>
-+    </sect3>
-+
-+    <sect3 id="i_describe_column">
-+      <title>i_describe_column() - required</title>
-+      <para>This method describes a column; it returns (without any ownership to the caller) a
-+      <link linkend="GdaColumn">GdaColumn</link> for each existing column, or NULL otherwise.</para>
-+    </sect3>
-+
-+    <sect3 id="i_get_access_flags">
-+      <title>i_get_access_flags() - required</title>
-+      <para>This method defines how the data model may be accessed (randomly, only using a cursor, ...)</para>
-+    </sect3>
-+
-+    <sect3 id="i_get_value_at">
-+      <title>i_get_value_at() - required for random access</title>
-+      <para>This method is used to access the contents of a data model, specifically
-+      a <link linkend="GValue">GValue</link> is returned for each (column,row) position.
-+      It must return NULL if the data model experienced an error for the specific (column,row)
-+      position. See <link linkend="gda-data-model-get-value-at">gda_data_model_get_value_at()</link>
-+      for more information about the lifetime of the returned GValue.</para>
-+    </sect3>
-+
-+    <sect3 id="i_get_attributes_at">
-+      <title>i_get_attributes_at() - optional</title>
-+      <para>This method returns, for a (column,row) position in the data model, the attributes
-+      of the adressed "cell".</para>
-+    </sect3>
-+
-+    <sect3 id="i_create_iter">
-+      <title>i_create_iter() - optional</title>
-+      <para>This method can be implemented to create specific
-+      <link linkend="GdaDataModelIter">GdaDataModelIter</link> or to customize them.</para>
-+    </sect3>
-+
-+    <sect3 id="i_iter_at_row">
-+      <title>i_iter_at_row() - optional</title>
-+      <para>This method can be implemented if a specific implementation allows an iterator
-+      to be moved quickly to a specific row (faster than iterating from row to row to the
-+      requested row).</para>
-+    </sect3>
-+
-+    <sect3 id="i_iter_next">
-+      <title>i_iter_next() - required for cursor based access</title>
-+      <para>This method is called to move an iterator to the next row; it's not necessary to
-+      implement it if the data models supports random access.</para>
-+    </sect3>
-+
-+    <sect3 id="i_iter_prev">
-+      <title>i_iter_prev() - optional for cursor based access</title>
-+      <para>This method is called to move an iterator to the previous row. It is only necessary to
-+      implement it if the data model does not support random access and supports moving the
-+      cursor backward.</para>
-+    </sect3>
-+
-+    <sect3 id="i_set_value_at">
-+      <title>i_set_value_at() - optional</title>
-+      <para>This method needs to be defined if the data model allows each value in a (column,row) position
-+      to be modified individually.
-+      </para>
-+    </sect3>
-+
-+    <sect3 id="i_iter_set_value">
-+      <title>i_iter_set_value() - optional</title>
-+      <para>This method can be defined if a specific treatment is required when a modification made
-+      to a <link linkend="GdaDataModelIter">GdaDataModelIter</link> is propagated to the data model.
-+      It should seldom, if ever, be necessary to implement it.</para>
-+    </sect3>
-+
-+    <sect3 id="i_set_values">
-+      <title>i_set_values() - optional</title>
-+      <para>This method needs to be defined if the data model allows modifications to be made for
-+      one complete row at a time. See the
-+      <link linkend="gda-data-model-set-values">gda_data_model_set_values()</link> method for
-+      more information about the arguments</para>
-+    </sect3>
-+
-+    <sect3 id="i_append_values">
-+      <title>i_append_values() - optional</title>
-+      <para>This method can be implemented if the data model needs to support adding a row and defining the
-+      values to be added in the same operation.
-+      See <link linkend="gda-data-model-append-values">gda_data_model_append_values()</link> for
-+      more information.</para>
-+    </sect3>
-+
-+    <sect3 id="i_append_row">
-+      <title>i_append_row() - optional</title>
-+      <para>This method needs to be defined if the data model needs to support adding an empty row (i.e.
-+      without any value specified in the new row).</para>
-+    </sect3>
-+
-+    <sect3 id="i_remove_row">
-+      <title>i_remove_row() - optional</title>
-+      <para>This method should be implemented if the data model needs to support row removal.</para>
-+    </sect3>
-+
-+    <sect3 id="i_find_row">
-+      <title>i_find_row() - optional</title>
-+      <para>This method can be implemented if the data model implements an indexing scheme which
-+      allows it to find rows from values quickly than by analysing each row after another to
-+      find the requested values.</para>
-+    </sect3>
-+
-+    <sect3 id="i_set_notify">
-+      <title>i_set_notify() - optional</title>
-+      <para>This method should be implemented if the data model needs to honor the
-+      <link linkend="gda-data-model-freeze">gda_data_model_freeze()</link> and
-+      <link linkend="gda-data-model-thaw">gda_data_model_thaw()</link> methods. If
-+      this method is not implemented, then these two methods will have no effect.
-+      </para>
-+    </sect3>
-+
-+    <sect3 id="i_get_notify">
-+      <title>i_get_notify() - optional</title>
-+      <para>This method should be implemented if the data model needs to honor the
-+      <link linkend="gda-data-model-freeze">gda_data_model_freeze()</link> and
-+      <link linkend="gda-data-model-thaw">gda_data_model_thaw()</link> methods. If
-+      this method is not implemented, then these two methods will have no effect.</para>
-+    </sect3>
-+
-+    <sect3 id="i_send_hint">
-+      <title>i_send_hint() - optional</title>
-+      <para>This method should be implemented if the data model needs to be able to treat
-+      hints, see <link linkend="gda-data-model-send-hint">gda_data_model_send_hint()</link> for
-+      more information</para>
-+    </sect3>
-+
-+    <sect3 id="i_get_exceptions">
-+      <title>i_get_exceptions() - optional</title>
-+      <para>This method needs to be implemented if the data model keeps exceptions about the errors
-+      it has encountered and may "export" these exceptions using the
-+      <link linkend="gda-data-model-get-exceptions">gda_data_model_get_exceptions()</link> method.</para>
-+    </sect3>
-+  </sect2>
-+
-+  <sect2 id="gda-data-model-writing-signalling">
-+    <title>Signalling changes</title>
-+    <para>
-+      When the data model changes, it must signal those changes using one of the following methods:
-+      <itemizedlist>
-+        <listitem><para><link linkend="gda-data-model-row-inserted">gda_data_model_row_inserted()</link>: to be called after a row has been inserted</para></listitem>
-+        <listitem><para><link linkend="gda-data-model-row-updated">gda_data_model_row_updated()</link>: to be called after a row has been updated</para></listitem>
-+        <listitem><para><link linkend="gda-data-model-row-removed">gda_data_model_row_removed()</link>: to be called after a row has been removed</para></listitem>
-+        <listitem><para><link linkend="gda-data-model-reset">gda_data_model_reset()</link>: to be called
-+	when the data model has changed in a way it's not possible or desirable to signal all the changes
-+	using any combination of the above methods (for example when the whole contents has changed, or
-+	when the number and/or types of columns has changed)</para></listitem>
-+      </itemizedlist>
-+    </para>
-+    <para>
-+      Moreover, when the data model's access flags have changed, the implementation should signal it by
-+      emitting the <link linkend="GdaDataModel-access-changed">"access-changed"</link> signal.
-+    </para>
-+  </sect2>
-+</sect1>
---- libgda-5.0.4/doc/C/migration3.xml.orig	1970-01-01 01:00:00.000000000 +0100
-+++ libgda-5.0.4/doc/C/migration3.xml	2013-06-08 21:31:36.889155994 +0200
-@@ -0,0 +1,40 @@
-+<?xml version="1.0"?>
-+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
-+          "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"[
-+<!ENTITY LIBGDA          "<application>Libgda</application>">
-+]>
-+<chapter id="migration-3" xmlns:xi="http://www.w3.org/2003/XInclude">
-+  <title>Migration from 4.X versions</title>
-+  <sect1><title>Overview</title>
-+    <para>Version 5.0 of &LIBGDA; is a small evolution to adapt to the GTK3 environment; as such it is API
-+    compatible with versions 4.0.x or 4.2.x. However there are some few behavioural changes explicited
-+    below.
-+    </para>
-+  </sect1>  
-+
-+  <sect1><title>GDA_TYPE_NULL</title>
-+    <para>
-+      Previous versions of &LIBGDA; represented SQL NULL values as a <link linkend="GValue">GValue</link> completely filled
-+      with zeros (i.e. of type G_TYPE_INVALID), and GDA_TYPE_NULL was thus equivalent to G_TYPE_INVALID.
-+    </para>
-+    <para>
-+      This new version introduces a new specific type for the same GDA_TYPE_NULL (which means
-+      GDA_TYPE_NULL no longer equals G_TYPE_INVALID). The most common sources of errors brought by this
-+      change are:
-+      <itemizedlist>
-+	<listitem><para>if you used <link linkend="g-value-init">g_value_init()</link> on a
-+	value of type GDA_TYPE_NULL, then you'll have to eight clear the value first, or replace
-+	that call with a call to <link linkend="gda-value-reset-with-type">gda_value_reset_with_type()</link></para></listitem>
-+	<listitem><para>the <link linkend="gda-g-type-from-string">gda_g_type_from_string()</link> function
-+	now returns G_TYPE_INVALID if it does not know how to interpret the argument, so testing the return
-+	value now also involves testing for the G_TYPE_INVALID value.</para></listitem>
-+	<listitem><para>creating a GValue using <link linkend="g-new0">g_new0()</link> resulted
-+	in a GDA_TYPE_NULL value, which is not longer the case; the value needs to be initialized
-+	with a call to <link linkend="g-value-init">g_value_init()</link></para></listitem>
-+	<listitem><para>testing for NULL values using G_IS_VALUE does not work anymore, you'll have to
-+	replace them with <link linkend="GDA-VALUE-HOLDS-NULL:CAPS">GDA_VALUE_HOLDS_NULL()</link></para></listitem>
-+      </itemizedlist>
-+    </para>
-+  </sect1>  
-+
-+</chapter>
++<gda-sql-help>
++  <!-- "." command -->
++  <command name="">
++    <shortdescription>
++    </shortdescription>
++    <usage>
++      <synopsis>.</synopsis>
++      <comment></comment>
++    </usage>
++    <example>
++      <synopsis>.</synopsis>
++      <comment></comment>
++    </example>
++  </command>
++
++  <!-- ".bind" command -->
++  <command name="bind">
++    <shortdescription>Bind connections or datasets into a single new one (allowing SQL commands to be executed across multiple connections and/or datasets).
++    </shortdescription>
++    <usage>
++      <synopsis>.bind @CNC NAME@ @OBJ NAME@ [@OBJ NAME@ ...]</synopsis>
++      <comment>creates a new connection named @CNC_NAME@, which binds data from each of the named object
++      (@OBJ NAME@). If a named object is a connection, then all the tables in the named connection
++      are bound (in a schema named after the connection name) and if a named object is a dataset,
++      the dataset is bound as a table (named after the dataset's name).</comment>
++    </usage>
++    <example>
++      <synopsis>.bind attached c0 c1 ds1</synopsis>
++      <comment>creates the "attached" connection where all the tables from connection "c1" are mapped to the "c1" schema, all the tables from connection "c2" are mapped to the "c2" schema, and the "ds1"
++      dataset is mapped to the "ds1" table.</comment>
++    </example>
++  </command>
++
++  <!-- ".c" command -->
++  <command name="c">
++    <shortdescription>Opens a new connection or lists opened connections</shortdescription>
++    <usage>
++      <synopsis>.c [[@CNC_NAME@] [@DSN@|@CONNECTION STRING@]]</synopsis>
++      <comment>Opens a new connection, named @CNC_NAME@ using either a DSN name (use the ".l" command to list all declared DSN), or a connection string (use the ".lp" command to list database providers and see which argument their connection string accepts).</comment>
++      <comment>If only a connection name is passed as argument, then the named connection becomes the current active connection. As a side note, using "~" as a connection name will switch to a (new or already opened) connection which contains the meta data for the active connection.</comment>
++      <comment>If no connection name is specified, then this command lists all the opened connections</comment>
++    </usage>
++    <example>
++      <synopsis>.c SalesTest</synopsis>
++      <synopsis>.c ht htsql_demo.db</synopsis>
++      <synopsis>.c</synopsis>
++      <raw>                      List of opened connections
++Name      | Provider | DSN or connection string                         | Username
++----------+----------+--------------------------------------------------+---------
++ht        | SQLite   | DB_DIR=.;EXTRA_FUNCTIONS=TRUE;DB_NAME=htsql_demo |         
++SalesTest | SQLite   | SalesTest                                        |         
++(2 rows)</raw>
++      <comment>This example opens two SQLite connections, named "ht" and "st"</comment>
++    </example>
++
++    <example>
++      <synopsis>.c ~</synopsis>
++      <synopsis>.d</synopsis>
++      <raw>Schema | Name                             | Type       | Owner
++-------+----------------------------------+------------+------
++main   | __declared_fk                    | BASE TABLE |      
++main   | _all_types                       | VIEW       |      
++main   | _attributes                      | BASE TABLE |
++[...]
++(32 rows)</raw>
++      <comment>This command switches to the connection containing the currently active connection's meta data, the ".d" command displays all the tables and views of the current active connection.</comment>
++    </example>
++
++    <example>
++      <synopsis>.c</synopsis>
++      <comment>This command lists all opened connections (including the meta data connections)</comment>
++      <raw>                                              List of opened connections
++Name | Provider | DSN or connection string                                                                   
++-----+----------+--------------------------------------------------------------------------------------------
++ht   | SQLite   | DB_DIR=.;EXTRA_FUNCTIONS=TRUE;DB_NAME=htsql_demo                                           
++st   | SQLite   | SalesTest                                                                                  
++~st  | SQLite   | DB_DIR=/home/vivien/.local/share/libgda;DB_NAME=gda-sql-SalesTest                          
++~ht  | SQLite   | DB_DIR=/home/vivien/.local/share/libgda;DB_NAME=gda-sql-ab1b5c41e024d87d739797e820dadb05d26
++(4 rows)</raw>
++    </example>
++  </command>
++
++  <!-- ".l" command -->
++  <command name="l">
++    <shortdescription>List all defined data source (DSN), or named DSN's attributes.
++    </shortdescription>
++    <usage>
++      <synopsis>.l [@DSN@]</synopsis>
++      <comment>If no @DSN@ argument is specified, then lists all the DSN, otherwise gives information about the specified DSN</comment>
++    </usage>
++    <example>
++      <synopsis>.l</synopsis>
++      <raw>                       DSN list
++DSN       | Description                          | Provider  
++----------+--------------------------------------+-----------
++mysales   |                                      | MySQL     
++pgsales   |                                      | PostgreSQL
++SalesTest | Test database for a sales department | SQLite    
++(3 rows)</raw>
++    </example>
++
++    <example>
++      <synopsis>.l mysales</synopsis>
++      <raw>   DSN 'mysales' description
++Attribute      | Value            
++---------------+------------------
++DSN name       | mysales          
++Provider       | MySQL            
++Description    |                  
++Parameters     | HOST: gda        
++                 DB_NAME: test1   
++Authentication | USERNAME: gdauser
++System DSN?    | No               
++(6 rows)</raw>
++      <comment>The output above shows that the "mysales" DSN uses a MySQL server, hosted on the "gda" machine, for the database "test1", and that the username will be "gdauser"</comment>
++    </example>
++  </command>
++
++  <!-- ".lp" command -->
++  <command name="lp">
++    <shortdescription>List all installed database providers (or named one's attributes)
++    </shortdescription>
++    <usage>
++      <synopsis>.lp [@PROVIDER@]</synopsis>
++      <comment>Shows information about database providers installed, or about a specific database provider if specified. Use this information to create connection strings</comment>
++    </usage>
++    <example>
++      <synopsis>.lp</synopsis>
++      <raw>                                    Installed providers list
++Provider      | Description                                                                        
++--------------+------------------------------------------------------------------------------------
++BDBSql        | Provider for BDB SQL databases                                                     
++Berkeley-DB   | Provider for Berkeley databases                                                    
++Firebird      | Provider for Firebird databases                                                    
++FirebirdEmbed | Provider for embedded Firebird databases                                           
++Ldap          | Provider for database where tables are based on data contained in an LDAP directory
++MSAccess      | Provider for Microsoft Access files                                                
++MySQL         | Provider for MySQL databases                                                       
++Oracle        | Provider for Oracle databases                                                      
++PostgreSQL    | Provider for PostgreSQL databases                                                  
++SQLCipher     | Provider for SQLCipher                                                             
++SQLite        | Provider for SQLite databases                                                      
++Web           | Provider for web server proxies                                                    
++(12 rows)</raw>
++      <synopsis>.lp MySQL</synopsis>
++      <raw>                                         Provider 'MySQL' description
++Attribute      | Value                                                                                         
++---------------+-----------------------------------------------------------------------------------------------
++Provider       | MySQL                                                                                         
++Description    | Provider for MySQL databases                                                                  
++DSN parameters | DB_NAME: Database name. The name of a database to connect to (string),                        
++                 HOST: Database server. Host on which the database server is running (string),                 
++                 PORT: Port. Database server port (int),                                                       
++                 UNIX_SOCKET: UNIX Socket. Full path of the UNIX socket to use when connecting locally (string)
++                 USE_SSL: Require SSL. Whether or not to use SSL to establish the connection (boolean),        
++                 COMPRESS: Compress. Use compression protocol (boolean)                                        
++Authentication | USERNAME (string),                                                                            
++                 PASSWORD (string)                                                                             
++File           | /usrlib/libgda-5.0/providers/libgda-mysql.so                                         
++(5 rows)</raw>
++      <comment>This output shows all the arguments accepted by the MySQL provider (DB_NAME, HOST, PORT, ...)</comment>
++    </example>
++  </command>
++
++  <!-- ".pivot" command -->
++  <command name="pivot">
++    <shortdescription>Performs a statistical analysis on the data from SELECT, using ROW_FIELDS and COLUMN_FIELDS criteria and optionally DATA_FIELDS for the data.</shortdescription>
++    <usage>
++      <synopsis>. at SELECT@ @ROW_FIELDS@ [@COLUMN_FIELDS@ [@DATA_FIELDS@ ...]]</synopsis>
++      <comment>The @SELECT@ defines the data set to perform summarization on.</comment>
++      <comment></comment>
++      <comment>The  @ROW_FIELDS@ defines the fields from the data set from which each individual value will
++              yield to a row in the analysis (it can be any valid selectable SQL  expression  on  the  data
++              set's fields); multiple expressions can be provided, separated by commas (forming a valid SQL
++              expression).  In this case a row will be created for each combination of values  of  each  of
++              the expression.
++      </comment>
++      <comment></comment>
++      <comment>The @COLUMN_FIELDS@ defines  the  fields from the data set from which each individual value
++              will yield to a column in the analysis. Its syntax is similar to the @ROW_FIELDS@ one. If not
++              specified  (or  if  specified  as a single dash ("-") caracter), then only one column will be
++              created.  Note that, if the @DATA_FIELDS@ argument is specified each column created from  the
++              @COLUMN_FIELDS@  will  in  fact  lead to the creation of as many @DATA_FIELDS@ arguments pro‐
++              vided.
++      </comment>
++      <comment></comment>
++      <comment>The @DATA_FIELDS@ arguments are entirely optional and indicates the way data summarization is
++              done  for  each pair of (row,column) values (the default is to count occurrences). The syntax
++              for each @DATA_FIELDS@ argument is: [aggregate]@SQL_expression@, where the aggregate part  is
++              optional  and,  if  present  must be among [SUM], [COUNT], [AVG], [MIN] or [MAX], and the SQL
++              expression is a valid selectable SQL expression of the data set's fields.
++      </comment>
++    </usage>
++    <example>
++      <comment>Suppose for these example that we have a table named "student" where students of schools are
++      are listed (this example comes from the HTSQL tutorial database, see http://htsql.org/doc/tutorial.html).
++      Part of this table's contents is the following:
++      </comment>
++      <raw>name                | gender | dob        | school_code | program_code | start_date
++--------------------+--------+------------+-------------+--------------+-----------
++Linda Wright        | f      | 1988-10-03 | ns          | umth         | 2007-08-15
++Beth Thompson       | f      | 1988-01-24 | ns          | gmth         | 2007-08-15
++Sheri Sanchez       | f      | 1985-05-14 | edu         | gedu         | 2007-08-15
++John Stone          | m      | 1984-01-28 | bus         | pbusad       | 2007-08-15
++Helen Johnson       | f      | 1986-02-03 | eng         | ucompsci     | 2007-08-15
++Anna Carroll        | f      | 1985-03-29 | edu         | gedu         | 2007-08-15
++Carol Walden        | f      | 1988-04-09 | ns          | uphys        | 2007-08-15</raw>
++
++      <synopsis>.pivot "select * from student" gender</synopsis>
++      <comment>The output will show one line per gender and will show the number of students for each gender
++      </comment>
++      <raw>gender |    
++-------+----
++f      | 284
++m      | 172
++(2 rows)</raw>
++    </example>
++
++    <example>
++      <synopsis>pivot "select name, gender, strftime ('%Y', dob) as year_of_birth from student order by year_of_birth" gender year_of_birth</synopsis>
++      <comment>This example displays, by gender of students, the number of students for each year where
++      at least one student is born</comment>
++      <raw>gender | 1982 | 1983 | 1984 | 1985 | 1986 | 1987 | 1988 | 1989 | 1990 | 1991 | 1992
++-------+------+------+------+------+------+------+------+------+------+------+-----
++m      |   11 |   26 |   39 |   50 |   30 |   13 |    3 |      |      |      |     
++f      |      |      |      |   12 |   38 |   36 |   56 |   61 |   33 |   37 |   11
++(2 rows)</raw>
++    </example>
++
++    <example>
++      <synopsis>.pivot "select name, gender, strftime ('%Y', dob) as year_of_birth from student order by year_of_birth" year_of_birth gender</synopsis>
++      <comment>This example displays the same information as the one above, but with one row per year</comment>
++      <raw>year_of_birth | m  | f 
++--------------+----+---
++1982          | 11 |   
++1983          | 26 |   
++1984          | 39 |   
++1985          | 50 | 12
++1986          | 30 | 38
++1987          | 13 | 36
++1988          |  3 | 56
++1989          |    | 61
++1990          |    | 33
++1991          |    | 37
++1992          |    | 11
++(11 rows)</raw>
++    </example>
++
++    <example>
++      <synopsis>.pivot "select name, gender, strftime ('%Y', dob) as year_of_birth, school_code from student order by year_of_birth" year_of_birth school_code</synopsis>
++      <comment>This example is similar to the one above, but replaces the gender by the school_code for the columns</comment>
++      <raw>year_of_birth | art | bus | edu | eng | la | ns | ph
++--------------+-----+-----+-----+-----+----+----+---
++1982          |  11 |     |     |     |    |    |   
++1983          |  18 |   8 |     |     |    |    |   
++1984          |  15 |  18 |   6 |     |    |    |   
++1985          |  16 |  18 |  18 |  10 |    |    |   
++1986          |   2 |  12 |  23 |  17 | 14 |    |   
++1987          |     |   2 |  16 |  16 | 12 |  3 |   
++1988          |     |     |   6 |  14 | 14 | 22 |  3
++1989          |     |     |     |   5 | 22 | 13 | 21
++1990          |     |     |     |     | 10 |  7 | 16
++1991          |     |     |     |     |    | 16 | 21
++1992          |     |     |     |     |    |    | 11
++(11 rows)</raw>
++    </example>
++
++    <example>
++      <synopsis>.pivot "select school_code, program_code, julianday(Date('now')) - julianday(start_date) as days from vs;" program_code - [avg]days</synopsis>
++      <comment>This example displays, for each program code, the average number of days since the course
++      was started</comment>
++      <raw>program_code | avg_days   
++-------------+------------
++umth         | 1163.153846
++gmth         | 1106.923077
++gedu         | 1180.909091
++pbusad       | 1134.846154
++ucompsci     | 1186.583333
++uphys        | 1206.777778
++psci         | 1156.125000
++uspan        | 1137.800000
++[...]
++(39 rows)</raw>
++    </example>
++
++    <example>
++      <synopsis>.pivot "select school_code, program_code, (julianday(Date('now')) - julianday(start_date))::int as days from vs;" program_code school_code [max]days</synopsis>
++      <comment>This example is similar to the one above, but it shows the maximum number of days since the course was started, and is split in columns by school code</comment>
++      <raw>program_code | ns[max_days] | edu[max_days] | bus[max_days] | eng[max_days] | la[max_days] | ph[max_days] | art[max_days]
++-------------+--------------+---------------+---------------+---------------+--------------+--------------+--------------
++umth         |         1613 |               |               |               |              |              |              
++gmth         |         1613 |               |               |               |              |              |              
++gedu         |              |          1613 |               |               |              |              |              
++pbusad       |              |               |          1613 |               |              |              |              
++ucompsci     |              |               |               |          1613 |              |              |              
++uphys        |         1613 |               |               |               |              |              |              
++psci         |              |          1613 |               |               |              |              |              
++uspan        |              |               |               |               |         1613 |              |
++[...]
++(39 rows)</raw>
++    </example>
++  </command>
++
++  <!-- ".set" command -->
++  <command name="set">
++    <shortdescription>Set or show internal parameter, or list all if no parameter specified
++    </shortdescription>
++    <usage>
++      <synopsis>.set [@NAME@ [@VALUE@|_null_]]</synopsis>
++      <comment>Use this command to define or re-define variables which can later be used in stataments. Use the ".unset" command to undefine a variable. If you want set a variable to the SQL NULL, then use the "_null_" constant value.</comment>
++    </usage>
++    <example>
++      <synopsis>.set ID 23</synopsis>
++      <synopsis>.set ID</synopsis>
++      <comment>This example defines the ID variabe (beware, case sensitive) ID to 23. Later you can then run a query like "SELECT * FROM customers WHERE id=##ID::int"</comment>
++    </example>
++  </command>
++
++  <!-- LDAP section -->
++  <section name="LDAP">
++    <usage>
++      <comment>
++	The following commands allow you to manipulate LDAP entries directly, and are thus only available for LDAP
++	connections. Once you have a search result you are interested into keeping, you can create a table out of it
++	using the syntax below, and then access to the data like any normal other table using SQL commands on that table.
++      </comment>
++      <synopsis>CREATE LDAP TABLE @table name@ [BASE=@base DN@] [FILTER=@LDAP filter@] [ATTRIBUTES=@LDAP attributes@] [SCOPE=@search scope@]</synopsis>
++    </usage>
++    <example>
++      <synopsis>CREATE LDAP TABLE someusers FILTER='(cn=*le*)' ATTRIBUTES='cn,mail' SCOPE='SUBTREE';</synopsis>
++      <comment>This example defines a table named "someusers" for the "(cn=*le*)" search filter, using a subtree scope;
++      the table will have 3 columns: the DN, cn and mail</comment>
++    </example>
++    <usage>
++      <comment>Other commands to manipulate LDAP tables are DROP and DESCRIBE commands:</comment>
++      <synopsis>DROP [LDAP] TABLE @table name@;</synopsis>
++      <synopsis>DESCRIBE LDAP TABLE @table name@;</synopsis>
++    </usage>
++    <example>
++      <synopsis>DESCRIBE LDAP TABLE someusers;</synopsis>
++      <raw>Paramètre  │ Valeur   
++───────────┼──────────
++BASE       │          
++FILTER     │ (cn=*le*)
++ATTRIBUTES │ cn,mail  
++SCOPE      │ SUBTREE  
++(4 rows)</raw>
++    </example>
++  </section>
++
++  <!-- ".ldap_attributes" command -->
++  <option name="ldap_attributes">
++    <shortdescription>Defines the list of attributes taken into account by LDAP commands
++    </shortdescription>
++    <usage>
++      <synopsis>.option ldap_attributes [attribute,[attribute],...]</synopsis>
++      <comment>Use this option to specify or display which attributes the LDAP commands operate on</comment>
++      <comment>The attributes list is a CVS separated list of individual LDAP attributes, for example "cn,uid,email"</comment>
++      <comment>LDAP allows some attributes to be multi valued (e.g. the "objectClass" attribute). When dealing with multi
++      valued attributes, the default behaviour is to return an error for the corresponding value. This default behaviour can
++      be changed by specifying a modifier among "CVS" (values are listed in a CVS syntax), "*" (each row is duplicated with
++      each value of the attribute), "1" (only the 1st value of the attribute is shown), "CONCAT" (all the values are
++      made into a string, separated by newlines) or "NULL" (a NULL value is used).
++      </comment>
++    </usage>
++    <example>
++      <synopsis>.option ldap_attributes cn,objectClass::*</synopsis>
++      <comment>Define the attibutes as "cn" and "objectClass", and because "objectClass" is generally multi valued,
++      specify that a new row be created in the output for each value of "objectClass" for each entry</comment>
++    </example>
++  </option>
++
++  <!-- ".ldap_search" command -->
++  <command name="ldap_search">
++    <shortdescription>Search LDAP entries using a filter and various criteria
++    </shortdescription>
++    <usage>
++      <synopsis>.ldap_search @filter@ [@base|onelevel|subtree@ [@base DN@]]</synopsis>
++      <comment>The @filter@ argument is the only mandatory and has to be a valid LDAP filter expression. The
++      other arguments, if present are in order the search scope (among "base", "onelevel" and "subtree"), and the
++      base DN (which is the starting point of the search)</comment>
++      <comment>The results of the search will be a table where the first column is the DN of the entry, and
++      the other columns are mapped to the LDAP attributes (see the "ldap_attributes" option)</comment>
++      <comment>LDAP filters must respect the RFC 2254 (see http://www.faqs.org/rfcs/rfc2254.html) and what the
++      actual LDAP server understands. Note that if the outer most opening and cloding parenthesis are omitted, they
++      will be automatically added. Examples of LDAP search filter are: "(objectClass=*)" to fetch all objects,
++      "(&(objectClass=inetOrgPerson)(!cn=tom))" to fetch all persons except "tom". Operators are: "=" for equal,
++      "~=" for approximately equal "<=" ">=" for lexicographically less than or equal and greater than or equal
++      respectively, "&", "|" and "!" for the AND, OR and NOT logical operators respectively.</comment>
++      <comment>Note that the "ldap_dn" option defines the behaviour of the "Distinguished name" column
++      (use the ".option" command to change the option value). The possible values for this option are: "dn" (default
++      behaviour), "rdn" (the DN is replaced by the RND) and "none" (the DN column is not shown).</comment>
++    </usage>
++    <example>
++      <synopsis>.option ldap_attributes cn,uid,mail</synopsis>
++      <synopsis>.ldap_search cn=* onelevel "ou=People,dc=example,dc=gnome-db"</synopsis>
++      <comment></comment>
++      <raw>Distinguished name                              | cn                 | uid        | mail                  
++------------------------------------------------+--------------------+------------+-----------------------
++uid=abarnes,ou=People,dc=example,dc=gnome-db    | Anne-Louise Barnes | abarnes    | abarnes at example.com   
++uid=abergin,ou=People,dc=example,dc=gnome-db    | Andy Bergin        | abergin    | abergin at example.com   
++uid=achassin,ou=People,dc=example,dc=gnome-db   | Ashley Chassin     | achassin   | achassin at example.com
++[...]
++(150 rows)</raw>
++    </example>
++  </command>
++
++  <!-- DATA section -->
++  <section name="DATA">
++    <usage>
++      <comment>
++	The following commands allow you to keep dataset results you have obtained, and to reuse them at a later time.
++	Everytime a resultset is returned by a command, it can be imediately used as a dataset named "_".
++      </comment>
++    </usage>
++  </section>
++
++</gda-sql-help>
diff --git a/libgda5-vala.patch b/libgda5-vala.patch
index 8b4f702..4f03e7e 100644
--- a/libgda5-vala.patch
+++ b/libgda5-vala.patch
@@ -1,11 +1,11 @@
---- libgda-5.0.4/configure.ac.orig	2013-06-03 22:04:37.000000000 +0200
-+++ libgda-5.0.4/configure.ac	2013-06-08 21:54:49.422460301 +0200
-@@ -485,7 +485,7 @@
- have_vala=no
- if test "x$found_introspection" = "xyes"
+--- libgda-5.2.0/configure.ac.orig	2013-11-11 17:47:08.000000000 +0100
++++ libgda-5.2.0/configure.ac	2013-11-15 16:51:07.911863440 +0100
+@@ -542,7 +542,7 @@
+ if test "x$enable_vala" = "xyes"
  then
--    VALA_MODULES="libvala-0.16 >= 0.15.1"
-+    VALA_MODULES="libvala-0.20 >= 0.15.1"
-     PKG_CHECK_MODULES(VALA, $VALA_MODULES,
-         if test "$enable_vala" = "yes" -o "$enable_vala" = "auto"
- 	then
+ 	AM_PROG_VALAC([0.17.7])
+-	VAPIGEN_CHECK([0.17.7],[0.18],,no)
++	VAPIGEN_CHECK([0.17.7],,,no)
+ else
+ 	AM_CONDITIONAL(ENABLE_VAPIGEN,false)
+ fi
diff --git a/libgda5-yelp.patch b/libgda5-yelp.patch
new file mode 100644
index 0000000..72cf7a5
--- /dev/null
+++ b/libgda5-yelp.patch
@@ -0,0 +1,15 @@
+--- libgda-5.2.0/tools/help/Makefile.am.orig	2013-10-19 14:35:31.000000000 +0200
++++ libgda-5.2.0/tools/help/Makefile.am	2013-11-16 11:22:24.609065479 +0100
+@@ -1,9 +1,8 @@
+ @YELP_HELP_RULES@
+ 
+-DOC_ID = gda-sql
+-DOC_NOCHECK = yes
++HELP_ID = gda-sql
+ 
+-DOC_PAGES = \
++HELP_FILES = \
+ 	gda-sql-help.xml
+ 
+-DOC_LINGUAS = 
++HELP_LINGUAS = 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/libgda5.git/commitdiff/0e86675981f7a2cad3592c33dee6779e7288cdfb



More information about the pld-cvs-commit mailing list