SIL LSDev Linux Development

Language software for Linux and Mac OS X

Bibledit in OLPC emulation

At the Bibledit web site here go to Download, Installation procedure and find instructions for installing Bibledit on the OLPC. This was tested in the VMPlayer OLPC emulation (running OLPC build 625) and it was successful. We used the XO activity button at the Bibledit web site per the instructions. We did however do our own build of Bibledit so as to have the current version. The Bibledit build was done on a separate computer and then transfered to the OLPC emulation.

OLPC in an emulator

The B2 development machine we currently have will not run the latest OLPC builds so I have been attempting to get them running in an emulator. I decided to try all 3 emulators to see what issues there were with each one, the 3 being Qemu, VMPlayer and VirtualBox.

After doing the installs the launchers are put in various places. Qemu puts the launcher under Accessories, VMPlayer puts the launcher under Other and VirtualBox winds up in System Tools as Innotek VirtualBox. More detailed instructions are available for the emulations here http://wiki.laptop.org/go/Emulating_the_XO. The following is not meant to be instructions but is a short collection of tips for each emulator that were either hard to find at the above website or were not at this website.

Read the rest of this post…

C++ accessing C# COM objects through CCW in Mono on Linux

Recently we had a couple developers from other offices join us for LSDev Linux Brainstorming Week to learn from one another, talk about technology choices, and do some pair programming.

Recognizing that parts of our C++ code need to be able to access and work with C# objects through COM (Component Object Model), Eberhard and I set out to test this in Mono on Linux.

We were successful in making a C# application create a regular C# object and a C++ object (via libcom and RCW), pass the C# object to the C++ object, have the C++ object modify the C# object from native code, and then back in C# code observe that our C# object was indeed manipulated successfully from C++.

This capability to call back and forth between C# and C++ using COM is very important for porting several SIL programs to Linux, and we were concerned about whether it would even be possible with Mono. We found out several months ago that C# calling into C++ using libcom and Mono RCWs worked, and I was pleased to find that going the other direction, C++ calling C#, elegantly Just Works.

This new test works thanks to Jonathan Chambers‘s implementation of COM Callable Wrappers (CCWs) in Mono, which was announced here.

Eberhard and I largely reused existing libcom test code and just made some additions. The steps to perform this test and an explanation of what is happening can be found on our wiki here.

Graphite and OLPC

It may not have been obvious from the last two posts, but we are taking steps towards getting Graphite working on the OLPC. Read the rest of this post…