| | 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 | |