Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-current.git;a=commitdiff;h=1b54b289d7bd9c8cca3a2fdfa980a5be68dde3eb

commit 1b54b289d7bd9c8cca3a2fdfa980a5be68dde3eb
Author: James Buren <[email protected]>
Date:   Mon Jul 30 00:32:34 2012 -0500

quagga-0.99.21-1-x86_64
* version bump
* convert to systemd schema
* use upstream's systemd, logrotate, pam, and sysconfig files
* remove local sysconfig file

diff --git a/source/network-extra/quagga/FrugalBuild 
b/source/network-extra/quagga/FrugalBuild
index bac8e10..defd5f2 100644
--- a/source/network-extra/quagga/FrugalBuild
+++ b/source/network-extra/quagga/FrugalBuild
@@ -2,36 +2,48 @@
# Maintainer: Krisztian VASAS <[email protected]>

pkgname=quagga
-pkgver=0.99.20
-pkgrel=2
+pkgver=0.99.21
+pkgrel=1
pkgdesc="A GPL licensed IPv4/IPv6 routing software"
url="http://www.quagga.net/";
-depends=('net-snmp>=5.7')
-backup=('etc/sysconfig/quagga' 'etc/zebra.conf' 'etc/ospfd.conf' 
'etc/ospf6d.conf' 'etc/bgpd.conf' \
-       'etc/ripd.conf' 'etc/ripngd.conf')
+depends=('net-snmp>=5.7' 'pcre')
+backup=('etc/sysconfig/quagga' 
etc/quagga/{zebra.conf,ospf6d.conf,babeld.conf,ripngd.conf,bgpd.conf,ripd.conf,ospfd.conf})
groups=('network-extra')
archs=('i686' 'x86_64')
up2date="lynx -dump $url | grep Latest | sed -ne 's/.*mostly-stable: 
\[.*\]\(.*\)$/\1/; p'"
-source=($url/download/$pkgname-$pkgver.tar.gz \
-       rc.quagga quagga.sysconfig README.Frugalware)
-signatures=("${source[0]}.asc" '' '' '')
+source=($url/download/$pkgname-$pkgver.tar.xz \
+       rc.quagga README.Frugalware)
+signatures=("${source[0]/.tar.xz/.tar.asc}" '' '')
+_F_systemd_scriptlet="$pkgname.install"
+_F_sysvinit_units=(quagga)
+_F_systemd_units=(ripd= zebra= babeld= ospfd= isisd= ripngd= ospf6d= bgpd=)
+Finclude systemd

