Build / Compile RetroShare v0.6.5 on Debian 10 Buster

Install dependencies

apt install -y git cmake qttools5-dev libglib2.0-dev libupnp-dev libssl-dev libxss-dev libbz2-dev libsqlcipher-dev libspeex-dev libspeexdsp-dev libxslt1-dev libcurl4-openssl-dev libopencv-dev tcl8.6 libmicrohttpd-dev rapidjson-dev qt5-default qtmultimedia5-dev libqt5x11extras5-dev build-essential (libgnome-keyring-dev)

Get the Source

git clone
git checkout v0.6.5

build the Source

cd RetroShare && qmake CONFIG-=debug CONFIG+=release && make && make install

run retroshare


without gui


with webinterface

/usr/bin/retroshare-nogui --webinterface 9090 --docroot /usr/share/retroshare/webui/ --http-allow-all

with debugging

./retroshare-gui/src/retroshare -d 0

enable DHT with bdboot.txt (get bdboot.txt from installer or portable) and put it into your ~/.retroshare/LOC06_…/bdboot.txt


qmake CONFIG+=tests CONFIG+=address_sanitizer
make -j4

Build RetroShare 0.6.0 RC2 on Debian 8 Jessie

install required packages

apt install g++ libqt4-dev make libssl-dev libupnp-dev libbz2-dev cmake libsqlite3-dev libgnome-keyring-dev libmicrohttpd-dev libxss-dev x11proto-scrnsaver-dev libprotobuf-dev protobuf-compiler

get latest Source
Hash: SHA1

Checksums for RC2~8551. Thu, June 25, 2015.

retroshare_0.6.0.RC2~8551_src.tgz SHA1 7b0277a5f2cab4def3230792c98a81b8c77778db
RetroShare_0.6.0_8551_rc2_setup.exe SHA1 77a52f449461352066d627a3042b7f7fc5e9fa94

retroshare06-feedreader-plugin_0.6.0-0.8551~sid_amd64.deb SHA1 95cb425f6821790209953aa9d108e5b83d6cfcae
retroshare06-feedreader-plugin_0.6.0-0.8551~sid_i386.deb SHA1 f4108ecba144194e5627f86c423debe165acef2e
retroshare06-feedreader-plugin_0.6.0-0.8551~stretch_amd64.deb SHA1 b311bd6947a8c1acc3cc642dd5ab381e21ee95a4
retroshare06-feedreader-plugin_0.6.0-0.8551~stretch_i386.deb SHA1 f7cd5a3d91144c6e6d673bb12c40f7d12f234bda
retroshare06-feedreader-plugin_0.6.0-0.8551~squeeze_armel.deb SHA1 e54b8a7d490fcf3d45694bbc0bc2c67c4d2d9791

retroshare06-nogui_0.6.0-0.8551~sid_amd64.deb SHA1 5fda6126d462a36b0d0b3f259bfc0287325c92a8
retroshare06-nogui_0.6.0-0.8551~sid_i386.deb SHA1 1ea2bf91bde30caa10d3dd7e7ba13092e57925cb
retroshare06-nogui_0.6.0-0.8551~stretch_amd64.deb SHA1 cb7849c4037256ce136a675f9d6b3073caf8123f
retroshare06-nogui_0.6.0-0.8551~stretch_i386.deb SHA1 4de0f245dfb602ae3a211ac049766646e38c5e97
retroshare06-nogui_0.6.0-0.8551~squeeze_armel.deb SHA1 576c72aaa9cecd378a23267a6f5df569c8e9357c

retroshare06-voip-plugin_0.6.0-0.8551~sid_amd64.deb SHA1 255f9e25dea7125cd2c768a210fcdd65654e3f86
retroshare06-voip-plugin_0.6.0-0.8551~sid_i386.deb SHA1 5f9a3c0c89fa6e7bf5d5778d8a4cee484ed0d10e
retroshare06-voip-plugin_0.6.0-0.8551~stretch_amd64.deb SHA1 bbb7986cdce46b3f62f7e9cba6bec9a4004b07e7
retroshare06-voip-plugin_0.6.0-0.8551~stretch_i386.deb SHA1 4b726e091f06478d84c90da36f93e033aed7f9f5
retroshare06-voip-plugin_0.6.0-0.8551~squeeze_armel.deb SHA1 7c78ddd20fa44fd717119ed0fe87192bf126abe0

