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.