RetroShare/libretroshare/src
drbob 6435357c07 Commit of the new UDP Connection methods and
the rewrite of the retroshare core networking stack.

This check-in commits the changes to the pqi code, 
and provides the majority of the improvements.

(1) Introduced new interfaces for DHT and UPnP abstraction: p3dhtmgr.h, p3upnpmgr.h
(2) Introduces abstraction for Authentication: p3authmgr.h
(3) New Connection Manager to coordinate networking code: p3connmgr.h
(4) New Configuration Manager: p3cfgmgr.h

This library has been significantly modified to support DHT synced connections
to enable connections between Firewalled Friends. The connection code has
been rewritten within a new framework, which should make extensions easier to code.

Also removed significant amount of old code relating to Tunnels, Channels etc.
This will be recycled later as higher level services that should not be
part of the core networking library.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@306 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2008-01-25 06:36:40 +00:00
..
dbase - Removed old file indexing code. 2007-12-12 01:08:31 +00:00
dht Created V0.3.x branch and moved the head into the trunk directory. 2007-11-15 03:18:48 +00:00
fltkgui Created V0.3.x branch and moved the head into the trunk directory. 2007-11-15 03:18:48 +00:00
pqi Commit of the new UDP Connection methods and 2008-01-25 06:36:40 +00:00
rsiface * Addition of the basic Games Launcher - used to organise networked games with peers. 2008-01-21 09:22:42 +00:00
rsserver * Addition of the basic Games Launcher - used to organise networked games with peers. 2008-01-21 09:22:42 +00:00
scripts Changes to configuration scripts to remove CHANNELS/PROXY compile options. 2007-12-12 00:58:28 +00:00
serialiser Added missing destructor functions. 2008-01-21 10:40:49 +00:00
server Modifications to bring in the new serialiser: 2007-12-12 01:39:09 +00:00
services * Addition of the basic Games Launcher - used to organise networked games with peers. 2008-01-21 09:22:42 +00:00
tcponudp The first commit of the new UDP Connection methods and 2008-01-25 06:11:39 +00:00
upnp Created V0.3.x branch and moved the head into the trunk directory. 2007-11-15 03:18:48 +00:00
util Addition of a util platform independent networking header file. 2007-12-12 00:56:46 +00:00
BUGS Created V0.3.x branch and moved the head into the trunk directory. 2007-11-15 03:18:48 +00:00
FAQ Created V0.3.x branch and moved the head into the trunk directory. 2007-11-15 03:18:48 +00:00
licence Created V0.3.x branch and moved the head into the trunk directory. 2007-11-15 03:18:48 +00:00
make.opt Final changes to add the new serialiser. 2007-12-12 01:43:17 +00:00
Makefile Final changes to add the new serialiser. 2007-12-12 01:43:17 +00:00
Readme.txt Created V0.3.x branch and moved the head into the trunk directory. 2007-11-15 03:18:48 +00:00
Readme.txt-V0.2.1 Created V0.3.x branch and moved the head into the trunk directory. 2007-11-15 03:18:48 +00:00
TODO Created V0.3.x branch and moved the head into the trunk directory. 2007-11-15 03:18:48 +00:00

Compiling + Running RetroShare (V0.3.0)
-------------------------------------------------------------

Quick Requirements:
---------------------------------------------
Libraries/Tools:
	C/C++ Compiler. (standard on Linux/cygwin)
	OpenSSL-0.9.7g-xpgp
	KadC Dht library
	Qt-4.2 development libraries.

RetroShare Source Code: ( from sf.net/projects/retroshare)
	Qt-GUI-XXX.tgz
	retroshare-src-v0.3.XXX.tgz 

Windows Requirements:
	Cygwin (Windows Only)
	Pthreads (Windows Only)
	Zlib (Windows Only)
---------------------------------------------

OpenSSL-0.9.7g-xpgp is available at:
http://www.lunamutt.com/retroshare/openssl-0.9.7g-xpgp-0.1c.tgz

