GithubHelp home page GithubHelp logo

spectrumim / spectrum2 Goto Github PK

View Code? Open in Web Editor NEW
390.0 41.0 93.0 14.78 MB

Spectrum 2 IM transports

Home Page: https://spectrum.im

CMake 4.85% C 27.56% C++ 61.48% Python 3.27% Shell 0.21% Makefile 0.04% Objective-C++ 0.80% Lua 0.71% CSS 0.44% JavaScript 0.42% Dockerfile 0.22%

spectrum2's Introduction

Spectrum 2 is an open source instant messaging transport.

It allows users to chat together even when they are using different IM networks.

It acts as a transport layer between the users as showed in the animation above.

spectrum2's People

Contributors

anton-ryzhov avatar arnt avatar askovpen avatar chainria avatar darchigh avatar dependabot[bot] avatar dexterlb avatar dos1 avatar drjeckyll avatar fank avatar himselfv avatar jadestorm avatar jankaluza avatar jdoe9910 avatar karbon15 avatar lactide avatar languitar avatar madsl avatar meyerd avatar moyamo avatar programie avatar ri0n avatar sarangbh avatar sicherha avatar stv0g avatar theassemblerguy avatar thundergreen avatar truenicoco avatar vitalyster avatar vladamatena avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spectrum2's Issues

Groupchat bookmarks

Spectrum should provide a list of legacy stored/active groupchats as XMPP Bookmarks (older spec have wider support in clients)
In gateway mode it may need to extend Remote Roster XEP

Delivery of offline messages

This is more a question about the implementation then a bug report.

spectrum2 is configured to run in "server mode" and to use the "purple backend"

I play around with spectrum2 since a few days and noticed that offline messages are not properly delivered. But I'm not really sure if this is a problem with the plugins I tested, because at least for prpl-jabber the delivery worked.

I tried to work around this issue by setting spectrum2 to bouncer mode (transport setting "Stay connected to legacy network when offline on XMPP") to hold the connection when I disconnect.
But the delivery of offline-messages does still not work when reconnecting, actually spectrum2 just "eats" the messages and they are gone.

By looking at the code the message buffering and playback is implemented, but only works in Gateway mode.

Is there a reason why this isn't implemented for server mode? I created a quick&dirty patch (needs some cleanup ^^) that fixes message-buffering and -playback in server mode. Is there any interest in this?

Error while compiling

Even though libCommuni is preinstalled, still error occurs while compiling. What could be the possibly reason?

output:-
cmake . -DCMAKE_BUILD_TYPE=Debug
-- The C compiler identification is GNU 4.9.2
-- The CXX compiler identification is GNU 4.9.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Variables to override default places where to find libraries:
-- |- cppunit : -DCPPUNIT_INCLUDE_DIR, -DCPPUNIT_LIBRARY
-- |- swiften : -DSWIFTEN_INCLUDE_DIR, -DSWIFTEN_LIBRARY
-- |- zlib : -DZLIB_LIBRARY
-- |- expat : -DEXPAT_LIBRARY
-- |-libidn : -DLIBIDN_LIBRARY
-- |-libxml : -DLIBXML_LIBRARY
-- |- boost : -DBOOST_INCLUDEDIR, -DBOOST_LIBRARYDIR
-- |- protobuf: -DPROTOBUF_INCLUDE_DIR, -DPROTOBUF_LIBRARY
-- : -DPROTOBUF_PROTOC_EXECUTABLE
-- |- log4cxx : -DLOG4CXX_INCLUDE_DIR, -DLOG4CXX_LIBRARY
-- |- purple : -DPURPLE_INCLUDE_DIR, -DPURPLE_LIBRARY
-- : -DPURPLE_NOT_RUNTIME - enables compilation with libpurple.lib
-- Found libSwiften: -L/usr/local/bin/../lib;-lSwiften;-lboost_signals;-lboost_thread;-lboost_regex;-lboost_program_options;-lboost_filesystem;-lboost_system;-lboost_date_time;-lz;-lssl;-lcrypto;-lexpat;-lavahi-client;-lavahi-common;-lresolv;-lpthread;-ldl;-lm;-lc;-lstdc++, /usr/local/include
-- Using non-multithreaded boost
-- Boost version: 1.55.0
-- Found the following Boost libraries:
-- program_options
-- date_time
-- system
-- filesystem
-- regex
-- thread
-- signals
-- Found Boost: 105500, /usr/lib/x86_64-linux-gnu/libboost_program_options.so;/usr/lib/x86_64-linux-gnu/libboost_date_time.so;/usr/lib/x86_64-linux-gnu/libboost_system.so;/usr/lib/x86_64-linux-gnu/libboost_filesystem.so;/usr/lib/x86_64-linux-gnu/libboost_regex.so;/usr/lib/x86_64-linux-gnu/libboost_thread.so;/usr/lib/x86_64-linux-gnu/libboost_signals.so;/usr/lib/x86_64-linux-gnu/libpthread.so, /usr/include
-- Using BOOST_FILESYSTEM_VERSION=3
-- Could NOT find popt
-- Found Sqlite3 header file in /usr/include
-- Found Sqlite3 libraries: optimized;/usr/lib/x86_64-linux-gnu/libsqlite3.so;debug;/usr/lib/x86_64-linux-gnu/libsqlite3.so
-- Found MySQL: /usr/lib/x86_64-linux-gnu/libmysqlclient.so, /usr/include/mysql
-- Found pqxx: /usr/local/lib/libpqxx.a, /usr/lib/x86_64-linux-gnu/libpq.so, /usr/local/include
-- Found libpurple: /usr/lib/libpurple.so, /usr/include/libpurple
-- Found Event: /usr/lib/x86_64-linux-gnu/libev.so /usr/local/include
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.28")
-- checking for module 'glib-2.0'
-- found glib-2.0, version 2.44.1
-- Found GLIB2: /usr/lib/x86_64-linux-gnu/libglib-2.0.so;/usr/lib/x86_64-linux-gnu/libgthread-2.0.so;/usr/lib/x86_64-linux-gnu/libgmodule-2.0.so;/usr/lib/x86_64-linux-gnu/libgobject-2.0.so
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found PROTOBUF: /usr/local/lib/libprotobuf.so
-- checking for module 'openssl'
-- found openssl, version 1.0.1f
-- Found OpenSSL: /usr/include, /usr/lib/x86_64-linux-gnu/libssl.so/usr/lib/x86_64-linux-gnu/libcrypto.so
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found
-- Found Qt4: /usr/bin/qmake-qt4 (found version "4.8.6")
-- Could NOT find libCommuni
-- Found Qt4: /usr/bin/qmake-qt4 (found version "4.8.6")
-- Found Qt4: /usr/bin/qmake-qt4 (found version "4.8.6")
-- Found Event: /usr/lib/x86_64-linux-gnu/libev.so /usr/local/include
-- checking for one of the modules 'dbus-glib-1'
-- Found libdbus-glib: dbus-glib-1;dbus-1;gobject-2.0;glib-2.0 /usr/include/dbus-1.0;/usr/lib/x86_64-linux-gnu/dbus-1.0/include;/usr/include/glib-2.0;/usr/lib/x86_64-linux-gnu/glib-2.0/include
-- Found Doxygen: /usr/bin/doxygen (found version "1.8.9.1")
-- Found log4cxx: /usr/lib/x86_64-linux-gnu/liblog4cxx.so, /usr/include/usr/include

Supported features

Version : 2.0.0-beta-git-2922d57
SQLite3 : yes
MySQL : yes
PostgreSQL : yes
Network plugins : yes
Libpurple plugin : yes
libev eventloop : yes
IRC plugin : no (install libCommuni and libprotobuf-dev)
Twitter plugin : yes
Frotz plugin : yes
SMSTools3 plugin : yes
Skype plugin : yes
Swiften plugin : yes
Log4cxx : yes
Debug : yes
-- Found CURL: /usr/lib/x86_64-linux-gnu/libcurl.so (found version "7.38.0")
-- Using curl 7.38.0: /usr/include /usr/lib/x86_64-linux-gnu/libcurl.so
tests : no (user disabled)

