Thursday, August 31, 2006

gettext

While compiling gettext for Zeta I found that the headers for libexpat (that is included in Zeta) where missing. Those files are expat.h and expat_external.h. So I downloaded a recent expat library and placed the headers in the include directory. This allowed me to fully compile gettext.

Testing the library with make check was a success.

The code for gettext for Zeta can be found on BeOSMaxFiles.org

Expat 2.0 library I downloaded for the headers is here.

libxml2

Trying to compile libxml2 on Zeta I have found that two additional libraries need to be included in the makefiles: libnet and libbsd. The first one contains functions such as closesocket and gethostname and the second one glob and globfree. These libraries aren't part of R5, so they should not be needed there.

After succesful compilation, running the tests is also a success.

Trial and Error....

I have been involved with BeOS/Zeta for several years now, ever since I tried BeOS 5 Personal Edition. However only recently I started programming on this OS and found it to be a great exercise for the mind.

Porting of a fiew programs and games and helping with the development of yab has helped me understand how BeOS Api works.

During my adventures with porting, I have found out that most problems can be overcome by simply changing a few lines of code or updating old system libraries with newer versions (provided they are opensourced).

A simple example is that Gcc 2.93 used by BeOS/Zeta cannot have a new variable declared after a call to a function, so all variable declerations are moved to the beginning of the function.

Another problem are missing defines from posix headers, but also those can be added, just by googling and finding out where they should go and what they declare.

Further yet, a missing implementation of flock function that I have found is used by newer autoconf can be overcome simply by editing sub lock in xfile.pm and just living it empty.

This blog will follow my porting efforts and will give you details on the changes I make and the applications/games I port.