Просмотр исходного кода

Move to repo version of tahoe-lafs

For magic folder and maybe multiple introducers in future
Bob Mottram 8 лет назад
Родитель
Сommit
ccdf314253
3 измененных файлов: 65 добавлений и 18 удалений
  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 Просмотреть файл

30
 
30
 
31
 VARIANTS='mesh'
31
 VARIANTS='mesh'
32
 
32
 
33
+TAHOELAFS_REPO="https://github.com/tahoe-lafs/tahoe-lafs"
34
+TAHOELAFS_COMMIT='30b421d48b3d1dae2ef507bf27a1f3816300cd92'
35
+
33
 TAHOELAFS_PORT=50213
36
 TAHOELAFS_PORT=50213
34
 TAHOELAFS_WEB_PORT=3456
37
 TAHOELAFS_WEB_PORT=3456
35
 TAHOELAFS_STORAGE_SPACE=1G
38
 TAHOELAFS_STORAGE_SPACE=1G
36
 TAHOELAFS_SHARED_DIR='Shared'
39
 TAHOELAFS_SHARED_DIR='Shared'
40
+TAHOE_COMMAND="cd /var/lib/tahoelafs && venv/bin/tahoe"
37
 
41
 
38
 function reconfigure_tahoelafs {
42
 function reconfigure_tahoelafs {
39
     for d in /home/*/ ; do
43
     for d in /home/*/ ; do
40
         USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
44
         USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
41
         if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
45
         if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
42
             if [ -d /home/$USERNAME/.tahoe ]; then
46
             if [ -d /home/$USERNAME/.tahoe ]; then
43
-                su -c 'tahoe stop' - $USERNAME
47
+                su -c "$TAHOE_COMMAND stop" - $USERNAME
44
                 rm -rf /home/$USERNAME/.tahoe
48
                 rm -rf /home/$USERNAME/.tahoe
45
             fi
49
             fi
46
 
50
 
48
                 rm -rf /home/$USERNAME/${TAHOELAFS_SHARED_DIR}
52
                 rm -rf /home/$USERNAME/${TAHOELAFS_SHARED_DIR}
49
             fi
53
             fi
50
 
54
 
51
-            su -c 'tahoe create-node' - $USERNAME
55
+            su -c "cd $TAHOE_COMMAND create-node" - $USERNAME
52
 
56
 
53
             if [ ! -d /home/$USERNAME/.tahoe ]; then
57
             if [ ! -d /home/$USERNAME/.tahoe ]; then
54
                 exit 63722
58
                 exit 63722
87
             echo '[helper]' >> $TAHOELAFS_CONFIG
91
             echo '[helper]' >> $TAHOELAFS_CONFIG
88
             echo 'enabled = false' >> $TAHOELAFS_CONFIG
92
             echo 'enabled = false' >> $TAHOELAFS_CONFIG
89
             echo '' >> $TAHOELAFS_CONFIG
93
             echo '' >> $TAHOELAFS_CONFIG
90
-            echo '[drop_upload]' >> $TAHOELAFS_CONFIG
94
+            echo '[magic_folder]' >> $TAHOELAFS_CONFIG
91
             echo 'enabled = true' >> $TAHOELAFS_CONFIG
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
             chown $USERNAME:$USERNAME $TAHOELAFS_CONFIG
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
         fi
101
         fi
97
     done
102
     done
98
 }
103
 }
131
     function_check save_firewall_settings
136
     function_check save_firewall_settings
132
     save_firewall_settings
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
     sed -i '/install_tahoelafs/d' $COMPLETION_FILE
149
     sed -i '/install_tahoelafs/d' $COMPLETION_FILE
138
     sed -i '/configure_firewall_for_tahoelafs/d' $COMPLETION_FILE
150
     sed -i '/configure_firewall_for_tahoelafs/d' $COMPLETION_FILE
152
 
164
 
153
 function tahoelafs_update_script {
165
 function tahoelafs_update_script {
154
     update_script_filename=$1
166
     update_script_filename=$1
167
+    update_script_type=$2
155
 
168
 
156
     echo '#!/bin/bash' > $update_script_filename
169
     echo '#!/bin/bash' > $update_script_filename
157
     echo 'PEERS_FILE=$(mktemp /tmp/tahoelafs-peers.XXXXXX)' >> $update_script_filename
170
     echo 'PEERS_FILE=$(mktemp /tmp/tahoelafs-peers.XXXXXX)' >> $update_script_filename
187
     echo '    if [ -f /home/$USERNAME/.tahoe/tahoe.cfg ]; then' >> $update_script_filename
200
     echo '    if [ -f /home/$USERNAME/.tahoe/tahoe.cfg ]; then' >> $update_script_filename
188
     echo '        if ! grep -q "introducer.furl = ${furl}" /home/$USERNAME/.tahoe/tahoe.cfg; then' >> $update_script_filename
201
     echo '        if ! grep -q "introducer.furl = ${furl}" /home/$USERNAME/.tahoe/tahoe.cfg; then' >> $update_script_filename
189
     echo '            sed -i "s|introducer.furl =.*|introducer.furl = ${furl}|g" /home/$USERNAME/.tahoe/tahoe.cfg' >> $update_script_filename
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
     echo '            chown $USERNAME:$USERNAME /home/$USERNAME/.tahoe/tahoe.cfg' >> $update_script_filename
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
     echo '        fi' >> $update_script_filename
214
     echo '        fi' >> $update_script_filename
215
+
193
     echo '    fi' >> $update_script_filename
216
     echo '    fi' >> $update_script_filename
194
     echo 'done' >> $update_script_filename
217
     echo 'done' >> $update_script_filename
195
     echo '' >> $update_script_filename
218
     echo '' >> $update_script_filename
219
+
196
     echo 'exit 0' >> $update_script_filename
220
     echo 'exit 0' >> $update_script_filename
197
     chmod +x $update_script_filename
221
     chmod +x $update_script_filename
198
 }
222
 }