Docs : yes

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
POPT_INCLUDE_DIR
used as include directory in directory /home/saamem/Desktop/p1/libtransport/src
POPT_LIBRARY
linked by target "transport" in directory /home/saamem/Desktop/p1/libtransport/src

-- Configuring incomplete, errors occurred!
See also "/home/saamem/Desktop/p1/libtransport/CMakeFiles/CMakeOutput.log".
See also "/home/saamem/Desktop/p1/libtransport/CMakeFiles/CMakeError.log".

Different "frontend" protocols

As XMPP popularity not growing fast now, we can provide ability to use different client side protocols: some examples of suitable open protocols - IRC, SIP, Matrix protocol. Also some proprietary protocols allow third-party extensions, e.g. Slack
It can attract more users and developers to spectrum, and these protocols have more stable and feature-rich clients and libraries, e.g. it is much simpler to add voip capability with existing SIP/WebRTC library than with dated XMPP specs and clients

Support for group invites

As defined in XEP-0045 (Mediated Invites). With the protocol buffers I think we could reuse ConversationMessage and just have a different type (e.g. TYPE_ROOM_INVITE)
This could be translated to:

<message
    from='[email protected]'
    id='nzd143v8'
    to='[email protected]'>
  <x xmlns='http://jabber.org/protocol/muc#user'>
    <invite from='[email protected]/desktop'>
      <reason>
        Hey Hecate, this is the place for all good witches!
      </reason>
    </invite>
    <password>cauldronburn</password>
  </x>
</message>
ConversationMessage:
    userName: [email protected]
    buddyName: [email protected]
    nickname: [email protected]
    message: Hey Hecate, this is the place for all good witches!
    timestamp: <timestamp>
    headline: cauldronburn
    id: nzd143v8

Use Boost.Signals2 instead of Boost.Signals

libtransport still uses the old and deprecated boost::signal classes:

"Boost.Signals is no longer being maintained and is now deprecated. Please switch to Boost.Signals2. To disable this warning message, define BOOST_SIGNALS_NO_DEPRECATION_WARNING."

A porting guide to the new boost::signals2 system is available here: http://www.boost.org/doc/libs/1_59_0/doc/html/signals2/api_changes.html#signals2.porting

Unfortunately, Swiften is also still using the old boost::signal

Unsetting buddies profile picture doesn't work

When you unset a profile picture (iconHash = "") spectrum sends a presence stanza with a update element containing and empty photo element. Before it sends this it should send an empty update element. I think this causes some clients (i.e. pidgin and conversations) to not detect the removal of the profile picture.

Facebook X-Facebook-Platform SASL Not Working

Cannot use X-Facebook-Platform SASL with spectrum2_libpurple_backend nor spectrum2_swiften_backend. Authentication is only occuring with DIGEST-MD5.

We have tried using the spectrum 1 config options to no avail as it does not appear to recognize these:

fb_api_key=
fb_api_secret=

We are passing the UserID after initiating the FB session and passing the access_token as the password.

Generic REST backend

Twitter backend using OAUTH/REST internally, but we may separate this into generic library for writing new REST backends

Telegram and OAuth authorization

a) Telegram uses OAuth, so there is no password
b) I expect to enter only my phone number (in +420..... full size format) and to get SMS to the phone with a code which I enter to the message tab opened in my chat program.

Cant compile it on debian wheezy (x64)

I did try to follow this little guide over here http://spectrum.im/documentation/installation/packages_debian_ubuntu.html and i did manage to compile libcommuni but i just get an error if i try to compile spectrum2.

In file included from /usr/include/boost/thread/pthread/mutex.hpp:14:0,
from /usr/include/boost/thread/mutex.hpp:16,
from /usr/include/boost/thread/pthread/thread_data.hpp:12,
from /usr/include/boost/thread/thread.hpp:17,
from /usr/include/Swiften/Network/BoostIOServiceThread.h:10,
from /tmp/spectrum2-2.0.1/include/transport/Transport.h:26,
from /tmp/spectrum2-2.0.1/libtransport/UsersReconnecter.cpp:23:
/usr/include/boost/thread/xtime.hpp:23:5: error: expected identifier before numeric constant
/usr/include/boost/thread/xtime.hpp:23:5: error: expected ‘}’ before numeric constant
/usr/include/boost/thread/xtime.hpp:23:5: error: expected unqualified-id before numeric constant
/usr/include/boost/thread/xtime.hpp:46:14: error: expected type-specifier before ‘system_time’
In file included from /usr/include/boost/thread/pthread/mutex.hpp:14:0,
from /usr/include/boost/thread/mutex.hpp:16,
from /usr/include/boost/thread/pthread/thread_data.hpp:12,
from /usr/include/boost/thread/thread.hpp:17,
from /usr/include/Swiften/Network/BoostIOServiceThread.h:10,
from /tmp/spectrum2-2.0.1/include/transport/Transport.h:26,
from /tmp/spectrum2-2.0.1/libtransport/UsersReconnecter.cpp:23:
/usr/include/boost/thread/xtime.hpp: In function ‘int xtime_get(xtime_, int)’:
/usr/include/boost/thread/xtime.hpp:73:40: error: ‘get_system_time’ was not declared in this scope
/usr/include/boost/thread/xtime.hpp:73:40: note: suggested alternative:
In file included from /usr/include/boost/thread/locks.hpp:12:0,
from /usr/include/boost/thread/pthread/mutex.hpp:12,
from /usr/include/boost/thread/mutex.hpp:16,
from /usr/include/boost/thread/pthread/thread_data.hpp:12,
from /usr/include/boost/thread/thread.hpp:17,
from /usr/include/Swiften/Network/BoostIOServiceThread.h:10,
from /tmp/spectrum2-2.0.1/include/transport/Transport.h:26,
from /tmp/spectrum2-2.0.1/libtransport/UsersReconnecter.cpp:23:
/usr/include/boost/thread/thread_time.hpp:19:24: note: ‘boost::get_system_time’
In file included from /usr/include/boost/thread/pthread/mutex.hpp:14:0,
from /usr/include/boost/thread/mutex.hpp:16,
from /usr/include/boost/thread/pthread/thread_data.hpp:12,
from /usr/include/boost/thread/thread.hpp:17,
from /usr/include/Swiften/Network/BoostIOServiceThread.h:10,
from /tmp/spectrum2-2.0.1/include/transport/Transport.h:26,
from /tmp/spectrum2-2.0.1/libtransport/UsersReconnecter.cpp:23:
/usr/include/boost/thread/xtime.hpp: At global scope:
/usr/include/boost/thread/xtime.hpp:88:1: error: expected declaration before ‘}’ token
make[3]: *_* [libtransport/CMakeFiles/transport.dir/UsersReconnecter.cpp.o] Error 1
make[3]: Leaving directory /tmp/spectrum2-2.0.1' make[2]: *** [libtransport/CMakeFiles/transport.dir/all] Error 2 make[2]: Leaving directory/tmp/spectrum2-2.0.1'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/tmp/spectrum2-2.0.1'
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2

WhatsApp Purple support

internal server error with WhatsApp Purple backend

Hi Guys. I'm trying to get whatsapp purple running with spectrum but apparently it's not well supported. Is there any hint / trick or something to think about by using whatsapp purple with spectrum2 ?

logs:

==> backend-2.log <==
11953: 2016-02-17 18:49:59,620 INFO libpurple: dnsquery:Performing DNS lookup for e5.whatsapp.net
11953: 2016-02-17 18:49:59,623 INFO libpurple: dns:Created new DNS child 11957, there are now 1 children.
11953: 2016-02-17 18:49:59,624 INFO libpurple: dns:Successfully sent DNS request to child 11957
11953: 2016-02-17 18:49:59,636 INFO libpurple: dns:Got response for 'e5.whatsapp.net'
11953: 2016-02-17 18:49:59,636 INFO libpurple: dnsquery:IP resolved for e5.whatsapp.net
11953: 2016-02-17 18:49:59,636 INFO libpurple: proxy:Attempting connection to 174.36.210.55
11953: 2016-02-17 18:49:59,637 INFO libpurple: proxy:Connecting to e5.whatsapp.net:443 with no proxy
11953: 2016-02-17 18:49:59,637 INFO libpurple: proxy:Connection in progress
11953: 2016-02-17 18:49:59,740 INFO libpurple: proxy:Connecting to e5.whatsapp.net:443.
11953: 2016-02-17 18:49:59,740 INFO libpurple: proxy:Connected to e5.whatsapp.net:443.

