mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-04-20 11:38:34 +00:00
crda: move to a dynamic-layer for python
Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
From 078e962d345fd0536fe7ba797485ee1a4159c032 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Fri, 4 Feb 2022 09:18:30 -0800
|
||||
Subject: [PATCH] Make alpha2 to be 3 characters long
|
||||
|
||||
Fixes buffer overflow
|
||||
reglib.c:969:9: error: 'sscanf' may overflow; destination buffer in argument 3 has size 2, but the corresponding specifier may require size 3 [-Werror,-Wfortify-source]
|
||||
alpha2,
|
||||
^
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
reglib.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/reglib.c b/reglib.c
|
||||
index e00e9b8..8565a0b 100644
|
||||
--- a/reglib.c
|
||||
+++ b/reglib.c
|
||||
@@ -958,7 +958,7 @@ reglib_parse_rules(FILE *fp, struct ieee80211_regdomain *trd)
|
||||
static int reglib_parse_country_dfs(char *line, struct ieee80211_regdomain *rd)
|
||||
{
|
||||
char dfs_region_alpha[9];
|
||||
- char alpha2[2];
|
||||
+ char alpha2[3];
|
||||
int hits;
|
||||
|
||||
memset(rd, 0, sizeof(*rd));
|
||||
--
|
||||
2.35.1
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
From 1e1a78b7b4fa1662b4447aa19c15b1e839b7e9db Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20M=C3=BCller-Klieser?= <s.mueller-klieser@phytec.de>
|
||||
Date: Wed, 24 Aug 2016 10:58:45 +0200
|
||||
Subject: [PATCH] Makefile: respect LDFLAGS for libreg
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de>
|
||||
---
|
||||
Makefile | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 2879896..1650db8 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -116,7 +116,7 @@ keys-%.c: utils/key2pub.py $(wildcard $(PUBKEY_DIR)/*.pem)
|
||||
|
||||
$(LIBREG): regdb.h reglib.h reglib.c
|
||||
$(NQ) ' CC ' $@
|
||||
- $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $^ $(LIBREGLDLIBS)
|
||||
+ $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $^ $(LDFLAGS) $(LIBREGLDLIBS)
|
||||
|
||||
install-libreg-headers:
|
||||
$(NQ) ' INSTALL libreg-headers'
|
||||
--
|
||||
1.9.1
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
Imported from Gentoo
|
||||
https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9c50acec16bc7c33d6dc122c007d713e7fbecf9c
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
--- a/utils/key2pub.py
|
||||
+++ b/utils/key2pub.py
|
||||
@@ -1,22 +1,22 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/env python3
|
||||
|
||||
import sys
|
||||
try:
|
||||
from M2Crypto import RSA
|
||||
-except ImportError, e:
|
||||
+except ImportError as e:
|
||||
sys.stderr.write('ERROR: Failed to import the "M2Crypto" module: %s\n' % e.message)
|
||||
sys.stderr.write('Please install the "M2Crypto" Python module.\n')
|
||||
sys.stderr.write('On Debian GNU/Linux the package is called "python-m2crypto".\n')
|
||||
sys.exit(1)
|
||||
|
||||
def print_ssl_64(output, name, val):
|
||||
- while val[0] == '\0':
|
||||
+ while val[0:1] == b'\0':
|
||||
val = val[1:]
|
||||
while len(val) % 8:
|
||||
- val = '\0' + val
|
||||
+ val = b'\0' + val
|
||||
vnew = []
|
||||
while len(val):
|
||||
- vnew.append((val[0], val[1], val[2], val[3], val[4], val[5], val[6], val[7]))
|
||||
+ vnew.append((val[0:1], val[1:2], val[2:3], val[3:4], val[4:5], val[5:6], val[6:7], val[7:8]))
|
||||
val = val[8:]
|
||||
vnew.reverse()
|
||||
output.write('static BN_ULONG %s[%d] = {\n' % (name, len(vnew)))
|
||||
@@ -34,13 +34,13 @@ def print_ssl_64(output, name, val):
|
||||
output.write('};\n\n')
|
||||
|
||||
def print_ssl_32(output, name, val):
|
||||
- while val[0] == '\0':
|
||||
+ while val[0:1] == b'\0':
|
||||
val = val[1:]
|
||||
while len(val) % 4:
|
||||
- val = '\0' + val
|
||||
+ val = b'\0' + val
|
||||
vnew = []
|
||||
while len(val):
|
||||
- vnew.append((val[0], val[1], val[2], val[3], ))
|
||||
+ vnew.append((val[0:1], val[1:2], val[2:3], val[3:4]))
|
||||
val = val[4:]
|
||||
vnew.reverse()
|
||||
output.write('static BN_ULONG %s[%d] = {\n' % (name, len(vnew)))
|
||||
@@ -81,21 +81,21 @@ struct pubkey {
|
||||
|
||||
static struct pubkey keys[] __attribute__((unused))= {
|
||||
''')
|
||||
- for n in xrange(n + 1):
|
||||
+ for n in range(n + 1):
|
||||
output.write(' KEYS(e_%d, n_%d),\n' % (n, n))
|
||||
output.write('};\n')
|
||||
pass
|
||||
|
||||
def print_gcrypt(output, name, val):
|
||||
output.write('#include <stdint.h>\n')
|
||||
- while val[0] == '\0':
|
||||
+ while val[0:1] == b'\0':
|
||||
val = val[1:]
|
||||
output.write('static const uint8_t %s[%d] = {\n' % (name, len(val)))
|
||||
idx = 0
|
||||
for v in val:
|
||||
if not idx:
|
||||
output.write('\t')
|
||||
- output.write('0x%.2x, ' % ord(v))
|
||||
+ output.write('0x%.2x, ' % (v if sys.version_info[0] >=3 else ord(v)))
|
||||
idx += 1
|
||||
if idx == 8:
|
||||
idx = 0
|
||||
@@ -118,7 +118,7 @@ struct key_params {
|
||||
|
||||
static const struct key_params keys[] __attribute__((unused))= {
|
||||
''')
|
||||
- for n in xrange(n + 1):
|
||||
+ for n in range(n + 1):
|
||||
output.write(' KEYS(e_%d, n_%d),\n' % (n, n))
|
||||
output.write('};\n')
|
||||
|
||||
@@ -136,7 +136,7 @@ except IndexError:
|
||||
mode = None
|
||||
|
||||
if not mode in modes:
|
||||
- print 'Usage: %s [%s] input-file... output-file' % (sys.argv[0], '|'.join(modes.keys()))
|
||||
+ print('Usage: %s [%s] input-file... output-file' % (sys.argv[0], '|'.join(modes.keys())))
|
||||
sys.exit(2)
|
||||
|
||||
output = open(outfile, 'w')
|
||||
@@ -154,3 +154,5 @@ for f in files:
|
||||
idx += 1
|
||||
|
||||
modes[mode][1](output, idx - 1)
|
||||
+
|
||||
+output.close()
|
||||
@@ -0,0 +1,21 @@
|
||||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Date: Sat, 23 Aug 2014 12:27:34 -0700
|
||||
Subject: crda: Do not run ldconfig if DESTDIR is set
|
||||
|
||||
Upstream-Status: Backport [http://www.spinics.net/lists/linux-wireless/msg126028.html]
|
||||
|
||||
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
||||
Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
|
||||
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -132,7 +132,9 @@ install-libreg:
|
||||
$(NQ) ' INSTALL libreg'
|
||||
$(Q)mkdir -p $(DESTDIR)/$(LIBDIR)
|
||||
$(Q)cp $(LIBREG) $(DESTDIR)/$(LIBDIR)/
|
||||
+ifndef DESTDIR
|
||||
$(Q)ldconfig
|
||||
+endif
|
||||
|
||||
%.o: %.c regdb.h $(LIBREG)
|
||||
$(NQ) ' CC ' $@
|
||||
@@ -0,0 +1,11 @@
|
||||
--- crda-3.18/utils/key2pub.py.orig 2016-06-18 09:54:23.671326113 -0400
|
||||
+++ crda-3.18/utils/key2pub.py 2016-06-18 09:54:34.387326300 -0400
|
||||
@@ -115,7 +115,7 @@
|
||||
.n = _n, .len_n = sizeof(_n), \
|
||||
}
|
||||
|
||||
-static const struct key_params keys[] = {
|
||||
+static const struct key_params keys[] __attribute__((unused))= {
|
||||
''')
|
||||
for n in xrange(n + 1):
|
||||
output.write(' KEYS(e_%d, n_%d),\n' % (n, n))
|
||||
@@ -0,0 +1,58 @@
|
||||
From 8d2164a090f17286ea8291f30a123595cf447dc3 Mon Sep 17 00:00:00 2001
|
||||
From: Haiqing Bai <Haiqing.Bai@windriver.com>
|
||||
Date: Wed, 30 Nov 2016 10:27:36 +0800
|
||||
Subject: [PATCH] crda: fix issues when 'USE_OPENSSL=1'.
|
||||
|
||||
Fxed the below issues if configured with 'USE_OPENSSL=1':
|
||||
a. keys-ssl.c uses BN_ULONG but doesn't include the openssl headers leading
|
||||
to build failures:
|
||||
keys-ssl.c:2:8: error: unknown type name 'BN_ULONG'
|
||||
static BN_ULONG e_0[1] = {
|
||||
|
||||
b. The large unqualified constants also break building:
|
||||
keys-ssl.c:8:2: warning: overflow in implicit constant conversion [-Woverflow]
|
||||
0x63a2705416a0d8e1, 0xdc9fca11c8ba757b,
|
||||
|
||||
c. keys-ssl.c: error: 'keys' defined but not used [-Werror=unused-variable]
|
||||
static struct pubkey keys[] = {
|
||||
|
||||
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
|
||||
---
|
||||
utils/key2pub.py | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/utils/key2pub.py b/utils/key2pub.py
|
||||
index 401d58a..3ae00b8 100755
|
||||
--- a/utils/key2pub.py
|
||||
+++ b/utils/key2pub.py
|
||||
@@ -24,7 +24,7 @@ def print_ssl_64(output, name, val):
|
||||
for v1, v2, v3, v4, v5, v6, v7, v8 in vnew:
|
||||
if not idx:
|
||||
output.write('\t')
|
||||
- output.write('0x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x, ' % (ord(v1), ord(v2), ord(v3), ord(v4), ord(v5), ord(v6), ord(v7), ord(v8)))
|
||||
+ output.write('0x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2xULL, ' % (ord(v1), ord(v2), ord(v3), ord(v4), ord(v5), ord(v6), ord(v7), ord(v8)))
|
||||
idx += 1
|
||||
if idx == 2:
|
||||
idx = 0
|
||||
@@ -60,6 +60,7 @@ def print_ssl_32(output, name, val):
|
||||
def print_ssl(output, name, val):
|
||||
import os
|
||||
output.write('#include <stdint.h>\n')
|
||||
+ output.write('#include <openssl/bn.h>\n')
|
||||
if os.getenv('TARGET_BITS') == '64':
|
||||
return print_ssl_64(output, name, val)
|
||||
else:
|
||||
@@ -78,7 +79,7 @@ struct pubkey {
|
||||
|
||||
#define KEYS(e,n) { KEY(e), KEY(n), }
|
||||
|
||||
-static struct pubkey keys[] = {
|
||||
+static struct pubkey keys[] __attribute__((unused))= {
|
||||
''')
|
||||
for n in xrange(n + 1):
|
||||
output.write(' KEYS(e_%d, n_%d),\n' % (n, n))
|
||||
--
|
||||
1.9.1
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
From 890f5bf2654b695a866262d72bfa9750af921a3b Mon Sep 17 00:00:00 2001
|
||||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Date: Sat, 23 Aug 2014 12:26:37 -0700
|
||||
Subject: [PATCH] Fix linking of libraries used by libreg
|
||||
|
||||
The math and crypto libraries are called by and need to be linked to
|
||||
libreg.so, not to the executables.
|
||||
|
||||
Upstream-Status: Backport [http://www.spinics.net/lists/linux-wireless/msg126027.html]
|
||||
|
||||
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
||||
Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
|
||||
---
|
||||
Makefile | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index a3ead30..da2dcc3 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -30,7 +30,7 @@ CFLAGS += -std=gnu99 -Wall -Werror -pedantic
|
||||
CFLAGS += -Wall -g
|
||||
LDLIBREG += -lreg
|
||||
LDLIBS += $(LDLIBREG)
|
||||
-LDLIBS += -lm
|
||||
+LIBREGLDLIBS += -lm
|
||||
LIBREG += libreg.so
|
||||
LDFLAGS += -L ./
|
||||
|
||||
@@ -40,13 +40,13 @@ all_noverify: $(LIBREG) crda intersect regdbdump db2rd optimize
|
||||
|
||||
ifeq ($(USE_OPENSSL),1)
|
||||
CFLAGS += -DUSE_OPENSSL -DPUBKEY_DIR=\"$(RUNTIME_PUBKEY_DIR)\" `pkg-config --cflags openssl`
|
||||
-LDLIBS += `pkg-config --libs openssl`
|
||||
+LIBREGLDLIBS += `pkg-config --libs openssl`
|
||||
|
||||
$(LIBREG): keys-ssl.c
|
||||
|
||||
else
|
||||
CFLAGS += -DUSE_GCRYPT
|
||||
-LDLIBS += -lgcrypt
|
||||
+LIBREGLDLIBS += -lgcrypt
|
||||
|
||||
$(LIBREG): keys-gcrypt.c
|
||||
|
||||
@@ -116,7 +116,7 @@ keys-%.c: utils/key2pub.py $(wildcard $(PUBKEY_DIR)/*.pem)
|
||||
|
||||
$(LIBREG): regdb.h reglib.h reglib.c
|
||||
$(NQ) ' CC ' $@
|
||||
- $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $^
|
||||
+ $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $^ $(LIBREGLDLIBS)
|
||||
|
||||
install-libreg-headers:
|
||||
$(NQ) ' INSTALL libreg-headers'
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
These headers are not related to any Make rule but they do appear in
|
||||
compiling of libreg.so, specifying .h files in compiler cmdline is flagged
|
||||
as error by clang
|
||||
|
||||
| clang-4.0: error: cannot specify -o when generating multiple output files
|
||||
| make: *** [libreg.so] Error 1
|
||||
|
||||
This is how we see headers in cmdline
|
||||
-O2 -fpic -std=gnu
|
||||
99 -Wall -Werror -pedantic -Wall -g -DUSE_GCRYPT -DCONFIG_LIBNL30 `pkg-config --cflags libnl-3.0` -o libreg.so -shared -Wl,-soname,libreg.so
|
||||
regdb.h reglib.h reglib.c keys-gcrypt.c -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -L ./ -lm -lgcrypt
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
--- a/Makefile.kk 2016-11-15 04:54:53.338670000 +0000
|
||||
+++ a/Makefile 2016-11-15 04:55:07.718670000 +0000
|
||||
@@ -114,7 +114,7 @@ keys-%.c: utils/key2pub.py $(wildcard $(
|
||||
$(NQ) ' Trusted pubkeys:' $(wildcard $(PUBKEY_DIR)/*.pem)
|
||||
$(Q)./utils/key2pub.py --$* $(wildcard $(PUBKEY_DIR)/*.pem) $@
|
||||
|
||||
-$(LIBREG): regdb.h reglib.h reglib.c
|
||||
+$(LIBREG): reglib.c
|
||||
$(NQ) ' CC ' $@
|
||||
$(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $^ $(LDFLAGS) $(LIBREGLDLIBS)
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
From c1c42513edd27c97341f2033af77c13a4724eb8f Mon Sep 17 00:00:00 2001
|
||||
From: Haiqing Bai <Haiqing.Bai@windriver.com>
|
||||
Date: Fri, 25 Nov 2016 16:48:01 +0800
|
||||
Subject: [PATCH] crda: Use target word size instead of host's.
|
||||
|
||||
In key2pub.py, the codes check the wordsize
|
||||
of the host machine but not the target's, this fix
|
||||
fetches the wordsize of target from the build system.
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
|
||||
---
|
||||
utils/key2pub.py | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/utils/key2pub.py b/utils/key2pub.py
|
||||
index 3e84cd2..401d58a 100755
|
||||
--- a/utils/key2pub.py
|
||||
+++ b/utils/key2pub.py
|
||||
@@ -58,9 +58,9 @@ def print_ssl_32(output, name, val):
|
||||
output.write('};\n\n')
|
||||
|
||||
def print_ssl(output, name, val):
|
||||
- import struct
|
||||
+ import os
|
||||
output.write('#include <stdint.h>\n')
|
||||
- if len(struct.pack('@L', 0)) == 8:
|
||||
+ if os.getenv('TARGET_BITS') == '64':
|
||||
return print_ssl_64(output, name, val)
|
||||
else:
|
||||
return print_ssl_32(output, name, val)
|
||||
--
|
||||
1.9.1
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
SUMMARY = "Wireless Central Regulatory Domain Agent"
|
||||
HOMEPAGE = "http://wireless.kernel.org/en/developers/Regulatory/CRDA"
|
||||
SECTION = "net"
|
||||
LICENSE = "copyleft-next-0.3.0"
|
||||
LIC_FILES_CHKSUM = "file://copyleft-next-0.3.0;md5=8743a2c359037d4d329a31e79eabeffe"
|
||||
|
||||
DEPENDS = "python3-m2crypto-native libnl libgcrypt"
|
||||
|
||||
SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz \
|
||||
file://do-not-run-ldconfig-if-destdir-is-set.patch \
|
||||
file://fix-linking-of-libraries-used-by-reglib.patch \
|
||||
file://fix-gcc-6-unused-variables.patch \
|
||||
file://0001-Makefile-respect-LDFLAGS-for-libreg.patch \
|
||||
file://make.patch \
|
||||
file://use-target-word-size-instead-of-host-s.patch \
|
||||
file://fix-issues-when-USE_OPENSSL-1.patch \
|
||||
file://crda-4.14-python-3.patch \
|
||||
file://0001-Make-alpha2-to-be-3-characters-long.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "0431fef3067bf503dfb464069f06163a"
|
||||
SRC_URI[sha256sum] = "43fcb9679f8b75ed87ad10944a506292def13e4afb194afa7aa921b01e8ecdbf"
|
||||
|
||||
inherit pkgconfig python3-dir python3native siteinfo
|
||||
|
||||
# Recursive make problem
|
||||
EXTRA_OEMAKE = "MAKEFLAGS= DESTDIR=${D} LIBDIR=${libdir}/crda LDLIBREG='-Wl,-rpath,${libdir}/crda -lreg' \
|
||||
UDEV_RULE_DIR=${nonarch_base_libdir}/udev/rules.d/"
|
||||
TARGET_BITS = "${SITEINFO_BITS}"
|
||||
export TARGET_BITS
|
||||
|
||||
do_compile() {
|
||||
oe_runmake all_noverify
|
||||
}
|
||||
|
||||
do_install() {
|
||||
oe_runmake SBINDIR=${sbindir}/ install
|
||||
}
|
||||
|
||||
RDEPENDS:${PN} = "udev wireless-regdb-static"
|
||||
Reference in New Issue
Block a user