|
@@ -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 <[email protected]> 1.1.4-1
|
|
|
+- initial package
|