==> backend-1.log <==
12590: 2016-02-17 19:16:25,689 INFO libpurple: whatsapp:Fetching thorsten's user info for 33781852856
12590: 2016-02-17 19:16:25,689 WARN backend: Unhandled VCard Label 'Status'
12590: 2016-02-17 19:16:25,690 WARN backend: Unhandled VCard Label 'Profile image'
12590: 2016-02-17 19:16:29,620 INFO libpurple: util:Writing file accounts.xml to directory /var/lib/spectrum2/whatsapp.emevth.no-ip.biz
12590: 2016-02-17 19:16:29,621 INFO libpurple: util:Writing file /var/lib/spectrum2/whatsapp.emevth.no-ip.biz/accounts.xml
12590: 2016-02-17 19:26:25,501 INFO libpurple: whatsapp:Fetching thorsten's user info for 33781852856
12590: 2016-02-17 19:26:25,502 WARN backend: Unhandled VCard Label 'Status'
12590: 2016-02-17 19:26:25,502 WARN backend: Unhandled VCard Label 'Profile image'
12590: 2016-02-17 19:26:29,623 INFO libpurple: util:Writing file accounts.xml to directory /var/lib/spectrum2/whatsapp.emevth.no-ip.biz
12590: 2016-02-17 19:26:29,623 INFO libpurple: util:Writing file /var/lib/spectrum2/whatsapp.emevth.no-ip.biz/accounts.xml
12590: 2016-02-17 19:37:08,367 INFO libpurple: whatsapp:Fetching thorsten's user info for 33781852856
12590: 2016-02-17 19:37:08,368 WARN backend: Unhandled VCard Label 'Status'
12590: 2016-02-17 19:37:08,368 WARN backend: Unhandled VCard Label 'Profile image'
12590: 2016-02-17 19:37:12,620 INFO libpurple: util:Writing file accounts.xml to directory /var/lib/spectrum2/whatsapp.emevth.no-ip.biz
12590: 2016-02-17 19:37:12,620 INFO libpurple: util:Writing file /var/lib/spectrum2/whatsapp.emevth.no-ip.biz/accounts.xml
12590: 2016-02-17 19:43:53,625 INFO libpurple: whatsapp:Fetching thorsten's user info for 33781852856
12590: 2016-02-17 19:43:53,626 WARN backend: Unhandled VCard Label 'Status'
12590: 2016-02-17 19:43:53,626 WARN backend: Unhandled VCard Label 'Profile image'
12590: 2016-02-17 19:43:55,489 INFO libpurple: whatsapp:Fetching thorsten's user info for 33781852856
12590: 2016-02-17 19:43:55,490 WARN backend: Unhandled VCard Label 'Status'
12590: 2016-02-17 19:43:55,490 WARN backend: Unhandled VCard Label 'Profile image'
12590: 2016-02-17 19:43:57,620 INFO libpurple: util:Writing file accounts.xml to directory /var/lib/spectrum2/whatsapp.emevth.no-ip.biz
12590: 2016-02-17 19:43:57,621 INFO libpurple: util:Writing file /var/lib/spectrum2/whatsapp.emevth.no-ip.biz/accounts.xml