build()
{
Fbuild --localstatedir=/var/run/quagga --enable-snmp --enable-netlink \
--sysconfdir=/etc/quagga
-       Ffile $pkgname.sysconfig /etc/sysconfig/$pkgname
+       Ffilerel redhat/*.service /lib/systemd/system/
+       Ffilerel redhat/quagga.sysconfig /etc/sysconfig/quagga
+       Ffilerel redhat/quagga.logrotate /etc/logrotate.d/quagga
+       Ffilerel redhat/quagga.pam /etc/pam.d/quagga
Frcd2
-       Fmkdir /var/run/quagga
-       Fmkdir /etc/quagga
Fmkdir /var/log/quagga
+       Fdirschown /var/log/quagga 150 150
+       Fdirschown /etc/quagga 150 150
+       Ffileschown /etc/quagga 150 150
Fdoc README.Frugalware
Frm /var/run
Fmkdir /etc/tmpfiles.d
+       for i in $Fdestdir/etc/quagga/*.conf.sample; do
+               j="$(basename "$i")"
+               Fmv "/etc/quagga/$j" "/etc/quagga/${j/.sample/}"
+       done
+       Frm /etc/quagga/\*.conf.sample2
cat > $Fdestdir/etc/tmpfiles.d/quagga.conf << EOF
-d $Flocalstatedir/run 0755 root root -
-d $Flocalstatedir/run/quagga 0755 root root -
+d $Flocalstatedir/run/quagga 0755 quagga quagga -
EOF
+       Fgenscriptlet
}

# optimization OK
diff --git a/source/network-extra/quagga/quagga.install 
b/source/network-extra/quagga/quagga.install
index 31331ff..a64c03f 100644
--- a/source/network-extra/quagga/quagga.install
+++ b/source/network-extra/quagga/quagga.install
@@ -1,3 +1,6 @@
+sysvinit_units=(@_F_sysvinit_units@)
+systemd_units=(@_F_systemd_units@)
+
post_install()
{
if ! grep -q '^quagga:' /etc/group; then
@@ -8,34 +11,65 @@ post_install()
useradd -u 150 -d /dev/null -g quagga quagga
fi

-       chown 150:150 /var/run/quagga
-       chown 150:150 -R /etc/quagga
-       chown 150:150 -R /var/log/quagga
-}
+       local unit
+       local op

-pre_upgrade()
-{
-
-       if [ -e /sbin/service ]; then
-               /sbin/service quagga stop
-       fi
+       for i in ${sysvinit_units[@]}; do
+               chkconfig --del rc.$i >/dev/null 2>&1
+       done
+
+       for i in ${systemd_units[@]}; do
+               unit=$(echo $i | cut -f 1 -d '=')
+               op=$(echo $i | cut -f 2 -d '=')
+               if echo $op | grep -q 'e'; then
+                       systemctl enable $unit.service >/dev/null 2>&1
+               fi
+               if echo $op | grep -q 's'; then
+                       systemctl start $unit.service >/dev/null 2>&1
+               fi
+       done
}

post_upgrade()
{
-       post_install
-       if [ -e /sbin/service ]; then
-               /sbin/service quagga start
+       if ! grep -q '^quagga:' /etc/group; then
+               groupadd -g 150 quagga
+       fi
+
+       if ! grep -q '^quagga:' /etc/passwd; then
+               useradd -u 150 -d /dev/null -g quagga quagga
fi
+
+       for i in ${sysvinit_units[@]}; do
+               chkconfig --del rc.$i >/dev/null 2>&1
+       done
+
+       systemctl daemon-reload >/dev/null 2>&1
}

pre_remove()
{
+       local unit
+
+       for i in ${sysvinit_units[@]}; do
+               chkconfig --del rc.$i >/dev/null 2>&1
+       done
+
+       for i in ${systemd_units[@]}; do
+               unit=$(echo $i | cut -f 1 -d '=')
+               systemctl --no-reload disable $unit.service >/dev/null 2>&1
+               systemctl stop $unit.service >/dev/null 2>&1
+       done
+}
+
+post_remove()
+{
userdel quagga &> /dev/null
groupdel quagga &> /dev/null
+
+       systemctl daemon-reload >/dev/null 2>&1
}

op=$1
shift
-
$op $*
diff --git a/source/network-extra/quagga/quagga.sysconfig 
b/source/network-extra/quagga/quagga.sysconfig
deleted file mode 100644
index 3e375ba..0000000
--- a/source/network-extra/quagga/quagga.sysconfig
+++ /dev/null
@@ -1,30 +0,0 @@
-# Here you can configure, which routing daemon(s) would you like to start
-
-# Write here the routing daemons you want to start
-# NOTE: do not include 'zebra', that will be started automaticaly
-START_ROUTING_DAEMONS=''
-
-# Main daemon settings
-ZEBRA_CONF=/etc/quagga/zebra.conf
-ZEBRA_PORT=2601
-
-# OSPF daemon settings
-OSPFD_CONF=/etc/quagga/ospfd.conf
-OSPFD_PORT=2602
-
-# OSPF6 daemon settings
-OSPF6D_CONF=/etc/quagga/ospf6d.conf
-OSPF6D_PORT=2603
-
-# BGP daemon settings
-BGPD_CONF=/etc/quagga/bgpd.conf
-BGPD_PORT=2604
-
-# RIP daemon settings
-RIPD_CONF=/etc/quagga/ripd.conf
-RIPD_PORT=2605
-
-# RIPng daemon settings
-RIPNGD_CONF=/etc/quagga/ripngd.conf
-RIPNGD_PORT=2606
-
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to