Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
F
freedombone
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Context Sensitive Group
freedombone
Commits
41ce8516
Commit
41ce8516
authored
8 years ago
by
Bob Mottram
Browse files
Options
Downloads
Patches
Plain Diff
Bump qTox commit to include mesh mode and avatars path settings
parent
d5707ece
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/freedombone-app-tox
+527
-527
527 additions, 527 deletions
src/freedombone-app-tox
with
527 additions
and
527 deletions
src/freedombone-app-tox
+
527
−
527
View file @
41ce8516
...
...
@@ -47,634 +47,634 @@ TOXIC_COMMIT='cf16849b374e484a33a4dffa3dfb937b59d537f2'
TOXIC_FILE
=
/usr/local/bin/toxic
QTOX_REPO
=
"https://github.com/bashrc/qTox"
QTOX_COMMIT
=
'
505c5043828cf0fc43ee3f16279a131e50edc057
'
QTOX_COMMIT
=
'
e70761bed758b263a263f4e910ae0fd0311e9098
'
function
mesh_install_ffmpeg
{
chroot
"
${
rootdir
}
"
apt-get
-y
remove ffmpeg libav-tools
chroot
"
${
rootdir
}
"
apt-get
-y
install
build-essential
chroot
"
${
rootdir
}
"
apt-get
-y
install
--reinstall
libmp3lame-dev libvorbis-dev libtheora-dev libspeex-dev yasm pkg-config libopenjpeg-dev libx264-dev
mkdir
-p
${
rootdir
}
$INSTALL_DIR
/ffmpeg-release
cd
${
rootdir
}
$INSTALL_DIR
wget http://ffmpeg.org/releases/ffmpeg-3.1.tar.bz2
tar
xvjf ffmpeg-3.1.tar.bz2
chroot
${
rootdir
}
/bin/bash
-x
<<
EOF
chroot
"
${
rootdir
}
"
apt-get
-y
remove ffmpeg libav-tools
chroot
"
${
rootdir
}
"
apt-get
-y
install
build-essential
chroot
"
${
rootdir
}
"
apt-get
-y
install
--reinstall
libmp3lame-dev libvorbis-dev libtheora-dev libspeex-dev yasm pkg-config libopenjpeg-dev libx264-dev
mkdir
-p
${
rootdir
}
$INSTALL_DIR
/ffmpeg-release
cd
${
rootdir
}
$INSTALL_DIR
wget http://ffmpeg.org/releases/ffmpeg-3.1.tar.bz2
tar
xvjf ffmpeg-3.1.tar.bz2
chroot
${
rootdir
}
/bin/bash
-x
<<
EOF
cd
${
INSTALL_DIR
}
/ffmpeg-3.1
./configure --enable-gpl --enable-postproc --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libx264 --enable-libspeex --enable-shared --enable-pthreads --enable-libopenjpeg
make
make install
EOF
chroot
"
${
rootdir
}
"
apt-get
install
libav-tools
chroot
"
${
rootdir
}
"
apt-get
install
libav-tools
}
function
mesh_tox_qtox
{
if
[
!
${
rootdir
}
$INSTALL_DIR
]
;
then
INSTALL_DIR
=
${
rootdir
}
/root/build
fi
if
[
!
-d
${
rootdir
}
$INSTALL_DIR
]
;
then
mkdir
-p
${
rootdir
}
$INSTALL_DIR
fi
chroot
"
${
rootdir
}
"
apt-get
-y
install
build-essential libatk1.0-0 libbz2-1.0 libc6 libcairo2 libdbus-1-3 libegl1-mesa libfontconfig1 libfreetype6 libgcc1 libgdk-pixbuf2.0-0 libgl1-mesa-glx libglib2.0-0 libgtk2.0-0 libice6 libicu52 libjpeg62-turbo libmng1 libmtdev1 libopenal1 libopus0 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpng12-0 libqrencode3 libsm6 libsodium13 libsqlite3-0 libssl1.0.0 libstdc++6 libtiff5 libudev1 libvpx1 libwayland-client0 libwayland-cursor0 libwayland-egl1-mesa libwebp5 libx11-6 libx11-xcb1 libxcb-glx0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-render0 libxcb-shape0 libxcb-shm0 libxcb-sync1 libxcb-xfixes0 libxcb-xinerama0 libxcb1 libxext6 libxfixes3 libxi6 libxrender1 libxss1 zlib1g libopus-dev libvpx-dev
chroot
"
${
rootdir
}
"
apt-get
-y
install
build-essential qt5-qmake qt5-default qttools5-dev-tools libqt5opengl5-dev libqt5svg5-dev libopenal-dev libxss-dev qrencode libqrencode-dev libglib2.0-dev libgdk-pixbuf2.0-dev libgtk2.0-dev libsqlcipher-dev libopus-dev libvpx-dev libavformat-dev libavdevice-dev libswscale-dev libavutil-dev libavcodec-dev libavcodec56 libavcodec57 libavfilter-dev libavfilter6
#chroot "${rootdir}" apt-get -y install --force-yes tox-ffmpeg-dev
mesh_install_ffmpeg
git clone
$QTOX_REPO
${
rootdir
}
$INSTALL_DIR
/qtox
if
[
!
-d
${
rootdir
}
$INSTALL_DIR
/qtox
]
;
then
exit
72428
fi
cd
${
rootdir
}${
INSTALL_DIR
}
/qtox
git checkout
$QTOX_COMMIT
-b
$QTOX_COMMIT
chroot
${
rootdir
}
/bin/bash
-x
<<
EOF
if
[
!
${
rootdir
}
$INSTALL_DIR
]
;
then
INSTALL_DIR
=
${
rootdir
}
/root/build
fi
if
[
!
-d
${
rootdir
}
$INSTALL_DIR
]
;
then
mkdir
-p
${
rootdir
}
$INSTALL_DIR
fi
chroot
"
${
rootdir
}
"
apt-get
-y
install
build-essential libatk1.0-0 libbz2-1.0 libc6 libcairo2 libdbus-1-3 libegl1-mesa libfontconfig1 libfreetype6 libgcc1 libgdk-pixbuf2.0-0 libgl1-mesa-glx libglib2.0-0 libgtk2.0-0 libice6 libicu52 libjpeg62-turbo libmng1 libmtdev1 libopenal1 libopus0 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpng12-0 libqrencode3 libsm6 libsodium13 libsqlite3-0 libssl1.0.0 libstdc++6 libtiff5 libudev1 libvpx1 libwayland-client0 libwayland-cursor0 libwayland-egl1-mesa libwebp5 libx11-6 libx11-xcb1 libxcb-glx0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-render0 libxcb-shape0 libxcb-shm0 libxcb-sync1 libxcb-xfixes0 libxcb-xinerama0 libxcb1 libxext6 libxfixes3 libxi6 libxrender1 libxss1 zlib1g libopus-dev libvpx-dev
chroot
"
${
rootdir
}
"
apt-get
-y
install
build-essential qt5-qmake qt5-default qttools5-dev-tools libqt5opengl5-dev libqt5svg5-dev libopenal-dev libxss-dev qrencode libqrencode-dev libglib2.0-dev libgdk-pixbuf2.0-dev libgtk2.0-dev libsqlcipher-dev libopus-dev libvpx-dev libavformat-dev libavdevice-dev libswscale-dev libavutil-dev libavcodec-dev libavcodec56 libavcodec57 libavfilter-dev libavfilter6
#chroot "${rootdir}" apt-get -y install --force-yes tox-ffmpeg-dev
mesh_install_ffmpeg
git clone
$QTOX_REPO
${
rootdir
}
$INSTALL_DIR
/qtox
if
[
!
-d
${
rootdir
}
$INSTALL_DIR
/qtox
]
;
then
exit
72428
fi
cd
${
rootdir
}${
INSTALL_DIR
}
/qtox
git checkout
$QTOX_COMMIT
-b
$QTOX_COMMIT
chroot
${
rootdir
}
/bin/bash
-x
<<
EOF
cd
${
INSTALL_DIR
}
/qtox
qmake
make
make install
EOF
if
[
!
-f
${
rootdir
}
/usr/bin/qtox
]
;
then
exit
75784
fi
if
[
!
-f
${
rootdir
}
/usr/bin/qtox
]
;
then
exit
75784
fi
}
function
reconfigure_tox
{
echo
-n
''
echo
-n
''
}
function
upgrade_tox
{
if
!
grep
-Fxq
"install_tox"
$COMPLETION_FILE
;
then
return
fi
function_check set_repo_commit
set_repo_commit
$INSTALL_DIR
/toxcore
"toxcore commit"
"
$TOXCORE_COMMIT
"
$TOXCORE_REPO
function_check set_repo_commit
set_repo_commit
$INSTALL_DIR
/toxic
"Toxic commit"
"
$TOXIC_COMMIT
"
$TOXIC_REPO
if
!
grep
-Fxq
"install_tox"
$COMPLETION_FILE
;
then
return
fi
function_check set_repo_commit
set_repo_commit
$INSTALL_DIR
/toxcore
"toxcore commit"
"
$TOXCORE_COMMIT
"
$TOXCORE_REPO
function_check set_repo_commit
set_repo_commit
$INSTALL_DIR
/toxic
"Toxic commit"
"
$TOXIC_COMMIT
"
$TOXIC_REPO
}
function
backup_local_tox
{
if
[
-d
/var/lib/tox-bootstrapd
]
;
then
echo
$"Backing up Tox"
if
[
-d
/var/lib/tox-bootstrapd
]
;
then
echo
$"Backing up Tox"
if
[
-d
/var/lib/tox-bootstrapd
]
;
then
cp
/etc/tox-bootstrapd.conf /var/lib/tox-bootstrapd
if
[
-d
/var/lib/tox-bootstrapd/Maildir
]
;
then
rm
-rf
/var/lib/tox-bootstrapd/Maildir
fi
fi
if
[
-d
/var/lib/tox-bootstrapd
]
;
then
cp
/etc/tox-bootstrapd.conf /var/lib/tox-bootstrapd
if
[
-d
/var/lib/tox-bootstrapd/Maildir
]
;
then
rm
-rf
/var/lib/tox-bootstrapd/Maildir
fi
fi
function_check backup_directory_to_usb
backup_directory_to_usb /var/lib/tox-bootstrapd tox
function_check backup_directory_to_usb
backup_directory_to_usb /var/lib/tox-bootstrapd tox
echo
$"Backup of Tox complete"
fi
echo
$"Backup of Tox complete"
fi
}
function
restore_local_tox
{
if
[
-d
$USB_MOUNT
/backup/tox
]
;
then
echo
$"Restoring Tox node settings"
function_check restore_directory_from_usb
restore_directory_from_usb / tox
if
[
!
"
$?
"
=
"0"
]
;
then
function_check set_user_permissions
set_user_permissions
function_check backup_unmount_drive
backup_unmount_drive
exit
6393
fi
cp
/var/lib/tox-bootstrapd/tox-bootstrapd.conf /etc/tox-bootstrapd.conf
systemctl restart tox-bootstrapd.service
if
[
!
"
$?
"
=
"0"
]
;
then
systemctl status tox-bootstrapd.service
function_check set_user_permissions
set_user_permissions
function_check backup_unmount_drive
backup_unmount_drive
exit
59369
fi
fi
if
[
-d
$USB_MOUNT
/backup/tox
]
;
then
echo
$"Restoring Tox node settings"
function_check restore_directory_from_usb
restore_directory_from_usb / tox
if
[
!
"
$?
"
=
"0"
]
;
then
function_check set_user_permissions
set_user_permissions
function_check backup_unmount_drive
backup_unmount_drive
exit
6393
fi
cp
/var/lib/tox-bootstrapd/tox-bootstrapd.conf /etc/tox-bootstrapd.conf
systemctl restart tox-bootstrapd.service
if
[
!
"
$?
"
=
"0"
]
;
then
systemctl status tox-bootstrapd.service
function_check set_user_permissions
set_user_permissions
function_check backup_unmount_drive
backup_unmount_drive
exit
59369
fi
fi
}
function
backup_remote_tox
{
if
[
-d
/var/lib/tox-bootstrapd
]
;
then
echo
"Backing up Tox node settings"
if
[
-d
/var/lib/tox-bootstrapd/Maildir
]
;
then
rm
-rf
/var/lib/tox-bootstrapd/Maildir
fi
cp
/etc/tox-bootstrapd.conf /var/lib/tox-bootstrapd
backup_directory_to_friend /var/lib/tox-bootstrapd tox
echo
"Backup of Tox node settings complete"
fi
if
[
-d
/var/lib/tox-bootstrapd
]
;
then
echo
"Backing up Tox node settings"
if
[
-d
/var/lib/tox-bootstrapd/Maildir
]
;
then
rm
-rf
/var/lib/tox-bootstrapd/Maildir
fi
cp
/etc/tox-bootstrapd.conf /var/lib/tox-bootstrapd
backup_directory_to_friend /var/lib/tox-bootstrapd tox
echo
"Backup of Tox node settings complete"
fi
}
function
restore_remote_tox
{
if
[
-d
$SERVER_DIRECTORY
/backup/tox
]
;
then
echo
$"Restoring Tox node settings"
function_check restore_directory_from_friend
restore_directory_from_friend / tox
if
[
!
"
$?
"
=
"0"
]
;
then
exit
93653
fi
cp
/var/lib/tox-bootstrapd/tox-bootstrapd.conf /etc/tox-bootstrapd.conf
systemctl restart tox-bootstrapd.service
if
[
!
"
$?
"
=
"0"
]
;
then
systemctl status tox-bootstrapd.service
exit
59369
fi
echo
$"Restore of Tox node complete"
fi
if
[
-d
$SERVER_DIRECTORY
/backup/tox
]
;
then
echo
$"Restoring Tox node settings"
function_check restore_directory_from_friend
restore_directory_from_friend / tox
if
[
!
"
$?
"
=
"0"
]
;
then
exit
93653
fi
cp
/var/lib/tox-bootstrapd/tox-bootstrapd.conf /etc/tox-bootstrapd.conf
systemctl restart tox-bootstrapd.service
if
[
!
"
$?
"
=
"0"
]
;
then
systemctl status tox-bootstrapd.service
exit
59369
fi
echo
$"Restore of Tox node complete"
fi
}
function
remove_tox_node
{
if
!
grep
-Fxq
"install_tox_node"
$COMPLETION_FILE
;
then
return
fi
iptables
-D
INPUT
-p
tcp
--dport
$TOX_PORT
-j
ACCEPT
function_check save_firewall_settings
save_firewall_settings
function_check remove_onion_service
remove_onion_service tox
${
TOX_PORT
}
${
PROJECT_NAME
}
-mesh-install
-f
tox_node
--remove
yes
if
[
!
"
$?
"
=
"0"
]
;
then
echo
$'Failed to remove tox node'
exit
763836
fi
sed
-i
'/install_tox_node/d'
$COMPLETION_FILE
sed
-i
'/configure_firewall_for_tox/d'
$COMPLETION_FILE
if
!
grep
-Fxq
"install_tox_node"
$COMPLETION_FILE
;
then
return
fi
iptables
-D
INPUT
-p
tcp
--dport
$TOX_PORT
-j
ACCEPT
function_check save_firewall_settings
save_firewall_settings
function_check remove_onion_service
remove_onion_service tox
${
TOX_PORT
}
${
PROJECT_NAME
}
-mesh-install
-f
tox_node
--remove
yes
if
[
!
"
$?
"
=
"0"
]
;
then
echo
$'Failed to remove tox node'
exit
763836
fi
sed
-i
'/install_tox_node/d'
$COMPLETION_FILE
sed
-i
'/configure_firewall_for_tox/d'
$COMPLETION_FILE
}
function
remove_tox_avahi
{
if
!
grep
-Fxq
"tox_avahi"
$COMPLETION_FILE
;
then
return
fi
cd
$INSTALL_DIR
/toxid
make uninstall
rm
-rf
$INSTALL_DIR
/toxid
sed
-i
'/toxavahi/d'
/etc/crontab
systemctl restart cron
sed
-i
'/tox_avahi/d'
$COMPLETION_FILE
if
!
grep
-Fxq
"tox_avahi"
$COMPLETION_FILE
;
then
return
fi
cd
$INSTALL_DIR
/toxid
make uninstall
rm
-rf
$INSTALL_DIR
/toxid
sed
-i
'/toxavahi/d'
/etc/crontab
systemctl restart cron
sed
-i
'/tox_avahi/d'
$COMPLETION_FILE
}
function
remove_tox_client
{
if
!
grep
-Fxq
"install_tox_client"
$COMPLETION_FILE
;
then
return
fi
${
PROJECT_NAME
}
-mesh-install
-f
tox_client
--remove
yes
if
[
!
"
$?
"
=
"0"
]
;
then
echo
$'Could not remove Tox client'
exit
737253
fi
sed
-i
'/install_tox_client/d'
$COMPLETION_FILE
sed
-i
'/Tox /d'
$COMPLETION_FILE
sed
-i
'/Toxic /d'
$COMPLETION_FILE
if
!
grep
-Fxq
"install_tox_client"
$COMPLETION_FILE
;
then
return
fi
${
PROJECT_NAME
}
-mesh-install
-f
tox_client
--remove
yes
if
[
!
"
$?
"
=
"0"
]
;
then
echo
$'Could not remove Tox client'
exit
737253
fi
sed
-i
'/install_tox_client/d'
$COMPLETION_FILE
sed
-i
'/Tox /d'
$COMPLETION_FILE
sed
-i
'/Toxic /d'
$COMPLETION_FILE
}
function
remove_tox
{
remove_tox_client
remove_tox_avahi
remove_tox_node
remove_tox_client
remove_tox_avahi
remove_tox_node
}
function
configure_firewall_for_tox
{
if
[
!
$INSTALLING_MESH
]
;
then
if
[
-f
$COMPLETION_FILE
]
;
then
if
grep
-Fxq
"configure_firewall_for_tox"
$COMPLETION_FILE
;
then
return
fi
fi
fi
if
[[
$INSTALLED_WITHIN_DOCKER
==
"yes"
]]
;
then
# docker does its own firewalling
return
fi
if
[[
$ONION_ONLY
!=
"no"
]]
;
then
return
fi
TOX_PORT_MAIN
=
$(
cat
/usr/share/
${
PROJECT_NAME
}
/apps/
${
PROJECT_NAME
}
-app-tox
|
grep
"TOX_PORT="
|
head
-n
1 |
awk
-F
'='
'{print $2}'
)
if
[
${#
TOX_PORT_MAIN
}
-gt
2
]
;
then
TOX_PORT
=
$TOX_PORT_MAIN
fi
if
[
!
$TOX_PORT
]
;
then
echo
$'No Tox port was specified'
exit
32856
fi
iptables
-A
INPUT
-p
tcp
--dport
$TOX_PORT
-j
ACCEPT
function_check save_firewall_settings
save_firewall_settings
OPEN_PORTS+
=(
"Tox
$TOX_PORT
"
)
if
[
-f
$COMPLETION_FILE
]
;
then
echo
'configure_firewall_for_tox'
>>
$COMPLETION_FILE
fi
if
[
!
$INSTALLING_MESH
]
;
then
if
[
-f
$COMPLETION_FILE
]
;
then
if
grep
-Fxq
"configure_firewall_for_tox"
$COMPLETION_FILE
;
then
return
fi
fi
fi
if
[[
$INSTALLED_WITHIN_DOCKER
==
"yes"
]]
;
then
# docker does its own firewalling
return
fi
if
[[
$ONION_ONLY
!=
"no"
]]
;
then
return
fi
TOX_PORT_MAIN
=
$(
cat
/usr/share/
${
PROJECT_NAME
}
/apps/
${
PROJECT_NAME
}
-app-tox
|
grep
"TOX_PORT="
|
head
-n
1 |
awk
-F
'='
'{print $2}'
)
if
[
${#
TOX_PORT_MAIN
}
-gt
2
]
;
then
TOX_PORT
=
$TOX_PORT_MAIN
fi
if
[
!
$TOX_PORT
]
;
then
echo
$'No Tox port was specified'
exit
32856
fi
iptables
-A
INPUT
-p
tcp
--dport
$TOX_PORT
-j
ACCEPT
function_check save_firewall_settings
save_firewall_settings
OPEN_PORTS+
=(
"Tox
$TOX_PORT
"
)
if
[
-f
$COMPLETION_FILE
]
;
then
echo
'configure_firewall_for_tox'
>>
$COMPLETION_FILE
fi
}
function
tox_avahi
{
if
[[
$SYSTEM_TYPE
!=
"
$VARIANT_MESH
"
]]
;
then
return
fi
if
grep
-Fxq
"tox_avahi"
$COMPLETION_FILE
;
then
return
fi
if
[
!
-d
/etc/avahi
]
;
then
echo
$'tox_avahi: avahi is not installed'
exit
87359
fi
# install a command to obtain the Tox ID
cd
$INSTALL_DIR
function_check git_clone
git_clone
$TOXID_REPO
$INSTALL_DIR
/toxid
if
[
!
-d
$INSTALL_DIR
/toxid
]
;
then
exit
63921
fi
cd
$INSTALL_DIR
/toxid
make
if
[
!
"
$?
"
=
"0"
]
;
then
exit
58432
fi
make
install
toxavahi
# publish regularly
function_check cron_add_mins
cron_add_mins 1
'toxavahi > /dev/null'
systemctl restart avahi-daemon
echo
'tox_avahi'
>>
$COMPLETION_FILE
if
[[
$SYSTEM_TYPE
!=
"
$VARIANT_MESH
"
]]
;
then
return
fi
if
grep
-Fxq
"tox_avahi"
$COMPLETION_FILE
;
then
return
fi
if
[
!
-d
/etc/avahi
]
;
then
echo
$'tox_avahi: avahi is not installed'
exit
87359
fi
# install a command to obtain the Tox ID
cd
$INSTALL_DIR
function_check git_clone
git_clone
$TOXID_REPO
$INSTALL_DIR
/toxid
if
[
!
-d
$INSTALL_DIR
/toxid
]
;
then
exit
63921
fi
cd
$INSTALL_DIR
/toxid
make
if
[
!
"
$?
"
=
"0"
]
;
then
exit
58432
fi
make
install
toxavahi
# publish regularly
function_check cron_add_mins
cron_add_mins 1
'toxavahi > /dev/null'
systemctl restart avahi-daemon
echo
'tox_avahi'
>>
$COMPLETION_FILE
}
function
install_tox_node
{
if
grep
-Fxq
"install_tox_node"
$COMPLETION_FILE
;
then
return
fi
function_check mesh_tox_node
mesh_tox_node
TOX_ONION_HOSTNAME
=
$(
add_onion_service tox
${
TOX_PORT
}
${
TOX_PORT
}
)
if
!
grep
-q
"tox onion domain"
$COMPLETION_FILE
;
then
echo
"tox onion domain:
${
TOX_ONION_HOSTNAME
}
"
>>
$COMPLETION_FILE
else
sed
-i
"s|tox onion domain.*|tox onion domain:
${
TOX_ONION_HOSTNAME
}
|g"
$COMPLETION_FILE
fi
systemctl restart tox-bootstrapd.service
TOX_PUBLIC_KEY
=
$(
cat
/var/log/syslog |
grep
tox |
grep
"Public Key"
|
awk
-F
' '
'{print $8}'
|
tail
-1
)
if
[
${#
TOX_PUBLIC_KEY
}
-lt
30
]
;
then
echo
$'Could not obtain the tox node public key'
exit
6529
fi
# save the public key for later reference
echo
"
$TOX_PUBLIC_KEY
"
>
$TOX_BOOTSTRAP_ID_FILE
function_check configure_firewall_for_tox
configure_firewall_for_tox
if
!
grep
-q
$"Your Tox node public key is"
/home/
$MY_USERNAME
/README
;
then
echo
''
>>
/home/
$MY_USERNAME
/README
echo
''
>>
/home/
$MY_USERNAME
/README
echo
'Tox'
>>
/home/
$MY_USERNAME
/README
echo
'==='
>>
/home/
$MY_USERNAME
/README
echo
$"tox onion domain:
${
TOX_ONION_HOSTNAME
}
"
>>
/home/
$MY_USERNAME
/README
echo
$"Your Tox node public key is:
$TOX_PUBLIC_KEY
"
>>
/home/
$MY_USERNAME
/README
echo
$'In the Toxic client you can connect to it with:'
>>
/home/
$MY_USERNAME
/README
echo
" /connect
$DEFAULT_DOMAIN_NAME
.local
$TOX_PORT
$TOX_PUBLIC_KEY
"
>>
/home/
$MY_USERNAME
/README
chown
$MY_USERNAME
:
$MY_USERNAME
/home/
$MY_USERNAME
/README
chmod
600 /home/
$MY_USERNAME
/README
fi
function_check configure_firewall_for_tox
configure_firewall_for_tox
echo
'install_tox_node'
>>
$COMPLETION_FILE
if
grep
-Fxq
"install_tox_node"
$COMPLETION_FILE
;
then
return
fi
function_check mesh_tox_node
mesh_tox_node
TOX_ONION_HOSTNAME
=
$(
add_onion_service tox
${
TOX_PORT
}
${
TOX_PORT
}
)
if
!
grep
-q
"tox onion domain"
$COMPLETION_FILE
;
then
echo
"tox onion domain:
${
TOX_ONION_HOSTNAME
}
"
>>
$COMPLETION_FILE
else
sed
-i
"s|tox onion domain.*|tox onion domain:
${
TOX_ONION_HOSTNAME
}
|g"
$COMPLETION_FILE
fi
systemctl restart tox-bootstrapd.service
TOX_PUBLIC_KEY
=
$(
cat
/var/log/syslog |
grep
tox |
grep
"Public Key"
|
awk
-F
' '
'{print $8}'
|
tail
-1
)
if
[
${#
TOX_PUBLIC_KEY
}
-lt
30
]
;
then
echo
$'Could not obtain the tox node public key'
exit
6529
fi
# save the public key for later reference
echo
"
$TOX_PUBLIC_KEY
"
>
$TOX_BOOTSTRAP_ID_FILE
function_check configure_firewall_for_tox
configure_firewall_for_tox
if
!
grep
-q
$"Your Tox node public key is"
/home/
$MY_USERNAME
/README
;
then
echo
''
>>
/home/
$MY_USERNAME
/README
echo
''
>>
/home/
$MY_USERNAME
/README
echo
'Tox'
>>
/home/
$MY_USERNAME
/README
echo
'==='
>>
/home/
$MY_USERNAME
/README
echo
$"tox onion domain:
${
TOX_ONION_HOSTNAME
}
"
>>
/home/
$MY_USERNAME
/README
echo
$"Your Tox node public key is:
$TOX_PUBLIC_KEY
"
>>
/home/
$MY_USERNAME
/README
echo
$'In the Toxic client you can connect to it with:'
>>
/home/
$MY_USERNAME
/README
echo
" /connect
$DEFAULT_DOMAIN_NAME
.local
$TOX_PORT
$TOX_PUBLIC_KEY
"
>>
/home/
$MY_USERNAME
/README
chown
$MY_USERNAME
:
$MY_USERNAME
/home/
$MY_USERNAME
/README
chmod
600 /home/
$MY_USERNAME
/README
fi
function_check configure_firewall_for_tox
configure_firewall_for_tox
echo
'install_tox_node'
>>
$COMPLETION_FILE
}
function
install_tox_client
{
if
grep
-Fxq
"install_tox_client"
$COMPLETION_FILE
;
then
return
fi
if
grep
-Fxq
"install_tox_client"
$COMPLETION_FILE
;
then
return
fi
function_check mesh_tox_client
mesh_tox_client
function_check mesh_tox_client
mesh_tox_client
echo
'install_tox_client'
>>
$COMPLETION_FILE
echo
'install_tox_client'
>>
$COMPLETION_FILE
}
function
mesh_tox_node
{
# obtain commits from the main file
TOXCORE_COMMIT_MAIN
=
$(
cat
/usr/share/
${
PROJECT_NAME
}
/apps/
${
PROJECT_NAME
}
-app-tox
|
grep
"TOXCORE_COMMIT="
|
head
-n
1 |
awk
-F
"'"
'{print $2}'
)
if
[
${#
TOXCORE_COMMIT_MAIN
}
-gt
10
]
;
then
TOXCORE_COMMIT
=
$TOXCORE_COMMIT_MAIN
fi
if
[
!
$TOXCORE_COMMIT
]
;
then
echo
$'No Tox commit was specified'
exit
76325
fi
TOXID_REPO_MAIN
=
$(
cat
/usr/share/
${
PROJECT_NAME
}
/apps/
${
PROJECT_NAME
}
-app-tox
|
grep
"TOXID_REPO="
|
head
-n
1 |
awk
-F
'"'
'{print $2}'
)
if
[
${#
TOXID_REPO_MAIN
}
-gt
5
]
;
then
TOXID_REPO
=
$TOXID_REPO_MAIN
fi
if
[
!
$TOXID_REPO
]
;
then
echo
$'No ToxID repo was specified'
exit
78252
fi
TOX_PORT_MAIN
=
$(
cat
/usr/share/
${
PROJECT_NAME
}
/apps/
${
PROJECT_NAME
}
-app-tox
|
grep
"TOX_PORT="
|
head
-n
1 |
awk
-F
'='
'{print $2}'
)
if
[
${#
TOX_PORT_MAIN
}
-gt
2
]
;
then
TOX_PORT
=
$TOX_PORT_MAIN
fi
if
[
!
$TOX_PORT
]
;
then
echo
$'No Tox port was specified'
exit
32856
fi
TOXCORE_REPO_MAIN
=
$(
cat
/usr/share/
${
PROJECT_NAME
}
/apps/
${
PROJECT_NAME
}
-app-tox
|
grep
"TOXCORE_REPO="
|
head
-n
1 |
awk
-F
'"'
'{print $2}'
)
if
[
${#
TOXCORE_REPO_MAIN
}
-gt
10
]
;
then
TOXCORE_REPO
=
$TOXCORE_REPO_MAIN
fi
if
[
!
$TOXCORE_REPO
]
;
then
echo
$'No Tox repo was specified'
exit
16865
fi
if
[
!
$TOXCORE_COMMIT
]
;
then
echo
$'No Tox commit was specified'
exit
76325
fi
if
[
!
$TOXCORE_REPO
]
;
then
echo
$'No Tox repo was specified'
exit
16865
fi
if
[
$rootdir
]
;
then
chroot
${
rootdir
}
apt-get
-y
install
build-essential libtool autotools-dev
chroot
${
rootdir
}
apt-get
-y
install
automake checkinstall check git yasm
chroot
${
rootdir
}
apt-get
-y
install
libsodium13 libsodium-dev libcap2-bin
chroot
${
rootdir
}
apt-get
-y
install
libconfig9 libconfig-dev autoconf
chroot
${
rootdir
}
apt-get
-y
install
libopus-dev libvpx-dev
else
apt-get
-y
install
build-essential libtool autotools-dev
apt-get
-y
install
automake checkinstall check git yasm
apt-get
-y
install
libsodium13 libsodium-dev libcap2-bin
apt-get
-y
install
libconfig9 libconfig-dev autoconf
apt-get
-y
install
libopus-dev libvpx-dev
fi
if
[
!
-d
${
rootdir
}${
INSTALL_DIR
}
]
;
then
mkdir
-p
${
rootdir
}${
INSTALL_DIR
}
fi
git clone
${
TOXCORE_REPO
}
${
rootdir
}${
INSTALL_DIR
}
/toxcore
if
[
!
"
$?
"
=
"0"
]
;
then
exit
429252
fi
cd
${
rootdir
}
$INSTALL_DIR
/toxcore
git checkout
$TOXCORE_COMMIT
-b
$TOXCORE_COMMIT
if
[
${
rootdir
}
]
;
then
chroot
${
rootdir
}
/bin/bash
-x
<<
EOF
# obtain commits from the main file
TOXCORE_COMMIT_MAIN
=
$(
cat
/usr/share/
${
PROJECT_NAME
}
/apps/
${
PROJECT_NAME
}
-app-tox
|
grep
"TOXCORE_COMMIT="
|
head
-n
1 |
awk
-F
"'"
'{print $2}'
)
if
[
${#
TOXCORE_COMMIT_MAIN
}
-gt
10
]
;
then
TOXCORE_COMMIT
=
$TOXCORE_COMMIT_MAIN
fi
if
[
!
$TOXCORE_COMMIT
]
;
then
echo
$'No Tox commit was specified'
exit
76325
fi
TOXID_REPO_MAIN
=
$(
cat
/usr/share/
${
PROJECT_NAME
}
/apps/
${
PROJECT_NAME
}
-app-tox
|
grep
"TOXID_REPO="
|
head
-n
1 |
awk
-F
'"'
'{print $2}'
)
if
[
${#
TOXID_REPO_MAIN
}
-gt
5
]
;
then
TOXID_REPO
=
$TOXID_REPO_MAIN
fi
if
[
!
$TOXID_REPO
]
;
then
echo
$'No ToxID repo was specified'
exit
78252
fi
TOX_PORT_MAIN
=
$(
cat
/usr/share/
${
PROJECT_NAME
}
/apps/
${
PROJECT_NAME
}
-app-tox
|
grep
"TOX_PORT="
|
head
-n
1 |
awk
-F
'='
'{print $2}'
)
if
[
${#
TOX_PORT_MAIN
}
-gt
2
]
;
then
TOX_PORT
=
$TOX_PORT_MAIN
fi
if
[
!
$TOX_PORT
]
;
then
echo
$'No Tox port was specified'
exit
32856
fi
TOXCORE_REPO_MAIN
=
$(
cat
/usr/share/
${
PROJECT_NAME
}
/apps/
${
PROJECT_NAME
}
-app-tox
|
grep
"TOXCORE_REPO="
|
head
-n
1 |
awk
-F
'"'
'{print $2}'
)
if
[
${#
TOXCORE_REPO_MAIN
}
-gt
10
]
;
then
TOXCORE_REPO
=
$TOXCORE_REPO_MAIN
fi
if
[
!
$TOXCORE_REPO
]
;
then
echo
$'No Tox repo was specified'
exit
16865
fi
if
[
!
$TOXCORE_COMMIT
]
;
then
echo
$'No Tox commit was specified'
exit
76325
fi
if
[
!
$TOXCORE_REPO
]
;
then
echo
$'No Tox repo was specified'
exit
16865
fi
if
[
$rootdir
]
;
then
chroot
${
rootdir
}
apt-get
-y
install
build-essential libtool autotools-dev
chroot
${
rootdir
}
apt-get
-y
install
automake checkinstall check git yasm
chroot
${
rootdir
}
apt-get
-y
install
libsodium13 libsodium-dev libcap2-bin
chroot
${
rootdir
}
apt-get
-y
install
libconfig9 libconfig-dev autoconf
chroot
${
rootdir
}
apt-get
-y
install
libopus-dev libvpx-dev
else
apt-get
-y
install
build-essential libtool autotools-dev
apt-get
-y
install
automake checkinstall check git yasm
apt-get
-y
install
libsodium13 libsodium-dev libcap2-bin
apt-get
-y
install
libconfig9 libconfig-dev autoconf
apt-get
-y
install
libopus-dev libvpx-dev
fi
if
[
!
-d
${
rootdir
}${
INSTALL_DIR
}
]
;
then
mkdir
-p
${
rootdir
}${
INSTALL_DIR
}
fi
git clone
${
TOXCORE_REPO
}
${
rootdir
}${
INSTALL_DIR
}
/toxcore
if
[
!
"
$?
"
=
"0"
]
;
then
exit
429252
fi
cd
${
rootdir
}
$INSTALL_DIR
/toxcore
git checkout
$TOXCORE_COMMIT
-b
$TOXCORE_COMMIT
if
[
${
rootdir
}
]
;
then
chroot
${
rootdir
}
/bin/bash
-x
<<
EOF
cd
${
INSTALL_DIR
}
/toxcore
autoreconf -i
./configure --enable-daemon
make
make install
EOF
else
/bin/bash
-x
<<
EOF
else
/bin/bash
-x
<<
EOF
cd
${
INSTALL_DIR
}
/toxcore
autoreconf -i
./configure --enable-daemon
make
make install
EOF
fi
cp
$rootdir
/usr/local/lib/libtoxcore
*
$rootdir
/usr/lib/
cp
${
rootdir
}${
INSTALL_DIR
}
/toxcore/other/bootstrap_daemon/tox-bootstrapd.service
$rootdir
/etc/systemd/system/
sed
-i
's|ExecStart=.*|ExecStart=/usr/local/bin/tox-bootstrapd --config /etc/tox-bootstrapd.conf|g'
$rootdir
/etc/systemd/system/tox-bootstrapd.service
if
[
${
rootdir
}
]
;
then
chroot
${
rootdir
}
systemctl
enable
tox-bootstrapd.service
else
systemctl
enable
tox-bootstrapd.service
fi
SECONDS
=
0
if
[
!
-f
$rootdir
/usr/local/bin/tox-bootstrapd
]
;
then
duration
=
$SECONDS
echo
$"Toxcore compile failed at
$((
$duration
/
60
))
minutes and
$((
$duration
%
60
))
seconds elapsed."
echo
$'Unable to make toxcore'
exit
73835
fi
duration
=
$SECONDS
echo
$"Toxcore compile
$((
$duration
/
60
))
minutes and
$((
$duration
%
60
))
seconds elapsed."
if
[
${
rootdir
}
]
;
then
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
chroot
${
rootdir
}
chmod
700 /var/lib/tox-bootstrapd
else
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
chmod
700 /var/lib/tox-bootstrapd
fi
# remove Maildir
if
[
-d
$rootdir
/var/lib/tox-bootstrapd/Maildir
]
;
then
rm
-rf
$rootdir
/var/lib/tox-bootstrapd/Maildir
fi
# create configuration file
TOX_BOOTSTRAP_CONFIG
=
$rootdir
/etc/tox-bootstrapd.conf
echo
"port =
$TOX_PORT
"
>
$TOX_BOOTSTRAP_CONFIG
echo
'keys_file_path = "/var/lib/tox-bootstrapd/keys"'
>>
$TOX_BOOTSTRAP_CONFIG
echo
'pid_file_path = "/var/run/tox-bootstrapd/tox-bootstrapd.pid"'
>>
$TOX_BOOTSTRAP_CONFIG
echo
'enable_ipv6 = true'
>>
$TOX_BOOTSTRAP_CONFIG
echo
'enable_ipv4_fallback = true'
>>
$TOX_BOOTSTRAP_CONFIG
echo
'enable_lan_discovery = true'
>>
$TOX_BOOTSTRAP_CONFIG
echo
'enable_tcp_relay = true'
>>
$TOX_BOOTSTRAP_CONFIG
echo
"tcp_relay_ports = [443, 3389,
$TOX_PORT
]"
>>
$TOX_BOOTSTRAP_CONFIG
echo
'enable_motd = true'
>>
$TOX_BOOTSTRAP_CONFIG
echo
'motd = "tox-bootstrapd"'
>>
$TOX_BOOTSTRAP_CONFIG
if
[
$TOX_NODES
]
;
then
echo
'bootstrap_nodes = ('
>>
$TOX_BOOTSTRAP_CONFIG
toxcount
=
0
while
[
"x
${
TOX_NODES
[toxcount]
}
"
!=
"x"
]
do
toxval_ipv4
=
$(
echo
$TOX_NODES
[
toxcount] |
awk
-F
','
'{print $1}'
)
toxval_ipv6
=
$(
echo
$TOX_NODES
[
toxcount] |
awk
-F
','
'{print $2}'
)
toxval_port
=
$(
echo
$TOX_NODES
[
toxcount] |
awk
-F
','
'{print $3}'
)
toxval_pubkey
=
$(
echo
$TOX_NODES
[
toxcount] |
awk
-F
','
'{print $4}'
)
toxval_maintainer
=
$(
echo
$TOX_NODES
[
toxcount] |
awk
-F
','
'{print $5}'
)
echo
"{ //
$toxval_maintainer
"
>>
$TOX_BOOTSTRAP_CONFIG
if
[[
$toxval_ipv6
!=
'NONE'
]]
;
then
echo
" address =
\"
$toxval_ipv6
\"
"
>>
$TOX_BOOTSTRAP_CONFIG
else
echo
" address =
\"
$toxval_ipv4
\"
"
>>
$TOX_BOOTSTRAP_CONFIG
fi
echo
" port =
$toxval_port
"
>>
$TOX_BOOTSTRAP_CONFIG
echo
" public_key =
\"
$toxval_pubkey
\"
"
>>
$TOX_BOOTSTRAP_CONFIG
toxcount
=
$((
$toxcount
+
1
))
if
[
"x
${
TOX_NODES
[toxcount]
}
"
!=
"x"
]
;
then
echo
"},"
>>
$TOX_BOOTSTRAP_CONFIG
else
echo
"}"
>>
$TOX_BOOTSTRAP_CONFIG
fi
done
echo
')'
>>
$TOX_BOOTSTRAP_CONFIG
fi
fi
cp
$rootdir
/usr/local/lib/libtoxcore
*
$rootdir
/usr/lib/
cp
${
rootdir
}${
INSTALL_DIR
}
/toxcore/other/bootstrap_daemon/tox-bootstrapd.service
$rootdir
/etc/systemd/system/
sed
-i
's|ExecStart=.*|ExecStart=/usr/local/bin/tox-bootstrapd --config /etc/tox-bootstrapd.conf|g'
$rootdir
/etc/systemd/system/tox-bootstrapd.service
if
[
${
rootdir
}
]
;
then
chroot
${
rootdir
}
systemctl
enable
tox-bootstrapd.service
else
systemctl
enable
tox-bootstrapd.service
fi
SECONDS
=
0
if
[
!
-f
$rootdir
/usr/local/bin/tox-bootstrapd
]
;
then
duration
=
$SECONDS
echo
$"Toxcore compile failed at
$((
$duration
/
60
))
minutes and
$((
$duration
%
60
))
seconds elapsed."
echo
$'Unable to make toxcore'
exit
73835
fi
duration
=
$SECONDS
echo
$"Toxcore compile
$((
$duration
/
60
))
minutes and
$((
$duration
%
60
))
seconds elapsed."
if
[
${
rootdir
}
]
;
then
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
chroot
${
rootdir
}
chmod
700 /var/lib/tox-bootstrapd
else
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
chmod
700 /var/lib/tox-bootstrapd
fi
# remove Maildir
if
[
-d
$rootdir
/var/lib/tox-bootstrapd/Maildir
]
;
then
rm
-rf
$rootdir
/var/lib/tox-bootstrapd/Maildir
fi
# create configuration file
TOX_BOOTSTRAP_CONFIG
=
$rootdir
/etc/tox-bootstrapd.conf
echo
"port =
$TOX_PORT
"
>
$TOX_BOOTSTRAP_CONFIG
echo
'keys_file_path = "/var/lib/tox-bootstrapd/keys"'
>>
$TOX_BOOTSTRAP_CONFIG
echo
'pid_file_path = "/var/run/tox-bootstrapd/tox-bootstrapd.pid"'
>>
$TOX_BOOTSTRAP_CONFIG
echo
'enable_ipv6 = true'
>>
$TOX_BOOTSTRAP_CONFIG
echo
'enable_ipv4_fallback = true'
>>
$TOX_BOOTSTRAP_CONFIG
echo
'enable_lan_discovery = true'
>>
$TOX_BOOTSTRAP_CONFIG
echo
'enable_tcp_relay = true'
>>
$TOX_BOOTSTRAP_CONFIG
echo
"tcp_relay_ports = [443, 3389,
$TOX_PORT
]"
>>
$TOX_BOOTSTRAP_CONFIG
echo
'enable_motd = true'
>>
$TOX_BOOTSTRAP_CONFIG
echo
'motd = "tox-bootstrapd"'
>>
$TOX_BOOTSTRAP_CONFIG
if
[
$TOX_NODES
]
;
then
echo
'bootstrap_nodes = ('
>>
$TOX_BOOTSTRAP_CONFIG
toxcount
=
0
while
[
"x
${
TOX_NODES
[toxcount]
}
"
!=
"x"
]
do
toxval_ipv4
=
$(
echo
$TOX_NODES
[
toxcount] |
awk
-F
','
'{print $1}'
)
toxval_ipv6
=
$(
echo
$TOX_NODES
[
toxcount] |
awk
-F
','
'{print $2}'
)
toxval_port
=
$(
echo
$TOX_NODES
[
toxcount] |
awk
-F
','
'{print $3}'
)
toxval_pubkey
=
$(
echo
$TOX_NODES
[
toxcount] |
awk
-F
','
'{print $4}'
)
toxval_maintainer
=
$(
echo
$TOX_NODES
[
toxcount] |
awk
-F
','
'{print $5}'
)
echo
"{ //
$toxval_maintainer
"
>>
$TOX_BOOTSTRAP_CONFIG
if
[[
$toxval_ipv6
!=
'NONE'
]]
;
then
echo
" address =
\"
$toxval_ipv6
\"
"
>>
$TOX_BOOTSTRAP_CONFIG
else
echo
" address =
\"
$toxval_ipv4
\"
"
>>
$TOX_BOOTSTRAP_CONFIG
fi
echo
" port =
$toxval_port
"
>>
$TOX_BOOTSTRAP_CONFIG
echo
" public_key =
\"
$toxval_pubkey
\"
"
>>
$TOX_BOOTSTRAP_CONFIG
toxcount
=
$((
$toxcount
+
1
))
if
[
"x
${
TOX_NODES
[toxcount]
}
"
!=
"x"
]
;
then
echo
"},"
>>
$TOX_BOOTSTRAP_CONFIG
else
echo
"}"
>>
$TOX_BOOTSTRAP_CONFIG
fi
done
echo
')'
>>
$TOX_BOOTSTRAP_CONFIG
fi
}
function
mesh_tox_avahi
{
if
[
!
-d
$rootdir
/etc/avahi
]
;
then
echo
$'tox_avahi: avahi is not installed'
exit
87359
fi
if
[
!
$TOXID_REPO
]
;
then
echo
$'No ToxID repo was specified'
exit
78252
fi
if
[
!
-d
${
rootdir
}${
INSTALL_DIR
}
]
;
then
mkdir
-p
${
rootdir
}${
INSTALL_DIR
}
fi
git clone
${
TOXID_REPO
}
${
rootdir
}${
INSTALL_DIR
}
/toxid
if
[
!
-d
${
rootdir
}${
INSTALL_DIR
}
/toxid
]
;
then
echo
$'Unable to clone toxid repo'
exit
768352
fi
if
[
${
rootdir
}
]
;
then
chroot
${
rootdir
}
/bin/bash
-x
<<
EOF
if
[
!
-d
$rootdir
/etc/avahi
]
;
then
echo
$'tox_avahi: avahi is not installed'
exit
87359
fi
if
[
!
$TOXID_REPO
]
;
then
echo
$'No ToxID repo was specified'
exit
78252
fi
if
[
!
-d
${
rootdir
}${
INSTALL_DIR
}
]
;
then
mkdir
-p
${
rootdir
}${
INSTALL_DIR
}
fi
git clone
${
TOXID_REPO
}
${
rootdir
}${
INSTALL_DIR
}
/toxid
if
[
!
-d
${
rootdir
}${
INSTALL_DIR
}
/toxid
]
;
then
echo
$'Unable to clone toxid repo'
exit
768352
fi
if
[
${
rootdir
}
]
;
then
chroot
${
rootdir
}
/bin/bash
-x
<<
EOF
cd
${
INSTALL_DIR
}
/toxid
make
make install
EOF
else
/bin/bash
-x
<<
EOF
else
/bin/bash
-x
<<
EOF
cd
${
INSTALL_DIR
}
/toxid
make
make install
EOF
fi
if
[
!
-f
$rootdir
/usr/local/bin/toxid
]
;
then
echo
$'toxid not found'
exit
74370
fi
if
[
!
-f
$rootdir
/usr/local/bin/toxavahi
]
;
then
exit
3621729
fi
echo
"*/1 * * * * root /usr/local/bin/toxavahi > /dev/null"
>>
$rootdir
/etc/crontab
fi
if
[
!
-f
$rootdir
/usr/local/bin/toxid
]
;
then
echo
$'toxid not found'
exit
74370
fi
if
[
!
-f
$rootdir
/usr/local/bin/toxavahi
]
;
then
exit
3621729
fi
echo
"*/1 * * * * root /usr/local/bin/toxavahi > /dev/null"
>>
$rootdir
/etc/crontab
}
function
mesh_tox_client
{
TOXIC_FILE
=
$(
cat
/usr/share/
${
PROJECT_NAME
}
/apps/
${
PROJECT_NAME
}
-app-tox
|
grep
"TOXIC_FILE="
|
head
-n
1 |
awk
-F
'='
'{print $2}'
)
# obtain commits from the main file
TOXIC_COMMIT_MAIN
=
$(
cat
/usr/share/
${
PROJECT_NAME
}
/apps/
${
PROJECT_NAME
}
-app-tox
|
grep
"TOXIC_COMMIT="
|
head
-n
1 |
awk
-F
"'"
'{print $2}'
)
if
[
${#
TOXIC_COMMIT_MAIN
}
-gt
10
]
;
then
TOXIC_COMMIT
=
$TOXIC_COMMIT_MAIN
fi
TOXIC_REPO_MAIN
=
$(
cat
/usr/share/
${
PROJECT_NAME
}
/apps/
${
PROJECT_NAME
}
-app-tox
|
grep
"TOXIC_REPO="
|
head
-n
1 |
awk
-F
'"'
'{print $2}'
)
if
[
${#
TOXIC_REPO_MAIN
}
-gt
5
]
;
then
TOXIC_REPO
=
$TOXIC_REPO_MAIN
fi
if
[
${
rootdir
}
]
;
then
chroot
${
rootdir
}
apt-get
-y
install
libncursesw5-dev libconfig-dev libqrencode-dev
chroot
${
rootdir
}
apt-get
-y
install
libcurl4-openssl-dev libvpx-dev libopenal-dev
else
apt-get
-y
install
libncursesw5-dev libconfig-dev libqrencode-dev
apt-get
-y
install
libcurl4-openssl-dev libvpx-dev libopenal-dev
fi
TEMP_SCRIPT_NAME
=
fbtmp728353.sh
TEMP_SCRIPT
=
/tmp/
$TEMP_SCRIPT_NAME
echo
'#!/bin/bash'
>
$TEMP_SCRIPT
echo
"mkdir -p
$INSTALL_DIR
"
>>
$TEMP_SCRIPT
echo
"git clone
$TOXIC_REPO
$INSTALL_DIR
/toxic"
>>
$TEMP_SCRIPT
echo
"cd
$INSTALL_DIR
/toxic"
>>
$TEMP_SCRIPT
echo
"git checkout
$TOXIC_COMMIT
-b
$TOXIC_COMMIT
"
>>
$TEMP_SCRIPT
echo
'make'
>>
$TEMP_SCRIPT
echo
'if [ ! "$?" = "0" ]; then'
>>
$TEMP_SCRIPT
echo
' exit 1'
>>
$TEMP_SCRIPT
echo
'fi'
>>
$TEMP_SCRIPT
echo
'make install'
>>
$TEMP_SCRIPT
echo
'exit 0'
>>
$TEMP_SCRIPT
chmod
+x
$TEMP_SCRIPT
cp
$TEMP_SCRIPT
$rootdir
/root/
TOXIC_FILE
=
$(
cat
/usr/share/
${
PROJECT_NAME
}
/apps/
${
PROJECT_NAME
}
-app-tox
|
grep
"TOXIC_FILE="
|
head
-n
1 |
awk
-F
'='
'{print $2}'
)
SECONDS
=
0
if
[
${
rootdir
}
]
;
then
chroot
${
rootdir
}
/root/
$TEMP_SCRIPT_NAME
else
/root/
$TEMP_SCRIPT_NAME
fi
if
[
!
"
$?
"
=
"0"
]
;
then
duration
=
$SECONDS
echo
$"Toxic client compile failed at
$((
$duration
/
60
))
minutes and
$((
$duration
%
60
))
seconds elapsed."
echo
$'Unable to make tox client'
rm
$TEMP_SCRIPT
exit
74872
fi
rm
$TEMP_SCRIPT
if
[
!
-f
$rootdir$TOXIC_FILE
]
;
then
echo
$"Tox client was not installed to
$TOXIC_FILE
"
exit
63278
fi
duration
=
$SECONDS
echo
$"Toxic client compile
$((
$duration
/
60
))
minutes and
$((
$duration
%
60
))
seconds elapsed."
TOXIC_FILE
=
$(
cat
/usr/share/
${
PROJECT_NAME
}
/apps/
${
PROJECT_NAME
}
-app-tox
|
grep
"TOXIC_FILE="
|
head
-n
1 |
awk
-F
'='
'{print $2}'
)
# obtain commits from the main file
TOXIC_COMMIT_MAIN
=
$(
cat
/usr/share/
${
PROJECT_NAME
}
/apps/
${
PROJECT_NAME
}
-app-tox
|
grep
"TOXIC_COMMIT="
|
head
-n
1 |
awk
-F
"'"
'{print $2}'
)
if
[
${#
TOXIC_COMMIT_MAIN
}
-gt
10
]
;
then
TOXIC_COMMIT
=
$TOXIC_COMMIT_MAIN
fi
TOXIC_REPO_MAIN
=
$(
cat
/usr/share/
${
PROJECT_NAME
}
/apps/
${
PROJECT_NAME
}
-app-tox
|
grep
"TOXIC_REPO="
|
head
-n
1 |
awk
-F
'"'
'{print $2}'
)
if
[
${#
TOXIC_REPO_MAIN
}
-gt
5
]
;
then
TOXIC_REPO
=
$TOXIC_REPO_MAIN
fi
if
[
${
rootdir
}
]
;
then
chroot
${
rootdir
}
apt-get
-y
install
libncursesw5-dev libconfig-dev libqrencode-dev
chroot
${
rootdir
}
apt-get
-y
install
libcurl4-openssl-dev libvpx-dev libopenal-dev
else
apt-get
-y
install
libncursesw5-dev libconfig-dev libqrencode-dev
apt-get
-y
install
libcurl4-openssl-dev libvpx-dev libopenal-dev
fi
TEMP_SCRIPT_NAME
=
fbtmp728353.sh
TEMP_SCRIPT
=
/tmp/
$TEMP_SCRIPT_NAME
echo
'#!/bin/bash'
>
$TEMP_SCRIPT
echo
"mkdir -p
$INSTALL_DIR
"
>>
$TEMP_SCRIPT
echo
"git clone
$TOXIC_REPO
$INSTALL_DIR
/toxic"
>>
$TEMP_SCRIPT
echo
"cd
$INSTALL_DIR
/toxic"
>>
$TEMP_SCRIPT
echo
"git checkout
$TOXIC_COMMIT
-b
$TOXIC_COMMIT
"
>>
$TEMP_SCRIPT
echo
'make'
>>
$TEMP_SCRIPT
echo
'if [ ! "$?" = "0" ]; then'
>>
$TEMP_SCRIPT
echo
' exit 1'
>>
$TEMP_SCRIPT
echo
'fi'
>>
$TEMP_SCRIPT
echo
'make install'
>>
$TEMP_SCRIPT
echo
'exit 0'
>>
$TEMP_SCRIPT
chmod
+x
$TEMP_SCRIPT
cp
$TEMP_SCRIPT
$rootdir
/root/
TOXIC_FILE
=
$(
cat
/usr/share/
${
PROJECT_NAME
}
/apps/
${
PROJECT_NAME
}
-app-tox
|
grep
"TOXIC_FILE="
|
head
-n
1 |
awk
-F
'='
'{print $2}'
)
SECONDS
=
0
if
[
${
rootdir
}
]
;
then
chroot
${
rootdir
}
/root/
$TEMP_SCRIPT_NAME
else
/root/
$TEMP_SCRIPT_NAME
fi
if
[
!
"
$?
"
=
"0"
]
;
then
duration
=
$SECONDS
echo
$"Toxic client compile failed at
$((
$duration
/
60
))
minutes and
$((
$duration
%
60
))
seconds elapsed."
echo
$'Unable to make tox client'
rm
$TEMP_SCRIPT
exit
74872
fi
rm
$TEMP_SCRIPT
if
[
!
-f
$rootdir$TOXIC_FILE
]
;
then
echo
$"Tox client was not installed to
$TOXIC_FILE
"
exit
63278
fi
duration
=
$SECONDS
echo
$"Toxic client compile
$((
$duration
/
60
))
minutes and
$((
$duration
%
60
))
seconds elapsed."
}
function
enable_tox_repo
{
echo
'deb http://download.opensuse.org/repositories/home:/antonbatenev:/tox/Debian_8.0/ /'
>
$rootdir
/etc/apt/sources.list.d/tox.list
echo
'deb http://download.opensuse.org/repositories/home:/antonbatenev:/tox/Debian_8.0/ /'
>
$rootdir
/etc/apt/sources.list.d/tox.list
chroot
"
$rootdir
"
wget
-q
http://download.opensuse.org/repositories/home:antonbatenev:tox/Debian_8.0/Release.key
-O-
| apt-key add -
chroot
"
$rootdir
"
apt-get update
echo
"Tox Repository Installed."
chroot
"
$rootdir
"
wget
-q
http://download.opensuse.org/repositories/home:antonbatenev:tox/Debian_8.0/Release.key
-O-
| apt-key add -
chroot
"
$rootdir
"
apt-get update
echo
"Tox Repository Installed."
}
function
install_tox
{
if
[
!
$INSTALLING_MESH
]
;
then
if
grep
-Fxq
"install_tox"
$COMPLETION_FILE
;
then
return
fi
fi
configure_firewall_for_tox
if
[
$INSTALLING_MESH
]
;
then
mesh_tox_node
mesh_tox_avahi
mesh_tox_client
else
install_tox_node
tox_avahi
install_tox_client
fi
echo
'install_tox'
>>
$COMPLETION_FILE
if
[
!
$INSTALLING_MESH
]
;
then
if
grep
-Fxq
"install_tox"
$COMPLETION_FILE
;
then
return
fi
fi
configure_firewall_for_tox
if
[
$INSTALLING_MESH
]
;
then
mesh_tox_node
mesh_tox_avahi
mesh_tox_client
else
install_tox_node
tox_avahi
install_tox_client
fi
echo
'install_tox'
>>
$COMPLETION_FILE
}
# NOTE: deliberately no exit 0
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment