Initial commit
This commit is contained in:
commit
b060ac5a76
79
.gitignore
vendored
Normal file
79
.gitignore
vendored
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
*.swp
|
||||||
|
*~
|
||||||
|
|
||||||
|
/INSTALL
|
||||||
|
aclocal.m4
|
||||||
|
autom4te.cache
|
||||||
|
/build-aux
|
||||||
|
config.guess
|
||||||
|
config.cache
|
||||||
|
config.h
|
||||||
|
config.h.in
|
||||||
|
config.log
|
||||||
|
config.status
|
||||||
|
config.sub
|
||||||
|
configure
|
||||||
|
install-sh
|
||||||
|
libtool
|
||||||
|
ltmain.sh
|
||||||
|
missing
|
||||||
|
stamp-h1
|
||||||
|
depcomp
|
||||||
|
compile
|
||||||
|
/test-driver
|
||||||
|
|
||||||
|
m4/libtool.m4
|
||||||
|
m4/ltoptions.m4
|
||||||
|
m4/ltsugar.m4
|
||||||
|
m4/ltversion.m4
|
||||||
|
m4/lt~obsolete.m4
|
||||||
|
|
||||||
|
Makefile
|
||||||
|
Makefile.in
|
||||||
|
|
||||||
|
.deps
|
||||||
|
.libs
|
||||||
|
|
||||||
|
*.o
|
||||||
|
*.lo
|
||||||
|
*.la
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
*-glue.[ch]
|
||||||
|
*-marshal.[ch]
|
||||||
|
*-enumtypes.[ch]
|
||||||
|
*-bindings.[ch]
|
||||||
|
*-gen.h
|
||||||
|
|
||||||
|
data/org.freedesktop.Telepathy.ConnectionManager.matrix.service
|
||||||
|
|
||||||
|
extensions/_gen
|
||||||
|
extensions/extensions.html
|
||||||
|
|
||||||
|
src/telepathy-matrix
|
||||||
|
src/telepathy-matrix.8
|
||||||
|
|
||||||
|
core
|
||||||
|
cscope.out
|
||||||
|
tags
|
||||||
|
|
||||||
|
tests/test-ctcp-kill-blingbling
|
||||||
|
tests/test-ctcp-tokenize
|
||||||
|
tests/test-text-encode-and-split
|
||||||
|
tests/test-tokenize-leading-space
|
||||||
|
tests/test-tokenize-leading-space.c
|
||||||
|
tests/*.log
|
||||||
|
tests/*.trs
|
||||||
|
|
||||||
|
tests/twisted/config.py
|
||||||
|
tests/twisted/matrix-twisted-tests.list
|
||||||
|
tests/twisted/tools/exec-with-log.sh
|
||||||
|
tests/twisted/tools/matrix-testing.log
|
||||||
|
tests/twisted/tools/org.freedesktop.Telepathy.ConnectionManager.matrix.service
|
||||||
|
tests/twisted/run-test.sh
|
||||||
|
tests/twisted/test-suite.log
|
||||||
|
tests/twisted/tools/tmp-session-bus.conf
|
||||||
|
|
||||||
|
tests/twisted/with-session-bus*.dbus-monitor-logs
|
||||||
|
tests/twisted/with-session-bus*.address
|
||||||
|
tests/twisted/with-session-bus*.pid
|
165
COPYING
Normal file
165
COPYING
Normal file
@ -0,0 +1,165 @@
|
|||||||
|
GNU LESSER GENERAL PUBLIC LICENSE
|
||||||
|
Version 3, 29 June 2007
|
||||||
|
|
||||||
|
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
|
||||||
|
This version of the GNU Lesser General Public License incorporates
|
||||||
|
the terms and conditions of version 3 of the GNU General Public
|
||||||
|
License, supplemented by the additional permissions listed below.
|
||||||
|
|
||||||
|
0. Additional Definitions.
|
||||||
|
|
||||||
|
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||||
|
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||||
|
General Public License.
|
||||||
|
|
||||||
|
"The Library" refers to a covered work governed by this License,
|
||||||
|
other than an Application or a Combined Work as defined below.
|
||||||
|
|
||||||
|
An "Application" is any work that makes use of an interface provided
|
||||||
|
by the Library, but which is not otherwise based on the Library.
|
||||||
|
Defining a subclass of a class defined by the Library is deemed a mode
|
||||||
|
of using an interface provided by the Library.
|
||||||
|
|
||||||
|
A "Combined Work" is a work produced by combining or linking an
|
||||||
|
Application with the Library. The particular version of the Library
|
||||||
|
with which the Combined Work was made is also called the "Linked
|
||||||
|
Version".
|
||||||
|
|
||||||
|
The "Minimal Corresponding Source" for a Combined Work means the
|
||||||
|
Corresponding Source for the Combined Work, excluding any source code
|
||||||
|
for portions of the Combined Work that, considered in isolation, are
|
||||||
|
based on the Application, and not on the Linked Version.
|
||||||
|
|
||||||
|
The "Corresponding Application Code" for a Combined Work means the
|
||||||
|
object code and/or source code for the Application, including any data
|
||||||
|
and utility programs needed for reproducing the Combined Work from the
|
||||||
|
Application, but excluding the System Libraries of the Combined Work.
|
||||||
|
|
||||||
|
1. Exception to Section 3 of the GNU GPL.
|
||||||
|
|
||||||
|
You may convey a covered work under sections 3 and 4 of this License
|
||||||
|
without being bound by section 3 of the GNU GPL.
|
||||||
|
|
||||||
|
2. Conveying Modified Versions.
|
||||||
|
|
||||||
|
If you modify a copy of the Library, and, in your modifications, a
|
||||||
|
facility refers to a function or data to be supplied by an Application
|
||||||
|
that uses the facility (other than as an argument passed when the
|
||||||
|
facility is invoked), then you may convey a copy of the modified
|
||||||
|
version:
|
||||||
|
|
||||||
|
a) under this License, provided that you make a good faith effort to
|
||||||
|
ensure that, in the event an Application does not supply the
|
||||||
|
function or data, the facility still operates, and performs
|
||||||
|
whatever part of its purpose remains meaningful, or
|
||||||
|
|
||||||
|
b) under the GNU GPL, with none of the additional permissions of
|
||||||
|
this License applicable to that copy.
|
||||||
|
|
||||||
|
3. Object Code Incorporating Material from Library Header Files.
|
||||||
|
|
||||||
|
The object code form of an Application may incorporate material from
|
||||||
|
a header file that is part of the Library. You may convey such object
|
||||||
|
code under terms of your choice, provided that, if the incorporated
|
||||||
|
material is not limited to numerical parameters, data structure
|
||||||
|
layouts and accessors, or small macros, inline functions and templates
|
||||||
|
(ten or fewer lines in length), you do both of the following:
|
||||||
|
|
||||||
|
a) Give prominent notice with each copy of the object code that the
|
||||||
|
Library is used in it and that the Library and its use are
|
||||||
|
covered by this License.
|
||||||
|
|
||||||
|
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||||
|
document.
|
||||||
|
|
||||||
|
4. Combined Works.
|
||||||
|
|
||||||
|
You may convey a Combined Work under terms of your choice that,
|
||||||
|
taken together, effectively do not restrict modification of the
|
||||||
|
portions of the Library contained in the Combined Work and reverse
|
||||||
|
engineering for debugging such modifications, if you also do each of
|
||||||
|
the following:
|
||||||
|
|
||||||
|
a) Give prominent notice with each copy of the Combined Work that
|
||||||
|
the Library is used in it and that the Library and its use are
|
||||||
|
covered by this License.
|
||||||
|
|
||||||
|
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||||
|
document.
|
||||||
|
|
||||||
|
c) For a Combined Work that displays copyright notices during
|
||||||
|
execution, include the copyright notice for the Library among
|
||||||
|
these notices, as well as a reference directing the user to the
|
||||||
|
copies of the GNU GPL and this license document.
|
||||||
|
|
||||||
|
d) Do one of the following:
|
||||||
|
|
||||||
|
0) Convey the Minimal Corresponding Source under the terms of this
|
||||||
|
License, and the Corresponding Application Code in a form
|
||||||
|
suitable for, and under terms that permit, the user to
|
||||||
|
recombine or relink the Application with a modified version of
|
||||||
|
the Linked Version to produce a modified Combined Work, in the
|
||||||
|
manner specified by section 6 of the GNU GPL for conveying
|
||||||
|
Corresponding Source.
|
||||||
|
|
||||||
|
1) Use a suitable shared library mechanism for linking with the
|
||||||
|
Library. A suitable mechanism is one that (a) uses at run time
|
||||||
|
a copy of the Library already present on the user's computer
|
||||||
|
system, and (b) will operate properly with a modified version
|
||||||
|
of the Library that is interface-compatible with the Linked
|
||||||
|
Version.
|
||||||
|
|
||||||
|
e) Provide Installation Information, but only if you would otherwise
|
||||||
|
be required to provide such information under section 6 of the
|
||||||
|
GNU GPL, and only to the extent that such information is
|
||||||
|
necessary to install and execute a modified version of the
|
||||||
|
Combined Work produced by recombining or relinking the
|
||||||
|
Application with a modified version of the Linked Version. (If
|
||||||
|
you use option 4d0, the Installation Information must accompany
|
||||||
|
the Minimal Corresponding Source and Corresponding Application
|
||||||
|
Code. If you use option 4d1, you must provide the Installation
|
||||||
|
Information in the manner specified by section 6 of the GNU GPL
|
||||||
|
for conveying Corresponding Source.)
|
||||||
|
|
||||||
|
5. Combined Libraries.
|
||||||
|
|
||||||
|
You may place library facilities that are a work based on the
|
||||||
|
Library side by side in a single library together with other library
|
||||||
|
facilities that are not Applications and are not covered by this
|
||||||
|
License, and convey such a combined library under terms of your
|
||||||
|
choice, if you do both of the following:
|
||||||
|
|
||||||
|
a) Accompany the combined library with a copy of the same work based
|
||||||
|
on the Library, uncombined with any other library facilities,
|
||||||
|
conveyed under the terms of this License.
|
||||||
|
|
||||||
|
b) Give prominent notice with the combined library that part of it
|
||||||
|
is a work based on the Library, and explaining where to find the
|
||||||
|
accompanying uncombined form of the same work.
|
||||||
|
|
||||||
|
6. Revised Versions of the GNU Lesser General Public License.
|
||||||
|
|
||||||
|
The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the GNU Lesser General Public License from time to time. Such new
|
||||||
|
versions will be similar in spirit to the present version, but may
|
||||||
|
differ in detail to address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the
|
||||||
|
Library as you received it specifies that a certain numbered version
|
||||||
|
of the GNU Lesser General Public License "or any later version"
|
||||||
|
applies to it, you have the option of following the terms and
|
||||||
|
conditions either of that published version or of any later version
|
||||||
|
published by the Free Software Foundation. If the Library as you
|
||||||
|
received it does not specify a version number of the GNU Lesser
|
||||||
|
General Public License, you may choose any version of the GNU Lesser
|
||||||
|
General Public License ever published by the Free Software Foundation.
|
||||||
|
|
||||||
|
If the Library as you received it specifies that a proxy can decide
|
||||||
|
whether future versions of the GNU Lesser General Public License shall
|
||||||
|
apply, that proxy's public statement of acceptance of any version is
|
||||||
|
permanent authorization for you to choose that version for the
|
||||||
|
Library.
|
11
Makefile.am
Normal file
11
Makefile.am
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
|
||||||
|
#SUBDIRS = tools extensions src data m4 tests
|
||||||
|
SUBDIRS = src
|
||||||
|
|
||||||
|
#check-twisted : all
|
||||||
|
# $(MAKE) -C tests/twisted check-twisted
|
||||||
|
|
||||||
|
#check-all: check check-twisted
|
||||||
|
|
||||||
|
include tools/telepathy.am
|
9
README.md
Normal file
9
README.md
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# Telepathy connection manager for Matrix.org
|
||||||
|
|
||||||
|
Telepathy Matrix implements the
|
||||||
|
[Telepathy](http://telepathy.freedesktop.org/wiki/)
|
||||||
|
[D-Bus](http://www.freedesktop.org/wiki/Software/dbus/) specification
|
||||||
|
for the [Matrix.org](http://matrix.org/) SDK, allowing Telepathy
|
||||||
|
clients like
|
||||||
|
[Empathy](https://wiki.gnome.org/action/show/Apps/Empathy) to connect
|
||||||
|
to Matrix.org home servers.
|
24
autogen.sh
Executable file
24
autogen.sh
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
autoreconf -i -Wno-portability
|
||||||
|
|
||||||
|
# Honor NOCONFIGURE for compatibility with gnome-autogen.sh
|
||||||
|
if test x"$NOCONFIGURE" = x; then
|
||||||
|
run_configure=true
|
||||||
|
for arg in $*; do
|
||||||
|
case $arg in
|
||||||
|
--no-configure)
|
||||||
|
run_configure=false
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
else
|
||||||
|
run_configure=false
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $run_configure = true; then
|
||||||
|
./configure "$@"
|
||||||
|
fi
|
142
configure.ac
Normal file
142
configure.ac
Normal file
@ -0,0 +1,142 @@
|
|||||||
|
AC_PREREQ([2.60])
|
||||||
|
|
||||||
|
# Making releases:
|
||||||
|
# set the new version number:
|
||||||
|
# odd minor -> development series
|
||||||
|
# even minor -> stable series
|
||||||
|
# increment micro for each release within a series
|
||||||
|
# set nano_version to 0
|
||||||
|
# make the release, tag it
|
||||||
|
# set nano_version to 1
|
||||||
|
|
||||||
|
m4_define([matrix_major_version], [0])
|
||||||
|
m4_define([matrix_minor_version], [0])
|
||||||
|
m4_define([matrix_micro_version], [0])
|
||||||
|
m4_define([matrix_nano_version], [1])
|
||||||
|
|
||||||
|
m4_define([matrix_base_version],
|
||||||
|
[matrix_major_version.matrix_minor_version.matrix_micro_version])
|
||||||
|
m4_define([matrix_version],
|
||||||
|
[m4_if(matrix_nano_version, 0,
|
||||||
|
[matrix_base_version],
|
||||||
|
[matrix_base_version].[matrix_nano_version])])
|
||||||
|
|
||||||
|
AC_INIT([telepathy-matrix], [matrix_version])
|
||||||
|
|
||||||
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
AC_CONFIG_AUX_DIR([build-aux])
|
||||||
|
|
||||||
|
# Enable silent build rules by default, requires at least
|
||||||
|
# Automake-1.11. Disable by either passing --disable-silent-rules to
|
||||||
|
# configure or passing V=1 to make
|
||||||
|
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||||
|
|
||||||
|
AM_INIT_AUTOMAKE([1.9 -Wno-portability subdir-objects])
|
||||||
|
|
||||||
|
AM_PROG_LIBTOOL
|
||||||
|
AM_CONFIG_HEADER(config.h)
|
||||||
|
AC_PROG_MKDIR_P
|
||||||
|
|
||||||
|
dnl check for tools
|
||||||
|
AC_PROG_CC
|
||||||
|
AC_PROG_CC_STDC
|
||||||
|
AM_PROG_AS
|
||||||
|
|
||||||
|
AS_IF([test matrix_nano_version = 0],
|
||||||
|
[ # version x.y.z - "official release",
|
||||||
|
# disable extra checks by default
|
||||||
|
AC_ARG_ENABLE([fatal-warnings],
|
||||||
|
[AC_HELP_STRING([--enable-fatal-warnings],
|
||||||
|
[make various warnings fatal])],
|
||||||
|
[],
|
||||||
|
[enable_fatal_warnings=no])
|
||||||
|
],
|
||||||
|
[ # version x.y.z.1 - development snapshot,
|
||||||
|
# enable extra checks by default
|
||||||
|
AC_ARG_ENABLE([fatal-warnings],
|
||||||
|
[AC_HELP_STRING([--disable-fatal-warnings],
|
||||||
|
[make various warnings non-fatal])],
|
||||||
|
[],
|
||||||
|
[enable_fatal_warnings=yes])
|
||||||
|
])
|
||||||
|
|
||||||
|
TP_COMPILER_WARNINGS([ERROR_CFLAGS], [test "x$enable_fatal_warnings" = xyes],
|
||||||
|
[all \
|
||||||
|
extra \
|
||||||
|
declaration-after-statement \
|
||||||
|
shadow \
|
||||||
|
missing-prototypes \
|
||||||
|
nested-externs \
|
||||||
|
pointer-arith \
|
||||||
|
sign-compare \
|
||||||
|
strict-prototypes \
|
||||||
|
format-security \
|
||||||
|
init-self],
|
||||||
|
[missing-field-initializers \
|
||||||
|
unused-parameter])
|
||||||
|
AC_SUBST([ERROR_CFLAGS])
|
||||||
|
|
||||||
|
# these aren't really error flags but they serve a similar purpose for us -
|
||||||
|
# making the toolchain stricter
|
||||||
|
AS_IF([test "x$enable_fatal_warnings" = xyes],
|
||||||
|
[TP_ADD_LINKER_FLAG([ERROR_LDFLAGS], [-Wl,--no-copy-dt-needed-entries])])
|
||||||
|
|
||||||
|
AC_HEADER_STDC([])
|
||||||
|
AC_C_INLINE
|
||||||
|
|
||||||
|
AC_DEFINE(GLIB_VERSION_MIN_REQUIRED, GLIB_VERSION_2_28, [Ignore post 2.28 deprecations])
|
||||||
|
AC_DEFINE(GLIB_VERSION_MAX_ALLOWED, GLIB_VERSION_2_32, [Prevent post 2.32 APIs])
|
||||||
|
|
||||||
|
PKG_CHECK_MODULES([GLIB],
|
||||||
|
[glib-2.0 >= 2.32.0, gobject-2.0 >= 2.32.0, gio-2.0 >= 2.32.0 ])
|
||||||
|
|
||||||
|
PKG_CHECK_MODULES([DBUS], [dbus-1 >= 0.51, dbus-glib-1 >= 0.51])
|
||||||
|
|
||||||
|
AC_DEFINE([TP_SEAL_ENABLE], [], [Prevent to use sealed variables])
|
||||||
|
AC_DEFINE([TP_DISABLE_SINGLE_INCLUDE], [], [Disable single header include])
|
||||||
|
AC_DEFINE(TP_VERSION_MIN_REQUIRED, TP_VERSION_0_22, [Ignore post 0.22 deprecations])
|
||||||
|
AC_DEFINE(TP_VERSION_MAX_ALLOWED, TP_VERSION_0_22, [Prevent post 0.22 APIs])
|
||||||
|
PKG_CHECK_MODULES([TELEPATHY], [telepathy-glib >= 0.21])
|
||||||
|
|
||||||
|
dnl Check for code generation tools
|
||||||
|
XSLTPROC=
|
||||||
|
AC_CHECK_PROGS([XSLTPROC], [xsltproc])
|
||||||
|
AS_IF([test -z "$XSLTPROC"],
|
||||||
|
[AC_MSG_ERROR([xsltproc (from the libxslt source package) is required])])
|
||||||
|
|
||||||
|
AM_PATH_PYTHON([2.3])
|
||||||
|
|
||||||
|
dnl check for a version of python that can run the twisted tests
|
||||||
|
AC_MSG_CHECKING([for Python with Twisted and IRC protocol support])
|
||||||
|
for TEST_PYTHON in python2.5 python2.6 python; do
|
||||||
|
AS_IF([$TEST_PYTHON -c "from sys import version_info; import dbus, dbus.mainloop.glib; raise SystemExit(version_info < (2, 5, 0, 'final', 0))" >/dev/null 2>&1],
|
||||||
|
[
|
||||||
|
AS_IF([$TEST_PYTHON -c "import twisted.words.protocols.irc, twisted.internet.reactor" >/dev/null 2>&1],
|
||||||
|
[
|
||||||
|
AM_CONDITIONAL([WANT_TWISTED_TESTS], [true])
|
||||||
|
break
|
||||||
|
],
|
||||||
|
[TEST_PYTHON=no])
|
||||||
|
])
|
||||||
|
done
|
||||||
|
AC_MSG_RESULT([$TEST_PYTHON])
|
||||||
|
AC_SUBST(TEST_PYTHON)
|
||||||
|
AM_CONDITIONAL([WANT_TWISTED_TESTS], test xno != x$TEST_PYTHON)
|
||||||
|
|
||||||
|
|
||||||
|
AS_AC_EXPAND(DATADIR, $datadir)
|
||||||
|
DBUS_SERVICES_DIR="$DATADIR/dbus-1/services"
|
||||||
|
AC_SUBST(DBUS_SERVICES_DIR)
|
||||||
|
AC_DEFINE_UNQUOTED(DBUS_SERVICES_DIR, "$DBUS_SERVICES_DIR", [DBus services directory])
|
||||||
|
|
||||||
|
AC_CHECK_FUNCS(strnlen)
|
||||||
|
|
||||||
|
AC_OUTPUT( Makefile \
|
||||||
|
data/Makefile \
|
||||||
|
m4/Makefile \
|
||||||
|
src/Makefile \
|
||||||
|
dnl tests/Makefile \
|
||||||
|
dnl tests/twisted/Makefile \
|
||||||
|
dnl tests/twisted/tools/Makefile \
|
||||||
|
tools/Makefile \
|
||||||
|
)
|
19
data/Makefile.am
Normal file
19
data/Makefile.am
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# Telepathy manager file
|
||||||
|
managerdir = $(datadir)/telepathy/managers
|
||||||
|
manager_DATA = matrix.manager
|
||||||
|
|
||||||
|
# Dbus service file
|
||||||
|
BUILT_FILES = $(service_in_files:.service.in=.service)
|
||||||
|
|
||||||
|
servicedir = $(DBUS_SERVICES_DIR)
|
||||||
|
service_in_files = org.freedesktop.Telepathy.ConnectionManager.matrix.service.in
|
||||||
|
service_DATA = $(BUILT_FILES)
|
||||||
|
CLEANFILES = $(BUILT_FILES)
|
||||||
|
|
||||||
|
# Rule to make the service file with libexecdir expanded
|
||||||
|
$(service_DATA): $(service_in_files) Makefile
|
||||||
|
@sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@
|
||||||
|
|
||||||
|
EXTRA_DIST= \
|
||||||
|
${service_in_files} \
|
||||||
|
${manager_DATA}
|
22
data/matrix.manager
Normal file
22
data/matrix.manager
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
[ConnectionManager]
|
||||||
|
Name = matrix
|
||||||
|
BusName = org.freedesktop.Telepathy.ConnectionManager.matrix
|
||||||
|
ObjectPath = /org/freedesktop/Telepathy/ConnectionManager/matrix
|
||||||
|
|
||||||
|
[Protocol matrix]
|
||||||
|
param-account = s required
|
||||||
|
param-server = s required
|
||||||
|
param-fullname = s
|
||||||
|
param-username = s
|
||||||
|
param-port = q
|
||||||
|
param-password = s secret
|
||||||
|
param-charset = s
|
||||||
|
param-keepalive-interval = u
|
||||||
|
param-quit-message = s
|
||||||
|
param-use-ssl = b
|
||||||
|
param-password-prompt = b
|
||||||
|
default-port = 8448
|
||||||
|
default-charset = UTF-8
|
||||||
|
default-keepalive-interval = 30
|
||||||
|
default-use-ssl = true
|
||||||
|
default-password-prompt = true
|
@ -0,0 +1,3 @@
|
|||||||
|
[D-BUS Service]
|
||||||
|
Name=org.freedesktop.Telepathy.ConnectionManager.matrix
|
||||||
|
Exec=@libexecdir@/telepathy-matrix
|
4
m4/Makefile.am
Normal file
4
m4/Makefile.am
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
EXTRA_DIST = \
|
||||||
|
as-compiler-flag.m4 \
|
||||||
|
as-version.m4 \
|
||||||
|
as-ac-expand.m4
|
40
m4/as-ac-expand.m4
Normal file
40
m4/as-ac-expand.m4
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
dnl AS_AC_EXPAND(VAR, CONFIGURE_VAR)
|
||||||
|
dnl
|
||||||
|
dnl example
|
||||||
|
dnl AS_AC_EXPAND(SYSCONFDIR, $sysconfdir)
|
||||||
|
dnl will set SYSCONFDIR to /usr/local/etc if prefix=/usr/local
|
||||||
|
|
||||||
|
AC_DEFUN([AS_AC_EXPAND],
|
||||||
|
[
|
||||||
|
EXP_VAR=[$1]
|
||||||
|
FROM_VAR=[$2]
|
||||||
|
|
||||||
|
dnl first expand prefix and exec_prefix if necessary
|
||||||
|
prefix_save=$prefix
|
||||||
|
exec_prefix_save=$exec_prefix
|
||||||
|
|
||||||
|
dnl if no prefix given, then use /usr/local, the default prefix
|
||||||
|
if test "x$prefix" = "xNONE"; then
|
||||||
|
prefix=$ac_default_prefix
|
||||||
|
fi
|
||||||
|
dnl if no exec_prefix given, then use prefix
|
||||||
|
if test "x$exec_prefix" = "xNONE"; then
|
||||||
|
exec_prefix=$prefix
|
||||||
|
fi
|
||||||
|
|
||||||
|
full_var="$FROM_VAR"
|
||||||
|
dnl loop until it doesn't change anymore
|
||||||
|
while true; do
|
||||||
|
new_full_var="`eval echo $full_var`"
|
||||||
|
if test "x$new_full_var"="x$full_var"; then break; fi
|
||||||
|
full_var=$new_full_var
|
||||||
|
done
|
||||||
|
|
||||||
|
dnl clean up
|
||||||
|
full_var=$new_full_var
|
||||||
|
AC_SUBST([$1], "$full_var")
|
||||||
|
|
||||||
|
dnl restore prefix and exec_prefix
|
||||||
|
prefix=$prefix_save
|
||||||
|
exec_prefix=$exec_prefix_save
|
||||||
|
])
|
33
m4/as-compiler-flag.m4
Normal file
33
m4/as-compiler-flag.m4
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
dnl as-compiler-flag.m4 0.1.0
|
||||||
|
|
||||||
|
dnl autostars m4 macro for detection of compiler flags
|
||||||
|
|
||||||
|
dnl David Schleef <ds@schleef.org>
|
||||||
|
|
||||||
|
dnl $Id: as-compiler-flag.m4,v 1.1 2005/06/18 18:02:46 burgerman Exp $
|
||||||
|
|
||||||
|
dnl AS_COMPILER_FLAG(CFLAGS, ACTION-IF-ACCEPTED, [ACTION-IF-NOT-ACCEPTED])
|
||||||
|
dnl Tries to compile with the given CFLAGS.
|
||||||
|
dnl Runs ACTION-IF-ACCEPTED if the compiler can compile with the flags,
|
||||||
|
dnl and ACTION-IF-NOT-ACCEPTED otherwise.
|
||||||
|
|
||||||
|
AC_DEFUN([AS_COMPILER_FLAG],
|
||||||
|
[
|
||||||
|
AC_MSG_CHECKING([to see if compiler understands $1])
|
||||||
|
|
||||||
|
save_CFLAGS="$CFLAGS"
|
||||||
|
CFLAGS="$CFLAGS $1"
|
||||||
|
|
||||||
|
AC_TRY_COMPILE([ ], [], [flag_ok=yes], [flag_ok=no])
|
||||||
|
CFLAGS="$save_CFLAGS"
|
||||||
|
|
||||||
|
if test "X$flag_ok" = Xyes ; then
|
||||||
|
$2
|
||||||
|
true
|
||||||
|
else
|
||||||
|
$3
|
||||||
|
true
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT([$flag_ok])
|
||||||
|
])
|
||||||
|
|
66
m4/as-version.m4
Normal file
66
m4/as-version.m4
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
dnl as-version.m4 0.1.0
|
||||||
|
|
||||||
|
dnl autostars m4 macro for versioning
|
||||||
|
|
||||||
|
dnl Thomas Vander Stichele <thomas at apestaart dot org>
|
||||||
|
|
||||||
|
dnl $Id: as-version.m4,v 1.1 2005/06/18 18:02:46 burgerman Exp $
|
||||||
|
|
||||||
|
dnl AS_VERSION(PACKAGE, PREFIX, MAJOR, MINOR, MICRO, NANO,
|
||||||
|
dnl ACTION-IF-NO-NANO, [ACTION-IF-NANO])
|
||||||
|
|
||||||
|
dnl example
|
||||||
|
dnl AS_VERSION(gstreamer, GST_VERSION, 0, 3, 2,)
|
||||||
|
dnl for a 0.3.2 release version
|
||||||
|
|
||||||
|
dnl this macro
|
||||||
|
dnl - defines [$PREFIX]_MAJOR, MINOR and MICRO
|
||||||
|
dnl - if NANO is empty, then we're in release mode, else in cvs/dev mode
|
||||||
|
dnl - defines [$PREFIX], VERSION, and [$PREFIX]_RELEASE
|
||||||
|
dnl - executes the relevant action
|
||||||
|
dnl - AC_SUBST's PACKAGE, VERSION, [$PREFIX] and [$PREFIX]_RELEASE
|
||||||
|
dnl as well as the little ones
|
||||||
|
dnl - doesn't call AM_INIT_AUTOMAKE anymore because it prevents
|
||||||
|
dnl maintainer mode from running ok
|
||||||
|
dnl
|
||||||
|
dnl don't forget to put #undef [$2] and [$2]_RELEASE in acconfig.h
|
||||||
|
dnl if you use acconfig.h
|
||||||
|
|
||||||
|
AC_DEFUN([AS_VERSION],
|
||||||
|
[
|
||||||
|
PACKAGE=[$1]
|
||||||
|
[$2]_MAJOR=[$3]
|
||||||
|
[$2]_MINOR=[$4]
|
||||||
|
[$2]_MICRO=[$5]
|
||||||
|
NANO=[$6]
|
||||||
|
[$2]_NANO=$NANO
|
||||||
|
if test "x$NANO" = "x" || test "x$NANO" = "x0";
|
||||||
|
then
|
||||||
|
AC_MSG_NOTICE(configuring [$1] for release)
|
||||||
|
VERSION=[$3].[$4].[$5]
|
||||||
|
[$2]_RELEASE=1
|
||||||
|
dnl execute action
|
||||||
|
ifelse([$7], , :, [$7])
|
||||||
|
else
|
||||||
|
AC_MSG_NOTICE(configuring [$1] for development with nano $NANO)
|
||||||
|
VERSION=[$3].[$4].[$5].$NANO
|
||||||
|
[$2]_RELEASE=0.`date +%Y%m%d.%H%M%S`
|
||||||
|
dnl execute action
|
||||||
|
ifelse([$8], , :, [$8])
|
||||||
|
fi
|
||||||
|
|
||||||
|
[$2]=$VERSION
|
||||||
|
AC_DEFINE_UNQUOTED([$2], "$[$2]", [Define the version])
|
||||||
|
AC_SUBST([$2])
|
||||||
|
AC_DEFINE_UNQUOTED([$2]_RELEASE, "$[$2]_RELEASE", [Define the release version])
|
||||||
|
AC_SUBST([$2]_RELEASE)
|
||||||
|
|
||||||
|
AC_SUBST([$2]_MAJOR)
|
||||||
|
AC_SUBST([$2]_MINOR)
|
||||||
|
AC_SUBST([$2]_MICRO)
|
||||||
|
AC_SUBST([$2]_NANO)
|
||||||
|
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Define the package name])
|
||||||
|
AC_SUBST(PACKAGE)
|
||||||
|
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Define the version])
|
||||||
|
AC_SUBST(VERSION)
|
||||||
|
])
|
43
m4/tp-compiler-flag.m4
Normal file
43
m4/tp-compiler-flag.m4
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
dnl A version of AS_COMPILER_FLAG that supports both C and C++.
|
||||||
|
dnl Based on:
|
||||||
|
|
||||||
|
dnl as-compiler-flag.m4 0.1.0
|
||||||
|
dnl autostars m4 macro for detection of compiler flags
|
||||||
|
dnl David Schleef <ds@schleef.org>
|
||||||
|
dnl $Id: as-compiler-flag.m4,v 1.1 2005/06/18 18:02:46 burgerman Exp $
|
||||||
|
|
||||||
|
dnl TP_COMPILER_FLAG(CFLAGS, ACTION-IF-ACCEPTED, [ACTION-IF-NOT-ACCEPTED])
|
||||||
|
dnl Tries to compile with the given CFLAGS and CXXFLAGS.
|
||||||
|
dnl
|
||||||
|
dnl Runs ACTION-IF-ACCEPTED if the compiler for the currently selected
|
||||||
|
dnl AC_LANG can compile with the flags, and ACTION-IF-NOT-ACCEPTED otherwise.
|
||||||
|
|
||||||
|
AC_DEFUN([TP_COMPILER_FLAG],
|
||||||
|
[
|
||||||
|
AC_MSG_CHECKING([to see if compiler understands $1])
|
||||||
|
|
||||||
|
save_CFLAGS="$CFLAGS"
|
||||||
|
save_CXXFLAGS="$CXXFLAGS"
|
||||||
|
CFLAGS="$CFLAGS $1"
|
||||||
|
CXXFLAGS="$CXXFLAGS $1"
|
||||||
|
|
||||||
|
AC_TRY_COMPILE([ ], [], [flag_ok=yes], [flag_ok=no])
|
||||||
|
CFLAGS="$save_CFLAGS"
|
||||||
|
CXXFLAGS="$save_CXXFLAGS"
|
||||||
|
|
||||||
|
if test "X$flag_ok" = Xyes ; then
|
||||||
|
$2
|
||||||
|
true
|
||||||
|
else
|
||||||
|
$3
|
||||||
|
true
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT([$flag_ok])
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl TP_ADD_COMPILER_FLAG(VARIABLE, CFLAGS)
|
||||||
|
dnl Append CFLAGS to VARIABLE if the compiler supports them.
|
||||||
|
AC_DEFUN([TP_ADD_COMPILER_FLAG],
|
||||||
|
[
|
||||||
|
TP_COMPILER_FLAG([$2], [$1="[$]$1 $2"])
|
||||||
|
])
|
49
m4/tp-compiler-warnings.m4
Normal file
49
m4/tp-compiler-warnings.m4
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
dnl TP_COMPILER_WARNINGS(VARIABLE, WERROR_BY_DEFAULT, DESIRABLE, UNDESIRABLE)
|
||||||
|
dnl $1 (VARIABLE): the variable to put flags into
|
||||||
|
dnl $2 (WERROR_BY_DEFAULT): a command returning true if -Werror should be the
|
||||||
|
dnl default
|
||||||
|
dnl $3 (DESIRABLE): warning flags we want (e.g. all extra shadow)
|
||||||
|
dnl $4 (UNDESIRABLE): warning flags we don't want (e.g.
|
||||||
|
dnl missing-field-initializers unused-parameter)
|
||||||
|
AC_DEFUN([TP_COMPILER_WARNINGS],
|
||||||
|
[
|
||||||
|
AC_REQUIRE([AC_ARG_ENABLE])dnl
|
||||||
|
AC_REQUIRE([AC_HELP_STRING])dnl
|
||||||
|
AC_REQUIRE([TP_COMPILER_FLAG])dnl
|
||||||
|
|
||||||
|
tp_warnings=""
|
||||||
|
for tp_flag in $3; do
|
||||||
|
TP_COMPILER_FLAG([-W$tp_flag], [tp_warnings="$tp_warnings -W$tp_flag"])
|
||||||
|
done
|
||||||
|
|
||||||
|
tp_error_flags="-Werror"
|
||||||
|
TP_COMPILER_FLAG([-Werror], [tp_werror=yes], [tp_werror=no])
|
||||||
|
|
||||||
|
for tp_flag in $4; do
|
||||||
|
TP_COMPILER_FLAG([-Wno-$tp_flag],
|
||||||
|
[tp_warnings="$tp_warnings -Wno-$tp_flag"])
|
||||||
|
dnl Yes, we do need to use both -Wno-foo and -Wno-error=foo. Simon says:
|
||||||
|
dnl some warnings we explicitly don't want, like unused-parameter, but
|
||||||
|
dnl they're in -Wall. when a distro using cdbs compiles us, we have:
|
||||||
|
dnl -Werror -Wno-unused-parameter -Wall
|
||||||
|
dnl ^ from us ^ from cdbs
|
||||||
|
dnl which turns -Wunused-parameter back on, in effect
|
||||||
|
TP_COMPILER_FLAG([-Wno-error=$tp_flag],
|
||||||
|
[tp_error_flags="$tp_error_flags -Wno-error=$tp_flag"], [tp_werror=no])
|
||||||
|
done
|
||||||
|
|
||||||
|
AC_ARG_ENABLE([Werror],
|
||||||
|
AC_HELP_STRING([--disable-Werror],
|
||||||
|
[compile without -Werror (normally enabled in development builds)]),
|
||||||
|
tp_werror=$enableval, :)
|
||||||
|
|
||||||
|
if test "x$tp_werror" = xyes && $2; then
|
||||||
|
dnl We put -Wno-error=foo before -Wno-foo because clang interprets -Wall
|
||||||
|
dnl -Werror -Wno-foo -Wno-error=foo as “make foo a non-fatal warning”, but does
|
||||||
|
dnl what we want if you reverse them.
|
||||||
|
$1="$tp_error_flags $tp_warnings"
|
||||||
|
else
|
||||||
|
$1="$tp_warnings"
|
||||||
|
fi
|
||||||
|
|
||||||
|
])
|
44
m4/tp-linker-flag.m4
Normal file
44
m4/tp-linker-flag.m4
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
dnl A version of AS_COMPILER_FLAG that supports linker flags
|
||||||
|
dnl Based on:
|
||||||
|
|
||||||
|
dnl as-compiler-flag.m4 0.1.0
|
||||||
|
dnl autostars m4 macro for detection of compiler flags
|
||||||
|
dnl David Schleef <ds@schleef.org>
|
||||||
|
dnl $Id: as-compiler-flag.m4,v 1.1 2005/06/18 18:02:46 burgerman Exp $
|
||||||
|
|
||||||
|
dnl TP_LINKER_FLAG(LDFLAGS, ACTION-IF-ACCEPTED, [ACTION-IF-NOT-ACCEPTED])
|
||||||
|
dnl Tries to compile with the given LDFLAGS.
|
||||||
|
dnl
|
||||||
|
dnl Runs ACTION-IF-ACCEPTED if the compiler/linker for the currently selected
|
||||||
|
dnl AC_LANG can compile with the flags, and ACTION-IF-NOT-ACCEPTED otherwise.
|
||||||
|
dnl
|
||||||
|
dnl Note that LDFLAGS are passed to the linker via the compiler, so you
|
||||||
|
dnl should check for -Wl,--no-add-needed rather than --no-add-needed.
|
||||||
|
|
||||||
|
AC_DEFUN([TP_LINKER_FLAG],
|
||||||
|
[
|
||||||
|
AC_MSG_CHECKING([to see if compiler/linker understand $1])
|
||||||
|
|
||||||
|
save_LDFLAGS="$LDFLAGS"
|
||||||
|
LDFLAGS="$LDFLAGS $1"
|
||||||
|
|
||||||
|
AC_COMPILE_IFELSE(AC_LANG_SOURCE([]), [flag_ok=yes], [flag_ok=no])
|
||||||
|
|
||||||
|
LDFLAGS="$save_LDFLAGS"
|
||||||
|
|
||||||
|
if test "X$flag_ok" = Xyes ; then
|
||||||
|
$2
|
||||||
|
true
|
||||||
|
else
|
||||||
|
$3
|
||||||
|
true
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT([$flag_ok])
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl TP_ADD_LINKER_FLAG(VARIABLE, LDFLAGS)
|
||||||
|
dnl Append LDFLAGS to VARIABLE if the linker supports them.
|
||||||
|
AC_DEFUN([TP_ADD_LINKER_FLAG],
|
||||||
|
[
|
||||||
|
TP_LINKER_FLAG([$2], [$1="[$]$1 $2"])
|
||||||
|
])
|
50
src/Makefile.am
Normal file
50
src/Makefile.am
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# correctly clean the generated source files
|
||||||
|
CLEANFILES = $(BUILT_SOURCES) $(man_MANS)
|
||||||
|
|
||||||
|
libexec_PROGRAMS=telepathy-matrix
|
||||||
|
|
||||||
|
libmatrix_convenience_la_SOURCES = \
|
||||||
|
matrix-connection-manager.c \
|
||||||
|
matrix-connection-manager.h \
|
||||||
|
matrix-protocol.c \
|
||||||
|
matrix-protocol.h \
|
||||||
|
matrix-debug.c \
|
||||||
|
matrix-debug.h \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
nodist_libmatrix_convenience_la_SOURCES = \
|
||||||
|
$(BUILT_SOURCES)
|
||||||
|
|
||||||
|
telepathy_matrix_SOURCES = \
|
||||||
|
matrix.c
|
||||||
|
|
||||||
|
telepathy_matrix_LDADD = \
|
||||||
|
libmatrix-convenience.la \
|
||||||
|
$(ALL_LIBS)
|
||||||
|
|
||||||
|
noinst_LTLIBRARIES = libmatrix-convenience.la
|
||||||
|
|
||||||
|
AM_CFLAGS = \
|
||||||
|
-I$(top_srcdir) \
|
||||||
|
-I$(top_builddir) \
|
||||||
|
$(ERROR_CFLAGS) \
|
||||||
|
@DBUS_CFLAGS@ \
|
||||||
|
@GLIB_CFLAGS@ \
|
||||||
|
@TELEPATHY_CFLAGS@ \
|
||||||
|
-std=c99
|
||||||
|
|
||||||
|
AM_LDFLAGS = \
|
||||||
|
$(ERROR_LDFLAGS) \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
ALL_LIBS = \
|
||||||
|
@DBUS_LIBS@ \
|
||||||
|
@GLIB_LIBS@ \
|
||||||
|
@TELEPATHY_LIBS@
|
||||||
|
|
||||||
|
man_MANS = telepathy-matrix.8
|
||||||
|
|
||||||
|
EXTRA_DIST = telepathy-matrix.8.in
|
||||||
|
|
||||||
|
%.8: %.8.in Makefile
|
||||||
|
$(AM_V_GEN)sed -e 's,[@]libexecdir[@],@libexecdir@,' < $< > $@
|
62
src/matrix-connection-manager.c
Normal file
62
src/matrix-connection-manager.c
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of telepathy-matrix.
|
||||||
|
*
|
||||||
|
* telepathy-matrix is free software: you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* telepathy-matrix is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with telepathy-matrix. If not, see
|
||||||
|
* <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "matrix-connection-manager.h"
|
||||||
|
#include "matrix-protocol.h"
|
||||||
|
|
||||||
|
G_DEFINE_TYPE(MatrixConnectionManager, matrix_connection_manager, TP_TYPE_BASE_CONNECTION_MANAGER);
|
||||||
|
|
||||||
|
static void
|
||||||
|
matrix_connection_manager_finalize(GObject *gobject)
|
||||||
|
{
|
||||||
|
g_signal_handlers_destroy(gobject);
|
||||||
|
G_OBJECT_CLASS(matrix_connection_manager_parent_class)->finalize(gobject);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
matrix_connection_manager_constructed(GObject *gobject)
|
||||||
|
{
|
||||||
|
TpBaseConnectionManager *base = (TpBaseConnectionManager *)gobject;
|
||||||
|
TpBaseProtocol *p;
|
||||||
|
void (*constructed)(GObject *) = ((GObjectClass *)matrix_connection_manager_parent_class)->constructed;
|
||||||
|
|
||||||
|
if (constructed != NULL) {
|
||||||
|
constructed(gobject);
|
||||||
|
}
|
||||||
|
|
||||||
|
p = matrix_protocol_new();
|
||||||
|
tp_base_connection_manager_add_protocol(base, p);
|
||||||
|
g_object_unref(p);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
matrix_connection_manager_class_init(MatrixConnectionManagerClass *klass)
|
||||||
|
{
|
||||||
|
GObjectClass *gobject_class = G_OBJECT_CLASS(klass);
|
||||||
|
TpBaseConnectionManagerClass *parent_class = TP_BASE_CONNECTION_MANAGER_CLASS(klass);
|
||||||
|
|
||||||
|
parent_class->cm_dbus_name = "matrix";
|
||||||
|
|
||||||
|
gobject_class->finalize = matrix_connection_manager_finalize;
|
||||||
|
gobject_class->constructed = matrix_connection_manager_constructed;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
matrix_connection_manager_init(MatrixConnectionManager *connection_manager)
|
||||||
|
{
|
||||||
|
}
|
54
src/matrix-connection-manager.h
Normal file
54
src/matrix-connection-manager.h
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of telepathy-matrix.
|
||||||
|
*
|
||||||
|
* telepathy-matrix is free software: you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* telepathy-matrix is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with telepathy-matrix. If not, see
|
||||||
|
* <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __MATRIX_CONNECTION_MANAGER_H__
|
||||||
|
#define __MATRIX_CONNECTION_MANAGER_H__
|
||||||
|
|
||||||
|
#include <glib-object.h>
|
||||||
|
#include <telepathy-glib/telepathy-glib.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/* TYPE MACROS */
|
||||||
|
|
||||||
|
#define MATRIX_TYPE_CONNECTION_MANAGER (matrix_connection_manager_get_type())
|
||||||
|
#define MATRIX_CONNECTION_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST((o), MATRIX_TYPE_CONNECTION_MANAGER, MatrixConnectionManager))
|
||||||
|
#define MATRIX_CONNECTION_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), MATRIX_TYPE_CONNECTION_MANAGER, MatrixConnectionManagerClass))
|
||||||
|
#define MATRIX_IS_CONNECTION_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), MATRIX_TYPE_CONNECTION_MANAGER))
|
||||||
|
#define MATRIX_IS_CONNECTION_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), MATRIX_TYPE_CONNECTION_MANAGER))
|
||||||
|
#define MATRIX_CONNECTION_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), MATRIX_TYPE_CONNECTION_MANAGER, MatrixConnectionManagerClass))
|
||||||
|
|
||||||
|
typedef struct _MatrixConnectionManager MatrixConnectionManager;
|
||||||
|
typedef struct _MatrixConnectionManagerClass MatrixConnectionManagerClass;
|
||||||
|
|
||||||
|
struct _MatrixConnectionManagerClass {
|
||||||
|
TpBaseConnectionManagerClass parent_class;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _MatrixConnectionManager {
|
||||||
|
/* Parent instance structure */
|
||||||
|
TpBaseConnection parent;
|
||||||
|
|
||||||
|
/* Instance members */
|
||||||
|
};
|
||||||
|
|
||||||
|
GType matrix_connection_manager_get_type(void) G_GNUC_CONST;
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __MATRIX_CONNECTION_MANAGER_H__ */
|
121
src/matrix-debug.c
Normal file
121
src/matrix-debug.c
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of telepathy-matrix.
|
||||||
|
*
|
||||||
|
* telepathy-matrix is free software: you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* telepathy-matrix is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with telepathy-matrix. If not, see
|
||||||
|
* <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
#include "matrix-debug.h"
|
||||||
|
|
||||||
|
#include <stdarg.h>
|
||||||
|
#include <telepathy-glib/telepathy-glib.h>
|
||||||
|
|
||||||
|
static MatrixDebugFlags _flags = 0;
|
||||||
|
|
||||||
|
static GDebugKey _keys[] = {
|
||||||
|
{"connection", MATRIX_DEBUG_CONNECTION},
|
||||||
|
{"dns", MATRIX_DEBUG_DNS},
|
||||||
|
{"im", MATRIX_DEBUG_IM},
|
||||||
|
{"muc", MATRIX_DEBUG_MUC},
|
||||||
|
{"network", MATRIX_DEBUG_NETWORK},
|
||||||
|
{"parser", MATRIX_DEBUG_PARSER},
|
||||||
|
{"text", MATRIX_DEBUG_TEXT},
|
||||||
|
{"tls", MATRIX_DEBUG_TLS},
|
||||||
|
{NULL, 0}
|
||||||
|
};
|
||||||
|
|
||||||
|
void
|
||||||
|
matrix_debug_init (void) {
|
||||||
|
const gchar *flags_string = g_getenv("MATRIX_DEBUG");
|
||||||
|
guint nkeys;
|
||||||
|
|
||||||
|
for (nkeys = 0; _keys[nkeys].value; nkeys++) {
|
||||||
|
/* do nothing, just count nkeys */
|
||||||
|
}
|
||||||
|
|
||||||
|
if (flags_string) {
|
||||||
|
tp_debug_set_flags(flags_string);
|
||||||
|
_flags |= g_parse_debug_string(flags_string, _keys, nkeys);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (g_getenv("MATRIX_PERSIST") != NULL)
|
||||||
|
tp_debug_set_persistent(TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
GHashTable *flag_to_domains = NULL;
|
||||||
|
|
||||||
|
static const gchar *
|
||||||
|
debug_flag_to_domain (MatrixDebugFlags flag)
|
||||||
|
{
|
||||||
|
if (G_UNLIKELY (flag_to_domains == NULL)) {
|
||||||
|
guint i;
|
||||||
|
|
||||||
|
flag_to_domains = g_hash_table_new_full (NULL, NULL, NULL, g_free);
|
||||||
|
|
||||||
|
for (i = 0; _keys[i].value; i++) {
|
||||||
|
GDebugKey key = _keys[i];
|
||||||
|
gchar *val;
|
||||||
|
|
||||||
|
val = g_strdup_printf ("%s/%s", "matrix", key.key);
|
||||||
|
g_hash_table_insert (flag_to_domains,
|
||||||
|
GUINT_TO_POINTER (key.value), val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return g_hash_table_lookup (flag_to_domains, GUINT_TO_POINTER (flag));
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
matrix_debug_free (void)
|
||||||
|
{
|
||||||
|
if (flag_to_domains == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
g_hash_table_destroy (flag_to_domains);
|
||||||
|
flag_to_domains = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
log_to_debug_sender (MatrixDebugFlags flag,
|
||||||
|
const gchar *message)
|
||||||
|
{
|
||||||
|
TpDebugSender *dbg;
|
||||||
|
GTimeVal now;
|
||||||
|
|
||||||
|
dbg = tp_debug_sender_dup ();
|
||||||
|
|
||||||
|
g_get_current_time (&now);
|
||||||
|
|
||||||
|
tp_debug_sender_add_message (dbg, &now, debug_flag_to_domain (flag),
|
||||||
|
G_LOG_LEVEL_DEBUG, message);
|
||||||
|
|
||||||
|
g_object_unref (dbg);
|
||||||
|
}
|
||||||
|
|
||||||
|
void matrix_debug(MatrixDebugFlags flag, const gchar *format, ...) {
|
||||||
|
gchar *message;
|
||||||
|
va_list args;
|
||||||
|
|
||||||
|
va_start (args, format);
|
||||||
|
message = g_strdup_vprintf (format, args);
|
||||||
|
va_end (args);
|
||||||
|
|
||||||
|
log_to_debug_sender (flag, message);
|
||||||
|
|
||||||
|
if (_flags & flag)
|
||||||
|
g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s", message);
|
||||||
|
|
||||||
|
g_free (message);
|
||||||
|
}
|
49
src/matrix-debug.h
Normal file
49
src/matrix-debug.h
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of telepathy-matrix.
|
||||||
|
*
|
||||||
|
* telepathy-matrix is free software: you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* telepathy-matrix is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with telepathy-matrix. If not, see
|
||||||
|
* <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __MATRIX_DEBUG_H_
|
||||||
|
#define __MATRIX_DEBUG_H_
|
||||||
|
|
||||||
|
#include <glib.h>
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
MATRIX_DEBUG_CONNECTION = (1 << 0),
|
||||||
|
MATRIX_DEBUG_DNS = (1 << 1),
|
||||||
|
MATRIX_DEBUG_IM = (1 << 2),
|
||||||
|
MATRIX_DEBUG_MUC = (1 << 3),
|
||||||
|
MATRIX_DEBUG_NETWORK = (1 << 4),
|
||||||
|
MATRIX_DEBUG_PARSER = (1 << 5),
|
||||||
|
MATRIX_DEBUG_TEXT = (1 << 6),
|
||||||
|
MATRIX_DEBUG_ROOMLIST = (1 << 7),
|
||||||
|
MATRIX_DEBUG_TLS = (1 << 8),
|
||||||
|
} MatrixDebugFlags;
|
||||||
|
|
||||||
|
void matrix_debug_init (void);
|
||||||
|
void matrix_debug(MatrixDebugFlags flag, const gchar *format, ...) G_GNUC_PRINTF(2, 3);
|
||||||
|
|
||||||
|
void matrix_debug_free (void);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MATRIX_DEBUG_FLAG
|
||||||
|
|
||||||
|
#undef MATRIX_DEBUG
|
||||||
|
#define MATRIX_DEBUG(format, ...) \
|
||||||
|
matrix_debug(MATRIX_DEBUG_FLAG, "%s: " format, G_STRFUNC, ##__VA_ARGS__)
|
||||||
|
|
||||||
|
#endif
|
51
src/matrix-protocol.c
Normal file
51
src/matrix-protocol.c
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of telepathy-matrix.
|
||||||
|
*
|
||||||
|
* telepathy-matrix is free software: you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* telepathy-matrix is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with telepathy-matrix. If not, see
|
||||||
|
* <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "matrix-protocol.h"
|
||||||
|
|
||||||
|
#define PROTOCOL_NAME "matrix"
|
||||||
|
|
||||||
|
G_DEFINE_TYPE(MatrixProtocol, matrix_protocol, TP_TYPE_BASE_PROTOCOL);
|
||||||
|
|
||||||
|
static void
|
||||||
|
matrix_protocol_finalize(GObject *gobject)
|
||||||
|
{
|
||||||
|
g_signal_handlers_destroy(gobject);
|
||||||
|
G_OBJECT_CLASS(matrix_protocol_parent_class)->finalize(gobject);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
matrix_protocol_class_init(MatrixProtocolClass *klass)
|
||||||
|
{
|
||||||
|
GObjectClass *gobject_class = G_OBJECT_CLASS(klass);
|
||||||
|
|
||||||
|
gobject_class->finalize = matrix_protocol_finalize;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
matrix_protocol_init(MatrixProtocol *protocol)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
TpBaseProtocol *
|
||||||
|
matrix_protocol_new(void)
|
||||||
|
{
|
||||||
|
return g_object_new(MATRIX_TYPE_PROTOCOL,
|
||||||
|
"name", PROTOCOL_NAME,
|
||||||
|
NULL);
|
||||||
|
}
|
53
src/matrix-protocol.h
Normal file
53
src/matrix-protocol.h
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of telepathy-matrix.
|
||||||
|
*
|
||||||
|
* telepathy-matrix is free software: you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* telepathy-matrix is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with telepathy-matrix. If not, see
|
||||||
|
* <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __MATRIX_PROTOCOL_H__
|
||||||
|
#define __MATRIX_PROTOCOL_H__
|
||||||
|
|
||||||
|
#include <telepathy-glib/telepathy-glib.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
#define MATRIX_TYPE_PROTOCOL (matrix_protocol_get_type())
|
||||||
|
#define MATRIX_PROTOCOL(o) (G_TYPE_CHECK_INSTANCE_CAST((o), MATRIX_TYPE_PROTOCOL, MatrixProtocol))
|
||||||
|
#define MATRIX_PROTOCOL_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), MATRIX_TYPE_PROTOCOL, MatrixProtocolClass))
|
||||||
|
#define MATRIX_IS_PROTOCOL(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), MATRIX_TYPE_PROTOCOL))
|
||||||
|
#define MATRIX_IS_PROTOCOL_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), MATRIX_TYPE_PROTOCOL))
|
||||||
|
#define MATRIX_PROTOCOL_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), MATRIX_TYPE_PROTOCOL, MatrixProtocolClass))
|
||||||
|
|
||||||
|
typedef struct _MatrixProtocol MatrixProtocol;
|
||||||
|
typedef struct _MatrixProtocolClass MatrixProtocolClass;
|
||||||
|
|
||||||
|
struct _MatrixProtocol {
|
||||||
|
/* Parent instance structure */
|
||||||
|
TpBaseProtocol parent_instance;
|
||||||
|
|
||||||
|
/* Instance members */
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _MatrixProtocolClass {
|
||||||
|
TpBaseProtocolClass parent_class;
|
||||||
|
};
|
||||||
|
|
||||||
|
GType matrix_protocol_get_type(void) G_GNUC_CONST;
|
||||||
|
|
||||||
|
TpBaseProtocol *matrix_protocol_new(void);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __MATRIX_PROTOCOL_H__ */
|
54
src/matrix.c
Normal file
54
src/matrix.c
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of telepathy-matrix.
|
||||||
|
*
|
||||||
|
* telepathy-matrix is free software: you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* telepathy-matrix is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with telepathy-matrix. If not, see
|
||||||
|
* <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#include <telepathy-glib/telepathy-glib.h>
|
||||||
|
|
||||||
|
#include "matrix-connection-manager.h"
|
||||||
|
#include "matrix-debug.h"
|
||||||
|
|
||||||
|
static
|
||||||
|
TpBaseConnectionManager *_construct_cm(void)
|
||||||
|
{
|
||||||
|
TpBaseConnectionManager *base_cm = TP_BASE_CONNECTION_MANAGER(
|
||||||
|
g_object_new(MATRIX_TYPE_CONNECTION_MANAGER, NULL));
|
||||||
|
|
||||||
|
return base_cm;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char **argv) {
|
||||||
|
TpDebugSender *debug_sender;
|
||||||
|
int result;
|
||||||
|
|
||||||
|
g_type_init ();
|
||||||
|
tp_debug_divert_messages (g_getenv ("MATRIX_LOGFILE"));
|
||||||
|
|
||||||
|
matrix_debug_init();
|
||||||
|
|
||||||
|
debug_sender = tp_debug_sender_dup ();
|
||||||
|
|
||||||
|
result = tp_run_connection_manager(
|
||||||
|
"telepathy-matrix", VERSION,
|
||||||
|
_construct_cm,
|
||||||
|
argc, argv);
|
||||||
|
|
||||||
|
g_object_unref (debug_sender);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
35
src/telepathy-matrix.8.in
Normal file
35
src/telepathy-matrix.8.in
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
.TH TELEPATHY-MATRIX "8" "December 2015" "Telepathy" "D-Bus services"
|
||||||
|
\" This man page was written by Gergely Polonkai for the Telepathy
|
||||||
|
\" Matrix Project, but may be used by others.
|
||||||
|
\" Copyright © 2015 Gergely Polonkai <gergely@polonkai.eu>
|
||||||
|
\" It may be distributed under the same terms as telepathy-matrix itself.
|
||||||
|
.SH NAME
|
||||||
|
telepathy-matrix \- Telepathy connection manager for Matrix.org
|
||||||
|
.SH SYNOPSIS
|
||||||
|
\fB@libexecdir@/telepathy\-matrix\fR
|
||||||
|
.SH DESCRIPTION
|
||||||
|
Telepathy Matrix implements the Telepathy D-Bus specification for
|
||||||
|
Matrix.org, allowing Telepathy clients like
|
||||||
|
.BR empathy (1)
|
||||||
|
to connect to Matrix.org home servers.
|
||||||
|
.PP
|
||||||
|
It is a D-Bus service which runs on the session bus, and should usually be
|
||||||
|
started automatically by D-Bus activation. However, it might be useful to
|
||||||
|
start it manually for debugging.
|
||||||
|
.SH OPTIONS
|
||||||
|
There are no command-line options.
|
||||||
|
.SH ENVIRONMENT
|
||||||
|
.TP
|
||||||
|
\fBMATRIX_LOGFILE\fR=\fIfilename\fR
|
||||||
|
If set, debug output will go to the given file rather than to stderr.
|
||||||
|
If \fB+\fR is prepended to the \fIfilename\fR (e.g.
|
||||||
|
\fBMATRIX_LOGFILE=+matrix.log\fR), debug output will be appended
|
||||||
|
to the file; otherwise, any existing file will be replaced.
|
||||||
|
.TP
|
||||||
|
.TP
|
||||||
|
\fBMATRIX_DEBUG\fR=\fItype\fR
|
||||||
|
May be set to "all" for full debug output, or various undocumented options
|
||||||
|
(which may change from release to release) to filter the output.
|
||||||
|
.SH SEE ALSO
|
||||||
|
.IR http://telepathy.freedesktop.org/ ,
|
||||||
|
.BR empathy (1)
|
14
tools/Makefile.am
Normal file
14
tools/Makefile.am
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
EXTRA_DIST = \
|
||||||
|
c-constants-generator.xsl \
|
||||||
|
c-interfaces-generator.xsl \
|
||||||
|
doc-generator.xsl \
|
||||||
|
glib-ginterface-gen.py \
|
||||||
|
identity.xsl \
|
||||||
|
libglibcodegen.py \
|
||||||
|
libtpcodegen.py \
|
||||||
|
make-release-mail.py
|
||||||
|
|
||||||
|
CLEANFILES = libglibcodegen.pyc libglibcodegen.pyo
|
||||||
|
|
||||||
|
glib-ginterface-gen.py: libglibcodegen.py libtpcodegen.py
|
||||||
|
touch $@
|
80
tools/telepathy.am
Normal file
80
tools/telepathy.am
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
## Useful top-level Makefile.am snippets for Telepathy projects.
|
||||||
|
|
||||||
|
dist-hook:
|
||||||
|
chmod u+w ${distdir}/ChangeLog
|
||||||
|
if test -d ${top_srcdir}/.git; then \
|
||||||
|
( cd ${top_srcdir} && git log --date=iso $(CHANGELOG_RANGE) ) > ${distdir}/ChangeLog; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
distcheck-hook:
|
||||||
|
@test "z$(CHECK_FOR_UNRELEASED)" = z || \
|
||||||
|
case @VERSION@ in \
|
||||||
|
*.*.*.*|*+) ;; \
|
||||||
|
*) \
|
||||||
|
if grep -r UNRELEASED $(CHECK_FOR_UNRELEASED); \
|
||||||
|
then \
|
||||||
|
echo "^^^ This is meant to be a release, but some files say UNRELEASED" >&2; \
|
||||||
|
exit 2; \
|
||||||
|
fi \
|
||||||
|
;; \
|
||||||
|
esac
|
||||||
|
|
||||||
|
_is-release-check:
|
||||||
|
@case @VERSION@ in \
|
||||||
|
(*.*.*.*|*+) \
|
||||||
|
echo "Hey! @VERSION@ is not a release!" >&2; \
|
||||||
|
exit 2; \
|
||||||
|
;; \
|
||||||
|
esac
|
||||||
|
@cd ${top_srcdir} && \
|
||||||
|
if ! git diff --no-ext-diff --quiet --exit-code; then \
|
||||||
|
echo "Hey! Your tree is dirty! No release for you." >&2; \
|
||||||
|
exit 2; \
|
||||||
|
fi
|
||||||
|
@cd ${top_srcdir} && \
|
||||||
|
if ! git diff --cached --no-ext-diff --quiet --exit-code; then \
|
||||||
|
echo "Hey! You have changes staged! No release for you." >&2; \
|
||||||
|
exit 2; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
%.tar.gz.asc: %.tar.gz
|
||||||
|
$(AM_V_GEN)gpg --detach-sign --armor $@
|
||||||
|
|
||||||
|
@PACKAGE@-@VERSION@.tar.gz:
|
||||||
|
$(MAKE) _is-release-check
|
||||||
|
$(MAKE) check
|
||||||
|
$(MAKE) distcheck
|
||||||
|
|
||||||
|
maintainer-prepare-release:
|
||||||
|
$(MAKE) _is-release-check
|
||||||
|
$(MAKE) all
|
||||||
|
$(MAKE) distcheck
|
||||||
|
$(MAKE) release-mail
|
||||||
|
git tag -s @PACKAGE@-@VERSION@ -m @PACKAGE@' '@VERSION@
|
||||||
|
gpg --detach-sign --armor @PACKAGE@-@VERSION@.tar.gz
|
||||||
|
|
||||||
|
release-mail: NEWS
|
||||||
|
$(AM_V_GEN)(python $(top_srcdir)/tools/make-release-mail.py \
|
||||||
|
@PACKAGE@ @VERSION@ $(top_srcdir)/NEWS > $@.tmp && \
|
||||||
|
mv $@.tmp $@)
|
||||||
|
|
||||||
|
maintainer-upload-release: _maintainer-upload-release
|
||||||
|
|
||||||
|
_maintainer-upload-release-check: _is-release-check
|
||||||
|
test -f @PACKAGE@-@VERSION@.tar.gz
|
||||||
|
test -f @PACKAGE@-@VERSION@.tar.gz.asc
|
||||||
|
gpg --verify @PACKAGE@-@VERSION@.tar.gz.asc
|
||||||
|
|
||||||
|
_maintainer-upload-release: _maintainer-upload-release-check
|
||||||
|
rsync -vzP @PACKAGE@-@VERSION@.tar.gz telepathy.freedesktop.org:/srv/telepathy.freedesktop.org/www/releases/@PACKAGE@/@PACKAGE@-@VERSION@.tar.gz
|
||||||
|
rsync -vzP @PACKAGE@-@VERSION@.tar.gz.asc telepathy.freedesktop.org:/srv/telepathy.freedesktop.org/www/releases/@PACKAGE@/@PACKAGE@-@VERSION@.tar.gz.asc
|
||||||
|
|
||||||
|
maintainer-make-release:
|
||||||
|
$(MAKE) maintainer-prepare-release
|
||||||
|
$(MAKE) maintainer-upload-release
|
||||||
|
@echo "Now:"
|
||||||
|
@echo " • bump the nano-version;"
|
||||||
|
@echo " • push the branch and tags upstream; and"
|
||||||
|
@echo " • send release-mail to <telepathy@lists.freedesktop.org>."
|
||||||
|
|
||||||
|
## vim:set ft=automake:
|
Loading…
Reference in New Issue
Block a user