Prechádzať zdrojové kódy

new package: quagga 0.96.2 (Internet Routing Daemon)

Ralf S. Engelschall 22 rokov pred
rodič
commit
830ebc3878
7 zmenil súbory, kde vykonal 279 pridanie a 0 odobranie
  1. 8 0
      quagga/bgpd.conf
  2. 8 0
      quagga/ospfd.conf
  3. 144 0
      quagga/quagga.spec
  4. 98 0
      quagga/rc.quagga
  5. 8 0
      quagga/ripd.conf
  6. 5 0
      quagga/vtysh.conf
  7. 8 0
      quagga/zebra.conf

+ 8 - 0
quagga/bgpd.conf

@@ -0,0 +1,8 @@
+!
+!   bgpd.conf -- Zebra BGP Daemon Configuration
+!
+hostname bgpd
+password zebra
+enable password zebra
+!router bgp
+!

+ 8 - 0
quagga/ospfd.conf

@@ -0,0 +1,8 @@
+!
+!   ospfd.conf -- Zebra OSPF Daemon Configuration
+!
+hostname ospfd
+password zebra
+enable password zebra
+!router ospf
+!

+ 144 - 0
quagga/quagga.spec

@@ -0,0 +1,144 @@
+##
+##  quagga.spec -- OpenPKG RPM Specification
+##  Copyright (c) 2000-2003 The OpenPKG Project <http://www.openpkg.org/>
+##  Copyright (c) 2000-2003 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 2000-2003 Cable & Wireless <http://www.cw.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 information
+Name:         quagga
+Summary:      Internet Routing Daemon
+URL:          http://www.quagga.net/
+Vendor:       Kunihiro Ishiguro
+Packager:     The OpenPKG Project
+Distribution: OpenPKG [EVAL]
+Group:        Network
+License:      GPL
+Version:      0.96.2
+Release:      20031001
+
+#   list of sources
+Source0:      http://www.quagga.net/download/quagga-%{version}.tar.gz
+Source1:      rc.quagga
+Source2:      bgpd.conf
+Source3:      ospfd.conf
+Source4:      ripd.conf
+Source5:      zebra.conf
+Source6:      vtysh.conf
+
+#   build information
+Prefix:       %{l_prefix}
+BuildRoot:    %{l_buildroot}
+BuildPreReq:  OpenPKG, openpkg >= 20030718, gcc, perl
+PreReq:       OpenPKG, openpkg >= 20030718
+BuildPreReq:  readline
+PreReq:       readline
+AutoReq:      no
+AutoReqProv:  no
+Conflicts:    zebra
+
+%description
+    Quagga (a fork of GNU Zebra) is free software (distributed under GNU
+    Generic Public License) that manages TCP/IP based routing protocols.
+    It supports BGP-4 protocol as described in RFC1771 (A Border Gateway
+    Protocol 4) as well as RIPv1, RIPv2 and OSPFv2. Unlike traditional,
+    Gated based, monolithic architectures and even the so-called "new
+    modular architectures" that remove the burden of processing routing
+    functions from the CPU and utilize special ASIC chips instead, Zebra
+    software offers true modularity.
+
+%prep
+    %setup -q
+
+%build
+    #   configure package
+    CC="%{l_cc}" \
+    CFLAGS="%{l_cflags -O}" \
+    CPPFLAGS="%{l_cppflags}" \
+    LDFLAGS="%{l_ldflags}" \
+    ./configure \
+        --prefix=%{l_prefix} \
+        --sysconfdir=%{l_prefix}/etc/quagga \
+        --localstatedir=%{l_prefix}/var/quagga \
+        --enable-vtysh \
+        --disable-ospf6d \
+        --disable-ripngd \
+        --disable-ipv6 \
+        --without-libpam
+
+    #   build package
+    %{l_make} %{l_mflags -O}
+
+%install
+    rm -rf $RPM_BUILD_ROOT
+
+    #   install package
+    %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
+
+    #   strip down package
+    rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man8/ospf6d.8
+    rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man8/ripngd.8
+    rm -f $RPM_BUILD_ROOT%{l_prefix}/info/dir
+    strip $RPM_BUILD_ROOT%{l_prefix}/sbin/* >/dev/null 2>&1 || true
+
+    #   replace default configuration
+    rm -f $RPM_BUILD_ROOT%{l_prefix}/etc/quagga/*
+    %{l_shtool} install -c -m 600 %{l_value -s -a} \
+        %{SOURCE zebra.conf} %{SOURCE vtysh.conf} \
+        %{SOURCE ripd.conf} %{SOURCE ospfd.conf} %{SOURCE bgpd.conf} \
+        $RPM_BUILD_ROOT%{l_prefix}/etc/quagga/
+    %{l_shtool} install -c -m 600 /dev/null \
+        $RPM_BUILD_ROOT%{l_prefix}/etc/quagga/zebra.conf.integrate
+
+    #   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.quagga} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
+
+    #   make sure pid and log directory exists
+    %{l_shtool} mkdir -f -p -m 755 \
+        $RPM_BUILD_ROOT%{l_prefix}/var/quagga
+
+    #   determine package file list
+    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
+        %{l_files_std} \
+        '%config %{l_prefix}/etc/quagga/*'
+
+%files -f files
+
+%clean
+    rm -rf $RPM_BUILD_ROOT
+
+%post
+    #   after upgrade, restart service
+    [ $1 -eq 2 ] || exit 0
+    eval `%{l_rc} quagga status 2>/dev/null`
+    [ ".$quagga_active" = .yes ] && %{l_rc} quagga restart
+    exit 0
+
+%preun
+    #   before erase, stop service and remove log files
+    [ $1 -eq 0 ] || exit 0
+    %{l_rc} quagga stop 2>/dev/null
+    rm -f $RPM_INSTALL_PREFIX/var/quagga/quagga.log* >/dev/null 2>&1 || true
+    exit 0
+

+ 98 - 0
quagga/rc.quagga

@@ -0,0 +1,98 @@
+#!@l_prefix@/lib/openpkg/bash @l_prefix@/etc/rc
+##
+##  rc.quagga -- Run-Commands
+##
+
+%config
+    quagga_enable="$openpkg_rc_def"
+    quagga_protocols="rip ospf bgp"
+    quagga_flags=""
+    quagga_bind="127.0.0.1"
+    quagga_port="2601"
+    quagga_rip_flags=""
+    quagga_rip_bind="${quagga_bind}"
+    quagga_rip_port="2602"
+    quagga_ospf_flags=""
+    quagga_ospf_bind="${quagga_bind}"
+    quagga_ospf_port="2604"
+    quagga_bgp_flags=""
+    quagga_bgp_bind="${quagga_bind}"
+    quagga_bgp_port="2605"
+    quagga_log_prolog="true"
+    quagga_log_epilog="true"
+    quagga_log_numfiles="10"
+    quagga_log_minsize="1M"
+    quagga_log_complevel="9"
+
+%status -u @l_susr@ -o
+    quagga_usable="unknown"
+    quagga_active="no"
+    if [ -f @l_prefix@/var/quagga/zebra.pid ]; then
+        kill -0 `cat @l_prefix@/var/quagga/zebra.pid` >/dev/null 2>&1 || true
+        if [ $? -eq 0 ]; then
+            quagga_active="yes"
+        fi
+    fi
+    echo "quagga_enable=\"$quagga_enable\""
+    echo "quagga_usable=\"$quagga_usable\""
+    echo "quagga_active=\"$quagga_active\""
+
+%start -u @l_susr@
+    rcService quagga enable yes || exit 0
+    rcService quagga active yes && exit 0
+    cd @l_prefix@/etc/quagga
+    for i in zebra $quagga_protocols; do
+        if [ ".$i" = .zebra ]; then
+            midfix=""
+            daemon="${i}";
+        else
+            midfix="${i}_";
+            daemon="${i}d";
+        fi
+        if [ -x @l_prefix@/sbin/${daemon} ]; then
+            flags=`eval echo \\\$quagga_${midfix}flags`;
+            extra=`eval echo \\\$quagga_${midfix}bind`;
+            echo $flags | grep -- -A >/dev/null
+            if [ $? -ne 0 -a ".$extra" != . ]; then
+                flags="$flags -A $extra"
+            fi
+            extra=`eval echo \\\$quagga_${midfix}port`;
+            echo $flags | grep -- -P >/dev/null
+            if [ $? -ne 0 -a ".$extra" != . ]; then
+                flags="$flags -P $extra"
+            fi
+            @l_prefix@/sbin/${daemon} -d ${flags}
+        fi
+    done
+    @l_prefix@/bin/vtysh -b
+
+%stop -u @l_susr@
+    rcService quagga enable yes || exit 0
+    rcService quagga active no  && exit 0
+    if [ -f @l_prefix@/var/quagga/zebra.pid ]; then
+        kill -TERM `cat @l_prefix@/var/quagga/zebra.pid` >/dev/null 2>&1 || true
+    fi
+    for protocol in $quagga_protocols; do
+        if [ -f @l_prefix@/var/quagga/${protocol}d.pid ]; then
+            kill -TERM `cat @l_prefix@/var/quagga/${protocol}d.pid` >/dev/null 2>&1 || true
+        fi
+    done
+    sleep 1
+    rm -f @l_prefix@/var/quagga/*.pid >/dev/null 2>&1 || true
+
+%restart -u @l_susr@
+    rcService quagga enable yes || exit 0
+    rcService quagga active no  && exit 0
+    rc quagga stop start
+
+%daily -u @l_susr@
+    rcService quagga enable yes || exit 0
+
+    #   rotate logfile
+    shtool rotate -f \
+        -n ${quagga_log_numfiles} -s ${quagga_log_minsize} -d \
+        -z ${quagga_log_complevel} -m 640 -o @l_susr@ -g @l_mgrp@ \
+        -P "${quagga_log_prolog}" \
+        -E "${quagga_log_epilog} && rc quagga restart" \
+        @l_prefix@/var/quagga/zebra.log
+

+ 8 - 0
quagga/ripd.conf

@@ -0,0 +1,8 @@
+!
+!   ripd.conf -- Zebra RIP Daemon Configuration
+!
+hostname ripd
+password zebra
+enable password zebra
+!router rip
+!

+ 5 - 0
quagga/vtysh.conf

@@ -0,0 +1,5 @@
+!
+!   vtysh.conf -- Zebra VTY Shell Configuration
+!
+username zebra nopassword
+!

+ 8 - 0
quagga/zebra.conf

@@ -0,0 +1,8 @@
+!
+!   zebra.conf -- Zebra Daemon Configuration
+!
+hostname zebra
+password zebra
+enable password zebra
+log file @l_prefix@/var/zebra/zebra.log
+!