retroshare06_0.6.0-0.8551~sid_amd64.deb SHA1 893fdb0a55ee18549b106fd18340da4a9f8fe907
retroshare06_0.6.0-0.8551~sid_i386.deb SHA1 1d92be314de7 x11proto-scrnsaver-dev x11proto-scrnsaver-deve69a41f64c60b0ad4629a7709621
retroshare06_0.6.0-0.8551~stretch_amd64.deb SHA1 5f582cfa248c5f4525a1d6c38f7fb9629e9ba304
retroshare06_0.6.0-0.8551~stretch_i386.deb SHA1 56a3b2db3985507887ac14197d890f60ae135c0b
retroshare06_0.6.0-0.8551~squeeze_armel.deb SHA1 737b882565510967d0f8fcfdadff51b792fb878f

retroshare_0.6.0.RC2~8551_src.tgz SHA512 6cfd714f6e72d43559909a72d448b90068414be26da73928ff7bfaaf5be5f7c47f5e7932f1ff2ab4d8a7c277ea4407ab3bd539a1ad4a2a7810dc79b32b1348b1
RetroShare_0.6.0_8551_rc2_setup.exe SHA512 e8c4e576411f0806f795ccf26d6c41dc3b2e262285042c35cde0ebc5e98564b91727e7aa0d2781b122fce76978f6e937c3072033ea400069a9ab50c22fa67e94

retroshare06-feedreader-plugin_0.6.0-0.8551~sid_amd64.deb SHA512 32424f51b5c398a2e64d55c2224079385b051103bea06e275bfd81f1b2f64babe1cb46c969f3f188d0b86b5513f5ade52feab9591b16c01525499de70324575d
retroshare06-feedreader-plugin_0.6.0-0.8551~sid_i386.deb SHA512 da34526550004a9fcca2a84534e09bbc154b661581359a41b638f5f6ebac698739408f0dc9b546a2aaaffa396e3e7fca631cc4dcc20d023d0427be5df17353b9
retroshare06-feedreader-plugin_0.6.0-0.8551~stretch_amd64.deb SHA512 45037895c0a4ee8534a76435d49f143cd02796526830bc97a8d55139e1e95954bcca5a63658159269250e878f2b0d9773a9e131857efa9b7c59d3e9864b50643
retroshare06-feedreader-plugin_0.6.0-0.8551~stretch_i386.deb SHA512 36679957eb7f527a22b8754aaf1fd909e667fa8e49701f29c51e4081c1da3a14a29831dc9941168bc91362e42e132d29ee8e9b9cb92fc88f199b44a93e413a83
retroshare06-feedreader-plugin_0.6.0-0.8551~squeeze_armel.deb SHA512 f292ab299b59fd917cdb7e4f218ad018cba5b926441ac37455833b37d9ad19035c50656ad662a9e73c4a43ca998ff17a10dd313af69996bd5dfa473b40ad30b9

retroshare06-nogui_0.6.0-0.8551~sid_amd64.deb SHA512 af62a35b8e8330e3e2780edfbb883cce99014fe6a0d38817b164ab92bb75279901c29e37f130c544a1b97b5adc4e1b94105991cddebbf41cb1bc103cd2cf4388
retroshare06-nogui_0.6.0-0.8551~sid_i386.deb SHA512 91975b47f7dae91d3c9d145693c785726036d4cbe1bce54a9701eb018c9b1908584dcbfc49e476d3b804395f42b83b15569b14f40b4e76e31345886f95fc9900
retroshare06-nogui_0.6.0-0.8551~stretch_amd64.deb SHA512 e8a119b3c6bf334c18ae17d3bf3488f299278c74338a730df64620215143d8cde9bb4285fea85594956dbb5dca807380125338bbfac656ef2641a651b66024b3
retroshare06-nogui_0.6.0-0.8551~stretch_i386.deb SHA512 87b34704fc313ad99f7860282fae64696119325b99ad4cb0f22980b7cfc5fa5da1a960f35517df9ae395c6dfba4b782ec4eddf9ab7286af70559da1ee8dab0a6
retroshare06-nogui_0.6.0-0.8551~squeeze_armel.deb SHA512 932e1e2d5195584fd06559adf02dbeeb63ecd5dc4c75b54e049019a0ab41d35800ace2ab8c5a0f7a73e1dda387f3e680213f92240be812583d2b3a3c4c5918b7

