123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- ################################################################################
- #
- # 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))
|