summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2009-06-05 17:46:34 +0100
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2009-06-05 17:46:36 +0100
commit3ed0c5d5ec21426e442872bafd0ae2b279fcc3ce (patch)
tree5da1c71817a921826a5503e145b9d6ec5c7d1796
parent9c25d1e67e60be7136d4cbcf65ee939a1560101c (diff)
parentd6d29178a088ca4d373c38153b7afd89255ae275 (diff)
Merge branch 'nonbeta'5.1.0
Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
-rw-r--r--NEWS52
-rw-r--r--README125
-rw-r--r--configure.ac32
-rw-r--r--libmcclient/Makefile.am9
-rw-r--r--src/Makefile.am13
5 files changed, 224 insertions, 7 deletions
diff --git a/NEWS b/NEWS
index e69de29b..8db21b61 100644
--- a/NEWS
+++ b/NEWS
@@ -0,0 +1,52 @@
+telepathy-mission-control 5.1.0 (2009-06-05)
+============================================
+
+The "beta 75 would have been silly" release.
+
+After months of development, this is the first numbered release of Mission
+Control 5. We jumped straight to 5.1 in order to use the Linux-style odd/even
+versioning seen in the other Telepathy components, so the 5.1.x development
+branch will lead to the 5.2.x stable branch.
+
+Changes since Mission Control 4 are too numerous to list here, but here are
+the major architectural changes.
+
+The proprietary MissionControl API no longer exists; the daemon is a
+telepathy-spec-compliant AccountManager, and also a telepathy-spec-compliant
+ChannelDispatcher. Consequences of this include:
+
+* Clients are no longer expected to implement the ChannelHandler interface.
+ Instead, they may implement the Observer, Approver and/or Handler interfaces
+ specified in telepathy-spec.
+
+* The design of channel dispatching copes better with having multiple user
+ interface components installed.
+
+* Accounts' presence, avatar and nickname are now independent (stored
+ per-account), allowing for more precise control by UIs.
+
+* Accounts no longer have to belong to a "profile", although they still can
+ (albeit only by using a non-standard extension).
+
+Accounts are now stored in a flat file, rather than by abusing GConf. The
+included mc-account-convert tool might be able to convert MC 4 accounts to
+the MC 5 format, if you're lucky.
+
+libmissioncontrol-server has changed its API and ABI considerably, and is not
+yet considered stable in its new form either. It is no longer installed by
+default (in a normal configuration it'll just be compiled into the daemon).
+
+libmissioncontrol (based on libtelepathy and also known as
+libmissioncontrol-client) no longer exists, and has been replaced by
+libmcclient (based on telepathy-glib).
+
+Mission Control 5 is not a drop-in replacement for Mission Control 4, and
+cannot be used by Mission-Control-4-based applications like Empathy 2.26
+and the Maemo 4 platform. However, both versions can be installed
+independently in the same directory prefix, to facilitate porting from one to
+the other.
+
+Known regressions since Mission Control 4:
+
+* There is no gnome-keyring integration yet.
+* The client and server library APIs are not considered to be stable yet.
diff --git a/README b/README
index e69de29b..7df10bba 100644
--- a/README
+++ b/README
@@ -0,0 +1,125 @@
+===========================
+telepathy-mission-control 5
+===========================
+
+Telepathy Mission Control 5 is an account manager and channel dispatcher for
+the Telepathy framework, allowing user interfaces and other clients
+to share connections to real-time communication services without conflicting.
+It implements the AccountManager and ChannelDispatcher D-Bus APIs as described
+by telepathy-spec.
+
+The account manager part stores real time communication account details,
+connects to the stored accounts on request, and sets the accounts' presence,
+nickname and avatar according to requests from Telepathy user interfaces and
+other components.
+
+The channel dispatcher part responds to incoming communication channels
+(message streams, voice/video calls, file transfers etc.) by dispatching
+them to suitable user interfaces, and requests outgoing communication
+channels according to requests from a Telepathy UI.
+
+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.
+
+Mission Control currently also provides a C API. Please note that this API is
+subject to rapid change (see below).
+
+Requirements
+============
+
+Building Mission Control requires:
+ GLib, GObject <http://ftp.gnome.org/pub/GNOME/sources/glib/>
+ libdbus <http://dbus.freedesktop.org/releases/dbus/>
+ The D-Bus GLib bindings <http://dbus.freedesktop.org/releases/dbus-glib/>
+ telepathy-glib <http://telepathy.freedesktop.org/releases/telepathy-glib/>
+
+ GNU make <http://www.gnu.org/software/make/>
+ pkg-config <http://ftp.gnome.org/pub/GNOME/sources/pkg-config/>
+ libxslt, xsltproc <http://xmlsoft.org/XSLT/>
+ Python <http://www.python.org/>
+
+and can also make use of:
+ gtkdoc <http://ftp.gnome.org/pub/GNOME/sources/gtk-doc/>
+
+See configure.ac for full details, including versions required.
+Of the packages listed above, only GLib, GObject, libdbus, dbus-glib and
+telepathy-glib are required at runtime.
+
+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:
+ <https://bugs.freedesktop.org/enter_bug.cgi?product=Telepathy&component=telepathy-mission-control>
+
+D-Bus API stability
+===================
+
+Interfaces described as stable in the Telepathy Specification
+<http://telepathy.freedesktop.org/spec/> are considered stable and will not
+generally have incompatible changes.
+
+All other interfaces (including draft interfaces and Nokia-specific
+extensions) are subject to change.
+
+C API stability
+===============
+
+libmcclient is a client library for communicating with Mission Control. It
+is not necessarily suitable for communication with any other Telepathy
+AccountManager or ChannelDispatcher implementations, and will probably be
+phased out eventually, in favour of library support in telepathy-glib.
+
+libmissioncontrol-server contains most of the implementation of MC, and can
+be used to produce a derivative of MC containing desktop- or device-specific
+behaviour, like Maemo's proprietary osso-mission-control package. It is only
+built and installed as a library if Mission Control is configured with
+the --enable-plugins option; this is not recommended on mainstream Linux
+distributions.
+
+At this stage in development, neither library is considered stable; only
+depend on them if you have control over the specific version of MC you're
+using.
+
+Versioning
+==========
+
+Starting from version 5.1.0, Mission Control follows the same Linux-style
+odd/even minor versioning policy as most other Telepathy components: the 5.1.x
+series are development releases, and 5.2.x will be the first stable branch.
+
+Intermediate versions built from the git repository have a "+" suffix on the
+version number, so version "5.1.0+" could be any snapshot taken between 5.1.0
+and 5.1.1.
+
+Contact info
+============
+
+Mission Control was originally written by Nokia Corporation for the Maemo
+platform, but it is now maintained by the Telepathy project:
+ <http://telepathy.freedesktop.org/>
+ <mailto:telepathy@lists.freedesktop.org>
+ <irc://irc.freenode.net/telepathy>
+
+Hacking
+=======
+
+The current development version of MC is available from the
+'master' branch in the git repository:
+ <git://git.collabora.co.uk/git/telepathy-mission-control.git>
+ <git+ssh://git.collabora.co.uk/git/telepathy-mission-control.git>
+ <http://git.collabora.co.uk/?p=telepathy-mission-control.git> (gitweb)
+
+Stable branches will be made available from branches with names like
+'telepathy-mission-control-5.2' in the same repository.
+
+Contributions for review should be attached to bugs in freedesktop.org
+Bugzilla, with the "patch" tag. If there's no relevant bug, open one:
+ <https://bugs.freedesktop.org/enter_bug.cgi?product=Telepathy&component=telepathy-mission-control>
+
+MC does not yet follow <http://telepathy.freedesktop.org/wiki/Style>. Please
+follow the style used in the current code.
diff --git a/configure.ac b/configure.ac
index d8c47864..111ed1b5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,7 +1,7 @@
dnl Set the version number to e.g. 5.0.beta42 immediately before a release.
dnl Set the version number to e.g. 5.0.beta42+ immediately after (this will
dnl enable -Werror).
-AC_INIT(telepathy-mission-control, 5.0.beta74+)
+AC_INIT(telepathy-mission-control, 5.1.0)
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_SRCDIR(Makefile.am)
@@ -214,6 +214,36 @@ AC_ARG_ENABLE(server,
)
AM_CONDITIONAL(HAVE_SERVER, [test x$server_enabled = xyes])
+ENABLE_MC_CLIENT_SO6="no"
+AC_MSG_CHECKING(whether to pretend libmcclient is stable)
+AC_ARG_ENABLE(mcclient-so6,
+ [ --enable-mcclient-so6 pretend libmcclient is ABI-stable],
+ [
+ AC_MSG_RESULT(${enableval})
+ ENABLE_MC_CLIENT_SO6="${enableval}"
+ ],
+ [
+ AC_MSG_RESULT(no)
+ ENABLE_MC_CLIENT_SO6="no"
+ ]
+)
+AM_CONDITIONAL(ENABLE_MC_CLIENT_SO6, [test "x$ENABLE_MC_CLIENT_SO6" = xyes])
+
+ENABLE_MC_SERVER_SO6="no"
+AC_MSG_CHECKING(whether to pretend libmissioncontrol-server is stable)
+AC_ARG_ENABLE(mcserver-so6,
+ [ --enable-mcserver-so6 pretend libmissioncontrol-server is ABI-stable],
+ [
+ AC_MSG_RESULT(${enableval})
+ ENABLE_MC_SERVER_SO6="${enableval}"
+ ],
+ [
+ AC_MSG_RESULT(no)
+ ENABLE_MC_SERVER_SO6="no"
+ ]
+)
+AM_CONDITIONAL(ENABLE_MC_SERVER_SO6, [test "x$ENABLE_MC_SERVER_SO6" = xyes])
+
plugins_enabled="no"
AC_MSG_CHECKING(whether to support plugins)
AC_ARG_ENABLE(plugins,
diff --git a/libmcclient/Makefile.am b/libmcclient/Makefile.am
index f4202cf1..9fc1308d 100644
--- a/libmcclient/Makefile.am
+++ b/libmcclient/Makefile.am
@@ -80,10 +80,15 @@ libmcclient_la_LIBADD = \
$(GLIB_LIBS)
libmcclient_la_LDFLAGS = \
- -export-symbols-regex "^(mc_)|(mission_control_)" \
- -version-info "10":"0":"4"
+ -export-symbols-regex "^(mc_)|(mission_control_)"
+
+if ENABLE_MC_CLIENT_SO6
# the redundant quoting here is to prevent the libtool command line from
# looking like an error message in an oddly named file
+libmcclient_la_LDFLAGS += -version-info "10":"0":"4"
+else
+libmcclient_la_LDFLAGS += -release $(VERSION)
+endif
%-marshal.h: %-marshal.list Makefile.am
glib-genmarshal --header --prefix=$(subst -,_,$*)_marshal $< > $*-marshal.h
diff --git a/src/Makefile.am b/src/Makefile.am
index 3a606e12..20e199cf 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -97,10 +97,15 @@ lib_LTLIBRARIES = libmissioncontrol-server.la
libmissioncontrol_server_la_LIBADD += $(GMODULE_LIBS)
libmissioncontrol_server_la_LDFLAGS = \
- -export-symbols-regex '^((mc_)|(mcd_)|(mission_control_))' \
- -version-info "10":"0":"4"
+ -export-symbols-regex '^((mc_)|(mcd_)|(mission_control_))'
+
+if ENABLE_MC_SERVER_SO6
# the redundant quoting here is to prevent the libtool command line from
# looking like an error message in an oddly named file
+libmissioncontrol_server_la_LDFLAGS += -version-info "10":"0":"4"
+else
+libmissioncontrol_server_la_LDFLAGS += -release $(VERSION)
+endif
mission_control_includedir = $(includedir)/mission-control
mission_control_include_HEADERS = $(mc_headers)
@@ -111,9 +116,9 @@ nodist_geninclude_HEADERS = $(mc_gen_headers)
INCLUDES += \
$(GMODULE_CFLAGS) \
-DMCD_DEFAULT_FILTER_PLUGIN_DIR=\"@pluginlibdir@\"
-else
+else # ENABLE_PLUGINS
noinst_LTLIBRARIES = libmissioncontrol-server.la
-endif
+endif # ENABLE_PLUGINS
libmissioncontrol_server_la_SOURCES = \
mcd-account.c \