I'm currently working on a port of Freeciv to QPE (Qtopia or OPIE), based on Rob Fisher's Zaurus Freeciv.
In its current state, the client isn't even usable, but I'm putting it here as a proof of concept of some kind. I'll be putting updates as the work progresses.
(I've also adapted Rob Fisher's original work to 1.14.1, and I'm keeping it around for the moment.)
If you want to try builing it, here's the list of what you will need.
You'll need to get the latest Freeciv source, either from a CVS snapshot or by using CVS directly. These patches might not apply correctly to the current 2.0 beta releases.
Next, apply the following patches, which are required to compile the Freeciv headers with C++. These patches have been submitted upstream, so it's possible they've already been applied in CVS. Check the bug reports for more information.
(These patches should be applied with the -p0 option.)
You should also apply the following patch if you intend to cross-compile the Freeciv server for OpenZaurus 3.5.1 or later (which is compiled with soft-float emulation) using development libraries that were not compiled with soft-float. The patch is harmless otherwise, so you can always apply it:
(This patch should also be applied with the -p0 option.)
The source for the QPE client currently comes as two patch files:
(These patches should be applied with the -p1 option.)
Install the Qt/Embedded development kit, version 2.3 or later (no testing has been done with 4.x yet). If you are installing version 2.x, you will also need the user interface compiler (uic) from Qt 3.x or later.
Remember to match the version of the SDK with the version of libqte that is installed. For example, most Zaurii come with libqte2.
Debian users can install the libqte2-dev-arm-cross package from my arm-cross repository, as well as the qt2-dev-tools and qt3-dev-tools packages.
Build and install qvfb according to Trolltech's instructions.
Debian users can install the libqte2-dev or libqte-mt3-dev
package, along with the qt3-dev-tools-embedded and qte-fonts
packages. (If compiling against Qt/E 3.x, you'll need to run
ln -s ../share/qte3/lib/fonts/ /usr/lib/fonts.)
It's also possible to compile this client as a regular Qt application, although this is not recommended. (Not only will the layout be radically different from what it would look like on a PDA, but you can't even acknowledge certain dialogs for lack of an OK button.)
Debian users can install the libqt3-dev and libqt3-compat-headers packages.
Install the QPE development files, either from Qtopia or from OPIE.
Debian users can get the libqpe-fb-dev or libqpe-dev-arm-cross package.
(It is actually possible to compile with Qt/Embedded and without QPE -- the same warning as above applies here as well.)
You can now run ./autogen.sh, followed by whatever arguments
you would pass to configure. The qpe client is now
available, and you can use --with-qt-prefix to specify the
location of your Qt/Embedded tree, as well as the --with-qt-uic
and --with-qt-moc to specify the location of these tools. With
any luck, the default values will be sufficient.
If, as outlined above, you are cross-compiling and running afoul of the
soft-float issue, add the --enable-soft-float option.
Here's a possible invocation for a Zaurus client:
./autogen.sh \ --build i386-linux --host arm-linux \ --disable-server --enable-client=qpe \ --with-qt-prefix=/usr/arm-linux/share/qte2 \ --with-qt-uic=/usr/bin/uic-qt3 \ --with-qt-moc=/usr/bin/moc-qt2 \ --enable-soft-float