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

Reply via email to