summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/quagga/quagga.mk29
-rw-r--r--package/quagga/quagga_tmpfiles.conf1
2 files changed, 29 insertions, 1 deletions
diff --git a/package/quagga/quagga.mk b/package/quagga/quagga.mk
index 6b98367bcb..22e90add2c 100644
--- a/package/quagga/quagga.mk
+++ b/package/quagga/quagga.mk
@@ -10,7 +10,15 @@ QUAGGA_SITE = http://download.savannah.gnu.org/releases/quagga
QUAGGA_DEPENDENCIES = host-gawk
QUAGGA_LICENSE = GPLv2+
QUAGGA_LICENSE_FILES = COPYING
-QUAGGA_CONF_OPTS = --program-transform-name=''
+
+# We need to override the sysconf and localstate directories so that
+# quagga can create files as the quagga user without extra
+# intervention
+QUAGGA_CONF_OPTS = \
+ --program-transform-name='' \
+ --sysconfdir=/etc/quagga \
+ --localstatedir=/var/run/quagga
+
# 0002-configure-fix-static-linking-with-readline.patch
QUAGGA_AUTORECONF = YES
@@ -33,6 +41,20 @@ QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_ISISD),--enable-isisd,--disable-is
QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_BGP_ANNOUNCE),--enable-bgp-announce,--disable-bgp-announce)
QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_TCP_ZERBRA),--enable-tcp-zebra,--disable-tcp-zebra)
+define QUAGGA_USERS
+ quagga -1 quagga -1 * - - - Quagga priv drop user
+endef
+
+# Set the permissions of /etc/quagga such that quagga (through vtysh)
+# can save the configuration - set the folder recursively as the files
+# need to be 600, and then set the folder (non-recursively) to 755 so
+# it can used. Quagga also needs to write to the folder as it moves
+# and creates, rather than overwriting.
+define QUAGGA_PERMISSIONS
+ /etc/quagga r 600 quagga quagga - - - - -
+ /etc/quagga d 755 quagga quagga - - - - -
+endef
+
ifeq ($(BR2_PACKAGE_QUAGGA_SNMP),y)
QUAGGA_CONF_ENV += ac_cv_path_NETSNMP_CONFIG=$(STAGING_DIR)/usr/bin/net-snmp-config
QUAGGA_CONF_OPTS += --enable-snmp=agentx
@@ -50,4 +72,9 @@ ifeq ($(BR2_arc),y)
QUAGGA_CONF_OPTS += --disable-pie
endif
+define QUAGGA_INSTALL_INIT_SYSTEMD
+ $(INSTALL) -D -m 644 package/quagga/quagga_tmpfiles.conf \
+ $(TARGET_DIR)/usr/lib/tmpfiles.d/quagga.conf
+endef
+
$(eval $(autotools-package))
diff --git a/package/quagga/quagga_tmpfiles.conf b/package/quagga/quagga_tmpfiles.conf
new file mode 100644
index 0000000000..e16c475fd4
--- /dev/null
+++ b/package/quagga/quagga_tmpfiles.conf
@@ -0,0 +1 @@
+d /var/run/quagga/ 1755 quagga quagga -
OpenPOWER on IntegriCloud