[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