summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-networking/recipes-filter
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openembedded/meta-networking/recipes-filter')
-rw-r--r--meta-openembedded/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.1.0.bb (renamed from meta-openembedded/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.0.3.bb)2
-rw-r--r--meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Move-exports-before-symbol-definition.patch294
-rw-r--r--meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch (renamed from meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0002-avoid-naming-local-function-as-one-of-printf-family.patch)19
-rw-r--r--meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.1.5.bb (renamed from meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.1.4.bb)5
-rw-r--r--meta-openembedded/meta-networking/recipes-filter/nftables/files/0001-update-python3-nftables-reference.patch47
-rw-r--r--meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.9.2.bb28
-rw-r--r--meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.9.3.bb33
7 files changed, 99 insertions, 329 deletions
diff --git a/meta-openembedded/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.0.3.bb b/meta-openembedded/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.1.0.bb
index 60aae2145..115353fec 100644
--- a/meta-openembedded/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.0.3.bb
+++ b/meta-openembedded/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.1.0.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "http://rocky.eld.leidenuniv.nl/joomla/index.php?option=com_content&v
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://gpl_license.txt;md5=11c7b65c4a4acb9d5175f7e9bf99c403"
-SRCREV = "ffcb86c30779df58ee057dfe9a3b078adccc1513"
+SRCREV = "39276d14b659684c4c0612725ab83ea841c6ef99"
SRC_URI = "git://github.com/arno-iptables-firewall/aif"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Move-exports-before-symbol-definition.patch b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Move-exports-before-symbol-definition.patch
deleted file mode 100644
index 699d0d922..000000000
--- a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Move-exports-before-symbol-definition.patch
+++ /dev/null
@@ -1,294 +0,0 @@
-From 6b76c76e6b3f93c422d666f49ee68df9d5426078 Mon Sep 17 00:00:00 2001
-From: Alex Kiernan <alex.kiernan@gmail.com>
-Date: Wed, 7 Nov 2018 21:19:53 +0000
-Subject: [PATCH] Move exports before symbol definition
-
-Based on 7966020 ("src: Fix exporting symbols with clang"), when
-EXPORT_SYMBOL is located after function definition, clang won't properly
-export the function, resulting in a library with no symbols when built with
-clang.
-
-Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
----
- src/flowtable.c | 54 ++++++++++++++++++++++++-------------------------
- 1 file changed, 27 insertions(+), 27 deletions(-)
-
-diff --git a/src/flowtable.c b/src/flowtable.c
-index 1f7ba30..80de952 100644
---- a/src/flowtable.c
-+++ b/src/flowtable.c
-@@ -34,12 +34,13 @@ struct nftnl_flowtable {
- uint32_t flags;
- };
-
-+EXPORT_SYMBOL(nftnl_flowtable_alloc);
- struct nftnl_flowtable *nftnl_flowtable_alloc(void)
- {
- return calloc(1, sizeof(struct nftnl_flowtable));
- }
--EXPORT_SYMBOL(nftnl_flowtable_alloc);
-
-+EXPORT_SYMBOL(nftnl_flowtable_free);
- void nftnl_flowtable_free(const struct nftnl_flowtable *c)
- {
- int i;
-@@ -56,14 +57,14 @@ void nftnl_flowtable_free(const struct nftnl_flowtable *c)
- }
- xfree(c);
- }
--EXPORT_SYMBOL(nftnl_flowtable_free);
-
-+EXPORT_SYMBOL(nftnl_flowtable_is_set);
- bool nftnl_flowtable_is_set(const struct nftnl_flowtable *c, uint16_t attr)
- {
- return c->flags & (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_flowtable_is_set);
-
-+EXPORT_SYMBOL(nftnl_flowtable_unset);
- void nftnl_flowtable_unset(struct nftnl_flowtable *c, uint16_t attr)
- {
- int i;
-@@ -95,7 +96,6 @@ void nftnl_flowtable_unset(struct nftnl_flowtable *c, uint16_t attr)
-
- c->flags &= ~(1 << attr);
- }
--EXPORT_SYMBOL(nftnl_flowtable_unset);
-
- static uint32_t nftnl_flowtable_validate[NFTNL_FLOWTABLE_MAX + 1] = {
- [NFTNL_FLOWTABLE_HOOKNUM] = sizeof(uint32_t),
-@@ -104,6 +104,7 @@ static uint32_t nftnl_flowtable_validate[NFTNL_FLOWTABLE_MAX + 1] = {
- [NFTNL_FLOWTABLE_FLAGS] = sizeof(uint32_t),
- };
-
-+EXPORT_SYMBOL(nftnl_flowtable_set_data);
- int nftnl_flowtable_set_data(struct nftnl_flowtable *c, uint16_t attr,
- const void *data, uint32_t data_len)
- {
-@@ -169,32 +170,32 @@ int nftnl_flowtable_set_data(struct nftnl_flowtable *c, uint16_t attr,
- c->flags |= (1 << attr);
- return 0;
- }
--EXPORT_SYMBOL(nftnl_flowtable_set_data);
-
-+EXPORT_SYMBOL(nftnl_flowtable_set);
- void nftnl_flowtable_set(struct nftnl_flowtable *c, uint16_t attr, const void *data)
- {
- nftnl_flowtable_set_data(c, attr, data, nftnl_flowtable_validate[attr]);
- }
--EXPORT_SYMBOL(nftnl_flowtable_set);
-
-+EXPORT_SYMBOL(nftnl_flowtable_set_u32);
- void nftnl_flowtable_set_u32(struct nftnl_flowtable *c, uint16_t attr, uint32_t data)
- {
- nftnl_flowtable_set_data(c, attr, &data, sizeof(uint32_t));
- }
--EXPORT_SYMBOL(nftnl_flowtable_set_u32);
-
-+EXPORT_SYMBOL(nftnl_flowtable_set_s32);
- void nftnl_flowtable_set_s32(struct nftnl_flowtable *c, uint16_t attr, int32_t data)
- {
- nftnl_flowtable_set_data(c, attr, &data, sizeof(int32_t));
- }
--EXPORT_SYMBOL(nftnl_flowtable_set_s32);
-
-+EXPORT_SYMBOL(nftnl_flowtable_set_str);
- int nftnl_flowtable_set_str(struct nftnl_flowtable *c, uint16_t attr, const char *str)
- {
- return nftnl_flowtable_set_data(c, attr, str, strlen(str) + 1);
- }
--EXPORT_SYMBOL(nftnl_flowtable_set_str);
-
-+EXPORT_SYMBOL(nftnl_flowtable_get_data);
- const void *nftnl_flowtable_get_data(const struct nftnl_flowtable *c,
- uint16_t attr, uint32_t *data_len)
- {
-@@ -228,21 +229,21 @@ const void *nftnl_flowtable_get_data(const struct nftnl_flowtable *c,
- }
- return NULL;
- }
--EXPORT_SYMBOL(nftnl_flowtable_get_data);
-
-+EXPORT_SYMBOL(nftnl_flowtable_get);
- const void *nftnl_flowtable_get(const struct nftnl_flowtable *c, uint16_t attr)
- {
- uint32_t data_len;
- return nftnl_flowtable_get_data(c, attr, &data_len);
- }
--EXPORT_SYMBOL(nftnl_flowtable_get);
-
-+EXPORT_SYMBOL(nftnl_flowtable_get_str);
- const char *nftnl_flowtable_get_str(const struct nftnl_flowtable *c, uint16_t attr)
- {
- return nftnl_flowtable_get(c, attr);
- }
--EXPORT_SYMBOL(nftnl_flowtable_get_str);
-
-+EXPORT_SYMBOL(nftnl_flowtable_get_u32);
- uint32_t nftnl_flowtable_get_u32(const struct nftnl_flowtable *c, uint16_t attr)
- {
- uint32_t data_len = 0;
-@@ -252,8 +253,8 @@ uint32_t nftnl_flowtable_get_u32(const struct nftnl_flowtable *c, uint16_t attr)
-
- return val ? *val : 0;
- }
--EXPORT_SYMBOL(nftnl_flowtable_get_u32);
-
-+EXPORT_SYMBOL(nftnl_flowtable_get_s32);
- int32_t nftnl_flowtable_get_s32(const struct nftnl_flowtable *c, uint16_t attr)
- {
- uint32_t data_len = 0;
-@@ -263,8 +264,8 @@ int32_t nftnl_flowtable_get_s32(const struct nftnl_flowtable *c, uint16_t attr)
-
- return val ? *val : 0;
- }
--EXPORT_SYMBOL(nftnl_flowtable_get_s32);
-
-+EXPORT_SYMBOL(nftnl_flowtable_nlmsg_build_payload);
- void nftnl_flowtable_nlmsg_build_payload(struct nlmsghdr *nlh,
- const struct nftnl_flowtable *c)
- {
-@@ -300,7 +301,6 @@ void nftnl_flowtable_nlmsg_build_payload(struct nlmsghdr *nlh,
- if (c->flags & (1 << NFTNL_FLOWTABLE_SIZE))
- mnl_attr_put_u32(nlh, NFTA_FLOWTABLE_SIZE, htonl(c->size));
- }
--EXPORT_SYMBOL(nftnl_flowtable_nlmsg_build_payload);
-
- static int nftnl_flowtable_parse_attr_cb(const struct nlattr *attr, void *data)
- {
-@@ -415,6 +415,7 @@ static int nftnl_flowtable_parse_hook(struct nlattr *attr, struct nftnl_flowtabl
- return 0;
- }
-
-+EXPORT_SYMBOL(nftnl_flowtable_nlmsg_parse);
- int nftnl_flowtable_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_flowtable *c)
- {
- struct nlattr *tb[NFTA_FLOWTABLE_MAX + 1] = {};
-@@ -463,7 +464,6 @@ int nftnl_flowtable_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_flowtab
-
- return ret;
- }
--EXPORT_SYMBOL(nftnl_flowtable_nlmsg_parse);
-
- static const char *nftnl_hooknum2str(int family, int hooknum)
- {
-@@ -516,14 +516,15 @@ static inline int nftnl_str2hooknum(int family, const char *hook)
- return -1;
- }
-
-+EXPORT_SYMBOL(nftnl_flowtable_parse);
- int nftnl_flowtable_parse(struct nftnl_flowtable *c, enum nftnl_parse_type type,
- const char *data, struct nftnl_parse_err *err)
- {
- errno = EOPNOTSUPP;
- return -1;
- }
--EXPORT_SYMBOL(nftnl_flowtable_parse);
-
-+EXPORT_SYMBOL(nftnl_flowtable_parse_file);
- int nftnl_flowtable_parse_file(struct nftnl_flowtable *c,
- enum nftnl_parse_type type,
- FILE *fp, struct nftnl_parse_err *err)
-@@ -531,7 +532,6 @@ int nftnl_flowtable_parse_file(struct nftnl_flowtable *c,
- errno = EOPNOTSUPP;
- return -1;
- }
--EXPORT_SYMBOL(nftnl_flowtable_parse_file);
-
- static int nftnl_flowtable_snprintf_default(char *buf, size_t size,
- const struct nftnl_flowtable *c)
-@@ -587,6 +587,7 @@ static int nftnl_flowtable_cmd_snprintf(char *buf, size_t size,
- return offset;
- }
-
-+EXPORT_SYMBOL(nftnl_flowtable_snprintf);
- int nftnl_flowtable_snprintf(char *buf, size_t size, const struct nftnl_flowtable *c,
- uint32_t type, uint32_t flags)
- {
-@@ -596,7 +597,6 @@ int nftnl_flowtable_snprintf(char *buf, size_t size, const struct nftnl_flowtabl
- return nftnl_flowtable_cmd_snprintf(buf, size, c, nftnl_flag2cmd(flags),
- type, flags);
- }
--EXPORT_SYMBOL(nftnl_flowtable_snprintf);
-
- static int nftnl_flowtable_do_snprintf(char *buf, size_t size, const void *c,
- uint32_t cmd, uint32_t type, uint32_t flags)
-@@ -604,18 +604,19 @@ static int nftnl_flowtable_do_snprintf(char *buf, size_t size, const void *c,
- return nftnl_flowtable_snprintf(buf, size, c, type, flags);
- }
-
-+EXPORT_SYMBOL(nftnl_flowtable_fprintf);
- int nftnl_flowtable_fprintf(FILE *fp, const struct nftnl_flowtable *c,
- uint32_t type, uint32_t flags)
- {
- return nftnl_fprintf(fp, c, NFTNL_CMD_UNSPEC, type, flags,
- nftnl_flowtable_do_snprintf);
- }
--EXPORT_SYMBOL(nftnl_flowtable_fprintf);
-
- struct nftnl_flowtable_list {
- struct list_head list;
- };
-
-+EXPORT_SYMBOL(nftnl_flowtable_list_alloc);
- struct nftnl_flowtable_list *nftnl_flowtable_list_alloc(void)
- {
- struct nftnl_flowtable_list *list;
-@@ -628,8 +629,8 @@ struct nftnl_flowtable_list *nftnl_flowtable_list_alloc(void)
-
- return list;
- }
--EXPORT_SYMBOL(nftnl_flowtable_list_alloc);
-
-+EXPORT_SYMBOL(nftnl_flowtable_list_free);
- void nftnl_flowtable_list_free(struct nftnl_flowtable_list *list)
- {
- struct nftnl_flowtable *s, *tmp;
-@@ -640,34 +641,34 @@ void nftnl_flowtable_list_free(struct nftnl_flowtable_list *list)
- }
- xfree(list);
- }
--EXPORT_SYMBOL(nftnl_flowtable_list_free);
-
-+EXPORT_SYMBOL(nftnl_flowtable_list_is_empty);
- int nftnl_flowtable_list_is_empty(const struct nftnl_flowtable_list *list)
- {
- return list_empty(&list->list);
- }
--EXPORT_SYMBOL(nftnl_flowtable_list_is_empty);
-
-+EXPORT_SYMBOL(nftnl_flowtable_list_add);
- void nftnl_flowtable_list_add(struct nftnl_flowtable *s,
- struct nftnl_flowtable_list *list)
- {
- list_add(&s->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_flowtable_list_add);
-
-+EXPORT_SYMBOL(nftnl_flowtable_list_add_tail);
- void nftnl_flowtable_list_add_tail(struct nftnl_flowtable *s,
- struct nftnl_flowtable_list *list)
- {
- list_add_tail(&s->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_flowtable_list_add_tail);
-
-+EXPORT_SYMBOL(nftnl_flowtable_list_del);
- void nftnl_flowtable_list_del(struct nftnl_flowtable *s)
- {
- list_del(&s->head);
- }
--EXPORT_SYMBOL(nftnl_flowtable_list_del);
-
-+EXPORT_SYMBOL(nftnl_flowtable_list_foreach);
- int nftnl_flowtable_list_foreach(struct nftnl_flowtable_list *flowtable_list,
- int (*cb)(struct nftnl_flowtable *t, void *data), void *data)
- {
-@@ -681,4 +682,3 @@ int nftnl_flowtable_list_foreach(struct nftnl_flowtable_list *flowtable_list,
- }
- return 0;
- }
--EXPORT_SYMBOL(nftnl_flowtable_list_foreach);
---
-2.17.1
-
diff --git a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0002-avoid-naming-local-function-as-one-of-printf-family.patch b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch
index e64091b50..f49ef2a78 100644
--- a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0002-avoid-naming-local-function-as-one-of-printf-family.patch
+++ b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch
@@ -1,6 +1,6 @@
-From 373e13e28e34b4d415fc096e1c7175f4ecfbf0da Mon Sep 17 00:00:00 2001
-From: Yuan Chao <yuanc.fnst@cn.fujitsu.com>
-Date: Wed, 21 Aug 2019 11:18:56 +0900
+From e03b003610a176d608da9a02e433e7ded7e4b75f Mon Sep 17 00:00:00 2001
+From: Todd Cunningham <tcunningham07@gmail.com>
+Date: Wed, 11 Dec 2019 10:18:56 +1000
Subject: [PATCH] avoid naming local function as one of printf family
Fixes build issues with clang
@@ -10,6 +10,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Yuan Chao <yuanc.fnst@cn.fujitsu.com>
+Signed-off-by: Todd Cunningham <tcunningham07@gmail.com>
---
include/expr_ops.h | 2 +-
include/obj.h | 2 +-
@@ -58,6 +59,7 @@ Signed-off-by: Yuan Chao <yuanc.fnst@cn.fujitsu.com>
src/obj/limit.c | 2 +-
src/obj/quota.c | 2 +-
src/obj/secmark.c | 2 +-
+ src/obj/synproxy.c | 2 +-
src/obj/tunnel.c | 2 +-
src/object.c | 2 +-
49 files changed, 50 insertions(+), 50 deletions(-)
@@ -613,6 +615,17 @@ index d8c87ee..5307d7e 100644
obj);
SNPRINTF_BUFFER_SIZE(ret, remain, offset);
}
+diff --git a/src/obj/synproxy.c b/src/obj/synproxy.c
+index 56ebc85..6b5380f 100644
+--- a/src/obj/synproxy.c
++++ b/src/obj/synproxy.c
+@@ -157,5 +157,5 @@ struct obj_ops obj_ops_synproxy = {
+ .get = nftnl_obj_synproxy_get,
+ .parse = nftnl_obj_synproxy_parse,
+ .build = nftnl_obj_synproxy_build,
+- .snprintf = nftnl_obj_synproxy_snprintf,
++ .snprintf_ = nftnl_obj_synproxy_snprintf,
+ };
--
2.17.1
diff --git a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.1.4.bb b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.1.5.bb
index 705b6a6c3..e1c2720da 100644
--- a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.1.4.bb
+++ b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.1.5.bb
@@ -4,10 +4,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=79808397c3355f163c012616125c9e26"
SECTION = "libs"
DEPENDS = "libmnl"
-SRCREV = "7c19dc01a88dbcf9a45fa791cd27a51b563bcf29"
+SRCREV = "a71599dc0ae1a808e970e96850ea83d77f452994"
SRC_URI = "git://git.netfilter.org/libnftnl \
- file://0001-Move-exports-before-symbol-definition.patch \
- file://0002-avoid-naming-local-function-as-one-of-printf-family.patch \
+ file://0001-avoid-naming-local-function-as-one-of-printf-family.patch \
"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/files/0001-update-python3-nftables-reference.patch b/meta-openembedded/meta-networking/recipes-filter/nftables/files/0001-update-python3-nftables-reference.patch
new file mode 100644
index 000000000..db2243480
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-filter/nftables/files/0001-update-python3-nftables-reference.patch
@@ -0,0 +1,47 @@
+From ddbe652bf0f4ed300bae9497250130d68e4cbf5b Mon Sep 17 00:00:00 2001
+From: Arturo Borrero Gonzalez <arturo@netfilter.org>
+Date: Tue, 10 Dec 2019 12:00:45 +0100
+Subject: py: load the SONAME-versioned shared object
+
+Instruct the python module to load the SONAME versioned shared object.
+
+Normal end-user systems may only have available libnftables.so.1.0.0 and not
+libnftables.so which is usually only present in developer systems.
+
+In Debian systems, for example:
+
+ % dpkg -L libnftables1 | grep so.1
+ /usr/lib/x86_64-linux-gnu/libnftables.so.1.0.0
+ /usr/lib/x86_64-linux-gnu/libnftables.so.1
+
+ % dpkg -L libnftables-dev | grep so
+ /usr/lib/x86_64-linux-gnu/libnftables.so
+
+The "1" is not a magic number, is the SONAME of libnftables in the current
+version, as stated in Make_global.am.
+
+Reported-by: Michael Biebl <biebl@debian.org>
+Signed-off-by: Arturo Borrero Gonzalez <arturo@netfilter.org>
+Acked-by: Phil Sutter <phil@nwl.cc>
+Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
+---
+ py/nftables.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/py/nftables.py b/py/nftables.py
+index 48eb54fe..2a0a1e89 100644
+--- a/py/nftables.py
++++ b/py/nftables.py
+@@ -64,7 +64,7 @@ class Nftables:
+
+ validator = None
+
+- def __init__(self, sofile="libnftables.so"):
++ def __init__(self, sofile="libnftables.so.1"):
+ """Instantiate a new Nftables class object.
+
+ Accepts a shared object file to open, by default standard search path
+--
+cgit v1.2.1
+
+
diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.9.2.bb b/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.9.2.bb
deleted file mode 100644
index 98e8050b8..000000000
--- a/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.9.2.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "Netfilter Tables userspace utillites"
-SECTION = "net"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d1a78fdd879a263a5e0b42d1fc565e79"
-
-DEPENDS = "libmnl libnftnl readline gmp bison-native"
-
-UPSTREAM_CHECK_URI = "https://www.netfilter.org/projects/nftables/files/"
-
-SRC_URI = "http://www.netfilter.org/projects/nftables/files/${BP}.tar.bz2"
-SRC_URI[md5sum] = "dfe130724d7c998eb26b56447e932899"
-SRC_URI[sha256sum] = "5cb66180143e6bfc774f4eb316206d40ac1cb6df269a90882404cbf7165513f5"
-
-inherit autotools manpages pkgconfig
-
-PACKAGECONFIG ?= "python"
-PACKAGECONFIG[man] = "--enable--man-doc, --disable-man-doc"
-PACKAGECONFIG[python] = "--with-python-bin=${PYTHON}, --with-python-bin="", python3"
-
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3native', '', d)}
-
-ASNEEDED = ""
-
-RRECOMMENDS_${PN} += "kernel-module-nf-tables"
-
-PACKAGES =+ "${PN}-python"
-FILES_${PN}-python = "${libdir_native}/${PYTHON_DIR}"
-RDEPENDS_${PN}-python = "python3-core python3-json"
diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.9.3.bb b/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.9.3.bb
new file mode 100644
index 000000000..65a7bcc5f
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.9.3.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Netfilter Tables userspace utillites"
+SECTION = "net"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d1a78fdd879a263a5e0b42d1fc565e79"
+
+DEPENDS = "libmnl libnftnl bison-native \
+ ${@bb.utils.contains('PACKAGECONFIG', 'mini-gmp', '', 'gmp', d)}"
+
+# Ensure we reject the 0.099 version by matching at least two dots
+UPSTREAM_CHECK_REGEX = "nftables-(?P<pver>\d+(\.\d+){2,}).tar.bz2"
+
+SRC_URI = "http://www.netfilter.org/projects/nftables/files/${BP}.tar.bz2 \
+ file://0001-update-python3-nftables-reference.patch"
+SRC_URI[md5sum] = "9913b2b46864394d41916b74638e0875"
+SRC_URI[sha256sum] = "956b915ce2a7aeaff123e49006be7a0690a0964e96c062703181a36e2e5edb78"
+
+inherit autotools manpages pkgconfig
+
+PACKAGECONFIG ??= "python readline"
+PACKAGECONFIG[json] = "--with-json, --without-json, jansson"
+PACKAGECONFIG[manpages] = "--enable-man-doc, --disable-man-doc, asciidoc-native"
+PACKAGECONFIG[mini-gmp] = "--with-mini-gmp, --without-mini-gmp"
+PACKAGECONFIG[python] = "--enable-python --with-python-bin=${PYTHON}, --with-python-bin="", python3"
+PACKAGECONFIG[readline] = "--with-cli=readline, --without-cli, readline"
+PACKAGECONFIG[xtables] = "--with-xtables, --without-xtables, iptables"
+
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3native', '', d)}
+
+RRECOMMENDS_${PN} += "kernel-module-nf-tables"
+
+PACKAGES =+ "${PN}-python"
+FILES_${PN}-python = "${nonarch_libdir}/${PYTHON_DIR}"
+RDEPENDS_${PN}-python = "python3-core python3-json"