msn-pecan 0.0.17, the beginning of a new era


It has been a long time since the previous release, and there’s a reason for that, but first, on with the release.

This release would have pretty dull without Devid, since he pretty much did the two new features: custom emoticon sending support, and a new feature called for a lack of better name ‘independent personal status messages’.

I’ll try to explain ‘independent psm’. It’s related to issue 51 (Easier way to setup personal messages), now you set psm just like your ‘Friendly name’, since Pidgin lacks of a unified way to set nicknames, and psm, then both are now available as account operations.

This means the old way of setting psm would not work. Some people might not like this, so you can turn this feature off.

Ideally, something like Craig Harding’s personal bar should be implemented in Pidgin, but since they are stubborn as rocks you’ll better help Craig and use it as a plug-in.

Also, we have new translations: Danish, German, Hungarian, Norwegian Bokmal, Russian, Simplified Chinese, and Traditional Chinese. If your favorite language is not translated you can help at Launchpad’s site, it’s pretty easy!

Here’s the diffstat:
Makefile | 191 +++++++++++++++++++-------------------
cvr/pecan_slp_object.c | 71 ++++++++++++++
cvr/pecan_slp_object.h | 15 +++
cvr/slp.c | 26 +++++-
io/pecan_http_server.c | 2 +-
msn.c | 238 +++++++++++++++++++++++++++++++++++++++++++++---
pecan_oim.c | 2 +-
pecan_status.c | 42 +++++---
switchboard.c | 67 +++++++++++++-
9 files changed, 518 insertions(+), 136 deletions(-)

Download from the usual place at googe code.

Status of pidgin’s official plug-in

Now, if you remember Adium decided to switch to the new official msn plugin, how is that going?

Well, if you go to Pidgin’s site, you’ll see a whole lot of bug reports. There’s a bunch of ‘account not connecting’, ‘crashing since 2.5’, just as I expected. If you go Adium’s tracker, you’ll see something similar.

Of course, msn-pecan also has some crash issues, but those have been identified as issues with buddy icons, if you disable them (which you can), then it works perfectly fine. On the other hand there are no connection issues.

So yeah, the official plug-in has MSNP15 support (which give it absolutely no extra features compared to msn-pecan btw) but some people aren’t being able to connect! Focus on the essential features, then think about the fancy ones, that’s what msn-pecan does.

Kopete’s libmsn and the future

So Tiago Salem Herrmann has managed to get his libmsn-2 into Kopete, congratulations!

I have been playing with a standalone libmsn-pecan, that other projects can use, not just Pidgin, so libmsn-2 seemed like a possible replacement, no need to re-invent the wheel, right? But unfortunately libmsn-2 is written in C++ and there are no C bindings.

So I thought on creating C bindings for libmsn-2, actually the same C API can be used for libmsn-pecan and libmsn-2.

So this is the plan:

msn-pecan plan

msn-pecan plan

I already have been working on a separate libmsn-pecan, that can be used by Telepathy, and Pidgin. But now there will be the extra option of using libmsn-2’s code instead of libmsn-pecan, but the plugins wouldn’t notice any difference, hence, libmsn-2’s code can be shared among Kopete, Pidgin, and Empathy.

There’s plenty of work to do before this can be sueful, but I already started it:

Who wants to join?


