Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
TpSvcInterfaceInfo encodes the assumption "we emit dbus-glib-style
signals" which we don't want to keep forever. If we confine them to the
-dbus library, it'll be easier to break its ABI.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=76855
Reviewed-by: Xavier Claessens
|
|
This is basically only useful for the dbus-glib type system.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=76855
Reviewed-by: Xavier Claessens
|
|
|
|
|
|
As with async calls, we now use GVariant, don't take ownership of
the arguments in the wrapper function, do more work in
hand-written code and less work in generated code, and don't
need to mess about with DBusGProxy or idles because GDBus is just
better.
I've moved monitoring the TpProxy's lifetime from "signal connection
listens for invalidated signal" to "TpProxy explicitly drops signal
connections" in order to avoid depending on dispose emitting
invalidated, which was always a design flaw really. That also gives
us the opportunity to move the invocation of "drop all signal
connections" into an idle, which is necessary so that other listeners
to the same signal that invalidated the object (e.g. StatusChanged)
will still be notified.
|
|
An outline of the significant differences:
* the old code used DBusGProxy, but the new code does not need a proxy
object of any sort, simplifying life-cycles
* the new code does not need to jump through hoops to push the reply
into an idle unless it is responding with an immediate error, because
GDBus always replies in an idle anyway
* old GValueArray replaced by new GVariant
* TpProxyInvokeFunc freed its GError or GValueArray argument,
TpProxyWrapperFunc does not
* the old codegen had to do the actual dbus-glib call itself because
dbus-glib's API was varargs, whereas the new codegen can rely on
tp_proxy_pending_call_v1_new() to do that on its behalf (reducing
API surface area, taking responsibility away from generated code,
and giving that responsibility to hand-written code)
* the old codegen had to generate a callback for dbus-glib to call
back into, whereas the new code can share one callback between
all possible calls
* the deprecated reentrant calls in the old codegen were open-coded,
whereas the new codegen produces a simple wrapper around the async
version
|
|
|
|
This allows these interfaces to be exported via GDBus.
|
|
g_bus_watch_name_on_connection
There's more debug here than I'd normally use, because this is a
large, non-bisectable rewrite. We can delete the bits that are
excessively noisy after we know it all works :-)
|
|
We can get rid of TP_DBUS_ERROR_UNKNOWN_REMOTE_ERROR, because
G_IO_ERROR_DBUS_ERROR doesn't have the same weird abuse of GError
semantics that DBUS_GERROR_REMOTE_EXCEPTION did.
I moved TP_DBUS_ERROR_INCONSISTENT from last to 0'th TP_DBUS_ERROR,
to avoid having to renumber all of them.
We can probably get rid of a lot of these errors in favour of
G_IO_ERROR or G_DBUS_ERROR members, but for now, let's keep them.
|
|
In the glorious GDBus future, we won't need marshaller and signal
registration.
This also means we can get rid of the init_known_interfaces() family
of functions, which were only there to support interface-added.
This commit is the first of many that will break bisection.
That's somewhat unavoidable if you want to go from libdbus to GDBus
without having a single mega-commit :-)
|
|
I'm not using gdbus-codegen, at least not yet, because our CMs
are pretty heavily dependent on the TpSvc* interfaces, and I would
like the minimum viable port to GDBus to take a finite time.
|
|
This requires some enhancements to make-version-script.py
so it can support a separate ABI-version for private symbols,
like those used by the telepathy-logger daemon.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=76462
Reviewed-by: Xavier Claessens
|
|
Commit 7ffbde3f used common code for two blocks that were not actually
the same. dbus-glib method calls give the caller a new reference
to the results, whereas dbus-glib signals do not. As a result,
the method-call case needs to either free the results, or get them
freed by giving ownership to the GValueArray. I chose to give
ownership.
Reviewed-by: Guillaume Desmottes
|
|
Reviewed-by: Guillaume Desmottes
|
|
|
|
|
|
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=76000
Reviewed-by: Guillaume Desmottes
|
|
Conflicts:
NEWS
configure.ac
docs/reference/telepathy-glib-sections.txt
telepathy-glib/abi.am
telepathy-glib/account-channel-request.c
telepathy-glib/base-connection.c
telepathy-glib/base-connection.h
telepathy-glib/presence-mixin.c
telepathy-glib/presence-mixin.h
telepathy-glib/protocol.c
telepathy-glib/protocol.h
tests/dbus/account-channel-request.c
|
|
|
|
[Also remove g_type_init() from the Logger, matching
telepathy-glib. -smcv]
Conflicts:
examples/client/js/contact-list.js
examples/client/js/debug-client.js
examples/client/python/contact-list.py
examples/client/python/dialler.py
examples/client/python/ensure-channel.py
examples/client/python/file-transfer.py
examples/client/python/ft-handler.py
examples/client/python/inspect-cm.py
examples/client/python/stream-tube-accepter.py
examples/client/python/stream-tube-offerer.py
examples/client/python/text-handler.py
examples/client/stream-tubes/offerer.c
telepathy-glib/file-transfer-channel.c
tests/dbus/connection-balance.c
tests/dbus/connection-bug-18845.c
tests/dbus/connection-getinterfaces-failure.c
tests/dbus/connection-handles.c
tests/dbus/connection-inject-bug16307.c
tests/dbus/params-cm.c
tests/dbus/text-mixin.c
tests/enums.c
|
|
It was deprecated in GLib 2.36, and we already have a hard dependency
on that version.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=71048
Reviewed-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
|
|
This also fixes a few uses of im.telepathy1 in object paths in Logger code,
which was presumably a misuse of sed.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=71262
Reviewed-by: Xavier Claessens <xavier.claessens@collabora.co.uk>
|
|
Conflicts:
tools/glib-client-gen.py
|
|
telepathy-logger's installed tests still need it.
|
|
I needed this for TpExportable (which is still work in progress),
but it's already a small code reduction.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=59024
Reviewed-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
|
|
|
|
Conflicts:
NEWS
configure.ac
docs/reference/telepathy-glib-sections.txt
examples/cm/contactlist/conn.c
telepathy-glib/account.c
telepathy-glib/base-connection-manager.c
telepathy-glib/base-connection.c
telepathy-glib/group-mixin.c
telepathy-glib/message-mixin.c
telepathy-glib/presence-mixin.c
telepathy-glib/text-mixin.c
tests/dbus/channel-dispatch-operation.c
tests/dbus/client-channel-factory.c
tests/dbus/contacts-slow-path.c
tests/dbus/contacts.c
tests/dbus/dbus-uninstalled/services/spurious.service
tests/dbus/params-cm.c
tests/lib/broken-client-types-conn.c
tests/lib/contacts-conn.c
tools/glib-client-gen.py
|
|
Yes we know we have GValueArrays.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=69849
Reviewed-by: Xavier Claessens <xavier.claessens@collabora.co.uk>
|
|
https://bugs.freedesktop.org/show_bug.cgi?id=55761
|
|
telepathy-glib-0.21.1
Conflicts:
configure.ac
telepathy-glib/message.c
|
|
telepathy-glib prefers to use DBUS_BUS_STARTER, for the benefit of
Telepathy components that are (or might be) service-activatable.
The actual terminal part of gnome-terminal 3.8 is an activatable service,
so when run from there, we pick up the real session bus' address via
DBUS_STARTER_ADDRESS. We don't want that.
(Yes, it's DBUS_STARTER_ADDRESS, not DBUS_STARTER_BUS_ADDRESS. The
reference implementation and the D-Bus Specification both say so.)
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=63119
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Xavier Claessens <xavier.claessens@collabora.co.uk>
(cherry picked from commit c768a891d6cd9012c3072b1a8307146e3d41be35)
|
|
This means we define MKDIR_P instead of mkdir_p - adjust.
Strictly speaking this requires Autoconf 2.59d, but 2.60 is hardly a
new innovation (it was released in 2006).
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Xavier Claessens <xavier.claessens@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=65517
|
|
Conflicts:
NEWS
configure.ac
|
|
telepathy-glib prefers to use DBUS_BUS_STARTER, for the benefit of
Telepathy components that are (or might be) service-activatable.
The actual terminal part of gnome-terminal 3.8 is an activatable service,
so when run from there, we pick up the real session bus' address via
DBUS_STARTER_ADDRESS. We don't want that.
(Yes, it's DBUS_STARTER_ADDRESS, not DBUS_STARTER_BUS_ADDRESS. The
reference implementation and the D-Bus Specification both say so.)
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=63119
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Xavier Claessens <xavier.claessens@collabora.co.uk>
|
|
Conflicts:
configure.ac
telepathy-glib/client-channel-factory.c
tests/dbus/contact-lists.c
tools/glib-client-gen.py
|
|
They have been verified to produce identical output in _gen.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=56758
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Xavier Claessens <xavier.claessens@collabora.co.uk>
|
|
This function was already removed and replaced by _get_interface_by_id()
|
|
Headers to use is caller's choice, like that tp-glib internal can use
single headers while extensions can use global header.
This also move command line headers to generated .h instead of .c
|
|
Conflicts:
configure.ac
docs/reference/telepathy-glib-sections.txt
examples/client/contact-list.c
telepathy-glib/abi.am
telepathy-glib/account-manager.c
telepathy-glib/account-manager.h
telepathy-glib/call-channel.c
telepathy-glib/channel.c
telepathy-glib/protocol.h
telepathy-glib/proxy.c
telepathy-glib/stream-tube-channel.c
telepathy-glib/text-channel.c
tools/glib-client-gen.py
|
|
New transfer and naming policy has been discussed in
https://bugs.freedesktop.org/show_bug.cgi?id=39189 and is
documented there: http://telepathy.freedesktop.org/wiki/Style/TelepathyGLib
|
|
Conflicts:
configure.ac
telepathy-glib/abi.am
telepathy-glib/base-client.c
telepathy-glib/base-connection.c
telepathy-glib/codegen.am
telepathy-glib/contact.c
Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
|
|
When lcov fails on the buildbot let's upload /something/.
Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
|
|
Conflicts:
configure.ac
telepathy-glib/abi.am
telepathy-glib/account.h
telepathy-glib/automatic-proxy-factory.c
telepathy-glib/base-channel.h
telepathy-glib/base-client.c
telepathy-glib/base-connection-manager.c
telepathy-glib/base-connection-manager.h
telepathy-glib/base-connection.c
telepathy-glib/client-channel-factory.c
telepathy-glib/connection.h
tests/dbus/connection-balance.c
tests/dbus/protocol-objects.c
tests/lib/bug16307-conn.c
tests/lib/contacts-conn.c
tests/lib/echo-cm.c
tests/lib/echo-conn.c
|
|
|
|
If an extension iface has properties, its header will include
dbus-properties-mixin.h, which is not allowed outside tp-glib itself.
Since the generated header does not expose the mixin, move the include
to .c file, and use the meta header if single includes are not allowed.
|
|
Conflicts:
configure.ac
docs/reference/telepathy-glib-sections.txt
examples/client/extended-client.c
examples/client/inspect-contact.c
examples/cm/echo-message-parts/chan.c
spec/Protocol_Interface_Presence1.xml
spec/all.xml
telepathy-glib/Makefile.am
telepathy-glib/abi.am
telepathy-glib/base-connection.c
telepathy-glib/base-connection.h
telepathy-glib/connection-contact-list.c
telepathy-glib/contacts-mixin.c
telepathy-glib/intset.c
telepathy-glib/message-mixin.c
telepathy-glib/message-mixin.h
telepathy-glib/stream-tube-channel.c
telepathy-glib/text-channel.c
tests/lib/util.c
|
|
It just leads us to writing insanity like:
GError *error /* badger */;
|
|
Conflicts:
docs/reference/telepathy-glib-sections.txt
examples/client/approver.c
examples/cm/call/call-manager.c
examples/cm/call/conn.c
examples/cm/channelspecific/conn.c
examples/cm/channelspecific/room.c
examples/cm/contactlist/conn.c
examples/cm/echo-message-parts/chan.c
examples/cm/echo-message-parts/conn.c
examples/cm/extended/conn.c
telepathy-glib/Makefile.am
telepathy-glib/base-contact-list-internal.h
telepathy-glib/contact.h
telepathy-glib/dbus-properties-mixin-internal.h
telepathy-glib/telepathy-glib-dbus.h
telepathy-glib/telepathy-glib.h
tools/glib-client-gen.py
|