README - Freenet 0.3.9

IMPORTANT WARNING
-----------------

This is a beta release of the Freenet code.  This means that while it
will work most of the time, it probably won't work all of the time.  
See the section "reporting bugs" below for more information.

During this beta period, it is quite important that you keep your copy
of Freenet up-to-date, as otherwise bugs in old versions may impact
performance for everyone using the Freenet network.  Please consider
subscribing to the moderated, low-traffic announcements list at
<http://www.freenetproject.org/index.php?page=lists> for notification
of new release, or check regularly on the website,
<http://www.freenetproject.org/>.


SYSTEM REQUIREMENTS
-------------------

This release should run on any operating system that has Java version 1.1
or higher.  The following Java implementations should work:

  * Any Sun JRE (Java Runtime Environment) or JDK (also known by these
    names: Java SDK, J2SE), version 1.1 or higher.
 
  * Any port of Sun Java to another platform.

Still being worked on:

  * Kaffe

Memory requirements are modest (for Java).  You will need at least a few
hundred megabytes of disk storage for Freenet data storage.


BINARY INSTALLATION
-------------------

On all systems, first ensure that java is installed, and the Java bin
directories have been added to your PATH.  To check this, just type

  java -version

and java should report its version.


For Linux and BSD, download the freenet.tgz distribution, go into the
directory where you want to install it, and type this

  tar xvfz ../path/to/freenet.tgz

Note:  Internet Explorer seems to want to rename this file to '.tar'.
You will need to rename it back to '.tgz' after downloading.


For other Unixes (Solaris, AIX, ...), you will need the 'gunzip' utility.
On these system, type this:

  cp ../path/to/freenet.tgz
  gunzip freenet.tgz
  tar xvf freenet.tar
  rm freenet.tar


On Windows, you need to download the freenet.zip file and unpack it with Winzip in a 
directory of your choice. You can use the 'jar' utility that comes with Java as well
to unpack the archive.


CONFIGURATION
-------------

For Unix/Linux:

* It is recommended to run:
  java [-cp freenet.jar] Freenet.scripts.Setup .freenetrc
  before the first use of Freenet to configure the node to run on a random port. You
  will have to use the client option -serverAddress 127.0.0.1:<port> if
  you run on a random port or you can set the environment variable
  FREENET to this value.

*If you want to run FProxy automatically with the node, you need to edit .fproxyrc to have
  serverAddress= point to "localhost:<yourNodePort>". 

*Edit the .freenetrc file to change any settings that need changing.
  In many cases, no change will be necessary.


For Windows:

* You have to modify FLaunch.ini to have the entry javaexec= to point to the full path of 
  your java runtime binary (jview/java.exe) if it is not in your standard search path.
  Javaw= has to point to a javaw.exe path as well.
  It is strongly recommended to run "cfgnode.exe" before the first use of Freenet to configure 
  Freenet. You'll need to modify FLaunch.ini afterwards again to use the right Freenet port
  by modifying -serverAddress 127.0.0.1:<YourPortNumber>
  at the end of the entries finsert, frequest and fproxy to the right port number.

*If you want to run FProxy automatically with the node, you need to edit .fproxyrc to have
  serverAddress= point to "localhost:<yourNodePort>". 

*Use "Configure" in the node menu to change your settings afterwords.


USAGE
-----

For Unix/Linux:

* Type 'freenet_server [options]' to start the server, or 'freenet_server
  -help' for usage information.  Type 'freenet_insert' or
  'freenet_request' to get usage information for the client.


For Windows/DOS:

* Type 'fserve' to start the server, or 'fserve -help' for usage information. You will 
  get an empty DOS box, which means the node is running successfully then.
  Type 'finsert' or 'frequest' in a DOS box to get usage information for the client.

* Check freenet.log for any error messages once the server is running.


KEY INDEX
---------

Because searching is not yet implemented, or even designed, there are
key index servers where you can register keys that exist on Freenet.
The automatic registration of keys on key index servers is no longer
supported in 0.3.

If you would like to run a key index, a perl cgi script is availble in
contrib/keyindex. A list of known public key index servers is available at
http://uts.cc.utexas.edu/~blanu/keyindex.html.


SOURCE DISTRIBUTION
-------------------

To build the software, first get a current checkout of the code base. On
the Freenet website 'cvs snapshots' are provided, just download and
extract the newest one and you should be set. Ofcourse you can also
checkout the cvs tree manually.

For Unix/Linux:

  Go into the Freenet/scripts directory and type make.  Note that GNU make
  is required. (It is standard on Linux, but not on most other Unixes).

  Type ./install.sh to install Freenet onto your system.  Note that
  installation via this method will result in Freenet being installed in
  a different way to the simpler binary installation method.

For Windows/DOS:

  Go into the Freenet\scripts directory and type "build".  Type "install"
  to install Freenet.


The GUI client program is currently unfinished.  Under Unix, you can
build and execute it like this:

  cd Freenet/scripts
  make gui
  cd ../..
  java Freenet.client.gui.GUI


NOTES ON USING KAFFE
--------------------

Freenet requires Kaffe to be built with the gmp (GNU multiple precision)
library.  If you build Kaffe from source, check that the 'configure'
script correctly detects your gmp library before issuing 'make'.  You
need to see both of these lines of output:

  checking for mpz_get_d in -lgmp... yes
  checking for gmp.h... yes

Kaffe-1.0.6's configure did not correctly detect libgmp3 and needed to be
tweaked slightly (mpz_get_d -> __gmpz_get_d in several places).

The compiler used is 'kjc' which you can download from http://www.dms.at/

There is also a bug in Kaffe-1.0.6's BigInteger library that causes problems.
Patching Kaffe with the following patch will fix it:

--- kaffe/libraries/clib/math/BigInteger.c      Fri Jul 21 17:41:26 2000
+++ kaffe-1.0.6/libraries/clib/math/BigInteger.c        Sun Sep 24 15:09:19 2000
@@ -508,7 +508,7 @@
 
        src = (mpz_srcptr)(*env)->GetObjectField(env, s, number);
 
-       return ((jint)mpz_get_si(src));
+       return ((jint)mpz_get_ui(src));
 }
 
 jint


FOR MORE INFORMATION
--------------------

Website:        <http://www.freenetproject.org/>.
FAQ:            <http://www.freenetproject.org/index.php?page=faq>.
Mailing lists:  <http://www.freenetproject.org/index.php?page=lists>.
Please read the FAQ before posting any questions to the mailing lists.


REPORTING BUGS
--------------

Feedback from users is an essential part of the open source model of
software development.  If you would like to report a bug, send a mail to
<devl@freenetproject.org>.  If you are having trouble installing or
using Freenet, please join the support mailing list (see the mailing
lists page on the website).
