--- dee-0.2.6.orig/vapi/dee-1.0-custom.vala
+++ dee-0.2.6/vapi/dee-1.0-custom.vala
@@ -0,0 +1,11 @@
+
+namespace Dee
+{
+ [CCode (cheader_filename = "dee.h")]
+ public interface Model : GLib.Object
+ {
+ public virtual signal void row_added (ModelIter iter);
+ public virtual signal void row_removed (ModelIter iter);
+ public virtual signal void row_changed (ModelIter iter);
+ }
+}
--- dee-0.2.6.orig/examples/synced-lists.c
+++ dee-0.2.6/examples/synced-lists.c
@@ -0,0 +1,269 @@
+/*
+ * Copyright (C) 2010 Canonical Ltd
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ * Authored by
+ * Neil Jagdish Patel
+ * Mikkel Kamstrup Erlandsen
+ *
+ * Compile with:
+ *
+ * gcc synced-lists.c -o synced-lists `pkg-config --libs --cflags dee gtk+-2.0`
+ *
+ */
+#include
+#include
+#include
+#include
+#include
+#include
+
+static DeeModel *model;
+static GtkWidget *window;
+static GtkWidget *list;
+static GtkListStore *store;
+
+static void
+on_row_added (DeeModel *model, DeeModelIter *iter)
+{
+ gint i = 0;
+ gchar *str = NULL;
+ GtkTreeIter titer;
+
+ dee_model_get (model, iter, 0, &i, 1, &str, -1);
+
+ gtk_list_store_append (store, &titer);
+ gtk_list_store_set (store, &titer,
+ 0, g_strdup_printf ("%d", i),
+ 1, str,
+ 2, iter,
+ -1);
+
+ g_free (str);
+}
+
+static void
+on_row_removed (DeeModel *model, DeeModelIter *old_iter)
+{
+ GtkTreeIter iter = { 0};
+
+ gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter);
+
+ do
+ {
+ gpointer data = NULL;
+
+ gtk_tree_model_get (GTK_TREE_MODEL (store), &iter,
+ 2, &data,
+ -1);
+
+ if (data == old_iter)
+ {
+ gtk_list_store_remove (store, &iter);
+ break;
+ }
+ }
+ while (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter));
+}
+
+static void
+on_row_changed (DeeModel *model, DeeModelIter *row_iter)
+{
+ GtkTreeIter iter = { 0 };
+
+ gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter);
+
+ do
+ {
+ gpointer data = NULL;
+
+ gtk_tree_model_get (GTK_TREE_MODEL (store), &iter,
+ 2, &data,
+ -1);
+
+ if (data == row_iter)
+ {
+ gint i = 0;
+ gchar *str = NULL;
+
+ dee_model_get (model, row_iter, 0, &i, 1, &str, -1);
+
+ gtk_list_store_set (store, &iter,
+ 0, g_strdup_printf ("%d", i),
+ 1, str,
+ -1);
+ break;
+ }
+ }
+ while (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter));
+}
+
+static void
+add_row (GtkWidget *button)
+{
+ dee_model_append (model,
+ 0, getpid (),
+ 1, "Wazza",
+ -1);
+}
+
+static void
+remove_row (GtkWidget *button)
+{
+ GtkTreeSelection *sel;
+ GtkTreeIter iter;
+
+ sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (list));
+
+ if (gtk_tree_selection_get_selected (sel,
+ NULL,
+ &iter))
+ {
+ gpointer data = NULL;
+
+ gtk_tree_model_get (GTK_TREE_MODEL (store),
+ &iter,
+ 2, &data,
+ -1);
+
+ dee_model_remove (model, data);
+ }
+ else
+ g_debug ("No selection to delete");
+}
+
+static void
+clear_rows (GtkWidget *button)
+{
+ dee_model_clear (model);
+}
+
+static void
+on_cell_edited (GtkCellRendererText *renderer,
+ gchar *path,
+ gchar *new_text,
+ gpointer old_data)
+{
+ GtkTreeIter iter;
+
+ if (gtk_tree_model_get_iter_from_string (GTK_TREE_MODEL (store),
+ &iter,
+ path))
+ {
+ gpointer data = NULL;
+
+ gtk_tree_model_get (GTK_TREE_MODEL (store),
+ &iter,
+ 2, &data,
+ -1);
+
+ dee_model_set (model,
+ (DeeModelIter *)data,
+ 1, new_text,
+ -1);
+ }
+}
+
+gint
+main (gint argc, gchar *argv[])
+{
+ GtkWidget *vbox, *hbox, *scroll, *button;
+
+ gtk_init (&argc, &argv);
+
+ window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ gtk_window_resize (GTK_WINDOW (window), 300, 600);
+ gtk_container_set_border_width (GTK_CONTAINER (window), 12);
+
+ vbox = gtk_vbox_new (FALSE, 12);
+ gtk_container_add (GTK_CONTAINER (window), vbox);
+
+ button = gtk_label_new (g_strdup_printf ("My PID: %d", getpid()));
+ g_object_set (button, "use-markup", TRUE, NULL);
+ gtk_misc_set_alignment (GTK_MISC (button), 0.5, 0.5);
+ gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
+
+ scroll = gtk_scrolled_window_new (NULL, NULL);
+ gtk_box_pack_start (GTK_BOX (vbox), scroll, TRUE, TRUE, 0);
+ gtk_widget_show (scroll);
+
+ list = gtk_tree_view_new ();
+ gtk_container_add (GTK_CONTAINER (scroll), list);
+ gtk_widget_show (list);
+
+ {
+ GtkCellRenderer *cell;
+ GtkTreeViewColumn *col;
+
+ cell = gtk_cell_renderer_text_new ();
+ col = gtk_tree_view_column_new_with_attributes ("0",
+ cell,
+ "text", 0,
+ NULL);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (list), col);
+
+ cell = gtk_cell_renderer_text_new ();
+ g_object_set (cell, "editable", TRUE, NULL);
+ g_signal_connect (cell, "edited",
+ G_CALLBACK (on_cell_edited), NULL);
+ col = gtk_tree_view_column_new_with_attributes ("1",
+ cell,
+ "text", 1,
+ NULL);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (list), col);
+ }
+
+ hbox = gtk_hbox_new (TRUE, 12);
+ gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
+
+ button = gtk_button_new_from_stock (GTK_STOCK_ADD);
+ gtk_container_add (GTK_CONTAINER (hbox), button);
+ g_signal_connect (button, "clicked",
+ G_CALLBACK (add_row), NULL);
+
+ button = gtk_button_new_from_stock (GTK_STOCK_REMOVE);
+ gtk_container_add (GTK_CONTAINER (hbox), button);
+ g_signal_connect (button, "clicked",
+ G_CALLBACK (remove_row), NULL);
+
+ button = gtk_button_new_from_stock (GTK_STOCK_CLEAR);
+ gtk_container_add (GTK_CONTAINER (hbox), button);
+ g_signal_connect (button, "clicked",
+ G_CALLBACK (clear_rows), NULL);
+
+ gtk_widget_show_all (window);
+
+ store = gtk_list_store_new (3,
+ G_TYPE_STRING,
+ G_TYPE_STRING,
+ G_TYPE_POINTER);
+ gtk_tree_view_set_model (GTK_TREE_VIEW (list), GTK_TREE_MODEL (store));
+
+ model = dee_model_new ("com.canonical.Dbus.Model.Example",
+ 2,
+ G_TYPE_INT,
+ G_TYPE_STRING);
+ g_signal_connect (model, "row-added",
+ G_CALLBACK (on_row_added), NULL);
+ g_signal_connect (model, "row-removed",
+ G_CALLBACK (on_row_removed), NULL);
+ g_signal_connect (model, "row-changed",
+ G_CALLBACK (on_row_changed), NULL);
+
+ dee_model_connect (DEE_SHARED_MODEL (model));
+
+ gtk_main ();
+
+ return 0;
+}
--- dee-0.2.6.orig/debian/watch
+++ dee-0.2.6/debian/watch
@@ -0,0 +1,2 @@
+version=3
+https://launchpad.net/dee/+download .*/dee-([0-9.]+)\.tar\.gz
--- dee-0.2.6.orig/debian/libdee-1.0-0.install
+++ dee-0.2.6/debian/libdee-1.0-0.install
@@ -0,0 +1 @@
+debian/tmp/usr/lib/lib*.so.*
--- dee-0.2.6.orig/debian/rules
+++ dee-0.2.6/debian/rules
@@ -0,0 +1,18 @@
+#!/usr/bin/make -f
+
+include /usr/share/cdbs/1/class/gnome.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/rules/utils.mk
+
+LDFLAGS += -Wl,-z,defs -Wl,--as-needed
+
+DEB_CONFIGURE_EXTRA_FLAGS := --enable-introspection=no
+
+common-binary-post-install-arch::
+ find debian/tmp/usr/lib -name \*.la -exec rm {} \;
+ find debian/tmp/usr/lib -name \*.a -exec rm {} \;
+
+common-binary-fixup-arch::
+ dh_girepository -pgir1.0-dee-0.1
+
+common-binary-predeb-arch:: list-missing
--- dee-0.2.6.orig/debian/gir1.0-dee-0.1.install
+++ dee-0.2.6/debian/gir1.0-dee-0.1.install
@@ -0,0 +1 @@
+debian/tmp/usr/lib/girepository-1.0/
--- dee-0.2.6.orig/debian/control
+++ dee-0.2.6/debian/control
@@ -0,0 +1,77 @@
+Source: dee
+Priority: optional
+Maintainer: Ubuntu Developers
+Build-Depends: debhelper (>= 5.0),
+ cdbs (>= 0.4.41),
+ libglib2.0-dev (>= 2.22.0),
+ libdbus-glib-1-dev (>= 0.80),
+ libdbus-1-dev (>= 1.0),
+ gobject-introspection (>= 0.6.5-3),
+ libgirepository1.0-dev,
+ gir-repository-dev,
+ gir1.0-glib-2.0,
+ gir1.0-dbus-1.0,
+ valac,
+Standards-Version: 3.8.4
+Section: libs
+Homepage: https://launchpad.net/dee
+
+Package: libdee-1.0-0
+Section: libs
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: model to synchronize mutiple instances over DBus - shared lib
+ libdee is a shared library that provides objects that help
+ having multiple instances communicating over DBus.
+ .
+ This package contains shared libraries to be used by applications.
+
+Package: libdee-dev
+Section: libdevel
+Architecture: any
+Depends: libdee-1.0-0 (= ${binary:Version}),
+ ${misc:Depends},
+ libglib2.0-dev (>= 2.22.0),
+ libdbus-glib-1-dev (>= 0.80)
+Suggests: libdee-doc
+Description: model to synchronize mutiple instances over DBus - dev files
+ libdee is a shared library that provides objects that help
+ having multiple instances communicating over DBus.
+ .
+ This package contains files that are needed to build applications.
+
+Package: libdee-1.0-0-dbg
+Section: debug
+Architecture: any
+Priority: extra
+Depends: libdee-1.0-0 (= ${binary:Version}),
+ ${misc:Depends}
+Description: model to synchronize mutiple instances over DBus
+ libdee is a shared library that provides objects that help
+ having multiple instances communicating over DBus.
+ .
+ This package contains the debug files.
+
+Package: libdee-doc
+Section: doc
+Architecture: all
+Depends: ${misc:Depends}
+Suggests: devhelp
+Description: model to synchronize mutiple instances over DBus - documentation
+ libdee is a shared library that provides objects that help
+ having multiple instances communicating over DBus.
+ .
+ This package contains the documentation
+
+#Package: gir1.0-dee-0.1
+#Section: libs
+#Architecture: any
+#Depends: ${gir:Depends},
+# ${shlibs:Depends},
+# ${misc:Depends}
+#Description: GObject introspection data for the Dee library
+# This package contains introspection data for the Dee library.
+# .
+# It can be used by packages using the GIRepository format to generate
+# dynamic bindings.
+
--- dee-0.2.6.orig/debian/changelog
+++ dee-0.2.6/debian/changelog
@@ -0,0 +1,39 @@
+dee (0.2.6-0ubuntu1~lucid) lucid; urgency=low
+
+ * Backport to lucid ppa user
+
+ -- Didier Roche Fri, 11 Jun 2010 10:14:44 +0200
+
+dee (0.2.6-0ubuntu1) maverick; urgency=low
+
+ * New upstream release. (LP: #592111)
+ * debian/copyright:
+ - fix author*s*
+
+ -- Didier Roche Thu, 10 Jun 2010 18:23:46 +0200
+
+dee (0.2.4-0ubuntu1) maverick; urgency=low
+
+ * debian/rules:
+ - fix rm *{,l}a files
+ * debian/watch:
+ - adjust url
+ * New upstream release.
+ * Update debian/libdee-1.0-0.symbols to new symbols
+ * Ship the vapi file and disable introspection package for now
+
+ -- Didier Roche Mon, 07 Jun 2010 11:11:12 +0200
+
+dee (0.2.2-0ubuntu1) maverick; urgency=low
+
+ * New upstream release.
+
+ -- Didier Roche Thu, 27 May 2010 19:12:26 +0200
+
+dee (0.2.0-0ubuntu1) maverick; urgency=low
+
+ * Initial packaging
+ * temporary disabling gir building due to bug:
+ https://bugzilla.gnome.org/show_bug.cgi?id=619703
+
+ -- Didier Roche Thu, 27 May 2010 12:14:11 +0200
--- dee-0.2.6.orig/debian/libdee-dev.install
+++ dee-0.2.6/debian/libdee-dev.install
@@ -0,0 +1,5 @@
+debian/tmp/usr/include/*
+debian/tmp/usr/lib/lib*.so
+debian/tmp/usr/lib/pkgconfig/*
+debian/tmp/usr/share/vala/vapi/*
+#debian/tmp/usr/share/gir-1.0/*
--- dee-0.2.6.orig/debian/libdee-1.0-0.symbols
+++ dee-0.2.6/debian/libdee-1.0-0.symbols
@@ -0,0 +1,88 @@
+libdee-1.0.so.0 libdee-1.0-0 #MINVER#
+ _dbus_message_filter@Base 0.1.0
+ _dee_marshal_VOID__BOXED_BOXED@Base 0.1.0
+ _dee_marshal_VOID__BOXED_BOXED_BOXED@Base 0.1.0
+ _dee_marshal_VOID__STRING_STRING@Base 0.1.0
+ dbus_glib__dee_peer_server_object_info@Base 0.1.0
+ dbus_glib__dee_shared_model_server_object_info@Base 0.1.0
+ dbus_glib_marshal__dee_peer_server_BOOLEAN__POINTER_POINTER@Base 0.1.0
+ dbus_glib_marshal__dee_shared_model_server_BOOLEAN__POINTER@Base 0.1.0
+ dbus_glib_marshal__dee_shared_model_server_BOOLEAN__POINTER_POINTER_POINTER_POINTER@Base 0.1.0
+ dee_filter_model_append_iter@Base 0.2.0
+ dee_filter_model_contains@Base 0.2.0
+ dee_filter_model_get_type@Base 0.2.0
+ dee_filter_model_insert_iter@Base 0.2.0
+ dee_filter_model_insert_iter_before@Base 0.2.0
+ dee_filter_model_new@Base 0.2.0
+ dee_filter_model_prepend_iter@Base 0.2.0
+ dee_model_append@Base 0.1.0
+ dee_model_append_valist@Base 0.1.0
+ dee_model_build_col_spec@Base 0.1.0
+ dee_model_check_type@Base 0.1.0
+ dee_model_clear@Base 0.1.0
+ dee_model_freeze_signals@Base 0.1.0
+ dee_model_get@Base 0.1.0
+ dee_model_get_bool@Base 0.1.0
+ dee_model_get_column_type@Base 0.1.0
+ dee_model_get_double@Base 0.1.0
+ dee_model_get_first_iter@Base 0.1.0
+ dee_model_get_int64@Base 0.1.0
+ dee_model_get_int@Base 0.1.0
+ dee_model_get_iter_at_row@Base 0.1.0
+ dee_model_get_last_iter@Base 0.1.0
+ dee_model_get_n_columns@Base 0.1.0
+ dee_model_get_n_rows@Base 0.1.0
+ dee_model_get_position@Base 0.1.0
+ dee_model_get_string@Base 0.1.0
+ dee_model_get_type@Base 0.1.0
+ dee_model_get_type_for_signature@Base 0.1.0
+ dee_model_get_uchar@Base 0.1.0
+ dee_model_get_uint64@Base 0.1.0
+ dee_model_get_uint@Base 0.1.0
+ dee_model_get_valist@Base 0.1.0
+ dee_model_get_value@Base 0.1.0
+ dee_model_insert@Base 0.1.0
+ dee_model_insert_before@Base 0.1.0
+ dee_model_insert_before_valist@Base 0.1.0
+ dee_model_insert_valist@Base 0.1.0
+ dee_model_is_first@Base 0.1.0
+ dee_model_is_last@Base 0.1.0
+ dee_model_next@Base 0.1.0
+ dee_model_prepend@Base 0.1.0
+ dee_model_prepend_valist@Base 0.1.0
+ dee_model_prev@Base 0.1.0
+ dee_model_remove@Base 0.1.0
+ dee_model_set@Base 0.1.0
+ dee_model_set_column_type@Base 0.1.0
+ dee_model_set_n_columns@Base 0.1.0
+ dee_model_set_valist@Base 0.1.0
+ dee_model_set_value@Base 0.1.0
+ dee_model_set_value_silently@Base 0.1.0
+ dee_model_thaw_signals@Base 0.1.0
+ dee_peer_connect@Base 0.1.0
+ dee_peer_get_swarm_leader@Base 0.1.0
+ dee_peer_get_swarm_name@Base 0.1.0
+ dee_peer_get_type@Base 0.1.0
+ dee_peer_is_swarm_leader@Base 0.1.0
+ dee_proxy_model_get_type@Base 0.1.0
+ dee_sequence_model_get_type@Base 0.1.0
+ dee_sequence_model_new@Base 0.1.0
+ dee_shared_model_connect@Base 0.1.0
+ dee_shared_model_get_peer@Base 0.2.4
+ dee_shared_model_get_swarm_name@Base 0.2.4
+ dee_shared_model_get_type@Base 0.1.0
+ dee_shared_model_new@Base 0.1.0
+ dee_shared_model_new_with_back_end@Base 0.2.0
+ dee_shared_model_new_with_name@Base 0.1.0
+ dee_versioned_model_append_next_seqnum@Base 0.1.0
+ dee_versioned_model_check_seqnum@Base 0.1.0
+ dee_versioned_model_check_seqnums@Base 0.1.0
+ dee_versioned_model_get_last_seqnum@Base 0.1.0
+ dee_versioned_model_get_seqnum@Base 0.1.0
+ dee_versioned_model_get_type@Base 0.1.0
+ dee_versioned_model_inc_seqnum@Base 0.1.0
+ dee_versioned_model_insert_next_seqnum@Base 0.1.0
+ dee_versioned_model_prepend_next_seqnum@Base 0.1.0
+ dee_versioned_model_remove_seqnum@Base 0.1.0
+ dee_versioned_model_set_last_seqnum@Base 0.1.0
+ dee_versioned_model_set_seqnum@Base 0.1.0
--- dee-0.2.6.orig/debian/copyright
+++ dee-0.2.6/debian/copyright
@@ -0,0 +1,52 @@
+This work was packaged for Ubuntu by:
+
+ Didier Roche on Tue, 25 Jan 2010 17:05:16 +0100
+
+It was downloaded from https://launchpad.net/dee
+
+Upstream Authors:
+
+ Mikkel Kamstrup Erlandsen
+ Neil Jagdish Patel
+
+Copyright:
+
+ Copyright (C) 2009-2010 Canonical Ltd.
+
+License:
+
+ * dee/*:
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License Version 3.0 as published by the Free Software Foundation.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+On Debian systems, the complete text of the GNU Lesser General Public License
+can be found in `/usr/share/common-licenses/LGPL-3'
+
+
+ * examples/*, tests/*:
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 3 as
+ published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+On Debian systems, the complete text of the GNU General Public License
+can be found in `/usr/share/common-licenses/GPL-3'
+
+
+The Debian packaging is:
+
+ Copyright (C) 2010 Canonical Ltd.
+
+and is licensed under the GPL version 3, see `/usr/share/common-licenses/GPL-3'.
--- dee-0.2.6.orig/debian/compat
+++ dee-0.2.6/debian/compat
@@ -0,0 +1 @@
+5
--- dee-0.2.6.orig/debian/libdee-doc.install
+++ dee-0.2.6/debian/libdee-doc.install
@@ -0,0 +1 @@
+debian/tmp/usr/share/gtk-doc/