The file-sharing landscape is slowly adjusting in response to the continued push for more anti-piracy tools, the final Pirate Bay verdict, and the raids and arrests in the Megaupload case“, starts a recent TorrentFreak article. It goes on to introduce Tribler, and RetroShare, which “[creates] a private space on the Internet. A social collaboration network where you can share anything you want. A space that is free from the prying eyes of governments, corporations and advertisers. This is vitally important as our freedom on the Internet is under increasing threat. RetroShare is free from censorship: like Facebook banning ‘obscene’ breast-feeding photographs. A network that allows you to use any pseudonym, without insisting on knowing your real name. A network where you will not face the threat of jail, or being banned from entry into a country for an innocent tweet“.

For RetroShare, there are pre-compiled installs for several OSes and GNU/Linux distributions, however not for Fedora. So I downloaded the source, and tried to compile with a bit of help from this page. First, some dependencies:

yum install qt-devel gpgme-devel libgpg-error-devel libupnp-devel libssl-devel libgnome-keyring-devel openssl-devel glib2-devel libXScrnSaver-devel

It turns out there is an old, widly published bug in the glib-2.0 include path dependencies. To work around it, edit the file libretroshare/src/libretroshare.pro, find these lines, and add the third line, marked in blue:

# These two lines fixe compilation on ubuntu natty. Probably a ubuntu packaging error.
INCLUDEPATH *= /usr/lib/x86_64-linux-gnu/glib-2.0/include/
INCLUDEPATH *= /usr/lib/i386-linux-gnu/glib-2.0/include/
INCLUDEPATH *= /usr/lib64/glib-2.0/include

Furthermore, there are a couple of missing library dependencies:

Edit retroshare-gui/src/RetroShare.pro, find the “## Linux ##” section, and add the last three libraries marked in blue:

LIBS += ../../libretroshare/src/lib/libretroshare.a
LIBS += -lssl -lgpgme -lupnp -lixml -lXss -lgnome-keyring -lcrypto -ldl -lX11

Then the make steps should work fine:

cd libbitdht/src
qmake-qt4 && make
cd libretroshare/src
qmake-qt4 && make
cd retroshare-gui/src
qmake-qt4 && make

And to start up:
retroshare-gui/src/RetroShare