| 16 | |
| 17 | = Current status = |
| 18 | == Monotone == |
| 19 | Current state of this work can be followed in the '''[http://developer.pidgin.im/viewmtn/branch/changes/im.pidgin.soc.2010.detachablepurple im.pidgin.soc.2010.detachablepurple]''' branch. You can check it out following [wiki:UsingPidginMonotone#GettingStartedwithPidginmonotone the monotone guide] and using my branch instead of im.pidgin.pidgin. |
| 20 | |
| 21 | == GSOC and after == |
| 22 | I didn't manage to complete this project before the end of the 2010 summer of code. But I definitely want this to work, be sure I'll carry out the project after the summer of code (contributions are welcome, though ;)). |
| 23 | |
| 24 | == End-user usage == |
| 25 | '''The project isn't usable yet.''' |
| 26 | But if you really want to see something and you know how to use a command line, you can play with what's available: |
| 27 | |
| 28 | 1. Follow [wiki:GSoC2010/DetachableLibpurple#Monotone this] to get the source. |
| 29 | |
| 30 | 2. Type {{{./autogen.sh --enable-dbus && make}}} to compile the detachable branch. Note that you shouldn't type make install because you probably have an existing pidgin installation. |
| 31 | |
| 32 | 3. Run the daemon typing {{{./libpurple/purpled/purpled}}}. |
| 33 | |
| 34 | 4. On the same host as the daemon, run pidgin typing {{{./libpurple/pidgin/pidgin -r -m}}} |
| 35 | |
| 36 | 5. Pidgin should says that no accounts are activated. Activate one if you want. |
| 37 | |
| 38 | 6. Run as many other pidgin sessions as you want repeating step !#4. |
| 39 | |
| 40 | Now you can try to manipulate the ''Accounts'' window of all the running pidgins, and see that they are syncronized. Awsome, isn't it? |
| 41 | |
| 42 | == Applications that uses libpurple == |
| 43 | To make your fancy libpurple-based GUI to work in the so-called detachable mode, juste add the following code before the {{{purple_core_init()}}} call. |
| 44 | {{{ |
| 45 | purple_core_set_running_mode(PURPLE_RUN_REMOTE_MODE); |
| 46 | if (!purple_core_is_remote_mode()) { |
| 47 | /* Setting remote mode failed and an error |
| 48 | * message were printed on stdout. */ |
| 49 | /* Handle this as you can... */ |
| 50 | } |
| 51 | }}} |
| 52 | |
| 53 | Then use the libpurple API normally. Your libpurple should contact the local dbus server and get synchronised with the purpled daemon. |
| 54 | |