============== telepathy-glib ============== Telepathy is a D-Bus framework for unifying real time communication, including instant messaging, voice calls and video calls. It abstracts differences between protocols to provide a unified interface for applications. telepathy-glib is a C library using GLib, for use in Telepathy clients, connection managers (protocol backends) and other components. It can also be used from C++ via extern "C" linkage, and from higher-level languages including Python and JavaScript via GObject-Introspection. Optional components: • telepathy-farstream implements the actual streaming for Telepathy Call channels using Farstream and GStreamer, and should be used in VoIP client user interfaces • telepathy-logger provides a logging daemon and a log-access library, see telepathy-logger/README for more details Telepathy specification ======================= The copy of the Telepathy specification in the spec/ directory indicates the specification that this library claims to implement. Requirements ============ Building telepathy-glib requires: GLib, GObject libdbus The D-Bus GLib bindings GNU make pkg-config libxslt, xsltproc Python and can also make use of: GObject-Introspection Vala gtkdoc See configure.ac for full details, including versions required. Of the packages listed above, only GLib, GObject, libdbus and dbus-glib are required at runtime. The optional components additionally require: Farstream GStreamer base plugins sqlite libxml2 Configure with --enable-farstream, --enable-logger to make the build fail if suitable versions are not found, or --disable-farstream etc. to disable an optional component even if its dependencies are present. The default is to compile all optional components whose dependencies are satisfied. Building from git also requires the GNU build system (Autoconf, Automake, libtool). Bugs, feature requests and to-do list ===================================== Report all bugs, feature requests and "to-do" items here: Running "make check" will produce FIXME.out, which lists all the mentions of FIXME, TODO or XXX in the source code. Ideally, all of these should be in Bugzilla, but sometimes they're not. API stability policy ==================== We use an "odd/even" versioning scheme where the minor version (the y in x.y.z) determines stability - stable branches have y even, development branches have y odd. In a stable (even) branch, we will not make incompatible API or ABI changes between one release tarball and the next. In a development (odd) branch, we will attempt to avoid incompatible API or ABI changes. If we break ABI relative to the previous stable (even) release, we will increase the library SONAME to avoid breaking existing code. If we break ABI relative to a previous development (odd) release, we will not necessarily increase the library SONAME: in other words, API/ABI added by a development release is not guaranteed until it appears in a stable release. (This is basically the same policy as GLib - in versions 0.22 and earlier, we had a more restrictive policy.) The GObject-Introspection and Vala bindings are more or less stable, but might break compatibility between one development branch and the next. Unreleased builds straight from git identify themselves as version "x.y.z.1". We DO NOT make any API guarantees about unreleased builds. Unreleased builds are compiled with -Werror, so they might stop working if your gcc version issues more warnings than ours. If this is a problem for you, use a release tarball or configure with --disable-fatal-warnings. Contact info ============ This library is maintained by the Telepathy project: Telepathy development is supported by Collabora Ltd. . Hacking ======= The current development version of telepathy-glib is available from the 'master' branch in the git repository: (for committers) (gitweb) Stable branches are available from branches with names like 'telepathy-glib-0.6' in the same repository. Proposed patches awaiting review can usually be found in freedesktop.org bugzilla. Our review procedure is described by: Please follow . GObject Introspection ===================== telepathy-glib's high level API has experimental GObject-Introspection support. You can easily test it from the source directory by defining this environment variable: GI_TYPELIB_PATH=`pwd`/telepathy-glib export GI_TYPELIB_PATH LD_LIBRARY_PATH=`pwd`/telepathy-glib/.libs export LD_LIBRARY_PATH In Python you can access the API using; from gi.repository import TelepathyGLib