KadC (latest) is available from sourceforge.net

Download/Compile as per instructions...

---------------------------------------------

Compiling Linux
---------------------------------------------

(1) compile openSSL-0.9.7g-xpgp.

(2) compile KadC. (and correct the library)

(4) Modify ./make.opts 
	(4a) modify the Makefile so that:  OS=Linux or OS=Win
	(4c) Define SSL_DIR to point to openSSL-0.9.7g-xpgp.
	(4c) Define KADC_DIR to point to KadC

(5) type: make
	This builds ./lib/libretroshare.a,
	and the various test programs.

	There is server-only (no GUI) executable
	compiled in ./rsiface/retroshare-nogui, 
	you can run this to check that its working.

---------------------------------------------

Compiling Linux (Alternative Instructions from Bharath)
---------------------------------------------
here's how to compiled retroshare on ubuntu linux: 
 
 compile openssl: 
 1. Get the patched version of openssl (openssl-0.9.7g-xpgp, from http://www.lunamutt.com) 
 2. run: 
 ./config  
 make 
 make test 
  
 compile KadC: 
 1. Get KadC library from http://kadc.sourceforge.net/  
 2. run: 
 make 
   
 install packages needed for retroshare compile:  
 sudo apt-get install libxft-dev 
 sudo apt-get install libXinerama-dev 
    
 complile retroshare: 
 1. set directories in make.opt: 
 RS_DIR=/home/dev/rs-v0.3.0-pr8/src  
 SSL_DIR=/home/dev/openssl-0.9.7g-xpgp-0.1c 
 KADC_DIR=/home/dev/KadC 
 2. comment out the directory declarations uncer Cygwin since that will override your directory declarations from 1. 
 3. change RSLIBS = -L$(LIBDIR) -lretroshare -L$(SSL_DIR) -lssl -lcrypto -lpthread -lKadC  
    to 
  RSLIBS = -L$(LIBDIR) -lretroshare -L$(SSL_DIR) -lssl -lcrypto -lpthread -L$(KADC_DIR) -lKadC 
 4. run: 
     make 
      
Hope this helps.

---------------------------------------------
Compiling the Qt GUI
_____________________________________________

(1) untar the Qt-GUI source package. run qmake, 

	tar -xvzf Qt-GUI-XXXX.tgz

	cd Qt-Gui-XXX/src/

	qmake-qt4 Retroshare.pro

(2) tweak the makefile: The default makefile
	doesn't have the links to the retroshare
	libraries. It should something like this:

RSLIBS  = -L/home/dev/prog/devel/rs-v0.3.0XXX/src/lib -lretroshare -lKadC
SSLLIBS = -L/home/dev/prog/devel/openssl-0.9.7g-xpgp -lssl -lcrypto
LIBS          = $(SUBLIBS)  $(RSLIBS) $(SSLLIBS)  -L/usr/lib -lQtXml -lQtGui -lQtNetwork -lQtCore -lpthread

	This should build you an executable:

	RetroShare.

------------------------------------------------
This has been compiled on the following platforms:
	(a) Debian Linux (stable/testing/unstable)
	(b) Suse Linux   (9.X/10.X)
	(c) WinXP

------------------------------------------------
WIN XP Compilation.
------------------------------------------------

This much harder, and more perilous than the
Linux compilation: It requires both the cygwin
and the mingw compilers...

Need:
	Cygwin development environment
	Qt4.2 opensource development kit + MinGw.
	source code for all libraries.

In Brief:
UNDER Cygwin:
	(1) Compile openssl-xpgp.
	(2) Compile pthreads.
	(3) Compile zlib.
	(4) Compile KadC. (there are some tweaks, 
		needed to the code)

	(5) Compile retroshare-v0.3.0

UNDER Mingw:
	(6) Compile the Qt-Gui.


Email me if you're having trouble:
	retroshare@lunamutt.com
---------------------------------------------