25 thoughts on “msn-pecan 0.0.17, the beginning of a new era

  1. Hi Felipe,

    This project seems to be very interesting.
    I really like the idea of providing “connectors” for many applications to the lower level.

    But libmsn already has native MSNp15 support and if I understand correctly (looking at msn-pecan code) libmsn supports more features.

    Unfortunately msn-pecan uses MSNp12, and it would eventually be a blocker to add new features in the future. (like sharing folders)

    Would’t it be better to make purple-msn and telepathy-msn use libmsn directly instead of creating a new layer? I believe this way we can decrease the complexity. What do you think?

    I know that there is no C binding for libmsn yet, but I think this is a minor problem to solve.

    So my idea is to unify the protocol layer by using only one library.

    If you are interested in working together to create these “plugins” for the lower level by using libmsn, please contact-me.

    Thanks and keep up with the good work.

  2. tiagosh: yeah, exactly, in order to provide libpurple and telepathy plug-ins it’s easier to create C bindings for libmsn.

    Now, the question is: how will that C API look like?

    libmsn-pecan’s API is still not defined, neither is libmsn’s C API, eventually they will be, wouldn’t it make sense to have a similar API?

    Actually, why can’t both libmsn and libmsn-pecan share the exact same C API? They would be different implementations of the same API.

    Now, things are much more complicated than that. But for starters I think we should work together in creating C bindings for libmsn.

    I will continue working with libmsn-pecan, but the more collaboration with libmsn, the better. Ideally there should be only one, I agree, but it’s not always possible to reconcile different approaches, and there’s nothing wrong with having two solutions. What we can do is share as much as possible, and hopefully that sharing will reach 100%.

    I’ll write a different post with my view of the whole picture could look like.

  3. Pingback: libmsn-api plan « Felipe Contreras

  4. Hi,
    with msn-pecan 0.0.17 musictracker no longer works.
    It’s somehow related to the ‘new’ personal message stuff?

  5. Rebolo: that’s right.

    You can disable it in the account options: ‘Use independent personal message’.

    That libpurple API should be changed, but we can’t do that.

  6. Hi Felipe, great realise. I was really looking foward to the independent statues changer. So thanks.
    One question, hows the direct transfers thing going?

  7. That’s odd. I compiled the new pecan in Ubuntu and it seemed to work fine, but in Windows the custom smiley support doesn’t seem to work?

  8. El Fede: thank Devid for the independent pms 🙂
    I haven’t worked on the direct transfers, I’m trying to decide what should have higher priority.

    Brian: Ah, I probably need to update the libpurple I’m using to cross-compile to Windows. That’s a tedious process.

    I’ll be glad if somebody takes the responsibility of compiling for win 32 🙂

  9. Is there a tutorial somewhere on how to setup the proper Windows compiling environment for Pecan? I assume it’s through cygwin, but that means I also need to compile libpurple, and probably a lot of other stuff. >_> Unless I can just have the Ubuntu version generate the DLL?

  10. Brian: Nope, I thought on creating one but I haven’t had time.

    I cross-compile from my Fedora laptop using mingw32. Is there a version for Ubuntu? Otherwise I guess you could try on Windows.

    If you get mingw32 either on Ubuntu or Windows I can tell you to compile it.

  11. Well I must say that pidgin’s msn has work great for me on all my computers. And since the last release personnal message stick through status change.

    I’m just dying for direct file transfert which I understand will not be implemented soon.

  12. Brian: all right! well, the only thing you need to do is cross-compile glib and gtk+, I’ll write a guide for that, but it would be nice if you can give it a try already.

    LC: good, unfortunately that’s not the case for a lot of people.

    I’m still not sure about the priorities, maybe I’ll work direct connection next.

  13. I can’t find what’s up, I decided to look back at compiling this after some weeks, and I still can’t get anything done. glib won’t compile because of gettext. However, I see that there IS a libintl inside the includes folder, and supposedly by declaring the prefix=/opt/gtk it will at that includes folder during compilation but…it doesn’t? Any idea on this?

  14. Never mind. I fixed something in a script to point to the right direction. All that’s left is compiling pixman since Cairo needs it. It seems to be a similar problem, I have the includes installed properly (oddly enough, the make install errored out though at the end) but cairo won’t see it. Once I get this, I think I can compile gtk+, then libpurple. -_-

  15. Hey Brian, I am hugely interested in this as well
    since the home pc is linux but i have to work in windows at work and i like having my settings/ history trasferable from one another.
    If you want/would like any help from me on getting this compiled or even just beta testing i am game.

  16. Well, I figured out the Cairo thing as well. I now have GTK+ cross-compiled. 😀 If *anyone* can tell me how to compile libpurple, it’d be most helpful. (Of course, I will eventually figure out one day, but I want to update my Pecan fast! X-D) It seems I have to use the Pidgin source for libpurple? Right now intltools is bothering me, even though I cross-compiled that as well. >_>

  17. I have. I successfully compiled Pidgin in a Windows virtual machine, but putting the msn-pecan folder in that Cygwin home, pecan can’t find the libpurple library. >_> I wish there was a simple way to just grab the libpurple by iteself.

    Under linux I can’t get past this part in ./configure:

    checking for inet_aton… no
    checking for inet_aton in -lresolv… no
    configure: error: inet_aton not found

    And if I use their makefile -f thing, all it does shoot a million errors and stop. Unfortunately, it spits so many errors I can’t see what it says at the beginning. X-D Is there a way to scroll up a terminal? Outputting to a text file doesn’t show the errors either…

  18. Are you following Pidgin’s guide?

    In any case, here is not a good place to discuss this, the msn-pecan mailing list would be much better. You could even CC Pidgin’s mailing list, they probably can help you too 🙂

  19. All you have to do to solve the problems of Pidgin is to download Miranda IM.

    End of problem.

  20. Jonathan: Miranda IM is only for Windows, and it’s not modular enough. I care only for the code, if you extract the MSN code and create an Empathy CM I would be happy to try it.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s