- LRN's patch
[oweals/gnunet.git] / README
diff --git a/README b/README
index ce7393ba84fc2c376bdffe9b4e93195e51759fdf..7c66b6510615e20f543c126328f43ddee2fe7910 100644 (file)
--- a/README
+++ b/README
@@ -29,9 +29,10 @@ packages.  Hence please make sure to use  the versions listed below.
 These are the direct dependencies for running GNUnet:
 
 - libextractor  >= 0.6.1
 These are the direct dependencies for running GNUnet:
 
 - libextractor  >= 0.6.1
-- libmicrohttpd >= 0.9.2
+- libmicrohttpd >= 0.9.18
 - libgcrypt     >= 1.2
 - libcurl       >= 7.21.0
 - libgcrypt     >= 1.2
 - libcurl       >= 7.21.0
+- libunistring  >= 0.9.2
 - libltdl       >= 2.2 (part of GNU libtool)
 - sqlite        >= 3.0 (default database)
 - mysql         >= 5.1 (alternative to sqLite)
 - libltdl       >= 2.2 (part of GNU libtool)
 - sqlite        >= 3.0 (default database)
 - mysql         >= 5.1 (alternative to sqLite)
@@ -66,23 +67,38 @@ If you install from source, you need to install GNU libextractor first
 (download from http://www.gnu.org/software/libextractor/).  We also
 recommend installing GNU libmicrohttpd (download from
 http://www.gnu.org/software/libmicrohttpd/).  Then you can start the
 (download from http://www.gnu.org/software/libextractor/).  We also
 recommend installing GNU libmicrohttpd (download from
 http://www.gnu.org/software/libmicrohttpd/).  Then you can start the
-actual GNUnet compilation process with:
+actual GNUnet compilation and installation process with:
 
 
-$ ./configure --prefix=$HOME --with-extractor=$HOME
+$ export GNUNET_PREFIX=/usr/local # or other directory of your choice
+$ addgroup gnunetdns
+$ adduser gnunet gnunet
+$ ./configure --prefix=$GNUNET_PREFIX --with-extractor=$LE_PREFIX
 $ make
 # make install
 # sudo -u gnunet mkdir ~/.gnunet/ 
 # sudo -u gnunet touch ~/.gnunet/gnunet.conf
 # sudo -u gnunet gnunet-arm -s
 
 $ make
 # make install
 # sudo -u gnunet mkdir ~/.gnunet/ 
 # sudo -u gnunet touch ~/.gnunet/gnunet.conf
 # sudo -u gnunet gnunet-arm -s
 
-This will compile and install GNUnet to $HOME/bin/, $HOME/lib/ and
-$HOME/share/ and start the system with the default configuration.  It
-is recommended that you add a user "gnunet" to run "gnunet-arm".  You
-can then still run the end-user applications as another user.  If you
-create a user "gnunet", it is recommended that you edit the
-configuration file slightly so that data can be stored in
-"/var/lib/gnunet"; you may also want to use "/etc/gnunet.conf" for the
-location of the configuration file in this case.
+This will create the users and groups needed for running GNUnet
+securely and then compile and install GNUnet to $GNUNET_PREFIX/bin/,
+$GNUNET_PREFIX/lib/ and $GNUNET_PREFIX/share/ and start the system
+with the default configuration.  It is strongly recommended that you
+add a user "gnunet" to run "gnunet-arm".  You can then still run the
+end-user applications as another user.  
+
+If you create a system user "gnunet", it is recommended that you edit
+the configuration file slightly so that data can be stored in the
+system user home directory at "/var/lib/gnunet"; you may also want to
+use "/etc/gnunet.conf" for the location of the configuration file in
+this case.
+
+You can avoid running 'make install' as root if you run configure
+with the "--with-sudo=yes" option and have extensive sudo rights
+(can run "chmod +s" and "chown" via 'sudo').  If you run 'make install'
+as a normal user without sudo rights (or the configure option),
+certain binaries that require additional priviledges will not be
+installed properly (and autonomous NAT traversal, WLAN, DNS/GNS and 
+the VPN will then not work).
 
 Note that additional, per-user configuration files
 (~/.gnunet/gnunet.conf) need to be created by each user (for example,
 
 Note that additional, per-user configuration files
 (~/.gnunet/gnunet.conf) need to be created by each user (for example,
@@ -105,19 +121,19 @@ Configuration
 =============
 
 GNUnet uses two types of configuration files, one that specifies the
 =============
 
 GNUnet uses two types of configuration files, one that specifies the
-system-wide defaults (typically located in /usr/share/gnunet/defaults
-.conf) and a second one that overrides default values with
-user-specific preferences.  The user-specific configuration file
-should be located in "~/.gnunet/gnunet.conf" or its location can be
-specified by giving the "-c" option to the respective GNUnet
-application.
+system-wide defaults (typically located in
+$GNUNET_PREFIX/share/gnunet/config.d/) and a second one that overrides
+default values with user-specific preferences.  The user-specific
+configuration file should be located in "~/.gnunet/gnunet.conf" or its
+location can be specified by giving the "-c" option to the respective
+GNUnet application.
 
 The defaults that are shipped with the installation are usually ok,
 you may want to adjust the limitations (space consumption, bandwidth,
 etc.) though.  The configuration files are human-readable.  Note that
 you MUST create "~/.gnunet/gnunet.conf" explicitly before starting
 
 The defaults that are shipped with the installation are usually ok,
 you may want to adjust the limitations (space consumption, bandwidth,
 etc.) though.  The configuration files are human-readable.  Note that
 you MUST create "~/.gnunet/gnunet.conf" explicitly before starting
-GNUnet.  You can either copy "defaults.conf" or simply create an empty
-file.
+GNUnet.  You can either run gnunet-setup (available as part of the
+gnunet-gtk source package) or simply create an empty file.
 
 
 Usage
 
 
 Usage
@@ -160,9 +176,11 @@ together with a description.  To publish files on GNUnet, use the
 
 
 The GTK user interface is shipped separately.  After downloading and
 
 
 The GTK user interface is shipped separately.  After downloading and
-installing gnunet-gtk, you can invoke the GUI with:
+installing gnunet-gtk, you can invoke the setup tool and the 
+file-sharing GUI with:
 
 
-$ gnunet-gtk
+$ gnunet-setup
+$ gnunet-fs-gtk
 
 For further documentation, see our webpage.
 
 
 For further documentation, see our webpage.
 
@@ -190,10 +208,11 @@ $ make install
 $ export GNUNET_PREFIX=$SOMEWHERE
 $ make check
 
 $ export GNUNET_PREFIX=$SOMEWHERE
 $ make check
 
-If any testcases fail to pass on your system, run "contrib/report.sh"
-and report the output together with information about the failing
-testcase to the Mantis bugtracking system at
-https://gnunet.org/bugs/.
+Some of the testcases require python >= 2.6 and pexpect to be
+installed.  If any testcases fail to pass on your system, run 
+"contrib/report.sh" and report the output together with 
+information about the failing testcase to the Mantis bugtracking 
+system at https://gnunet.org/bugs/.
 
 
 Running http on port 80 and https on port 443
 
 
 Running http on port 80 and https on port 443
@@ -202,18 +221,18 @@ Running http on port 80 and https on port 443
 In order to hide GNUnet's HTTP/HTTPS traffic perfectly, you might
 consider running GNUnet's HTTP/HTTPS transport on port 80/443.
 However, we do not recommend running GNUnet as root.  Instead, forward
 In order to hide GNUnet's HTTP/HTTPS traffic perfectly, you might
 consider running GNUnet's HTTP/HTTPS transport on port 80/443.
 However, we do not recommend running GNUnet as root.  Instead, forward
-port 80 to say 8080 with this command (as root, in your startup
+port 80 to say 1080 with this command (as root, in your startup
 scripts):
 
 scripts):
 
-# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
+# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 1080
 
 or for HTTPS
 
 # iptables -t nat -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 4433
 
 
 or for HTTPS
 
 # iptables -t nat -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 4433
 
-Then set in the HTTP section of gnunet.conf the "ADVERTISED-PORT" to
-"80" and "PORT" to 8080 and similarly in the HTTPS section the
-"ADVERTISED-PORT" to "443" and "PORT" to 4433.
+Then set in the HTTP section of gnunet.conf the "ADVERTISED_PORT" to
+"80" and "PORT" to 1080 and similarly in the HTTPS section the
+"ADVERTISED_PORT" to "443" and "PORT" to 4433.
 
 You can do the same trick for the TCP and UDP transports if you want
 to map them to a priviledged port (from the point of view of the
 
 You can do the same trick for the TCP and UDP transports if you want
 to map them to a priviledged port (from the point of view of the