summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2014-01-03 16:53:00 -0800
committerAdam Ierymenko <adam.ierymenko@gmail.com>2014-01-03 16:53:00 -0800
commit63d605215982108b3ab606324052b00c56c3222c (patch)
tree043f617e9222870d2ba97b6548bf3f62ea7f107a
parent50043f9cd68c8642300a254cf76967a84d55634c (diff)
downloadinfinitytier-63d605215982108b3ab606324052b00c56c3222c.tar.gz
infinitytier-63d605215982108b3ab606324052b00c56c3222c.zip
Mac installer work.
-rwxr-xr-x.gitignore8
-rw-r--r--ZeroTierUI/mainwindow.cpp4
-rwxr-xr-xbuildinstaller.sh84
-rw-r--r--ext/installfiles/mac/install.tmpl.sh10
-rw-r--r--make-mac.mk4
5 files changed, 52 insertions, 58 deletions
diff --git a/.gitignore b/.gitignore
index 737a2828..fa97e866 100755
--- a/.gitignore
+++ b/.gitignore
@@ -6,10 +6,8 @@
.DS_Store
.Apple*
*.dSYM
-netconf-service/netconf-test
-netconf-service/netconf.service
-mac-tap/tuntap/src/tap/tap
-mac-tap/tuntap/tap.kext
+/netconf-service/netconf-test
+/netconf-service/netconf.service
/ipch
/ZeroTierOne.sdf
/ZeroTierOne.v11.suo
@@ -31,6 +29,6 @@ mac-tap/tuntap/tap.kext
*.obj
*.tlog
/build-*
-/ZeroTierOne-*-install
+/ZeroTierOneInstaller-*
.qmake.stash
*.autosave
diff --git a/ZeroTierUI/mainwindow.cpp b/ZeroTierUI/mainwindow.cpp
index 521868cc..b4afcbbb 100644
--- a/ZeroTierUI/mainwindow.cpp
+++ b/ZeroTierUI/mainwindow.cpp
@@ -120,7 +120,7 @@ void MainWindow::timerEvent(QTimerEvent *event)
}
#endif
- if (!ZeroTier::Utils::readFile(dotAuthFile.c_str(),authToken)) {
+ if (!ZeroTier::Utils::readFile(ZeroTier::Node::LocalClient::authTokenDefaultUserPath().c_str(),authToken)) {
QMessageBox::critical(this,"Cannot Authorize","Unable to authorize this user to administrate ZeroTier One.\n\nTo do so manually, copy 'authtoken.secret' from the ZeroTier One home directory to '.zeroTierOneAuthToken' in your home directory and set file modes on this file to only be readable by you (e.g. 0600 on Mac or Linux systems).",QMessageBox::Ok,QMessageBox::NoButton);
QApplication::exit(1);
return;
@@ -132,7 +132,7 @@ void MainWindow::timerEvent(QTimerEvent *event)
// TODO: do something more user-friendly here... or maybe try to restart
// the service?
- if (++this->cyclesSinceResponseFromService == 3)
+ if (++this->cyclesSinceResponseFromService == 4)
QMessageBox::critical(this,"No Response from Service","The ZeroTier One service does not appear to be running.",QMessageBox::Ok,QMessageBox::NoButton);
zeroTierClient->send("info");
diff --git a/buildinstaller.sh b/buildinstaller.sh
index c2778d65..f14cecbe 100755
--- a/buildinstaller.sh
+++ b/buildinstaller.sh
@@ -3,17 +3,13 @@
# 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
-make -j 2 file2lz4c
-if [ ! -f file2lz4c ]; then
- echo "Build of file2lz4c utility failed, aborting installer build."
- exit 2
-fi
-
machine=`uname -m`
system=`uname -s`
@@ -26,12 +22,8 @@ if [ -z "$vmajor" -o -z "$vminor" -o -z "$revision" ]; then
exit 2
fi
-echo "Packaging common files: zerotier-one"
-
-rm -rf installer-build
-mkdir installer-build
-
-./file2lz4c zerotier-one zerotier_one >installer-build/zerotier_one.h
+rm -rf build-installer
+mkdir build-installer
case "$system" in
@@ -51,44 +43,48 @@ case "$system" in
exit 2
esac
- echo "Assembling Linux installer for $machine and ZT1 version $vmajor.$vminor.$revision"
-
- ./file2lz4c ext/installfiles/linux/uninstall.sh uninstall_sh >installer-build/uninstall_sh.h
- ./file2lz4c ext/installfiles/linux/init.d/zerotier-one linux__init_d__zerotier_one >installer-build/linux__init_d__zerotier_one.h
+ echo "Assembling Linux installer for $machine and version $vmajor.$vminor.$revision"
- targ="zt1-${vmajor}_${vminor}_${revision}-linux-${machine}-install"
+ mkdir -p 'build-installer/var/lib/zerotier-one'
+ cp -fp 'ext/installfiles/linux/uninstall.sh' 'build-installer/var/lib/zerotier-one'
+ cp -fp 'zerotier-one' 'build-installer/var/lib/zerotier-one'
+ mkdir -p 'build-installer/etc/init.d'
+ cp -fp 'ext/installfiles/linux/init.d/zerotier-one' 'build-installer/etc/init.d'
- if [ -e /usr/bin/clang ]; then
- clang -Os -o $targ installer.c ext/lz4/lz4.o ext/lz4/lz4hc.o
- else
- gcc -Os -o $targ installer.c ext/lz4/lz4.o ext/lz4/lz4hc.o
- fi
- strip --strip-all $targ
- ls -l $targ
+ targ="ZeroTierOneInstaller-linux-${machine}-${vmajor}_${vminor}_${revision}"
+ 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
+ rm -f build-installer-tmp.tar.gz
;;
Darwin)
- echo "Assembling mac installer for x86/x64 (combined) and ZT1 version $vmajor.$vminor.$revision"
-
- ./file2lz4c ext/installfiles/mac/uninstall.sh uninstall_sh >installer-build/uninstall_sh.h
- ./file2lz4c ext/installfiles/mac/launch.sh mac__launch_sh >installer-build/mac__launch_sh.h
- ./file2lz4c ext/installfiles/mac/com.zerotier.one.plist mac__com_zerotier_one_plist >installer-build/mac__com_zerotier_one_plist.h
- ./file2lz4c ext/bin/tap-mac/tap.kext/Contents/Info.plist tap_mac__Info_plist >installer-build/tap_mac__Info_plist.h
- ./file2lz4c ext/bin/tap-mac/tap.kext/Contents/MacOS/tap tap_mac__tap >installer-build/tap_mac__tap.h
- ./file2lz4c "build-ZeroTierUI-release/ZeroTier One.app/Contents/Info.plist" mac_ui__contents_info_plist >installer-build/mac_ui__contents_info_plist.h
- ./file2lz4c "build-ZeroTierUI-release/ZeroTier One.app/Contents/PkgInfo" mac_ui__contents_pkginfo >installer-build/mac_ui__contents_pkginfo.h
- ./file2lz4c "build-ZeroTierUI-release/ZeroTier One.app/Contents/MacOS/ZeroTier One" mac_ui__contents_macos_zerotier_one >installer-build/mac_ui__contents_macos_zerotier_one.h
- ./file2lz4c "build-ZeroTierUI-release/ZeroTier One.app/Contents/Resources/empty.lproj" mac_ui__contents_resources_empty_lproj >installer-build/mac_ui__contents_resources_empty_lproj.h
- ./file2lz4c "build-ZeroTierUI-release/ZeroTier One.app/Contents/Resources/zt1icon.icns" mac_ui__contents_resources_zt1icon_icns >installer-build/mac_ui__contents_resources_zt1icon_icns.h
-
- targ="zt1-${vmajor}_${vminor}_${revision}-mac-combined-install"
-
- # Installer can be i386-only to save space, but installs combined
- # x86/x64 binaries for ZT1 itself.
- clang -Os -arch i386 -o $targ installer.c ext/lz4/lz4.o ext/lz4/lz4hc.o
- strip $targ
- ls -l $targ
+ echo "Assembling mac installer for x86/x64 (combined) version $vmajor.$vminor.$revision"
+
+ mkdir -p 'build-installer/Applications'
+ cp -a 'build-ZeroTierUI-release/ZeroTier One.app' 'build-installer/Applications'
+ mv -f 'build-installer/Applications/ZeroTier One.app' 'build-installer/Applications/ZeroTier One_app.LATEST'
+ mkdir -p 'build-installer/Library/Application Support/ZeroTier/One'
+ cp -fp 'ext/installfiles/mac/uninstall.sh' 'build-installer/Library/Application Support/ZeroTier/One'
+ cp -fp 'ext/installfiles/mac/launch.sh' 'build-installer/Library/Application Support/ZeroTier/One'
+ cp -fp 'zerotier-one' 'build-installer/Library/Application Support/ZeroTier/One'
+ mkdir -p 'build-installer/Library/LaunchDaemons'
+ cp -fp 'ext/installfiles/mac/com.zerotier.one.plist' 'build-installer/Library/LaunchDaemons'
+
+ targ="ZeroTierOneInstaller-mac-combined-${vmajor}_${vminor}_${revision}"
+ rm -f build-installer-tmp.tar.bz2
+ cd build-installer
+ find . -type f -name .DS_Store -print0 | xargs -0 rm -f
+ tar -cf - * | bzip2 -9 >../build-installer-tmp.tar.bz2
+ cd ..
+ rm -f $targ
+ cat ext/installfiles/mac/install.tmpl.sh build-installer-tmp.tar.bz2 >$targ
+ chmod 0755 $targ
+ rm -f build-installer-tmp.tar.bz2
;;
diff --git a/ext/installfiles/mac/install.tmpl.sh b/ext/installfiles/mac/install.tmpl.sh
index a1675b1d..87addba5 100644
--- a/ext/installfiles/mac/install.tmpl.sh
+++ b/ext/installfiles/mac/install.tmpl.sh
@@ -37,7 +37,7 @@ if [ ! -r "$scriptPath" ]; then
fi
fi
-endMarkerIndex=`grep -b -E '^################' "$scriptPath" | head -n 1 | cut -d : -f 1`
+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
@@ -55,7 +55,7 @@ else
tail -c +$blobStart "$scriptPath" | bunzip2 -c | tar -xvop -C / -f -
fi
-if [ $dryRun -eq 0 -a ! -d "/Applications/ZeroTierOne_app.LATEST" ]; then
+if [ $dryRun -eq 0 -a ! -d "/Applications/ZeroTier One_app.LATEST" ]; then
echo 'Archive extraction failed, cannot find zerotier-one binary.'
exit 2
fi
@@ -69,16 +69,16 @@ if [ -d "$ztapp" ]; then
currentAppGroup=`stat -f '%g' "$ztapp"`
if [ ! -z "$currentAppOwner" -a ! -z "$currentAppGroup" ]; then
rm -rf "$ztapp"
- mv -f "/Application/ZeroTierOne_app.LATEST" "$ztapp"
+ mv -f "/Application/ZeroTier One_app.LATEST" "$ztapp"
chown -R $currentAppOwner "$ztapp"
chgrp -R $currentAppGroup "$ztapp"
else
rm -rf "$ztapp"
- mv -f "/Application/ZeroTierOne_app.LATEST" "$ztapp"
+ mv -f "/Application/ZeroTier One_app.LATEST" "$ztapp"
fi
else
# If there is no existing app, just drop the shipped one into place
- mv -f "/Applications/ZeroTierOne_app.LATEST" "/Applications/ZeroTierOne.app"
+ mv -f "/Applications/ZeroTier One_app.LATEST" "/Applications/ZeroTier One.app"
fi
echo 'Installing zerotier-cli command line utility...'
diff --git a/make-mac.mk b/make-mac.mk
index 3f5f68a1..06a8a2ae 100644
--- a/make-mac.mk
+++ b/make-mac.mk
@@ -41,7 +41,7 @@ mac-ui: FORCE
cd build-ZeroTierUI-release ; ../../Qt/bin/qmake ../ZeroTierUI/ZeroTierUI.pro ; make -j 4
strip "build-ZeroTierUI-release/ZeroTier One.app/Contents/MacOS/ZeroTier One"
cp -Rv ZeroTierUI/helpers "build-ZeroTierUI-release/ZeroTier One.app/Contents/Resources"
- cd build-ZeroTierUI-release ; codesign -f -s '3rd Party Mac Developer Application: ZeroTier Networks LLC' "ZeroTier One.app"
+# cd build-ZeroTierUI-release ; codesign -f -s '3rd Party Mac Developer Application: ZeroTier Networks LLC' "ZeroTier One.app"
install-mac-tap: FORCE
mkdir -p /Library/Application\ Support/ZeroTier/One
@@ -50,6 +50,6 @@ install-mac-tap: FORCE
chown -R root:wheel /Library/Application\ Support/ZeroTier/One/tap.kext
clean:
- rm -rf *.dSYM build-ZeroTierUI-* $(OBJS) file2lz4c zerotier-* installer-build zt1-*-install
+ rm -rf *.dSYM build-* $(OBJS) zerotier-* ZeroTierOneInstaller-*
FORCE: