]> git.ipfire.org Git - people/amarx/ipfire-3.x.git/commitdiff
quagga: Re-add package
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 4 Sep 2016 10:34:30 +0000 (11:34 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 4 Sep 2016 11:57:40 +0000 (12:57 +0100)
We need quagga because bird is lacking the VRF feature

This reverts commit 28f3bd19767fdbf6a48563cd9bb71ad251243738.

quagga/quagga.nm [new file with mode: 0644]
quagga/quagga.tmpfiles [new file with mode: 0644]
quagga/systemd/bgpd.service [new file with mode: 0644]
quagga/systemd/ospf6d.service [new file with mode: 0644]
quagga/systemd/ospfd.service [new file with mode: 0644]
quagga/systemd/zebra.service [new file with mode: 0644]

diff --git a/quagga/quagga.nm b/quagga/quagga.nm
new file mode 100644 (file)
index 0000000..33b2530
--- /dev/null
@@ -0,0 +1,94 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = quagga
+version    = 1.0.20160315
+release    = 1
+
+groups     = Networking/Routing
+url        = http://www.quagga.net/
+license    = GPLv2+
+summary    = Quagga is a rounting daemon.
+
+description
+       Quagga is a free software that manages TCP/IP based routing
+       protocol. It takes multi-server and multi-thread approach to resolve
+       the current complexity of the Internet.
+
+       Quagga supports BGP4, BGP4+, OSPFv2 and OSPFv3.
+end
+
+source_dl  = http://download.savannah.gnu.org/releases/quagga/
+sources    = %{thisapp}.tar.xz
+
+build
+       requires
+               ncurses-devel
+               net-snmp-devel
+               readline-devel
+               systemd-units
+       end
+
+       configure_options += \
+               --sysconfdir=/etc/quagga \
+               --disable-static \
+               --disable-watchquagga \
+               --enable-multipath=64 \
+               --disable-isisd \
+               --disable-pimd \
+               --disable-ripd \
+               --disable-ripngd
+end
+
+create_user
+       getent group quagga >/dev/null || /usr/sbin/groupadd -r quagga
+       getent passwd quagga >/dev/null || /usr/sbin/useradd -r -g quagga \
+               -d %{sysconfdir}/%{name} -s /sbin/nologin quagga
+end
+
+packages
+       package %{name}
+               services = bgpd ospf6d ospfd zebra
+
+               script prein
+                       %{create_user}
+               end
+
+               script postin
+                       /bin/systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
+               script preun
+                       for i in %{services}; do
+                               systemctl --no-reload disable ${i}.service >/dev/null 2>&1 || :
+                               systemctl stop ${i}.service >/dev/null 2>&1 || :
+                       done
+               end
+
+               script postun
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
+               script postup
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+
+                       for i in %{services}; do
+                               systemctl try-restart ${i}.service >/dev/null 2>&1 || :
+                       done
+               end
+       end
+
+       package %{name}-libs
+               template LIBS
+       end
+
+       package %{name}-devel
+               template DEVEL
+       end
+
+       package %{name}-debuginfo
+               template DEBUGINFO
+       end
+end
diff --git a/quagga/quagga.tmpfiles b/quagga/quagga.tmpfiles
new file mode 100644 (file)
index 0000000..8974b64
--- /dev/null
@@ -0,0 +1 @@
+d      /var/run/quagga 0755 quagga quagga
diff --git a/quagga/systemd/bgpd.service b/quagga/systemd/bgpd.service
new file mode 100644 (file)
index 0000000..2874432
--- /dev/null
@@ -0,0 +1,12 @@
+[Unit]
+Description=BGP routing daemon
+BindTo=zebra.service
+After=syslog.target network.target zebra.service
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/bgpd -d -f /etc/quagga/bgpd.conf
+Restart=on-abort
+
+[Install]
+WantedBy=multi-user.target
diff --git a/quagga/systemd/ospf6d.service b/quagga/systemd/ospf6d.service
new file mode 100644 (file)
index 0000000..93b9dfa
--- /dev/null
@@ -0,0 +1,12 @@
+[Unit]
+Description=OSPF routing daemon for IPv6
+BindTo=zebra.service
+After=syslog.target network.target zebra.service
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/ospf6d -d -f /etc/quagga/ospf6d.conf
+Restart=on-abort
+
+[Install]
+WantedBy=multi-user.target
diff --git a/quagga/systemd/ospfd.service b/quagga/systemd/ospfd.service
new file mode 100644 (file)
index 0000000..e276649
--- /dev/null
@@ -0,0 +1,12 @@
+[Unit]
+Description=OSPF routing daemon
+BindTo=zebra.service
+After=syslog.target network.target zebra.service
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/ospfd -d -f /etc/quagga/ospfd.conf
+Restart=on-abort
+
+[Install]
+WantedBy=multi-user.target
diff --git a/quagga/systemd/zebra.service b/quagga/systemd/zebra.service
new file mode 100644 (file)
index 0000000..977c2dc
--- /dev/null
@@ -0,0 +1,12 @@
+[Unit]
+Description=GNU Zebra routing manager
+After=syslog.target network.target
+
+[Service]
+Type=forking
+ExecStartPre=/sbin/ip route flush proto zebra
+ExecStart=/usr/sbin/zebra -d -f /etc/quagga/zebra.conf
+Restart=on-abort
+
+[Install]
+WantedBy=multi-user.target