Bladeren bron

Move to repo version of tahoe-lafs

For magic folder and maybe multiple introducers in future
Bob Mottram 8 jaren geleden
bovenliggende
commit
ccdf314253
3 gewijzigde bestanden met toevoegingen van 65 en 18 verwijderingen
  1. 56
    17
      src/freedombone-app-tahoelafs
  2. 8
    0
      src/freedombone-image-customise
  3. 1
    1
      src/freedombone-image-mesh

+ 56
- 17
src/freedombone-app-tahoelafs Bestand weergeven

@@ -30,17 +30,21 @@
30 30
 
31 31
 VARIANTS='mesh'
32 32
 
33
+TAHOELAFS_REPO="https://github.com/tahoe-lafs/tahoe-lafs"
34
+TAHOELAFS_COMMIT='30b421d48b3d1dae2ef507bf27a1f3816300cd92'
35
+
33 36
 TAHOELAFS_PORT=50213
34 37
 TAHOELAFS_WEB_PORT=3456
35 38
 TAHOELAFS_STORAGE_SPACE=1G
36 39
 TAHOELAFS_SHARED_DIR='Shared'
40
+TAHOE_COMMAND="cd /var/lib/tahoelafs && venv/bin/tahoe"
37 41
 
38 42
 function reconfigure_tahoelafs {
39 43
     for d in /home/*/ ; do
40 44
         USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
41 45
         if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
42 46
             if [ -d /home/$USERNAME/.tahoe ]; then
43
-                su -c 'tahoe stop' - $USERNAME
47
+                su -c "$TAHOE_COMMAND stop" - $USERNAME
44 48
                 rm -rf /home/$USERNAME/.tahoe
45 49
             fi
46 50
 
@@ -48,7 +52,7 @@ function reconfigure_tahoelafs {
48 52
                 rm -rf /home/$USERNAME/${TAHOELAFS_SHARED_DIR}
49 53
             fi
50 54
 
51
-            su -c 'tahoe create-node' - $USERNAME
55
+            su -c "cd $TAHOE_COMMAND create-node" - $USERNAME
52 56
 
53 57
             if [ ! -d /home/$USERNAME/.tahoe ]; then
54 58
                 exit 63722
@@ -87,12 +91,13 @@ function reconfigure_tahoelafs {
87 91
             echo '[helper]' >> $TAHOELAFS_CONFIG
88 92
             echo 'enabled = false' >> $TAHOELAFS_CONFIG
89 93
             echo '' >> $TAHOELAFS_CONFIG
90
-            echo '[drop_upload]' >> $TAHOELAFS_CONFIG
94
+            echo '[magic_folder]' >> $TAHOELAFS_CONFIG
91 95
             echo 'enabled = true' >> $TAHOELAFS_CONFIG
92
-            echo "local.directory = ~/${TAHOELAFS_SHARED_DIR}" >> $TAHOELAFS_CONFIG
96
+            echo "local.directory = /home/${USERNAME}/${TAHOELAFS_SHARED_DIR}" >> $TAHOELAFS_CONFIG
93 97
             chown $USERNAME:$USERNAME $TAHOELAFS_CONFIG
94 98
 
95
-            su -c 'tahoe start' - $USERNAME
99
+            su -c "$TAHOE_COMMAND start" - $USERNAME
100
+            su -c "$TAHOE_COMMAND magic-folder create $HOSTNAME" - $USERNAME
96 101
         fi
97 102
     done
98 103
 }
@@ -131,8 +136,15 @@ function remove_tahoelafs {
131 136
     function_check save_firewall_settings
132 137
     save_firewall_settings
133 138
 
134
-    pip uninstall tahoe-lafs
135
-    apt-get -y remove --purge tahoe-lafs
139
+    for d in /home/*/ ; do
140
+        USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
141
+        if [ -f /home/$USERNAME/.tahoe ]; then
142
+            su -c "$TAHOE_COMMAND stop" - $USERNAME
143
+            rm -rf /home/$USERNAME/.tahoe
144
+        fi
145
+    done
146
+
147
+    rm -rf /var/lib/tahoelafs
136 148
 
137 149
     sed -i '/install_tahoelafs/d' $COMPLETION_FILE
138 150
     sed -i '/configure_firewall_for_tahoelafs/d' $COMPLETION_FILE
@@ -152,6 +164,7 @@ function configure_firewall_for_tahoelafs {
152 164
 
153 165
 function tahoelafs_update_script {
154 166
     update_script_filename=$1
167
+    update_script_type=$2
155 168
 
156 169
     echo '#!/bin/bash' > $update_script_filename
157 170
     echo 'PEERS_FILE=$(mktemp /tmp/tahoelafs-peers.XXXXXX)' >> $update_script_filename
@@ -187,23 +200,44 @@ function tahoelafs_update_script {
187 200
     echo '    if [ -f /home/$USERNAME/.tahoe/tahoe.cfg ]; then' >> $update_script_filename
188 201
     echo '        if ! grep -q "introducer.furl = ${furl}" /home/$USERNAME/.tahoe/tahoe.cfg; then' >> $update_script_filename
189 202
     echo '            sed -i "s|introducer.furl =.*|introducer.furl = ${furl}|g" /home/$USERNAME/.tahoe/tahoe.cfg' >> $update_script_filename
203
+
204
+    # change the nickname to the same as used by tox
205
+    if [ $update_script_type ]; then
206
+        if [[ $update_script_type == "mesh" ]]; then
207
+            echo '            TOX_USERNAME=$(toxid --showuser)' >> $update_script_filename
208
+            echo '            sed -i "s|nickname =.*|nickname = ${TOX_USERNAME}|g" /home/$USERNAME/.tahoe/tahoe.cfg' >> $update_script_filename
209
+        fi
210
+    fi
211
+
190 212
     echo '            chown $USERNAME:$USERNAME /home/$USERNAME/.tahoe/tahoe.cfg' >> $update_script_filename
191
-    echo '            su -c "tahoe restart" - $USERNAME' >> $update_script_filename
213
+    echo "            su -c '$TAHOE_COMMAND restart' - \$USERNAME" >> $update_script_filename
192 214
     echo '        fi' >> $update_script_filename
215
+
193 216
     echo '    fi' >> $update_script_filename
194 217
     echo 'done' >> $update_script_filename
195 218
     echo '' >> $update_script_filename
219
+
196 220
     echo 'exit 0' >> $update_script_filename
197 221
     chmod +x $update_script_filename
198 222
 }
199 223
 
200 224
 function mesh_install_tahoelafs {
201
-    chroot "$rootdir" apt-get -y install python-pip tahoe-lafs
202
-    chroot "$rootdir" pip install tahoe-lafs
203
-    chroot "$rootdir" su -c 'tahoe create-client' - $MY_USERNAME
204
-    if [ ! -d $rootdir/home/$MY_USERNAME/.tahoe ]; then
205
-        exit 63722
206
-    fi
225
+    chroot "$rootdir" apt-get -y install build-essential python-pip python-dev
226
+    chroot "$rootdir" apt-get -y install libffi-dev libssl-dev python-virtualenv
227
+
228
+    git clone $TAHOELAFS_REPO $rootdir/var/lib/tahoelafs
229
+    cd $rootdir/var/lib/tahoelafs
230
+    git checkout $TAHOELAFS_COMMIT -b $TAHOELAFS_COMMIT
231
+
232
+    cat <<EOF > $rootdir/root/install_tahoelafs
233
+cd /var/lib/tahoelafs
234
+virtualenv venv
235
+venv/bin/pip install --editable .
236
+EOF
237
+    chroot "$rootdir" chmod +x /root/install_tahoelafs
238
+    chroot "$rootdir" /root/install_tahoelafs
239
+    chroot "$rootdir" rm /root/install_tahoelafs
240
+
207 241
     tahoelafs_update_script $rootdir/usr/bin/update-tahoelafs
208 242
 
209 243
     if ! grep -q "update-tahoelafs" $rootdir/etc/crontab; then
@@ -221,14 +255,19 @@ function install_tahoelafs {
221 255
         return
222 256
     fi
223 257
 
224
-    apt-get -y install python-pip tahoe-lafs
225
-    pip install tahoe-lafs
258
+    apt-get -y install build-essential python-pip python-dev libffi-dev libssl-dev python-virtualenv
259
+
260
+    git_clone $TAHOELAFS_REPO /var/lib/tahoelafs
261
+    cd /var/lib/tahoelafs
262
+    git checkout $TAHOELAFS_COMMIT -b $TAHOELAFS_COMMIT
263
+    virtualenv venv
264
+    venv/bin/pip install --editable .
226 265
     configure_firewall_for_tahoelafs
227 266
     reconfigure_tahoelafs
228 267
     tahoelafs_update_script /usr/bin/update-tahoelafs
229 268
 
230 269
     function_check cron_add_mins
231
-    cron_add_mins 1 '/usr/bin/update-tahoelafs 2> /dev/null'
270
+    cron_add_mins 1 "/usr/bin/update-tahoelafs 2> /dev/null"
232 271
 
233 272
     echo 'install_tahoelafs' >> $COMPLETION_FILE
234 273
 }

+ 8
- 0
src/freedombone-image-customise Bestand weergeven

@@ -604,6 +604,7 @@ function mesh_client_startup_applications {
604 604
 
605 605
     START_DESKTOP=$rootdir/home/$MY_USERNAME/mesh-desktop.sh
606 606
     FIRST_BOOT=/home/$MY_USERNAME/.first_boot
607
+    TAHOE_COMMAND="cd /var/lib/tahoelafs && venv/bin/tahoe"
607 608
     echo '#!/bin/bash' > $START_DESKTOP
608 609
     echo "setxkbmap ${KEYBOARD_MAP}" > $START_DESKTOP
609 610
     echo 'dconf write /org/mate/caja/desktop/volumes-visible false' >> $START_DESKTOP
@@ -628,6 +629,7 @@ function mesh_client_startup_applications {
628 629
 
629 630
     echo '' >> $START_DESKTOP
630 631
     echo "if [ ! -f $FIRST_BOOT ]; then" >> $START_DESKTOP
632
+    echo "  $TAHOE_COMMAND start" >> $START_DESKTOP
631 633
     echo '  exit 0' >> $START_DESKTOP
632 634
     echo 'fi' >> $START_DESKTOP
633 635
     echo '' >> $START_DESKTOP
@@ -652,6 +654,12 @@ function mesh_client_startup_applications {
652 654
     echo '' >> $START_DESKTOP
653 655
     echo 'toxid --setuser "$INITIAL_TOX_USERNAME"' >> $START_DESKTOP
654 656
     echo '' >> $START_DESKTOP
657
+    echo "if [ -f /home/$MY_USERNAME/.tahoe/tahoe.cfg ]; then" >> $START_DESKTOP
658
+    echo "    sed -i 's|nickname =.*|nickname = \$INITIAL_TOX_USERNAME|g' /home/$MY_USERNAME/.tahoe/tahoe.cfg" >> $START_DESKTOP
659
+
660
+    echo "    $TAHOE_COMMAND restart" >> $START_DESKTOP
661
+    echo 'fi' >> $START_DESKTOP
662
+    echo '' >> $START_DESKTOP
655 663
     echo "rm -f $FIRST_BOOT" >> $START_DESKTOP
656 664
     echo '' >> $START_DESKTOP
657 665
     echo 'exit 0' >> $START_DESKTOP

+ 1
- 1
src/freedombone-image-mesh Bestand weergeven

@@ -523,7 +523,7 @@ function show_desktop_icons {
523 523
     chown ${MY_USERNAME}:${MY_USERNAME} /home/$MY_USERNAME/*.sh
524 524
 
525 525
     # link to Tahoe-LAFS Magic folder
526
-    ln -s /home/${MY_USERNAME}/Desktop/${TAHOELAFS_SHARED_DIR} /home/${MY_USERNAME}/${TAHOELAFS_SHARED_DIR}
526
+    #ln -s /home/${MY_USERNAME}/Desktop/${TAHOELAFS_SHARED_DIR} /home/${MY_USERNAME}/${TAHOELAFS_SHARED_DIR}
527 527
 
528 528
     # restart caja
529 529
     killall caja