nftables: implement no/json variants

Replace the build time choice of json support with a package based
choice.  Users requiring a json aware version of 'nft' may now install
nftables-json.

The default choice to fulfill the 'nftables' package dependency is
'nftables-nojson'

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
This commit is contained in:
Kevin Darbyshire-Bryant 2020-03-25 09:13:46 +00:00
parent 9e835377ad
commit 94dae0f191
1 changed files with 26 additions and 14 deletions

View File

@ -13,7 +13,7 @@ PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=https://netfilter.org/projects/$(PKG_NAME)/files PKG_SOURCE_URL:=https://netfilter.org/projects/$(PKG_NAME)/files
PKG_HASH:=956b915ce2a7aeaff123e49006be7a0690a0964e96c062703181a36e2e5edb78 PKG_HASH:=956b915ce2a7aeaff123e49006be7a0690a0964e96c062703181a36e2e5edb78
PKG_MAINTAINER:=Steven Barth <steven@midlink.org> PKG_MAINTAINER:=
PKG_LICENSE:=GPL-2.0 PKG_LICENSE:=GPL-2.0
PKG_FIXUP:=autoreconf PKG_FIXUP:=autoreconf
@ -28,33 +28,45 @@ CONFIGURE_ARGS += \
--disable-man-doc \ --disable-man-doc \
--with-mini-gmp \ --with-mini-gmp \
--without-cli \ --without-cli \
--disable-python \ --disable-python
define Package/nftables define Package/nftables/Default
SECTION:=net SECTION:=net
CATEGORY:=Network CATEGORY:=Network
SUBMENU:=Firewall SUBMENU:=Firewall
TITLE:=nftables packet filtering userspace utility TITLE:=nftables userspace utility
DEPENDS:=+kmod-nft-core +libnftnl +PACKAGE_NFT_WITH_JSON:jansson DEPENDS:=+kmod-nft-core +libnftnl
URL:=http://netfilter.org/projects/nftables/ URL:=http://netfilter.org/projects/nftables/
PROVIDES:=nftables
endef endef
define Package/nftables/config define Package/nftables-nojson
config PACKAGE_NFT_WITH_JSON $(Package/nftables/Default)
bool "Build nftables with json support" TITLE+= no JSON support
depends on PACKAGE_nftables VARIANT:=nojson
default n DEFAULT_VARIANT:=1
endef endef
ifeq ($(CONFIG_PACKAGE_NFT_WITH_JSON),y) define Package/nftables-json
CONFIGURE_ARGS += --with-json $(Package/nftables/Default)
TITLE+= with JSON support
VARIANT:=json
DEPENDS+=+jansson
endef
ifeq ($(BUILD_VARIANT),json)
CONFIGURE_ARGS += --with-json
endif endif
define Package/nftables/install define Package/nftables/install/Default
$(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_DIR) $(1)/usr/sbin
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/nft $(1)/usr/sbin/ $(CP) $(PKG_INSTALL_DIR)/usr/sbin/nft $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/usr/lib $(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib/ $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib/
endef endef
$(eval $(call BuildPackage,nftables)) Package/nftables-nojson/install = $(Package/nftables/install/Default)
Package/nftables-json/install = $(Package/nftables/install/Default)
$(eval $(call BuildPackage,nftables-nojson))
$(eval $(call BuildPackage,nftables-json))