Freedom(R) Client for Linux version 2.0
=======================================

                RELEASE NOTES

Contents
--------
 Introduction .................... 1.0
   License ....................... 1.1
 Building ........................ 2.0
 Use ............................. 3.0
 Feedback ........................ 4.0


1.0 Introduction
----------------

Zero-Knowledge Systems is pleased to release the full source code to 
its Linux port of the Freedom client.  This package contains all of 
the source and instructions that you'll need to build the client.  

You should be aware that not all of the client's functionality is 
available for free; premium services such as pseudonymous Web browsing 
and pseudonymous email functionality require paid access to the 
Freedom Network.  See http://www.freedom.net/ for more information about
these premium services.


1.1 License
-----------

The client source code (with the exception of the kernel shim and our
Yarrow implementation) are licensed under the terms and conditions of
the Mozilla Public License (MPL) version 1.1. Details regarding the
MPL can be found in the accompanying LICENSE file and at 
http://www.mozilla.org/MPL/.  

The kernel shim and our implementation of Yarrow are licensed under 
the GNU General Public License and the BSD license, respectively. 
More information about these licenses are available on the individual 
project pages, linked from http://opensource.zeroknowledge.com 


2.0 Building
------------

Although we hope to make it easier, building the client is currently
not totally trivial.  Developers wishing to compile their own client
will need to have a recent gcc installed with the latest stdlib changes.
An RPM of our internal gcc build has been made available for your
convenience at http://opensource.zeroknowledge.com

Freedom is built upon Gnome's development platform and thus requires a
reasonably modern Gnome installation, including libglade.  If your
distribution does not include Gnome, or it is sufficiently outdated,
Helix Code (http://www.helixcode.com) provides a binary distribution
of Gnome which they support on a number of Unix platforms.

In addition, we require a gdk-pixbuf package compiled with
--without-modules, so that Freedom can be statically linked with 
gdk-pixbuf.  For your convenience, RPMs of this gdk-pixbuf 
configuration have also been provided at 
http://opensource.zeroknowledge.com

There are a number of environment variables that can affect how the 
Freedom client is built, but only five are of any real importance. 
The first three (ZK_ROOT, FREEDOM_HOME, ZK_PROJECT) are required for
building.

ZK_ROOT - The top level of the source tree. The directory that 
contains, among other things, the arch, bin, and freedom directories.
FREEDOM_HOME - The directory that contains the pixmaps/ and xml/
directories.  This should be set to
$ZK_ROOT/freedom/client/zkui/freedomclient/linux
ZK_PROJECT - Should always be set to `Client'.  It is case-sensitive.
ZK_CONFIG - What kind of build to do. Defaults to 'Release', can also 
be 'Debug'. This variable is case-sensitive.
ZK_NOSILENT - When true, display the full compile/link lines instead 
of hiding them.

If you are building on a Red Hat 6.2 or Mandrake 7.1 machine that 
isn't using the distribution's patched kernel, you'll need to modify 
the #if in line 431 of 
freedom/client/zkshim/linux/clientshim/src/zkshim_drv.c so that the 
two-argument version of that function is called.

Having done the above, the actual compilation is pretty 
straightforward:

   1. cd $ZK_ROOT
   2. make -f makefiles/Makefile.top libs exes


3.0 Use
-------

Once you've produced client binaries, you'll find them in the
arch/linux-2.2-ix86/Release/bin or arch/linux-2.2-ix86/Debug/bin directory,
depending on how you configured your build. The 'clientshim.o' binary is
the kernel module, and 'freedom' is the client itself.

Before you run Freedom for the first time, you'll need to create the
/dev/clientshim device with the following commands (as root):

	mknod /dev/clientshim c 10 194
	chmod 666 /dev/clientshim

Inserting the 'clientshim.o' module and running 'freedom' is all that's
required to start the client.  Don't forget to set the FREEDOM_HOME
environment variable, or the client probably won't start.


4.0 Feedback - Freedom source code
----------------------------------

Zero-Knowledge encourages users to provide feedback regarding the 
Freedom client's source code.  For feedback regarding the source code 
or Zero-Knowledge's open source activities, please contact 
source-questions@zeroknowledge.com.


4.1 Feedback - Freedom compiled software
----------------------------------------

Zero-Knowledge Systems provides technical support only for users running
binaries compiled by Zero-Knowledge running on supported platforms.
Users wishing to report problems or missing features must verify that
these problems exist in the official Zero-Knowledge binary.

If you wish to test the binaries compiled by Zero-Knowledge, please
visit our Freedom 2.0 download page http://www.freedom.net/download/index.html


4.2 Feedback - Security issues
------------------------------

Despite best efforts, Zero-Knowledge is aware that software will always
contain bugs.  If you have found what you believe to be a security- or
privacy-compromising bug in Freedom, we ask that you send this information
to security@zeroknowledge.com.  Zero-Knowledge believes in an open
discussion of these bugs, but we would appreciate the opportunity to
provide a fix in a timely fashion and disclose it as soon as we have
taken any measures which may be available to minimize the risk to users'
privacy.


Enjoy!

- The Zero-Knowledge Freedom Team
