e42.uk Circle Device

 

Quick Reference

Compiling FMS from Source

A while ago I got interested in the Freenet project, I still read and post from time to time on the forums but to use the active Freenet Messaging System (FMS) you must complie FMS which is written in C++ and uses the poco library.

So, download Poco, extract it and compile it. Download and compile FreeImage (if you want the new captchas). FreeImage is available at http://freeimage.sourceforge.net/download.html. Once you have compiled all the libraries execute cmake like this (change the paths to the libraries and header files as required).

These instructions are to compile a statically linked FMS and should work on x86 (32 bit), x86_64 (amd64) and arm.

The commands below below assumes that you have a directory (call it fms) and in that directory you have the POCODIR directory, the FreeImage directory and one with FMS itself:

fms/poco-1.9.0
fms/FreeImage
fms/fms-src-0.3.80

Building FreeImage is easy, simply run make.

Building POCO should probably be done differently but I downloaded the "basic edition" and ran the following commands in the poco source root directory:

~ $ ./configure
Configured for Linux
~ $ cmake -D POCO_STATIC=YES .
... cmake output ...
~ $ make
... make output ...

If not, or you are reading this and versions have changed (very likely) please change them accordingly. POCODIR is the directory that POCO is in.

fms-src-0.3.80.zip is available on freenet but does not contain a directory structure, I recommend you make a new directory fms-src-0.3.80 then extract the archive in that directory.

export POCODIR=../poco-1.9.0
cmake -D I_HAVE_READ_THE_README=ON \
  -D POCO_STATIC=ON \
  -D POCO_LIB_DIR=$POCODIR/lib \
  -D POCO_BASE_DIR=$POCODIR/ \
  -D ALTERNATE_CAPTCHA=ON \
  -D AUDIO_CAPTCHA=ON \
  -D FREEIMAGE_LIBRARY=../FreeImage/libfreeimage.a \
  -D FREEIMAGE_INCLUDE_PATH=../FreeImage/Dist/ .

Running cmake will display a number of warnings and a perl script execution failure... don't worry, these are not important.

Now run make and the code should compile. Since this is a static binary it will be quite large but can be stripped for general usage.

~ $ strip fms

Finally, execute ./fms. If FMS is executing on the same system as fred it will "just work" otherwise see the configuration pages in the web interface.

Yay, you are running your own compiled version of FMS ;-) please chat with me on the forums.

Quick Links: Techie Stuff | General | Personal | Quick Reference