summaryrefslogtreecommitdiff
path: root/attic
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2016-06-02 15:20:43 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2016-06-02 15:20:43 -0700
commit506c74270c232f5ad2f85109d5af80686b69a329 (patch)
tree5791f4fe8b916777d4800e3c0442d3f4e58ed2cd /attic
parent4d13ddd48ccee56a8ddf19637510341ebcbd040f (diff)
downloadinfinitytier-506c74270c232f5ad2f85109d5af80686b69a329.tar.gz
infinitytier-506c74270c232f5ad2f85109d5af80686b69a329.zip
Stash old Linux binary installer stuff in attic. This is going away.
Diffstat (limited to 'attic')
-rwxr-xr-xattic/old-linux-installer/buildinstaller.sh134
-rw-r--r--attic/old-linux-installer/install.tmpl.sh182
-rwxr-xr-xattic/old-linux-installer/uninstall.sh76
3 files changed, 392 insertions, 0 deletions
diff --git a/attic/old-linux-installer/buildinstaller.sh b/attic/old-linux-installer/buildinstaller.sh
new file mode 100755
index 00000000..21f2f73e
--- /dev/null
+++ b/attic/old-linux-installer/buildinstaller.sh
@@ -0,0 +1,134 @@
+#!/bin/bash
+
+# This script builds the installer for *nix systems. Windows must do everything
+# completely differently, as usual.
+
+export PATH=/bin:/usr/bin:/sbin:/usr/sbin
+
+if [ ! -f zerotier-one ]; then
+ echo "Could not find 'zerotier-one' binary, please build before running this script."
+ exit 2
+fi
+
+machine=`uname -m`
+system=`uname -s`
+
+vmajor=`cat version.h | grep -F ZEROTIER_ONE_VERSION_MAJOR | cut -d ' ' -f 3`
+vminor=`cat version.h | grep -F ZEROTIER_ONE_VERSION_MINOR | cut -d ' ' -f 3`
+revision=`cat version.h | grep -F ZEROTIER_ONE_VERSION_REVISION | cut -d ' ' -f 3`
+
+if [ -z "$vmajor" -o -z "$vminor" -o -z "$revision" ]; then
+ echo "Unable to extract version info from version.h, aborting installer build."
+ exit 2
+fi
+
+rm -rf build-installer
+mkdir build-installer
+
+case "$system" in
+
+ Linux)
+ # Canonicalize $machine for some architectures... we use x86
+ # and x64 for Intel stuff. ARM and others should be fine if
+ # we ever ship officially for those.
+ debian_arch=$machine
+ case "$machine" in
+ i386|i486|i586|i686)
+ machine="x86"
+ debian_arch="i386"
+ ;;
+ x86_64|amd64|x64)
+ machine="x64"
+ debian_arch="amd64"
+ ;;
+ armv6l|arm|armhf|arm7l|armv7l)
+ machine="armv6l"
+ debian_arch="armhf"
+ ;;
+ esac
+
+ echo "Assembling Linux installer for $machine and version $vmajor.$vminor.$revision"
+
+ mkdir -p 'build-installer/var/lib/zerotier-one/ui'
+ cp -fp 'ext/installfiles/linux/uninstall.sh' 'build-installer/var/lib/zerotier-one'
+ cp -fp 'zerotier-one' 'build-installer/var/lib/zerotier-one'
+ for f in ui/*.html ui/*.js ui/*.css ui/*.jsx ; do
+ cp -fp "$f" 'build-installer/var/lib/zerotier-one/ui'
+ done
+ mkdir -p 'build-installer/tmp'
+ cp -fp 'ext/installfiles/linux/init.d/zerotier-one' 'build-installer/tmp/init.d_zerotier-one'
+ cp -fp 'ext/installfiles/linux/systemd/zerotier-one.service' 'build-installer/tmp/systemd_zerotier-one.service'
+
+ targ="ZeroTierOneInstaller-linux-${machine}-${vmajor}_${vminor}_${revision}"
+ # Use gzip in Linux since some minimal Linux systems do not have bunzip2
+ rm -f build-installer-tmp.tar.gz
+ cd build-installer
+ tar -cf - * | gzip -9 >../build-installer-tmp.tar.gz
+ cd ..
+ rm -f $targ
+ cat ext/installfiles/linux/install.tmpl.sh build-installer-tmp.tar.gz >$targ
+ chmod 0755 $targ
+ rm -f build-installer-tmp.tar.gz
+ ls -l $targ
+
+ if [ -f /usr/bin/dpkg-deb -a "$UID" -eq 0 ]; then
+ echo
+ echo Found dpkg-deb and you are root, trying to build Debian package.
+
+ rm -rf build-installer-deb
+
+ debbase="build-installer-deb/zerotier-one_${vmajor}.${vminor}.${revision}_$debian_arch"
+ debfolder="${debbase}/DEBIAN"
+ mkdir -p $debfolder
+
+ cat 'ext/installfiles/linux/DEBIAN/control.in' | sed "s/__VERSION__/${vmajor}.${vminor}.${revision}/" | sed "s/__ARCH__/${debian_arch}/" >$debfolder/control
+ cat $debfolder/control
+ cp -f 'ext/installfiles/linux/DEBIAN/conffiles' "${debfolder}/conffiles"
+
+ mkdir -p "${debbase}/var/lib/zerotier-one/updates.d"
+ cp -f $targ "${debbase}/var/lib/zerotier-one/updates.d"
+
+ rm -f "${debfolder}/postinst" "${debfolder}/prerm"
+
+ echo '#!/bin/bash' >${debfolder}/postinst
+ echo "/var/lib/zerotier-one/updates.d/${targ} >>/dev/null 2>&1" >>${debfolder}/postinst
+ echo "/bin/rm -f /var/lib/zerotier-one/updates.d/*" >>${debfolder}/postinst
+ chmod a+x ${debfolder}/postinst
+
+ echo '#!/bin/bash' >${debfolder}/prerm
+ echo 'export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin' >>${debfolder}/prerm
+ echo 'if [ "$1" != "upgrade" ]; then' >>${debfolder}/prerm
+ echo ' /var/lib/zerotier-one/uninstall.sh >>/dev/null 2>&1' >>${debfolder}/prerm
+ echo 'fi' >>${debfolder}/prerm
+ chmod a+x ${debfolder}/prerm
+
+ dpkg-deb --build $debbase
+
+ mv -f build-installer-deb/*.deb .
+ rm -rf build-installer-deb
+ fi
+
+ if [ -f /usr/bin/rpmbuild ]; then
+ echo
+ echo Found rpmbuild, trying to build RedHat/CentOS package.
+
+ rm -f /tmp/zerotier-one.spec
+ curr_dir=`pwd`
+ cat ext/installfiles/linux/RPM/zerotier-one.spec.in | sed "s/__VERSION__/${vmajor}.${vminor}.${revision}/g" | sed "s/__INSTALLER__/${targ}/g" >/tmp/zerotier-one.spec
+
+ rpmbuild -ba /tmp/zerotier-one.spec
+
+ rm -f /tmp/zerotier-one.spec
+ fi
+
+ ;;
+
+ *)
+ echo "Unsupported platform: $system"
+ exit 2
+
+esac
+
+rm -rf build-installer
+
+exit 0
diff --git a/attic/old-linux-installer/install.tmpl.sh b/attic/old-linux-installer/install.tmpl.sh
new file mode 100644
index 00000000..2d18d24c
--- /dev/null
+++ b/attic/old-linux-installer/install.tmpl.sh
@@ -0,0 +1,182 @@
+#!/bin/bash
+
+export PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin
+shopt -s expand_aliases
+
+dryRun=0
+
+echo "*** ZeroTier One install/update ***"
+echo
+
+if [ "$UID" -ne 0 ]; then
+ echo "Not running as root so doing dry run (no modifications to system)..."
+ dryRun=1
+fi
+
+if [ $dryRun -gt 0 ]; then
+ alias ln="echo '>> ln'"
+ alias rm="echo '>> rm'"
+ alias mv="echo '>> mv'"
+ alias cp="echo '>> cp'"
+ alias chown="echo '>> chown'"
+ alias chgrp="echo '>> chgrp'"
+ alias chmod="echo '>> chmod'"
+ alias chkconfig="echo '>> chkconfig'"
+ alias zerotier-cli="echo '>> zerotier-cli'"
+ alias service="echo '>> service'"
+ alias systemctl="echo '>> systemctl'"
+fi
+
+scriptPath="`dirname "$0"`/`basename "$0"`"
+if [ ! -r "$scriptPath" ]; then
+ scriptPath="$0"
+ if [ ! -r "$scriptPath" ]; then
+ echo "Installer cannot determine its own path; $scriptPath is not readable."
+ exit 2
+ fi
+fi
+
+# Check for systemd vs. old school SysV init
+SYSTEMDUNITDIR=
+if [ -e /bin/systemctl -o -e /usr/bin/systemctl -o -e /usr/local/bin/systemctl -o -e /sbin/systemctl -o -e /usr/sbin/systemctl ]; then
+ # Second check: test if systemd appears to actually be running. Apparently Ubuntu
+ # thought it was a good idea to ship with systemd installed but not used. Issue #133
+ if [ -d /var/run/systemd/system -o -d /run/systemd/system ]; then
+ if [ -e /usr/bin/pkg-config ]; then
+ SYSTEMDUNITDIR=`/usr/bin/pkg-config systemd --variable=systemdsystemunitdir`
+ fi
+ if [ -z "$SYSTEMDUNITDIR" -o ! -d "$SYSTEMDUNITDIR" ]; then
+ if [ -d /usr/lib/systemd/system ]; then
+ SYSTEMDUNITDIR=/usr/lib/systemd/system
+ fi
+ if [ -d /etc/systemd/system ]; then
+ SYSTEMDUNITDIR=/etc/systemd/system
+ fi
+ fi
+ fi
+fi
+
+# Find the end of this script, which is where we have appended binary data.
+endMarkerIndex=`grep -a -b -E '^################' "$scriptPath" | head -c 16 | cut -d : -f 1`
+if [ "$endMarkerIndex" -le 100 ]; then
+ echo 'Internal error: unable to find end of script / start of binary data marker.'
+ exit 2
+fi
+blobStart=`expr $endMarkerIndex + 17`
+if [ "$blobStart" -le "$endMarkerIndex" ]; then
+ echo 'Internal error: unable to find end of script / start of binary data marker.'
+ exit 2
+fi
+
+echo -n 'Getting version of existing install... '
+origVersion=NONE
+if [ -x /var/lib/zerotier-one/zerotier-one ]; then
+ origVersion=`/var/lib/zerotier-one/zerotier-one -v`
+fi
+echo $origVersion
+
+echo 'Extracting files...'
+if [ $dryRun -gt 0 ]; then
+ echo ">> tail -c +$blobStart \"$scriptPath\" | gunzip -c | tar -xvop -C / -f -"
+ tail -c +$blobStart "$scriptPath" | gunzip -c | tar -t -f - | sed 's/^/>> /'
+else
+ tail -c +$blobStart "$scriptPath" | gunzip -c | tar -xvop --no-overwrite-dir -C / -f -
+fi
+
+if [ $dryRun -eq 0 -a ! -x "/var/lib/zerotier-one/zerotier-one" ]; then
+ echo 'Archive extraction failed, cannot find zerotier-one binary in "/var/lib/zerotier-one".'
+ exit 2
+fi
+
+echo -n 'Getting version of new install... '
+newVersion=`/var/lib/zerotier-one/zerotier-one -v`
+echo $newVersion
+
+echo 'Creating symlinks...'
+
+rm -f /usr/bin/zerotier-cli /usr/bin/zerotier-idtool
+ln -sf /var/lib/zerotier-one/zerotier-one /usr/bin/zerotier-cli
+ln -sf /var/lib/zerotier-one/zerotier-one /usr/bin/zerotier-idtool
+
+echo 'Installing zerotier-one service...'
+
+if [ -n "$SYSTEMDUNITDIR" -a -d "$SYSTEMDUNITDIR" ]; then
+ # SYSTEMD
+
+ # If this was updated or upgraded from an init.d based system, clean up the old
+ # init.d stuff before installing directly via systemd.
+ if [ -f /etc/init.d/zerotier-one ]; then
+ if [ -e /sbin/chkconfig -o -e /usr/sbin/chkconfig -o -e /bin/chkconfig -o -e /usr/bin/chkconfig ]; then
+ chkconfig zerotier-one off
+ fi
+ rm -f /etc/init.d/zerotier-one
+ fi
+
+ cp -f /tmp/systemd_zerotier-one.service "$SYSTEMDUNITDIR/zerotier-one.service"
+ chown 0 "$SYSTEMDUNITDIR/zerotier-one.service"
+ chgrp 0 "$SYSTEMDUNITDIR/zerotier-one.service"
+ chmod 0644 "$SYSTEMDUNITDIR/zerotier-one.service"
+ rm -f /tmp/systemd_zerotier-one.service /tmp/init.d_zerotier-one
+
+ systemctl enable zerotier-one.service
+
+ echo
+ echo 'Done! Installed and service configured to start at system boot.'
+ echo
+ echo "To start now or restart the service if it's already running:"
+ echo ' sudo systemctl restart zerotier-one.service'
+else
+ # SYSV INIT -- also covers upstart which supports SysVinit backward compatibility
+
+ cp -f /tmp/init.d_zerotier-one /etc/init.d/zerotier-one
+ chmod 0755 /etc/init.d/zerotier-one
+ rm -f /tmp/systemd_zerotier-one.service /tmp/init.d_zerotier-one
+
+ if [ -f /sbin/chkconfig -o -f /usr/sbin/chkconfig -o -f /usr/bin/chkconfig -o -f /bin/chkconfig ]; then
+ chkconfig zerotier-one on
+ else
+ # Yes Virginia, some systems lack chkconfig.
+ if [ -d /etc/rc0.d ]; then
+ rm -f /etc/rc0.d/???zerotier-one
+ ln -sf /etc/init.d/zerotier-one /etc/rc0.d/K89zerotier-one
+ fi
+ if [ -d /etc/rc1.d ]; then
+ rm -f /etc/rc1.d/???zerotier-one
+ ln -sf /etc/init.d/zerotier-one /etc/rc1.d/K89zerotier-one
+ fi
+ if [ -d /etc/rc2.d ]; then
+ rm -f /etc/rc2.d/???zerotier-one
+ ln -sf /etc/init.d/zerotier-one /etc/rc2.d/S11zerotier-one
+ fi
+ if [ -d /etc/rc3.d ]; then
+ rm -f /etc/rc3.d/???zerotier-one
+ ln -sf /etc/init.d/zerotier-one /etc/rc3.d/S11zerotier-one
+ fi
+ if [ -d /etc/rc4.d ]; then
+ rm -f /etc/rc4.d/???zerotier-one
+ ln -sf /etc/init.d/zerotier-one /etc/rc4.d/S11zerotier-one
+ fi
+ if [ -d /etc/rc5.d ]; then
+ rm -f /etc/rc5.d/???zerotier-one
+ ln -sf /etc/init.d/zerotier-one /etc/rc5.d/S11zerotier-one
+ fi
+ if [ -d /etc/rc6.d ]; then
+ rm -f /etc/rc6.d/???zerotier-one
+ ln -sf /etc/init.d/zerotier-one /etc/rc6.d/K89zerotier-one
+ fi
+ fi
+
+ echo
+ echo 'Done! Installed and service configured to start at system boot.'
+ echo
+ echo "To start now or restart the service if it's already running:"
+ echo ' sudo service zerotier-one restart'
+fi
+
+exit 0
+
+# Do not remove the last line or add a carriage return to it! The installer
+# looks for an unterminated line beginning with 16 #'s in itself to find
+# the binary blob data, which is appended after it.
+
+################ \ No newline at end of file
diff --git a/attic/old-linux-installer/uninstall.sh b/attic/old-linux-installer/uninstall.sh
new file mode 100755
index 00000000..d9495a18
--- /dev/null
+++ b/attic/old-linux-installer/uninstall.sh
@@ -0,0 +1,76 @@
+#!/bin/bash
+
+export PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin
+
+if [ "$UID" -ne 0 ]; then
+ echo "Must be run as root; try: sudo $0"
+ exit 1
+fi
+
+# Detect systemd vs. regular init
+SYSTEMDUNITDIR=
+if [ -e /bin/systemctl -o -e /usr/bin/systemctl -o -e /usr/local/bin/systemctl -o -e /sbin/systemctl -o -e /usr/sbin/systemctl ]; then
+ if [ -e /usr/bin/pkg-config ]; then
+ SYSTEMDUNITDIR=`/usr/bin/pkg-config systemd --variable=systemdsystemunitdir`
+ fi
+ if [ -z "$SYSTEMDUNITDIR" -o ! -d "$SYSTEMDUNITDIR" ]; then
+ if [ -d /usr/lib/systemd/system ]; then
+ SYSTEMDUNITDIR=/usr/lib/systemd/system
+ fi
+ if [ -d /etc/systemd/system ]; then
+ SYSTEMDUNITDIR=/etc/systemd/system
+ fi
+ fi
+fi
+
+echo "Killing any running zerotier-one service..."
+if [ -n "$SYSTEMDUNITDIR" -a -d "$SYSTEMDUNITDIR" ]; then
+ systemctl stop zerotier-one.service
+ systemctl disable zerotier-one.service
+else
+ if [ -f /sbin/service -o -f /usr/sbin/service -o -f /bin/service -o -f /usr/bin/service ]; then
+ service zerotier-one stop
+ fi
+fi
+
+sleep 1
+if [ -f /var/lib/zerotier-one/zerotier-one.pid ]; then
+ kill -TERM `cat /var/lib/zerotier-one/zerotier-one.pid`
+ sleep 1
+fi
+if [ -f /var/lib/zerotier-one/zerotier-one.pid ]; then
+ kill -KILL `cat /var/lib/zerotier-one/zerotier-one.pid`
+fi
+
+if [ -f /etc/init.d/zerotier-one ]; then
+ echo "Removing SysV init items..."
+ if [ -f /sbin/chkconfig -o -f /usr/sbin/chkconfig -o -f /bin/chkconfig -o -f /usr/bin/chkconfig ]; then
+ chkconfig zerotier-one off
+ fi
+ rm -f /etc/init.d/zerotier-one
+ find /etc/rc*.d -type f -name '???zerotier-one' -print0 | xargs -0 rm -f
+fi
+
+if [ -n "$SYSTEMDUNITDIR" -a -d "$SYSTEMDUNITDIR" -a -f "$SYSTEMDUNITDIR/zerotier-one.service" ]; then
+ echo "Removing systemd service..."
+ rm -f "$SYSTEMDUNITDIR/zerotier-one.service"
+fi
+
+echo "Erasing binary and support files..."
+if [ -d /var/lib/zerotier-one ]; then
+ cd /var/lib/zerotier-one
+ rm -rf zerotier-one *.persist identity.public *.log *.pid *.sh updates.d networks.d iddb.d root-topology ui
+fi
+
+echo "Erasing anything installed into system bin directories..."
+rm -f /usr/local/bin/zerotier-cli /usr/bin/zerotier-cli /usr/local/bin/zerotier-idtool /usr/bin/zerotier-idtool
+
+echo "Done."
+echo
+echo "Your ZeroTier One identity is still preserved in /var/lib/zerotier-one"
+echo "as identity.secret and can be manually deleted if you wish. Save it if"
+echo "you wish to re-use the address of this node, as it cannot be regenerated."
+
+echo
+
+exit 0