summaryrefslogtreecommitdiff
path: root/ext/installfiles/linux
diff options
context:
space:
mode:
Diffstat (limited to 'ext/installfiles/linux')
-rw-r--r--ext/installfiles/linux/DEBIAN/control.in5
-rw-r--r--ext/installfiles/linux/RPM/README.md24
-rw-r--r--ext/installfiles/linux/RPM/zerotier-one.spec.in4
-rwxr-xr-xext/installfiles/linux/RPM/zerotier.spec194
-rwxr-xr-xext/installfiles/linux/buildinstaller.sh4
-rw-r--r--ext/installfiles/linux/install.tmpl.sh2
-rwxr-xr-xext/installfiles/linux/uninstall.sh2
7 files changed, 227 insertions, 8 deletions
diff --git a/ext/installfiles/linux/DEBIAN/control.in b/ext/installfiles/linux/DEBIAN/control.in
index dab6587f..d1b5a8c1 100644
--- a/ext/installfiles/linux/DEBIAN/control.in
+++ b/ext/installfiles/linux/DEBIAN/control.in
@@ -7,5 +7,6 @@ Installed-Size: 1024
Homepage: https://github.com/zerotier/ZeroTierOne
Description: ZeroTier One network virtualization service
ZeroTier One is a fast, secure, and easy to use peer to peer network
- virtualization engine. Visit https://www.zerotier.com/ for more
- information.
+ virtualization engine that provides global-scale software defined
+ networking to any device or application. Visit https://www.zerotier.com/
+ for more information.
diff --git a/ext/installfiles/linux/RPM/README.md b/ext/installfiles/linux/RPM/README.md
new file mode 100644
index 00000000..21ad0a1b
--- /dev/null
+++ b/ext/installfiles/linux/RPM/README.md
@@ -0,0 +1,24 @@
+This folder contains two spec files which enable building of various RPM packages for ZeroTier.
+
+#zerotier-one.spec.in
+This file contains the information to build an RPM from the bash based binary installer of ZeroTier. The resulting RPM cannot be recompiled to different architectures.
+
+#zerotier.spec
+This spec file is a “standard” RPM spec file. It fits to the common rpmbuild process, SRPM and differnt architectures are supported too. The spec file can be used to build two packages: the standard zerotier and the zerotier-controller. It supports some of the build options exposed in the original Linux makefile:
+
+> `rpmbuild -ba zerotier.spec` #builds the standard zerotier package, this is what you need in most of the cases
+
+> `rpmbuild -ba zerotier.spec --with controller` #builds the zerotier-controller package
+
+> `rpmbuild -ba zerotier.spec --with debug` #builds the zerotier package with debug enable<>d
+
+> `rpmbuild -ba zerotier.spec --with miniupnpc` #builds the zerotier package with miniupnpc enabled
+
+> `rpmbuild -ba zerotier.spec --with cluster` #builds the zerotier package with cluster enabled
+
+
+####Build environment preparation
+As zerotier is not distributed in tar.gz format at the moment, the %prep section of the spec file takes care about the prepartion of an rpmbuild compatible tar.gz.
+
+
+
diff --git a/ext/installfiles/linux/RPM/zerotier-one.spec.in b/ext/installfiles/linux/RPM/zerotier-one.spec.in
index a5445ba5..1ec3d42a 100644
--- a/ext/installfiles/linux/RPM/zerotier-one.spec.in
+++ b/ext/installfiles/linux/RPM/zerotier-one.spec.in
@@ -21,11 +21,11 @@ mkdir -p /var/lib/zerotier-one/updates.d
%post
chmod 0755 /var/lib/zerotier-one/updates.d/__INSTALLER__
-/var/lib/zerotier-one/updates.d/__INSTALLER__
+/var/lib/zerotier-one/updates.d/__INSTALLER__ >>/dev/null 2>&1
%preun
if [ "$1" -lt 1 ]; then
- /var/lib/zerotier-one/uninstall.sh
+ /var/lib/zerotier-one/uninstall.sh >>/dev/null 2>&1
fi
%clean
diff --git a/ext/installfiles/linux/RPM/zerotier.spec b/ext/installfiles/linux/RPM/zerotier.spec
new file mode 100755
index 00000000..41230f0e
--- /dev/null
+++ b/ext/installfiles/linux/RPM/zerotier.spec
@@ -0,0 +1,194 @@
+# add --with controller option to build controller (builds zerotier-controller package)
+%bcond_with controller
+# add --with miniupnpc option to enable the miniupnpc option during build
+%bcond_with miniupnpc
+# add --with cluster option to enable the cluster option during build
+%bcond_with cluster
+# add --with debug option to enable the debug option during build
+%bcond_with debug
+%if %{with controller}
+Name:zerotier-controller
+Conflicts:zerotier
+%else
+Name:zerotier
+Conflicts:zerotier-controller
+%endif
+Version: 1.1.4
+Release: 1
+Summary: Network Virtualization Everywhere https://www.zerotier.com/
+Group: network
+License: GPLv3
+BuildRoot: %{_tmppath}/%{name}-root
+Provides: zerotier-one
+Source0: http:///download/%{name}-%{version}.tar.gz
+BuildRequires: gcc-c++
+BuildRequires: make
+BuildRequires: gcc
+%if %{with server}
+BuildRequires: sqlite-devel
+BuildRequires: wget
+BuildRequires: unzip
+Requires: sqlite
+%endif
+%description
+ZeroTier One creates virtual Ethernet networks that work anywhere and everywhere.
+Visit https://www.zerotier.com/ for more information.
+
+%prep
+cd `mktemp -d`
+wget -O master.zip https://github.com/zerotier/ZeroTierOne/archive/master.zip
+unzip master.zip
+mv ZeroTierOne-master zerotier-1.1.4
+ln -s zerotier-1.1.4 zerotier-controller-1.1.4
+tar zcvf zerotier-1.1.4.tar.gz zerotier-1.1.4 zerotier-controller-1.1.4
+ln -s zerotier-1.1.4.tar.gz zerotier-controller-1.1.4.tar.gz
+mv zero*.tar.gz ~/rpmbuild/SOURCES
+cd -
+%setup -q
+
+%build
+%if %{with miniupnpc}
+ZT_USE_MINIUPNPC=1; export ZT_USE_MINIUPNPC;
+%endif
+
+%if %{with controller}
+ZT_ENABLE_NETWORK_CONTROLLER=1; export ZT_ENABLE_NETWORK_CONTROLLER;
+%endif
+
+%if %{with cluster}
+export ZT_ENABLE_CLUSTER=1
+%endif
+
+%if %{with debug}
+export ZT_DEBUG=1
+%endif
+
+make
+
+%install
+
+
+rm -rf $RPM_BUILD_ROOT
+rm -f $RPM_BUILD_ROOT%{_prefix}/bin/zerotier-idtool $RPM_BUILD_ROOT%{_prefix}/bin/zerotier-idtool
+echo 'Install...'
+mkdir -p $RPM_BUILD_ROOT%{_vardir}/lib/zerotier-one/initfiles/{init.d,systemd}
+install -m 0755 -D zerotier-one -t $RPM_BUILD_ROOT%{_vardir}/lib/zerotier-one/
+install -m 0755 -D ext/installfiles/linux/init.d/* -t $RPM_BUILD_ROOT%{_vardir}/lib/zerotier-one/initfiles/init.d/
+install -m 0755 -D ext/installfiles/linux/systemd/* -t $RPM_BUILD_ROOT%{_vardir}/lib/zerotier-one/initfiles/systemd/
+
+
+
+%posttrans
+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...'
+
+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
+
+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 /var/lib/zerotier-one/initfiles/systemd/zerotier-one.service "$SYSTEMDUNITDIR/zerotier-one.service"
+ chown 0 "$SYSTEMDUNITDIR/zerotier-one.service"
+ chgrp 0 "$SYSTEMDUNITDIR/zerotier-one.service"
+ chmod 0755 "$SYSTEMDUNITDIR/zerotier-one.service"
+
+ 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 /var/lib/zerotier-one/initfiles/init.d/zerotier-one /etc/init.d/zerotier-one
+ chmod 0755 /etc/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
+%preun
+/sbin/chkconfig --del zerotier-one
+rm -f /usr/bin/zerotier-cli /usr/bin/zerotier-idtool
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+%files
+%{_vardir}/lib/zerotier-one/zerotier-one
+%{_vardir}/lib/zerotier-one/initfiles/systemd/zerotier-one.service
+%{_vardir}/lib/zerotier-one/initfiles/init.d/zerotier-one
+
+%changelog
+* Fri Feb 26 2016 Kristof Imre Szabo <kristof.szabo@lxsystems.de> 1.1.4-1
+- initial package
diff --git a/ext/installfiles/linux/buildinstaller.sh b/ext/installfiles/linux/buildinstaller.sh
index 1f6f8935..21f2f73e 100755
--- a/ext/installfiles/linux/buildinstaller.sh
+++ b/ext/installfiles/linux/buildinstaller.sh
@@ -91,14 +91,14 @@ case "$system" in
rm -f "${debfolder}/postinst" "${debfolder}/prerm"
echo '#!/bin/bash' >${debfolder}/postinst
- echo "/var/lib/zerotier-one/updates.d/${targ}" >>${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' >>${debfolder}/prerm
+ echo ' /var/lib/zerotier-one/uninstall.sh >>/dev/null 2>&1' >>${debfolder}/prerm
echo 'fi' >>${debfolder}/prerm
chmod a+x ${debfolder}/prerm
diff --git a/ext/installfiles/linux/install.tmpl.sh b/ext/installfiles/linux/install.tmpl.sh
index 24425cbb..2d18d24c 100644
--- a/ext/installfiles/linux/install.tmpl.sh
+++ b/ext/installfiles/linux/install.tmpl.sh
@@ -115,7 +115,7 @@ if [ -n "$SYSTEMDUNITDIR" -a -d "$SYSTEMDUNITDIR" ]; then
cp -f /tmp/systemd_zerotier-one.service "$SYSTEMDUNITDIR/zerotier-one.service"
chown 0 "$SYSTEMDUNITDIR/zerotier-one.service"
chgrp 0 "$SYSTEMDUNITDIR/zerotier-one.service"
- chmod 0755 "$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
diff --git a/ext/installfiles/linux/uninstall.sh b/ext/installfiles/linux/uninstall.sh
index bfc7ee6b..d9495a18 100755
--- a/ext/installfiles/linux/uninstall.sh
+++ b/ext/installfiles/linux/uninstall.sh
@@ -59,7 +59,7 @@ 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
+ 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..."