From e88a0d5fcbb8bad848080716b96d3a5cf72fb62f Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Fri, 8 Jul 2016 00:17:10 +0200 Subject: moved anytun-lanucher to /lib --- etc/init.d/anytun | 2 +- src/Makefile | 12 ++--- src/configure | 10 +++++ usr/bin/anytun-launcher.sh | 62 -------------------------- usr/lib/anytun-launcher | 62 ++++++++++++++++++++++++++ usr/lib/systemd/system/anytun-control@.service | 2 +- usr/lib/systemd/system/anytun@.service | 2 +- 7 files changed, 81 insertions(+), 71 deletions(-) delete mode 100755 usr/bin/anytun-launcher.sh create mode 100755 usr/lib/anytun-launcher diff --git a/etc/init.d/anytun b/etc/init.d/anytun index 6ecfb26..eacfdcc 100755 --- a/etc/init.d/anytun +++ b/etc/init.d/anytun @@ -10,7 +10,7 @@ ### END INIT INFO PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=anytun -LAUNCHER=/usr/local/bin/$DAEMON-launcher.sh +LAUNCHER=/usr/local/lib/$DAEMON-launcher DESC=secure anycast tunneling daemon CONFIG_DIR=/usr/local/etc/$DAEMON VARCONTROL_DIR=/var/run/$DAEMON-controld diff --git a/src/Makefile b/src/Makefile index 3304041..506dffa 100644 --- a/src/Makefile +++ b/src/Makefile @@ -295,23 +295,23 @@ install-bin: $(EXECUTABLES) $(INSTALL) -m 755 anytun-controld $(DESTDIR)$(BINDIR) $(INSTALL) -m 755 anytun-showtables $(DESTDIR)$(BINDIR) @ sed -e 's#/usr/local/sbin#$(SBINDIR)#' -e 's#/usr/local/bin#$(BINDIR)#' \ - -e 's#/usr/local/etc#$(ETCDIR)#' ../usr/bin/anytun-launcher.sh > ../usr/bin/anytun-launcher.sh.bak - $(INSTALL) -m 755 ../usr/bin/anytun-launcher.sh.bak $(DESTDIR)$(BINDIR)/anytun-launcher.sh - rm -f ../usr/bin/anytun-launcher.sh.bak + -e 's#/usr/local/etc#$(ETCDIR)#' ../usr/lib/anytun-launcher > ../usr/lib/anytun-launcher.bak + $(INSTALL) -m 755 ../usr/lib/anytun-launcher.bak $(DESTDIR)$(BINDIR)/anytun-launcher + rm -f ../usr/lib/anytun-launcher.bak install-etc: $(INSTALL) -d $(DESTDIR)$(ETCDIR)/anytun @ echo "example configurations can be found at $(EXAMPLESDIR)/anytun" > $(DESTDIR)$(ETCDIR)/anytun/README $(INSTALL) -d $(DESTDIR)$(ETCDIR)/init.d - @ sed -e 's#/usr/local/bin#$(BINDIR)#' -e 's#/usr/local/etc#$(ETCDIR)#' ../etc/init.d/anytun > ../etc/init.d/anytun.bak + @ sed -e 's#/usr/local/bin#$(BINDIR)#' -e 's#/usr/local/lib#$(LIBDIR)#' -e 's#/usr/local/etc#$(ETCDIR)#' ../etc/init.d/anytun > ../etc/init.d/anytun.bak $(INSTALL) -m 755 ../etc/init.d/anytun.bak $(DESTDIR)$(ETCDIR)/init.d/anytun rm -f ../etc/init.d/anytun.bak install-systemd: $(INSTALL) -d $(DESTDIR)$(SYSTEMDDIR) $(INSTALL) -d $(DESTDIR)$(TMPFILESDDIR) - @ sed -e 's#/usr/local/bin/#$(BINDIR)/#' ../usr/lib/systemd/system/anytun@.service > ../usr/lib/systemd/system/anytun@.service.bak - @ sed -e 's#/usr/local/bin/#$(BINDIR)/#' ../usr/lib/systemd/system/anytun-control@.service > ../usr/lib/systemd/system/anytun-control@.service.bak + @ sed -e 's#/usr/local/lib/#$(LIBDIR)/#' ../usr/lib/systemd/system/anytun@.service > ../usr/lib/systemd/system/anytun@.service.bak + @ sed -e 's#/usr/local/lib/#$(LIBDIR)/#' ../usr/lib/systemd/system/anytun-control@.service > ../usr/lib/systemd/system/anytun-control@.service.bak $(INSTALL) -m 644 ../usr/lib/systemd/system/anytun@.service.bak $(DESTDIR)$(SYSTEMDDIR)/anytun@.service $(INSTALL) -m 644 ../usr/lib/systemd/system/anytun-control@.service.bak $(DESTDIR)$(SYSTEMDDIR)/anytun-control@.service $(INSTALL) -m 644 ../usr/lib/tmpfiles.d/anytun.conf $(DESTDIR)$(TMPFILESDDIR)/anytun.conf diff --git a/src/configure b/src/configure index 0ba56b5..203a68c 100755 --- a/src/configure +++ b/src/configure @@ -59,6 +59,7 @@ ROUTING=1 PREFIX='/usr/local' BINDIR='' SBINDIR='' +LIBDIR='' ETCDIR='' MANDIR='' INSTALLMANPAGE=1 @@ -79,6 +80,7 @@ print_usage() { echo " --prefix= the installation prefix (default: /usr/local)" echo " --bindir= the path to the bin directory (default: $PREFIX/bin)" echo " --sbindir= the path to the sbin directory (default: $PREFIX/sbin)" + echo " --libdir= the path to the lib directory (default: $PREFIX/lib)" echo " --sysconfdir= the path to the system configuration directory (default: $PREFIX/etc" echo " --mandir= the path to the system man pages (default: $PREFIX/share/man)" echo " --no-manpage don't install manpages" @@ -121,6 +123,9 @@ do --sbindir=*) SBINDIR=${arg#--sbindir=} ;; + --libdir=*) + LIBDIR=${arg#--libdir=} + ;; --sysconfdir=*) ETCDIR=${arg#--sysconfdir=} ;; @@ -325,6 +330,10 @@ if [ -z "$SBINDIR" ]; then SBINDIR=$PREFIX/sbin fi +if [ -z "$LIBDIR" ]; then + LIBDIR=$PREFIX/lib +fi + if [ -z "$ETCDIR" ]; then ETCDIR=$PREFIX/etc fi @@ -362,6 +371,7 @@ INSTALL = install prefix := $PREFIX BINDIR := $BINDIR SBINDIR := $SBINDIR +LIBDIR := $LIBDIR ETCDIR := $ETCDIR EOF diff --git a/usr/bin/anytun-launcher.sh b/usr/bin/anytun-launcher.sh deleted file mode 100755 index 60773fd..0000000 --- a/usr/bin/anytun-launcher.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/sh - -NAME="${NAME:-$2}" - -DAEMON=/usr/local/sbin/anytun -ANYTUNCONFIG=/usr/local/bin/anytun-config -CONTROLDAEMON=/usr/local/bin/anytun-controld -CONFIG_DIR=/usr/local/etc/anytun -VARRUN_DIR=/run/anytun -VARCONTROL_DIR=/run/anytun-controld - -test -x $DAEMON || exit 0 -test -z $NAME && exit 1 - -start_vpn () { - if [ -f $CONFIG_DIR/$NAME/config ] ; then - POSTUP='' - test -f $CONFIG_DIR/$NAME/post-up.sh && POSTUP="-x $CONFIG_DIR/$NAME/post-up.sh" - CHROOTDIR=`grep '^chroot' < $CONFIG_DIR/$NAME/config | sed 's/chroot\s*//'` - if [ -n "$CHROOTDIR" ] ; then - test -d $CHROOTDIR || mkdir -p $CHROOTDIR - fi - test -d $VARRUN_DIR || mkdir -p $VARRUN_DIR - DAEMONARG=`sed 's/#.*//' < $CONFIG_DIR/$NAME/config | grep -e '\w' | sed 's/^/--/' | tr '\n' ' '` - $DAEMON --write-pid $VARRUN_DIR/$NAME.pid $POSTUP $DAEMONOPTS $DAEMONARG - else - echo "no config found" >&2 - return 1 - fi -} - -start_configd () { - if [ -d $CONFIG_DIR/$NAME/conf.d ] ; then - test -d $VARCONTROL_DIR || mkdir -p $VARCONTROL_DIR - chmod 700 $VARCONTROL_DIR - rm -f $VARCONTROL_DIR/$NAME 2>/dev/null - KDPRF=`sed 's/#.*//' < $CONFIG_DIR/$NAME/config | grep -e 'kd-prf' | sed 's/^/ --/' | xargs echo` - for CLIENTNAME in `ls $CONFIG_DIR/$NAME/conf.d`; do - echo -n " ($CLIENTNAME)" - DAEMONARG=`sed 's/#.*//' < $CONFIG_DIR/$NAME/conf.d/$CLIENTNAME | grep -e '\w' | sed 's/^/ --/' | xargs echo` - $ANYTUNCONFIG $DAEMONARG $CIPHER $AUTHALGO $KDPRF >> $VARCONTROL_DIR/$NAME - done - CONTROLHOST=`sed 's/#.*//' < $CONFIG_DIR/$NAME/config | grep -e 'control-host' | sed 's/^/ --/' | xargs echo` - $CONTROLDAEMON -f $VARCONTROL_DIR/$NAME $DAEMONOPTS $CONTROLHOST \ - --write-pid $VARCONTROL_DIR/$NAME.pid - else - echo "no conf.d directory found (maybe $NAME is an anytun client not a server?)" >&2 - return 1 - fi -} - -case $1 in - vpn) - start_vpn - ;; - configd) - start_configd - ;; - *) - exit 2 - ;; -esac diff --git a/usr/lib/anytun-launcher b/usr/lib/anytun-launcher new file mode 100755 index 0000000..60773fd --- /dev/null +++ b/usr/lib/anytun-launcher @@ -0,0 +1,62 @@ +#!/bin/sh + +NAME="${NAME:-$2}" + +DAEMON=/usr/local/sbin/anytun +ANYTUNCONFIG=/usr/local/bin/anytun-config +CONTROLDAEMON=/usr/local/bin/anytun-controld +CONFIG_DIR=/usr/local/etc/anytun +VARRUN_DIR=/run/anytun +VARCONTROL_DIR=/run/anytun-controld + +test -x $DAEMON || exit 0 +test -z $NAME && exit 1 + +start_vpn () { + if [ -f $CONFIG_DIR/$NAME/config ] ; then + POSTUP='' + test -f $CONFIG_DIR/$NAME/post-up.sh && POSTUP="-x $CONFIG_DIR/$NAME/post-up.sh" + CHROOTDIR=`grep '^chroot' < $CONFIG_DIR/$NAME/config | sed 's/chroot\s*//'` + if [ -n "$CHROOTDIR" ] ; then + test -d $CHROOTDIR || mkdir -p $CHROOTDIR + fi + test -d $VARRUN_DIR || mkdir -p $VARRUN_DIR + DAEMONARG=`sed 's/#.*//' < $CONFIG_DIR/$NAME/config | grep -e '\w' | sed 's/^/--/' | tr '\n' ' '` + $DAEMON --write-pid $VARRUN_DIR/$NAME.pid $POSTUP $DAEMONOPTS $DAEMONARG + else + echo "no config found" >&2 + return 1 + fi +} + +start_configd () { + if [ -d $CONFIG_DIR/$NAME/conf.d ] ; then + test -d $VARCONTROL_DIR || mkdir -p $VARCONTROL_DIR + chmod 700 $VARCONTROL_DIR + rm -f $VARCONTROL_DIR/$NAME 2>/dev/null + KDPRF=`sed 's/#.*//' < $CONFIG_DIR/$NAME/config | grep -e 'kd-prf' | sed 's/^/ --/' | xargs echo` + for CLIENTNAME in `ls $CONFIG_DIR/$NAME/conf.d`; do + echo -n " ($CLIENTNAME)" + DAEMONARG=`sed 's/#.*//' < $CONFIG_DIR/$NAME/conf.d/$CLIENTNAME | grep -e '\w' | sed 's/^/ --/' | xargs echo` + $ANYTUNCONFIG $DAEMONARG $CIPHER $AUTHALGO $KDPRF >> $VARCONTROL_DIR/$NAME + done + CONTROLHOST=`sed 's/#.*//' < $CONFIG_DIR/$NAME/config | grep -e 'control-host' | sed 's/^/ --/' | xargs echo` + $CONTROLDAEMON -f $VARCONTROL_DIR/$NAME $DAEMONOPTS $CONTROLHOST \ + --write-pid $VARCONTROL_DIR/$NAME.pid + else + echo "no conf.d directory found (maybe $NAME is an anytun client not a server?)" >&2 + return 1 + fi +} + +case $1 in + vpn) + start_vpn + ;; + configd) + start_configd + ;; + *) + exit 2 + ;; +esac diff --git a/usr/lib/systemd/system/anytun-control@.service b/usr/lib/systemd/system/anytun-control@.service index 014dba4..e8a2289 100644 --- a/usr/lib/systemd/system/anytun-control@.service +++ b/usr/lib/systemd/system/anytun-control@.service @@ -7,7 +7,7 @@ Requires=anytun@%i.service Type=simple PIDFile=/run/anytun-controld/%i.pid Environment="NAME=%i" "DAEMONOPTS=-D -L stdout:3 --username anytun" -ExecStart=/usr/local/bin/anytun-launcher.sh configd +ExecStart=/usr/local/lib/anytun-launcher configd Restart=on-failure PrivateTmp=yes PrivateDevices=yes diff --git a/usr/lib/systemd/system/anytun@.service b/usr/lib/systemd/system/anytun@.service index aa7f32b..70fbd17 100644 --- a/usr/lib/systemd/system/anytun@.service +++ b/usr/lib/systemd/system/anytun@.service @@ -6,7 +6,7 @@ After=syslog.target network.target Type=simple PIDFile=/run/anytun/%i.pid Environment="NAME=%i" "DAEMONOPTS=-D -L stdout:3 --username anytun" -ExecStart=/usr/local/bin/anytun-launcher.sh vpn +ExecStart=/usr/local/lib/anytun-launcher vpn Restart=on-failure PrivateTmp=yes PrivateDevices=yes -- cgit v1.2.3