retroshare06-voip-plugin_0.6.0-0.8551~sid_amd64.deb SHA512 beb627f4decf36911c23126a8093b931dc11df7c81df5c5dca87c21e25551246f868db9bd6889aa1885e51bf9f1d9187ff2cdcc7b6ef14ff4f9bb35fda06023d
retroshare06-voip-plugin_0.6.0-0.8551~sid_i386.deb SHA512 53de30c9db0f579d6c81adecf18b08212ed33154570172413c6db910d5c3294992953d8180b2b46fd2e8265375f03c9b1f763b2d3ee95f0bf0a59aa44ac9010e
retroshare06-voip-plugin_0.6.0-0.8551~stretch_amd64.deb SHA512 6216e482bc4a514c452dffec0d9f82caea778552b5365c289e5e143c623d4167fdca5da6f73dbbab8b40f3151a8f51dad3d84a719c6823bc597c49c25c88d5f6
retroshare06-voip-plugin_0.6.0-0.8551~stretch_i386.deb SHA512 84cd2d33c2e19fca59336ab4ac0fc395ade7cbabc5e86a07c9a6d64259dfa47f9ecc63adf4e6d80321febe979ebb4c6afd73e7d3b7fcd9154b76d862fef8e2ca
retroshare06-voip-plugin_0.6.0-0.8551~squeeze_armel.deb SHA512 90e38e3a4a6547d6748d2850cd74856001cd2ff6a2872a7d8e688808821e66ae975c72a6d83d04be5c8ff3b1f9e86e38d8c692e235f0791cbdbccc9c0ba5e53b

retroshare06_0.6.0-0.8551~sid_amd64.deb SHA512 c5289b70597fcc1216505bc87c0937858c4f3663c3132f9eb7dc6df85b74ac5160df96869cc488120657136f08f02dd74f4e90c1602157cda46dac2a2aaa718b
retroshare06_0.6.0-0.8551~sid_i386.deb SHA512 cdf3159f3c0d42dc27c64578b78b5a53bb3906a149742d199cf0427b7a07ab5c63d94660f1c8a8efcaaa345c590d0554714289f81fa1bb6d28b0b1b5004997d0
retroshare06_0.6.0-0.8551~stretch_amd64.deb SHA512 fa66a081d39f1a98753f5fbe959097bf3fef657fb4b7ff1184026740722a2fc00cc4d5818f158265e83a971d85a65ed1d053a8a9fd187c77d74b5a25cca92f04
retroshare06_0.6.0-0.8551~stretch_i386.deb SHA512 132e537d1f1f2eed93c52588baeb7a69b30a267ede9f5e25f5914c0878f6ab9fc9ff8a397735211c0cad7bc2b7a0fa64597b19a7849483c44a759e698de4869a
retroshare06_0.6.0-0.8551~squeeze_armel.deb SHA512 6c713a6ddf2f1acaae5efd4235636dd25fed9f21a8e3254f6a0fc29600ee54940d3e714c48a7d44ac14f836524459e8dfdb91002cf63f5fb559270960961ff32

Version: GnuPG v1


Compile/Make RetroShare

git clone
cd sqlcipher/
./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto"
make -j2
make install
cd libbitdht/src && qmake && make clean && make -j4 && cd ../../
cd openpgpsdk/src && qmake && make clean && make -j4 && cd ../../
cd libretroshare/src && qmake && make clean && make -j4 && cd ../../
cd libresapi/src && qmake && make clean && make -j4 && cd ../../
cd supportlibs/pegmarkdown && qmake && make clean && make -j4 && cd ../../
cd retroshare-gui/src && qmake && make clean && make -j4

cp libbitdht/src/example/bdboot.txt ~/.retroshare/$Profile/


Copy Image via netcat

This is for a High-Bandwidth Network. If you have a Low-Bandwidth Network you can try to switch lzo with bzip2.

nc -v -l -p 19000 | lzop -c -d | pv -s 70G | dd bs=16M of=/root/foo.img

  1. listen on port 19000 for connections.
  2. decompress the datapackages.
  3. pv displays a status bar.
  4. and wirte them into a file.

dd bs=16M if=/root/bar.img | lzop -3 -c | nc -v 10.0.01 19000

  1. dd reads the file in 16MB Blocks.
  2. each block will be compressed with lzo.
  3. nc connects 10.0.01 on port 19000 and pushes data.

Skipfish on Debian Wheezy

install dependencies

aptitude install libidn11-dev zlib1g-dev libpcre3-dev

download skipfish



tar xvf skipfish-2.10b.tgz


cd skipfish-2.10b

run e.g.

./skipfish -W dictionaries/complete.wl -o ../superskipfish/ http://domain.tdl/

Arduino Temperature/Humidity Web Sensor


Connect Sensor-Pin1 to +5V
Connect Sensor-Pin2 to Digital In 2
Connect Sensor-Pin4 to GND
Connect Sensor-Pin1 with a 10K resistor to Sensor-Pin2

Programm Used (Combination of WebServer and DHT Example):

Web Server

A simple web server that shows the value of the analog input pins.
using an Arduino Wiznet Ethernet shield.

* Ethernet shield attached to pins 10, 11, 12, 13
* Analog inputs attached to pins A0 through A5 (optional)

