[folks] Pull upstream patches to fix build errors caused by accessing static members.

Brian Pepple bpepple at fedoraproject.org
Mon Aug 27 17:26:34 UTC 2012


commit faa78162dbe99d5d2907289bb2b30d7a1a9f21ad
Author: Brian Pepple <bpepple at fedoraproject.org>
Date:   Mon Aug 27 12:39:07 2012 -0400

    Pull upstream patches to fix build errors caused by accessing static members.

 001-staticmember.patch |   66 ++++++++++++++++++
 002-staticmember.patch |   86 ++++++++++++++++++++++++
 004-staticmember.patch |  151 +++++++++++++++++++++++++++++++++++++++++
 005-staticmember.patch |  174 ++++++++++++++++++++++++++++++++++++++++++++++++
 folks.spec             |   12 +++-
 5 files changed, 487 insertions(+), 2 deletions(-)
---
diff --git a/001-staticmember.patch b/001-staticmember.patch
new file mode 100644
index 0000000..262513a
--- /dev/null
+++ b/001-staticmember.patch
@@ -0,0 +1,66 @@
+From aef8ef6b2d7a1733c8ca567a820cbfb5a620d6c0 Mon Sep 17 00:00:00 2001
+From: Travis Reitter <travis.reitter at collabora.co.uk>
+Date: Mon, 13 Aug 2012 16:51:09 +0000
+Subject: Access static class members through class, not instance.
+
+This covers the libsocialweb backend.
+
+Helps: https://bugzilla.gnome.org/show_bug.cgi?id=681420
+---
+diff --git a/backends/libsocialweb/lib/swf-persona-store.vala b/backends/libsocialweb/lib/swf-persona-store.vala
+index e577867..f23f414 100644
+--- a/backends/libsocialweb/lib/swf-persona-store.vala
++++ b/backends/libsocialweb/lib/swf-persona-store.vala
+@@ -124,7 +124,7 @@ public class Swf.PersonaStore : Folks.PersonaStore
+    */
+   public override string[] always_writeable_properties
+     {
+-      get { return this._always_writeable_properties; }
++      get { return Swf.PersonaStore._always_writeable_properties; }
+     }
+ 
+   /*
+diff --git a/backends/libsocialweb/lib/swf-persona.vala b/backends/libsocialweb/lib/swf-persona.vala
+index fd5511e..177b1db 100644
+--- a/backends/libsocialweb/lib/swf-persona.vala
++++ b/backends/libsocialweb/lib/swf-persona.vala
+@@ -59,7 +59,7 @@ public class Swf.Persona : Folks.Persona,
+    */
+   public override string[] linkable_properties
+     {
+-      get { return this._linkable_properties; }
++      get { return Swf.Persona._linkable_properties; }
+     }
+ 
+   /**
+@@ -69,7 +69,7 @@ public class Swf.Persona : Folks.Persona,
+    */
+   public override string[] writeable_properties
+     {
+-      get { return this._writeable_properties; }
++      get { return Swf.Persona._writeable_properties; }
+     }
+ 
+   private LoadableIcon? _avatar = null;
+@@ -260,8 +260,8 @@ public class Swf.Persona : Folks.Persona,
+   public Persona (PersonaStore store, Contact contact)
+     {
+       var id = get_contact_id (contact);
+-      var uid = this.build_uid (BACKEND_NAME, store.id, id);
+-      var iid = this._build_iid (store.id, id);
++      var uid = Folks.Persona.build_uid (BACKEND_NAME, store.id, id);
++      var iid = Swf.Persona._build_iid (store.id, id);
+ 
+       Object (display_id: id,
+               uid: uid,
+@@ -277,7 +277,7 @@ public class Swf.Persona : Folks.Persona,
+           this.uid, this.store.display_name, this.display_id, this);
+ 
+       var facebook_jid =
+-          this._build_facebook_jid (this.store.id, this.display_id);
++          Swf.Persona._build_facebook_jid (this.store.id, this.display_id);
+       if (facebook_jid != null)
+         {
+           try
+--
+cgit v0.9.0.2
diff --git a/002-staticmember.patch b/002-staticmember.patch
new file mode 100644
index 0000000..2ea29ca
--- /dev/null
+++ b/002-staticmember.patch
@@ -0,0 +1,86 @@
+From b3ebf1e39c94fed4b4a1f0f2a00a72be7ccbe773 Mon Sep 17 00:00:00 2001
+From: Travis Reitter <travis.reitter at collabora.co.uk>
+Date: Wed, 15 Aug 2012 00:37:39 +0000
+Subject: Access static class members through class; use explicit .begin()
+
+This covers the libsocialweb backend tests.
+
+Helps: https://bugzilla.gnome.org/show_bug.cgi?id=681420
+---
+diff --git a/tests/lib/libsocialweb/backend.vala b/tests/lib/libsocialweb/backend.vala
+index da1c805..0425278 100644
+--- a/tests/lib/libsocialweb/backend.vala
++++ b/tests/lib/libsocialweb/backend.vala
+@@ -225,7 +225,7 @@ public class LibsocialwebTest.LibsocialwebServiceTest : Object,
+               (query, p, path);
+           conn.register_object (path, contact_view);
+           contact_views[path] = contact_view;
+-          this.view_count++;
++          LibsocialwebTest.LibsocialwebServiceTest.view_count++;
+         }
+       catch (GLib.IOError e)
+         {
+diff --git a/tests/libsocialweb/aggregation.vala b/tests/libsocialweb/aggregation.vala
+index f06fb22..37d966a 100644
+--- a/tests/libsocialweb/aggregation.vala
++++ b/tests/libsocialweb/aggregation.vala
+@@ -48,7 +48,7 @@ public class AggregationTests : Folks.TestCase
+       /* Initialize an empty key file for the relationships*/
+       var kf_relationships_path = Path.build_filename (
+           Environment.get_tmp_dir (),
+-          this.KF_RELATIONSHIPS_FILE_PATH, null);
++          AggregationTests.KF_RELATIONSHIPS_FILE_PATH, null);
+       Environment.set_variable ("FOLKS_BACKEND_KEY_FILE_PATH",
+           kf_relationships_path, true);
+       string kf_relationships_data = "#\n";
+@@ -66,7 +66,7 @@ public class AggregationTests : Folks.TestCase
+ 
+       /* Use a temporary key file for the BackendStore */
+       var kf_path = Path.build_filename (Environment.get_tmp_dir (),
+-          this.STORE_FILE_PATH, null);
++          AggregationTests.STORE_FILE_PATH, null);
+ 
+       FileUtils.remove (kf_path);
+ 
+@@ -195,7 +195,7 @@ public class AggregationTests : Folks.TestCase
+           if (individual_gathered.length >= 2)
+             main_loop.quit ();
+         });
+-      aggregator.prepare ();
++      aggregator.prepare.begin ();
+ 
+       timer_id = Timeout.add_seconds (5, () =>
+         {
+@@ -268,7 +268,7 @@ public class AggregationTests : Folks.TestCase
+ 
+       Idle.add (() =>
+         {
+-          aggregator.link_personas (personas);
++          aggregator.link_personas.begin (personas);
+           return false;
+         });
+ 
+diff --git a/tests/libsocialweb/dummy-lsw.vala b/tests/libsocialweb/dummy-lsw.vala
+index d2a9241..1f9505c 100644
+--- a/tests/libsocialweb/dummy-lsw.vala
++++ b/tests/libsocialweb/dummy-lsw.vala
+@@ -74,7 +74,7 @@ public class DummyLswTests : Folks.TestCase
+             {
+               LibsocialwebTest.ContactView view
+                   = (LibsocialwebTest.ContactView)v;
+-              view.Start();
++              view.Start.begin ();
+               mysocialnetwork.contact_views[view_path].ContactsAdded
+                   (new LibsocialwebTest.LibsocialwebContactViewTest
+                       .ContactsAddedElement[0]);
+@@ -163,7 +163,7 @@ public class DummyLswTests : Folks.TestCase
+ 
+           main_loop.quit ();
+         });
+-      aggregator.prepare ();
++      aggregator.prepare.begin ();
+ 
+       timer_id = Timeout.add_seconds (5, () =>
+         {
+--
+cgit v0.9.0.2
diff --git a/004-staticmember.patch b/004-staticmember.patch
new file mode 100644
index 0000000..1673d21
--- /dev/null
+++ b/004-staticmember.patch
@@ -0,0 +1,151 @@
+From fc2150ee4d4777af20377f692199fa2783d4e1bb Mon Sep 17 00:00:00 2001
+From: Philip Withnall <philip at tecnocode.co.uk>
+Date: Thu, 23 Aug 2012 21:40:45 +0000
+Subject: Bug 682572 — Build failures due to accessing static members
+
+Fix some more build failures due to accessing static members using an instance
+variable. Also fix an instance of calling an async function with an implicit
+‘.begin()’.
+
+Hopefully that’s the last of them.
+
+Closes: https://bugzilla.gnome.org/show_bug.cgi?id=682572
+---
+diff --git a/tools/inspect/inspect.vala b/tools/inspect/inspect.vala
+index 555c336..a8f4573 100644
+--- a/tools/inspect/inspect.vala
++++ b/tools/inspect/inspect.vala
+@@ -76,10 +76,10 @@ public class Folks.Inspect.Client : Object
+       Unix.signal_add (Posix.SIGTERM, () =>
+         {
+           /* Propagate the signal to our pager process, if it's running. */
+-          if (main_client._pager_pid != 0)
++          if (Client._pager_pid != 0)
+             {
+               main_client._quit_after_pager_dies = true;
+-              kill (main_client._pager_pid, Posix.SIGTERM);
++              kill (Client._pager_pid, Posix.SIGTERM);
+             }
+           else
+             {
+@@ -149,7 +149,7 @@ public class Folks.Inspect.Client : Object
+       this._stop_paged_output ();
+ 
+       /* Uninstall readline, if it's installed. */
+-      if (this._is_readline_installed)
++      if (Client._is_readline_installed)
+         {
+           this._uninstall_readline_and_stdin ();
+         }
+@@ -204,7 +204,7 @@ public class Folks.Inspect.Client : Object
+       /* Check we can parse the command first. */
+       string subcommand;
+       string command_name;
+-      var command = this.parse_command_line (command_line, out command_name,
++      var command = Client.parse_command_line (command_line, out command_name,
+           out subcommand);
+ 
+       if (command == null)
+@@ -284,7 +284,7 @@ public class Folks.Inspect.Client : Object
+       this._install_readline_and_stdin ();
+ 
+       /* Run the aggregator and the main loop. */
+-      this.aggregator.prepare ();
++      this.aggregator.prepare.begin ();
+ 
+       this.main_loop.run ();
+     }
+@@ -292,7 +292,7 @@ public class Folks.Inspect.Client : Object
+   private void _install_readline_and_stdin ()
+     {
+       /* stdin handler. */
+-      this._stdin_watch_id = this._stdin_channel.add_watch (IOCondition.IN,
++      Client._stdin_watch_id = this._stdin_channel.add_watch (IOCondition.IN,
+           this._stdin_handler_cb);
+ 
+       /* Callback for each character appearing on stdin. */
+@@ -305,8 +305,8 @@ public class Folks.Inspect.Client : Object
+       Readline.callback_handler_remove ();
+       Client._is_readline_installed = false;
+ 
+-      Source.remove (this._stdin_watch_id);
+-      this._stdin_watch_id = 0;
++      Source.remove (Client._stdin_watch_id);
++      Client._stdin_watch_id = 0;
+     }
+ 
+   /* This should only ever be called while readline is installed. */
+@@ -353,7 +353,7 @@ public class Folks.Inspect.Client : Object
+ 
+       string subcommand;
+       string command_name;
+-      Command command = main_client.parse_command_line (command_line,
++      Command command = Client.parse_command_line (command_line,
+           out command_name, out subcommand);
+ 
+       /* Run the command */
+@@ -431,7 +431,7 @@ public class Folks.Inspect.Client : Object
+                   GLib.SpawnFlags.SEARCH_PATH |
+                   GLib.SpawnFlags.DO_NOT_REAP_CHILD /* we use a ChildWatch */,
+               null,
+-              out this._pager_pid,
++              out Client._pager_pid,
+               out pager_fd, // Std input
+               null, // Std out
+               null); // Std error
+@@ -447,7 +447,7 @@ public class Folks.Inspect.Client : Object
+       Utils.output_filestream = this._pager_channel;
+ 
+       /* Watch for when the pager exits. */
+-      this._pager_child_watch_id = ChildWatch.add (this._pager_pid,
++      this._pager_child_watch_id = ChildWatch.add (Client._pager_pid,
+           (pid, status) =>
+             {
+               /* $PAGER died or was killed. */
+@@ -480,17 +480,17 @@ public class Folks.Inspect.Client : Object
+ 
+   private void _stop_paged_output ()
+     {
+-      if (this._pager_pid == 0)
++      if (Client._pager_pid == 0)
+         {
+           return;
+         }
+ 
+-      Process.close_pid (this._pager_pid);
++      Process.close_pid (Client._pager_pid);
+       Source.remove (this._pager_child_watch_id);
+ 
+       this._pager_channel = null;
+       Utils.output_filestream = GLib.stdout;
+-      this._pager_pid = 0;
++      Client._pager_pid = 0;
+       this._pager_child_watch_id = 0;
+ 
+       /* Reset the terminal state (e.g. ECHO, which can get left turned
+diff --git a/tools/inspect/signal-manager.vala b/tools/inspect/signal-manager.vala
+index 3d819a3..4d1b648 100644
+--- a/tools/inspect/signal-manager.vala
++++ b/tools/inspect/signal-manager.vala
+@@ -136,7 +136,7 @@ public class Folks.Inspect.SignalManager : Object
+       Utils.print_line ("Signal name      %s", query_info.signal_name);
+       Utils.print_line ("Emitting type    %s", query_info.itype.name ());
+       Utils.print_line ("Signal flags     %s",
+-          this.signal_flags_to_string (query_info.signal_flags));
++          SignalManager.signal_flags_to_string (query_info.signal_flags));
+       Utils.print_line ("Return type      %s", query_info.return_type.name ());
+       Utils.print_line ("Parameter types:");
+       Utils.indent ();
+@@ -343,8 +343,8 @@ public class Folks.Inspect.SignalManager : Object
+       uint signal_id,
+       string? detail_string)
+     {
+-      Closure closure = new Closure (this.CLOSURE_STRUCT_SIZE, this);
+-      closure.set_meta_marshal (null, this.signal_meta_marshaller);
++      Closure closure = new Closure (SignalManager.CLOSURE_STRUCT_SIZE, this);
++      closure.set_meta_marshal (null, SignalManager.signal_meta_marshaller);
+ 
+       Quark detail_quark = 0;
+       if (detail_string != null)
+--
+cgit v0.9.0.2
diff --git a/005-staticmember.patch b/005-staticmember.patch
new file mode 100644
index 0000000..af1810c
--- /dev/null
+++ b/005-staticmember.patch
@@ -0,0 +1,174 @@
+From 887aab26f35f9ac2e9bf1baa92004b4c3ccafd3e Mon Sep 17 00:00:00 2001
+From: Erick Pérez Castellanos <erick.red at gmail.com>
+Date: Thu, 09 Aug 2012 18:54:54 +0000
+Subject: telepathy backend fixed to match last vala release.
+
+Vala change:
+1. Warn when accessing static members with an instance reference.
+2. Deprecate implicit .begin for async methods.
+
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=681420
+---
+diff --git a/backends/telepathy/lib/tpf-logger.vala b/backends/telepathy/lib/tpf-logger.vala
+index 53d8ea1..9ee8a16 100644
+--- a/backends/telepathy/lib/tpf-logger.vala
++++ b/backends/telepathy/lib/tpf-logger.vala
+@@ -78,16 +78,16 @@ internal class Logger : GLib.Object
+     {
+       bool retval = false;
+ 
+-      if (this._logger == null)
++      if (Logger._logger == null)
+         {
+           /* Create a logger proxy for favourites support */
+           var dbus_conn = yield Bus.get (BusType.SESSION);
+-          this._logger = yield dbus_conn.get_proxy<LoggerIface> (
++          Logger._logger = yield dbus_conn.get_proxy<LoggerIface> (
+               "org.freedesktop.Telepathy.Logger",
+               "/org/freedesktop/Telepathy/Logger");
+ 
+           /* Failure? */
+-          if (this._logger == null)
++          if (Logger._logger == null)
+             {
+               this.invalidated ();
+               return retval;
+@@ -100,7 +100,7 @@ internal class Logger : GLib.Object
+           retval = true;
+         }
+ 
+-      this._logger.favourite_contacts_changed.connect ((ap, a, r) =>
++      Logger._logger.favourite_contacts_changed.connect ((ap, a, r) =>
+         {
+           if (ap != this._account_path)
+             return;
+@@ -114,19 +114,19 @@ internal class Logger : GLib.Object
+   private void _logger_vanished (DBusConnection conn, string name)
+     {
+       /* The logger has vanished on the bus, so it and we are no longer valid */
+-      this._logger = null;
++      Logger._logger = null;
+       this.invalidated ();
+     }
+ 
+   public async string[] get_favourite_contacts () throws GLib.Error
+     {
+       /* Invalidated */
+-      if (this._logger == null)
++      if (Logger._logger == null)
+         return {};
+ 
+       /* Use an intermediate, since this._logger could disappear before this
+        * async function finishes */
+-      var logger = this._logger;
++      var logger = Logger._logger;
+       AccountFavourites[] favs = yield logger.get_favourite_contacts ();
+ 
+       foreach (AccountFavourites account in favs)
+@@ -142,12 +142,12 @@ internal class Logger : GLib.Object
+   public async void add_favourite_contact (string id) throws GLib.Error
+     {
+       /* Invalidated */
+-      if (this._logger == null)
++      if (Logger._logger == null)
+         return;
+ 
+       /* Use an intermediate, since this._logger could disappear before this
+        * async function finishes */
+-      var logger = this._logger;
++      var logger = Logger._logger;
+       yield logger.add_favourite_contact (
+           new ObjectPath (this._account_path), id);
+     }
+@@ -155,12 +155,12 @@ internal class Logger : GLib.Object
+   public async void remove_favourite_contact (string id) throws GLib.Error
+     {
+       /* Invalidated */
+-      if (this._logger == null)
++      if (Logger._logger == null)
+         return;
+ 
+       /* Use an intermediate, since this._logger could disappear before this
+        * async function finishes */
+-      var logger = this._logger;
++      var logger = Logger._logger;
+       yield logger.remove_favourite_contact (
+           new ObjectPath (this._account_path), id);
+     }
+diff --git a/backends/telepathy/lib/tpf-persona-store-cache.vala b/backends/telepathy/lib/tpf-persona-store-cache.vala
+index bd3321b..a6352a0 100644
+--- a/backends/telepathy/lib/tpf-persona-store-cache.vala
++++ b/backends/telepathy/lib/tpf-persona-store-cache.vala
+@@ -71,7 +71,7 @@ internal class Tpf.PersonaStoreCache : Folks.ObjectCache<Tpf.Persona>
+       // Maximum version?
+       if (object_version == uint8.MAX)
+         {
+-          object_version = this._FILE_FORMAT_VERSION;
++          object_version = PersonaStoreCache._FILE_FORMAT_VERSION;
+         }
+ 
+       if (object_version == 1)
+@@ -134,7 +134,7 @@ internal class Tpf.PersonaStoreCache : Folks.ObjectCache<Tpf.Persona>
+ 
+   protected override uint8 get_serialised_object_version ()
+     {
+-      return this._FILE_FORMAT_VERSION;
++      return PersonaStoreCache._FILE_FORMAT_VERSION;
+     }
+ 
+   private Variant[] serialise_abstract_field_details (
+diff --git a/backends/telepathy/lib/tpf-persona-store.vala b/backends/telepathy/lib/tpf-persona-store.vala
+index 0091547..f9121b3 100644
+--- a/backends/telepathy/lib/tpf-persona-store.vala
++++ b/backends/telepathy/lib/tpf-persona-store.vala
+@@ -433,7 +433,7 @@ public class Tpf.PersonaStore : Folks.PersonaStore
+     {
+       debug ("Removing store %s (%p)", this.id, this);
+       this._emit_personas_changed (null, this._persona_set);
+-      this._cache.clear_cache ();
++      this._cache.clear_cache.begin ();
+       this.removed ();
+     }
+ 
+@@ -1126,7 +1126,7 @@ public class Tpf.PersonaStore : Folks.PersonaStore
+           new GLib.GenericArray<TelepathyGLib.Contact> ());
+ 
+       this._got_initial_members = true;
+-      this._populate_counters ();
++      this._populate_counters.begin ();
+       this._notify_if_is_quiescent ();
+     }
+ 
+@@ -1444,7 +1444,7 @@ public class Tpf.PersonaStore : Folks.PersonaStore
+               _("Extended information may only be set on the user's Telepathy contact."));
+         }
+ 
+-      var info_list = this._contact_info_set_to_list (info_set);
++      var info_list = PersonaStore._contact_info_set_to_list (info_set);
+       if (this.account.connection != null)
+         {
+           GLib.Error? error = null;
+diff --git a/backends/telepathy/lib/tpf-persona.vala b/backends/telepathy/lib/tpf-persona.vala
+index 6390778..360263c 100644
+--- a/backends/telepathy/lib/tpf-persona.vala
++++ b/backends/telepathy/lib/tpf-persona.vala
+@@ -249,7 +249,7 @@ public class Tpf.Persona : Folks.Persona,
+    */
+   public override string[] linkable_properties
+     {
+-      get { return this._linkable_properties; }
++      get { return Tpf.Persona._linkable_properties; }
+     }
+ 
+   /**
+@@ -705,7 +705,7 @@ public class Tpf.Persona : Folks.Persona,
+       unowned string id = contact.get_identifier ();
+       var connection = contact.connection;
+       var account = connection.get_account ();
+-      var uid = this.build_uid (store.type_id, store.id, id);
++      var uid = Folks.Persona.build_uid (store.type_id, store.id, id);
+ 
+       Object (contact: contact,
+               display_id: id,
+--
+cgit v0.9.0.2
diff --git a/folks.spec b/folks.spec
index ce9b5cd..bc0fd0f 100644
--- a/folks.spec
+++ b/folks.spec
@@ -11,6 +11,10 @@ Group:          System Environment/Libraries
 License:        LGPLv2+
 URL:            http://telepathy.freedesktop.org/wiki/Folks
 Source0:        http://ftp.gnome.org/pub/GNOME/sources/%{name}/0.7/%{name}-%{version}.tar.xz
+Patch0:         001-staticmember.patch
+Patch1:         002-staticmember.patch
+Patch3:         004-staticmember.patch
+Patch4:         005-staticmember.patch
 
 BuildRequires:  telepathy-glib-devel >= %{tp_glib_ver}
 BuildRequires:  telepathy-glib-vala
@@ -61,7 +65,10 @@ developing applications that use %{name}.
 
 %prep
 %setup -q
-
+%patch0 -p1 -b .static1
+%patch1 -p1 -b .static2
+%patch3 -p1 -b .static3
+%patch4 -p1 -b .static4
 
 %build
 %configure --disable-static --enable-eds-backend --enable-vala --enable-inspect-tool --disable-libsocialweb-backend
@@ -107,8 +114,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas
 
 
 %changelog
-* Tue Aug 21 2012 Brian Pepple <bpepple at fedoraproject.org> - 1:0.7.3-2
+* Mon Aug 27 2012 Brian Pepple <bpepple at fedoraproject.org> - 1:0.7.3-2
 - Rebuild for new libcamel.
+- Pull upstream patches to fix build errors caused by accessing static members.
 
 * Sun Jul 29 2012 Brian Pepple <bpepple at fedoraproject.org> - 1:0.7.3-1
 - Update to 0.7.3.


More information about the scm-commits mailing list