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