blob: 7f26fd3c572840b4f74b9e9fad6b9ec4e7ccde77 [file] [log] [blame]
################################################################################
#
# frr
#
################################################################################
FRR_VERSION = 9.1.1
FRR_SITE = $(call github,FRRouting,frr,frr-$(FRR_VERSION))
FRR_LICENSE = GPL-2.0+
FRR_LICENSE_FILES = \
COPYING \
doc/licenses/BSD-2-Clause \
doc/licenses/BSD-3-Clause \
doc/licenses/GPL-2.0 \
doc/licenses/ISC \
doc/licenses/LGPL-2.1 \
doc/licenses/LicenseRef-Skiplist-BSD-0-Clause \
doc/licenses/MIT \
doc/licenses/Unlicense
# tools/gcc-plugins/frr-format.[ch] is not enabled by frr's ./configure, so gcc's
# GPLv3 does not apply
# doc/licenses/GPL-3.0
FRR_CPE_ID_VENDOR = linuxfoundation
FRR_CPE_ID_PRODUCT = free_range_routing
FRR_AUTORECONF = YES
FRR_DEPENDENCIES = host-frr readline json-c libyang \
protobuf-c \
$(if $(BR2_PACKAGE_C_ARES),c-ares) \
$(if $(BR2_PACKAGE_LIBXCRYPT),libxcrypt)
HOST_FRR_DEPENDENCIES = host-flex host-bison host-elfutils host-python3
FRR_CONF_ENV = \
ac_cv_lib_cunit_CU_initialize_registry=no \
CFLAGS="$(TARGET_CFLAGS) -DFRR_XREF_NO_NOTE"
# Do not enable -fplugin=frr-format for production, see doc/developer/workflow.rst,
# it is only intended for FRR's developments
FRR_CONF_OPTS = --with-clippy=$(HOST_DIR)/bin/clippy \
--sysconfdir=/etc/frr \
--localstatedir=/var/run/frr \
--with-moduledir=/usr/lib/frr/modules \
--enable-configfile-mask=0640 \
--enable-logfile-mask=0640 \
--enable-multipath=256 \
--disable-ospfclient \
--enable-shell-access \
--enable-user=frr \
--enable-group=frr \
--enable-vty-group=frrvty \
--enable-fpm
HOST_FRR_CONF_OPTS = --enable-clippy-only
ifeq ($(BR2_PACKAGE_FRR_BMP),y)
FRR_CONF_OPTS += --enable-bgp-bmp
else
FRR_CONF_OPTS += --disable-bgp-bmp
endif
ifeq ($(BR2_PACKAGE_FRR_NHRPD),y)
FRR_CONF_OPTS += --enable-nhrpd
else
FRR_CONF_OPTS += --disable-nhrpd
endif
ifeq ($(BR2_PACKAGE_LIBCAP),y)
FRR_DEPENDENCIES += libcap
FRR_CONF_OPTS += --enable-capabilities
else
FRR_CONF_OPTS += --disable-capabilities
endif
ifeq ($(BR2_PACKAGE_SQLITE),y)
FRR_DEPENDENCIES += sqlite
FRR_CONF_OPTS += --enable-config-rollbacks
else
FRR_CONF_OPTS += --disable-config-rollbacks
endif
ifeq ($(BR2_PACKAGE_ZEROMQ),y)
FRR_DEPENDENCIES += zeromq
FRR_CONF_OPTS += --enable-zeromq
else
FRR_CONF_OPTS += --disable-zeromq
endif
ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
FRR_CONF_ENV += LIBS=-latomic
endif
define HOST_FRR_INSTALL_CMDS
$(INSTALL) -D -m 0755 $(@D)/lib/clippy $(HOST_DIR)/bin/clippy
endef
define FRR_INSTALL_CONFIG_FILES
$(foreach f,daemons daemons.conf frr.conf vtysh.conf support_bundle_commands.conf,\
$(INSTALL) -D -m 0640 $(@D)/tools/etc/frr/$(f) \
$(TARGET_DIR)/etc/frr/$(f)
)
$(RM) $(TARGET_DIR)/etc/frr/*.sample
endef
FRR_POST_INSTALL_TARGET_HOOKS += FRR_INSTALL_CONFIG_FILES
define FRR_PERMISSIONS
/etc/frr/daemons f 640 frr frr - - - - -
/etc/frr/daemons.conf f 640 frr frr - - - - -
/etc/frr/frr.conf f 640 frr frr - - - - -
/etc/frr/vtysh.conf f 640 frr frrvty - - - - -
/etc/frr/support_bundle_commands.conf f 640 frr frr
endef
define FRR_USERS
frr -1 frr -1 * /var/run/frr - frrvty FRR user priv
endef
define FRR_INSTALL_INIT_SYSV
$(INSTALL) -D -m 755 $(FRR_PKGDIR)/S50frr \
$(TARGET_DIR)/etc/init.d/S50frr
endef
$(eval $(autotools-package))
$(eval $(host-autotools-package))