From 3c6f9eff60592a6d84321100018052ec45591892 Mon Sep 17 00:00:00 2001 From: defnax Date: Tue, 4 Nov 2008 13:56:52 +0000 Subject: [PATCH] update readme git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@789 b45a01b8-16f6-495d-af2f-9b41ad6348cc --- libretroshare/src/Readme.txt | 338 +++++++++++++++++++++++++--------- retroshare-gui/src/README.txt | 335 ++++++++++++++++++++++++--------- 2 files changed, 503 insertions(+), 170 deletions(-) diff --git a/libretroshare/src/Readme.txt b/libretroshare/src/Readme.txt index b18cab49a..1576c99cd 100644 --- a/libretroshare/src/Readme.txt +++ b/libretroshare/src/Readme.txt @@ -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) ------------------------------------------------------------------------------------------ @@ -7,6 +17,7 @@ Quick Requirements: Libraries/Tools: C/C++ Compiler. (standard on Linux/cygwin) OpenSSL-0.9.7g-xpgp + miniupnpc Qt-4.3 development libraries. RetroShare Source Code: ( from sf.net/projects/retroshare) @@ -22,71 +33,251 @@ Windows Requirements: Build Scripts are avaible on SVN for Debian and Ubuntu: http://retroshare.svn.sourceforge.net/viewvc/retroshare/trunk/build_scripts/ - OpenSSL-0.9.7g-xpgp is available at: 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... ------------------------------------------------------------------------------------------ -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 - (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 +Build dependicies +------------------------------------------------------ -(5) type: make - This builds ./lib/libretroshare.a, - and the various test programs. +Needed Packages for compiling Retroshare: - There is server-only (no GUI) executable - compiled in ./rsiface/retroshare-nogui, - you can run this to check that its working. + * libqt4-dev + * g++ ------------------------------------------------------------------------------------------- +$ 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 + * if std::bad_cast is unknown, add #include + * 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. ------------------------------------------------------------------------------------------- - -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. ------------------------------------------------ @@ -228,16 +388,24 @@ UNDER Cygwin: (3) Compile pthreads. (4) Compile zlib. - (5) Compile retroshare-v0.4.x + (5) Compile libretroshare retroshare-v0.4.x -UNDER Mingw: - (6) Compile SMPlayer ( qmake + make ) - (7) Compile the Qt-Gui. ( qmake + make ) +UNDER Mingw: + + (6) Compile QChekers ( qmake + make ) + (7) Compile SMPlayer ( qmake + make ) + (8) Compile the Qt-Gui. ( qmake + make ) Email me if you're having trouble: retroshare@lunamutt.com + +You can go on ouer forum when you have trouble with compiling: +http://retroshare.sourceforge.net/forum/ --------------------------------------------- + + + diff --git a/retroshare-gui/src/README.txt b/retroshare-gui/src/README.txt index b18cab49a..bc374ee39 100644 --- a/retroshare-gui/src/README.txt +++ b/retroshare-gui/src/README.txt @@ -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) ------------------------------------------------------------------------------------------ @@ -7,6 +17,7 @@ Quick Requirements: Libraries/Tools: C/C++ Compiler. (standard on Linux/cygwin) OpenSSL-0.9.7g-xpgp + miniupnpc Qt-4.3 development libraries. RetroShare Source Code: ( from sf.net/projects/retroshare) @@ -22,71 +33,251 @@ Windows Requirements: Build Scripts are avaible on SVN for Debian and Ubuntu: http://retroshare.svn.sourceforge.net/viewvc/retroshare/trunk/build_scripts/ - OpenSSL-0.9.7g-xpgp is available at: 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... ------------------------------------------------------------------------------------------ -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 - (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 +Build dependicies +------------------------------------------------------ -(5) type: make - This builds ./lib/libretroshare.a, - and the various test programs. +Needed Packages for compiling Retroshare: - There is server-only (no GUI) executable - compiled in ./rsiface/retroshare-nogui, - you can run this to check that its working. + * libqt4-dev + * g++ ------------------------------------------------------------------------------------------- +$ 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 + * if std::bad_cast is unknown, add #include + * 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. ------------------------------------------------------------------------------------------- - -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. ------------------------------------------------ @@ -228,15 +388,20 @@ UNDER Cygwin: (3) Compile pthreads. (4) Compile zlib. - (5) Compile retroshare-v0.4.x + (5) Compile libretroshare retroshare-v0.4.x -UNDER Mingw: - (6) Compile SMPlayer ( qmake + make ) - (7) Compile the Qt-Gui. ( qmake + make ) +UNDER Mingw: + + (6) Compile QChekers ( qmake + make ) + (7) Compile SMPlayer ( qmake + make ) + (8) Compile the Qt-Gui. ( qmake + make ) Email me if you're having trouble: retroshare@lunamutt.com + +You can go on ouer forum when you have trouble with compiling: +http://retroshare.sourceforge.net/forum/ ---------------------------------------------