created 18 Dec 2009
by David A. Mellis
modified 4 Sep 2010
by Tom Igoe



// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain

#include "DHT.h"

#define DHTPIN 2 // what pin we're connected to

// Uncomment whatever type you're using!
//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)

// Connect pin 1 (on the left) of the sensor to +5V
// Connect pin 2 of the sensor to whatever your DHTPIN is
// Connect pin 4 (on the right) of the sensor to GROUND
// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor


// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1, 177);

// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);

// Request
int Request; // any function will see this variable

void setup() {
// start the Ethernet connection and the server:
Ethernet.begin(mac, ip);

// Serial.begin(9600);
// Serial.println("DHTxx test!");

// Request
Request = 0;

// DHT

void WEBloop()
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c =;
// if you've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so you can send a reply
if (c == '\n' && currentLineIsBlank) {
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");

// output the value of each analog input pin
//for (int analogChannel = 0; analogChannel < 6; analogChannel++) { //client.print("analog input "); //client.print(analogChannel); //client.print(" is "); //client.print(analogRead(analogChannel)); //client.println("

// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
float h = dht.readHumidity();
float t = dht.readTemperature();

// check if returns are valid, if they are NaN (not a number) then something went wrong!
if (isnan(t) || isnan(h)) {
// Serial.println("Failed to read from DHT");
client.print("Failed to read from DHT");
} else {
// Serial.print("Humidity: ");
// Serial.print(h);
// Serial.print(" %\t");
// Serial.print("Temperature: ");
// Serial.print(t);
// Serial.println(" *C");
client.print("Request: ");
Request = Request + 1;
client.print("Humidity: ");
client.print(" %\t");
client.print("Temperature: ");
client.println(" *C");

if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
// give the web browser time to receive the data
// close the connection:

void loop() {



void DHTloop() {
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
float h = dht.readHumidity();
float t = dht.readTemperature();

// check if returns are valid, if they are NaN (not a number) then something went wrong!
if (isnan(t) || isnan(h)) {
Serial.println("Failed to read from DHT");
} else {
Serial.print("Humidity: ");
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.println(" *C");

XMPP / Jabber Server unter Debian 6 Squeeze

  1. Install
     aptitude install ejabberd
  2. edit /etc/ejabberd/ejabberd.conf
    {hosts, ["jabber.myserver.tdl"]}.
    {acl, admin, {user, "myuser", "jabber.myserver.tdl"}}.
  3. restart server
     /etc/init.d/ejabberd restart
  4. admin einrichten
     ejabberdctl register myuser jabber.myserver.tdl geheim
  5. erneuter restart
    /etc/init.d/ejabberd restart
  6. status check
    ejabberdctl status
  7. WebGui starten
    Benutzername: myuser@jabber.myserver.tdl
  8. Clients via console hinzufügen
    ejabberdctl register myuser2 jabber.myserver.tdl geheim2

Firewall Setup

# 5222 für Jabberclients (c2s)
# 5269 Server2Server (s2s)
# 5280 admininterface auf loopback-device, erreichbar über ssh-tunnel
IPTABLES -A INPUT -m state --state NEW -p tcp --dport 5222 -j ACCEPT
IPTABLES -A INPUT -m state --state NEW -p tcp --dport 5269 -j ACCEPT

Generating a Self-Signed SSL Certificate (

openssl req -new -x509 -newkey rsa:4096 -days 3650 -keyout privkey.pem -out server.pem
openssl rsa -in privkey.pem -out privkey.pem
cat privkey.pem >> server.pem
rm privkey.pem

enter your domain name as the Common Name for your certificate!

Own Google Wave Protocol Server

Test unter Ubuntu Server 10.10

Abhängigkeiten installieren

sudo aptitude install openjdk-6-jre openjdk-6-jdk ant mercurial

Google Wave Protocol Server Sourcen holen und compilen

cd $WhereverYouWant
hg clone wave-protocol
cd wave-protocol

Server testen
Einfach im Browser http://$Server:9898 aufrufen

Windows 7 OpenVPN Gaming Bug

Unter Windows 7 gibt es ein Problem mit den Broadcasts.

Deshalb kann man z.b. Anno 1404 nicht übers VPN Spielen.

Lösung brachte bei mir:

  1. Einstellungen des OpenVPN Netzwerkadapters angepassen
  2. Automatische Metrik deaktiviert und die Interface Metrik auf 10 setzen

  3. OpenVPN Config Anpassen
  4. #vista/7 client bug fix
    route-method exe
    route-delay 2

  5. Standardgateway anpassen
  6. ebenfalls die Automatische Metrik deaktivieren und die Metrik auf 1500 setzen und das Standardgateway auf die Server IP setzen