mirror of
https://github.com/RetroShare/RetroShare.git
synced 2024-10-01 02:35:48 -04:00
update readme
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@789 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
d0ce88e986
commit
3c6f9eff60
@ -1,3 +1,13 @@
|
|||||||
|
README for RetroShare
|
||||||
|
===============================
|
||||||
|
|
||||||
|
RetroShare web site . . . . http://retroshare.sourceforge.net/
|
||||||
|
Documentation . . . . . . . http://retroshare.sourceforge.net/doc.html
|
||||||
|
Support . . . . . . . . . . http://retroshare.sourceforge.net/support.html
|
||||||
|
Forums . . . . . . . . . . http://retroshare.sourceforge.net/forum/
|
||||||
|
Wiki . . . . . . . . . . . http://retroshare.sourceforge.net/wiki/
|
||||||
|
The Developers site . . . . http://retroshare.sourceforge.net/developers.html
|
||||||
|
|
||||||
|
|
||||||
Compiling + Running RetroShare (V0.4.xxx)
|
Compiling + Running RetroShare (V0.4.xxx)
|
||||||
------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------
|
||||||
@ -7,6 +17,7 @@ Quick Requirements:
|
|||||||
Libraries/Tools:
|
Libraries/Tools:
|
||||||
C/C++ Compiler. (standard on Linux/cygwin)
|
C/C++ Compiler. (standard on Linux/cygwin)
|
||||||
OpenSSL-0.9.7g-xpgp
|
OpenSSL-0.9.7g-xpgp
|
||||||
|
miniupnpc
|
||||||
Qt-4.3 development libraries.
|
Qt-4.3 development libraries.
|
||||||
|
|
||||||
RetroShare Source Code: ( from sf.net/projects/retroshare)
|
RetroShare Source Code: ( from sf.net/projects/retroshare)
|
||||||
@ -22,71 +33,251 @@ Windows Requirements:
|
|||||||
Build Scripts are avaible on SVN for Debian and Ubuntu:
|
Build Scripts are avaible on SVN for Debian and Ubuntu:
|
||||||
http://retroshare.svn.sourceforge.net/viewvc/retroshare/trunk/build_scripts/
|
http://retroshare.svn.sourceforge.net/viewvc/retroshare/trunk/build_scripts/
|
||||||
|
|
||||||
|
|
||||||
OpenSSL-0.9.7g-xpgp is available at:
|
OpenSSL-0.9.7g-xpgp is available at:
|
||||||
http://www.lunamutt.com/retroshare/openssl-0.9.7g-xpgp-0.1c.tgz
|
http://www.lunamutt.com/retroshare/openssl-0.9.7g-xpgp-0.1c.tgz
|
||||||
|
|
||||||
|
miniupnpc-1.0 is avaible at:
|
||||||
|
http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.0.tar.gz
|
||||||
|
|
||||||
|
Linux Source package included this libraries: OpenSSL-0.9.7g-xpgp, miniupnpc-1.0, qcheckers, smplayer:
|
||||||
|
http://downloads.sourceforge.net/retroshare/retroshare-pkg-linux-src-v0.4.09b.tgz
|
||||||
|
|
||||||
|
|
||||||
Download/Compile as per instructions...
|
Download/Compile as per instructions...
|
||||||
|
|
||||||
------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
Compiling Linux
|
Howto Compile under Unix/Linux
|
||||||
------------------------------------------------------------------------------------------
|
==========================================================================================
|
||||||
|
Directory layout
|
||||||
|
|
||||||
(1) compile openSSL-0.9.7g-xpgp.
|
This article sticks to the following scheme:
|
||||||
|
Directory
|
||||||
|
~ Your home folder
|
||||||
|
~/src/miniupnpc-X.Y miniupnpc directory
|
||||||
|
~/src/openssl-X-xpgp-Y openssl with xpgp patches
|
||||||
|
~/src/retroshare SVN checkout folder
|
||||||
|
~/src/retroshare/libretroshare libretroshare
|
||||||
|
~/src/retroshare/retroshare-gui Qt4 Retroshare GUI
|
||||||
|
~/lib All the libraries required by Retroshare GUI (libssl.a, libcrypto.a, libretroshare.a,...)
|
||||||
|
|
||||||
(2) compile miniupnpc
|
|
||||||
|
|
||||||
(4) Modify ./make.opts
|
Build dependicies
|
||||||
(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 UPNPC_DIR to point to miniupnpc
|
|
||||||
|
|
||||||
(5) type: make
|
Needed Packages for compiling Retroshare:
|
||||||
This builds ./lib/libretroshare.a,
|
|
||||||
and the various test programs.
|
|
||||||
|
|
||||||
There is server-only (no GUI) executable
|
* libqt4-dev
|
||||||
compiled in ./rsiface/retroshare-nogui,
|
* g++
|
||||||
you can run this to check that its working.
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------------------
|
$ sudo apt-get install libqt4-dev g++
|
||||||
|
|
||||||
|
|
||||||
|
Build prerequisite libraries
|
||||||
|
______________________________________________
|
||||||
|
|
||||||
|
Build miniupnpc - mini UPnP client
|
||||||
|
====================================================
|
||||||
|
|
||||||
|
If your OS already has miniupnp client as a package, you can skip this step.
|
||||||
|
|
||||||
|
Download miniupnp from http://miniupnp.free.fr/. You need the client distribution, not MiniUPNP daemon. Compatibility with different miniupnpc version: 1.0 - official version bundled with RetroShare, 1.2 works but not fully tested yet.
|
||||||
|
|
||||||
|
Build
|
||||||
|
|
||||||
|
$ cd ~/src
|
||||||
|
$ wget http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.2.tar.gz
|
||||||
|
$ tar -xzvf miniupnpc-1.2.tar.gz
|
||||||
|
$ cd miniupnpc-1.2
|
||||||
|
$ make
|
||||||
|
|
||||||
|
Testing
|
||||||
|
Test miniupnpc by running upnpc-static utility it builds. If upnpc is able to find your router (UPNP device), it will show a list of mappings on it:
|
||||||
|
|
||||||
|
$ ./upnpc-static -l
|
||||||
|
upnpc : miniupnpc library test client. (c) 2006-2008 Thomas Bernard
|
||||||
|
...
|
||||||
|
ExternalIPAddress = 1.2.3.4
|
||||||
|
0 UDP 40950->192.168.1.3:40950 'Azureus UPnP 50950 UDP' ''
|
||||||
|
1 TCP 20950->192.168.1.3:20950 'Azureus UPnP 50950 TCP' ''
|
||||||
|
...
|
||||||
|
|
||||||
|
Copy miniupnpc library to the library folder:
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
$ cp libminiupnpc.a ~/lib
|
||||||
|
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
Build openssl-xpgp (openssl with xpgp patches)
|
||||||
|
=================================================
|
||||||
|
|
||||||
|
RetroShare uses openssl SSL library with special patches to implement authentication in web of trust. You have choice of two openssl versions, openssl-0.9.7g (old openssl release from year 2005, but extensively tested with RetroShare) or openssl-0.9.8h (up to date but not fully tested).
|
||||||
|
|
||||||
|
|
||||||
|
Building openssl-0.9.7g (option 1)
|
||||||
|
|
||||||
|
You can either download patched openssl sources from http://www.lunamutt.com/retroshare/openssl-0.9.7g-xpgp-0.1c.tgz or download patches against official openssl sources from the same site if you prefer to patch openssl yourself).
|
||||||
|
|
||||||
|
Build
|
||||||
|
Important: do not run make install as it may overwrite the system openssl and could break your system
|
||||||
|
|
||||||
|
$ cd ~/src
|
||||||
|
$ wget http://www.lunamutt.com/retroshare/openssl-0.9.7g-xpgp-0.1c.tgz
|
||||||
|
$ tar -xzvf openssl-0.9.7g-xpgp-0.1c.tgz
|
||||||
|
$ cd openssl-0.9.7g-xpgp-0.1c
|
||||||
|
$ ./config --openssldir=/etc/ssl-xpgp no-shared
|
||||||
|
$ make
|
||||||
|
...
|
||||||
|
|
||||||
|
Copy libssl and libcrypto to the library folder:
|
||||||
|
---------------------------------------------------
|
||||||
|
|
||||||
|
$ cp libssl.a ~/lib
|
||||||
|
$ cp libcrypto.a ~/lib
|
||||||
|
|
||||||
|
|
||||||
|
Building openssl-0.9.8h (option 2)
|
||||||
|
=====================================================
|
||||||
|
|
||||||
|
Under construction - do not use this yet
|
||||||
|
|
||||||
|
* Download openssl-0.9.8h from www.openssl.org: http://www.openssl.org/source/openssl-0.9.8h.tar.gz
|
||||||
|
* Download new files openssl-0.9.8h-xpgp-0.1c-newfiles.tgz
|
||||||
|
* Download openssl-0.9.8h-xpgp-0.1c.patch
|
||||||
|
* Untar the new files over openssl distribution
|
||||||
|
* Patch openssl with xpgp patches: patch -p0 < openssl-0.9.8h-xpgp-0.1c.patch
|
||||||
|
* Configure: ./config --openssldir=/etc/ssl-xpgp no-shared
|
||||||
|
o no-shared ensures that only static (.a) libraries are built
|
||||||
|
|
||||||
|
* Run test of compiled openssl-xpgp:
|
||||||
|
|
||||||
|
cd test ../util/shlib_wrap.sh ssltest
|
||||||
|
|
||||||
|
|
||||||
|
Build qcheckers game as a library
|
||||||
|
===================================
|
||||||
|
|
||||||
|
RetroShare includes certain games as a demo of network gaming. Unfortunately, you must compile games even if you don't plan to play them. There's currently no way to compile retroshare without games.
|
||||||
|
|
||||||
|
Obtain qcheckers patched source The easiest way is to download retroshare source bundle and extract only qcheckers patched source.
|
||||||
|
|
||||||
|
$ wget http://downloads.sourceforge.net/retroshare/retroshare-pkg-linux-src-v0.4.09b.tgz
|
||||||
|
$ tar -xzvf retroshare-pkg-linux-src-v0.4.09b.tgz "*qcheckers-svn14.tgz"
|
||||||
|
$ mv retroshare-package-v0.4.09b/tar/qcheckers-svn14.tgz ~/src
|
||||||
|
$ tar -xzvf qcheckers-svn14.tgz
|
||||||
|
|
||||||
|
|
||||||
|
Build
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
$ cd ~/src/qcheckers-svn14
|
||||||
|
$ qmake
|
||||||
|
$ make
|
||||||
|
...
|
||||||
|
$ cp src/libqcheckers.a ~/lib
|
||||||
|
|
||||||
|
|
||||||
|
Build smplayer as a library
|
||||||
|
=================================
|
||||||
|
|
||||||
|
Obtain smplayer patched source The easiest way is to download retroshare source bundle and extract smplayer patched source only.
|
||||||
|
|
||||||
|
$ wget http://downloads.sourceforge.net/retroshare/retroshare-pkg-linux-src-v0.4.09b.tgz
|
||||||
|
$ tar xzvf retroshare-pkg-linux-src-v0.4.09b.tgz "*smplayer-svn-280308.tgz"
|
||||||
|
$ mv retroshare-package-v0.4.09b/tar/smplayer-svn-280308.tgz ~/src
|
||||||
|
$ tar -xzvf smplayer-svn-280308.tgz
|
||||||
|
|
||||||
|
|
||||||
|
Build
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
$ cd ~/src/smplayer
|
||||||
|
$ qmake
|
||||||
|
$ make
|
||||||
|
...
|
||||||
|
$ cp lib/libsmplayer.a ~/lib
|
||||||
|
|
||||||
|
|
||||||
|
Build RetroShare
|
||||||
|
===================================================
|
||||||
|
Obtain latest retroshare sources from SVN
|
||||||
|
|
||||||
|
Source release is quite old at the moment and it is a good idea to obtain sources from subversion:
|
||||||
|
|
||||||
|
$ cd ~/src
|
||||||
|
$ svn co https://retroshare.svn.sourceforge.net/svnroot/retroshare/trunk retroshare
|
||||||
|
...
|
||||||
|
Checked out revision 777.
|
||||||
|
|
||||||
|
This should create ~/src/retroshare/libretroshare, ~/src/retroshare/retroshare-gui etc.
|
||||||
|
Build libretroshare
|
||||||
|
|
||||||
|
Edit configuration files
|
||||||
|
|
||||||
|
* Edit ~/src/retroshare/libretroshare/src/scripts/config.mk:
|
||||||
|
o Change OS to be "OS = Linux"
|
||||||
|
|
||||||
|
* Edit ~/src/retroshare/libretroshare/src/scripts/config-linux.mk:
|
||||||
|
o Change SSL_DIR to point to your openssl-xpgp directory. Check that SSL_DIR really points to openssl-xpgp folder, because it's easy to have one "../" too much:
|
||||||
|
|
||||||
|
$ cd scripts <-- I'm in scripts folder
|
||||||
|
$ ls ../../../../../src/openssl-0.9.7g-xpgp-0.1c <-- that's my SSL_DIR
|
||||||
|
CHANGES INSTALL.W32 README demos makevms.com test
|
||||||
|
...
|
||||||
|
|
||||||
|
*
|
||||||
|
o Change UPNPC_DIR to point to your miniupnp directory
|
||||||
|
o Change DEFINES += -DMINIUPNPC_VERSION=12 to match your miniupnpc version (10 for 1.0 or 12 for 1.2)
|
||||||
|
|
||||||
|
|
||||||
|
Build
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
$ cd ~/src/retroshare/libretroshare/src
|
||||||
|
$ make
|
||||||
|
..
|
||||||
|
$ cp lib/libretroshare.a ~/lib
|
||||||
|
|
||||||
|
Troubleshooting
|
||||||
|
----------------------
|
||||||
|
You get miniupnpc errors, "error: too few arguments to function 'UPNPDev* upnpDiscover(int, const char*, const char*, int)'"
|
||||||
|
Possible cause: you're using miniupnpc version 1.2 but config-linux.mk says 1.0
|
||||||
|
|
||||||
|
|
||||||
|
Build retroshare GUI
|
||||||
|
===========================================================
|
||||||
|
|
||||||
|
Check
|
||||||
|
Check that all the libraries are compiled and path to libraries folder in RetroShare.pro is correct:
|
||||||
|
|
||||||
|
$ cd ~/src/retroshare/retroshare-gui/src
|
||||||
|
$ ls ../../../../lib <--- that's my -L path from RetroShare.pro
|
||||||
|
libcrypto.a libqcheckers.a libsmplayer.a
|
||||||
|
libminiupnpc.a libretroshare.a libssl.a
|
||||||
|
|
||||||
|
If some libraries are not there, you probably forgot to copy them. If path to lib is wrong, correct it in RetroShare.pro.
|
||||||
|
|
||||||
|
Build Run
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
$ cd ~/src/retroshare/retroshare-gui/src
|
||||||
|
$ qmake
|
||||||
|
$ make
|
||||||
|
|
||||||
|
|
||||||
|
Troubleshooting
|
||||||
|
Most common troubles are missing includes
|
||||||
|
|
||||||
|
* if gcc says "find" is unknown (no matching function for call to 'find(std::_List_iterator...), add #include <algorithm>
|
||||||
|
* if std::bad_cast is unknown, add #include <typeinfo>
|
||||||
|
* If on the link stage you receive lot of undefined reference errors ("undefined reference to `generate_xpgp' etc), all mentioning pgp: it's likely that you link to standard libssl.a and libcrypto.a instead of openssl-xpgp versions. This can happen if libraries are not found: linker silently uses standard libraries instead, because openssl is installed on all systems.
|
||||||
|
|
||||||
|
|
||||||
|
If compilation was successful, you should be able to start RetroShare executable:
|
||||||
|
|
||||||
|
$ ./RetroShare
|
||||||
|
|
||||||
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 miniupnpc:
|
|
||||||
1. Get miniupnpc library from http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.0.tar.gz
|
|
||||||
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
|
|
||||||
UPNPC_DIR=/home/dev/miniupnpc
|
|
||||||
|
|
||||||
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 -lminiupnpc
|
|
||||||
to
|
|
||||||
RSLIBS = -L$(LIBDIR) -lretroshare -L$(SSL_DIR) -lssl -lcrypto -lpthread -L$(UPNPC_DIR) -lminiupnpc
|
|
||||||
4. run:
|
|
||||||
make
|
|
||||||
|
|
||||||
Hope this helps.
|
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------
|
||||||
@ -162,37 +353,6 @@ Compiling SMPlayer
|
|||||||
5.then add to LIBS -lsmplayer to the RetroShare.pro file.
|
5.then add to LIBS -lsmplayer to the RetroShare.pro file.
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
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 -lminiupnpc
|
|
||||||
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.
|
WIN XP Compilation.
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
|
|
||||||
@ -228,16 +388,24 @@ UNDER Cygwin:
|
|||||||
(3) Compile pthreads.
|
(3) Compile pthreads.
|
||||||
(4) Compile zlib.
|
(4) Compile zlib.
|
||||||
|
|
||||||
(5) Compile retroshare-v0.4.x
|
(5) Compile libretroshare retroshare-v0.4.x
|
||||||
|
|
||||||
UNDER Mingw:
|
UNDER Mingw:
|
||||||
(6) Compile SMPlayer ( qmake + make )
|
|
||||||
(7) Compile the Qt-Gui. ( qmake + make )
|
(6) Compile QChekers ( qmake + make )
|
||||||
|
(7) Compile SMPlayer ( qmake + make )
|
||||||
|
(8) Compile the Qt-Gui. ( qmake + make )
|
||||||
|
|
||||||
|
|
||||||
Email me if you're having trouble:
|
Email me if you're having trouble:
|
||||||
retroshare@lunamutt.com
|
retroshare@lunamutt.com
|
||||||
|
|
||||||
|
You can go on ouer forum when you have trouble with compiling:
|
||||||
|
http://retroshare.sourceforge.net/forum/
|
||||||
---------------------------------------------
|
---------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
README for RetroShare
|
||||||
|
===============================
|
||||||
|
|
||||||
|
RetroShare web site . . . . http://retroshare.sourceforge.net/
|
||||||
|
Documentation . . . . . . . http://retroshare.sourceforge.net/doc.html
|
||||||
|
Support . . . . . . . . . . http://retroshare.sourceforge.net/support.html
|
||||||
|
Forums . . . . . . . . . . http://retroshare.sourceforge.net/forum/
|
||||||
|
Wiki . . . . . . . . . . . http://retroshare.sourceforge.net/wiki/
|
||||||
|
The Developers site . . . . http://retroshare.sourceforge.net/developers.html
|
||||||
|
|
||||||
|
|
||||||
Compiling + Running RetroShare (V0.4.xxx)
|
Compiling + Running RetroShare (V0.4.xxx)
|
||||||
------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------
|
||||||
@ -7,6 +17,7 @@ Quick Requirements:
|
|||||||
Libraries/Tools:
|
Libraries/Tools:
|
||||||
C/C++ Compiler. (standard on Linux/cygwin)
|
C/C++ Compiler. (standard on Linux/cygwin)
|
||||||
OpenSSL-0.9.7g-xpgp
|
OpenSSL-0.9.7g-xpgp
|
||||||
|
miniupnpc
|
||||||
Qt-4.3 development libraries.
|
Qt-4.3 development libraries.
|
||||||
|
|
||||||
RetroShare Source Code: ( from sf.net/projects/retroshare)
|
RetroShare Source Code: ( from sf.net/projects/retroshare)
|
||||||
@ -22,71 +33,251 @@ Windows Requirements:
|
|||||||
Build Scripts are avaible on SVN for Debian and Ubuntu:
|
Build Scripts are avaible on SVN for Debian and Ubuntu:
|
||||||
http://retroshare.svn.sourceforge.net/viewvc/retroshare/trunk/build_scripts/
|
http://retroshare.svn.sourceforge.net/viewvc/retroshare/trunk/build_scripts/
|
||||||
|
|
||||||
|
|
||||||
OpenSSL-0.9.7g-xpgp is available at:
|
OpenSSL-0.9.7g-xpgp is available at:
|
||||||
http://www.lunamutt.com/retroshare/openssl-0.9.7g-xpgp-0.1c.tgz
|
http://www.lunamutt.com/retroshare/openssl-0.9.7g-xpgp-0.1c.tgz
|
||||||
|
|
||||||
|
miniupnpc-1.0 is avaible at:
|
||||||
|
http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.0.tar.gz
|
||||||
|
|
||||||
|
Linux Source package included this libraries: OpenSSL-0.9.7g-xpgp, miniupnpc-1.0, qcheckers, smplayer:
|
||||||
|
http://downloads.sourceforge.net/retroshare/retroshare-pkg-linux-src-v0.4.09b.tgz
|
||||||
|
|
||||||
|
|
||||||
Download/Compile as per instructions...
|
Download/Compile as per instructions...
|
||||||
|
|
||||||
------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
Compiling Linux
|
Howto Compile under Unix/Linux
|
||||||
------------------------------------------------------------------------------------------
|
==========================================================================================
|
||||||
|
Directory layout
|
||||||
|
|
||||||
(1) compile openSSL-0.9.7g-xpgp.
|
This article sticks to the following scheme:
|
||||||
|
Directory
|
||||||
|
~ Your home folder
|
||||||
|
~/src/miniupnpc-X.Y miniupnpc directory
|
||||||
|
~/src/openssl-X-xpgp-Y openssl with xpgp patches
|
||||||
|
~/src/retroshare SVN checkout folder
|
||||||
|
~/src/retroshare/libretroshare libretroshare
|
||||||
|
~/src/retroshare/retroshare-gui Qt4 Retroshare GUI
|
||||||
|
~/lib All the libraries required by Retroshare GUI (libssl.a, libcrypto.a, libretroshare.a,...)
|
||||||
|
|
||||||
(2) compile miniupnpc
|
|
||||||
|
|
||||||
(4) Modify ./make.opts
|
Build dependicies
|
||||||
(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 UPNPC_DIR to point to miniupnpc
|
|
||||||
|
|
||||||
(5) type: make
|
Needed Packages for compiling Retroshare:
|
||||||
This builds ./lib/libretroshare.a,
|
|
||||||
and the various test programs.
|
|
||||||
|
|
||||||
There is server-only (no GUI) executable
|
* libqt4-dev
|
||||||
compiled in ./rsiface/retroshare-nogui,
|
* g++
|
||||||
you can run this to check that its working.
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------------------
|
$ sudo apt-get install libqt4-dev g++
|
||||||
|
|
||||||
|
|
||||||
|
Build prerequisite libraries
|
||||||
|
______________________________________________
|
||||||
|
|
||||||
|
Build miniupnpc - mini UPnP client
|
||||||
|
====================================================
|
||||||
|
|
||||||
|
If your OS already has miniupnp client as a package, you can skip this step.
|
||||||
|
|
||||||
|
Download miniupnp from http://miniupnp.free.fr/. You need the client distribution, not MiniUPNP daemon. Compatibility with different miniupnpc version: 1.0 - official version bundled with RetroShare, 1.2 works but not fully tested yet.
|
||||||
|
|
||||||
|
Build
|
||||||
|
|
||||||
|
$ cd ~/src
|
||||||
|
$ wget http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.2.tar.gz
|
||||||
|
$ tar -xzvf miniupnpc-1.2.tar.gz
|
||||||
|
$ cd miniupnpc-1.2
|
||||||
|
$ make
|
||||||
|
|
||||||
|
Testing
|
||||||
|
Test miniupnpc by running upnpc-static utility it builds. If upnpc is able to find your router (UPNP device), it will show a list of mappings on it:
|
||||||
|
|
||||||
|
$ ./upnpc-static -l
|
||||||
|
upnpc : miniupnpc library test client. (c) 2006-2008 Thomas Bernard
|
||||||
|
...
|
||||||
|
ExternalIPAddress = 1.2.3.4
|
||||||
|
0 UDP 40950->192.168.1.3:40950 'Azureus UPnP 50950 UDP' ''
|
||||||
|
1 TCP 20950->192.168.1.3:20950 'Azureus UPnP 50950 TCP' ''
|
||||||
|
...
|
||||||
|
|
||||||
|
Copy miniupnpc library to the library folder:
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
$ cp libminiupnpc.a ~/lib
|
||||||
|
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
Build openssl-xpgp (openssl with xpgp patches)
|
||||||
|
=================================================
|
||||||
|
|
||||||
|
RetroShare uses openssl SSL library with special patches to implement authentication in web of trust. You have choice of two openssl versions, openssl-0.9.7g (old openssl release from year 2005, but extensively tested with RetroShare) or openssl-0.9.8h (up to date but not fully tested).
|
||||||
|
|
||||||
|
|
||||||
|
Building openssl-0.9.7g (option 1)
|
||||||
|
|
||||||
|
You can either download patched openssl sources from http://www.lunamutt.com/retroshare/openssl-0.9.7g-xpgp-0.1c.tgz or download patches against official openssl sources from the same site if you prefer to patch openssl yourself).
|
||||||
|
|
||||||
|
Build
|
||||||
|
Important: do not run make install as it may overwrite the system openssl and could break your system
|
||||||
|
|
||||||
|
$ cd ~/src
|
||||||
|
$ wget http://www.lunamutt.com/retroshare/openssl-0.9.7g-xpgp-0.1c.tgz
|
||||||
|
$ tar -xzvf openssl-0.9.7g-xpgp-0.1c.tgz
|
||||||
|
$ cd openssl-0.9.7g-xpgp-0.1c
|
||||||
|
$ ./config --openssldir=/etc/ssl-xpgp no-shared
|
||||||
|
$ make
|
||||||
|
...
|
||||||
|
|
||||||
|
Copy libssl and libcrypto to the library folder:
|
||||||
|
---------------------------------------------------
|
||||||
|
|
||||||
|
$ cp libssl.a ~/lib
|
||||||
|
$ cp libcrypto.a ~/lib
|
||||||
|
|
||||||
|
|
||||||
|
Building openssl-0.9.8h (option 2)
|
||||||
|
=====================================================
|
||||||
|
|
||||||
|
Under construction - do not use this yet
|
||||||
|
|
||||||
|
* Download openssl-0.9.8h from www.openssl.org: http://www.openssl.org/source/openssl-0.9.8h.tar.gz
|
||||||
|
* Download new files openssl-0.9.8h-xpgp-0.1c-newfiles.tgz
|
||||||
|
* Download openssl-0.9.8h-xpgp-0.1c.patch
|
||||||
|
* Untar the new files over openssl distribution
|
||||||
|
* Patch openssl with xpgp patches: patch -p0 < openssl-0.9.8h-xpgp-0.1c.patch
|
||||||
|
* Configure: ./config --openssldir=/etc/ssl-xpgp no-shared
|
||||||
|
o no-shared ensures that only static (.a) libraries are built
|
||||||
|
|
||||||
|
* Run test of compiled openssl-xpgp:
|
||||||
|
|
||||||
|
cd test ../util/shlib_wrap.sh ssltest
|
||||||
|
|
||||||
|
|
||||||
|
Build qcheckers game as a library
|
||||||
|
===================================
|
||||||
|
|
||||||
|
RetroShare includes certain games as a demo of network gaming. Unfortunately, you must compile games even if you don't plan to play them. There's currently no way to compile retroshare without games.
|
||||||
|
|
||||||
|
Obtain qcheckers patched source The easiest way is to download retroshare source bundle and extract only qcheckers patched source.
|
||||||
|
|
||||||
|
$ wget http://downloads.sourceforge.net/retroshare/retroshare-pkg-linux-src-v0.4.09b.tgz
|
||||||
|
$ tar -xzvf retroshare-pkg-linux-src-v0.4.09b.tgz "*qcheckers-svn14.tgz"
|
||||||
|
$ mv retroshare-package-v0.4.09b/tar/qcheckers-svn14.tgz ~/src
|
||||||
|
$ tar -xzvf qcheckers-svn14.tgz
|
||||||
|
|
||||||
|
|
||||||
|
Build
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
$ cd ~/src/qcheckers-svn14
|
||||||
|
$ qmake
|
||||||
|
$ make
|
||||||
|
...
|
||||||
|
$ cp src/libqcheckers.a ~/lib
|
||||||
|
|
||||||
|
|
||||||
|
Build smplayer as a library
|
||||||
|
=================================
|
||||||
|
|
||||||
|
Obtain smplayer patched source The easiest way is to download retroshare source bundle and extract smplayer patched source only.
|
||||||
|
|
||||||
|
$ wget http://downloads.sourceforge.net/retroshare/retroshare-pkg-linux-src-v0.4.09b.tgz
|
||||||
|
$ tar xzvf retroshare-pkg-linux-src-v0.4.09b.tgz "*smplayer-svn-280308.tgz"
|
||||||
|
$ mv retroshare-package-v0.4.09b/tar/smplayer-svn-280308.tgz ~/src
|
||||||
|
$ tar -xzvf smplayer-svn-280308.tgz
|
||||||
|
|
||||||
|
|
||||||
|
Build
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
$ cd ~/src/smplayer
|
||||||
|
$ qmake
|
||||||
|
$ make
|
||||||
|
...
|
||||||
|
$ cp lib/libsmplayer.a ~/lib
|
||||||
|
|
||||||
|
|
||||||
|
Build RetroShare
|
||||||
|
===================================================
|
||||||
|
Obtain latest retroshare sources from SVN
|
||||||
|
|
||||||
|
Source release is quite old at the moment and it is a good idea to obtain sources from subversion:
|
||||||
|
|
||||||
|
$ cd ~/src
|
||||||
|
$ svn co https://retroshare.svn.sourceforge.net/svnroot/retroshare/trunk retroshare
|
||||||
|
...
|
||||||
|
Checked out revision 777.
|
||||||
|
|
||||||
|
This should create ~/src/retroshare/libretroshare, ~/src/retroshare/retroshare-gui etc.
|
||||||
|
Build libretroshare
|
||||||
|
|
||||||
|
Edit configuration files
|
||||||
|
|
||||||
|
* Edit ~/src/retroshare/libretroshare/src/scripts/config.mk:
|
||||||
|
o Change OS to be "OS = Linux"
|
||||||
|
|
||||||
|
* Edit ~/src/retroshare/libretroshare/src/scripts/config-linux.mk:
|
||||||
|
o Change SSL_DIR to point to your openssl-xpgp directory. Check that SSL_DIR really points to openssl-xpgp folder, because it's easy to have one "../" too much:
|
||||||
|
|
||||||
|
$ cd scripts <-- I'm in scripts folder
|
||||||
|
$ ls ../../../../../src/openssl-0.9.7g-xpgp-0.1c <-- that's my SSL_DIR
|
||||||
|
CHANGES INSTALL.W32 README demos makevms.com test
|
||||||
|
...
|
||||||
|
|
||||||
|
*
|
||||||
|
o Change UPNPC_DIR to point to your miniupnp directory
|
||||||
|
o Change DEFINES += -DMINIUPNPC_VERSION=12 to match your miniupnpc version (10 for 1.0 or 12 for 1.2)
|
||||||
|
|
||||||
|
|
||||||
|
Build
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
$ cd ~/src/retroshare/libretroshare/src
|
||||||
|
$ make
|
||||||
|
..
|
||||||
|
$ cp lib/libretroshare.a ~/lib
|
||||||
|
|
||||||
|
Troubleshooting
|
||||||
|
----------------------
|
||||||
|
You get miniupnpc errors, "error: too few arguments to function 'UPNPDev* upnpDiscover(int, const char*, const char*, int)'"
|
||||||
|
Possible cause: you're using miniupnpc version 1.2 but config-linux.mk says 1.0
|
||||||
|
|
||||||
|
|
||||||
|
Build retroshare GUI
|
||||||
|
===========================================================
|
||||||
|
|
||||||
|
Check
|
||||||
|
Check that all the libraries are compiled and path to libraries folder in RetroShare.pro is correct:
|
||||||
|
|
||||||
|
$ cd ~/src/retroshare/retroshare-gui/src
|
||||||
|
$ ls ../../../../lib <--- that's my -L path from RetroShare.pro
|
||||||
|
libcrypto.a libqcheckers.a libsmplayer.a
|
||||||
|
libminiupnpc.a libretroshare.a libssl.a
|
||||||
|
|
||||||
|
If some libraries are not there, you probably forgot to copy them. If path to lib is wrong, correct it in RetroShare.pro.
|
||||||
|
|
||||||
|
Build Run
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
$ cd ~/src/retroshare/retroshare-gui/src
|
||||||
|
$ qmake
|
||||||
|
$ make
|
||||||
|
|
||||||
|
|
||||||
|
Troubleshooting
|
||||||
|
Most common troubles are missing includes
|
||||||
|
|
||||||
|
* if gcc says "find" is unknown (no matching function for call to 'find(std::_List_iterator...), add #include <algorithm>
|
||||||
|
* if std::bad_cast is unknown, add #include <typeinfo>
|
||||||
|
* If on the link stage you receive lot of undefined reference errors ("undefined reference to `generate_xpgp' etc), all mentioning pgp: it's likely that you link to standard libssl.a and libcrypto.a instead of openssl-xpgp versions. This can happen if libraries are not found: linker silently uses standard libraries instead, because openssl is installed on all systems.
|
||||||
|
|
||||||
|
|
||||||
|
If compilation was successful, you should be able to start RetroShare executable:
|
||||||
|
|
||||||
|
$ ./RetroShare
|
||||||
|
|
||||||
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 miniupnpc:
|
|
||||||
1. Get miniupnpc library from http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.0.tar.gz
|
|
||||||
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
|
|
||||||
UPNPC_DIR=/home/dev/miniupnpc
|
|
||||||
|
|
||||||
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 -lminiupnpc
|
|
||||||
to
|
|
||||||
RSLIBS = -L$(LIBDIR) -lretroshare -L$(SSL_DIR) -lssl -lcrypto -lpthread -L$(UPNPC_DIR) -lminiupnpc
|
|
||||||
4. run:
|
|
||||||
make
|
|
||||||
|
|
||||||
Hope this helps.
|
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------
|
||||||
@ -162,37 +353,6 @@ Compiling SMPlayer
|
|||||||
5.then add to LIBS -lsmplayer to the RetroShare.pro file.
|
5.then add to LIBS -lsmplayer to the RetroShare.pro file.
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
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 -lminiupnpc
|
|
||||||
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.
|
WIN XP Compilation.
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
|
|
||||||
@ -228,15 +388,20 @@ UNDER Cygwin:
|
|||||||
(3) Compile pthreads.
|
(3) Compile pthreads.
|
||||||
(4) Compile zlib.
|
(4) Compile zlib.
|
||||||
|
|
||||||
(5) Compile retroshare-v0.4.x
|
(5) Compile libretroshare retroshare-v0.4.x
|
||||||
|
|
||||||
UNDER Mingw:
|
UNDER Mingw:
|
||||||
(6) Compile SMPlayer ( qmake + make )
|
|
||||||
(7) Compile the Qt-Gui. ( qmake + make )
|
(6) Compile QChekers ( qmake + make )
|
||||||
|
(7) Compile SMPlayer ( qmake + make )
|
||||||
|
(8) Compile the Qt-Gui. ( qmake + make )
|
||||||
|
|
||||||
|
|
||||||
Email me if you're having trouble:
|
Email me if you're having trouble:
|
||||||
retroshare@lunamutt.com
|
retroshare@lunamutt.com
|
||||||
|
|
||||||
|
You can go on ouer forum when you have trouble with compiling:
|
||||||
|
http://retroshare.sourceforge.net/forum/
|
||||||
---------------------------------------------
|
---------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user