OpenPKG CVS Repository http://cvs.openpkg.org/ ____________________________________________________________________________
Server: cvs.openpkg.org Name: Ralf S. Engelschall Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-src Date: 17-Oct-2007 15:45:22 Branch: HEAD Handle: 2007101714452100 Added files: openpkg-src/openvpn21 fsl.openvpn openvpn.conf openvpn21.patch openvpn21.spec openvpnctl rc.openvpn Log: new package: openvpn21 2.1rc4 (Virtual Private Network Facility) Summary: Revision Changes Path 1.1 +16 -0 openpkg-src/openvpn21/fsl.openvpn 1.1 +17 -0 openpkg-src/openvpn21/openvpn.conf 1.1 +26 -0 openpkg-src/openvpn21/openvpn21.patch 1.1 +180 -0 openpkg-src/openvpn21/openvpn21.spec 1.1 +66 -0 openpkg-src/openvpn21/openvpnctl 1.1 +110 -0 openpkg-src/openvpn21/rc.openvpn ____________________________________________________________________________ patch -p0 <<'@@ .' Index: openpkg-src/openvpn21/fsl.openvpn ============================================================================ $ cvs diff -u -r0 -r1.1 fsl.openvpn --- /dev/null 2007-10-17 15:45:15 +0200 +++ fsl.openvpn 2007-10-17 15:45:22 +0200 @@ -0,0 +1,16 @@ +## +## fsl.openvpn -- OSSP fsl configuration +## + +ident (openvpn)/.+ q{ + prefix( + prefix="%b %d %H:%M:%S %N <%L> $1[%P]: " + ) + -> { + debug: file( + path="@l_prefix@/var/openvpn/openvpn.log", + perm=0644, jitter=1, monitor=3600 + ) + } +}; + @@ . patch -p0 <<'@@ .' Index: openpkg-src/openvpn21/openvpn.conf ============================================================================ $ cvs diff -u -r0 -r1.1 openvpn.conf --- /dev/null 2007-10-17 15:45:15 +0200 +++ openvpn.conf 2007-10-17 15:45:22 +0200 @@ -0,0 +1,17 @@ +## +## openvpn.conf -- OpenVPN Server Configuration +## + +# use a dynamic tun(4) device +dev tun + +# the remote peer +remote 192.168.0.1 + +# 10.0.0.1 is the local VPN endpoint +# 10.0.0.2 is the remote VPN endpoint +ifconfig 10.0.0.1 10.0.0.2 + +# the pre-shared static key +secret openvpn.key + @@ . patch -p0 <<'@@ .' Index: openpkg-src/openvpn21/openvpn21.patch ============================================================================ $ cvs diff -u -r0 -r1.1 openvpn21.patch --- /dev/null 2007-10-17 15:45:15 +0200 +++ openvpn21.patch 2007-10-17 15:45:22 +0200 @@ -0,0 +1,26 @@ +Index: sample-scripts/verify-cn +--- sample-scripts/verify-cn.orig 2005-02-07 03:08:16 +0100 ++++ sample-scripts/verify-cn 2005-08-25 19:37:04 +0200 +@@ -36,7 +36,8 @@ + if ($x509 =~ /\/CN=([^\/]+)/) { + # Accept the connection if the X509 common name + # string matches the passed cn argument. +- if ($cn eq $1) { ++ my $x509_cn = $1; ++ if ($x509_cn =~ m/^${cn}$/s) { + exit 0; + } + } +Index: tun.c +--- tun.c.orig 2005-08-04 06:46:17.000000000 +0200 ++++ tun.c 2005-09-28 20:31:17.062344594 +0200 +@@ -1168,7 +1168,8 @@ + #elif defined(TARGET_SOLARIS) + + #ifndef TUNNEWPPA +-#error I need the symbol TUNNEWPPA from net/if_tun.h ++#warning I usually need the symbol TUNNEWPPA from net/if_tun.h -- using a shameless local copy taken from TUN 1.1 ++#define TUNNEWPPA (('T'<<16) | 0x0001) + #endif + + void @@ . patch -p0 <<'@@ .' Index: openpkg-src/openvpn21/openvpn21.spec ============================================================================ $ cvs diff -u -r0 -r1.1 openvpn21.spec --- /dev/null 2007-10-17 15:45:15 +0200 +++ openvpn21.spec 2007-10-17 15:45:22 +0200 @@ -0,0 +1,180 @@ +## +## openvpn21.spec -- OpenPKG RPM Package Specification +## Copyright (c) 2000-2007 OpenPKG Foundation e.V. <http://openpkg.net/> +## Copyright (c) 2000-2007 Ralf S. Engelschall <http://engelschall.com/> +## +## Permission to use, copy, modify, and distribute this software for +## any purpose with or without fee is hereby granted, provided that +## the above copyright notice and this permission notice appear in all +## copies. +## +## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR +## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +## SUCH DAMAGE. +## + +# package version +%define V_dist 2.1_rc4 +%define V_opkg 2.1rc4 + +# package information +Name: openvpn21 +Summary: Virtual Private Network Facility +URL: http://openvpn.sourceforge.net/ +Vendor: James Yonan +Packager: OpenPKG Foundation e.V. +Distribution: OpenPKG Community +Class: EVAL +Group: Network +License: GPL +Version: %{V_opkg} +Release: 20071017 + +# package options +%option with_fsl yes + +# list of sources +Source0: http://openvpn.net/release/openvpn-%{V_dist}.tar.gz +Source1: rc.openvpn +Source2: fsl.openvpn +Source3: openvpn.conf +Patch0: openvpn21.patch + +# build information +Prefix: %{l_prefix} +BuildRoot: %{l_buildroot} +BuildPreReq: OpenPKG, openpkg >= 20060823 +PreReq: OpenPKG, openpkg >= 20060823, perl +BuildPreReq: openssl, lzo >= 1.08 +PreReq: openssl, lzo >= 1.08 +%if "%{with_fsl}" == "yes" +BuildPreReq: fsl >= 1.3.0 +PreReq: fsl >= 1.3.0 +%endif +AutoReq: no +AutoReqProv: no +Provides: openvpn = %{version}-%{release} +Conflicts: openvpn + +%description + OpenVPN is a robust and highly configurable VPN (Virtual Private + Network) daemon which can be used to securely link two or more + private networks using an encrypted tunnel over the internet. + +%track + prog openvpn21 = { + version = %{V_dist} + url = http://openvpn.net/release/ + regex = openvpn-(\d+\.\d+(\.\d+)*)\.tar\.gz + } + +%prep + %setup -q -n openvpn-%{V_dist} + %patch -p0 + +%build + # configure program + CC="%{l_cc}" \ + CFLAGS="%{l_cflags -O}" \ + CPPFLAGS="%{l_cppflags lzo openssl}" \ + LDFLAGS="%{l_ldflags} %{l_fsl_ldflags}" \ + LIBS="%{l_fsl_libs}" \ + ./configure \ + --prefix=%{l_prefix} \ + --mandir=%{l_prefix}/man \ + --with-ssl-headers=%{l_prefix}/include/openssl \ + --with-ssl-lib=%{l_prefix}/lib \ + --with-lzo-headers=%{l_prefix}/include/lzo \ + --with-lzo-lib=%{l_prefix}/lib + + # build program + %{l_make} %{l_mflags -O} + +%install + # install program + rm -rf $RPM_BUILD_ROOT + %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT" + + # strip down installation files + strip $RPM_BUILD_ROOT%{l_prefix}/sbin/* >/dev/null 2>&1 || true + + # install additional files + %{l_shtool} install -c -m 755 %{l_value -s -a} \ + -e 's;/usr/bin/perl;%{l_prefix}/bin/perl;' \ + sample-scripts/verify-cn $RPM_BUILD_ROOT%{l_prefix}/sbin/openvpn-verify-cn + %{l_shtool} mkdir -f -p -m 755 \ + $RPM_BUILD_ROOT%{l_prefix}/man/cat8 + %{l_shtool} install -c -m 644 \ + management/management-notes.txt $RPM_BUILD_ROOT%{l_prefix}/man/cat8/openvpn-management.8 + + # install run-command script + %{l_shtool} mkdir -f -p -m 755 \ + $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d + %{l_shtool} install -c -m 755 %{l_value -s -a} \ + %{SOURCE rc.openvpn} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/ + + # install default config file + %{l_shtool} mkdir -f -p -m 755 \ + $RPM_BUILD_ROOT%{l_prefix}/etc/openvpn + %{l_shtool} install -c -m 644 %{l_value -s -a} \ + %{SOURCE openvpn.conf} \ + $RPM_BUILD_ROOT%{l_prefix}/etc/openvpn/ + + # install OSSP fsl configuration + %{l_shtool} mkdir -f -p -m 755 \ + $RPM_BUILD_ROOT%{l_prefix}/etc/fsl + %{l_shtool} install -c -m 644 %{l_value -s -a} \ + %{SOURCE fsl.openvpn} \ + $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/ + + # create run-time directory + %{l_shtool} mkdir -f -p -m 755 \ + $RPM_BUILD_ROOT%{l_prefix}/var/openvpn + + # determine installation files + %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ + %{l_files_std} \ + '%config %{l_prefix}/etc/fsl/fsl.openvpn' \ + '%config %{l_prefix}/etc/openvpn/openvpn.conf' + +%files -f files + +%clean + rm -rf $RPM_BUILD_ROOT + +%post + # on initial install, create a sample shared key + if [ $1 -eq 1 ]; then + if [ ! -f $RPM_INSTALL_PREFIX/etc/openvpn/openvpn.dh ]; then + $RPM_INSTALL_PREFIX/bin/openssl dhparam \ + -out $RPM_INSTALL_PREFIX/etc/openvpn/openvpn.dh 1024 + fi + if [ ! -f $RPM_INSTALL_PREFIX/etc/openvpn/openvpn.key ]; then + $RPM_INSTALL_PREFIX/sbin/openvpn \ + --genkey --secret $RPM_INSTALL_PREFIX/etc/openvpn/openvpn.key + fi + fi + + # after upgrade, restart service + [ $1 -eq 2 ] || exit 0 + eval `%{l_rc} openvpn status 2>/dev/null` + [ ".$openvpn_active" = .yes ] && %{l_rc} openvpn restart + exit 0 + +%preun + # before erase, stop service and remove log files + [ $1 -eq 0 ] || exit 0 + %{l_rc} openvpn stop 2>/dev/null + rm -f $RPM_INSTALL_PREFIX/var/openvpn/*.log* >/dev/null 2>&1 || true + rm -f $RPM_INSTALL_PREFIX/var/openvpn/*.status >/dev/null 2>&1 || true + exit 0 + @@ . patch -p0 <<'@@ .' Index: openpkg-src/openvpn21/openvpnctl ============================================================================ $ cvs diff -u -r0 -r1.1 openvpnctl --- /dev/null 2007-10-17 15:45:15 +0200 +++ openvpnctl 2007-10-17 15:45:22 +0200 @@ -0,0 +1,66 @@ +#!/bin/sh +## +## openvpnctl -- OpenVPN Daemon Control +## + +openvpn_bindir="@l_prefix@/sbin" +openvpn_etcdir="@l_prefix@/etc/openvpn" +openvpn_vardir="@l_prefix@/var/openvpn" + +name_full2short () { + echo "$1" |\ + sed -e 's;^.*/\([^/]*\)$;\1;' \ + -e 's;\.conf$;;' \ + -e 's;^openvpn-;;' \ + -e 's;^$;default;' +} + +name_short2full () { + echo "$1" |\ + sed -e 's;^default$;;' \ + -e 's;^;openvpn-;' +} + +cmd="$1"; shift +case "$cmd" in + list ) + for cfgfile in $openvpn_etcdir/*.conf; do + [ ".`grep '^disable' $cfgfile`" != . ] && continue + name_full2short "$cfgfile" + done + ;; + start ) + name=`name_short2full "$1"`; shift + if [ -f $openvpn_etcdir/$name.sh -a ".$name" != .openvpn ]; then + sh $openvpn_etcdir/$name.sh start || exit $? + fi + $openvpn_bindir/openvpn \ + --daemon "$name" \ + --log-append $openvpn_vardir/$name.log \ + --writepid $openvpn_vardir/$name.pid \ + --status $openvpn_vardir/$name.status 60 \ + --config $openvpn_etcdir/$name.conf \ + --cd $openvpn_etcdir || exit $? + ;; + signal ) + name=`name_short2full "$1"`; shift + [ -f $openvpn_vardir/$name.pid ] && kill -$2 `cat $openvpn_vardir/$name.pid` + ;; + reload ) + name=`name_short2full "$1"`; shift + [ -f $openvpn_vardir/$name.pid ] && kill -USR1 `cat $openvpn_vardir/$name.pid` + if [ -f $openvpn_etcdir/$name.sh ]; then + sh $openvpn_etcdir/$name.sh reload || true + fi + ;; + stop ) + name=`name_short2full "$1"`; shift + [ -f $openvpn_vardir/$name.pid ] && kill -TERM `cat $openvpn_vardir/$name.pid` + sleep 1 + if [ -f $openvpn_etcdir/$name.sh -a ".$name" != .openvpn ]; then + sh $openvpn_etcdir/$name.sh stop || true + fi + rm -f $openvpn_vardir/$name.pid 2>/dev/null || true + ;; +esac + @@ . patch -p0 <<'@@ .' Index: openpkg-src/openvpn21/rc.openvpn ============================================================================ $ cvs diff -u -r0 -r1.1 rc.openvpn --- /dev/null 2007-10-17 15:45:15 +0200 +++ rc.openvpn 2007-10-17 15:45:22 +0200 @@ -0,0 +1,110 @@ [EMAIL PROTECTED]@/bin/openpkg rc +## +## rc.openvpn -- Run-Commands +## + +%config + openvpn_enable="$openpkg_rc_def" + openvpn_log_prolog="true" + openvpn_log_epilog="true" + openvpn_log_numfiles="10" + openvpn_log_minsize="1M" + openvpn_log_complevel="9" + +%common + openvpn_etcdir="@l_prefix@/etc/openvpn" + openvpn_vardir="@l_prefix@/var/openvpn" + openvpn_signal () { + [ -f $openvpn_vardir/$1.pid ] && kill -$2 `cat $openvpn_vardir/$1.pid` + } + +%status -u @l_susr@ -o + openvpn_usable="unknown" + openvpn_active="yes" + if rcService openvpn enable yes; then + for cfgfile in $openvpn_etcdir/*.conf; do + [ ".`grep '^disable' $cfgfile`" != . ] && continue + name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` + openvpn_signal $name 0 + if [ $? -ne 0 ]; then + openvpn_active="no" + break + fi + done + fi + echo "openvpn_enable=\"$openvpn_enable\"" + echo "openvpn_usable=\"$openvpn_usable\"" + echo "openvpn_active=\"$openvpn_active\"" + +%start -p 200 -u @l_susr@ + rcService openvpn enable yes || exit 0 + rcService openvpn active yes && exit 0 + if [ -f $openvpn_etcdir/openvpn.sh ]; then + sh $openvpn_etcdir/openvpn.sh start || exit $? + fi + for cfgfile in $openvpn_etcdir/*.conf; do + [ ".`grep '^disable' $cfgfile`" != . ] && continue + name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` + if [ -f $openvpn_etcdir/$name.sh -a ".$name" != .openvpn ]; then + sh $openvpn_etcdir/$name.sh start || exit $? + fi + @l_prefix@/sbin/openvpn \ + --daemon "$name" \ + --log-append $openvpn_vardir/$name.log \ + --writepid $openvpn_vardir/$name.pid \ + --status $openvpn_vardir/$name.status 60 \ + --config $cfgfile \ + --cd $openvpn_etcdir || exit $? + done + +%stop -p 800 -u @l_susr@ + rcService openvpn enable yes || exit 0 + rcService openvpn active no && exit 0 + for cfgfile in $openvpn_etcdir/*.conf; do + [ ".`grep '^disable' $cfgfile`" != . ] && continue + name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` + openvpn_signal $name TERM + done + sleep 1 + for cfgfile in $openvpn_etcdir/*.conf; do + [ ".`grep '^disable' $cfgfile`" != . ] && continue + name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` + if [ -f $openvpn_etcdir/$name.sh -a ".$name" != .openvpn ]; then + sh $openvpn_etcdir/$name.sh stop || true + fi + done + if [ -f $openvpn_etcdir/openvpn.sh ]; then + sh $openvpn_etcdir/openvpn.sh stop || true + fi + rm -f $openvpn_vardir/*.pid 2>/dev/null || true + +%restart -u @l_susr@ + rcService openvpn enable yes || exit 0 + rcService openvpn active no && exit 0 + rc openvpn stop start + +%reload -u @l_susr@ + rcService openvpn enable yes || exit 0 + rcService openvpn active no && exit 0 + for cfgfile in $openvpn_etcdir/*.conf; do + [ ".`grep '^disable' $cfgfile`" != . ] && continue + name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` + openvpn_signal $name USR1 + if [ -f $openvpn_etcdir/$name.sh ]; then + sh $openvpn_etcdir/$name.sh reload || true + fi + done + +%daily -u @l_susr@ + rcService openvpn enable yes || exit 0 + for cfgfile in $openvpn_etcdir/*.conf; do + [ ".`grep '^disable' $cfgfile`" != . ] && continue + name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` + shtool rotate -f \ + -n ${openvpn_log_numfiles} -s ${openvpn_log_minsize} -d \ + -z ${openvpn_log_complevel} -o @l_rusr@ -g @l_rgrp@ -m 644 \ + -P "${openvpn_log_prolog}" \ + -E "${openvpn_log_epilog}; rc openvpn reload" \ + $openvpn_vardir/$name.log + done + @@ . ______________________________________________________________________ OpenPKG http://openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org