SIL LSDev Linux Development

Language software for Linux and Mac OS X

FieldWorks Beta 2 released

Earlier today we issued our first beta release of FieldWorks for Linux. Although this is the first beta for Linux, it’s actually numbered Beta 2 because it’s equivalent to the Beta 2 that has just been released for Windows. We did try to produce a Linux equivalent of the Windows Beta 1 but we encountered some crashing bugs when we integrated the latest changes from the Windows branch of the source code, and by the time we had fixed those, Beta 2 was almost ready. This is the first time that the Linux and Windows versions have come out together, and with the same version numbers. If we find it necessary to issue updates before Windows Beta 3, we will number them Beta 2.1 and so on. Hopefully this will make it much easier for users to know how the different releases match up on the different platforms.

The releases for the two platforms are built from the same source code—almost! The Windows and Linux development teams actually do their work on separate branches, just so they don’t get in each other’s way when a release is imminent, but we usually copy the changes back and forth between the branches a couple of times per week.

We believe this release is much more stable than anything we’ve released previously, and it also has more functionality. For example, it’s now possible to use the full range of data import and exchange possibilities, including opening project files copied from Windows, and opening FW6 backup files.

As always, instructions are on the wiki. Please continue to report bugs, and write comments here to let us know how things are working for you. There is a lot of interest in Linux in SIL right now, but questions are also being raised about whether the cost of doing Linux development continues to be justified. So please let your colleagues and associates know that you are using Linux, and explain how it’s meeting real needs in language development.

But what about Mac?

In the preceding posts, I’ve talked about Linux but not at all about Mac. What are our plans for Mac?

Read the rest of this post…

A release date for FieldWorks

Finally, after many years of development, and a lot of hard hoeing, we have committed to a release date for a beta-test version of FieldWorks on Linux. This will be simultaneous with a test version of the rearchitected FieldWorks on Windows, and will incorporate the same rearchitected code.

Read the rest of this post…

Linux-first development!

One of our long-standing goals has been that FieldWorks development could eventually be carried out on either platform, and target both platforms. Last month, the very first example of this started to happen.

Read the rest of this post…

Source code unification

We reached a significant milestone recently when we re-integrated all of the work we’ve done over the past several years to port FieldWorks to Linux. There’s now a single source tree, in a single version control system, that contains both the Windows and the Linux versions of FieldWorks.

Read the rest of this post…

Why Firebird? Why not a Different RDBMS?

David asked, “I’m curious to know why Firebird has been chosen as a database engine [for FieldWorks] out of the many other RDBMSs out there, such as MySQL.”

I get this question from time to time, especially when I go to our Computer Technical Conference (CTC), which comes around every two years.  It is a fair question, and since CTC is just a month away, I’m taking the opportunity to remember why we did what we did. I had to ask the people that made the decision, because I had a hard time remembering. It’s been a few years.

Read the rest of this post…

Status of WorldPad on Linux

Our team’s main focus has been to port the SIL FieldWorks suite of translation and linguistic programs from Windows to Linux.

We’ve ported the core C++ parts which are the foundation of all the FieldWorks applications. A big part of the remaining work is in C# to get Translation Editor and Language Explorer to build and run in Linux.

But tackling Translation Editor would be quite a big step and open up a lot of difficulties all at once. So first we’re working to port WorldPad. Although WorldPad won’t be as widely used as Translation Editor, our work on WorldPad is a stepping stone on the way to completing the Translation Editor because many pieces of WorldPad are shared by Translation Editor. And completing the Translation Editor will be easier if we first work on WorldPad.

Read the rest of this post…

Updated code repository to latest from Dallas

As much of our porting work has been dealing with Windowsisms in the lower levels of the FieldWorks code, which wasn’t expected to change a lot in the Dallas VCS, the code in our local VCS had grown quite out of date. Two and a half years out of date!

Since we’re now using areas of the code that have had a lot of changes during that time, there was an increasing need to update our local VCS to reflect the latest from Dallas.

First I migrated our VCS from CVS to SVN – a welcome change. (I can rename directories now!)

Then we merged in the new code from Dallas, resolved the conflicting files (only 93), and made things still compile in Linux.

After having approached this with apprehension, I was thankful that it was easier than I had anticipated and only took two and a half weeks.

And now we’re up to date!

A long-awaited breakthrough

Our porting work depends on having a link from C# to C++ using COM. This is a fundamental requirement, and without it we cannot proceed. Although we’ve had this working in small test programs for a long time, it would crash badly when we tried it with our application (WorldPad, part of FieldWorks). We were fairly sure it was something we were doing wrong, but could never pin it down. Well, now Tom and Brent have found the solution!

Read the rest of this post…

libcom 0.4.0 released

The libcom COM Support Library version 0.4.0 has been released. This is the first release of libcom. libcom is licensed under the LGPL.

libcom implements a subset of Microsoft COM (Component Object Model) and supports both C++ and C# (via Mono) COM clients and servers on Linux. libcom is similar to ole32.dll in Windows.

libcom can be downloaded from

Update: libcom now has its own web page at

« Previous Entries