Development

Compiling C++ applications for mipsel platform

In the past, I usually posted about my success of doing something but not this post. I have been encountering big problem that is not solved yet. It is more than 7 days from the beginning. Generally, I will leave tabs relating to my current interesting in Firefox until all problems are solved. Then I will post what I did here or somewhere else. In my opinion, 7 days are too long for such a problem. I should suspend this topic for next chance. So I will post everything involved to this topic here as the checkpoint.

The problem is about running a C++ applications on mipsel platform. In particular, the applications are all examples of libtorrent and the mipsel platform is Asus WL-500g Premium. libtorrent is written in C++. That is not exactly the cause of this problem. The real problem is it relies on Boost library and this library uses many C++ features that are not available in uClibc++.

Gaim 2.0.0 Beta 6 for Ubuntu Edgy Eft: The second chapter

According to my previous post, my package was incorrectly assigned version number as well as missing gstreamer. As a result, you will never see ALSA or ESD in sound options. I don't know why but it was all my fault since I have never unmuted my sound for so long (7 months). In addition, upgrading to official version may not go smooth as expect since its version was 2.0.0+beta6-1ubuntu0.1 which is absolutely not comply to the standard. In fact, it should be 2.0.0+beta6-0ubuntu0.1. So I post this one to apologize and fix it.

Gaim 2.0.0 Beta 6 for Ubuntu Edgy Eft: Almost perfect

Gaim 2.0.0 Beta 6 has just been released officially yesterday. According to the release note:

Sean: Barring any seriously major new issues, we expect this to be the final beta release before 2.0.0. This has a bunch of cool UI changes, some Google Talk features, a bunch new plugins, and other goodness.

Nathan: Beta6 rocks. That is all.

Gary: Long time no news. My silence will end soon ;)

Evan: My first news! I knocked out a nice collection of crashes, thanks in part to my ever-patient Adium beta testers. Gaim 2.0.0 is going to be delicious. :)

The only thing noticeable is UI changes where the avatar icon in Buddy List is scaled down. Anyway, there are so many bug fixes included in this beta. Another ones are Google Talk features. In the past, there is no special cases to support extensions introduced in Google Talk. Now, some extensions are implemented. In fact, it just supports . Good start though.

Adding ceilf() to libm in uClibc for OpenWrt

OpenWrt is an embedded linux for mipsel architecture which could be flashed on recent network devices, e.g., ADSL routers and home appliances. The most popular device is WRT54 series by LinkSys and the another series from Asus called WL-500g. This linux distribution is compiled by cross compiler set called toolchain. Actually, it is a fork of that with uClibc. By default, the pre-built SDK for OpenWrt comes with a small set of uClibc to maximize free space especially lots of math library cutted off, e.g., ceilf(). It is not usual case that you would like to run application called ceilf() in such a router but I would like to do that. Below is what I did.

Patching GnuDIP 2.3.5 for IPv6

GnuDIP 2.3.5 is designed for IPv4 and it does not support IPv6 interface on the server which run inetd. Below is my patch to make it work with IPv6 interface.

Flexible BitTorrent Client for Embedded Devices

Today, I and my colleages were thinking about embedding BTQueue into a kind of Linux-based router. Well, it is not easy to do so because of the nature of Python interpreter and its slogan.

Battery included!

I found Python for OpenWRT. It looks very promising and amazing by its size about 20 MB. In short, it is only usable on any routers with big flash memory or with USB for external storage. Unfortunately, these routers are not available in Thailand. So I suppose to have an embedable version of BTQueue. How to do that? The easiest solution is to slim down Python. I found Tiny Python. Anyway, it is just for MS Windows platform. So I looked for another solution not limited to just Python. Lua might be a good candidate here as a glue to ctorrent or libtorrent. The full set of Lua is about 100 KB.