| ################################################################################ |
| # |
| # quagga |
| # |
| ################################################################################ |
| |
| QUAGGA_VERSION = 1.2.4 |
| QUAGGA_SITE = http://download.savannah.gnu.org/releases/quagga |
| QUAGGA_INSTALL_STAGING = YES |
| QUAGGA_DEPENDENCIES = host-gawk host-pkgconf |
| QUAGGA_LICENSE = GPL-2.0+ |
| QUAGGA_LICENSE_FILES = COPYING |
| QUAGGA_CPE_ID_VENDOR = quagga |
| QUAGGA_SELINUX_MODULES = zebra |
| |
| # 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 |
| |
| # quagga has its own internal copy of getopt_long. To avoid conflicts with libc's |
| # getopt, we need to make sure that the getopt function itself is also built. |
| QUAGGA_CONF_ENV = \ |
| CFLAGS="$(TARGET_CFLAGS) -DREALLY_NEED_PLAIN_GETOPT" |
| |
| ifeq ($(BR2_PACKAGE_LIBCAP),y) |
| QUAGGA_CONF_OPTS += --enable-capabilities |
| QUAGGA_DEPENDENCIES += libcap |
| else |
| QUAGGA_CONF_OPTS += --disable-capabilities |
| endif |
| |
| ifeq ($(BR2_PACKAGE_LIBXCRYPT),y) |
| QUAGGA_DEPENDENCIES += libxcrypt |
| endif |
| |
| ifeq ($(BR2_PACKAGE_PROTOBUF_C),y) |
| QUAGGA_CONF_OPTS += --enable-protobuf |
| QUAGGA_DEPENDENCIES += protobuf-c |
| else |
| QUAGGA_CONF_OPTS += --disable-protobuf |
| endif |
| |
| QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_ZEBRA),--enable-zebra,--disable-zebra) |
| QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_BGPD),--enable-bgpd,--disable-bgpd) |
| QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_RIPD),--enable-ripd,--disable-ripd) |
| QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_RIPNGD),--enable-ripngd,--disable-ripngd) |
| QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_OSPFD),--enable-ospfd,--disable-ospfd --disable-ospfapi) |
| QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_OSPF6D),--enable-ospf6d,--disable-ospf6d) |
| QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_PIMD),--enable-pimd,--disable-pimd) |
| QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_WATCHQUAGGA),--enable-watchquagga,--disable-watchquagga) |
| QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_ISISD),--enable-isisd,--disable-isisd) |
| QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_BGP_ANNOUNCE),--enable-bgp-announce,--disable-bgp-announce) |
| QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_TCP_ZEBRA),--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 |
| |
| # In order for the QUAGGA_PERMISSIONS variable above to work, |
| # /etc/quagga has to exist. However, this package without any |
| # sub-option enabled will not create /etc/quagga, so let's create it |
| # unconditionally in a post-install hook, in case it hasn't been |
| # already created by the quagga installation. |
| define QUAGGA_CREATE_ETC_QUAGGA |
| mkdir -p $(TARGET_DIR)/etc/quagga |
| endef |
| QUAGGA_POST_INSTALL_TARGET_HOOKS += QUAGGA_CREATE_ETC_QUAGGA |
| |
| ifeq ($(BR2_PACKAGE_QUAGGA_NHRPD),y) |
| QUAGGA_CONF_OPTS += --enable-nhrpd |
| QUAGGA_DEPENDENCIES += c-ares |
| else |
| QUAGGA_CONF_OPTS += --disable-nhrpd |
| endif |
| |
| 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 |
| QUAGGA_DEPENDENCIES += netsnmp |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QUAGGA_VTYSH),y) |
| QUAGGA_CONF_OPTS += --enable-vtysh |
| QUAGGA_DEPENDENCIES += readline |
| else |
| QUAGGA_CONF_OPTS += --disable-vtysh |
| endif |
| |
| ifeq ($(BR2_TOOLCHAIN_SUPPORTS_PIE),) |
| 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 |
| $(INSTALL) -D -m 644 package/quagga/quagga@.service \ |
| $(TARGET_DIR)/usr/lib/systemd/system/quagga@.service |
| endef |
| |
| $(eval $(autotools-package)) |