Loading make/vtun.mk 0 → 100644 +65 −0 Original line number Diff line number Diff line ############################################################# # # vtun # # NOTE: Uses start-stop-daemon in init script, so be sure # to enable that within busybox # ############################################################# VTUN_SOURCE:=vtun-2.6.tar.gz VTUN_SITE:=http://unc.dl.sourceforge.net/sourceforge/vtun/ VTUN_DIR:=$(BUILD_DIR)/vtun-2.6 VTUN_CAT:=zcat VTUN_BINARY:=vtun VTUN_TARGET_BINARY:=usr/bin/vtun VTUN_PATCH:=$(SOURCE_DIR)/vtun.patch $(DL_DIR)/$(VTUN_SOURCE): $(WGET) -P $(DL_DIR) $(VTUN_SITE)/$(VTUN_SOURCE) vtun-source: $(DL_DIR)/$(VTUN_SOURCE) $(VTUN_DIR)/.unpacked: $(DL_DIR)/$(VTUN_SOURCE) $(VTUN_CAT) $(DL_DIR)/$(VTUN_SOURCE) | tar -C $(BUILD_DIR) -xvf - mv $(BUILD_DIR)/vtun $(VTUN_DIR) cat $(VTUN_PATCH) | patch -p1 -d $(VTUN_DIR) touch $(VTUN_DIR)/.unpacked $(VTUN_DIR)/.configured: $(VTUN_DIR)/.unpacked (cd $(VTUN_DIR); rm -rf config.cache; \ $(TARGET_CONFIGURE_OPTS) \ ./configure \ --target=$(GNU_TARGET_NAME) \ --host=$(GNU_TARGET_NAME) \ --build=$(GNU_HOST_NAME) \ --prefix=/usr \ --exec-prefix=/usr \ --bindir=/usr/bin \ --sbindir=/usr/sbin \ --libexecdir=/usr/lib \ --sysconfdir=/etc \ --datadir=/usr/share \ --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ --disable-lzo \ ); touch $(VTUN_DIR)/.configured $(VTUN_DIR)/$(VTUN_BINARY): $(VTUN_DIR)/.configured $(MAKE) -C $(VTUN_DIR) $(TARGET_DIR)/$(VTUN_TARGET_BINARY): $(VTUN_DIR)/$(VTUN_BINARY) $(MAKE) DESTDIR=$(TARGET_DIR) -C $(VTUN_DIR) install rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \ $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc vtun: uclibc $(TARGET_DIR)/$(VTUN_TARGET_BINARY) vtun-clean: $(MAKE) DESTDIR=$(TARGET_DIR) -C $(VTUN_DIR) uninstall -$(MAKE) -C $(VTUN_DIR) clean vtun-dirclean: rm -rf $(VTUN_DIR) sources/vtun.patch 0 → 100644 +181 −0 Original line number Diff line number Diff line diff -urN vtun.orig/Makefile.in vtun-2.6/Makefile.in --- vtun.orig/Makefile.in 2002-12-20 09:55:47.000000000 -0700 +++ vtun-2.6/Makefile.in 2003-06-05 01:51:50.000000000 -0600 @@ -28,7 +28,7 @@ LEXFLAGS = -t INSTALL = @INSTALL@ -INSTALL_OWNER = -o root -g 0 +INSTALL_OWNER = prefix = @prefix@ exec_prefix = @exec_prefix@ @@ -86,12 +86,10 @@ install_config: $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(ETC_DIR) - if [ ! -f $(ETC_DIR)/vtund.conf ]; then \ - $(INSTALL) -m 600 $(INSTALL_OWNER) vtund.conf $(DESTDIR)$(ETC_DIR); \ - fi + $(INSTALL) -m 600 $(INSTALL_OWNER) vtund.conf $(DESTDIR)$(ETC_DIR); + $(INSTALL) -m 600 $(INSTALL_OWNER) scripts/vtund-start.conf $(DESTDIR)$(ETC_DIR); install: vtund install_config install_man - $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(VAR_DIR)/run $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(STAT_DIR) $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(LOCK_DIR) $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(SBIN_DIR) diff -urN vtun.orig/scripts/vtund.rc.debian vtun-2.6/scripts/vtund.rc.debian --- vtun.orig/scripts/vtund.rc.debian 2000-03-26 10:06:37.000000000 -0700 +++ vtun-2.6/scripts/vtund.rc.debian 2003-06-05 01:52:54.000000000 -0600 @@ -1,92 +1,59 @@ -#! /usr/bin/perl -w +#! /bin/sh +# -### vtund-start -### -### script to start vtund as either a server or a client, according to -### the config file /etc/vtund-start.conf -### -### Copyright 1999 Craig Sanders <cas@taz.net.au> -### -### Written for the Debian GNU/Linux distribution. This script is free -### software licensed under the terms of the GNU General Public License. - -$DAEMON="/usr/sbin/vtund" ; - -$do_what = shift ; -$args="start|stop|reload|force-reload|restart" ; -if ( $do_what !~ /^($args)$/i ) { - print "Usage: /etc/init.d/vtun {$args}\n" ; - exit 0 ; -} - -$SSD="/sbin/start-stop-daemon" ; -$SSDARGS="--verbose --exec $DAEMON" ; - -$sconf="/etc/vtund-start.conf" ; -open(SCONF,"<$sconf") || die "couldn't open $sconf: $!\n" ; -while (<SCONF>) { - chomp ; - s/#.*//; - s/^ +| +$//; - next if (/^$/) ; - - @line = split ; - $host = shift(@line) ; - $server = shift(@line) ; - $args = "" ; - foreach (@line) { $args .= " $_" } ; - - $host='' if ($host =~ /--server--/i ) ; - - if ( $do_what eq 'start' ) { - &start($host,$server,$args) ; - } elsif ( $do_what eq 'stop' ) { - &stop($host,$server,$args) ; - } elsif ( $do_what eq 'restart' ) { - &stop($pidfile) ; - &start($host,$server,$args) ; - } elsif ( $do_what =~ /^(reload|force-reload)$/ ) { - &reload($host,$server) ; - } -} -close (SCONF); - - -sub start { - my($host,$server,$args) = @_ ; - print " Starting vtun " ; - if ($host eq '') { - print "server\n" ; - system "$SSD --start $SSDARGS -- $args -s -P $server" ; - } else { - print "client $host to $server\n" ; - $pidfile="/var/run/vtun.$host.$server" ; - system "$SSD --start $SSDARGS --pidfile $pidfile -- $args $host $server" ; - } -} ; - -sub stop { - my($host,$server,$args) = @_ ; - print " Stopping vtun " ; - if ($host eq '') { - print "server\n" ; - system "$SSD --stop $SSDARGS" ; - } else { - print "client $host to $server\n" ; - $pidfile="/var/run/vtun.$host.$server" ; - system "$SSD --stop $SSDARGS --pidfile $pidfile" ; - } -} ; - -sub reload { - my($host,$server) = @_ ; - print " Reloading vtun " ; - if ($host eq '') { - print "server\n" ; - system "$SSD --stop $SSDARGS --signal 1" ; - } else { - print "client $host to $server\n" ; - $pidfile="/var/run/vtun.$host.$server" ; - system "$SSD --stop $SSDARGS --signal 1 --pidfile $pidfile" ; - } -} +PATH=/bin:/usr/bin:/sbin:/usr/sbin +DAEMON=/usr/sbin/vtund +CONFFILE=/etc/vtund-start.conf +PIDPREFIX=/var/run/vtund + +test -f $DAEMON || exit 0 + +case "$1" in + start) + # find all the defined tunnels + egrep -v '^[:space:]*(#.*)?$' $CONFFILE | while true; + do + read i + # no more lines available? done, then. + if [ $? != 0 ] ; then break; fi + SARGS=`echo $i|sed -ne 's/--server--\s*/-s -P /p'`; + if [ -n "$SARGS" ]; + then + echo "Starting vtund server." + start-stop-daemon --start --exec $DAEMON --pidfile $PIDPREFIX.pid -- $SARGS; + else + # split args into host and rest + HOST=`echo $i|cut -f 1 -d " "`; + TARGET=`echo $i|cut -f 2 -d " "`; + echo "Starting vtund client $HOST to $TARGET."; + start-stop-daemon --start --exec $DAEMON --pidfile $PIDPREFIX.$HOST.pid -- $i; + + fi + done + ;; + stop) + echo "Stopping vtund."; + for i in $PIDPREFIX*; + do + start-stop-daemon --stop --pidfile $i; + rm -f $i; + done + ;; + reload|force-reload) + echo "Reloading vtund."; + for i in $PIDPREFIX*; + do + start-stop-daemon --stop --signal 1 --pidfile $i; + done + ;; + restart) + $0 stop + sleep 1; + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart|reload|force-reload}" >&2 + exit 1 + ;; +esac +exit 0 Loading
make/vtun.mk 0 → 100644 +65 −0 Original line number Diff line number Diff line ############################################################# # # vtun # # NOTE: Uses start-stop-daemon in init script, so be sure # to enable that within busybox # ############################################################# VTUN_SOURCE:=vtun-2.6.tar.gz VTUN_SITE:=http://unc.dl.sourceforge.net/sourceforge/vtun/ VTUN_DIR:=$(BUILD_DIR)/vtun-2.6 VTUN_CAT:=zcat VTUN_BINARY:=vtun VTUN_TARGET_BINARY:=usr/bin/vtun VTUN_PATCH:=$(SOURCE_DIR)/vtun.patch $(DL_DIR)/$(VTUN_SOURCE): $(WGET) -P $(DL_DIR) $(VTUN_SITE)/$(VTUN_SOURCE) vtun-source: $(DL_DIR)/$(VTUN_SOURCE) $(VTUN_DIR)/.unpacked: $(DL_DIR)/$(VTUN_SOURCE) $(VTUN_CAT) $(DL_DIR)/$(VTUN_SOURCE) | tar -C $(BUILD_DIR) -xvf - mv $(BUILD_DIR)/vtun $(VTUN_DIR) cat $(VTUN_PATCH) | patch -p1 -d $(VTUN_DIR) touch $(VTUN_DIR)/.unpacked $(VTUN_DIR)/.configured: $(VTUN_DIR)/.unpacked (cd $(VTUN_DIR); rm -rf config.cache; \ $(TARGET_CONFIGURE_OPTS) \ ./configure \ --target=$(GNU_TARGET_NAME) \ --host=$(GNU_TARGET_NAME) \ --build=$(GNU_HOST_NAME) \ --prefix=/usr \ --exec-prefix=/usr \ --bindir=/usr/bin \ --sbindir=/usr/sbin \ --libexecdir=/usr/lib \ --sysconfdir=/etc \ --datadir=/usr/share \ --localstatedir=/var \ --mandir=/usr/man \ --infodir=/usr/info \ --disable-lzo \ ); touch $(VTUN_DIR)/.configured $(VTUN_DIR)/$(VTUN_BINARY): $(VTUN_DIR)/.configured $(MAKE) -C $(VTUN_DIR) $(TARGET_DIR)/$(VTUN_TARGET_BINARY): $(VTUN_DIR)/$(VTUN_BINARY) $(MAKE) DESTDIR=$(TARGET_DIR) -C $(VTUN_DIR) install rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \ $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc vtun: uclibc $(TARGET_DIR)/$(VTUN_TARGET_BINARY) vtun-clean: $(MAKE) DESTDIR=$(TARGET_DIR) -C $(VTUN_DIR) uninstall -$(MAKE) -C $(VTUN_DIR) clean vtun-dirclean: rm -rf $(VTUN_DIR)
sources/vtun.patch 0 → 100644 +181 −0 Original line number Diff line number Diff line diff -urN vtun.orig/Makefile.in vtun-2.6/Makefile.in --- vtun.orig/Makefile.in 2002-12-20 09:55:47.000000000 -0700 +++ vtun-2.6/Makefile.in 2003-06-05 01:51:50.000000000 -0600 @@ -28,7 +28,7 @@ LEXFLAGS = -t INSTALL = @INSTALL@ -INSTALL_OWNER = -o root -g 0 +INSTALL_OWNER = prefix = @prefix@ exec_prefix = @exec_prefix@ @@ -86,12 +86,10 @@ install_config: $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(ETC_DIR) - if [ ! -f $(ETC_DIR)/vtund.conf ]; then \ - $(INSTALL) -m 600 $(INSTALL_OWNER) vtund.conf $(DESTDIR)$(ETC_DIR); \ - fi + $(INSTALL) -m 600 $(INSTALL_OWNER) vtund.conf $(DESTDIR)$(ETC_DIR); + $(INSTALL) -m 600 $(INSTALL_OWNER) scripts/vtund-start.conf $(DESTDIR)$(ETC_DIR); install: vtund install_config install_man - $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(VAR_DIR)/run $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(STAT_DIR) $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(LOCK_DIR) $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(SBIN_DIR) diff -urN vtun.orig/scripts/vtund.rc.debian vtun-2.6/scripts/vtund.rc.debian --- vtun.orig/scripts/vtund.rc.debian 2000-03-26 10:06:37.000000000 -0700 +++ vtun-2.6/scripts/vtund.rc.debian 2003-06-05 01:52:54.000000000 -0600 @@ -1,92 +1,59 @@ -#! /usr/bin/perl -w +#! /bin/sh +# -### vtund-start -### -### script to start vtund as either a server or a client, according to -### the config file /etc/vtund-start.conf -### -### Copyright 1999 Craig Sanders <cas@taz.net.au> -### -### Written for the Debian GNU/Linux distribution. This script is free -### software licensed under the terms of the GNU General Public License. - -$DAEMON="/usr/sbin/vtund" ; - -$do_what = shift ; -$args="start|stop|reload|force-reload|restart" ; -if ( $do_what !~ /^($args)$/i ) { - print "Usage: /etc/init.d/vtun {$args}\n" ; - exit 0 ; -} - -$SSD="/sbin/start-stop-daemon" ; -$SSDARGS="--verbose --exec $DAEMON" ; - -$sconf="/etc/vtund-start.conf" ; -open(SCONF,"<$sconf") || die "couldn't open $sconf: $!\n" ; -while (<SCONF>) { - chomp ; - s/#.*//; - s/^ +| +$//; - next if (/^$/) ; - - @line = split ; - $host = shift(@line) ; - $server = shift(@line) ; - $args = "" ; - foreach (@line) { $args .= " $_" } ; - - $host='' if ($host =~ /--server--/i ) ; - - if ( $do_what eq 'start' ) { - &start($host,$server,$args) ; - } elsif ( $do_what eq 'stop' ) { - &stop($host,$server,$args) ; - } elsif ( $do_what eq 'restart' ) { - &stop($pidfile) ; - &start($host,$server,$args) ; - } elsif ( $do_what =~ /^(reload|force-reload)$/ ) { - &reload($host,$server) ; - } -} -close (SCONF); - - -sub start { - my($host,$server,$args) = @_ ; - print " Starting vtun " ; - if ($host eq '') { - print "server\n" ; - system "$SSD --start $SSDARGS -- $args -s -P $server" ; - } else { - print "client $host to $server\n" ; - $pidfile="/var/run/vtun.$host.$server" ; - system "$SSD --start $SSDARGS --pidfile $pidfile -- $args $host $server" ; - } -} ; - -sub stop { - my($host,$server,$args) = @_ ; - print " Stopping vtun " ; - if ($host eq '') { - print "server\n" ; - system "$SSD --stop $SSDARGS" ; - } else { - print "client $host to $server\n" ; - $pidfile="/var/run/vtun.$host.$server" ; - system "$SSD --stop $SSDARGS --pidfile $pidfile" ; - } -} ; - -sub reload { - my($host,$server) = @_ ; - print " Reloading vtun " ; - if ($host eq '') { - print "server\n" ; - system "$SSD --stop $SSDARGS --signal 1" ; - } else { - print "client $host to $server\n" ; - $pidfile="/var/run/vtun.$host.$server" ; - system "$SSD --stop $SSDARGS --signal 1 --pidfile $pidfile" ; - } -} +PATH=/bin:/usr/bin:/sbin:/usr/sbin +DAEMON=/usr/sbin/vtund +CONFFILE=/etc/vtund-start.conf +PIDPREFIX=/var/run/vtund + +test -f $DAEMON || exit 0 + +case "$1" in + start) + # find all the defined tunnels + egrep -v '^[:space:]*(#.*)?$' $CONFFILE | while true; + do + read i + # no more lines available? done, then. + if [ $? != 0 ] ; then break; fi + SARGS=`echo $i|sed -ne 's/--server--\s*/-s -P /p'`; + if [ -n "$SARGS" ]; + then + echo "Starting vtund server." + start-stop-daemon --start --exec $DAEMON --pidfile $PIDPREFIX.pid -- $SARGS; + else + # split args into host and rest + HOST=`echo $i|cut -f 1 -d " "`; + TARGET=`echo $i|cut -f 2 -d " "`; + echo "Starting vtund client $HOST to $TARGET."; + start-stop-daemon --start --exec $DAEMON --pidfile $PIDPREFIX.$HOST.pid -- $i; + + fi + done + ;; + stop) + echo "Stopping vtund."; + for i in $PIDPREFIX*; + do + start-stop-daemon --stop --pidfile $i; + rm -f $i; + done + ;; + reload|force-reload) + echo "Reloading vtund."; + for i in $PIDPREFIX*; + do + start-stop-daemon --stop --signal 1 --pidfile $i; + done + ;; + restart) + $0 stop + sleep 1; + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart|reload|force-reload}" >&2 + exit 1 + ;; +esac +exit 0