199
 
223
 
200
 function mesh_install_tahoelafs {
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
     tahoelafs_update_script $rootdir/usr/bin/update-tahoelafs
241
     tahoelafs_update_script $rootdir/usr/bin/update-tahoelafs
208
 
242
 
209
     if ! grep -q "update-tahoelafs" $rootdir/etc/crontab; then
243
     if ! grep -q "update-tahoelafs" $rootdir/etc/crontab; then
221
         return
255
         return
222
     fi
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
     configure_firewall_for_tahoelafs
265
     configure_firewall_for_tahoelafs
227
     reconfigure_tahoelafs
266
     reconfigure_tahoelafs
228
     tahoelafs_update_script /usr/bin/update-tahoelafs
267
     tahoelafs_update_script /usr/bin/update-tahoelafs
229
 
268
 
230
     function_check cron_add_mins
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
     echo 'install_tahoelafs' >> $COMPLETION_FILE
272
     echo 'install_tahoelafs' >> $COMPLETION_FILE
234
 }
273
 }

+ 8
- 0
src/freedombone-image-customise Просмотреть файл

604
 
604
 
605
     START_DESKTOP=$rootdir/home/$MY_USERNAME/mesh-desktop.sh
605
     START_DESKTOP=$rootdir/home/$MY_USERNAME/mesh-desktop.sh
606
     FIRST_BOOT=/home/$MY_USERNAME/.first_boot
606
     FIRST_BOOT=/home/$MY_USERNAME/.first_boot
607
+    TAHOE_COMMAND="cd /var/lib/tahoelafs && venv/bin/tahoe"
607
     echo '#!/bin/bash' > $START_DESKTOP
608
     echo '#!/bin/bash' > $START_DESKTOP
608
     echo "setxkbmap ${KEYBOARD_MAP}" > $START_DESKTOP
609
     echo "setxkbmap ${KEYBOARD_MAP}" > $START_DESKTOP
609
     echo 'dconf write /org/mate/caja/desktop/volumes-visible false' >> $START_DESKTOP
610
     echo 'dconf write /org/mate/caja/desktop/volumes-visible false' >> $START_DESKTOP
628
 
629
 
629
     echo '' >> $START_DESKTOP
630
     echo '' >> $START_DESKTOP
630
     echo "if [ ! -f $FIRST_BOOT ]; then" >> $START_DESKTOP
631
     echo "if [ ! -f $FIRST_BOOT ]; then" >> $START_DESKTOP
632
+    echo "  $TAHOE_COMMAND start" >> $START_DESKTOP
631
     echo '  exit 0' >> $START_DESKTOP
633
     echo '  exit 0' >> $START_DESKTOP
632
     echo 'fi' >> $START_DESKTOP
634
     echo 'fi' >> $START_DESKTOP
633
     echo '' >> $START_DESKTOP
635
     echo '' >> $START_DESKTOP
652
     echo '' >> $START_DESKTOP
654
     echo '' >> $START_DESKTOP
653
     echo 'toxid --setuser "$INITIAL_TOX_USERNAME"' >> $START_DESKTOP
655
     echo 'toxid --setuser "$INITIAL_TOX_USERNAME"' >> $START_DESKTOP
654
     echo '' >> $START_DESKTOP
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
     echo "rm -f $FIRST_BOOT" >> $START_DESKTOP
663
     echo "rm -f $FIRST_BOOT" >> $START_DESKTOP
656
     echo '' >> $START_DESKTOP
664
     echo '' >> $START_DESKTOP
657
     echo 'exit 0' >> $START_DESKTOP
665
     echo 'exit 0' >> $START_DESKTOP

+ 1
- 1
src/freedombone-image-mesh Просмотреть файл

523
     chown ${MY_USERNAME}:${MY_USERNAME} /home/$MY_USERNAME/*.sh
523
     chown ${MY_USERNAME}:${MY_USERNAME} /home/$MY_USERNAME/*.sh
524
 
524
 
525
     # link to Tahoe-LAFS Magic folder
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
     # restart caja
528
     # restart caja
529
     killall caja
529
     killall caja