| 
				
			 | 
			
			
				@@ -30,6 +30,7 @@ set -e 
			 | 
		
	
		
			
			| 
				30
			 | 
			
				30
			 | 
			
			
				 set -x 
			 | 
		
	
		
			
			| 
				31
			 | 
			
				31
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				32
			 | 
			
				32
			 | 
			
			
				 PROJECT_NAME='freedombone' 
			 | 
		
	
		
			
			| 
				
			 | 
			
				33
			 | 
			
			
				+INSTALL_DIR=/root/build 
			 | 
		
	
		
			
			| 
				33
			 | 
			
				34
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				34
			 | 
			
				35
			 | 
			
			
				 # username created by default within a debian image 
			 | 
		
	
		
			
			| 
				35
			 | 
			
				36
			 | 
			
			
				 GENERIC_IMAGE_USERNAME='fbone' 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -434,6 +435,110 @@ function mesh_batman { 
			 | 
		
	
		
			
			| 
				434
			 | 
			
				435
			 | 
			
			
				     chroot "$rootdir" systemctl enable batman 
			 | 
		
	
		
			
			| 
				435
			 | 
			
				436
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				436
			 | 
			
				437
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				438
			 | 
			
			
				+function mesh_tox_node { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				439
			 | 
			
			
				+    chroot "$rootdir" apt-get -y install build-essential libtool autotools-dev 
			 | 
		
	
		
			
			| 
				
			 | 
			
				440
			 | 
			
			
				+    chroot "$rootdir" apt-get -y install automake checkinstall check git yasm 
			 | 
		
	
		
			
			| 
				
			 | 
			
				441
			 | 
			
			
				+    chroot "$rootdir" apt-get -y install libsodium13 libsodium-dev libcap2-bin 
			 | 
		
	
		
			
			| 
				
			 | 
			
				442
			 | 
			
			
				+    chroot "$rootdir" apt-get -y install libconfig9 libconfig-dev 
			 | 
		
	
		
			
			| 
				
			 | 
			
				443
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				444
			 | 
			
			
				+    git clone $TOX_REPO $rootdir/$INSTALL_DIR/toxcore 
			 | 
		
	
		
			
			| 
				
			 | 
			
				445
			 | 
			
			
				+    chroot "$rootdir" cd $INSTALL_DIR/toxcore 
			 | 
		
	
		
			
			| 
				
			 | 
			
				446
			 | 
			
			
				+    chroot "$rootdir" git checkout $TOX_COMMIT -b $TOX_COMMIT 
			 | 
		
	
		
			
			| 
				
			 | 
			
				447
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				448
			 | 
			
			
				+    chroot "$rootdir" autoreconf -i 
			 | 
		
	
		
			
			| 
				
			 | 
			
				449
			 | 
			
			
				+    chroot "$rootdir" ./configure --enable-daemon 
			 | 
		
	
		
			
			| 
				
			 | 
			
				450
			 | 
			
			
				+    chroot "$rootdir" make 
			 | 
		
	
		
			
			| 
				
			 | 
			
				451
			 | 
			
			
				+    chroot "$rootdir" make install 
			 | 
		
	
		
			
			| 
				
			 | 
			
				452
			 | 
			
			
				+    chroot "$rootdir" cp /usr/local/lib/libtoxcore* /usr/lib/ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				453
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				454
			 | 
			
			
				+    if [ ! -f $rootdir/usr/local/bin/tox-bootstrapd ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				455
			 | 
			
			
				+        echo $"File not found /usr/local/bin/tox-bootstrapd" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				456
			 | 
			
			
				+    fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				457
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				458
			 | 
			
			
				+    chroot "$rootdir" useradd --home-dir /var/lib/tox-bootstrapd --create-home --system --shell /sbin/nologin --comment $"Account to run Tox's DHT bootstrap daemon" --user-group tox-bootstrapd 
			 | 
		
	
		
			
			| 
				
			 | 
			
				459
			 | 
			
			
				+    chroot "$rootdir" chmod 700 /var/lib/tox-bootstrapd 
			 | 
		
	
		
			
			| 
				
			 | 
			
				460
			 | 
			
			
				+    if [ ! -f $rootdir/$INSTALL_DIR/toxcore/other/bootstrap_daemon/tox-bootstrapd.conf ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				461
			 | 
			
			
				+        echo $"File not found $INSTALL_DIR/toxcore/other/bootstrap_daemon/tox-bootstrapd.conf" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				462
			 | 
			
			
				+    fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				463
			 | 
			
			
				+    # remove Maildir 
			 | 
		
	
		
			
			| 
				
			 | 
			
				464
			 | 
			
			
				+    if [ -d $rootdir/var/lib/tox-bootstrapd/Maildir ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				465
			 | 
			
			
				+        rm -rf $rootdir/var/lib/tox-bootstrapd/Maildir 
			 | 
		
	
		
			
			| 
				
			 | 
			
				466
			 | 
			
			
				+    fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				467
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				468
			 | 
			
			
				+    # create configuration file 
			 | 
		
	
		
			
			| 
				
			 | 
			
				469
			 | 
			
			
				+    echo "port = $TOX_PORT" > $rootdir/etc/tox-bootstrapd.conf 
			 | 
		
	
		
			
			| 
				
			 | 
			
				470
			 | 
			
			
				+    echo 'keys_file_path = "/var/lib/tox-bootstrapd/keys"' >> $rootdir/etc/tox-bootstrapd.conf 
			 | 
		
	
		
			
			| 
				
			 | 
			
				471
			 | 
			
			
				+    echo 'pid_file_path = "/var/run/tox-bootstrapd/tox-bootstrapd.pid"' >> $rootdir/etc/tox-bootstrapd.conf 
			 | 
		
	
		
			
			| 
				
			 | 
			
				472
			 | 
			
			
				+    echo 'enable_ipv6 = true' >> $rootdir/etc/tox-bootstrapd.conf 
			 | 
		
	
		
			
			| 
				
			 | 
			
				473
			 | 
			
			
				+    echo 'enable_ipv4_fallback = true' >> $rootdir/etc/tox-bootstrapd.conf 
			 | 
		
	
		
			
			| 
				
			 | 
			
				474
			 | 
			
			
				+    echo 'enable_lan_discovery = true' >> $rootdir/etc/tox-bootstrapd.conf 
			 | 
		
	
		
			
			| 
				
			 | 
			
				475
			 | 
			
			
				+    echo 'enable_tcp_relay = true' >> $rootdir/etc/tox-bootstrapd.conf 
			 | 
		
	
		
			
			| 
				
			 | 
			
				476
			 | 
			
			
				+    echo "tcp_relay_ports = [443, 3389, $TOX_PORT]" >> $rootdir/etc/tox-bootstrapd.conf 
			 | 
		
	
		
			
			| 
				
			 | 
			
				477
			 | 
			
			
				+    echo 'enable_motd = true' >> $rootdir/etc/tox-bootstrapd.conf 
			 | 
		
	
		
			
			| 
				
			 | 
			
				478
			 | 
			
			
				+    echo 'motd = "tox-bootstrapd"' >> $rootdir/etc/tox-bootstrapd.conf 
			 | 
		
	
		
			
			| 
				
			 | 
			
				479
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				480
			 | 
			
			
				+    if [ $TOX_NODES ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				481
			 | 
			
			
				+        echo 'bootstrap_nodes = (' >> $rootdir/etc/tox-bootstrapd.conf 
			 | 
		
	
		
			
			| 
				
			 | 
			
				482
			 | 
			
			
				+        toxcount=0 
			 | 
		
	
		
			
			| 
				
			 | 
			
				483
			 | 
			
			
				+        while [ "x${TOX_NODES[toxcount]}" != "x" ] 
			 | 
		
	
		
			
			| 
				
			 | 
			
				484
			 | 
			
			
				+        do 
			 | 
		
	
		
			
			| 
				
			 | 
			
				485
			 | 
			
			
				+            toxval_ipv4=$(echo $TOX_NODES[toxcount] | awk -F ',' '{print $1}') 
			 | 
		
	
		
			
			| 
				
			 | 
			
				486
			 | 
			
			
				+            toxval_ipv6=$(echo $TOX_NODES[toxcount] | awk -F ',' '{print $2}') 
			 | 
		
	
		
			
			| 
				
			 | 
			
				487
			 | 
			
			
				+            toxval_port=$(echo $TOX_NODES[toxcount] | awk -F ',' '{print $3}') 
			 | 
		
	
		
			
			| 
				
			 | 
			
				488
			 | 
			
			
				+            toxval_pubkey=$(echo $TOX_NODES[toxcount] | awk -F ',' '{print $4}') 
			 | 
		
	
		
			
			| 
				
			 | 
			
				489
			 | 
			
			
				+            toxval_maintainer=$(echo $TOX_NODES[toxcount] | awk -F ',' '{print $5}') 
			 | 
		
	
		
			
			| 
				
			 | 
			
				490
			 | 
			
			
				+            echo "{ // $toxval_maintainer" >> $rootdir/etc/tox-bootstrapd.conf 
			 | 
		
	
		
			
			| 
				
			 | 
			
				491
			 | 
			
			
				+            if [[ $toxval_ipv6 != 'NONE' ]]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				492
			 | 
			
			
				+                echo "  address = \"$toxval_ipv6\"" >> $rootdir/etc/tox-bootstrapd.conf 
			 | 
		
	
		
			
			| 
				
			 | 
			
				493
			 | 
			
			
				+            else 
			 | 
		
	
		
			
			| 
				
			 | 
			
				494
			 | 
			
			
				+                echo "  address = \"$toxval_ipv4\"" >> $rootdir/etc/tox-bootstrapd.conf 
			 | 
		
	
		
			
			| 
				
			 | 
			
				495
			 | 
			
			
				+            fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				496
			 | 
			
			
				+            echo "  port = $toxval_port" >> $rootdir/etc/tox-bootstrapd.conf 
			 | 
		
	
		
			
			| 
				
			 | 
			
				497
			 | 
			
			
				+            echo "  public_key = \"$toxval_pubkey\"" >> $rootdir/etc/tox-bootstrapd.conf 
			 | 
		
	
		
			
			| 
				
			 | 
			
				498
			 | 
			
			
				+            toxcount=$(( $toxcount + 1 )) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				499
			 | 
			
			
				+            if [ "x${TOX_NODES[toxcount]}" != "x" ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				500
			 | 
			
			
				+                echo "}," >> $rootdir/etc/tox-bootstrapd.conf 
			 | 
		
	
		
			
			| 
				
			 | 
			
				501
			 | 
			
			
				+            else 
			 | 
		
	
		
			
			| 
				
			 | 
			
				502
			 | 
			
			
				+                echo "}" >> $rootdir/etc/tox-bootstrapd.conf 
			 | 
		
	
		
			
			| 
				
			 | 
			
				503
			 | 
			
			
				+            fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				504
			 | 
			
			
				+        done 
			 | 
		
	
		
			
			| 
				
			 | 
			
				505
			 | 
			
			
				+        echo ')' >> $rootdir/etc/tox-bootstrapd.conf 
			 | 
		
	
		
			
			| 
				
			 | 
			
				506
			 | 
			
			
				+    fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				507
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				508
			 | 
			
			
				+    if [ ! -f $rootdir/$INSTALL_DIR/toxcore/other/bootstrap_daemon/tox-bootstrapd.service ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				509
			 | 
			
			
				+        echo $"File not found $INSTALL_DIR/toxcore/other/bootstrap_daemon/tox-bootstrapd.service" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				510
			 | 
			
			
				+    fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				511
			 | 
			
			
				+    cp $rootdir/$INSTALL_DIR/toxcore/other/bootstrap_daemon/tox-bootstrapd.service $rootdir/etc/systemd/system/ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				512
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				513
			 | 
			
			
				+    chroot "$rootdir" systemctl enable tox-bootstrapd.service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				514
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				515
			 | 
			
			
				+    # TODO 
			 | 
		
	
		
			
			| 
				
			 | 
			
				516
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				517
			 | 
			
			
				+    TOX_PUBLIC_KEY=$(cat /var/log/syslog | grep tox | grep "Public Key" | awk -F ' ' '{print $8}' | tail -1) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				518
			 | 
			
			
				+    if [ ${#TOX_PUBLIC_KEY} -lt 30 ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				519
			 | 
			
			
				+        echo $'Could not obtain the tox node public key' 
			 | 
		
	
		
			
			| 
				
			 | 
			
				520
			 | 
			
			
				+        exit 6529 
			 | 
		
	
		
			
			| 
				
			 | 
			
				521
			 | 
			
			
				+    fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				522
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				523
			 | 
			
			
				+    # save the public key for later reference 
			 | 
		
	
		
			
			| 
				
			 | 
			
				524
			 | 
			
			
				+    echo "$TOX_PUBLIC_KEY" > $TOX_BOOTSTRAP_ID_FILE 
			 | 
		
	
		
			
			| 
				
			 | 
			
				525
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				526
			 | 
			
			
				+    configure_firewall_for_tox 
			 | 
		
	
		
			
			| 
				
			 | 
			
				527
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				528
			 | 
			
			
				+    if ! grep -q $"Your Tox node public key is" /home/$MY_USERNAME/README; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				529
			 | 
			
			
				+        echo '' >> /home/$MY_USERNAME/README 
			 | 
		
	
		
			
			| 
				
			 | 
			
				530
			 | 
			
			
				+        echo '' >> /home/$MY_USERNAME/README 
			 | 
		
	
		
			
			| 
				
			 | 
			
				531
			 | 
			
			
				+        echo 'Tox' >> /home/$MY_USERNAME/README 
			 | 
		
	
		
			
			| 
				
			 | 
			
				532
			 | 
			
			
				+        echo '===' >> /home/$MY_USERNAME/README 
			 | 
		
	
		
			
			| 
				
			 | 
			
				533
			 | 
			
			
				+        echo $"tox onion domain: ${TOX_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README 
			 | 
		
	
		
			
			| 
				
			 | 
			
				534
			 | 
			
			
				+        echo $"Your Tox node public key is: $TOX_PUBLIC_KEY" >> /home/$MY_USERNAME/README 
			 | 
		
	
		
			
			| 
				
			 | 
			
				535
			 | 
			
			
				+        echo $'In the Toxic client you can connect to it with:' >> /home/$MY_USERNAME/README 
			 | 
		
	
		
			
			| 
				
			 | 
			
				536
			 | 
			
			
				+        echo "  /connect $DEFAULT_DOMAIN_NAME.local $TOX_PORT $TOX_PUBLIC_KEY" >> /home/$MY_USERNAME/README 
			 | 
		
	
		
			
			| 
				
			 | 
			
				537
			 | 
			
			
				+        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README 
			 | 
		
	
		
			
			| 
				
			 | 
			
				538
			 | 
			
			
				+        chmod 600 /home/$MY_USERNAME/README 
			 | 
		
	
		
			
			| 
				
			 | 
			
				539
			 | 
			
			
				+    fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				540
			 | 
			
			
				+} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				541
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				437
			 | 
			
				542
			 | 
			
			
				 initialise_mesh() { 
			 | 
		
	
		
			
			| 
				438
			 | 
			
				543
			 | 
			
			
				     if [[ $VARIANT != "mesh" ]]; then 
			 | 
		
	
		
			
			| 
				439
			 | 
			
				544
			 | 
			
			
				         return 
			 |