2016-02-17 19:37:07,807 INFO User: [email protected]/conversations: got disco#info
2016-02-17 19:37:07,808 INFO User: PRESENCE [email protected]/conversations whatsapp.emevth.no-ip.biz
2016-02-17 19:37:07,809 INFO User: [email protected]: Requesting VCard
2016-02-17 19:37:07,809 INFO XMPPUser: [email protected]: Requesting VCard
2016-02-17 19:37:07,811 INFO Component.RAW: RAW DATA OUT
2016-02-17 19:37:07,818 INFO Component.RAW: RAW DATA OUT 30xaI'm available. (Not available as a result of being idle more than 15 min)935c8cc52a717d70bf38fb80229f8c3ad2b89674
2016-02-17 19:37:07,822 INFO Component.RAW: RAW DATA OUT 30xaI'm available. (Not available as a result of being idle more than 15 min)935c8cc52a717d70bf38fb80229f8c3ad2b89674
2016-02-17 19:37:07,824 INFO Component.RAW: RAW DATA OUT 30xaI'm available. (Not available as a result of being idle more than 15 min)935c8cc52a717d70bf38fb80229f8c3ad2b89674
2016-02-17 19:37:07,826 INFO User: [email protected]: Changing legacy network presence to 0
2016-02-17 19:37:07,830 INFO UserManager: PRESENCE2 whatsapp.emevth.no-ip.biz
2016-02-17 19:37:07,839 INFO Component.RAW: RAW DATA IN Thorsten FröhlichThUnD3r|Gr33nThorstenFröhlich01-08-1983[email protected]https://emevth.no-ip.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 place Charles de GauleMeaux77100France/home/root/
2016-02-17 19:37:08,099 INFO Component.RAW: RAW DATA IN <title>White christmas</title>http://www.jamendo.com/fr/track/1170301
2016-02-17 19:37:08,364 INFO Component.RAW: RAW DATA IN
2016-02-17 19:37:08,366 INFO VCardResponder: [email protected]: Requested VCard of thorsten
2016-02-17 19:37:08,369 INFO VCardResponder: [email protected]/Gajim: Forwarding VCard of whatsapp.emevth.no-ip.biz from legacy network
2016-02-17 19:37:08,370 INFO Component.RAW: RAW DATA OUT
2016-02-17 19:37:08,468 INFO Component.RAW: RAW DATA IN 48.9277730999999962.2940787FrankreichFR92230GennevilliersPlace du Docteur Roux1010 Place du Dr Roux, 92230 Gennevilliers, Frankreichhttp://maps.google.com/?q=48.9277295,2.29404352016-02-15T17:21:24Z+01:00
2016-02-17 19:37:08,471 INFO Component.RAW: RAW DATA IN
2016-02-17 19:37:09,025 INFO Component.RAW: RAW DATA IN
2016-02-17 19:37:09,028 INFO Component.RAW: RAW DATA IN
2016-02-17 19:37:09,069 INFO Component.RAW: RAW DATA IN ThUnD3r|Gr33n
2016-02-17 19:37:11,364 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:37:11,364 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:37:31,375 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:37:31,376 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:37:51,378 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:37:51,378 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:38:11,380 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:38:11,380 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:38:31,382 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:38:31,383 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:38:51,384 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:38:51,385 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:39:11,394 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:39:11,395 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:39:31,396 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:39:31,396 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:39:51,397 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:39:51,398 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:40:11,399 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:40:11,399 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:40:31,401 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:40:31,401 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:40:51,403 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:40:51,403 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:41:11,405 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:41:11,405 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:41:31,418 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:41:31,419 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:41:51,420 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:41:51,421 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:42:11,422 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:42:11,422 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:42:31,424 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:42:31,425 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:42:51,438 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:42:51,439 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:43:11,440 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:43:11,441 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:43:31,442 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:43:31,443 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:43:51,444 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:43:52,178 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:43:52,657 INFO Component.RAW: RAW DATA IN 50I'm available.935c8cc52a717d70bf38fb80229f8c3ad2b89674
2016-02-17 19:43:52,659 INFO User: [email protected]/Gajim: got disco#info
2016-02-17 19:43:52,659 INFO User: PRESENCE [email protected]/Gajim whatsapp.emevth.no-ip.biz
2016-02-17 19:43:52,659 INFO User: [email protected]: Requesting VCard
2016-02-17 19:43:52,660 INFO XMPPUser: [email protected]: Requesting VCard
2016-02-17 19:43:52,661 INFO Component.RAW: RAW DATA OUT
2016-02-17 19:43:52,662 INFO Component.RAW: RAW DATA OUT 50I'm available.935c8cc52a717d70bf38fb80229f8c3ad2b89674
2016-02-17 19:43:52,664 INFO Component.RAW: RAW DATA OUT 50I'm available.935c8cc52a717d70bf38fb80229f8c3ad2b89674
2016-02-17 19:43:52,665 INFO Component.RAW: RAW DATA OUT 50I'm available.935c8cc52a717d70bf38fb80229f8c3ad2b89674
2016-02-17 19:43:52,667 INFO User: [email protected]: Changing legacy network presence to 0
2016-02-17 19:43:52,669 INFO UserManager: PRESENCE2 whatsapp.emevth.no-ip.biz
2016-02-17 19:43:52,689 INFO Component.RAW: RAW DATA IN 50I'm available.iQGcBAABAgAGBQJWxL9oAAoJEJiiETWKzmd/yZwL+QGb7cUz7jzS7J1gKA6Si/0+
L+zI5QrFDwBSNfnsYZ9JqudhHregVS8SSOZsUXQ/egRQrgdtEghDfvT3fWBRyxbr
ME9WFHtsc9xEBFP4JwuWcP0pZvIoJkUUSMPZgpuAK079pTyQBHw2FfrZAtELLZ3z
kBNl/fiQ138DXvx/iTXnxKdMwPnSQi5O2qndeLcrG9yyH8cLLtMpa33W+lS6YT7X
eed1L0ebly2Wy4wLASKPCAwwOSvwAIZuGIDuiIvoL0t1o5prEDabXMkXryEKtVq7
NYCDkCeR8Bd01JnAtVSMoy1D4MhYQpNsc9U9clIstfD6potbvmmidVmSoM4Xccxm
wYIv6SVTv2mMzvQrXjQG96Ttak0SIYuAjaVF8fMgOe2WCk0YeGwUVPBLLRLHiZrs
dgp1sr2rimAZPfk05bt6aNFy42KJXV6VtyqHUGzUqAxB9JA44BWkF64Z/tJjg7uK
hBB9CpJ98+BQdGFtnsFiXvy4fDKJ4hpklzuSVz0mPg==
=2Y8z8cac0a838c17a3b53608d6af786c2a07f69240b8
2016-02-17 19:43:52,691 INFO UserManager: PRESENCE2 [email protected]
2016-02-17 19:43:52,692 WARN UserManager: Unregistered user [email protected] tried to login
2016-02-17 19:43:52,706 INFO Component.RAW: RAW DATA IN Thorsten FröhlichThUnD3r|Gr33nThorstenFröhlich01-08-1983[email protected]https://emevth.no-ip.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 place Charles de GauleMeaux77100France/home/root/
2016-02-17 19:43:53,622 INFO Component.RAW: RAW DATA IN
2016-02-17 19:43:53,623 INFO VCardResponder: [email protected]: Requested VCard of thorsten
2016-02-17 19:43:53,628 INFO VCardResponder: [email protected]/Gajim: Forwarding VCard of whatsapp.emevth.no-ip.biz from legacy network
2016-02-17 19:43:53,629 INFO Component.RAW: RAW DATA OUT
2016-02-17 19:43:55,035 INFO Component.RAW: RAW DATA IN iQRMBAEBCgA2LxxUaG9yc3RlbiBGcsO2aGxpY2ggPHRob3JzdGVuQGVtZXZ0aC5uby1pcC5iaXo+BQJWg+xhAAoJEE9Vp2UBRE6PXLcf/2e7Wok08hiSabVtAO0lPJZ4GgxRH0SIIZMcD96PKKGM6p/5CLfgK3kOiuqgy6sn/liq/x6Rq+Wl3JdhdF1k36T5JuEDHjzjyWW7ll5TGLiVyOXx7JtsGP6kYrehcA+A/1TD3gAFKkzyNasppJdiKomK39N+kZvvOXyEQCmMoOYE3e2fcII27huz2YpesX2NC2mVntUsu31Q65UTQF6ta8RVZnok+WgMedbPqud+qDPB79P+DwfP2pstFuJSo4ccU+Ybi3gieZ77GQe3nmtxUFccqs7kYNUDwi92tgwwMV3LcgZhxJSx/1r57AB6EHDoffYlmnLuiUR3sqzL+bvRCzTsMksFlhGS59dhnVHJmhcf8jJvKwme4ebvVe//YF5f61X2Gj/PaCQCYbvm9iJrQ8KMBIVc0IqmWlW92bAuShVUOIphy8AoLUq+rKn9EGla4qZx0OstpljBpQztzLstxFIzR4RcgFl0wARWUukfeYC8sia0vaNZkOnRJYtH8B/5+zVhaIwHuPuO4f9c4RxSDXf31nNiJ92z2x6JtjvAu73h+oL/PatS/TgAlfv9xbzK2Gi86ynuIXi5g0lAR33/P6euvBI4av9J9L7VkBjrjjs6NGUeZudTaz7+6qYljLf4C0sixas34rp99R8cY7NbXDPIACj8x5zv/h0IxjV3lTE9esedHa2SGzYFOC9BiaDMbQjCFbnBr9KDBe5stkhOzep9b/QAhUOVx4j6j1wbojjJRxWx2qP59thoJoSIutTNbvKNf1wb435/kl/6dK//GU7EGdnLZ9Oj75rSen8Gbgxk/Cilob8c8CTlSsIpEwNy+vW0ebr/Df1QuBcw5k4K1BRaRrDAN1l9+JmT6S90EsDRGEwHTGoBeiVg/iF7tTvV4Y4GeF/5NzsTiY+nOYFWWUYCB4v7tkoFO9VMkqb7HQkLf7CmorXxo9gzpM2K06nvNca8x6yN3TnA/bamd9T6gFbC7Km0R7nu8S2zKiwdvh8t7s5JcSVPkff7MWdJGmQ17IbVVg9iO1TnUvvyNr+a4DcL1esHpvmwUAOIIzt0+TzzjEebSiJ89FxFz8dlT26jXTlJ+vMp4E5l8gDfmryuRG6cgEJJ45AkfZ2Upeta/wdWYMkFjF7vFsVEmCbk/RKuVu+Z+jw/UqoEiIWRyqE37Ctt8+7Rq/gqZxuaIYSerB6gKrHYqp0TGtDycG5Qkez6YfR3V8k+t3uHa1K/E1rVzJbQeSpUf50ocPE4ocFNz6YaOM7hhTkpIJ09GVsh3vrRQzPCOb3LUVfp1LIzfSKvV2sciTBZdXUP0fdDQF6YtVXNOLDCom31knX6ZHehvXxGJfeAWRyxIyuJEuY8u1DBFtE==4XDG935c8cc52a717d70bf38fb80229f8c3ad2b89674
2016-02-17 19:43:55,037 INFO User: [email protected]/conversations: got disco#info
2016-02-17 19:43:55,038 INFO User: PRESENCE [email protected]/conversations whatsapp.emevth.no-ip.biz
2016-02-17 19:43:55,038 INFO User: [email protected]: Requesting VCard
2016-02-17 19:43:55,038 INFO XMPPUser: [email protected]: Requesting VCard
2016-02-17 19:43:55,039 INFO Component.RAW: RAW DATA OUT
2016-02-17 19:43:55,040 INFO Component.RAW: RAW DATA OUT 50I'm available.935c8cc52a717d70bf38fb80229f8c3ad2b89674
2016-02-17 19:43:55,042 INFO Component.RAW: RAW DATA OUT 50I'm available.935c8cc52a717d70bf38fb80229f8c3ad2b89674
2016-02-17 19:43:55,044 INFO Component.RAW: RAW DATA OUT 50I'm available.935c8cc52a717d70bf38fb80229f8c3ad2b89674
2016-02-17 19:43:55,045 INFO User: [email protected]: Changing legacy network presence to 0
2016-02-17 19:43:55,046 INFO UserManager: PRESENCE2 whatsapp.emevth.no-ip.biz
2016-02-17 19:43:55,070 INFO Component.RAW: RAW DATA IN Thorsten FröhlichThUnD3r|Gr33nThorstenFröhlich01-08-1983[email protected]https://emevth.no-ip.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 place Charles de GauleMeaux77100France/home/root/
2016-02-17 19:43:55,487 INFO Component.RAW: RAW DATA IN
2016-02-17 19:43:55,488 INFO VCardResponder: [email protected]: Requested VCard of thorsten
2016-02-17 19:43:55,491 INFO VCardResponder: [email protected]/Gajim: Forwarding VCard of whatsapp.emevth.no-ip.biz from legacy network
2016-02-17 19:43:55,492 INFO Component.RAW: RAW DATA OUT
2016-02-17 19:44:12,179 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:44:12,180 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:44:32,928 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:44:32,929 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:44:52,930 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:44:52,931 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:45:12,932 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:45:12,933 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:45:32,934 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:45:32,935 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:45:52,936 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:45:52,936 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:46:12,937 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:46:12,938 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:46:32,952 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:46:32,953 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)
2016-02-17 19:46:34,916 INFO Component.RAW: RAW DATA IN
2016-02-17 19:46:34,920 INFO Component.RAW: RAW DATA OUT
2016-02-17 19:46:52,954 INFO NetworkPluginServer: Sending PING to backends
2016-02-17 19:46:52,955 INFO NetworkPluginServer: PING to 0x12f2ca0 (ID=12590)

Packages for Debian Jessie

Is it possible to provide packages for the current debian stable release (Jessie)?

The wheezy packages depend on some libboost-* library packages that are no longer available in jessie (probably because of a version upgrade and new package name). It is possible to add a wheezy apt sources entry to install the required old dependencies, but then you have a mixture of different debian releases which is generally not recommended.

Optionally list hidden rooms in service discovery (disco#items)

XEP-0045 (Multi-User-Chat) says that the room discovery SHOULD return a full list of public rooms. Whatsapp only has hidden rooms. I suggest spectrum also optionally allow backends to make hidden rooms visible to specific users. The change to the room list will be like this

message RoomList {
    repeated string room;
    repeated string name;
    repeated string user;
}

user can be a comma seperated list of usernames (or something more structured, if you wish). If user is blank then the room is public, otherwise it is only visible to the specified users.

Received stanza with invalid source JID

Hi.

I use Spectrum 2 in gateway mode with purple-skypeweb and Prosody XMPP server. I can see list of Skype rooms in Gajim (#99). But when I try to join MUC (19:■■■@thread.skype) Prosody error occurs:

stanzarouter: Received stanza with invalid source JID: 19:■■■%thread.skype@skype.■■■.■■■/username

I think : character is invalid for JID.

libpurple: Support for PURPLE_MESSAGE_IMAGES

Many plugins for libpurple, e.g. facebook, skype and telegram fetch the images when they receive them and send them with option PURPLE_MESSAGE_IMAGES. In Pidgin this will show the embedded image in the chat window but this of course doesn't work for spectrum2. Spectrum2 just silently ignores these messages.

Possible solutions:
XEP-0231. That one looks super useful. Problem: Almost no client supports this :(
OR
Start a file transfer: Could be annoying when each sticker in FB generates a transfer.
OR
Download the file in some static spectrum2 directory that is reachable from a web browser and send the spectrum2 user a link.

Add support for case-sensitive buddy-names

I'm the developer of the libpurple plugin telegram-purple you currently suggest for getting Telegram to work in Spectrum 2. Due to some changes in how usernames are handled since v.1.2.2 (case sensitive human-readable names), Spectrum will most likely no longer work in version >=1.2.2 cause it lowercases all user names.

I will not be able to implement a workaround for spectrum, since introducing case insensitivity at this point would mean breaking backwards compatibility to existing buddy lists and histories. You can still use v1.2.1 for spectrum, but I have limited time and will no longer fix any bugs for this version in case they occur.

It would probably be a good idea to provide a native telegram plugin for Spectrum in case you intend to support it any further. The library libtgl should make the implementation rather easy. You can look at telegram-purples or telegram-cli's source code to learn how to use the library, and I will also offer my help in case there are any questions about libtgl or Telegram.

Error while compiling

[ 43%] Building CXX object src/CMakeFiles/transport.dir//include/Swiften/TLS/OpenSSL/OpenSSLServerContextFactory.cpp.o
[ 43%] Building CXX object src/CMakeFiles/transport.dir/
/include/Swiften/StreamStack/TLSServerLayer.cpp.o
Linking CXX shared library libtransport.so
/usr/bin/ld: /usr/local/lib/libpqxx.a(connection_base.o): relocation R_X86_64_32 against `_ZN4pqxx17broken_connectionD1Ev' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libpqxx.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
src/CMakeFiles/transport.dir/build.make:1727: recipe for target 'src/libtransport.so.2.0' failed
make[2]: *** [src/libtransport.so.2.0] Error 1
CMakeFiles/Makefile2:76: recipe for target 'src/CMakeFiles/transport.dir/all' failed
make[1]: *** [src/CMakeFiles/transport.dir/all] Error 2
Makefile:117: recipe for target 'all' failed
make: *** [all] Error 2

vcard charset and log-bug

407e09e

1 Encoding=windows-1251, backend - purple,icq

messages OK, vcard - wrong:

Received IQ:vCard result from [email protected]
Name: Ñìàêñ
Nickname: SM@x

2 logs

log4cxx = yes. config default.
log messages show in log-files and in stdout

libpurple backend: MUC Topics

MUC topics are not shown & never transferred. Instead a userlist is shown, which is not optimal for multiple rooms with the same participants.
Please use the Topic as MUC name and JID as fallback.
Please handle topic-changed signals and forward topic to frontend.
Also, the description field in MUC DISCO requests doesn't contain the topic (but the JID of the room)

libpurple backend: not working correctly with libpurple plugins with sms code authorization (like telegram-purple)

It seems that spectrum2 can't handle correctly authorization in plugins such as telegram-purple, when you log in using your phone number and then you need to enter sms code. Sms code is received, but entering it in transport's chat gives nothing.
Tried only with telegram-purple plugin, but I think that if it doesn't work in this plugin, it won't work in similar plugins.
May be some function of libpurple is not supported properly? telegram-purple works fine in pidgin.

Kick users from MUC when spectrum exits

When spectrum exits it, rightfully, sets the presence of all buddies to offline. This is the correct behaviour because buddy will no longer receive messages from the user.

However, the user is not kicked from the MUCs he has joined. This is incorrect behaviour as the participants of the MUC will not receive messages from the user. The user should be kicked from all MUCs when spectrum exits.

Quick building and installation instructions for Debian 8 Jessie to be added somewhere on the website or in the documentation

Firstly, build and install Communi, a required dependency of Spectrum 2:

# apt-get install git-buildpackage libssl-dev libqt4-dev
$ git clone git://github.com/vitalyster/libcommuni-gbp.git /tmp/libcommuni-gbp
$ cd /tmp/libcommuni-gbp
$ gbp buildpackage -b -uc -us
$ cd /tmp

When the compilation process has ended the .deb packages for libcommuni and libcommuni-dev will be generated in the current directory and can be installed with "dpkg -i < filename.deb >"

Next, build and install Spectrum 2:

# apt-get install libpurple-dev libswiften-dev libprotobuf-dev libmysqlclient-dev liblog4cxx10-dev protobuf-compiler libpopt-dev libdbus-glib-1-dev libpqxx3-dev cmake libevent-dev libboost-all-dev libidn11-dev libxml2-dev libavahi-client-dev libavahi-common-dev libcurl4-openssl-dev libsqlite3-dev
$ git clone git://github.com/hanzz/spectrum2.git /tmp/spectrum2
$ cd /tmp/spectrum2/packaging/debian
$ sh build_spectrum2.sh

When the compilation process has ended the .deb packages will be generated in the current directory and can be installed with "dpkg -i < filename.deb >".

IRC transport in one-transport-per-multiple-networks doesn’t work ...

IRC transport (in one-transport-for-many-IRC-networks, not one-transport-for-one-IRC-network, that works fine) fails on connecting to ANY IRC network:

tail -f spectrum2.log backends/backend*.log
2016-01-14 13:18:28,153 INFO  NetworkPluginServer: PING to 0x10e6dd0 (ID=22414)
2016-01-14 13:18:48,154 INFO  NetworkPluginServer: PING to 0x10e6dd0 (ID=22414)
2016-01-14 13:18:59,607 INFO  Component.RAW: RAW DATA IN <presence xmlns='jabber:client' to='#fedora-desktop%[email protected]/mcepl_s' from='[email protected]/1853f13d1aa8c40b09c72b7ce30f5f7be824bf09'><show>away</show><c xmlns='http://jabber.org/protocol/caps' node='http://pidgin.im/' hash='sha-1' ver='lV6i//bt2U8Rm0REcX8h4F3Nk3M=' ext='voice-v1 camera-v1 video-v1'/><x xmlns='http://jabber.org/protocol/muc'><password>blablabla</password></x></presence>
2016-01-14 13:18:59,608 INFO  UserManager: PRESENCE2 #fedora-desktop%[email protected]/mcepl_s
2016-01-14 13:18:59,608 INFO  User: PRESENCE [email protected]/1853f13d1aa8c40b09c72b7ce30f5f7be824bf09 #fedora-desktop%[email protected]/mcepl_s
2016-01-14 13:18:59,608 INFO  User: [email protected]: User has already tried to join room #[email protected] as mcepl_s

==> backends/backend-1.log <==
22414: 2016-01-14 13:19:07,251 INFO  IRCConnection: The time has come. Asking /who #fedora-desktop again to get current away states.

==> spectrum2.log <==
2016-01-14 13:19:08,154 INFO  NetworkPluginServer: PING to 0x10e6dd0 (ID=22414)
2016-01-14 13:19:28,155 INFO  NetworkPluginServer: PING to 0x10e6dd0 (ID=22414)
2016-01-14 13:19:48,156 INFO  NetworkPluginServer: PING to 0x10e6dd0 (ID=22414)
2016-01-14 13:20:08,156 INFO  NetworkPluginServer: PING to 0x10e6dd0 (ID=22414)

==> backends/backend-1.log <==
22414: 2016-01-14 13:20:12,250 INFO  IRCConnection: The time has come. Asking /who #fedora-desktop again to get current away states.

Docker documentation

This line

$ docker run --name="spectrum2" -d -v /opt/spectrum2:/etc/spectrum2/transport spectrum2/spectrum2

Should probably be

$ docker run --name="spectrum2" -d -v /opt/spectrum2:/etc/spectrum2/transports -v /var/lib/spectrum2:/var/lib/spectrum2 spectrum2/spectrum2

Notice transport -> transports (this was a typo).

Also since user data is stored in /var/lib/spectrum2 it should be mounted as a volume too.

spectrum2 fails to build on FreeBSD

spectrum2 fails to build on FreeBSD

FreeBSD:

# uname -a
FreeBSD elf.hq.norma.perm.ru 10.3-PRERELEASE FreeBSD 10.3-PRERELEASE #0 r294405: Thu Jan 21 14:03:07 YEKT 2016     [email protected]:/usr/obj/usr/src/sys/ELF  amd64

Compiler:

# clang -v
FreeBSD clang version 3.4.1 (tags/RELEASE_34/dot1-final 208032) 20140512
Target: x86_64-unknown-freebsd10.3
Thread model: posix
Selected GCC installation:

Output:

[ 96%] Built target spectrum2_skype_backend
[ 97%] Linking CXX executable spectrum2_manager
CMakeFiles/spectrum2_manager.dir/server.cpp.o: In function `Server::Server(ManagerConfig*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)':
/home/emz/spectrum/spectrum2-2.0.1/spectrum_manager/src/server.cpp:(.text+0x1092): undefined reference to `mg_set_ssl'
c++: error: linker command failed with exit code 1 (use -v to see invocation)
spectrum_manager/src/CMakeFiles/spectrum2_manager.dir/build.make:241: recipe for target 'spectrum_manager/src/spectrum2_manager' failed
gmake[2]: *** [spectrum_manager/src/spectrum2_manager] Error 1
CMakeFiles/Makefile2:1158: recipe for target 'spectrum_manager/src/CMakeFiles/spectrum2_manager.dir/all' failed
gmake[1]: *** [spectrum_manager/src/CMakeFiles/spectrum2_manager.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
gmake: *** [all] Error 2

Plus (a minor issue) would be nice if spectrum2 would include /usr/local/lib in it's linker path when building. Had to hack into the link.txt files.

Crash on registering IRC transport

Whenever I register one-server-per-transport IRC, spectrum2 transport crashes with this traceback:

Reading symbols from /usr/bin/spectrum2...Reading symbols from /usr/lib/debug/usr/bin/spectrum2.debug...done.
done.
Missing separate debuginfo for 
Try: yum --enablerepo='*debug*' install /usr/lib/debug/.build-id/17/a121b1f7bbb010f54735ffde3347b27b33884d
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/bin/spectrum2 -j freenode.cepl.eu /etc/spectrum2/transports/freenode.cfg'.
Program terminated with signal 11, Segmentation fault.
#0  0x00007fdc8b70ef38 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&) () from /lib64/libstdc++.so.6
Missing separate debuginfos, use: debuginfo-install apr-1.4.8-3.el7.x86_64 apr-util-1.5.2-6.el7.x86_64 avahi-libs-0.6.31-15.el7.x86_64 boost-date-time-1.53.0-25.el7.x86_64 boost-filesystem-1.53.0-25.el7.x86_64 boost-program-options-1.53.0-25.el7.x86_64 boost-regex-1.53.0-25.el7.x86_64 boost-serialization-1.53.0-25.el7.x86_64 boost-signals-1.53.0-25.el7.x86_64 boost-system-1.53.0-25.el7.x86_64 boost-thread-1.53.0-25.el7.x86_64 cyrus-sasl-lib-2.1.26-19.2.el7.x86_64 dbus-libs-1.6.12-13.el7.x86_64 expat-2.1.0-8.el7.x86_64 glibc-2.17-106.el7_2.1.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.13.2-10.el7.x86_64 libcom_err-1.42.9-7.el7.x86_64 libcurl-7.29.0-25.el7.x86_64 libdb-5.3.21-19.el7.x86_64 libgcc-4.8.5-4.el7.x86_64 libicu-50.1.2-15.el7.x86_64 libidn-1.28-4.el7.x86_64 libpqxx-4.0.1-1.el7.x86_64 libselinux-2.2.2-6.el7.x86_64 libssh2-1.4.3-10.el7.x86_64 libstdc++-4.8.5-4.el7.x86_64 libuuid-2.23.2-26.el7.x86_64 log4cxx-0.10.0-16.el7.x86_64 mariadb-libs-5.5.44-2.el7.x86_64 nspr-4.10.8-2.el7_1.x86_64 nss-3.19.1-18.el7.x86_64 nss-softokn-freebl-3.16.2.3-13.el7_1.x86_64 nss-util-3.19.1-4.el7_1.x86_64 openldap-2.4.40-8.el7.x86_64 openssl-libs-1.0.1e-51.el7_2.1.x86_64 pcre-8.32-15.el7.x86_64 popt-1.13-16.el7.x86_64 postgresql-libs-9.2.14-1.el7_1.x86_64 protobuf-2.5.0-7.el7.x86_64 sqlite-3.7.17-8.el7.x86_64 swiften-3.0-0.3.beta2.el7.centos.x86_64 xz-libs-5.1.2-12alpha.el7.x86_64 zlib-1.2.7-15.el7.x86_64
(gdb) t a a bt

Thread 4 (Thread 0x7fdc7be75700 (LWP 5666)):
#0  0x00007fdc8bb736d5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fdc8eb26093 in Swift::PlatformDomainNameResolver::run() () from /lib64/libSwiften.so.3
#2  0x00007fdc8dedd24a in thread_proxy () from /lib64/libboost_thread-mt.so.1.53.0
#3  0x00007fdc8bb6fdc5 in start_thread () from /lib64/libpthread.so.0
#4  0x00007fdc8963621d in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7fdc7c676700 (LWP 5665)):
#0  0x00007fdc8bb736d5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fdc8eb30c93 in Swift::PlatformNATTraversalWorker::start() () from /lib64/libSwiften.so.3
#2  0x00007fdc8dedd24a in thread_proxy () from /lib64/libboost_thread-mt.so.1.53.0
#3  0x00007fdc8bb6fdc5 in start_thread () from /lib64/libpthread.so.0
#4  0x00007fdc8963621d in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7fdc7ce77700 (LWP 5664)):
#0  0x00007fdc896367f3 in epoll_wait () from /lib64/libc.so.6
#1  0x00007fdc8eaf617b in boost::asio::detail::epoll_reactor::run(bool, boost::asio::detail::op_queue<boost::asio::detail::task_io_service_operation>&) ()
   from /lib64/libSwiften.so.3
#2  0x00007fdc8eaf4670 in Swift::BoostIOServiceThread::doRun() () from /lib64/libSwiften.so.3
#3  0x00007fdc8dedd24a in thread_proxy () from /lib64/libboost_thread-mt.so.1.53.0
#4  0x00007fdc8bb6fdc5 in start_thread () from /lib64/libpthread.so.0
#5  0x00007fdc8963621d in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7fdc8f5418c0 (LWP 5663)):
#0  0x00007fdc8b70ef38 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&) () from /lib64/libstdc++.so.6
#1  0x000000000049963f in Transport::FormUtils::fieldValue (form=..., key="password", def="")
    at /usr/src/debug/spectrum2/spectrum/src/frontends/xmpp/formutils.cpp:203
#2  0x00000000004a3f70 in Transport::XMPPUserRegistration::handleSetRequest (this=0x2335060, from=..., to=..., id="191", payload=...)
    at /usr/src/debug/spectrum2/spectrum/src/frontends/xmpp/XMPPUserRegistration.cpp:316
#3  0x00000000004a86c6 in Swift::Responder<Swift::InBandRegistrationPayload>::handleIQ (this=0x2335100, iq=...) at /usr/include/Swiften/Queries/Responder.h:113
#4  0x00007fdc8e8a4588 in Swift::IQRouter::handleIQ(boost::shared_ptr<Swift::IQ>) () from /lib64/libSwiften.so.3
#5  0x00007fdc8e8a578c in boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, Swift::IQRouter, boost::shared_ptr<Swift::IQ> >, boost::_bi::list2<boost::_bi::value<Swift::IQRouter*>, boost::arg<1> > >, void, boost::shared_ptr<Swift::IQ> >::invoke(boost::detail::function::function_buffer&, boost::shared_ptr<Swift::IQ>) () from /lib64/libSwiften.so.3
#6  0x000000000047456b in operator() (a0=..., this=<optimized out>) at /usr/include/boost/function/function_template.hpp:767
#7  operator()<boost::signals::detail::connection_slot_pair> (slot=..., this=0x7ffc0a1e9c50) at /usr/include/boost/signals/signal_template.hpp:119
#8  dereference (this=0x7ffc0a1e9c10) at /usr/include/boost/signals/detail/slot_call_iterator.hpp:61
#9  dereference<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound1<void>::caller<boost::shared_ptr<Swift::IQ>, boost::function<void(boost::shared_ptr<Swift::IQ>)> >, boost::signals::detail::named_slot_map_iterator> > (f=...) at /usr/include/boost/iterator/iterator_facade.hpp:514
#10 operator* (this=0x7ffc0a1e9c10) at /usr/include/boost/iterator/iterator_facade.hpp:639
---Type <return> to continue, or q <return> to quit---
#11 postfix_increment_proxy (x=..., this=<synthetic pointer>) at /usr/include/boost/iterator/iterator_facade.hpp:145
#12 operator++<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound1<void>::caller<boost::shared_ptr<Swift::IQ>, boost::function<void(boost::shared_ptr<Swift::IQ>)> >, boost::signals::detail::named_slot_map_iterator>, boost::signals::detail::unusable, boost::single_pass_traversal_tag, const boost::signals::detail::unusable&, long int> (i=...) at /usr/include/boost/iterator/iterator_facade.hpp:728
#13 operator()<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound1<void>::caller<boost::shared_ptr<Swift::IQ>, boost::function<void(boost::shared_ptr<Swift::IQ>)> >, boost::signals::detail::named_slot_map_iterator> > (this=<optimized out>, 
    last=<error reading variable: access outside bounds of object referenced via synthetic pointer>, 
    first=<error reading variable: access outside bounds of object referenced via synthetic pointer>) at /usr/include/boost/last_value.hpp:49
#14 boost::signal1<void, boost::shared_ptr<Swift::IQ>, boost::last_value<void>, int, std::less<int>, boost::function<void (boost::shared_ptr<Swift::IQ>)> >::operator()(boost::shared_ptr<Swift::IQ>) (this=<optimized out>, a1=...) at /usr/include/boost/signals/signal_template.hpp:354
#15 0x00007fdc8ebb302e in Swift::ComponentSessionStanzaChannel::handleStanza(boost::shared_ptr<Swift::Stanza>) () from /lib64/libSwiften.so.3
#16 0x00007fdc8ebb34ec in boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, Swift::ComponentSessionStanzaChannel, boost::shared_ptr<Swift::Stanza> >, boost::_bi::list2<boost::_bi::value<Swift::ComponentSessionStanzaChannel*>, boost::arg<1> > >, void, boost::shared_ptr<Swift::Stanza> >::invoke(boost::detail::function::function_buffer&, boost::shared_ptr<Swift::Stanza>) () from /lib64/libSwiften.so.3
#17 0x00007fdc8e8328d1 in boost::signal1<void, boost::shared_ptr<Swift::Stanza>, boost::last_value<void>, int, std::less<int>, boost::function<void (boost::shared_ptr<Swift::Stanza>)> >::operator()(boost::shared_ptr<Swift::Stanza>) () from /lib64/libSwiften.so.3
#18 0x00007fdc8ebb0656 in Swift::ComponentSession::handleElement(boost::shared_ptr<Swift::ToplevelElement>) () from /lib64/libSwiften.so.3
#19 0x00007fdc8ebb183d in boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, Swift::ComponentSession, boost::shared_ptr<Swift::ToplevelElement> >, boost::_bi::list2<boost::_bi::value<boost::shared_ptr<Swift::ComponentSession> >, boost::arg<1> > >, void, boost::shared_ptr<Swift::ToplevelElement> >::invoke(boost::detail::function::function_buffer&, boost::shared_ptr<Swift::ToplevelElement>) () from /lib64/libSwiften.so.3
#20 0x00007fdc8f0d2b27 in operator() (a0=..., this=<optimized out>) at /usr/include/boost/function/function_template.hpp:767
#21 operator()<boost::signals::detail::connection_slot_pair> (slot=..., this=<optimized out>) at /usr/include/boost/signals/signal_template.hpp:119
#22 dereference (this=<optimized out>) at /usr/include/boost/signals/detail/slot_call_iterator.hpp:61
#23 dereference<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound1<void>::caller<boost::shared_ptr<Swift::ToplevelElement>, boost::function<void(boost::shared_ptr<Swift::ToplevelElement>)> >, boost::signals::detail::named_slot_map_iterator> > (f=...)
    at /usr/include/boost/iterator/iterator_facade.hpp:514
#24 operator* (this=<optimized out>) at /usr/include/boost/iterator/iterator_facade.hpp:639
#25 postfix_increment_proxy (x=..., this=<synthetic pointer>) at /usr/include/boost/iterator/iterator_facade.hpp:145
#26 operator++<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound1<void>::caller<boost::shared_ptr<Swift::ToplevelElement>, boost::function<void(boost::shared_ptr<Swift::ToplevelElement>)> >, boost::signals::detail::named_slot_map_iterator>, boost::signals::detail::unusable, boost::single_pass_traversal_tag, const boost::signals::detail::unusable&, long int> (i=...) at /usr/include/boost/iterator/iterator_facade.hpp:728
#27 operator()<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound1<void>::caller<boost::shared_ptr<Swift::ToplevelElement>, boost::function<void(boost::shared_ptr<Swift::ToplevelElement>)> >, boost::signals::detail::named_slot_map_iterator> > (this=<optimized out>, last=..., first=...)
    at /usr/include/boost/last_value.hpp:49
#28 boost::signal1<void, boost::shared_ptr<Swift::ToplevelElement>, boost::last_value<void>, int, std::less<int>, boost::function<void (boost::shared_ptr<Swift::ToplevelElement>)> >::operator()(boost::shared_ptr<Swift::ToplevelElement>) (this=<optimized out>, a1=...) at /usr/include/boost/signals/signal_template.hpp:354
#29 0x00007fdc8e931e4b in Swift::BasicSessionStream::handleElementReceived(boost::shared_ptr<Swift::ToplevelElement>) () from /lib64/libSwiften.so.3
#30 0x00007fdc8e9328ac in boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, Swift::BasicSessionStream, boost::shared_ptr<Swift::ToplevelElement> >, boost::_bi::list2<boost::_bi::value<Swift::BasicSessionStream*>, boost::arg<1> > >, void, boost::shared_ptr<Swift::ToplevelElement> >::invoke(boost::detail::function::function_buffer&, boost::shared_ptr<Swift::ToplevelElement>) () from /lib64/libSwiften.so.3
#31 0x00007fdc8f0d2b27 in operator() (a0=..., this=<optimized out>) at /usr/include/boost/function/function_template.hpp:767
---Type <return> to continue, or q <return> to quit---
#32 operator()<boost::signals::detail::connection_slot_pair> (slot=..., this=<optimized out>) at /usr/include/boost/signals/signal_template.hpp:119
#33 dereference (this=<optimized out>) at /usr/include/boost/signals/detail/slot_call_iterator.hpp:61
#34 dereference<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound1<void>::caller<boost::shared_ptr<Swift::ToplevelElement>, boost::function<void(boost::shared_ptr<Swift::ToplevelElement>)> >, boost::signals::detail::named_slot_map_iterator> > (f=...)
    at /usr/include/boost/iterator/iterator_facade.hpp:514
#35 operator* (this=<optimized out>) at /usr/include/boost/iterator/iterator_facade.hpp:639
#36 postfix_increment_proxy (x=..., this=<synthetic pointer>) at /usr/include/boost/iterator/iterator_facade.hpp:145
#37 operator++<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound1<void>::caller<boost::shared_ptr<Swift::ToplevelElement>, boost::function<void(boost::shared_ptr<Swift::ToplevelElement>)> >, boost::signals::detail::named_slot_map_iterator>, boost::signals::detail::unusable, boost::single_pass_traversal_tag, const boost::signals::detail::unusable&, long int> (i=...) at /usr/include/boost/iterator/iterator_facade.hpp:728
#38 operator()<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound1<void>::caller<boost::shared_ptr<Swift::ToplevelElement>, boost::function<void(boost::shared_ptr<Swift::ToplevelElement>)> >, boost::signals::detail::named_slot_map_iterator> > (this=<optimized out>, last=..., first=...)
    at /usr/include/boost/last_value.hpp:49
#39 boost::signal1<void, boost::shared_ptr<Swift::ToplevelElement>, boost::last_value<void>, int, std::less<int>, boost::function<void (boost::shared_ptr<Swift::ToplevelElement>)> >::operator()(boost::shared_ptr<Swift::ToplevelElement>) (this=<optimized out>, a1=...) at /usr/include/boost/signals/signal_template.hpp:354
#40 0x00007fdc8eb8b79b in Swift::XMPPLayer::handleElement(boost::shared_ptr<Swift::ToplevelElement>) () from /lib64/libSwiften.so.3
#41 0x00007fdc8ea980ca in Swift::XMPPParser::handleEndElement(std::string const&, std::string const&) () from /lib64/libSwiften.so.3
#42 0x00007fdc8ea9ca4b in Swift::handleEndElement(void*, char const*) () from /lib64/libSwiften.so.3
#43 0x00007fdc8c3db080 in doContent () from /lib64/libexpat.so.1
#44 0x00007fdc8c3db9de in contentProcessor () from /lib64/libexpat.so.1
#45 0x00007fdc8c3dda1f in XML_ParseBuffer () from /lib64/libexpat.so.1
#46 0x00007fdc8ea9c7eb in Swift::ExpatParser::parse(std::string const&) () from /lib64/libSwiften.so.3
#47 0x00007fdc8ea9822e in Swift::XMPPParser::parse(std::string const&) () from /lib64/libSwiften.so.3
#48 0x00007fdc8eb8b648 in Swift::XMPPLayer::handleDataRead(std::vector<unsigned char, Swift::SafeAllocator<unsigned char> > const&) () from /lib64/libSwiften.so.3
#49 0x00007fdc8eb876ec in boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, Swift::ConnectionLayer, boost::shared_ptr<std::vector<unsigned char, Swift::SafeAllocator<unsigned char> > > >, boost::_bi::list2<boost::_bi::value<Swift::ConnectionLayer*>, boost::arg<1> > >, void, boost::shared_ptr<std::vector<unsigned char, Swift::SafeAllocator<unsigned char> > > >::invoke(boost::detail::function::function_buffer&, boost::shared_ptr<std::vector<unsigned char, Swift::SafeAllocator<unsigned char> > >) () from /lib64/libSwiften.so.3
#50 0x00007fdc8eae1115 in boost::signal1<void, boost::shared_ptr<std::vector<unsigned char, Swift::SafeAllocator<unsigned char> > >, boost::last_value<void>, int, std::less<int>, boost::function<void (boost::shared_ptr<std::vector<unsigned char, Swift::SafeAllocator<unsigned char> > >)> >::operator()(boost::shared_ptr<std::vector<unsigned char, Swift::SafeAllocator<unsigned char> > >) () from /lib64/libSwiften.so.3
#51 0x00007fdc8eaeeb4a in boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<boost::_bi::unspecified, boost::reference_wrapper<boost::signal<void (boost::shared_ptr<std::vector<unsigned char, Swift::SafeAllocator<unsigned char> > >), boost::last_value<void>, int, std::less<int>, boost::function<void (boost::shared_ptr<std::vector<unsigned char, Swift::SafeAllocator<unsigned char> > >)> > >, boost::_bi::list1<boost::_bi::value<boost::shared_ptr<std::vector<unsigned char, Swift::SafeAllocator<unsigned char> > > > > >, void>::invoke(boost::detail::function::function_buffer&) () from /lib64/libSwiften.so.3
#52 0x00007fdc8e9f2305 in Swift::invokeCallback(Swift::Event const&) () from /lib64/libSwiften.so.3
#53 0x00007fdc8e9f0787 in Swift::EventLoop::handleEvent(Swift::Event const&) () from /lib64/libSwiften.so.3
#54 0x00007fdc8e9f30c3 in Swift::SimpleEventLoop::doRun(bool) () from /lib64/libSwiften.so.3
#55 0x000000000045de21 in run (this=0x7ffc0a1eae90) at /usr/include/Swiften/EventLoop/SimpleEventLoop.h:24
#56 mainloop () at /usr/src/debug/spectrum2/spectrum/src/main.cpp:280
#57 0x0000000000458837 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/spectrum2/spectrum/src/main.cpp:510
(gdb)

Debian repo signing key not on keyserver

Thanks for providing the jessie packages (c.f. #70)
The signing key E01FC4111AFDEA51 is not available on the keyservers, such that the import described here fails. Without the key, aptitude gives some nasty warnings prior to installing the packages.

Solution: Upload public key E01FC4111AFDEA51 to the keyservers.

Outdated dependencies

communi backend needs update to communi 3
core spectrum and swiften backend needs update to swiften 3 (when released)

Persistent storage of offline messages

When a user opts to stay connected to the legacy network, store offline messages in the database so that they are not lost when spectrum2 is restarted.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.