diff options
Diffstat (limited to 'meta/recipes-kernel')
108 files changed, 18764 insertions, 2665 deletions
diff --git a/meta/recipes-kernel/blktrace/blktrace/0001-bno_plot.py-btt_plot.py-Ask-for-python3-specifically.patch b/meta/recipes-kernel/blktrace/blktrace/0001-bno_plot.py-btt_plot.py-Ask-for-python3-specifically.patch new file mode 100644 index 0000000000..e2305a1111 --- /dev/null +++ b/meta/recipes-kernel/blktrace/blktrace/0001-bno_plot.py-btt_plot.py-Ask-for-python3-specifically.patch @@ -0,0 +1,35 @@ +From 6f4769e6e2c5cdc1262891470995e6dead937c7a Mon Sep 17 00:00:00 2001 +From: Sakib Sajal <sakib.sajal@windriver.com> +Date: Mon, 26 Jun 2023 17:57:36 -0400 +Subject: [PATCH] bno_plot.py, btt_plot.py: Ask for python3 specifically + +python2 is deprecated, use python3. + +Upstream-Status: Denied [https://www.spinics.net/lists/linux-btrace/msg01364.html] + +Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com> +--- + btt/bno_plot.py | 2 +- + btt/btt_plot.py | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/btt/bno_plot.py b/btt/bno_plot.py +index 3aa4e19..d7d7159 100644 +--- a/btt/bno_plot.py ++++ b/btt/bno_plot.py +@@ -1,4 +1,4 @@ +-#! /usr/bin/env python ++#! /usr/bin/env python3 + # + # btt blkno plotting interface + # +diff --git a/btt/btt_plot.py b/btt/btt_plot.py +index 40bc71f..8620d31 100755 +--- a/btt/btt_plot.py ++++ b/btt/btt_plot.py +@@ -1,4 +1,4 @@ +-#! /usr/bin/env python ++#! /usr/bin/env python3 + # + # btt_plot.py: Generate matplotlib plots for BTT generate data files + # diff --git a/meta/recipes-kernel/blktrace/blktrace_git.bb b/meta/recipes-kernel/blktrace/blktrace_git.bb index d00b1bd0be..8fc30d74fd 100644 --- a/meta/recipes-kernel/blktrace/blktrace_git.bb +++ b/meta/recipes-kernel/blktrace/blktrace_git.bb @@ -5,16 +5,18 @@ are three major components: a kernel component, a utility to record the i/o \ trace information for the kernel to user space, and utilities to analyse and \ view the trace information." HOMEPAGE = "http://brick.kernel.dk/snaps/" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833" DEPENDS = "libaio" SRCREV = "366d30b9cdb20345c5d064af850d686da79b89eb" -PV = "1.3.0+git${SRCPV}" +PV = "1.3.0+git" -SRC_URI = "git://git.kernel.dk/blktrace.git" +SRC_URI = "git://git.kernel.dk/blktrace.git;branch=master;protocol=https \ + file://0001-bno_plot.py-btt_plot.py-Ask-for-python3-specifically.patch \ + " S = "${WORKDIR}/git" diff --git a/meta/recipes-kernel/cryptodev/cryptodev-linux_1.12.bb b/meta/recipes-kernel/cryptodev/cryptodev-linux_1.14.bb index c55577c661..d5ea9d8529 100644 --- a/meta/recipes-kernel/cryptodev/cryptodev-linux_1.12.bb +++ b/meta/recipes-kernel/cryptodev/cryptodev-linux_1.14.bb @@ -9,5 +9,5 @@ do_install() { install -D ${S}/crypto/cryptodev.h ${D}${includedir}/crypto/cryptodev.h } -ALLOW_EMPTY_${PN} = "1" +ALLOW_EMPTY:${PN} = "1" BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-kernel/cryptodev/cryptodev-module_1.12.bb b/meta/recipes-kernel/cryptodev/cryptodev-module_1.14.bb index b3b554c7d3..6fb75675bb 100644 --- a/meta/recipes-kernel/cryptodev/cryptodev-module_1.12.bb +++ b/meta/recipes-kernel/cryptodev/cryptodev-module_1.14.bb @@ -7,10 +7,7 @@ inherit module # Header file provided by a separate package DEPENDS += "cryptodev-linux" -SRC_URI += "file://0001-Disable-installing-header-file-provided-by-another-p.patch \ - " - EXTRA_OEMAKE='KERNEL_DIR="${STAGING_KERNEL_DIR}" PREFIX="${D}"' -RCONFLICTS_${PN} = "ocf-linux" -RREPLACES_${PN} = "ocf-linux" +RCONFLICTS:${PN} = "ocf-linux" +RREPLACES:${PN} = "ocf-linux" diff --git a/meta/recipes-kernel/cryptodev/cryptodev-tests_1.12.bb b/meta/recipes-kernel/cryptodev/cryptodev-tests_1.14.bb index 9cb5dcb94f..f6a286e1b7 100644 --- a/meta/recipes-kernel/cryptodev/cryptodev-tests_1.12.bb +++ b/meta/recipes-kernel/cryptodev/cryptodev-tests_1.14.bb @@ -4,18 +4,14 @@ SUMMARY = "A test suite for /dev/crypto device driver" DEPENDS += "openssl" -SRC_URI += " \ -file://0001-Add-the-compile-and-install-rules-for-cryptodev-test.patch \ -" - EXTRA_OEMAKE='KERNEL_DIR="${STAGING_EXECPREFIXDIR}" PREFIX="${D}"' do_compile() { - oe_runmake testprogs + oe_runmake tests } do_install() { oe_runmake install_tests } -FILES_${PN} = "${bindir}/*" +FILES:${PN} = "${bindir}/*" diff --git a/meta/recipes-kernel/cryptodev/cryptodev.inc b/meta/recipes-kernel/cryptodev/cryptodev.inc index ae2c308911..8d0aad4a01 100644 --- a/meta/recipes-kernel/cryptodev/cryptodev.inc +++ b/meta/recipes-kernel/cryptodev/cryptodev.inc @@ -5,12 +5,13 @@ of hardware accelerators. Cryptodev-linux is implemented as a standalone \ module that requires no dependencies other than a stock linux kernel. Its \ API is compatible with OpenBSD's cryptodev userspace API (/dev/crypto)." -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -SRC_URI = "git://github.com/cryptodev-linux/cryptodev-linux \ +SRC_URI = "git://github.com/cryptodev-linux/cryptodev-linux;branch=master;protocol=https \ " -SRCREV = "e0c25e289d6baf1d83c2b9cb523d3bc237d0c0c9" +SRCREV = "135cbff90af2ba97d88f1472be595ce78721972c" +PV = "1.14" S = "${WORKDIR}/git" diff --git a/meta/recipes-kernel/cryptodev/files/0001-Add-the-compile-and-install-rules-for-cryptodev-test.patch b/meta/recipes-kernel/cryptodev/files/0001-Add-the-compile-and-install-rules-for-cryptodev-test.patch deleted file mode 100644 index 84fd27e681..0000000000 --- a/meta/recipes-kernel/cryptodev/files/0001-Add-the-compile-and-install-rules-for-cryptodev-test.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 1980a8f4779a955e73285e7a0d86549b69bea5c8 Mon Sep 17 00:00:00 2001 -From: Yu Zongchun <b40527@freescale.com> -Date: Sun, 28 Apr 2013 14:39:22 +0800 -Subject: [PATCH] Add the compile and install rules for cryptodev tests folder - -This is required to install the cryptodev tests folder to rootfs - -Signed-off-by: Yu Zongchun <b40527@freescale.com> - -Upstream-Status: Pending - ---- - Makefile | 6 ++++++ - tests/Makefile | 8 ++++++++ - 2 files changed, 14 insertions(+), 0 deletions(-) - -Index: git/Makefile -=================================================================== ---- git.orig/Makefile -+++ git/Makefile -@@ -35,6 +35,9 @@ modules_install: - $(MAKE) $(KERNEL_MAKE_OPTS) modules_install - install -m 644 -D crypto/cryptodev.h $(DESTDIR)/$(includedir)/crypto/cryptodev.h - -+install_tests: -+ make -C tests install DESTDIR=$(PREFIX) -+ - clean: - $(MAKE) $(KERNEL_MAKE_OPTS) clean - rm -f $(hostprogs) *~ -@@ -43,6 +46,9 @@ clean: - check: - CFLAGS=$(CRYPTODEV_CFLAGS) KERNEL_DIR=$(KERNEL_DIR) $(MAKE) -C tests check - -+testprogs: -+ KERNEL_DIR=$(KERNEL_DIR) make -C tests testprogs -+ - CPOPTS = - ifneq ($(SHOW_TYPES),) - CPOPTS += --show-types -Index: git/tests/Makefile -=================================================================== ---- git.orig/tests/Makefile -+++ git/tests/Makefile -@@ -23,6 +23,12 @@ bindir = $(execprefix)/bin - - all: $(hostprogs) - -+install: -+ install -d $(DESTDIR)/usr/bin/tests_cryptodev -+ for bin in $(hostprogs); do \ -+ install -m 755 $${bin} $(DESTDIR)/usr/bin/tests_cryptodev/; \ -+ done -+ - check: $(hostprogs) - ./cipher - ./hmac -@@ -38,6 +44,8 @@ install: - install -m 755 $$prog $(DESTDIR)/$(bindir); \ - done - -+testprogs: $(hostprogs) -+ - clean: - rm -f *.o *~ $(hostprogs) - diff --git a/meta/recipes-kernel/cryptodev/files/0001-Disable-installing-header-file-provided-by-another-p.patch b/meta/recipes-kernel/cryptodev/files/0001-Disable-installing-header-file-provided-by-another-p.patch deleted file mode 100644 index 885b5823e4..0000000000 --- a/meta/recipes-kernel/cryptodev/files/0001-Disable-installing-header-file-provided-by-another-p.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 8a884f55bd1527baa82fab68c186ba546273860c Mon Sep 17 00:00:00 2001 -From: Denys Dmytriyenko <denys@ti.com> -Date: Sun, 6 Apr 2014 19:51:39 -0400 -Subject: [PATCH] Disable installing header file provided by another package - -Signed-off-by: Denys Dmytriyenko <denys@ti.com> - -Upstream-Status: Inappropriate [ OE specific ] ---- - Makefile | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/Makefile b/Makefile -index 5a080e0..bf02396 100644 ---- a/Makefile -+++ b/Makefile -@@ -33,7 +33,6 @@ install: modules_install - - modules_install: - $(MAKE) $(KERNEL_MAKE_OPTS) modules_install -- install -m 644 -D crypto/cryptodev.h $(DESTDIR)/$(includedir)/crypto/cryptodev.h - - clean: - $(MAKE) $(KERNEL_MAKE_OPTS) clean diff --git a/meta/recipes-kernel/dtc/dtc.inc b/meta/recipes-kernel/dtc/dtc.inc deleted file mode 100644 index 5da6c24fbf..0000000000 --- a/meta/recipes-kernel/dtc/dtc.inc +++ /dev/null @@ -1,28 +0,0 @@ -SUMMARY = "Device Tree Compiler" -HOMEPAGE = "https://devicetree.org/" -DESCRIPTION = "The Device Tree Compiler is a tool used to manipulate the Open-Firmware-like device tree used by PowerPC kernels." -SECTION = "bootloader" -LICENSE = "GPLv2 | BSD" -DEPENDS = "flex-native bison-native" - -SRC_URI = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git \ - file://make_install.patch \ - file://0001-dtc-Fix-Makefile-to-add-CFLAGS-not-override.patch \ - " - -UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" - -EXTRA_OEMAKE='NO_PYTHON=1 PREFIX="${prefix}" LIBDIR="${libdir}" DESTDIR="${D}"' - -inherit pkgconfig - -S = "${WORKDIR}/git" - -do_install () { - oe_runmake install -} - -PACKAGES =+ "${PN}-misc" -FILES_${PN}-misc = "${bindir}/convert-dtsv0 ${bindir}/ftdump ${bindir}/dtdiff" - -RDEPENDS_${PN}-misc += "bash diffutils" diff --git a/meta/recipes-kernel/dtc/dtc/0001-dtc-Fix-Makefile-to-add-CFLAGS-not-override.patch b/meta/recipes-kernel/dtc/dtc/0001-dtc-Fix-Makefile-to-add-CFLAGS-not-override.patch deleted file mode 100644 index a2deb12d4b..0000000000 --- a/meta/recipes-kernel/dtc/dtc/0001-dtc-Fix-Makefile-to-add-CFLAGS-not-override.patch +++ /dev/null @@ -1,36 +0,0 @@ -From f0119060ef1b9bd80e2cae487df1e4aedffb0e9b Mon Sep 17 00:00:00 2001 -From: Oleksiy Obitotskyy <oobitots@cisco.com> -Date: Fri, 22 Jan 2021 09:12:48 +0200 -Subject: [PATCH] dtc: Fix Makefile to add CFLAGS not override - -Makefile override CFLAGS not extend them, so some of them -missing. Sources builds out of kernel tree and probably not all -options could be used (?). We need at least -fmacro-prefix-map/ -debug-prefix-map to eliminate absolute path in binaries. - -Upstream-Status: Pending -Signed-off-by: Oleksiy Obitotskyy <oobitots@cisco.com> ---- - Makefile | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Makefile b/Makefile -index 35d936f..b5b13cf 100644 ---- a/Makefile -+++ b/Makefile -@@ -20,10 +20,10 @@ CONFIG_LOCALVERSION = - # See libfdt_internal.h for details - ASSUME_MASK ?= 0 - --CPPFLAGS = -I libfdt -I . -DFDT_ASSUME_MASK=$(ASSUME_MASK) -+CPPFLAGS += -I libfdt -I . -DFDT_ASSUME_MASK=$(ASSUME_MASK) - WARNINGS = -Wall -Wpointer-arith -Wcast-qual -Wnested-externs \ - -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wshadow --CFLAGS = -g -Os $(SHAREDLIB_CFLAGS) -Werror $(WARNINGS) $(EXTRA_CFLAGS) -+CFLAGS += -g -Os $(SHAREDLIB_CFLAGS) -Werror $(WARNINGS) $(EXTRA_CFLAGS) - - BISON = bison - LEX = flex --- -2.25.1 - diff --git a/meta/recipes-kernel/dtc/dtc/0001-meson.build-bump-version-to-1.7.0.patch b/meta/recipes-kernel/dtc/dtc/0001-meson.build-bump-version-to-1.7.0.patch new file mode 100644 index 0000000000..79a3b92b44 --- /dev/null +++ b/meta/recipes-kernel/dtc/dtc/0001-meson.build-bump-version-to-1.7.0.patch @@ -0,0 +1,29 @@ +From 9153522103bd4ed7e3299c4d073f66bb37cb2d42 Mon Sep 17 00:00:00 2001 +From: Nikolay Letov <letov.nikolay@gmail.com> +Date: Wed, 22 Feb 2023 13:36:07 +0300 +Subject: [PATCH 1/2] meson.build: bump version to 1.7.0 + +[This was botched in the actual 1.7.0 release :( - David Gibson] + +Upstream-Status: Backport [https://git.kernel.org/pub/scm/utils/dtc/dtc.git/commit/?id=64a907f08b9bedd89833c1eee674148cff2343c6] + +Signed-off-by: Nikolay Letov <letov.nikolay@gmail.com> +Signed-off-by: Peter Marko <peter.marko@siemens.com> +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 78251eb..d88cd9f 100644 +--- a/meson.build ++++ b/meson.build +@@ -1,5 +1,5 @@ + project('dtc', 'c', +- version: '1.6.0', ++ version: '1.7.0', + license: ['GPL2+', 'BSD-2'], + default_options: 'werror=true', + ) +-- +2.30.2 + diff --git a/meta/recipes-kernel/dtc/dtc/0002-meson-allow-building-from-shallow-clones.patch b/meta/recipes-kernel/dtc/dtc/0002-meson-allow-building-from-shallow-clones.patch new file mode 100644 index 0000000000..0284905913 --- /dev/null +++ b/meta/recipes-kernel/dtc/dtc/0002-meson-allow-building-from-shallow-clones.patch @@ -0,0 +1,38 @@ +From 4415b0baece3c4351a6d3637c2754abbefd4795d Mon Sep 17 00:00:00 2001 +From: Peter Marko <peter.marko@siemens.com> +Date: Sat, 16 Dec 2023 18:58:31 +0100 +Subject: [PATCH 2/2] meson: allow building from shallow clones + +When building from shallow clone, tag is not available +and version defaults to git hash. +Problem is that some builds check DTC version and fail the comparison. +Example is https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git +Which fails to build with following error: +dtc version too old (039a994), you need at least version 1.4.4 + +Drop --always from git describe command, see +https://github.com/mesonbuild/meson/blob/1.3.0/mesonbuild/utils/universal.py#L773 +This will make it more closer to build via Makefile. + +Upstream-Status: Submitted [https://github.com/dgibson/dtc/pull/122] + +Signed-off-by: Peter Marko <peter.marko@siemens.com> +--- + meson.build | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/meson.build b/meson.build +index 78251eb..fc0c92a 100644 +--- a/meson.build ++++ b/meson.build +@@ -56,6 +56,7 @@ py = py.find_installation(required: get_option('python')) + swig = find_program('swig', required: get_option('python')) + + version_gen_h = vcs_tag( ++ command: ['git', 'describe', '--dirty=+'], + input: 'version_gen.h.in', + output: 'version_gen.h', + ) +-- +2.30.2 + diff --git a/meta/recipes-kernel/dtc/dtc/make_install.patch b/meta/recipes-kernel/dtc/dtc/make_install.patch deleted file mode 100644 index ea9359e815..0000000000 --- a/meta/recipes-kernel/dtc/dtc/make_install.patch +++ /dev/null @@ -1,26 +0,0 @@ -From e9852b9d206df1e42aa4c8afec55a0f5e099b533 Mon Sep 17 00:00:00 2001 -From: Saul Wold <sgw@linux.intel.com> -Date: Thu, 3 Nov 2011 08:35:47 -0700 -Subject: [PATCH] dtc: Add patch to correctly install shared libraries and - -Upstream-Status: Inappropriate [configuration] - ---- - Makefile | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Makefile b/Makefile -index d8ebc4f..f5e01be 100644 ---- a/Makefile -+++ b/Makefile -@@ -205,8 +205,8 @@ install-bin: all $(SCRIPTS) - install-lib: all - @$(VECHO) INSTALL-LIB - $(INSTALL) -d $(DESTDIR)$(LIBDIR) -- $(INSTALL_LIB) $(LIBFDT_lib) $(DESTDIR)$(LIBDIR) -- ln -sf $(notdir $(LIBFDT_lib)) $(DESTDIR)$(LIBDIR)/$(LIBFDT_soname) -+ $(INSTALL) $(LIBFDT_lib) $(DESTDIR)$(LIBDIR)/$(LIBFDT_soname) -+ ln -sf $(LIBFDT_soname) $(DESTDIR)$(LIBDIR)/$(notdir $(LIBFDT_lib)) - ln -sf $(LIBFDT_soname) $(DESTDIR)$(LIBDIR)/libfdt.$(SHAREDLIB_EXT) - $(INSTALL_DATA) $(LIBFDT_archive) $(DESTDIR)$(LIBDIR) - diff --git a/meta/recipes-kernel/dtc/dtc_1.6.1.bb b/meta/recipes-kernel/dtc/dtc_1.6.1.bb deleted file mode 100644 index de9a46d3ef..0000000000 --- a/meta/recipes-kernel/dtc/dtc_1.6.1.bb +++ /dev/null @@ -1,10 +0,0 @@ -require dtc.inc - -LIC_FILES_CHKSUM = "file://GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://libfdt/libfdt.h;beginline=4;endline=7;md5=05bb357cfb75cae7d2b01d2ee8d76407" - -SRCREV = "b6910bec11614980a21e46fbccc35934b671bd81" - -S = "${WORKDIR}/git" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-kernel/dtc/dtc_1.7.0.bb b/meta/recipes-kernel/dtc/dtc_1.7.0.bb new file mode 100644 index 0000000000..0702fc16df --- /dev/null +++ b/meta/recipes-kernel/dtc/dtc_1.7.0.bb @@ -0,0 +1,34 @@ +SUMMARY = "Device Tree Compiler" +HOMEPAGE = "https://devicetree.org/" +DESCRIPTION = "The Device Tree Compiler is a toolchain for working with device tree source and binary files." +SECTION = "bootloader" +LICENSE = "GPL-2.0-only | BSD-2-Clause" + +LIC_FILES_CHKSUM = "file://GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://BSD-2-Clause;md5=5d6306d1b08f8df623178dfd81880927 \ + file://README.license;md5=a1eb22e37f09df5b5511b8a278992d0e" + +SRC_URI = " \ + git://git.kernel.org/pub/scm/utils/dtc/dtc.git;branch=main;protocol=https \ + file://0001-meson.build-bump-version-to-1.7.0.patch \ + file://0002-meson-allow-building-from-shallow-clones.patch \ +" +SRCREV = "039a99414e778332d8f9c04cbd3072e1dcc62798" + +UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig + +EXTRA_OEMESON = "-Dpython=disabled -Dvalgrind=disabled" + +PACKAGECONFIG ??= "tools" +PACKAGECONFIG[tools] = "-Dtools=true,-Dtools=false,flex-native bison-native" +PACKAGECONFIG[yaml] = "-Dyaml=enabled,-Dyaml=disabled,libyaml" + +PACKAGES =+ "${PN}-misc" +FILES:${PN}-misc = "${bindir}/convert-dtsv0 ${bindir}/ftdump ${bindir}/dtdiff" +RDEPENDS:${PN}-misc += "${@bb.utils.contains('PACKAGECONFIG', 'tools', 'bash diffutils', '', d)}" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-kernel/dtc/python3-dtschema-wrapper/dt-doc-validate b/meta/recipes-kernel/dtc/python3-dtschema-wrapper/dt-doc-validate new file mode 100644 index 0000000000..2aa57851c7 --- /dev/null +++ b/meta/recipes-kernel/dtc/python3-dtschema-wrapper/dt-doc-validate @@ -0,0 +1,20 @@ +#!/bin/sh +# dt-doc-validate wrapper to allow kernel dt-validation to pass +# +# Copyright (C) 2021 Bruce Ashfield <bruce.ashfield@gmail.com> +# License: MIT (see COPYING.MIT at the root of the repository for terms) + +for arg; do + case "$arg" in + --version) + echo "v2021.10" + ;; + esac +done + +# TBD: left for future consideration +# exec dt-doc-validate.real "$@" + +# we always succeed +exit 0 + diff --git a/meta/recipes-kernel/dtc/python3-dtschema-wrapper/dt-mk-schema b/meta/recipes-kernel/dtc/python3-dtschema-wrapper/dt-mk-schema new file mode 100644 index 0000000000..24b89d8619 --- /dev/null +++ b/meta/recipes-kernel/dtc/python3-dtschema-wrapper/dt-mk-schema @@ -0,0 +1,20 @@ +#!/bin/sh +# dt-mk-schema wrapper to allow kernel dt-validation to pass +# +# Copyright (C) 2021 Bruce Ashfield <bruce.ashfield@gmail.com> +# License: MIT (see COPYING.MIT at the root of the repository for terms) + +for arg; do + case "$arg" in + --version) + echo "v2021.10" + ;; + esac +done + +# TBD: left for future consideration +# exec dt-mk-schema.real "$@" + +# we always succeed +exit 0 + diff --git a/meta/recipes-kernel/dtc/python3-dtschema-wrapper/dt-validate b/meta/recipes-kernel/dtc/python3-dtschema-wrapper/dt-validate new file mode 100644 index 0000000000..8a4710a7ed --- /dev/null +++ b/meta/recipes-kernel/dtc/python3-dtschema-wrapper/dt-validate @@ -0,0 +1,20 @@ +#!/bin/sh +# dt-validate wrapper to allow kernel dt-validation to pass +# +# Copyright (C) 2021 Bruce Ashfield <bruce.ashfield@gmail.com> +# License: MIT (see COPYING.MIT at the root of the repository for terms) + +for arg; do + case "$arg" in + --version) + echo "v2021.10" + ;; + esac +done + +# TBD: left for future consideration +# exec dt-validate.real "$@" + +# we always succeed +exit 0 + diff --git a/meta/recipes-kernel/dtc/python3-dtschema-wrapper_2021.10.bb b/meta/recipes-kernel/dtc/python3-dtschema-wrapper_2021.10.bb new file mode 100644 index 0000000000..a766b00bef --- /dev/null +++ b/meta/recipes-kernel/dtc/python3-dtschema-wrapper_2021.10.bb @@ -0,0 +1,20 @@ +SUMMARY = "Wrapper for tooling for devicetree validation using YAML and jsonschema" +HOMEPAGE = "https://yoctoproject.org" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +SRC_URI = "file://dt-doc-validate \ + file://dt-mk-schema \ + file://dt-validate" + +S = "${WORKDIR}/sources" +UNPACKDIR = "${S}" + +do_install() { + install -d ${D}${bindir}/ + install -m 755 ${UNPACKDIR}/dt-doc-validate ${D}${bindir}/ + install -m 755 ${UNPACKDIR}/dt-mk-schema ${D}${bindir}/ + install -m 755 ${UNPACKDIR}/dt-validate ${D}${bindir}/ +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb b/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb index e967f485c1..8eff00821a 100644 --- a/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb +++ b/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb @@ -3,20 +3,21 @@ DESCRIPTION = "Powerful set of tools or managing Yocto Linux kernel sources \ and configuration data. You can use these tools to make a single configuration \ change, apply multiple patches, or work with your own kernel sources." HOMEPAGE = "https://www.yoctoproject.org/" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://tools/kgit;beginline=5;endline=9;md5=9c30e971d435e249624278c3e343e501" +LICENSE = "GPL-2.0-only & MIT" +LIC_FILES_CHKSUM = "\ + file://tools/kgit;beginline=5;endline=9;md5=9c30e971d435e249624278c3e343e501 \ + file://Kconfiglib/LICENSE.txt;md5=712177a72a3937909543eda3ad1bfb7c \ +" -DEPENDS = "git-native" +DEPENDS += "git-replacement-native" -SRCREV = "d220b063852245fdd16b9731a395ace525f932d6" -PR = "r12" -PV = "0.2+git${SRCPV}" +SRCREV = "7160ebe8b865dd6028aef278efa219433db93f7e" +PV = "0.3+git" inherit native -SRC_URI = "git://git.yoctoproject.org/yocto-kernel-tools.git" +SRC_URI = "git://git.yoctoproject.org/yocto-kernel-tools.git;branch=master;protocol=https" S = "${WORKDIR}/git" -UPSTREAM_CHECK_COMMITS = "1" do_configure() { : diff --git a/meta/recipes-kernel/kexec/kexec-tools/0001-arm64-kexec-disabled-check-if-kaslr-seed-dtb-propert.patch b/meta/recipes-kernel/kexec/kexec-tools/0001-arm64-kexec-disabled-check-if-kaslr-seed-dtb-propert.patch index c2301e711d..ddc1519126 100644 --- a/meta/recipes-kernel/kexec/kexec-tools/0001-arm64-kexec-disabled-check-if-kaslr-seed-dtb-propert.patch +++ b/meta/recipes-kernel/kexec/kexec-tools/0001-arm64-kexec-disabled-check-if-kaslr-seed-dtb-propert.patch @@ -33,20 +33,20 @@ Upstream-Status: Submitted [http://lists.infradead.org/pipermail/kexec/2020-Nove kexec/arch/arm64/kexec-arm64.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) -Index: kexec-tools-2.0.20/kexec/arch/arm64/kexec-arm64.c -=================================================================== ---- kexec-tools-2.0.20.orig/kexec/arch/arm64/kexec-arm64.c -+++ kexec-tools-2.0.20/kexec/arch/arm64/kexec-arm64.c -@@ -428,7 +428,7 @@ static int setup_2nd_dtb(struct dtb *dtb +diff --git a/kexec/arch/arm64/kexec-arm64.c b/kexec/arch/arm64/kexec-arm64.c +index ec6df4b..10238d9 100644 +--- a/kexec/arch/arm64/kexec-arm64.c ++++ b/kexec/arch/arm64/kexec-arm64.c +@@ -503,7 +503,7 @@ static int setup_2nd_dtb(struct dtb *dtb, char *command_line, int on_crash) int len, range_len; int nodeoffset; int new_size; -- int result, kaslr_seed; -+ int result; +- int i, result, kaslr_seed; ++ int i, result; result = fdt_check_header(dtb->buf); -@@ -499,18 +499,6 @@ static int setup_2nd_dtb(struct dtb *dtb +@@ -576,18 +576,6 @@ static int setup_2nd_dtb(struct dtb *dtb, char *command_line, int on_crash) return result; } } else { @@ -65,3 +65,6 @@ Index: kexec-tools-2.0.20/kexec/arch/arm64/kexec-arm64.c /* * Invoke the getrandom system call with * GRND_NONBLOCK, to make sure we +-- +2.25.1 + diff --git a/meta/recipes-kernel/kexec/kexec-tools/0001-kexec-arch-ppc-kexec-ppc.c-correct-double-definition.patch b/meta/recipes-kernel/kexec/kexec-tools/0001-kexec-arch-ppc-kexec-ppc.c-correct-double-definition.patch deleted file mode 100644 index 6aeebc3939..0000000000 --- a/meta/recipes-kernel/kexec/kexec-tools/0001-kexec-arch-ppc-kexec-ppc.c-correct-double-definition.patch +++ /dev/null @@ -1,23 +0,0 @@ -From ba2fb5baf6b0a8c882ac32301dd7a8d16de0dcf6 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex.kanavin@gmail.com> -Date: Sun, 27 Dec 2020 23:39:29 +0100 -Subject: [PATCH] kexec/arch/ppc/kexec-ppc.c: correct double definition error - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> ---- - kexec/arch/ppc/kexec-ppc.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/kexec/arch/ppc/kexec-ppc.c b/kexec/arch/ppc/kexec-ppc.c -index 03bec36..5b3e244 100644 ---- a/kexec/arch/ppc/kexec-ppc.c -+++ b/kexec/arch/ppc/kexec-ppc.c -@@ -35,7 +35,6 @@ unsigned long long initrd_base = 0, initrd_size = 0; - unsigned long long ramdisk_base = 0, ramdisk_size = 0; - unsigned int rtas_base, rtas_size; - int max_memory_ranges; --const char *ramdisk; - - /* - * Reads the #address-cells and #size-cells on this platform. diff --git a/meta/recipes-kernel/kexec/kexec-tools/0001-kexec.c-add-MFD_NOEXEC_SEAL-flag-explicitly.patch b/meta/recipes-kernel/kexec/kexec-tools/0001-kexec.c-add-MFD_NOEXEC_SEAL-flag-explicitly.patch new file mode 100644 index 0000000000..dc52981025 --- /dev/null +++ b/meta/recipes-kernel/kexec/kexec-tools/0001-kexec.c-add-MFD_NOEXEC_SEAL-flag-explicitly.patch @@ -0,0 +1,46 @@ +From a6a9e17dfeb5627f3e6f569b66f243f50f8a3645 Mon Sep 17 00:00:00 2001 +From: Chen Qi <Qi.Chen@windriver.com> +Date: Tue, 6 Aug 2024 21:42:43 -0700 +Subject: [PATCH] kexec.c: add MFD_NOEXEC_SEAL flag explicitly + +Add MFD_NOEXEC_SEAL to avoid kernel warning like below: + + kexec[970]: memfd_create() called without MFD_EXEC or MFD_NOEXEC_SEAL set + +For old kernels, there will be no MFD_NOEXEC_SEAL definition, so fallback +to define it to 0. + +Upstream-Status: Submitted [https://github.com/horms/kexec-tools/pull/7] + +Signed-off-by: Chen Qi <Qi.Chen@windriver.com> +--- + kexec/kexec.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/kexec/kexec.c b/kexec/kexec.c +index 7c614b0..41d285d 100644 +--- a/kexec/kexec.c ++++ b/kexec/kexec.c +@@ -60,6 +60,10 @@ + #define KEXEC_LOADED_PATH "/sys/kernel/kexec_loaded" + #define KEXEC_CRASH_LOADED_PATH "/sys/kernel/kexec_crash_loaded" + ++#ifndef MFD_NOEXEC_SEAL ++#define MFD_NOEXEC_SEAL 0 ++#endif ++ + unsigned long long mem_min = 0; + unsigned long long mem_max = ULONG_MAX; + unsigned long elfcorehdrsz = 0; +@@ -655,7 +659,7 @@ static int copybuf_memfd(const char *kernel_buf, size_t size) + { + int fd, count; + +- fd = memfd_create("kernel", MFD_ALLOW_SEALING); ++ fd = memfd_create("kernel", MFD_ALLOW_SEALING | MFD_NOEXEC_SEAL); + if (fd == -1) + return fd; + +-- +2.25.1 + diff --git a/meta/recipes-kernel/kexec/kexec-tools/0002-purgatory-Pass-r-directly-to-linker.patch b/meta/recipes-kernel/kexec/kexec-tools/0002-purgatory-Pass-r-directly-to-linker.patch index 363d5da4ae..a537ac2f0b 100644 --- a/meta/recipes-kernel/kexec/kexec-tools/0002-purgatory-Pass-r-directly-to-linker.patch +++ b/meta/recipes-kernel/kexec/kexec-tools/0002-purgatory-Pass-r-directly-to-linker.patch @@ -1,4 +1,4 @@ -From a04bcf8f683c1a5a7d015920124457ad56fb7cf0 Mon Sep 17 00:00:00 2001 +From e5bc9fbd6029057a4e3815a5326af5bd83a450e6 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Mon, 7 Sep 2015 07:59:45 +0000 Subject: [PATCH] purgatory: Pass -r directly to linker @@ -10,15 +10,16 @@ unfiltered Signed-off-by: Khem Raj <raj.khem@gmail.com> Upstream-Status: Pending + --- purgatory/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/purgatory/Makefile b/purgatory/Makefile -index 2dd6c47..416e6b9 100644 +index 4d2d071..6673423 100644 --- a/purgatory/Makefile +++ b/purgatory/Makefile -@@ -60,7 +60,7 @@ $(PURGATORY): CPPFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS) \ +@@ -61,7 +61,7 @@ $(PURGATORY): CPPFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS) \ -I$(shell $(CC) -print-file-name=include) $(PURGATORY): LDFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS)\ -Wl,--no-undefined -nostartfiles -nostdlib \ diff --git a/meta/recipes-kernel/kexec/kexec-tools/0003-kexec-ARM-Fix-add_buffer_phys_virt-align-issue.patch b/meta/recipes-kernel/kexec/kexec-tools/0003-kexec-ARM-Fix-add_buffer_phys_virt-align-issue.patch deleted file mode 100644 index 832fe67716..0000000000 --- a/meta/recipes-kernel/kexec/kexec-tools/0003-kexec-ARM-Fix-add_buffer_phys_virt-align-issue.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 55e583d20651e829afbbc8dba0f8ec3017cda2d5 Mon Sep 17 00:00:00 2001 -From: Haiqing Bai <Haiqing.Bai@windriver.com> -Date: Mon, 9 Jan 2017 15:26:29 +0800 -Subject: [PATCH] kexec: ARM: Fix add_buffer_phys_virt() align issue - -When "CONFIG_ARM_LPAE" is enabled,3 level page table -is used by MMU, the "SECTION_SIZE" is defined with -(1 << 21), but 'add_buffer_phys_virt()' hardcode this -to (1 << 20). - -Upstream-Status: Pending - -Suggested-By:fredrik.markstrom@gmail.com -Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com> ---- - kexec/arch/arm/crashdump-arm.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/kexec/arch/arm/crashdump-arm.c b/kexec/arch/arm/crashdump-arm.c -index daa4788..3f72b38 100644 ---- a/kexec/arch/arm/crashdump-arm.c -+++ b/kexec/arch/arm/crashdump-arm.c -@@ -240,6 +240,7 @@ int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline) - void *buf; - int err; - int last_ranges; -+ unsigned short align_bit_shift = 20; - - /* - * First fetch all the memory (RAM) ranges that we are going to pass to -@@ -281,6 +282,7 @@ int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline) - - /* for support LPAE enabled kernel*/ - elf_info.class = ELFCLASS64; -+ align_bit_shift = 21; - - err = crash_create_elf64_headers(info, &elf_info, - usablemem_rgns.ranges, -@@ -302,8 +304,9 @@ int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline) - * 1MB) so that available memory passed in kernel command line will be - * aligned to 1MB. This is because kernel create_mapping() wants memory - * regions to be aligned to SECTION_SIZE. -+ * The SECTION_SIZE of LPAE kernel is '1UL << 21' defined in pgtable-3level.h - */ -- elfcorehdr = add_buffer_phys_virt(info, buf, bufsz, bufsz, 1 << 20, -+ elfcorehdr = add_buffer_phys_virt(info, buf, bufsz, bufsz, 1 << align_bit_shift, - crash_kernel_mem.start, - crash_kernel_mem.end, -1, 0); - diff --git a/meta/recipes-kernel/kexec/kexec-tools/0005-Disable-PIE-during-link.patch b/meta/recipes-kernel/kexec/kexec-tools/0005-Disable-PIE-during-link.patch index 7a4b8548ca..6a21744ac1 100644 --- a/meta/recipes-kernel/kexec/kexec-tools/0005-Disable-PIE-during-link.patch +++ b/meta/recipes-kernel/kexec/kexec-tools/0005-Disable-PIE-during-link.patch @@ -1,4 +1,4 @@ -From c54488ad5fd657e0f154d76d7456d9080be24836 Mon Sep 17 00:00:00 2001 +From 494888bcc3bbf070dfce1b2686ee34c8619aa33d Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Sat, 10 Jun 2017 11:18:49 -0700 Subject: [PATCH] Disable PIE during link @@ -9,15 +9,16 @@ just need to match it with linker flags Upstream-Status: Pending Signed-off-by: Khem Raj <raj.khem@gmail.com> + --- purgatory/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/purgatory/Makefile b/purgatory/Makefile -index 416e6b9..f00edb4 100644 +index 6673423..a7405ea 100644 --- a/purgatory/Makefile +++ b/purgatory/Makefile -@@ -59,7 +59,7 @@ $(PURGATORY): CPPFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS) \ +@@ -60,7 +60,7 @@ $(PURGATORY): CPPFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS) \ -Iinclude \ -I$(shell $(CC) -print-file-name=include) $(PURGATORY): LDFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS)\ diff --git a/meta/recipes-kernel/kexec/kexec-tools/0007-kexec-un-break-the-build-on-32-bit-x86.patch b/meta/recipes-kernel/kexec/kexec-tools/0007-kexec-un-break-the-build-on-32-bit-x86.patch deleted file mode 100644 index 36b0845f4a..0000000000 --- a/meta/recipes-kernel/kexec/kexec-tools/0007-kexec-un-break-the-build-on-32-bit-x86.patch +++ /dev/null @@ -1,43 +0,0 @@ -From bb6a26371d15473b380459ac4404bf330634b585 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex.kanavin@gmail.com> -Date: Fri, 20 Dec 2019 17:21:08 +0100 -Subject: [PATCH] kexec: un-break the build on 32 bit x86 - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> - ---- - kexec/arch/i386/Makefile | 1 + - kexec/arch/i386/kexec-x86.h | 4 ++++ - 2 files changed, 5 insertions(+) - -diff --git a/kexec/arch/i386/Makefile b/kexec/arch/i386/Makefile -index f486103..5d560be 100644 ---- a/kexec/arch/i386/Makefile -+++ b/kexec/arch/i386/Makefile -@@ -12,6 +12,7 @@ i386_KEXEC_SRCS += kexec/arch/i386/kexec-beoboot-x86.c - i386_KEXEC_SRCS += kexec/arch/i386/kexec-nbi.c - i386_KEXEC_SRCS += kexec/arch/i386/x86-linux-setup.c - i386_KEXEC_SRCS += kexec/arch/i386/crashdump-x86.c -+i386_KEXEC_SRCS += kexec/arch/i386/kexec-mb2-x86.c - - dist += kexec/arch/i386/Makefile $(i386_KEXEC_SRCS) \ - kexec/arch/i386/crashdump-x86.h \ -diff --git a/kexec/arch/i386/kexec-x86.h b/kexec/arch/i386/kexec-x86.h -index 0f941df..c423171 100644 ---- a/kexec/arch/i386/kexec-x86.h -+++ b/kexec/arch/i386/kexec-x86.h -@@ -56,9 +56,13 @@ struct arch_options_t { - }; - - int multiboot_x86_probe(const char *buf, off_t len); -+int multiboot2_x86_probe(const char *buf, off_t len); - int multiboot_x86_load(int argc, char **argv, const char *buf, off_t len, - struct kexec_info *info); -+int multiboot2_x86_load(int argc, char **argv, const char *buf, off_t len, -+ struct kexec_info *info); - void multiboot_x86_usage(void); -+void multiboot2_x86_usage(void); - - int multiboot2_x86_load(int argc, char **argv, const char *buf, off_t len, - struct kexec_info *info); diff --git a/meta/recipes-kernel/kexec/kexec-tools_2.0.22.bb b/meta/recipes-kernel/kexec/kexec-tools_2.0.29.bb index dcc4402111..2c2901f19e 100644 --- a/meta/recipes-kernel/kexec/kexec-tools_2.0.22.bb +++ b/meta/recipes-kernel/kexec/kexec-tools_2.0.29.bb @@ -1,12 +1,11 @@ - SUMMARY = "Kexec fast reboot tools" DESCRIPTION = "Kexec is a fast reboot feature that lets you reboot to a new Linux kernel" -AUTHOR = "Eric Biederman" HOMEPAGE = "http://kernel.org/pub/linux/utils/kernel/kexec/" SECTION = "kernel/userland" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=ea5bed2f60d357618ca161ad539f7c0a \ - file://kexec/kexec.c;beginline=1;endline=20;md5=af10f6ae4a8715965e648aa687ad3e09" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://kexec/kexec.c;beginline=1;endline=20;md5=af10f6ae4a8715965e648aa687ad3e09 \ + " DEPENDS = "zlib xz" SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/kexec/kexec-tools-${PV}.tar.gz \ @@ -15,21 +14,19 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/kexec/kexec-tools-${PV}.tar.gz file://kdump.service \ file://0001-powerpc-change-the-memory-size-limit.patch \ file://0002-purgatory-Pass-r-directly-to-linker.patch \ - file://0003-kexec-ARM-Fix-add_buffer_phys_virt-align-issue.patch \ file://0005-Disable-PIE-during-link.patch \ - file://0007-kexec-un-break-the-build-on-32-bit-x86.patch \ file://0001-arm64-kexec-disabled-check-if-kaslr-seed-dtb-propert.patch \ - file://0001-kexec-arch-ppc-kexec-ppc.c-correct-double-definition.patch \ + file://0001-kexec.c-add-MFD_NOEXEC_SEAL-flag-explicitly.patch \ " -SRC_URI[sha256sum] = "40623d4321be2865ef9ea2cd6ec998d31dcf93d0f74353cbd3aa06d8821e3e41" +SRC_URI[sha256sum] = "0756dd54dab2f2a437e5d4df64b9760c3e6cf6a7d29fb296bdeeeb749f6ea28e" inherit autotools update-rc.d systemd export LDFLAGS = "-L${STAGING_LIBDIR}" EXTRA_OECONF = " --with-zlib=yes" -do_compile_prepend() { +do_compile:prepend() { # Remove the prepackaged config.h from the source tree as it overrides # the same file generated by configure and placed in the build tree rm -f ${S}/include/config.h @@ -44,45 +41,45 @@ do_compile_prepend() { done } -do_install_append () { +do_install:append () { install -d ${D}${sysconfdir}/sysconfig - install -m 0644 ${WORKDIR}/kdump.conf ${D}${sysconfdir}/sysconfig + install -m 0644 ${UNPACKDIR}/kdump.conf ${D}${sysconfdir}/sysconfig if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then - install -D -m 0755 ${WORKDIR}/kdump ${D}${sysconfdir}/init.d/kdump + install -D -m 0755 ${UNPACKDIR}/kdump ${D}${sysconfdir}/init.d/kdump fi if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -D -m 0755 ${WORKDIR}/kdump ${D}${libexecdir}/kdump-helper - install -D -m 0644 ${WORKDIR}/kdump.service ${D}${systemd_unitdir}/system/kdump.service - sed -i -e 's,@LIBEXECDIR@,${libexecdir},g' ${D}${systemd_unitdir}/system/kdump.service + install -D -m 0755 ${UNPACKDIR}/kdump ${D}${libexecdir}/kdump-helper + install -D -m 0644 ${UNPACKDIR}/kdump.service ${D}${systemd_system_unitdir}/kdump.service + sed -i -e 's,@LIBEXECDIR@,${libexecdir},g' ${D}${systemd_system_unitdir}/kdump.service fi } PACKAGES =+ "kexec kdump vmcore-dmesg" -ALLOW_EMPTY_${PN} = "1" -RRECOMMENDS_${PN} = "kexec kdump vmcore-dmesg" +ALLOW_EMPTY:${PN} = "1" +RRECOMMENDS:${PN} = "kexec kdump vmcore-dmesg" -FILES_kexec = "${sbindir}/kexec" -FILES_kdump = "${sbindir}/kdump \ +FILES:kexec = "${sbindir}/kexec" +FILES:kdump = "${sbindir}/kdump \ ${sysconfdir}/sysconfig/kdump.conf \ ${sysconfdir}/init.d/kdump \ ${libexecdir}/kdump-helper \ - ${systemd_unitdir}/system/kdump.service \ + ${systemd_system_unitdir}/kdump.service \ " -FILES_vmcore-dmesg = "${sbindir}/vmcore-dmesg" +FILES:vmcore-dmesg = "${sbindir}/vmcore-dmesg" INITSCRIPT_PACKAGES = "kdump" -INITSCRIPT_NAME_kdump = "kdump" -INITSCRIPT_PARAMS_kdump = "start 56 2 3 4 5 . stop 56 0 1 6 ." +INITSCRIPT_NAME:kdump = "kdump" +INITSCRIPT_PARAMS:kdump = "start 56 2 3 4 5 . stop 56 0 1 6 ." SYSTEMD_PACKAGES = "kdump" -SYSTEMD_SERVICE_kdump = "kdump.service" +SYSTEMD_SERVICE:kdump = "kdump.service" -SECURITY_PIE_CFLAGS_remove = "-fPIE -pie" +SECURITY_PIE_CFLAGS:remove = "-fPIE -pie" COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*|powerpc.*|mips.*)-(linux|freebsd.*)' -INSANE_SKIP_${PN} = "arch" +INSANE_SKIP:${PN} = "arch" diff --git a/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb b/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb index 9a172675af..29f34d7f36 100644 --- a/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb +++ b/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb @@ -1,7 +1,8 @@ SUMMARY = "Wrapper script for the Linux kernel module dependency indexer" LICENSE = "MIT" -S = "${WORKDIR}" +S = "${WORKDIR}/sources" +UNPACKDIR = "${S}" INHIBIT_DEFAULT_DEPS = "1" # The kernel and the staging dir for it is machine specific @@ -21,20 +22,29 @@ do_install() { #!/bin/sh # Expected to be called as: depmodwrapper -a KERNEL_VERSION if [ "\$1" != "-a" -o "\$2" != "-b" ]; then - echo "Usage: depmodwrapper -a -b rootfs KERNEL_VERSION" >&2 + echo "Usage: depmodwrapper -a -b rootfs KERNEL_VERSION [KERNEL_PACKAGE_NAME]" >&2 exit 1 fi +kernelpkgname="kernel" +# If no KERNEL_PACKAGE_NAME, assume "kernel". +[ -z "\$5" ] || kernelpkgname="\$5" + kernelabi="" -if [ -r "${PKGDATA_DIR}/kernel-depmod/kernel-abiversion" ]; then - kernelabi=\$(cat "${PKGDATA_DIR}/kernel-depmod/kernel-abiversion") +if [ -r "${PKGDATA_DIR}/\${kernelpkgname}-depmod/\${kernelpkgname}-abiversion" ]; then + kernelabi=\$(cat "${PKGDATA_DIR}/\${kernelpkgname}-depmod/\${kernelpkgname}-abiversion") +fi + +if [ ! -e "\$3${nonarch_base_libdir}/depmod.d/exclude.conf" ]; then + mkdir -p "\$3${nonarch_base_libdir}/depmod.d" + echo "exclude .debug" > "\$3${nonarch_base_libdir}/depmod.d/exclude.conf" fi -if [ ! -r ${PKGDATA_DIR}/kernel-depmod/System.map-\$4 ] || [ "\$kernelabi" != "\$4" ]; then - echo "Unable to read: ${PKGDATA_DIR}/kernel-depmod/System.map-\$4" >&2 - exec env depmod "\$1" "\$2" "\$3" "\$4" +if [ ! -r ${PKGDATA_DIR}/\${kernelpkgname}-depmod/System.map-\$4 ] || [ "\$kernelabi" != "\$4" ]; then + echo "Unable to read: ${PKGDATA_DIR}/\${kernelpkgname}-depmod/System.map-\$4" >&2 + exec env depmod -C "\$3${nonarch_base_libdir}/depmod.d" "\$1" "\$2" "\$3" "\$4" else - exec env depmod "\$1" "\$2" "\$3" -F "${PKGDATA_DIR}/kernel-depmod/System.map-\$4" "\$4" + exec env depmod -C "\$3${nonarch_base_libdir}/depmod.d" "\$1" "\$2" "\$3" -F "${PKGDATA_DIR}/\${kernelpkgname}-depmod/System.map-\$4" "\$4" fi EOF chmod +x ${D}${bindir_crossscripts}/depmodwrapper diff --git a/meta/recipes-kernel/kmod/kmod-native_git.bb b/meta/recipes-kernel/kmod/kmod-native_git.bb deleted file mode 100644 index f61134bbaf..0000000000 --- a/meta/recipes-kernel/kmod/kmod-native_git.bb +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright (C) 2012 Khem Raj <raj.khem@gmail.com> -# Released under the MIT license (see COPYING.MIT for the terms) - -require kmod.inc - -DEPENDS += "zlib-native" - -inherit native - -do_install_append (){ - for tool in depmod insmod lsmod modinfo modprobe rmmod - do - ln -s kmod ${D}${bindir}/$tool - done -} diff --git a/meta/recipes-kernel/kmod/kmod.inc b/meta/recipes-kernel/kmod/kmod.inc deleted file mode 100644 index e66684fda0..0000000000 --- a/meta/recipes-kernel/kmod/kmod.inc +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (C) 2012 Khem Raj <raj.khem@gmail.com> -# Released under the MIT license (see COPYING.MIT for the terms) - -SUMMARY = "Tools for managing Linux kernel modules" -DESCRIPTION = "kmod is a set of tools to handle common tasks with Linux kernel modules like \ - insert, remove, list, check properties, resolve dependencies and aliases." -HOMEPAGE = "http://kernel.org/pub/linux/utils/kernel/kmod/" -LICENSE = "GPL-2.0+ & LGPL-2.1+" -LICENSE_libkmod = "LGPL-2.1+" -SECTION = "base" - -LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ - file://libkmod/COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ - file://tools/COPYING;md5=751419260aa954499f7abaabaa882bbe \ - " -inherit autotools gtk-doc pkgconfig manpages - -SRCREV = "b6ecfc916a17eab8f93be5b09f4e4f845aabd3d1" -# Lookout for PV bump too when SRCREV is changed -PV = "29" - -SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git \ - file://depmod-search.conf \ - file://avoid_parallel_tests.patch \ - " - -S = "${WORKDIR}/git" - -EXTRA_OECONF +=" --enable-tools --with-zlib" - -PACKAGECONFIG[debug] = "--enable-debug,--disable-debug" -PACKAGECONFIG[logging] = " --enable-logging,--disable-logging" -PACKAGECONFIG[manpages] = "--enable-manpages, --disable-manpages, libxslt-native xmlto-native" -PACKAGECONFIG[xz] = "--with-xz,--without-xz,xz" -PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl" - -GTKDOC_DOCDIR = "${S}/libkmod/docs" diff --git a/meta/recipes-kernel/kmod/kmod/avoid_parallel_tests.patch b/meta/recipes-kernel/kmod/kmod/avoid_parallel_tests.patch index 04a8204815..6db4fa7e97 100644 --- a/meta/recipes-kernel/kmod/kmod/avoid_parallel_tests.patch +++ b/meta/recipes-kernel/kmod/kmod/avoid_parallel_tests.patch @@ -1,4 +1,4 @@ -From be6f82c54f694617c646ca1f8b5bcf93694e20ad Mon Sep 17 00:00:00 2001 +From 7a22abf188e5b688080bb1321a77588474114339 Mon Sep 17 00:00:00 2001 From: Tudor Florea <tudor.florea@enea.com> Date: Fri, 6 Sep 2013 21:11:57 +0000 Subject: [PATCH] kmod: avoid parallel-tests @@ -11,16 +11,15 @@ serial-tests is now required Signed-off-by: Tudor Florea <tudor.florea@enea.com> Upstream-Status: Inappropriate (disable feature incompatible with ptest) - --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index ee72283..60980c0 100644 +index 2f1c525..7056aae 100644 --- a/configure.ac +++ b/configure.ac -@@ -14,8 +14,8 @@ AC_USE_SYSTEM_EXTENSIONS +@@ -14,7 +14,7 @@ AC_USE_SYSTEM_EXTENSIONS AC_SYS_LARGEFILE AC_PREFIX_DEFAULT([/usr]) AM_MAINTAINER_MODE([enable]) @@ -28,5 +27,4 @@ index ee72283..60980c0 100644 +AM_INIT_AUTOMAKE([check-news foreign 1.11 silent-rules tar-pax no-dist-gzip dist-xz subdir-objects color-tests serial-tests]) AM_SILENT_RULES([yes]) LT_INIT([disable-static pic-only]) - - AS_IF([test "x$enable_static" = "xyes"], [AC_MSG_ERROR([--enable-static is not supported by kmod])]) + diff --git a/meta/recipes-kernel/kmod/kmod/gtkdocdir.patch b/meta/recipes-kernel/kmod/kmod/gtkdocdir.patch new file mode 100644 index 0000000000..91d622b8c7 --- /dev/null +++ b/meta/recipes-kernel/kmod/kmod/gtkdocdir.patch @@ -0,0 +1,30 @@ +From 90fb7bb85002cde39de3b3d2e2481933390832af Mon Sep 17 00:00:00 2001 +From: Ross Burton <ross.burton@arm.com> +Date: Fri, 8 Dec 2023 22:35:45 +0000 +Subject: [PATCH] configure: set docdir in GTK_DOC_CHECK + +By passing --docdir in the GTK_DOC_CHECK arguments (to match +autogen.sh) autoreconf will work out of the box. + +Without this autoreconf fails due to the documentation not being in +./docs, the default location. + +Upstream-Status: Submitted [https://lore.kernel.org/linux-modules/20231208224511.1363066-1-ross.burton@arm.com/T/#u] +Signed-off-by: Ross Burton <ross.burton@arm.com> +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 7056aae..d53a20c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -236,7 +236,7 @@ AS_IF([test "x$enable_coverage" = "xyes"], [ + AM_CONDITIONAL([ENABLE_COVERAGE], [test "x$enable_coverage" = "xyes"]) + + m4_ifdef([GTK_DOC_CHECK], [ +-GTK_DOC_CHECK([1.14],[--flavour no-tmpl-flat]) ++GTK_DOC_CHECK([1.14],[--flavour no-tmpl-flat --docdir libkmod/docs]) + ], [ + AM_CONDITIONAL([ENABLE_GTK_DOC], false)]) + diff --git a/meta/recipes-kernel/kmod/kmod/ptest.patch b/meta/recipes-kernel/kmod/kmod/ptest.patch deleted file mode 100644 index 831dbcb909..0000000000 --- a/meta/recipes-kernel/kmod/kmod/ptest.patch +++ /dev/null @@ -1,25 +0,0 @@ -Add 'install-ptest' rule. - -Signed-off-by: Tudor Florea <tudor.florea@enea.com> -Upstream-Status: Pending - -diff -ruN a/Makefile.am b/Makefile.am ---- a/Makefile.am 2013-07-12 17:11:05.278331557 +0200 -+++ b/Makefile.am 2013-07-12 17:14:27.033788016 +0200 -@@ -204,6 +204,16 @@ - - distclean-local: $(DISTCLEAN_LOCAL_HOOKS) - -+install-ptest: -+ @$(MKDIR_P) $(DESTDIR)/testsuite -+ @for file in $(TESTSUITE); do \ -+ install $$file $(DESTDIR)/testsuite; \ -+ done; -+ @sed -e 's/^Makefile/_Makefile/' < Makefile > $(DESTDIR)/Makefile -+ @$(MKDIR_P) $(DESTDIR)/tools -+ @cp $(noinst_SCRIPTS) $(noinst_PROGRAMS) $(DESTDIR)/tools -+ @cp -r testsuite/rootfs testsuite/.libs $(DESTDIR)/testsuite -+ - # ------------------------------------------------------------------------------ - # custom release helpers - # ------------------------------------------------------------------------------ diff --git a/meta/recipes-kernel/kmod/kmod_33.bb b/meta/recipes-kernel/kmod/kmod_33.bb new file mode 100644 index 0000000000..15f42766f3 --- /dev/null +++ b/meta/recipes-kernel/kmod/kmod_33.bb @@ -0,0 +1,89 @@ +# Copyright (C) 2012 Khem Raj <raj.khem@gmail.com> +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "Tools for managing Linux kernel modules" +DESCRIPTION = "kmod is a set of tools to handle common tasks with Linux kernel modules like \ + insert, remove, list, check properties, resolve dependencies and aliases." +HOMEPAGE = "http://kernel.org/pub/linux/utils/kernel/kmod/" +LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later" +LICENSE:libkmod = "LGPL-2.1-or-later" +SECTION = "base" + +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://libkmod/COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://tools/COPYING;md5=751419260aa954499f7abaabaa882bbe \ + " +inherit autotools bash-completion gtk-doc pkgconfig update-alternatives + +SRCREV = "e193aeb99a04fb4b63ce47eb2c7f119db59446a0" + +SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git;branch=master;protocol=https \ + file://depmod-search.conf \ + file://avoid_parallel_tests.patch \ + file://gtkdocdir.patch \ + " + +S = "${WORKDIR}/git" + +EXTRA_OECONF += "--enable-tools" + +PACKAGECONFIG ??= "zlib xz openssl" +PACKAGECONFIG[debug] = "--enable-debug,--disable-debug" +PACKAGECONFIG[logging] = " --enable-logging,--disable-logging" +PACKAGECONFIG[manpages] = "--enable-manpages, --disable-manpages, scdoc-native" +PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl" +PACKAGECONFIG[xz] = "--with-xz,--without-xz,xz" +PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib" +PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd" + +PROVIDES += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools" +RPROVIDES:${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools" +RCONFLICTS:${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools" +RREPLACES:${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools" + +# to force user to remove old module-init-tools and replace them with kmod variants +RCONFLICTS:libkmod2 += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools" + +# autotools set prefix to /usr, however we want them in /bin and /sbin +EXTRA_OECONF += "--bindir=${base_bindir} --sbindir=${base_sbindir}" + +do_install:append () { + install -dm755 ${D}${base_bindir} + install -dm755 ${D}${base_sbindir} + # add symlinks to kmod + [ -e ${D}${base_bindir}/lsmod ] || ln -rs ${D}${base_bindir}/kmod ${D}${base_bindir}/lsmod + for tool in insmod rmmod depmod modinfo modprobe; do + rm -f ${D}${base_bindir}/${tool} + ln -rs ${D}${base_bindir}/kmod ${D}${base_sbindir}/${tool} + done + # configuration directories + install -dm755 ${D}${nonarch_base_libdir}/depmod.d + install -dm755 ${D}${nonarch_base_libdir}/modprobe.d + install -dm755 ${D}${sysconfdir}/depmod.d + install -dm755 ${D}${sysconfdir}/modprobe.d + + # install depmod.d file for search/ dir + install -Dm644 "${UNPACKDIR}/depmod-search.conf" "${D}${nonarch_base_libdir}/depmod.d/search.conf" + + # Add .debug to the exclude path for depmod + echo "exclude .debug" > ${D}${nonarch_base_libdir}/depmod.d/exclude.conf +} + +ALTERNATIVE_PRIORITY = "70" + +ALTERNATIVE:kmod = "insmod modprobe rmmod modinfo bin-lsmod lsmod depmod" + +ALTERNATIVE_LINK_NAME[depmod] = "${base_sbindir}/depmod" +ALTERNATIVE_LINK_NAME[insmod] = "${base_sbindir}/insmod" +ALTERNATIVE_LINK_NAME[modprobe] = "${base_sbindir}/modprobe" +ALTERNATIVE_LINK_NAME[rmmod] = "${base_sbindir}/rmmod" +ALTERNATIVE_LINK_NAME[modinfo] = "${base_sbindir}/modinfo" +ALTERNATIVE_LINK_NAME[bin-lsmod] = "${base_bindir}/lsmod" +ALTERNATIVE_LINK_NAME[lsmod] = "${base_sbindir}/lsmod" +ALTERNATIVE_TARGET[lsmod] = "${base_bindir}/lsmod.${BPN}" + +PACKAGES =+ "libkmod" +FILES:libkmod = "${base_libdir}/libkmod*${SOLIBS} ${libdir}/libkmod*${SOLIBS}" +FILES:${PN} += "${nonarch_base_libdir}/depmod.d ${nonarch_base_libdir}/modprobe.d" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-kernel/kmod/kmod_git.bb b/meta/recipes-kernel/kmod/kmod_git.bb deleted file mode 100644 index 4f2b037f2f..0000000000 --- a/meta/recipes-kernel/kmod/kmod_git.bb +++ /dev/null @@ -1,62 +0,0 @@ -# Copyright (C) 2012 Khem Raj <raj.khem@gmail.com> -# Released under the MIT license (see COPYING.MIT for the terms) - -require kmod.inc - -DEPENDS += "zlib" -PROVIDES += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools" -RPROVIDES_${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools" -RCONFLICTS_${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools" -RREPLACES_${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools" - -# to force user to remove old module-init-tools and replace them with kmod variants -RCONFLICTS_libkmod2 += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools" - -# autotools set prefix to /usr, however we want them in /bin and /sbin -EXTRA_OECONF += " --bindir=${base_bindir} --sbindir=${base_sbindir}" - -do_install_append () { - install -dm755 ${D}${base_bindir} - install -dm755 ${D}${base_sbindir} - # add symlinks to kmod - lnr ${D}${base_bindir}/kmod ${D}${base_bindir}/lsmod - for tool in insmod rmmod depmod modinfo modprobe; do - lnr ${D}${base_bindir}/kmod ${D}${base_sbindir}/${tool} - done - # configuration directories - install -dm755 ${D}${base_libdir}/depmod.d - install -dm755 ${D}${base_libdir}/modprobe.d - install -dm755 ${D}${sysconfdir}/depmod.d - install -dm755 ${D}${sysconfdir}/modprobe.d - - # install depmod.d file for search/ dir - install -Dm644 "${WORKDIR}/depmod-search.conf" "${D}${base_libdir}/depmod.d/search.conf" -} - -do_compile_prepend() { - sed -i 's/ac_pwd=/#ac_pwd=/' config.status ; sed -i "/#ac_pwd=/a\ac_pwd='.'" config.status -} - -inherit update-alternatives bash-completion - -ALTERNATIVE_PRIORITY = "70" - -ALTERNATIVE_kmod = "insmod modprobe rmmod modinfo bin-lsmod lsmod depmod" - -ALTERNATIVE_LINK_NAME[insmod] = "${base_sbindir}/insmod" -ALTERNATIVE_LINK_NAME[modprobe] = "${base_sbindir}/modprobe" -ALTERNATIVE_LINK_NAME[rmmod] = "${base_sbindir}/rmmod" -ALTERNATIVE_LINK_NAME[modinfo] = "${base_sbindir}/modinfo" -ALTERNATIVE_LINK_NAME[bin-lsmod] = "${base_bindir}/lsmod" - -ALTERNATIVE_LINK_NAME[lsmod] = "${base_sbindir}/lsmod" -ALTERNATIVE_TARGET[lsmod] = "${base_bindir}/lsmod.${BPN}" - -ALTERNATIVE_LINK_NAME[depmod] = "${base_sbindir}/depmod" - -PACKAGES =+ "libkmod" - -FILES_libkmod = "${base_libdir}/libkmod*${SOLIBS} ${libdir}/libkmod*${SOLIBS}" -FILES_${PN} += "${base_libdir}/depmod.d ${base_libdir}/modprobe.d" - -BBCLASSEXTEND = "nativesdk" diff --git a/meta/recipes-kernel/libtraceevent/libtraceevent_1.8.3.bb b/meta/recipes-kernel/libtraceevent/libtraceevent_1.8.3.bb new file mode 100644 index 0000000000..68174305f2 --- /dev/null +++ b/meta/recipes-kernel/libtraceevent/libtraceevent_1.8.3.bb @@ -0,0 +1,23 @@ +# Copyright (C) 2022 Khem Raj <raj.khem@gmail.com> +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "API to access the kernel tracefs directory" +HOMEPAGE = "https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/" +LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later" +LIC_FILES_CHKSUM = "file://LICENSES/GPL-2.0;md5=e6a75371ba4d16749254a51215d13f97 \ + file://LICENSES/LGPL-2.1;md5=b370887980db5dd40659b50909238dbd" +SECTION = "libs" + +SRCREV = "645a883516e343ee970ebb80398cfd7b7dbd227e" +SRC_URI = "git://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git;branch=${BPN};protocol=https \ + " + +S = "${WORKDIR}/git" + +inherit meson pkgconfig + +EXTRA_OEMESON = "-Ddoc=false" + +PACKAGES += "${PN}-plugins" + +FILES:${PN}-plugins += "${libdir}/traceevent/plugins" diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_20210511.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_20210511.bb deleted file mode 100644 index 26091fba70..0000000000 --- a/meta/recipes-kernel/linux-firmware/linux-firmware_20210511.bb +++ /dev/null @@ -1,1052 +0,0 @@ -SUMMARY = "Firmware files for use with Linux kernel" -HOMEPAGE = "https://www.kernel.org/" -DESCRIPTION = "Linux firmware is a package distributed alongside the Linux kernel \ -that contains firmware binary blobs necessary for partial or full functionality \ -of certain hardware devices." -SECTION = "kernel" - -LICENSE = "\ - Firmware-Abilis \ - & Firmware-adsp_sst \ - & Firmware-agere \ - & Firmware-amdgpu \ - & Firmware-amd-ucode \ - & Firmware-amlogic_vdec \ - & Firmware-atheros_firmware \ - & Firmware-atmel \ - & Firmware-broadcom_bcm43xx \ - & Firmware-ca0132 \ - & Firmware-cavium \ - & Firmware-chelsio_firmware \ - & Firmware-cw1200 \ - & Firmware-cypress \ - & Firmware-dib0700 \ - & Firmware-e100 \ - & Firmware-ene_firmware \ - & Firmware-fw_sst_0f28 \ - & Firmware-go7007 \ - & Firmware-GPLv2 \ - & Firmware-hfi1_firmware \ - & Firmware-i2400m \ - & Firmware-i915 \ - & Firmware-ibt_firmware \ - & Firmware-ice \ - & Firmware-it913x \ - & Firmware-iwlwifi_firmware \ - & Firmware-IntcSST2 \ - & Firmware-kaweth \ - & Firmware-Lontium \ - & Firmware-Marvell \ - & Firmware-moxa \ - & Firmware-myri10ge_firmware \ - & Firmware-netronome \ - & Firmware-nvidia \ - & Firmware-OLPC \ - & Firmware-ath9k-htc \ - & Firmware-phanfw \ - & Firmware-qat \ - & Firmware-qcom \ - & Firmware-qla1280 \ - & Firmware-qla2xxx \ - & Firmware-qualcommAthos_ar3k \ - & Firmware-qualcommAthos_ath10k \ - & Firmware-r8a779x_usb3 \ - & Firmware-radeon \ - & Firmware-ralink_a_mediatek_company_firmware \ - & Firmware-ralink-firmware \ - & Firmware-rtlwifi_firmware \ - & Firmware-imx-sdma_firmware \ - & Firmware-siano \ - & Firmware-tda7706-firmware \ - & Firmware-ti-connectivity \ - & Firmware-ti-keystone \ - & Firmware-ueagle-atm4-firmware \ - & Firmware-via_vt6656 \ - & Firmware-wl1251 \ - & Firmware-xc4000 \ - & Firmware-xc5000 \ - & Firmware-xc5000c \ - & WHENCE \ -" - -LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \ - file://LICENCE.adsp_sst;md5=615c45b91a5a4a9fe046d6ab9a2df728 \ - file://LICENCE.agere;md5=af0133de6b4a9b2522defd5f188afd31 \ - file://LICENSE.amdgpu;md5=d357524f5099e2a3db3c1838921c593f \ - file://LICENSE.amd-ucode;md5=3c5399dc9148d7f0e1f41e34b69cf14f \ - file://LICENSE.amlogic_vdec;md5=dc44f59bf64a81643e500ad3f39a468a \ - file://LICENCE.atheros_firmware;md5=30a14c7823beedac9fa39c64fdd01a13 \ - file://LICENSE.atmel;md5=aa74ac0c60595dee4d4e239107ea77a3 \ - file://LICENCE.broadcom_bcm43xx;md5=3160c14df7228891b868060e1951dfbc \ - file://LICENCE.ca0132;md5=209b33e66ee5be0461f13d31da392198 \ - file://LICENCE.cadence;md5=009f46816f6956cfb75ede13d3e1cee0 \ - file://LICENCE.cavium;md5=c37aaffb1ebe5939b2580d073a95daea \ - file://LICENCE.chelsio_firmware;md5=819aa8c3fa453f1b258ed8d168a9d903 \ - file://LICENCE.cw1200;md5=f0f770864e7a8444a5c5aa9d12a3a7ed \ - file://LICENCE.cypress;md5=48cd9436c763bf873961f9ed7b5c147b \ - file://LICENSE.dib0700;md5=f7411825c8a555a1a3e5eab9ca773431 \ - file://LICENCE.e100;md5=ec0f84136766df159a3ae6d02acdf5a8 \ - file://LICENCE.ene_firmware;md5=ed67f0f62f8f798130c296720b7d3921 \ - file://LICENCE.fw_sst_0f28;md5=6353931c988ad52818ae733ac61cd293 \ - file://LICENCE.go7007;md5=c0bb9f6aaaba55b0529ee9b30aa66beb \ - file://GPL-2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://LICENSE.hfi1_firmware;md5=5e7b6e586ce7339d12689e49931ad444 \ - file://LICENCE.i2400m;md5=14b901969e23c41881327c0d9e4b7d36 \ - file://LICENSE.i915;md5=2b0b2e0d20984affd4490ba2cba02570 \ - file://LICENCE.ibt_firmware;md5=fdbee1ddfe0fb7ab0b2fcd6b454a366b \ - file://LICENSE.ice;md5=742ab4850f2670792940e6d15c974b2f \ - file://LICENCE.IntcSST2;md5=9e7d8bea77612d7cc7d9e9b54b623062 \ - file://LICENCE.it913x;md5=1fbf727bfb6a949810c4dbfa7e6ce4f8 \ - file://LICENCE.iwlwifi_firmware;md5=3fd842911ea93c29cd32679aa23e1c88 \ - file://LICENCE.kaweth;md5=b1d876e562f4b3b8d391ad8395dfe03f \ - file://LICENSE.Lontium;md5=4ec8dc582ff7295f39e2ca6a7b0be2b6 \ - file://LICENCE.Marvell;md5=28b6ed8bd04ba105af6e4dcd6e997772 \ - file://LICENCE.mediatek;md5=7c1976b63217d76ce47d0a11d8a79cf2 \ - file://LICENCE.moxa;md5=1086614767d8ccf744a923289d3d4261 \ - file://LICENCE.myri10ge_firmware;md5=42e32fb89f6b959ca222e25ac8df8fed \ - file://LICENCE.Netronome;md5=4add08f2577086d44447996503cddf5f \ - file://LICENCE.nvidia;md5=4428a922ed3ba2ceec95f076a488ce07 \ - file://LICENCE.NXP;md5=58bb8ba632cd729b9ba6183bc6aed36f \ - file://LICENCE.OLPC;md5=5b917f9d8c061991be4f6f5f108719cd \ - file://LICENCE.open-ath9k-htc-firmware;md5=1b33c9f4d17bc4d457bdb23727046837 \ - file://LICENCE.phanfw;md5=954dcec0e051f9409812b561ea743bfa \ - file://LICENCE.qat_firmware;md5=9e7d8bea77612d7cc7d9e9b54b623062 \ - file://LICENSE.qcom;md5=164e3362a538eb11d3ac51e8e134294b \ - file://LICENCE.qla1280;md5=d6895732e622d950609093223a2c4f5d \ - file://LICENCE.qla2xxx;md5=505855e921b75f1be4a437ad9b79dff0 \ - file://LICENSE.QualcommAtheros_ar3k;md5=b5fe244fb2b532311de1472a3bc06da5 \ - file://LICENSE.QualcommAtheros_ath10k;md5=cb42b686ee5f5cb890275e4321db60a8 \ - file://LICENCE.r8a779x_usb3;md5=4c1671656153025d7076105a5da7e498 \ - file://LICENSE.radeon;md5=68ec28bacb3613200bca44f404c69b16 \ - file://LICENCE.ralink_a_mediatek_company_firmware;md5=728f1a85fd53fd67fa8d7afb080bc435 \ - file://LICENCE.ralink-firmware.txt;md5=ab2c269277c45476fb449673911a2dfd \ - file://LICENCE.rtlwifi_firmware.txt;md5=00d06cfd3eddd5a2698948ead2ad54a5 \ - file://LICENSE.sdma_firmware;md5=51e8c19ecc2270f4b8ea30341ad63ce9 \ - file://LICENCE.siano;md5=4556c1bf830067f12ca151ad953ec2a5 \ - file://LICENCE.tda7706-firmware.txt;md5=835997cf5e3c131d0dddd695c7d9103e \ - file://LICENCE.ti-connectivity;md5=c5e02be633f1499c109d1652514d85ec \ - file://LICENCE.ti-keystone;md5=3a86335d32864b0bef996bee26cc0f2c \ - file://LICENCE.ueagle-atm4-firmware;md5=4ed7ea6b507ccc583b9d594417714118 \ - file://LICENCE.via_vt6656;md5=e4159694cba42d4377a912e78a6e850f \ - file://LICENCE.wl1251;md5=ad3f81922bb9e197014bb187289d3b5b \ - file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \ - file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \ - file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \ - file://WHENCE;md5=727d0d4e2d420f41d89d098f6322e779 \ - " - -# These are not common licenses, set NO_GENERIC_LICENSE for them -# so that the license files will be copied from fetched source -NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENCE.Abilis" -NO_GENERIC_LICENSE[Firmware-adsp_sst] = "LICENCE.adsp_sst" -NO_GENERIC_LICENSE[Firmware-agere] = "LICENCE.agere" -NO_GENERIC_LICENSE[Firmware-amdgpu] = "LICENSE.amdgpu" -NO_GENERIC_LICENSE[Firmware-amd-ucode] = "LICENSE.amd-ucode" -NO_GENERIC_LICENSE[Firmware-amlogic_vdec] = "LICENSE.amlogic_vdec" -NO_GENERIC_LICENSE[Firmware-atheros_firmware] = "LICENCE.atheros_firmware" -NO_GENERIC_LICENSE[Firmware-atmel] = "LICENSE.atmel" -NO_GENERIC_LICENSE[Firmware-broadcom_bcm43xx] = "LICENCE.broadcom_bcm43xx" -NO_GENERIC_LICENSE[Firmware-ca0132] = "LICENCE.ca0132" -NO_GENERIC_LICENSE[Firmware-cadence] = "LICENCE.cadence" -NO_GENERIC_LICENSE[Firmware-cavium] = "LICENCE.cavium" -NO_GENERIC_LICENSE[Firmware-chelsio_firmware] = "LICENCE.chelsio_firmware" -NO_GENERIC_LICENSE[Firmware-cw1200] = "LICENCE.cw1200" -NO_GENERIC_LICENSE[Firmware-cypress] = "LICENCE.cypress" -NO_GENERIC_LICENSE[Firmware-dib0700] = "LICENSE.dib0700" -NO_GENERIC_LICENSE[Firmware-e100] = "LICENCE.e100" -NO_GENERIC_LICENSE[Firmware-ene_firmware] = "LICENCE.ene_firmware" -NO_GENERIC_LICENSE[Firmware-fw_sst_0f28] = "LICENCE.fw_sst_0f28" -NO_GENERIC_LICENSE[Firmware-go7007] = "LICENCE.go7007" -NO_GENERIC_LICENSE[Firmware-GPLv2] = "GPL-2" -NO_GENERIC_LICENSE[Firmware-hfi1_firmware] = "LICENSE.hfi1_firmware" -NO_GENERIC_LICENSE[Firmware-i2400m] = "LICENCE.i2400m" -NO_GENERIC_LICENSE[Firmware-i915] = "LICENSE.i915" -NO_GENERIC_LICENSE[Firmware-ibt_firmware] = "LICENCE.ibt_firmware" -NO_GENERIC_LICENSE[Firmware-ice] = "LICENSE.ice" -NO_GENERIC_LICENSE[Firmware-IntcSST2] = "LICENCE.IntcSST2" -NO_GENERIC_LICENSE[Firmware-it913x] = "LICENCE.it913x" -NO_GENERIC_LICENSE[Firmware-iwlwifi_firmware] = "LICENCE.iwlwifi_firmware" -NO_GENERIC_LICENSE[Firmware-kaweth] = "LICENCE.kaweth" -NO_GENERIC_LICENSE[Firmware-Lontium] = "LICENSE.Lontium" -NO_GENERIC_LICENSE[Firmware-Marvell] = "LICENCE.Marvell" -NO_GENERIC_LICENSE[Firmware-mediatek] = "LICENCE.mediatek" -NO_GENERIC_LICENSE[Firmware-moxa] = "LICENCE.moxa" -NO_GENERIC_LICENSE[Firmware-myri10ge_firmware] = "LICENCE.myri10ge_firmware" -NO_GENERIC_LICENSE[Firmware-netronome] = "LICENCE.Netronome" -NO_GENERIC_LICENSE[Firmware-nvidia] = "LICENCE.nvidia" -NO_GENERIC_LICENSE[Firmware-OLPC] = "LICENCE.OLPC" -NO_GENERIC_LICENSE[Firmware-ath9k-htc] = "LICENCE.open-ath9k-htc-firmware" -NO_GENERIC_LICENSE[Firmware-phanfw] = "LICENCE.phanfw" -NO_GENERIC_LICENSE[Firmware-qat] = "LICENCE.qat_firmware" -NO_GENERIC_LICENSE[Firmware-qcom] = "LICENSE.qcom" -NO_GENERIC_LICENSE[Firmware-qla1280] = "LICENCE.qla1280" -NO_GENERIC_LICENSE[Firmware-qla2xxx] = "LICENCE.qla2xxx" -NO_GENERIC_LICENSE[Firmware-qualcommAthos_ar3k] = "LICENSE.QualcommAtheros_ar3k" -NO_GENERIC_LICENSE[Firmware-qualcommAthos_ath10k] = "LICENSE.QualcommAtheros_ath10k" -NO_GENERIC_LICENSE[Firmware-r8a779x_usb3] = "LICENCE.r8a779x_usb3" -NO_GENERIC_LICENSE[Firmware-radeon] = "LICENSE.radeon" -NO_GENERIC_LICENSE[Firmware-ralink_a_mediatek_company_firmware] = "LICENCE.ralink_a_mediatek_company_firmware" -NO_GENERIC_LICENSE[Firmware-ralink-firmware] = "LICENCE.ralink-firmware.txt" -NO_GENERIC_LICENSE[Firmware-rtlwifi_firmware] = "LICENCE.rtlwifi_firmware.txt" -NO_GENERIC_LICENSE[Firmware-siano] = "LICENCE.siano" -NO_GENERIC_LICENSE[Firmware-imx-sdma_firmware] = "LICENSE.sdma_firmware" -NO_GENERIC_LICENSE[Firmware-tda7706-firmware] = "LICENCE.tda7706-firmware.txt" -NO_GENERIC_LICENSE[Firmware-ti-connectivity] = "LICENCE.ti-connectivity" -NO_GENERIC_LICENSE[Firmware-ti-keystone] = "LICENCE.ti-keystone" -NO_GENERIC_LICENSE[Firmware-ueagle-atm4-firmware] = "LICENCE.ueagle-atm4-firmware" -NO_GENERIC_LICENSE[Firmware-via_vt6656] = "LICENCE.via_vt6656" -NO_GENERIC_LICENSE[Firmware-wl1251] = "LICENCE.wl1251" -NO_GENERIC_LICENSE[Firmware-xc4000] = "LICENCE.xc4000" -NO_GENERIC_LICENSE[Firmware-xc5000] = "LICENCE.xc5000" -NO_GENERIC_LICENSE[Firmware-xc5000c] = "LICENCE.xc5000c" -NO_GENERIC_LICENSE[WHENCE] = "WHENCE" - -PE = "1" - -SRC_URI = "${KERNELORG_MIRROR}/linux/kernel/firmware/${BPN}-${PV}.tar.xz" - -SRC_URI[sha256sum] = "2aa6ae8b9808408f9811ac38f00c188e53e984a2b3990254f6c9c02c1ab13417" - -inherit allarch - -CLEANBROKEN = "1" - -do_compile() { - : -} - -do_install() { - oe_runmake 'DESTDIR=${D}' 'FIRMWAREDIR=${nonarch_base_libdir}/firmware' install - cp GPL-2 LICEN[CS]E.* WHENCE ${D}${nonarch_base_libdir}/firmware/ -} - - -PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \ - ${PN}-mt7601u-license ${PN}-mt7601u \ - ${PN}-radeon-license ${PN}-radeon \ - ${PN}-marvell-license ${PN}-pcie8897 ${PN}-pcie8997 \ - ${PN}-sd8686 ${PN}-sd8688 ${PN}-sd8787 ${PN}-sd8797 ${PN}-sd8801 \ - ${PN}-sd8887 ${PN}-sd8897 ${PN}-sd8997 ${PN}-usb8997 \ - ${PN}-ti-connectivity-license ${PN}-wlcommon ${PN}-wl12xx ${PN}-wl18xx \ - ${PN}-vt6656-license ${PN}-vt6656 \ - ${PN}-rs9113 ${PN}-rs9116 \ - ${PN}-rtl-license ${PN}-rtl8188 ${PN}-rtl8192cu ${PN}-rtl8192ce ${PN}-rtl8192su ${PN}-rtl8723 ${PN}-rtl8821 \ - ${PN}-rtl8168 \ - ${PN}-cypress-license \ - ${PN}-broadcom-license \ - ${PN}-bcm-0bb4-0306 \ - ${PN}-bcm43143 \ - ${PN}-bcm43236b \ - ${PN}-bcm43241b0 \ - ${PN}-bcm43241b4 \ - ${PN}-bcm43241b5 \ - ${PN}-bcm43242a \ - ${PN}-bcm4329 \ - ${PN}-bcm4329-fullmac \ - ${PN}-bcm4330 \ - ${PN}-bcm4334 \ - ${PN}-bcm43340 \ - ${PN}-bcm4335 \ - ${PN}-bcm43362 \ - ${PN}-bcm4339 \ - ${PN}-bcm43430 \ - ${PN}-bcm43430a0 \ - ${PN}-bcm43455 \ - ${PN}-bcm4350 \ - ${PN}-bcm4350c2 \ - ${PN}-bcm4354 \ - ${PN}-bcm4356 \ - ${PN}-bcm4356-pcie \ - ${PN}-bcm43569 \ - ${PN}-bcm43570 \ - ${PN}-bcm4358 \ - ${PN}-bcm43602 \ - ${PN}-bcm4366b \ - ${PN}-bcm4366c \ - ${PN}-bcm4371 \ - ${PN}-bcm4373 \ - ${PN}-bcm43xx \ - ${PN}-bcm43xx-hdr \ - ${PN}-atheros-license ${PN}-ar9170 ${PN}-ath6k ${PN}-ath9k \ - ${PN}-gplv2-license ${PN}-carl9170 \ - ${PN}-ar3k-license ${PN}-ar3k ${PN}-ath10k-license ${PN}-ath10k ${PN}-ath11k ${PN}-qca \ - \ - ${PN}-imx-sdma-license ${PN}-imx-sdma-imx6q ${PN}-imx-sdma-imx7d \ - \ - ${PN}-iwlwifi-license ${PN}-iwlwifi \ - ${PN}-iwlwifi-135-6 \ - ${PN}-iwlwifi-3160-7 ${PN}-iwlwifi-3160-8 ${PN}-iwlwifi-3160-9 \ - ${PN}-iwlwifi-3160-10 ${PN}-iwlwifi-3160-12 ${PN}-iwlwifi-3160-13 \ - ${PN}-iwlwifi-3160-16 ${PN}-iwlwifi-3160-17 \ - ${PN}-iwlwifi-6000-4 ${PN}-iwlwifi-6000g2a-5 ${PN}-iwlwifi-6000g2a-6 \ - ${PN}-iwlwifi-6000g2b-5 ${PN}-iwlwifi-6000g2b-6 \ - ${PN}-iwlwifi-6050-4 ${PN}-iwlwifi-6050-5 \ - ${PN}-iwlwifi-7260 \ - ${PN}-iwlwifi-7265 \ - ${PN}-iwlwifi-7265d ${PN}-iwlwifi-8000c ${PN}-iwlwifi-8265 \ - ${PN}-iwlwifi-9000 \ - ${PN}-iwlwifi-misc \ - ${PN}-ibt-license ${PN}-ibt \ - ${PN}-ibt-11-5 ${PN}-ibt-12-16 ${PN}-ibt-hw-37-7 ${PN}-ibt-hw-37-8 \ - ${PN}-ibt-17 \ - ${PN}-ibt-20 \ - ${PN}-ibt-misc \ - ${PN}-i915-license ${PN}-i915 \ - ${PN}-ice-license ${PN}-ice \ - ${PN}-adsp-sst-license ${PN}-adsp-sst \ - ${PN}-bnx2-mips \ - ${PN}-liquidio \ - ${PN}-nvidia-license \ - ${PN}-nvidia-tegra-k1 ${PN}-nvidia-tegra \ - ${PN}-nvidia-gpu \ - ${PN}-netronome-license ${PN}-netronome \ - ${PN}-qat ${PN}-qat-license \ - ${PN}-qcom-license \ - ${PN}-qcom-venus-1.8 ${PN}-qcom-venus-4.2 ${PN}-qcom-venus-5.2 ${PN}-qcom-venus-5.4 \ - ${PN}-qcom-adreno-a3xx ${PN}-qcom-adreno-a530 ${PN}-qcom-adreno-a630 \ - ${PN}-qcom-sdm845-audio ${PN}-qcom-sdm845-compute ${PN}-qcom-sdm845-modem \ - ${PN}-amlogic-vdec-license ${PN}-amlogic-vdec \ - ${PN}-lt9611uxc ${PN}-lontium-license \ - ${PN}-whence-license \ - ${PN}-license \ - " - -# For atheros -LICENSE_${PN}-ar9170 = "Firmware-atheros_firmware" -LICENSE_${PN}-ath6k = "Firmware-atheros_firmware" -LICENSE_${PN}-ath9k = "Firmware-atheros_firmware" -LICENSE_${PN}-atheros-license = "Firmware-atheros_firmware" - -FILES_${PN}-atheros-license = "${nonarch_base_libdir}/firmware/LICENCE.atheros_firmware" -FILES_${PN}-ar9170 = " \ - ${nonarch_base_libdir}/firmware/ar9170*.fw \ -" -FILES_${PN}-ath6k = " \ - ${nonarch_base_libdir}/firmware/ath6k \ -" -FILES_${PN}-ath9k = " \ - ${nonarch_base_libdir}/firmware/ar9271.fw \ - ${nonarch_base_libdir}/firmware/ar7010*.fw \ - ${nonarch_base_libdir}/firmware/htc_9271.fw \ - ${nonarch_base_libdir}/firmware/htc_7010.fw \ - ${nonarch_base_libdir}/firmware/ath9k_htc/htc_7010-1.4.0.fw \ - ${nonarch_base_libdir}/firmware/ath9k_htc/htc_9271-1.4.0.fw \ -" - -RDEPENDS_${PN}-ar9170 += "${PN}-atheros-license" -RDEPENDS_${PN}-ath6k += "${PN}-atheros-license" -RDEPENDS_${PN}-ath9k += "${PN}-atheros-license" - -# For carl9170 -LICENSE_${PN}-carl9170 = "Firmware-GPLv2" -LICENSE_${PN}-gplv2-license = "Firmware-GPLv2" - -FILES_${PN}-gplv2-license = "${nonarch_base_libdir}/firmware/GPL-2" -FILES_${PN}-carl9170 = " \ - ${nonarch_base_libdir}/firmware/carl9170*.fw \ -" - -RDEPENDS_${PN}-carl9170 += "${PN}-gplv2-license" - -# For QualCommAthos -LICENSE_${PN}-ar3k = "Firmware-qualcommAthos_ar3k" -LICENSE_${PN}-ar3k-license = "Firmware-qualcommAthos_ar3k" -LICENSE_${PN}-ath10k = "Firmware-qualcommAthos_ath10k" -LICENSE_${PN}-ath10k-license = "Firmware-qualcommAthos_ath10k" -LICENSE_${PN}-qca = "Firmware-qualcommAthos_ath10k" - -FILES_${PN}-ar3k-license = "${nonarch_base_libdir}/firmware/LICENSE.QualcommAtheros_ar3k" -FILES_${PN}-ar3k = " \ - ${nonarch_base_libdir}/firmware/ar3k \ -" - -FILES_${PN}-ath10k-license = "${nonarch_base_libdir}/firmware/LICENSE.QualcommAtheros_ath10k" -FILES_${PN}-ath10k = " \ - ${nonarch_base_libdir}/firmware/ath10k \ -" - -FILES_${PN}-ath11k = " \ - ${nonarch_base_libdir}/firmware/ath11k \ -" - -FILES_${PN}-qca = " \ - ${nonarch_base_libdir}/firmware/qca \ -" - -RDEPENDS_${PN}-ar3k += "${PN}-ar3k-license" -RDEPENDS_${PN}-ath10k += "${PN}-ath10k-license" -RDEPENDS_${PN}-ath11k += "${PN}-ath10k-license" -RDEPENDS_${PN}-qca += "${PN}-ath10k-license" - -# For ralink -LICENSE_${PN}-ralink = "Firmware-ralink-firmware" -LICENSE_${PN}-ralink-license = "Firmware-ralink-firmware" - -FILES_${PN}-ralink-license = "${nonarch_base_libdir}/firmware/LICENCE.ralink-firmware.txt" -FILES_${PN}-ralink = " \ - ${nonarch_base_libdir}/firmware/rt*.bin \ -" - -RDEPENDS_${PN}-ralink += "${PN}-ralink-license" - -# For mediatek MT7601U -LICENSE_${PN}-mt7601u = "Firmware-ralink_a_mediatek_company_firmware" -LICENSE_${PN}-mt7601u-license = "Firmware-ralink_a_mediatek_company_firmware" - -FILES_${PN}-mt7601u-license = "${nonarch_base_libdir}/firmware/LICENCE.ralink_a_mediatek_company_firmware" -FILES_${PN}-mt7601u = " \ - ${nonarch_base_libdir}/firmware/mt7601u.bin \ -" - -RDEPENDS_${PN}-mt7601u += "${PN}-mt7601u-license" - -# For radeon -LICENSE_${PN}-radeon = "Firmware-radeon" -LICENSE_${PN}-radeon-license = "Firmware-radeon" - -FILES_${PN}-radeon-license = "${nonarch_base_libdir}/firmware/LICENSE.radeon" -FILES_${PN}-radeon = " \ - ${nonarch_base_libdir}/firmware/radeon \ -" - -RDEPENDS_${PN}-radeon += "${PN}-radeon-license" - -# For lontium -LICENSE_${PN}-lt9611uxc = "Firmware-Lontium" - -FILES_${PN}-lontium-license = "${nonarch_base_libdir}/firmware/LICENSE.Lontium" -FILES_${PN}-lt9611uxc = "${nonarch_base_libdir}/firmware/lt9611uxc_fw.bin" - -# For marvell -LICENSE_${PN}-pcie8897 = "Firmware-Marvell" -LICENSE_${PN}-pcie8997 = "Firmware-Marvell" -LICENSE_${PN}-sd8686 = "Firmware-Marvell" -LICENSE_${PN}-sd8688 = "Firmware-Marvell" -LICENSE_${PN}-sd8787 = "Firmware-Marvell" -LICENSE_${PN}-sd8797 = "Firmware-Marvell" -LICENSE_${PN}-sd8801 = "Firmware-Marvell" -LICENSE_${PN}-sd8887 = "Firmware-Marvell" -LICENSE_${PN}-sd8897 = "Firmware-Marvell" -LICENSE_${PN}-sd8997 = "Firmware-Marvell" -LICENSE_${PN}-usb8997 = "Firmware-Marvell" -LICENSE_${PN}-marvell-license = "Firmware-Marvell" - -FILES_${PN}-marvell-license = "${nonarch_base_libdir}/firmware/LICENCE.Marvell" -FILES_${PN}-pcie8897 = " \ - ${nonarch_base_libdir}/firmware/mrvl/pcie8897_uapsta.bin \ -" -FILES_${PN}-pcie8997 = " \ - ${nonarch_base_libdir}/firmware/mrvl/pcie8997_wlan_v4.bin \ - ${nonarch_base_libdir}/firmware/mrvl/pcieuart8997_combo_v4.bin \ - ${nonarch_base_libdir}/firmware/mrvl/pcieusb8997_combo_v4.bin \ -" -FILES_${PN}-sd8686 = " \ - ${nonarch_base_libdir}/firmware/libertas/sd8686_v9* \ - ${nonarch_base_libdir}/firmware/sd8686* \ -" -FILES_${PN}-sd8688 = " \ - ${nonarch_base_libdir}/firmware/libertas/sd8688* \ - ${nonarch_base_libdir}/firmware/mrvl/sd8688* \ -" -FILES_${PN}-sd8787 = " \ - ${nonarch_base_libdir}/firmware/mrvl/sd8787_uapsta.bin \ -" -FILES_${PN}-sd8797 = " \ - ${nonarch_base_libdir}/firmware/mrvl/sd8797_uapsta.bin \ -" -FILES_${PN}-sd8801 = " \ - ${nonarch_base_libdir}/firmware/mrvl/sd8801_uapsta.bin \ -" -FILES_${PN}-sd8887 = " \ - ${nonarch_base_libdir}/firmware/mrvl/sd8887_uapsta.bin \ -" -FILES_${PN}-sd8897 = " \ - ${nonarch_base_libdir}/firmware/mrvl/sd8897_uapsta.bin \ -" -do_install_append() { - # The kernel 5.6.x driver still uses the old name, provide a symlink for - # older kernels - ln -fs sdsd8997_combo_v4.bin ${D}${nonarch_base_libdir}/firmware/mrvl/sd8997_uapsta.bin -} -FILES_${PN}-sd8997 = " \ - ${nonarch_base_libdir}/firmware/mrvl/sd8997_uapsta.bin \ - ${nonarch_base_libdir}/firmware/mrvl/sdsd8997_combo_v4.bin \ -" -FILES_${PN}-usb8997 = " \ - ${nonarch_base_libdir}/firmware/mrvl/usbusb8997_combo_v4.bin \ -" - -RDEPENDS_${PN}-sd8686 += "${PN}-marvell-license" -RDEPENDS_${PN}-sd8688 += "${PN}-marvell-license" -RDEPENDS_${PN}-sd8787 += "${PN}-marvell-license" -RDEPENDS_${PN}-sd8797 += "${PN}-marvell-license" -RDEPENDS_${PN}-sd8801 += "${PN}-marvell-license" -RDEPENDS_${PN}-sd8887 += "${PN}-marvell-license" -RDEPENDS_${PN}-sd8897 += "${PN}-marvell-license" -RDEPENDS_${PN}-sd8997 += "${PN}-marvell-license" -RDEPENDS_${PN}-usb8997 += "${PN}-marvell-license" - -# For netronome -LICENSE_${PN}-netronome = "Firmware-netronome" - -FILES_${PN}-netronome-license = " \ - ${nonarch_base_libdir}/firmware/LICENCE.Netronome \ -" -FILES_${PN}-netronome = " \ - ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0081*.nffw \ - ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0096*.nffw \ - ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0097*.nffw \ - ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0099*.nffw \ - ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0058-0011_2x40.nffw \ - ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0058-0012_2x40.nffw \ - ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0078-0011_1x100.nffw \ - ${nonarch_base_libdir}/firmware/netronome/bpf \ - ${nonarch_base_libdir}/firmware/netronome/flower \ - ${nonarch_base_libdir}/firmware/netronome/nic \ - ${nonarch_base_libdir}/firmware/netronome/nic-sriov \ -" - -RDEPENDS_${PN}-netronome += "${PN}-netronome-license" - -# For Nvidia -LICENSE_${PN}-nvidia-gpu = "Firmware-nvidia" -LICENSE_${PN}-nvidia-tegra = "Firmware-nvidia" -LICENSE_${PN}-nvidia-tegra-k1 = "Firmware-nvidia" -LICENSE_${PN}-nvidia-license = "Firmware-nvidia" - -FILES_${PN}-nvidia-gpu = "${nonarch_base_libdir}/firmware/nvidia" -FILES_${PN}-nvidia-tegra = " \ - ${nonarch_base_libdir}/firmware/nvidia/tegra* \ - ${nonarch_base_libdir}/firmware/nvidia/gm20b \ - ${nonarch_base_libdir}/firmware/nvidia/gp10b \ -" -FILES_${PN}-nvidia-tegra-k1 = " \ - ${nonarch_base_libdir}/firmware/nvidia/tegra124 \ - ${nonarch_base_libdir}/firmware/nvidia/gk20a \ -" -FILES_${PN}-nvidia-license = "${nonarch_base_libdir}/firmware/LICENCE.nvidia" - -RDEPENDS_${PN}-nvidia-gpu += "${PN}-nvidia-license" -RDEPENDS_${PN}-nvidia-tegra += "${PN}-nvidia-license" -RDEPENDS_${PN}-nvidia-tegra-k1 += "${PN}-nvidia-license" - -# For RSI RS911x WiFi -LICENSE_${PN}-rs9113 = "WHENCE" -LICENSE_${PN}-rs9116 = "WHENCE" - -FILES_${PN}-rs9113 = " ${nonarch_base_libdir}/firmware/rsi/rs9113*.rps " -FILES_${PN}-rs9116 = " ${nonarch_base_libdir}/firmware/rsi/rs9116*.rps " - -RDEPENDS_${PN}-rs9113 += "${PN}-whence-license" -RDEPENDS_${PN}-rs9116 += "${PN}-whence-license" - -# For rtl -LICENSE_${PN}-rtl8188 = "Firmware-rtlwifi_firmware" -LICENSE_${PN}-rtl8192cu = "Firmware-rtlwifi_firmware" -LICENSE_${PN}-rtl8192ce = "Firmware-rtlwifi_firmware" -LICENSE_${PN}-rtl8192su = "Firmware-rtlwifi_firmware" -LICENSE_${PN}-rtl8723 = "Firmware-rtlwifi_firmware" -LICENSE_${PN}-rtl8821 = "Firmware-rtlwifi_firmware" -LICENSE_${PN}-rtl-license = "Firmware-rtlwifi_firmware" -LICENSE_${PN}-rtl8168 = "WHENCE" - -FILES_${PN}-rtl-license = " \ - ${nonarch_base_libdir}/firmware/LICENCE.rtlwifi_firmware.txt \ -" -FILES_${PN}-rtl8188 = " \ - ${nonarch_base_libdir}/firmware/rtlwifi/rtl8188*.bin \ -" -FILES_${PN}-rtl8192cu = " \ - ${nonarch_base_libdir}/firmware/rtlwifi/rtl8192cufw*.bin \ -" -FILES_${PN}-rtl8192ce = " \ - ${nonarch_base_libdir}/firmware/rtlwifi/rtl8192cfw*.bin \ -" -FILES_${PN}-rtl8192su = " \ - ${nonarch_base_libdir}/firmware/rtlwifi/rtl8712u.bin \ -" -FILES_${PN}-rtl8723 = " \ - ${nonarch_base_libdir}/firmware/rtlwifi/rtl8723*.bin \ -" -FILES_${PN}-rtl8821 = " \ - ${nonarch_base_libdir}/firmware/rtlwifi/rtl8821*.bin \ -" -FILES_${PN}-rtl8168 = " \ - ${nonarch_base_libdir}/firmware/rtl_nic/rtl8168*.fw \ -" - -RDEPENDS_${PN}-rtl8188 += "${PN}-rtl-license" -RDEPENDS_${PN}-rtl8192ce += "${PN}-rtl-license" -RDEPENDS_${PN}-rtl8192cu += "${PN}-rtl-license" -RDEPENDS_${PN}-rtl8192su = "${PN}-rtl-license" -RDEPENDS_${PN}-rtl8723 += "${PN}-rtl-license" -RDEPENDS_${PN}-rtl8821 += "${PN}-rtl-license" -RDEPENDS_${PN}-rtl8168 += "${PN}-whence-license" - -# For ti-connectivity -LICENSE_${PN}-wlcommon = "Firmware-ti-connectivity" -LICENSE_${PN}-wl12xx = "Firmware-ti-connectivity" -LICENSE_${PN}-wl18xx = "Firmware-ti-connectivity" -LICENSE_${PN}-ti-connectivity-license = "Firmware-ti-connectivity" - -FILES_${PN}-ti-connectivity-license = "${nonarch_base_libdir}/firmware/LICENCE.ti-connectivity" -# wl18xx optionally needs wl1271-nvs.bin (which itself is a symlink to -# wl127x-nvs.bin) - see linux/drivers/net/wireless/ti/wlcore/sdio.c -# and drivers/net/wireless/ti/wlcore/spi.c. -# While they're optional and actually only used to override the MAC -# address on wl18xx, driver loading will delay (by udev timout - 60s) -# if not there. So let's make it available always. Because it's a -# symlink, both need to go to wlcommon. -FILES_${PN}-wlcommon = " \ - ${nonarch_base_libdir}/firmware/ti-connectivity/TI* \ - ${nonarch_base_libdir}/firmware/ti-connectivity/wl127x-nvs.bin \ - ${nonarch_base_libdir}/firmware/ti-connectivity/wl1271-nvs.bin \ -" -FILES_${PN}-wl12xx = " \ - ${nonarch_base_libdir}/firmware/ti-connectivity/wl12* \ -" -FILES_${PN}-wl18xx = " \ - ${nonarch_base_libdir}/firmware/ti-connectivity/wl18* \ -" - -RDEPENDS_${PN}-wl12xx = "${PN}-ti-connectivity-license ${PN}-wlcommon" -RDEPENDS_${PN}-wl18xx = "${PN}-ti-connectivity-license ${PN}-wlcommon" - -# For vt6656 -LICENSE_${PN}-vt6656 = "Firmware-via_vt6656" -LICENSE_${PN}-vt6656-license = "Firmware-via_vt6656" - -FILES_${PN}-vt6656-license = "${nonarch_base_libdir}/firmware/LICENCE.via_vt6656" -FILES_${PN}-vt6656 = " \ - ${nonarch_base_libdir}/firmware/vntwusb.fw \ -" - -RDEPENDS_${PN}-vt6656 = "${PN}-vt6656-license" - -# For broadcom - -# for i in `grep brcm WHENCE | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo -e " \${PN}-$pkg \\"; done | sort -u - -LICENSE_${PN}-broadcom-license = "Firmware-broadcom_bcm43xx" -FILES_${PN}-broadcom-license = "${nonarch_base_libdir}/firmware/LICENCE.broadcom_bcm43xx" - -# for i in `grep brcm WHENCE | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo "$i - $pkg"; echo -e "FILES_\${PN}-$pkg = \"\${nonarch_base_libdir}/firmware/brcm/$i\""; done | grep ^FILES - -FILES_${PN}-bcm43xx = "${nonarch_base_libdir}/firmware/brcm/bcm43xx-0.fw" -FILES_${PN}-bcm43xx-hdr = "${nonarch_base_libdir}/firmware/brcm/bcm43xx_hdr-0.fw" -FILES_${PN}-bcm4329-fullmac = "${nonarch_base_libdir}/firmware/brcm/bcm4329-fullmac-4.bin" -FILES_${PN}-bcm43236b = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43236b.bin" -FILES_${PN}-bcm4329 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4329-sdio.bin" -FILES_${PN}-bcm4330 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4330-sdio.*" -FILES_${PN}-bcm4334 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4334-sdio.bin" -FILES_${PN}-bcm4335 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4335-sdio.bin" -FILES_${PN}-bcm4339 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4339-sdio.bin \ - ${nonarch_base_libdir}/firmware/cypress/cyfmac4339-sdio.bin \ -" -FILES_${PN}-bcm43241b0 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b0-sdio.bin" -FILES_${PN}-bcm43241b4 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b4-sdio.bin" -FILES_${PN}-bcm43241b5 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b5-sdio.bin" -FILES_${PN}-bcm43242a = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43242a.bin" -FILES_${PN}-bcm43143 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43143.bin \ - ${nonarch_base_libdir}/firmware/brcm/brcmfmac43143-sdio.bin \ -" -FILES_${PN}-bcm43430a0 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430a0-sdio.*" -FILES_${PN}-bcm43455 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.* \ - ${nonarch_base_libdir}/firmware/cypress/cyfmac43455-sdio.* \ -" -FILES_${PN}-bcm4350c2 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4350c2-pcie.bin" -FILES_${PN}-bcm4350 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4350-pcie.bin" -FILES_${PN}-bcm4356 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-sdio.* \ - ${nonarch_base_libdir}/firmware/cypress/cyfmac4356-sdio.* \ -" -FILES_${PN}-bcm43569 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43569.bin" -FILES_${PN}-bcm43570 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43570-pcie.bin \ - ${nonarch_base_libdir}/firmware/cypress/cyfmac43570-pcie.bin \ -" -FILES_${PN}-bcm4358 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4358-pcie.bin" -FILES_${PN}-bcm43602 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43602-pcie.bin \ - ${nonarch_base_libdir}/firmware/brcm/brcmfmac43602-pcie.ap.bin \ -" -FILES_${PN}-bcm4366b = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4366b-pcie.bin" -FILES_${PN}-bcm4366c = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4366c-pcie.bin" -FILES_${PN}-bcm4371 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4371-pcie.bin" - -# for i in `grep brcm WHENCE | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo -e "LICENSE_\${PN}-$pkg = \"Firmware-broadcom_bcm43xx\"\nRDEPENDS_\${PN}-$pkg += \"\${PN}-broadcom-license\""; done -# Currently 1st one and last 6 have cypress LICENSE - -LICENSE_${PN}-bcm43xx = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43xx += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43xx-hdr = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43xx-hdr += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4329-fullmac = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4329-fullmac += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43236b = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43236b += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4329 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4329 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4330 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4330 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4334 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4334 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4335 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4335 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4339 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4339 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43241b0 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43241b0 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43241b4 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43241b4 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43241b5 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43241b5 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43242a = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43242a += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43143 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43143 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43430a0 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43430a0 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43455 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43455 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4350c2 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4350c2 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4350 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4350 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4356 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4356 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43569 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43569 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43570 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43570 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4358 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4358 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43602 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43602 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4366b = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4366b += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4366c = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4366c += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4371 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4371 += "${PN}-broadcom-license" - -# For broadcom cypress - -LICENSE_${PN}-cypress-license = "Firmware-cypress" -FILES_${PN}-cypress-license = "${nonarch_base_libdir}/firmware/LICENCE.cypress" - -FILES_${PN}-bcm-0bb4-0306 = "${nonarch_base_libdir}/firmware/brcm/BCM-0bb4-0306.hcd" -FILES_${PN}-bcm43340 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43340-sdio.* \ - ${nonarch_base_libdir}/firmware/cypress/cyfmac43340-sdio.*" -FILES_${PN}-bcm43362 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43362-sdio.* \ - ${nonarch_base_libdir}/firmware/cypress/cyfmac43362-sdio.*" -FILES_${PN}-bcm43430 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.* \ - ${nonarch_base_libdir}/firmware/cypress/cyfmac43430-sdio.*" -FILES_${PN}-bcm4354 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4354-sdio.bin \ - ${nonarch_base_libdir}/firmware/cypress/cyfmac4354-sdio.bin \ -" -FILES_${PN}-bcm4356-pcie = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-pcie.* \ - ${nonarch_base_libdir}/firmware/cypress/cyfmac4356-pcie.* \ -" -FILES_${PN}-bcm4373 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4373-sdio.bin \ - ${nonarch_base_libdir}/firmware/brcm/brcmfmac4373.bin \ - ${nonarch_base_libdir}/firmware/cypress/cyfmac4373-sdio.bin \ -" - -LICENSE_${PN}-bcm-0bb4-0306 = "Firmware-cypress" -RDEPENDS_${PN}-bcm-0bb4-0306 += "${PN}-cypress-license" -LICENSE_${PN}-bcm43340 = "Firmware-cypress" -RDEPENDS_${PN}-bcm43340 += "${PN}-cypress-license" -LICENSE_${PN}-bcm43362 = "Firmware-cypress" -RDEPENDS_${PN}-bcm43362 += "${PN}-cypress-license" -LICENSE_${PN}-bcm43430 = "Firmware-cypress" -RDEPENDS_${PN}-bcm43430 += "${PN}-cypress-license" -LICENSE_${PN}-bcm4354 = "Firmware-cypress" -RDEPENDS_${PN}-bcm4354 += "${PN}-cypress-license" -LICENSE_${PN}-bcm4356-pcie = "Firmware-cypress" -RDEPENDS_${PN}-bcm4356-pcie += "${PN}-cypress-license" -LICENSE_${PN}-bcm4373 = "Firmware-cypress" -RDEPENDS_${PN}-bcm4373 += "${PN}-cypress-license" - -# For Broadcom bnx2-mips -# -# which is a separate case to the other Broadcom firmwares since its -# license is contained in the shared WHENCE file. - -LICENSE_${PN}-bnx2-mips = "WHENCE" -LICENSE_${PN}-whence-license = "WHENCE" - -FILES_${PN}-bnx2-mips = "${nonarch_base_libdir}/firmware/bnx2/bnx2-mips-09-6.2.1b.fw" -FILES_${PN}-whence-license = "${nonarch_base_libdir}/firmware/WHENCE" - -RDEPENDS_${PN}-bnx2-mips += "${PN}-whence-license" - -# For imx-sdma -LICENSE_${PN}-imx-sdma-imx6q = "Firmware-imx-sdma_firmware" -LICENSE_${PN}-imx-sdma-imx7d = "Firmware-imx-sdma_firmware" -LICENSE_${PN}-imx-sdma-license = "Firmware-imx-sdma_firmware" - -FILES_${PN}-imx-sdma-imx6q = "${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx6q.bin" - -RPROVIDES_${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q" -RREPLACES_${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q" -RCONFLICTS_${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q" - -FILES_${PN}-imx-sdma-imx7d = "${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx7d.bin" - -FILES_${PN}-imx-sdma-license = "${nonarch_base_libdir}/firmware/LICENSE.sdma_firmware" - -RDEPENDS_${PN}-imx-sdma-imx6q += "${PN}-imx-sdma-license" -RDEPENDS_${PN}-imx-sdma-imx7d += "${PN}-imx-sdma-license" - -# For iwlwifi -LICENSE_${PN}-iwlwifi = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-135-6 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-7 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-8 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-9 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-10 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-12 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-13 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-16 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-17 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-6000-4 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-6000g2a-5 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-6000g2a-6 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-6000g2b-5 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-6000g2b-6 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-6050-4 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-6050-5 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-7260 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-7265 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-7265d = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-8000c = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-8265 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-9000 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-misc = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-license = "Firmware-iwlwifi_firmware" - - -FILES_${PN}-iwlwifi-license = "${nonarch_base_libdir}/firmware/LICENCE.iwlwifi_firmware" -FILES_${PN}-iwlwifi-135-6 = "${nonarch_base_libdir}/firmware/iwlwifi-135-6.ucode" -FILES_${PN}-iwlwifi-3160-7 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-7.ucode" -FILES_${PN}-iwlwifi-3160-8 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-8.ucode" -FILES_${PN}-iwlwifi-3160-9 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-9.ucode" -FILES_${PN}-iwlwifi-3160-10 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-10.ucode" -FILES_${PN}-iwlwifi-3160-12 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-12.ucode" -FILES_${PN}-iwlwifi-3160-13 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-13.ucode" -FILES_${PN}-iwlwifi-3160-16 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-16.ucode" -FILES_${PN}-iwlwifi-3160-17 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-17.ucode" -FILES_${PN}-iwlwifi-6000-4 = "${nonarch_base_libdir}/firmware/iwlwifi-6000-4.ucode" -FILES_${PN}-iwlwifi-6000g2a-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2a-5.ucode" -FILES_${PN}-iwlwifi-6000g2a-6 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2a-6.ucode" -FILES_${PN}-iwlwifi-6000g2b-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2b-5.ucode" -FILES_${PN}-iwlwifi-6000g2b-6 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2b-6.ucode" -FILES_${PN}-iwlwifi-6050-4 = "${nonarch_base_libdir}/firmware/iwlwifi-6050-4.ucode" -FILES_${PN}-iwlwifi-6050-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6050-5.ucode" -FILES_${PN}-iwlwifi-7260 = "${nonarch_base_libdir}/firmware/iwlwifi-7260-*.ucode" -FILES_${PN}-iwlwifi-7265 = "${nonarch_base_libdir}/firmware/iwlwifi-7265-*.ucode" -FILES_${PN}-iwlwifi-7265d = "${nonarch_base_libdir}/firmware/iwlwifi-7265D-*.ucode" -FILES_${PN}-iwlwifi-8000c = "${nonarch_base_libdir}/firmware/iwlwifi-8000C-*.ucode" -FILES_${PN}-iwlwifi-8265 = "${nonarch_base_libdir}/firmware/iwlwifi-8265-*.ucode" -FILES_${PN}-iwlwifi-9000 = "${nonarch_base_libdir}/firmware/iwlwifi-9000-*.ucode" -FILES_${PN}-iwlwifi-misc = "${nonarch_base_libdir}/firmware/iwlwifi-*.ucode" - -RDEPENDS_${PN}-iwlwifi-135-6 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-7 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-8 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-9 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-10 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-12 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-13 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-16 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-17 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-6000-4 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-6000g2a-5 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-6000g2a-6 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-6000g2b-5 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-6000g2b-6 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-6050-4 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-6050-5 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-7260 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-7265 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-7265d = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-8000c = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-8265 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-9000 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-misc = "${PN}-iwlwifi-license" - -# -iwlwifi-misc is a "catch all" package that includes all the iwlwifi -# firmwares that are not already included in other -iwlwifi- packages. -# -iwlwifi is a virtual package that depends upon all iwlwifi packages. -# These are distinct in order to allow the -misc firmwares to be installed -# without pulling in every other iwlwifi package. -ALLOW_EMPTY_${PN}-iwlwifi = "1" -ALLOW_EMPTY_${PN}-iwlwifi-misc = "1" - -# Handle package updating for the newly merged iwlwifi groupings -RPROVIDES_${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9" -RREPLACES_${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9" -RCONFLICTS_${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9" - -RPROVIDES_${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9" -RREPLACES_${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9" -RCONFLICTS_${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9" - -# For ibt -LICENSE_${PN}-ibt-license = "Firmware-ibt_firmware" -LICENSE_${PN}-ibt-hw-37-7 = "Firmware-ibt_firmware" -LICENSE_${PN}-ibt-hw-37-8 = "Firmware-ibt_firmware" -LICENSE_${PN}-ibt-11-5 = "Firmware-ibt_firmware" -LICENSE_${PN}-ibt-12-16 = "Firmware-ibt_firmware" -LICENSE_${PN}-ibt-17 = "Firmware-ibt_firmware" -LICENSE_${PN}-ibt-20 = "Firmware-ibt_firmware" -LICENSE_${PN}-ibt-misc = "Firmware-ibt_firmware" - -FILES_${PN}-ibt-license = "${nonarch_base_libdir}/firmware/LICENCE.ibt_firmware" -FILES_${PN}-ibt-hw-37-7 = "${nonarch_base_libdir}/firmware/intel/ibt-hw-37.7*.bseq" -FILES_${PN}-ibt-hw-37-8 = "${nonarch_base_libdir}/firmware/intel/ibt-hw-37.8*.bseq" -FILES_${PN}-ibt-11-5 = "${nonarch_base_libdir}/firmware/intel/ibt-11-5.sfi ${nonarch_base_libdir}/firmware/intel/ibt-11-5.ddc" -FILES_${PN}-ibt-12-16 = "${nonarch_base_libdir}/firmware/intel/ibt-12-16.sfi ${nonarch_base_libdir}/firmware/intel/ibt-12-16.ddc" -FILES_${PN}-ibt-17 = "${nonarch_base_libdir}/firmware/intel/ibt-17-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-17-*.ddc" -FILES_${PN}-ibt-20 = "${nonarch_base_libdir}/firmware/intel/ibt-20-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-20-*.ddc" -FILES_${PN}-ibt-misc = "${nonarch_base_libdir}/firmware/intel/ibt-*" - -RDEPENDS_${PN}-ibt-hw-37-7 = "${PN}-ibt-license" -RDEPENDS_${PN}-ibt-hw-37.8 = "${PN}-ibt-license" -RDEPENDS_${PN}-ibt-11-5 = "${PN}-ibt-license" -RDEPENDS_${PN}-ibt-12-16 = "${PN}-ibt-license" -RDEPENDS_${PN}-ibt-17 = "${PN}-ibt-license" -RDEPENDS_${PN}-ibt-20 = "${PN}-ibt-license" -RDEPENDS_${PN}-ibt-misc = "${PN}-ibt-license" - -ALLOW_EMPTY_${PN}-ibt= "1" -ALLOW_EMPTY_${PN}-ibt-misc = "1" - -LICENSE_${PN}-i915 = "Firmware-i915" -LICENSE_${PN}-i915-license = "Firmware-i915" -FILES_${PN}-i915-license = "${nonarch_base_libdir}/firmware/LICENSE.i915" -FILES_${PN}-i915 = "${nonarch_base_libdir}/firmware/i915" -RDEPENDS_${PN}-i915 = "${PN}-i915-license" - -LICENSE_${PN}-ice = "Firmware-ice" -LICENSE_${PN}-ice-license = "Firmware-ice" -FILES_${PN}-ice-license = "${nonarch_base_libdir}/firmware/LICENSE.ice" -FILES_${PN}-ice = "${nonarch_base_libdir}/firmware/intel/ice" -RDEPENDS_${PN}-ice = "${PN}-ice-license" - -FILES_${PN}-adsp-sst-license = "${nonarch_base_libdir}/firmware/LICENCE.adsp_sst" -LICENSE_${PN}-adsp-sst = "Firmware-adsp_sst" -LICENSE_${PN}-adsp-sst-license = "Firmware-adsp_sst" -FILES_${PN}-adsp-sst = "${nonarch_base_libdir}/firmware/intel/dsp_fw*" -RDEPENDS_${PN}-adsp-sst = "${PN}-adsp-sst-license" - -# For QAT -LICENSE_${PN}-qat = "Firmware-qat" -LICENSE_${PN}-qat-license = "Firmware-qat" -FILES_${PN}-qat-license = "${nonarch_base_libdir}/firmware/LICENCE.qat_firmware" -FILES_${PN}-qat = "${nonarch_base_libdir}/firmware/qat*.bin" -RDEPENDS_${PN}-qat = "${PN}-qat-license" - -# For QCOM VPU/GPU and SDM845 -LICENSE_${PN}-qcom-license = "Firmware-qcom" -FILES_${PN}-qcom-license = "${nonarch_base_libdir}/firmware/LICENSE.qcom ${nonarch_base_libdir}/firmware/qcom/NOTICE.txt" -FILES_${PN}-qcom-venus-1.8 = "${nonarch_base_libdir}/firmware/qcom/venus-1.8/*" -FILES_${PN}-qcom-venus-4.2 = "${nonarch_base_libdir}/firmware/qcom/venus-4.2/*" -FILES_${PN}-qcom-venus-5.2 = "${nonarch_base_libdir}/firmware/qcom/venus-5.2/*" -FILES_${PN}-qcom-venus-5.4 = "${nonarch_base_libdir}/firmware/qcom/venus-5.4/*" -FILES_${PN}-qcom-adreno-a3xx = "${nonarch_base_libdir}/firmware/qcom/a300_*.fw ${nonarch_base_libdir}/firmware/a300_*.fw" -FILES_${PN}-qcom-adreno-a530 = "${nonarch_base_libdir}/firmware/qcom/a530*.*" -FILES_${PN}-qcom-adreno-a630 = "${nonarch_base_libdir}/firmware/qcom/a630*.* ${nonarch_base_libdir}/firmware/qcom/sdm845/a630*.*" -FILES_${PN}-qcom-sdm845-audio = "${nonarch_base_libdir}/firmware/qcom/sdm845/adsp*.*" -FILES_${PN}-qcom-sdm845-compute = "${nonarch_base_libdir}/firmware/qcom/sdm845/cdsp*.*" -FILES_${PN}-qcom-sdm845-modem = "${nonarch_base_libdir}/firmware/qcom/sdm845/mba.mbn ${nonarch_base_libdir}/firmware/qcom/sdm845/modem*.* ${nonarch_base_libdir}/firmware/qcom/sdm845/wlanmdsp.mbn" -RDEPENDS_${PN}-qcom-venus-1.8 = "${PN}-qcom-license" -RDEPENDS_${PN}-qcom-venus-4.2 = "${PN}-qcom-license" -RDEPENDS_${PN}-qcom-venus-5.2 = "${PN}-qcom-license" -RDEPENDS_${PN}-qcom-venus-5.4 = "${PN}-qcom-license" -RDEPENDS_${PN}-qcom-adreno-a3xx = "${PN}-qcom-license" -RDEPENDS_${PN}-qcom-adreno-a530 = "${PN}-qcom-license" -RDEPENDS_${PN}-qcom-adreno-a630 = "${PN}-qcom-license" -RDEPENDS_${PN}-qcom-sdm845-audio = "${PN}-qcom-license" -RDEPENDS_${PN}-qcom-sdm845-compute = "${PN}-qcom-license" -RDEPENDS_${PN}-qcom-sdm845-modem = "${PN}-qcom-license" - -FILES_${PN}-liquidio = "${nonarch_base_libdir}/firmware/liquidio" - -# For Amlogic VDEC -LICENSE_${PN}-amlogic-vdec = "Firmware-amlogic_vdec" -FILES_${PN}-amlogic-vdec-license = "${nonarch_base_libdir}/firmware/LICENSE.amlogic_vdec" -FILES_${PN}-amlogic-vdec = "${nonarch_base_libdir}/firmware/meson/vdec/*" -RDEPENDS_${PN}-amlogic-vdec = "${PN}-amlogic-vdec-license" - -# For other firmwares -# Maybe split out to separate packages when needed. -LICENSE_${PN} = "\ - Firmware-Abilis \ - & Firmware-agere \ - & Firmware-amdgpu \ - & Firmware-amd-ucode \ - & Firmware-amlogic_vdec \ - & Firmware-atmel \ - & Firmware-ca0132 \ - & Firmware-cavium \ - & Firmware-chelsio_firmware \ - & Firmware-cw1200 \ - & Firmware-dib0700 \ - & Firmware-e100 \ - & Firmware-ene_firmware \ - & Firmware-fw_sst_0f28 \ - & Firmware-go7007 \ - & Firmware-hfi1_firmware \ - & Firmware-i2400m \ - & Firmware-ibt_firmware \ - & Firmware-it913x \ - & Firmware-IntcSST2 \ - & Firmware-kaweth \ - & Firmware-moxa \ - & Firmware-myri10ge_firmware \ - & Firmware-nvidia \ - & Firmware-OLPC \ - & Firmware-ath9k-htc \ - & Firmware-phanfw \ - & Firmware-qat \ - & Firmware-qcom \ - & Firmware-qla1280 \ - & Firmware-qla2xxx \ - & Firmware-r8a779x_usb3 \ - & Firmware-radeon \ - & Firmware-ralink_a_mediatek_company_firmware \ - & Firmware-ralink-firmware \ - & Firmware-imx-sdma_firmware \ - & Firmware-siano \ - & Firmware-tda7706-firmware \ - & Firmware-ti-connectivity \ - & Firmware-ti-keystone \ - & Firmware-ueagle-atm4-firmware \ - & Firmware-wl1251 \ - & Firmware-xc4000 \ - & Firmware-xc5000 \ - & Firmware-xc5000c \ - & WHENCE \ -" - -FILES_${PN}-license += "${nonarch_base_libdir}/firmware/LICEN*" -FILES_${PN} += "${nonarch_base_libdir}/firmware/*" -RDEPENDS_${PN} += "${PN}-license" -RDEPENDS_${PN} += "${PN}-whence-license" - -# Make linux-firmware depend on all of the split-out packages. -# Make linux-firmware-iwlwifi depend on all of the split-out iwlwifi packages. -# Make linux-firmware-ibt depend on all of the split-out ibt packages. -python populate_packages_prepend () { - firmware_pkgs = oe.utils.packages_filter_out_system(d) - d.appendVar('RRECOMMENDS_linux-firmware', ' ' + ' '.join(firmware_pkgs)) - - iwlwifi_pkgs = filter(lambda x: x.find('-iwlwifi-') != -1, firmware_pkgs) - d.appendVar('RRECOMMENDS_linux-firmware-iwlwifi', ' ' + ' '.join(iwlwifi_pkgs)) - - ibt_pkgs = filter(lambda x: x.find('-ibt-') != -1, firmware_pkgs) - d.appendVar('RRECOMMENDS_linux-firmware-ibt', ' ' + ' '.join(ibt_pkgs)) -} - -# Firmware files are generally not ran on the CPU, so they can be -# allarch despite being architecture specific -INSANE_SKIP = "arch" diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_20240909.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_20240909.bb new file mode 100644 index 0000000000..4bcda67c8f --- /dev/null +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_20240909.bb @@ -0,0 +1,1659 @@ +SUMMARY = "Firmware files for use with Linux kernel" +HOMEPAGE = "https://www.kernel.org/" +DESCRIPTION = "Linux firmware is a package distributed alongside the Linux kernel \ +that contains firmware binary blobs necessary for partial or full functionality \ +of certain hardware devices." +SECTION = "kernel" + +LICENSE = "\ + Firmware-Abilis \ + & Firmware-adsp_sst \ + & Firmware-agere \ + & Firmware-amdgpu \ + & Firmware-amd-ucode \ + & Firmware-amlogic_vdec \ + & Firmware-amphion_vpu \ + & Firmware-atheros_firmware \ + & Firmware-atmel \ + & Firmware-broadcom_bcm43xx \ + & Firmware-ca0132 \ + & Firmware-cavium \ + & Firmware-chelsio_firmware \ + & Firmware-cirrus \ + & Firmware-cnm \ + & Firmware-cw1200 \ + & Firmware-cypress \ + & Firmware-dib0700 \ + & Firmware-e100 \ + & Firmware-ene_firmware \ + & Firmware-fw_sst_0f28 \ + & Firmware-go7007 \ + & Firmware-hfi1_firmware \ + & Firmware-i915 \ + & Firmware-ibt_firmware \ + & Firmware-ice \ + & Firmware-ice_enhanced \ + & Firmware-it913x \ + & Firmware-iwlwifi_firmware \ + & Firmware-IntcSST2 \ + & Firmware-kaweth \ + & Firmware-linaro \ + & Firmware-Lontium \ + & Firmware-mali_csffw \ + & Firmware-Marvell \ + & Firmware-mediatek \ + & Firmware-microchip \ + & Firmware-moxa \ + & Firmware-myri10ge_firmware \ + & Firmware-netronome \ + & Firmware-nvidia \ + & Firmware-nxp \ + & Firmware-nxp_mc_firmware \ + & Firmware-OLPC \ + & Firmware-ath9k-htc \ + & Firmware-phanfw \ + & Firmware-powervr \ + & Firmware-qat \ + & Firmware-qcom \ + & Firmware-qcom-yamato \ + & Firmware-qla1280 \ + & Firmware-qla2xxx \ + & Firmware-qualcommAthos_ar3k \ + & Firmware-qualcommAthos_ath10k \ + & Firmware-r8a779x_usb3 \ + & Firmware-radeon \ + & Firmware-ralink_a_mediatek_company_firmware \ + & Firmware-ralink-firmware \ + & Firmware-rockchip \ + & Firmware-rtlwifi_firmware \ + & Firmware-imx-sdma_firmware \ + & Firmware-siano \ + & Firmware-ti-connectivity \ + & Firmware-ti-keystone \ + & Firmware-ueagle-atm4-firmware \ + & Firmware-via_vt6656 \ + & Firmware-wfx \ + & Firmware-wl1251 \ + & Firmware-xc4000 \ + & Firmware-xc5000 \ + & Firmware-xc5000c \ + & WHENCE \ + & GPL-2.0-or-later \ +" + +LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \ + file://LICENCE.adsp_sst;md5=615c45b91a5a4a9fe046d6ab9a2df728 \ + file://LICENCE.agere;md5=af0133de6b4a9b2522defd5f188afd31 \ + file://LICENSE.amdgpu;md5=1433dfea38c97a2e563a248a863dcb94 \ + file://LICENSE.amd-ucode;md5=6ca90c57f7b248de1e25c7f68ffc4698 \ + file://LICENSE.amlogic_vdec;md5=dc44f59bf64a81643e500ad3f39a468a \ + file://LICENSE.amphion_vpu;md5=2bcdc00527b2d0542bd92b52aaec2b60 \ + file://LICENCE.atheros_firmware;md5=30a14c7823beedac9fa39c64fdd01a13 \ + file://LICENSE.atmel;md5=aa74ac0c60595dee4d4e239107ea77a3 \ + file://LICENCE.broadcom_bcm43xx;md5=3160c14df7228891b868060e1951dfbc \ + file://LICENCE.ca0132;md5=209b33e66ee5be0461f13d31da392198 \ + file://LICENCE.cadence;md5=009f46816f6956cfb75ede13d3e1cee0 \ + file://LICENCE.cavium;md5=c37aaffb1ebe5939b2580d073a95daea \ + file://LICENCE.chelsio_firmware;md5=819aa8c3fa453f1b258ed8d168a9d903 \ + file://LICENSE.cirrus;md5=662ea2c1a8888f7d79ed7f27c27472e1 \ + file://LICENCE.cnm;md5=93b67e6bac7f8fec22b96b8ad0a1a9d0 \ + file://LICENCE.cw1200;md5=f0f770864e7a8444a5c5aa9d12a3a7ed \ + file://LICENCE.cypress;md5=48cd9436c763bf873961f9ed7b5c147b \ + file://LICENSE.dib0700;md5=f7411825c8a555a1a3e5eab9ca773431 \ + file://LICENCE.e100;md5=ec0f84136766df159a3ae6d02acdf5a8 \ + file://LICENCE.ene_firmware;md5=ed67f0f62f8f798130c296720b7d3921 \ + file://LICENCE.fw_sst_0f28;md5=6353931c988ad52818ae733ac61cd293 \ + file://LICENCE.go7007;md5=c0bb9f6aaaba55b0529ee9b30aa66beb \ + file://LICENSE.hfi1_firmware;md5=5e7b6e586ce7339d12689e49931ad444 \ + file://LICENSE.i915;md5=2b0b2e0d20984affd4490ba2cba02570 \ + file://LICENCE.ibt_firmware;md5=fdbee1ddfe0fb7ab0b2fcd6b454a366b \ + file://LICENSE.ice;md5=742ab4850f2670792940e6d15c974b2f \ + file://LICENSE.ice_enhanced;md5=f305cfc31b64f95f774f9edd9df0224d \ + file://LICENCE.IntcSST2;md5=9e7d8bea77612d7cc7d9e9b54b623062 \ + file://LICENCE.it913x;md5=1fbf727bfb6a949810c4dbfa7e6ce4f8 \ + file://LICENCE.iwlwifi_firmware;md5=2ce6786e0fc11ac6e36b54bb9b799f1b \ + file://LICENCE.kaweth;md5=b1d876e562f4b3b8d391ad8395dfe03f \ + file://LICENCE.linaro;md5=936d91e71cf9cd30e733db4bf11661cc \ + file://LICENSE.Lontium;md5=4ec8dc582ff7295f39e2ca6a7b0be2b6 \ + file://LICENCE.mali_csffw;md5=e064aaec4d21ef856e1b76a6f5dc435f \ + file://LICENCE.Marvell;md5=28b6ed8bd04ba105af6e4dcd6e997772 \ + file://LICENCE.mediatek;md5=7c1976b63217d76ce47d0a11d8a79cf2 \ + file://LICENCE.microchip;md5=db753b00305675dfbf120e3f24a47277 \ + file://LICENCE.moxa;md5=1086614767d8ccf744a923289d3d4261 \ + file://LICENCE.myri10ge_firmware;md5=42e32fb89f6b959ca222e25ac8df8fed \ + file://LICENCE.Netronome;md5=4add08f2577086d44447996503cddf5f \ + file://LICENCE.nvidia;md5=4428a922ed3ba2ceec95f076a488ce07 \ + file://LICENCE.NXP;md5=58bb8ba632cd729b9ba6183bc6aed36f \ + file://LICENSE.nxp;md5=cca321ca1524d6a1e4fed87486cd82dc \ + file://LICENSE.nxp_mc_firmware;md5=9dc97e4b279b3858cae8879ae2fe5dd7 \ + file://LICENCE.OLPC;md5=5b917f9d8c061991be4f6f5f108719cd \ + file://LICENCE.open-ath9k-htc-firmware;md5=1b33c9f4d17bc4d457bdb23727046837 \ + file://LICENCE.phanfw;md5=954dcec0e051f9409812b561ea743bfa \ + file://LICENSE.powervr;md5=83045ed2a2cda15b4eaff682c98c9533 \ + file://LICENCE.qat_firmware;md5=72de83dfd9b87be7685ed099a39fbea4 \ + file://LICENSE.qcom;md5=164e3362a538eb11d3ac51e8e134294b \ + file://LICENSE.qcom_yamato;md5=d0de0eeccaf1843a850bf7a6777eec5c \ + file://LICENCE.qla1280;md5=d6895732e622d950609093223a2c4f5d \ + file://LICENCE.qla2xxx;md5=505855e921b75f1be4a437ad9b79dff0 \ + file://LICENSE.QualcommAtheros_ar3k;md5=b5fe244fb2b532311de1472a3bc06da5 \ + file://LICENSE.QualcommAtheros_ath10k;md5=cb42b686ee5f5cb890275e4321db60a8 \ + file://LICENCE.r8a779x_usb3;md5=4c1671656153025d7076105a5da7e498 \ + file://LICENSE.radeon;md5=68ec28bacb3613200bca44f404c69b16 \ + file://LICENCE.ralink_a_mediatek_company_firmware;md5=728f1a85fd53fd67fa8d7afb080bc435 \ + file://LICENCE.ralink-firmware.txt;md5=ab2c269277c45476fb449673911a2dfd \ + file://LICENCE.rockchip;md5=5fd70190c5ed39734baceada8ecced26 \ + file://LICENCE.rtlwifi_firmware.txt;md5=00d06cfd3eddd5a2698948ead2ad54a5 \ + file://LICENSE.sdma_firmware;md5=51e8c19ecc2270f4b8ea30341ad63ce9 \ + file://LICENCE.siano;md5=4556c1bf830067f12ca151ad953ec2a5 \ + file://LICENCE.ti-connectivity;md5=3b1e9cf54aba8146dad4b735777d406f \ + file://LICENCE.ti-keystone;md5=3a86335d32864b0bef996bee26cc0f2c \ + file://LICENCE.ueagle-atm4-firmware;md5=4ed7ea6b507ccc583b9d594417714118 \ + file://LICENCE.via_vt6656;md5=e4159694cba42d4377a912e78a6e850f \ + file://LICENCE.wl1251;md5=ad3f81922bb9e197014bb187289d3b5b \ + file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \ + file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \ + file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \ + file://wfx/LICENCE.wf200;md5=4d1beff00d902c05c9c7e95a5d8eb52d \ + file://WHENCE;md5=${WHENCE_CHKSUM} \ + " +# WHENCE checksum is defined separately to ease overriding it if +# class-devupstream is selected. +WHENCE_CHKSUM = "6ae5ffd807c84809977286ad0b37acdb" + +# These are not common licenses, set NO_GENERIC_LICENSE for them +# so that the license files will be copied from fetched source +NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENCE.Abilis" +NO_GENERIC_LICENSE[Firmware-adsp_sst] = "LICENCE.adsp_sst" +NO_GENERIC_LICENSE[Firmware-agere] = "LICENCE.agere" +NO_GENERIC_LICENSE[Firmware-amdgpu] = "LICENSE.amdgpu" +NO_GENERIC_LICENSE[Firmware-amd-ucode] = "LICENSE.amd-ucode" +NO_GENERIC_LICENSE[Firmware-amlogic_vdec] = "LICENSE.amlogic_vdec" +NO_GENERIC_LICENSE[Firmware-amphion_vpu] = "LICENSE.amphion_vpu" +NO_GENERIC_LICENSE[Firmware-atheros_firmware] = "LICENCE.atheros_firmware" +NO_GENERIC_LICENSE[Firmware-atmel] = "LICENSE.atmel" +NO_GENERIC_LICENSE[Firmware-broadcom_bcm43xx] = "LICENCE.broadcom_bcm43xx" +NO_GENERIC_LICENSE[Firmware-ca0132] = "LICENCE.ca0132" +NO_GENERIC_LICENSE[Firmware-cadence] = "LICENCE.cadence" +NO_GENERIC_LICENSE[Firmware-cavium] = "LICENCE.cavium" +NO_GENERIC_LICENSE[Firmware-chelsio_firmware] = "LICENCE.chelsio_firmware" +NO_GENERIC_LICENSE[Firmware-cirrus] = "LICENSE.cirrus" +NO_GENERIC_LICENSE[Firmware-cnm] = "LICENCE.cnm" +NO_GENERIC_LICENSE[Firmware-cw1200] = "LICENCE.cw1200" +NO_GENERIC_LICENSE[Firmware-cypress] = "LICENCE.cypress" +NO_GENERIC_LICENSE[Firmware-dib0700] = "LICENSE.dib0700" +NO_GENERIC_LICENSE[Firmware-e100] = "LICENCE.e100" +NO_GENERIC_LICENSE[Firmware-ene_firmware] = "LICENCE.ene_firmware" +NO_GENERIC_LICENSE[Firmware-fw_sst_0f28] = "LICENCE.fw_sst_0f28" +NO_GENERIC_LICENSE[Firmware-go7007] = "LICENCE.go7007" +NO_GENERIC_LICENSE[Firmware-hfi1_firmware] = "LICENSE.hfi1_firmware" +NO_GENERIC_LICENSE[Firmware-i915] = "LICENSE.i915" +NO_GENERIC_LICENSE[Firmware-ibt_firmware] = "LICENCE.ibt_firmware" +NO_GENERIC_LICENSE[Firmware-ice] = "LICENSE.ice" +NO_GENERIC_LICENSE[Firmware-ice_enhanced] = "LICENSE.ice_enhanced" +NO_GENERIC_LICENSE[Firmware-IntcSST2] = "LICENCE.IntcSST2" +NO_GENERIC_LICENSE[Firmware-it913x] = "LICENCE.it913x" +NO_GENERIC_LICENSE[Firmware-iwlwifi_firmware] = "LICENCE.iwlwifi_firmware" +NO_GENERIC_LICENSE[Firmware-kaweth] = "LICENCE.kaweth" +NO_GENERIC_LICENSE[Firmware-linaro] = "LICENCE.linaro" +NO_GENERIC_LICENSE[Firmware-Lontium] = "LICENSE.Lontium" +NO_GENERIC_LICENSE[Firmware-mali_csffw] = "LICENCE.mali_csffw" +NO_GENERIC_LICENSE[Firmware-Marvell] = "LICENCE.Marvell" +NO_GENERIC_LICENSE[Firmware-mediatek] = "LICENCE.mediatek" +NO_GENERIC_LICENSE[Firmware-microchip] = "LICENCE.microchip" +NO_GENERIC_LICENSE[Firmware-moxa] = "LICENCE.moxa" +NO_GENERIC_LICENSE[Firmware-myri10ge_firmware] = "LICENCE.myri10ge_firmware" +NO_GENERIC_LICENSE[Firmware-netronome] = "LICENCE.Netronome" +NO_GENERIC_LICENSE[Firmware-nvidia] = "LICENCE.nvidia" +NO_GENERIC_LICENSE[Firmware-nxp] = "LICENSE.nxp" +NO_GENERIC_LICENSE[Firmware-nxp_mc_firmware] = "LICENSE.nxp_mc_firmware" +NO_GENERIC_LICENSE[Firmware-OLPC] = "LICENCE.OLPC" +NO_GENERIC_LICENSE[Firmware-ath9k-htc] = "LICENCE.open-ath9k-htc-firmware" +NO_GENERIC_LICENSE[Firmware-phanfw] = "LICENCE.phanfw" +NO_GENERIC_LICENSE[Firmware-powervr] = "LICENSE.powervr" +NO_GENERIC_LICENSE[Firmware-qat] = "LICENCE.qat_firmware" +NO_GENERIC_LICENSE[Firmware-qcom] = "LICENSE.qcom" +NO_GENERIC_LICENSE[Firmware-qcom-yamato] = "LICENSE.qcom_yamato" +NO_GENERIC_LICENSE[Firmware-qla1280] = "LICENCE.qla1280" +NO_GENERIC_LICENSE[Firmware-qla2xxx] = "LICENCE.qla2xxx" +NO_GENERIC_LICENSE[Firmware-qualcommAthos_ar3k] = "LICENSE.QualcommAtheros_ar3k" +NO_GENERIC_LICENSE[Firmware-qualcommAthos_ath10k] = "LICENSE.QualcommAtheros_ath10k" +NO_GENERIC_LICENSE[Firmware-r8a779x_usb3] = "LICENCE.r8a779x_usb3" +NO_GENERIC_LICENSE[Firmware-radeon] = "LICENSE.radeon" +NO_GENERIC_LICENSE[Firmware-ralink_a_mediatek_company_firmware] = "LICENCE.ralink_a_mediatek_company_firmware" +NO_GENERIC_LICENSE[Firmware-ralink-firmware] = "LICENCE.ralink-firmware.txt" +NO_GENERIC_LICENSE[Firmware-rockchip] = "LICENCE.rockchip" +NO_GENERIC_LICENSE[Firmware-rtlwifi_firmware] = "LICENCE.rtlwifi_firmware.txt" +NO_GENERIC_LICENSE[Firmware-siano] = "LICENCE.siano" +NO_GENERIC_LICENSE[Firmware-imx-sdma_firmware] = "LICENSE.sdma_firmware" +NO_GENERIC_LICENSE[Firmware-ti-connectivity] = "LICENCE.ti-connectivity" +NO_GENERIC_LICENSE[Firmware-ti-keystone] = "LICENCE.ti-keystone" +NO_GENERIC_LICENSE[Firmware-ueagle-atm4-firmware] = "LICENCE.ueagle-atm4-firmware" +NO_GENERIC_LICENSE[Firmware-via_vt6656] = "LICENCE.via_vt6656" +NO_GENERIC_LICENSE[Firmware-wfx] = "wfx/LICENCE.wf200" +NO_GENERIC_LICENSE[Firmware-wl1251] = "LICENCE.wl1251" +NO_GENERIC_LICENSE[Firmware-xc4000] = "LICENCE.xc4000" +NO_GENERIC_LICENSE[Firmware-xc5000] = "LICENCE.xc5000" +NO_GENERIC_LICENSE[Firmware-xc5000c] = "LICENCE.xc5000c" +NO_GENERIC_LICENSE[WHENCE] = "WHENCE" + +PE = "1" + +SRC_URI = "\ + ${KERNELORG_MIRROR}/linux/kernel/firmware/${BPN}-${PV}.tar.xz \ +" + +BBCLASSEXTEND = "devupstream:target" +SRC_URI:class-devupstream = "git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git;protocol=https;branch=main" +# Pin this to the 20220509 release, override this in local.conf +SRCREV:class-devupstream ?= "b19cbdca78ab2adfd210c91be15a22568e8b8cae" + +SRC_URI[sha256sum] = "943fbd19883cf8eadf89e0b22422549db056557b1ecd30a56400615971369671" + +inherit allarch + +CLEANBROKEN = "1" + +# Use PACKAGECONFIG_CONFARGS to set the Makefile target +PACKAGECONFIG ??= "" +# Enabling dedup will turn duplicate firmware files into links +PACKAGECONFIG[deduplicate] = "install,install-nodedup,rdfind-native" + +do_compile() { + : +} + +do_install() { + oe_runmake 'DESTDIR=${D}' 'FIRMWAREDIR=${nonarch_base_libdir}/firmware' ${PACKAGECONFIG_CONFARGS} + cp LICEN[CS]E.* WHENCE ${D}${nonarch_base_libdir}/firmware/ + cp wfx/LICEN[CS]E.* ${D}${nonarch_base_libdir}/firmware/wfx/ +} + + +PACKAGES =+ "${PN}-amphion-vpu-license ${PN}-amphion-vpu \ + ${PN}-cw1200-license ${PN}-cw1200 \ + ${PN}-ralink-license ${PN}-ralink \ + ${PN}-mt76x-license ${PN}-mt7601u ${PN}-mt7650 ${PN}-mt76x2 \ + ${PN}-radeon-license ${PN}-radeon \ + ${PN}-amdgpu-license ${PN}-amdgpu \ + ${PN}-marvell-license ${PN}-pcie8897 ${PN}-pcie8997 \ + ${PN}-mediatek-license ${PN}-mediatek \ + ${PN}-microchip-license ${PN}-microchip \ + ${PN}-moxa-license ${PN}-moxa \ + ${PN}-sd8686 ${PN}-sd8688 ${PN}-sd8787 ${PN}-sd8797 ${PN}-sd8801 \ + ${PN}-sd8887 ${PN}-sd8897 ${PN}-sd8997 ${PN}-usb8997 \ + ${PN}-ti-connectivity-license ${PN}-wlcommon ${PN}-wl12xx ${PN}-wl18xx ${PN}-cc33xx \ + ${PN}-ti-keystone-license ${PN}-ti-keystone \ + ${PN}-vt6656-license ${PN}-vt6656 \ + ${PN}-rs9113 ${PN}-rs9116 \ + ${PN}-rtl-license ${PN}-rtl8188 ${PN}-rtl8192cu ${PN}-rtl8192ce ${PN}-rtl8192su ${PN}-rtl8723 ${PN}-rtl8821 \ + ${PN}-rtl8761 \ + ${PN}-rtl8168 \ + ${PN}-rtl8822 \ + ${PN}-rtl-nic \ + ${PN}-cypress-license \ + ${PN}-broadcom-license \ + ${PN}-bcm-0bb4-0306 \ + ${PN}-bcm43143 \ + ${PN}-bcm43236b \ + ${PN}-bcm43241b0 \ + ${PN}-bcm43241b4 \ + ${PN}-bcm43241b5 \ + ${PN}-bcm43242a \ + ${PN}-bcm4329 \ + ${PN}-bcm4329-fullmac \ + ${PN}-bcm4330 \ + ${PN}-bcm4334 \ + ${PN}-bcm43340 \ + ${PN}-bcm4335 \ + ${PN}-bcm43362 \ + ${PN}-bcm4339 \ + ${PN}-bcm43430 \ + ${PN}-bcm43430a0 \ + ${PN}-bcm43455 \ + ${PN}-bcm4350 \ + ${PN}-bcm4350c2 \ + ${PN}-bcm4354 \ + ${PN}-bcm4356 \ + ${PN}-bcm4356-pcie \ + ${PN}-bcm43569 \ + ${PN}-bcm43570 \ + ${PN}-bcm4358 \ + ${PN}-bcm43602 \ + ${PN}-bcm4366b \ + ${PN}-bcm4366c \ + ${PN}-bcm4371 \ + ${PN}-bcm4373 \ + ${PN}-bcm43xx \ + ${PN}-bcm43xx-hdr \ + ${PN}-cirrus-license ${PN}-cirrus \ + ${PN}-cnm-license ${PN}-cnm \ + ${PN}-atheros-license ${PN}-ar5523 ${PN}-ar9170 ${PN}-ath6k ${PN}-ath9k ${PN}-ath3k \ + ${PN}-carl9170 \ + ${PN}-qcom-qcm2290-wifi ${PN}-qcom-qrb4210-wifi ${PN}-qcom-sdm845-modem \ + ${PN}-ar3k-license ${PN}-ar3k \ + ${PN}-ath10k-license ${PN}-ath10k-wcn3990 ${PN}-ath10k \ + ${PN}-ath11k ${PN}-ath12k ${PN}-qca \ + \ + ${PN}-imx-sdma-license ${PN}-imx-sdma-imx6q ${PN}-imx-sdma-imx7d \ + \ + ${PN}-iwlwifi-license ${PN}-iwlwifi \ + ${PN}-iwlwifi-135-6 \ + ${PN}-iwlwifi-3160-7 ${PN}-iwlwifi-3160-8 ${PN}-iwlwifi-3160-9 \ + ${PN}-iwlwifi-3160-10 ${PN}-iwlwifi-3160-12 ${PN}-iwlwifi-3160-13 \ + ${PN}-iwlwifi-3160-16 ${PN}-iwlwifi-3160-17 \ + ${PN}-iwlwifi-6000-4 ${PN}-iwlwifi-6000g2a-5 ${PN}-iwlwifi-6000g2a-6 \ + ${PN}-iwlwifi-6000g2b-5 ${PN}-iwlwifi-6000g2b-6 \ + ${PN}-iwlwifi-6050-4 ${PN}-iwlwifi-6050-5 \ + ${PN}-iwlwifi-7260 \ + ${PN}-iwlwifi-7265 \ + ${PN}-iwlwifi-7265d ${PN}-iwlwifi-8000c ${PN}-iwlwifi-8265 \ + ${PN}-iwlwifi-9000 \ + ${PN}-iwlwifi-9260 \ + ${PN}-iwlwifi-misc \ + ${PN}-ibt-license ${PN}-ibt \ + ${PN}-ibt-11-5 ${PN}-ibt-12-16 ${PN}-ibt-hw-37-7 ${PN}-ibt-hw-37-8 \ + ${PN}-ibt-17 \ + ${PN}-ibt-18 \ + ${PN}-ibt-20 \ + ${PN}-ibt-misc \ + ${PN}-i915-license ${PN}-i915 \ + ${PN}-ice-license ${PN}-ice \ + ${PN}-ice-enhanced-license ${PN}-ice-enhanced \ + ${PN}-adsp-sst-license ${PN}-adsp-sst \ + ${PN}-bnx2 \ + ${PN}-bnx2x \ + ${PN}-liquidio \ + ${PN}-linaro-license \ + ${PN}-mali-csffw-arch108 ${PN}-mali-csffw-license \ + ${PN}-mellanox \ + ${PN}-nvidia-license \ + ${PN}-nvidia-tegra-k1 ${PN}-nvidia-tegra \ + ${PN}-nvidia-gpu \ + ${PN}-nxp-license \ + ${PN}-nxp8987-sdio \ + ${PN}-nxp8997-common \ + ${PN}-nxp8997-pcie \ + ${PN}-nxp8997-sdio \ + ${PN}-nxp9098-common \ + ${PN}-nxp9098-pcie \ + ${PN}-nxp9098-sdio \ + ${PN}-nxpiw416-sdio \ + ${PN}-nxpiw612-sdio \ + ${PN}-nxp-mc-license ${PN}-nxp-mc \ + ${PN}-netronome-license ${PN}-netronome \ + ${PN}-olpc-license ${PN}-olpc \ + ${PN}-phanfw-license ${PN}-phanfw \ + ${PN}-powervr-license ${PN}-powervr \ + ${PN}-prestera \ + ${PN}-qat ${PN}-qat-license \ + ${PN}-qed \ + ${PN}-qcom-license ${PN}-qcom-yamato-license \ + ${PN}-qcom-venus-1.8 ${PN}-qcom-venus-4.2 ${PN}-qcom-venus-5.2 ${PN}-qcom-venus-5.4 ${PN}-qcom-venus-6.0 \ + ${PN}-qcom-vpu \ + ${PN}-qcom-adreno-a2xx ${PN}-qcom-adreno-a3xx ${PN}-qcom-adreno-a4xx ${PN}-qcom-adreno-a530 \ + ${PN}-qcom-adreno-a630 ${PN}-qcom-adreno-a650 ${PN}-qcom-adreno-a660 ${PN}-qcom-adreno-a702 \ + ${PN}-qcom-adreno-g750 \ + ${PN}-qcom-apq8016-modem ${PN}-qcom-apq8016-wifi \ + ${PN}-qcom-apq8096-adreno ${PN}-qcom-apq8096-audio ${PN}-qcom-apq8096-modem \ + ${PN}-qcom-qcm2290-adreno ${PN}-qcom-qcm2290-audio ${PN}-qcom-qcm2290-modem \ + ${PN}-qcom-qrb4210-adreno ${PN}-qcom-qrb4210-audio ${PN}-qcom-qrb4210-compute \ + ${PN}-qcom-qrb4210-modem \ + ${PN}-qcom-sc8280xp-lenovo-x13s-compat \ + ${PN}-qcom-sc8280xp-lenovo-x13s-audio \ + ${PN}-qcom-sc8280xp-lenovo-x13s-adreno \ + ${PN}-qcom-sc8280xp-lenovo-x13s-compute \ + ${PN}-qcom-sc8280xp-lenovo-x13s-sensors \ + ${PN}-qcom-sdm845-adreno ${PN}-qcom-sdm845-audio ${PN}-qcom-sdm845-compute \ + ${PN}-qcom-sdm845-thundercomm-db845c-sensors \ + ${PN}-qcom-sm8250-adreno ${PN}-qcom-sm8250-audio ${PN}-qcom-sm8250-compute \ + ${PN}-qcom-sm8250-thundercomm-rb5-sensors \ + ${PN}-qcom-sm8550-audio-tplg \ + ${PN}-qcom-sm8650-audio-tplg \ + ${PN}-qcom-x1e80100-adreno \ + ${PN}-qla2xxx ${PN}-qla2xxx-license \ + ${PN}-rockchip-license ${PN}-rockchip-dptx \ + ${PN}-amlogic-vdec-license ${PN}-amlogic-vdec \ + ${PN}-lt9611uxc ${PN}-lontium-license \ + ${PN}-wfx-license ${PN}-wfx \ + ${PN}-whence-license \ + ${PN}-wl1251-license ${PN}-wl1251 \ + ${PN}-xc4000-license ${PN}-xc4000 \ + ${PN}-xc5000-license ${PN}-xc5000 \ + ${PN}-xc5000c-license ${PN}-xc5000c \ + ${PN}-license \ + " + +# For Amphion VPU +LICENSE:${PN}-amphion-vpu = "Firmware-amphion_vpu" +LICENSE:${PN}-amphion-vpu-license = "Firmware-amphion_vpu" + +FILES:${PN}-amphion-vpu = "${nonarch_base_libdir}/firmware/amphion/*" +FILES:${PN}-amphion-vpu-license = " \ + ${nonarch_base_libdir}/firmware/LICENSE.amphion_vpu \ +" +RDEPENDS:${PN}-amphion-vpu += "${PN}-amphion-vpu-license" + +# For cw1200 +LICENSE:${PN}-cw1200 = "Firmware-cw1200" +LICENSE:${PN}-cw1200-license = "Firmware-cw1200" + +FILES:${PN}-cw1200 = "${nonarch_base_libdir}/firmware/wsm_22.bin" +FILES:${PN}-cw1200-license = "${nonarch_base_libdir}/firmware/LICENCE.cw1200" + +RDEPENDS:${PN}-cw1200 += "${PN}-cw1200-license" + +# For atheros +LICENSE:${PN}-ar5523 = "Firmware-atheros_firmware" +LICENSE:${PN}-ar9170 = "Firmware-atheros_firmware" +LICENSE:${PN}-ath3k = "Firmware-atheros_firmware" +LICENSE:${PN}-ath6k = "Firmware-atheros_firmware" +LICENSE:${PN}-ath9k = "Firmware-atheros_firmware" +LICENSE:${PN}-atheros-license = "Firmware-atheros_firmware" + +FILES:${PN}-atheros-license = "${nonarch_base_libdir}/firmware/LICENCE.atheros_firmware" +FILES:${PN}-ar5523 = " \ + ${nonarch_base_libdir}/firmware/ar5523.bin \ +" +FILES:${PN}-ar9170 = " \ + ${nonarch_base_libdir}/firmware/ar9170*.fw \ +" +FILES:${PN}-ath3k = " \ + ${nonarch_base_libdir}/firmware/ath3k*fw \ +" +FILES:${PN}-ath6k = " \ + ${nonarch_base_libdir}/firmware/ath6k \ +" +FILES:${PN}-ath9k = " \ + ${nonarch_base_libdir}/firmware/ar9271.fw \ + ${nonarch_base_libdir}/firmware/ar7010*.fw \ + ${nonarch_base_libdir}/firmware/htc_9271.fw \ + ${nonarch_base_libdir}/firmware/htc_7010.fw \ + ${nonarch_base_libdir}/firmware/ath9k_htc/htc_7010-1.4.0.fw \ + ${nonarch_base_libdir}/firmware/ath9k_htc/htc_9271-1.4.0.fw \ +" + +RDEPENDS:${PN}-ar5523 += "${PN}-atheros-license" +RDEPENDS:${PN}-ar9170 += "${PN}-atheros-license" +RDEPENDS:${PN}-ath6k += "${PN}-atheros-license" +RDEPENDS:${PN}-ath9k += "${PN}-atheros-license" + +# For carl9170 + +FILES:${PN}-carl9170 = " \ + ${nonarch_base_libdir}/firmware/carl9170*.fw \ +" +LICENSE:${PN}-carl9170 = "GPL-2.0-or-later" + +# For QualCommAthos +LICENSE:${PN}-ar3k = "Firmware-qualcommAthos_ar3k & Firmware-atheros_firmware" +LICENSE:${PN}-ar3k-license = "Firmware-qualcommAthos_ar3k" +LICENSE:${PN}-ath10k = "Firmware-qualcommAthos_ath10k" +LICENSE:${PN}-ath10k-wcn3990 = "Firmware-qualcommAthos_ath10k" +LICENSE:${PN}-ath10k-license = "Firmware-qualcommAthos_ath10k" +LICENSE:${PN}-qca = "Firmware-qualcommAthos_ath10k" + +FILES:${PN}-ar3k-license = "${nonarch_base_libdir}/firmware/LICENSE.QualcommAtheros_ar3k" +FILES:${PN}-ar3k = " \ + ${nonarch_base_libdir}/firmware/ar3k \ +" + +FILES:${PN}-ath10k-license = "${nonarch_base_libdir}/firmware/LICENSE.QualcommAtheros_ath10k" +FILES:${PN}-ath10k = " \ + ${nonarch_base_libdir}/firmware/ath10k \ +" +FILES:${PN}-ath10k-wcn3990 = " \ + ${nonarch_base_libdir}/firmware/ath10k/WCN3990 \ +" + +FILES:${PN}-ath11k = " \ + ${nonarch_base_libdir}/firmware/ath11k \ +" + +FILES:${PN}-ath12k = " \ + ${nonarch_base_libdir}/firmware/ath12k \ +" + +FILES:${PN}-qca = " \ + ${nonarch_base_libdir}/firmware/qca \ +" + +RDEPENDS:${PN}-ar3k += "${PN}-ar3k-license ${PN}-atheros-license" +RDEPENDS:${PN}-ath10k += "${PN}-ath10k-license" +RDEPENDS:${PN}-ath10k += "${PN}-ath10k-wcn3990" +RDEPENDS:${PN}-ath10k-wcn3990 += "${PN}-ath10k-license" +RDEPENDS:${PN}-ath11k += "${PN}-ath10k-license" +RDEPENDS:${PN}-ath12k += "${PN}-ath10k-license" +RDEPENDS:${PN}-qca += "${PN}-ath10k-license" + +# For ralink +LICENSE:${PN}-ralink = "Firmware-ralink-firmware" +LICENSE:${PN}-ralink-license = "Firmware-ralink-firmware" + +FILES:${PN}-ralink-license = "${nonarch_base_libdir}/firmware/LICENCE.ralink-firmware.txt" +FILES:${PN}-ralink = " \ + ${nonarch_base_libdir}/firmware/rt*.bin \ +" + +RDEPENDS:${PN}-ralink += "${PN}-ralink-license" + +# For mediatek MT7601U +LICENSE:${PN}-mt76x-license = "Firmware-ralink_a_mediatek_company_firmware" +FILES:${PN}-mt76x-license = "${nonarch_base_libdir}/firmware/LICENCE.ralink_a_mediatek_company_firmware" + +LICENSE:${PN}-mt7601u = "Firmware-ralink_a_mediatek_company_firmware" + +FILES:${PN}-mt7601u = " \ + ${nonarch_base_libdir}/firmware/mediatek/mt7601u.bin \ + ${nonarch_base_libdir}/firmware/mt7601u.bin \ +" +RDEPENDS:${PN}-mt7601u += "${PN}-mt76x-license" + +# For MediaTek Bluetooth USB driver 7650 +LICENSE:${PN}-mt7650 = "Firmware-ralink_a_mediatek_company_firmware" + +FILES:${PN}-mt7650 = " \ + ${nonarch_base_libdir}/firmware/mediatek/mt7650.bin \ + ${nonarch_base_libdir}/firmware/mt7650.bin \ +" +RDEPENDS:${PN}-mt7650 += "${PN}-mt76x-license" + +# For MediaTek MT76x2 Wireless MACs +LICENSE:${PN}-mt76x2 = "Firmware-ralink_a_mediatek_company_firmware" + +FILES:${PN}-mt76x2 = " \ + ${nonarch_base_libdir}/firmware/mediatek/mt7662.bin \ + ${nonarch_base_libdir}/firmware/mt7662.bin \ + ${nonarch_base_libdir}/firmware/mediatek/mt7662_rom_patch.bin \ + ${nonarch_base_libdir}/firmware/mt7662_rom_patch.bin \ +" +RDEPENDS:${PN}-mt76x2 += "${PN}-mt76x-license" + +# For MediaTek +LICENSE:${PN}-mediatek = "Firmware-mediatek" +LICENSE:${PN}-mediatek-license = "Firmware-mediatek" + +FILES:${PN}-mediatek = " \ + ${nonarch_base_libdir}/firmware/mediatek/* \ + ${nonarch_base_libdir}/firmware/vpu_d.bin \ + ${nonarch_base_libdir}/firmware/vpu_p.bin \ +" +FILES:${PN}-mediatek-license = " \ + ${nonarch_base_libdir}/firmware/LICENCE.mediatek \ +" +RDEPENDS:${PN}-mediatek += "${PN}-mediatek-license" + +# For Microchip +LICENSE:${PN}-microchip = "Firmware-microchip" +LICENSE:${PN}-microchip-license = "Firmware-microchip" + +FILES:${PN}-microchip = "${nonarch_base_libdir}/firmware/microchip/*" +FILES:${PN}-microchip-license = " \ + ${nonarch_base_libdir}/firmware/LICENCE.microchip \ +" +RDEPENDS:${PN}-microchip += "${PN}-microchip-license" + +# For MOXA +LICENSE:${PN}-moxa = "Firmware-moxa" +LICENSE:${PN}-moxa-license = "Firmware-moxa" + +FILES:${PN}-moxa = "${nonarch_base_libdir}/firmware/moxa" +FILES:${PN}-moxa-license = "${nonarch_base_libdir}/firmware/LICENCE.moxa" + +RDEPENDS:${PN}-moxa += "${PN}-moxa-license" + +# For radeon + +LICENSE:${PN}-radeon = "Firmware-radeon" +LICENSE:${PN}-radeon-license = "Firmware-radeon" + +FILES:${PN}-radeon-license = "${nonarch_base_libdir}/firmware/LICENSE.radeon" +FILES:${PN}-radeon = " \ + ${nonarch_base_libdir}/firmware/radeon \ +" + +RDEPENDS:${PN}-radeon += "${PN}-radeon-license" + +# For amdgpu +LICENSE:${PN}-amdgpu = "Firmware-amdgpu" +LICENSE:${PN}-amdgpu-license = "Firmware-amdgpu" + +FILES:${PN}-amdgpu-license = "${nonarch_base_libdir}/firmware/LICENSE.amdgpu" +FILES:${PN}-amdgpu = " \ + ${nonarch_base_libdir}/firmware/amdgpu \ +" + +RDEPENDS:${PN}-amdgpu += "${PN}-amdgpu-license" + +# For lontium +LICENSE:${PN}-lt9611uxc = "Firmware-Lontium" + +FILES:${PN}-lontium-license = "${nonarch_base_libdir}/firmware/LICENSE.Lontium" +FILES:${PN}-lt9611uxc = "${nonarch_base_libdir}/firmware/lt9611uxc_fw.bin" + +# For Arm Mali +LICENSE:${PN}-mali-csffw-arch108 = "Firmware-mali_csffw" +FILES:${PN}-mali-csffw-license = "${nonarch_base_libdir}/firmware/LICENCE.mali_csffw" +FILES:${PN}-mali-csffw-arch108 = "${nonarch_base_libdir}/firmware/arm/mali/arch10.8/mali_csffw.bin" + +RDEPENDS:${PN}-mali-csffw-arch108 += "${PN}-mali-csffw-license" + +# For marvell +LICENSE:${PN}-pcie8897 = "Firmware-Marvell" +LICENSE:${PN}-pcie8997 = "Firmware-Marvell" +LICENSE:${PN}-sd8686 = "Firmware-Marvell" +LICENSE:${PN}-sd8688 = "Firmware-Marvell" +LICENSE:${PN}-sd8787 = "Firmware-Marvell" +LICENSE:${PN}-sd8797 = "Firmware-Marvell" +LICENSE:${PN}-sd8801 = "Firmware-Marvell" +LICENSE:${PN}-sd8887 = "Firmware-Marvell" +LICENSE:${PN}-sd8897 = "Firmware-Marvell" +LICENSE:${PN}-sd8997 = "Firmware-Marvell" +LICENSE:${PN}-usb8997 = "Firmware-Marvell" +LICENSE:${PN}-marvell-license = "Firmware-Marvell" + +FILES:${PN}-marvell-license = "${nonarch_base_libdir}/firmware/LICENCE.Marvell" +FILES:${PN}-pcie8897 = " \ + ${nonarch_base_libdir}/firmware/mrvl/pcie8897_uapsta.bin \ +" +FILES:${PN}-pcie8997 = " \ + ${nonarch_base_libdir}/firmware/mrvl/pcie8997_wlan_v4.bin \ + ${nonarch_base_libdir}/firmware/mrvl/pcieuart8997_combo_v4.bin \ + ${nonarch_base_libdir}/firmware/mrvl/pcieusb8997_combo_v4.bin \ +" +FILES:${PN}-sd8686 = " \ + ${nonarch_base_libdir}/firmware/libertas/sd8686_v9* \ + ${nonarch_base_libdir}/firmware/sd8686* \ +" +FILES:${PN}-sd8688 = " \ + ${nonarch_base_libdir}/firmware/libertas/sd8688* \ + ${nonarch_base_libdir}/firmware/mrvl/sd8688* \ +" +FILES:${PN}-sd8787 = " \ + ${nonarch_base_libdir}/firmware/mrvl/sd8787_uapsta.bin \ +" +FILES:${PN}-sd8797 = " \ + ${nonarch_base_libdir}/firmware/mrvl/sd8797_uapsta.bin \ +" +FILES:${PN}-sd8801 = " \ + ${nonarch_base_libdir}/firmware/mrvl/sd8801_uapsta.bin \ +" +FILES:${PN}-sd8887 = " \ + ${nonarch_base_libdir}/firmware/mrvl/sd8887_uapsta.bin \ +" +FILES:${PN}-sd8897 = " \ + ${nonarch_base_libdir}/firmware/mrvl/sd8897_uapsta.bin \ +" +do_install:append() { + # The kernel 5.6.x driver still uses the old name, provide a symlink for + # older kernels + ln -fs sdsd8997_combo_v4.bin ${D}${nonarch_base_libdir}/firmware/mrvl/sd8997_uapsta.bin +} +FILES:${PN}-sd8997 = " \ + ${nonarch_base_libdir}/firmware/mrvl/sd8997_uapsta.bin \ + ${nonarch_base_libdir}/firmware/mrvl/sdsd8997_combo_v4.bin \ +" +FILES:${PN}-usb8997 = " \ + ${nonarch_base_libdir}/firmware/mrvl/usbusb8997_combo_v4.bin \ +" + +RDEPENDS:${PN}-sd8686 += "${PN}-marvell-license" +RDEPENDS:${PN}-sd8688 += "${PN}-marvell-license" +RDEPENDS:${PN}-sd8787 += "${PN}-marvell-license" +RDEPENDS:${PN}-sd8797 += "${PN}-marvell-license" +RDEPENDS:${PN}-sd8801 += "${PN}-marvell-license" +RDEPENDS:${PN}-sd8887 += "${PN}-marvell-license" +RDEPENDS:${PN}-sd8897 += "${PN}-marvell-license" +RDEPENDS:${PN}-sd8997 += "${PN}-marvell-license" +RDEPENDS:${PN}-usb8997 += "${PN}-marvell-license" + +# For netronome +LICENSE:${PN}-netronome = "Firmware-netronome" + +FILES:${PN}-netronome-license = " \ + ${nonarch_base_libdir}/firmware/LICENCE.Netronome \ +" +FILES:${PN}-netronome = " \ + ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0081*.nffw \ + ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0096*.nffw \ + ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0097*.nffw \ + ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0099*.nffw \ + ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0058-0011_2x40.nffw \ + ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0058-0012_2x40.nffw \ + ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0078-0011_1x100.nffw \ + ${nonarch_base_libdir}/firmware/netronome/bpf \ + ${nonarch_base_libdir}/firmware/netronome/flower \ + ${nonarch_base_libdir}/firmware/netronome/nic \ + ${nonarch_base_libdir}/firmware/netronome/nic-sriov \ +" + +RDEPENDS:${PN}-netronome += "${PN}-netronome-license" + +# For NXP +LICENSE:${PN}-nxp8987-sdio = "Firmware-nxp" +LICENSE:${PN}-nxp8997-common = "Firmware-nxp" +LICENSE:${PN}-nxp8997-pcie = "Firmware-nxp" +LICENSE:${PN}-nxp8997-sdio = "Firmware-nxp" +LICENSE:${PN}-nxp9098-common = "Firmware-nxp" +LICENSE:${PN}-nxp9098-pcie = "Firmware-nxp" +LICENSE:${PN}-nxp9098-sdio = "Firmware-nxp" +LICENSE:${PN}-nxpiw416-sdio = "Firmware-nxp" +LICENSE:${PN}-nxpiw612-sdio = "Firmware-nxp" +LICENSE:${PN}-nxp-license = "Firmware-nxp" + +FILES:${PN}-nxp8987-sdio = "${nonarch_base_libdir}/firmware/nxp/*8987*" +FILES:${PN}-nxp8997-common = " \ + ${nonarch_base_libdir}/firmware/nxp/uartuart8997_bt_v4.bin \ + ${nonarch_base_libdir}/firmware/nxp/helper_uart_3000000.bin \ +" +ALLOW_EMPTY:${PN}-nxp8997-pcie = "1" +ALLOW_EMPTY:${PN}-nxp8997-sdio = "1" +FILES:${PN}-nxp9098-common = "${nonarch_base_libdir}/firmware/nxp/uartuart9098_bt_v1.bin" +ALLOW_EMPTY:${PN}-nxp9098-pcie = "1" +ALLOW_EMPTY:${PN}-nxp9098-sdio = "1" +FILES:${PN}-nxpiw416-sdio = "${nonarch_base_libdir}/firmware/nxp/*iw416*" +FILES:${PN}-nxpiw612-sdio = "${nonarch_base_libdir}/firmware/nxp/uartspi_n61x_v1.bin.se" +FILES:${PN}-nxp-license = "${nonarch_base_libdir}/firmware/LICENSE.nxp" + +RDEPENDS:${PN}-nxp8987-sdio += "${PN}-nxp-license" +RDEPENDS:${PN}-nxp8997-common += "${PN}-nxp-license" +RDEPENDS:${PN}-nxp8997-pcie += "${PN}-nxp8997-common" +RDEPENDS:${PN}-nxp8997-sdio += "${PN}-nxp8997-common" +RDEPENDS:${PN}-nxp9098-common += "${PN}-nxp-license" +RDEPENDS:${PN}-nxp9098-pcie += "${PN}-nxp9098-common" +RDEPENDS:${PN}-nxp9098-sdio += "${PN}-nxp9098-common" +RDEPENDS:${PN}-nxpiw416-sdio += "${PN}-nxp-license" +RDEPENDS:${PN}-nxpiw612-sdio += "${PN}-nxp-license" + +# For nxp-mc +LICENSE:${PN}-nxp-mc = "Firmware-nxp_mc_firmware" +LICENSE:${PN}-nxp-mc-license = "Firmware-nxp_mc_firmware" + +FILES:${PN}-nxp-mc= "${nonarch_base_libdir}/firmware/dpaa2/mc/*" +FILES:${PN}-nxp-mc-license = " \ + ${nonarch_base_libdir}/firmware/LICENSE.nxp_mc_firmware \ +" +RDEPENDS:${PN}-nxp-mc += "${PN}-nxp-mc-license" + +# For Nvidia +LICENSE:${PN}-nvidia-gpu = "Firmware-nvidia" +LICENSE:${PN}-nvidia-tegra = "Firmware-nvidia" +LICENSE:${PN}-nvidia-tegra-k1 = "Firmware-nvidia" +LICENSE:${PN}-nvidia-license = "Firmware-nvidia" + +FILES:${PN}-nvidia-gpu = "${nonarch_base_libdir}/firmware/nvidia" +FILES:${PN}-nvidia-tegra = " \ + ${nonarch_base_libdir}/firmware/nvidia/tegra* \ + ${nonarch_base_libdir}/firmware/nvidia/gm20b \ + ${nonarch_base_libdir}/firmware/nvidia/gp10b \ +" +FILES:${PN}-nvidia-tegra-k1 = " \ + ${nonarch_base_libdir}/firmware/nvidia/tegra124 \ + ${nonarch_base_libdir}/firmware/nvidia/gk20a \ +" +FILES:${PN}-nvidia-license = "${nonarch_base_libdir}/firmware/LICENCE.nvidia" + +RDEPENDS:${PN}-nvidia-gpu += "${PN}-nvidia-license" +RDEPENDS:${PN}-nvidia-tegra += "${PN}-nvidia-license" +RDEPENDS:${PN}-nvidia-tegra-k1 += "${PN}-nvidia-license" + +# For OLPC +LICENSE:${PN}-olpc = "Firmware-OLPC" +LICENSE:${PN}-olpc-license = "Firmware-OLPC" + +FILES:${PN}-olpc = " \ + ${nonarch_base_libdir}/firmware/libertas/lbtf_sdio.bin \ + ${nonarch_base_libdir}/firmware/lbtf_usb.bin \ + ${nonarch_base_libdir}/firmware/libertas/usb8388_olpc.bin \ +" +FILES:${PN}-olpc-license = "${nonarch_base_libdir}/firmware/LICENCE.OLPC" + +RDEPENDS:${PN}-olpc += "${PN}-olpc-license" + +# For phanfw +LICENSE:${PN}-phanfw = "Firmware-phanfw" +LICENSE:${PN}-phanfw-license = "Firmware-phanfw" + +FILES:${PN}-phanfw = "${nonarch_base_libdir}/firmware/phanfw.bin" +FILES:${PN}-phanfw-license = "${nonarch_base_libdir}/firmware/LICENCE.phanfw" + +RDEPENDS:${PN}-phanfw += "${PN}-phanfw-license" + +# For PowerVR +LICENSE:${PN}-powervr = "Firmware-powervr" +LICENSE:${PN}-powervr-license = "Firmware-powervr" + +FILES:${PN}-powervr = "${nonarch_base_libdir}/firmware/powervr" +FILES:${PN}-powervr-license = "${nonarch_base_libdir}/firmware/LICENSE.powervr" + +RDEPENDS:${PN}-powervr += "${PN}-powervr-license" + +# For qla2xxx +LICENSE:${PN}-qla2xxx = "Firmware-qla2xxx" +LICENSE:${PN}-qla2xxx-license = "Firmware-qla2xxx" + +FILES:${PN}-qla2xxx = "${nonarch_base_libdir}/firmware/ql2*" +FILES:${PN}-qla2xxx-license = "${nonarch_base_libdir}/firmware/LICENCE.qla2xxx" + +RDEPENDS:${PN}-qla2xxx += "${PN}-qla2xxx-license" + +# For RSI RS911x WiFi +LICENSE:${PN}-rs9113 = "WHENCE" +LICENSE:${PN}-rs9116 = "WHENCE" + +FILES:${PN}-rs9113 = " ${nonarch_base_libdir}/firmware/rsi/rs9113*.rps " +FILES:${PN}-rs9116 = " ${nonarch_base_libdir}/firmware/rsi/rs9116*.rps " + +RDEPENDS:${PN}-rs9113 += "${PN}-whence-license" +RDEPENDS:${PN}-rs9116 += "${PN}-whence-license" + +# For rtl +LICENSE:${PN}-rtl8188 = "Firmware-rtlwifi_firmware" +LICENSE:${PN}-rtl8192cu = "Firmware-rtlwifi_firmware" +LICENSE:${PN}-rtl8192ce = "Firmware-rtlwifi_firmware" +LICENSE:${PN}-rtl8192su = "Firmware-rtlwifi_firmware" +LICENSE:${PN}-rtl8723 = "Firmware-rtlwifi_firmware" +LICENSE:${PN}-rtl8761 = "Firmware-rtlwifi_firmware" +LICENSE:${PN}-rtl8821 = "Firmware-rtlwifi_firmware" +LICENSE:${PN}-rtl8822 = "Firmware-rtlwifi_firmware" +LICENSE:${PN}-rtl-license = "Firmware-rtlwifi_firmware" +LICENSE:${PN}-rtl-nic = "WHENCE" +LICENSE:${PN}-rtl8168 = "WHENCE" + +FILES:${PN}-rtl-license = " \ + ${nonarch_base_libdir}/firmware/LICENCE.rtlwifi_firmware.txt \ +" +FILES:${PN}-rtl8188 = " \ + ${nonarch_base_libdir}/firmware/rtlwifi/rtl8188*.bin \ +" +FILES:${PN}-rtl8192cu = " \ + ${nonarch_base_libdir}/firmware/rtlwifi/rtl8192cufw*.bin \ +" +FILES:${PN}-rtl8192ce = " \ + ${nonarch_base_libdir}/firmware/rtlwifi/rtl8192cfw*.bin \ +" +FILES:${PN}-rtl8192su = " \ + ${nonarch_base_libdir}/firmware/rtlwifi/rtl8712u.bin \ +" +FILES:${PN}-rtl8723 = " \ + ${nonarch_base_libdir}/firmware/rtlwifi/rtl8723*.bin \ +" +FILES:${PN}-rtl8821 = " \ + ${nonarch_base_libdir}/firmware/rtlwifi/rtl8821*.bin \ + ${nonarch_base_libdir}/firmware/rtw88/rtw8821*.bin \ +" +FILES:${PN}-rtl8761 = " \ + ${nonarch_base_libdir}/firmware/rtl_bt/rtl8761*.bin \ +" +FILES:${PN}-rtl8168 = " \ + ${nonarch_base_libdir}/firmware/rtl_nic/rtl8168*.fw \ +" +FILES:${PN}-rtl8822 = " \ + ${nonarch_base_libdir}/firmware/rtl_bt/rtl8822*.bin \ + ${nonarch_base_libdir}/firmware/rtw88/rtw8822*.bin \ + ${nonarch_base_libdir}/firmware/rtlwifi/rtl8822*.bin \ +" +FILES:${PN}-rtl-nic = " \ + ${nonarch_base_libdir}/firmware/rtl_nic/*.fw \ +" + +RDEPENDS:${PN}-rtl8188 += "${PN}-rtl-license" +RDEPENDS:${PN}-rtl8192ce += "${PN}-rtl-license" +RDEPENDS:${PN}-rtl8192cu += "${PN}-rtl-license" +RDEPENDS:${PN}-rtl8192su = "${PN}-rtl-license" +RDEPENDS:${PN}-rtl8723 += "${PN}-rtl-license" +RDEPENDS:${PN}-rtl8821 += "${PN}-rtl-license" +RDEPENDS:${PN}-rtl8761 += "${PN}-rtl-license" +RDEPENDS:${PN}-rtl8822 += "${PN}-rtl-license" +RDEPENDS:${PN}-rtl8168 += "${PN}-whence-license" +RDEPENDS:${PN}-rtl-nic += "${PN}-whence-license" + +# For Silabs +LICENSE:${PN}-wfx = "Firmware-wfx" +LICENSE:${PN}-wfx-license = "Firmware-wfx" + +FILES:${PN}-wfx = " \ + ${nonarch_base_libdir}/firmware/wfx/*.pds \ + ${nonarch_base_libdir}/firmware/wfx/*.sec \ +" +FILES:${PN}-wfx-license = "${nonarch_base_libdir}/firmware/wfx/LICENCE.wf200" + +RDEPENDS:${PN}-wfx += "${PN}-wfx-license" + +# For TI wl1251 +LICENSE:${PN}-wl1251 = "Firmware-wl1251" +LICENSE:${PN}-wl1251-license = "Firmware-wl1251" + +FILES:${PN}-wl1251 = " \ + ${nonarch_base_libdir}/firmware/ti-connectivity/wl1251-fw.bin \ + ${nonarch_base_libdir}/firmware/ti-connectivity/wl1251-nvs.bin \ +" +FILES:${PN}-wl1251-license = "${nonarch_base_libdir}/firmware/LICENCE.wl1251" + +RDEPENDS:${PN}-wl1251 += "${PN}-wl1251-license" + +# For ti-connectivity +LICENSE:${PN}-wlcommon = "Firmware-ti-connectivity" +LICENSE:${PN}-wl12xx = "Firmware-ti-connectivity" +LICENSE:${PN}-wl18xx = "Firmware-ti-connectivity" +LICENSE:${PN}-cc33xx = "Firmware-ti-connectivity" +LICENSE:${PN}-ti-connectivity-license = "Firmware-ti-connectivity" + +FILES:${PN}-ti-connectivity-license = "${nonarch_base_libdir}/firmware/LICENCE.ti-connectivity" +# wl18xx optionally needs wl1271-nvs.bin (which itself is a symlink to +# wl127x-nvs.bin) - see linux/drivers/net/wireless/ti/wlcore/sdio.c +# and drivers/net/wireless/ti/wlcore/spi.c. +# While they're optional and actually only used to override the MAC +# address on wl18xx, driver loading will delay (by udev timout - 60s) +# if not there. So let's make it available always. Because it's a +# symlink, both need to go to wlcommon. +FILES:${PN}-wlcommon = " \ + ${nonarch_base_libdir}/firmware/ti-connectivity/TI* \ + ${nonarch_base_libdir}/firmware/ti-connectivity/wl127x-nvs.bin \ + ${nonarch_base_libdir}/firmware/ti-connectivity/wl1271-nvs.bin \ +" +FILES:${PN}-wl12xx = " \ + ${nonarch_base_libdir}/firmware/ti-connectivity/wl12* \ +" +FILES:${PN}-wl18xx = " \ + ${nonarch_base_libdir}/firmware/ti-connectivity/wl18* \ +" + +FILES:${PN}-cc33xx = " \ + ${nonarch_base_libdir}/firmware/ti-connectivity/cc33* \ +" + +RDEPENDS:${PN}-wl12xx = "${PN}-ti-connectivity-license ${PN}-wlcommon" +RDEPENDS:${PN}-wl18xx = "${PN}-ti-connectivity-license ${PN}-wlcommon" +RDEPENDS:${PN}-cc33xx = "${PN}-ti-connectivity-license" + +# For ti-keystone +LICENSE:${PN}-ti-keystone = "Firmware-ti-keystone" +LICENSE:${PN}-ti-keystone-license = "Firmware-ti-keystone" + +FILES:${PN}-ti-keystone = "${nonarch_base_libdir}/firmware/ti-keystone/*" +FILES:${PN}-ti-keystone-license = " \ + ${nonarch_base_libdir}/firmware/LICENCE.ti-keystone \ +" +RDEPENDS:${PN}-ti-keystone += "${PN}-ti-keystone-license" + +# For vt6656 +LICENSE:${PN}-vt6656 = "Firmware-via_vt6656" +LICENSE:${PN}-vt6656-license = "Firmware-via_vt6656" + +FILES:${PN}-vt6656-license = "${nonarch_base_libdir}/firmware/LICENCE.via_vt6656" +FILES:${PN}-vt6656 = " \ + ${nonarch_base_libdir}/firmware/vntwusb.fw \ +" + +RDEPENDS:${PN}-vt6656 = "${PN}-vt6656-license" + +# For xc4000 +LICENSE:${PN}-xc4000 = "Firmware-xc4000" +LICENSE:${PN}-xc4000-license = "Firmware-xc4000" + +FILES:${PN}-xc4000 = "${nonarch_base_libdir}/firmware/dvb-fe-xc4000-1.4.1.fw" +FILES:${PN}-xc4000-license = "${nonarch_base_libdir}/firmware/LICENCE.xc4000" + +RDEPENDS:${PN}-xc4000 += "${PN}-xc4000-license" + +# For xc5000 +LICENSE:${PN}-xc5000 = "Firmware-xc5000" +LICENSE:${PN}-xc5000-license = "Firmware-xc5000" + +FILES:${PN}-xc5000 = "${nonarch_base_libdir}/firmware/dvb-fe-xc5000-1.6.114.fw" +FILES:${PN}-xc5000-license = "${nonarch_base_libdir}/firmware/LICENCE.xc5000" + +RDEPENDS:${PN}-xc5000 += "${PN}-xc5000-license" + +# For xc5000c +LICENSE:${PN}-xc5000c = "Firmware-xc5000c" +LICENSE:${PN}-xc5000c-license = "Firmware-xc5000c" + +FILES:${PN}-xc5000c = " \ + ${nonarch_base_libdir}/firmware/dvb-fe-xc5000c-4.1.30.7.fw \ +" +FILES:${PN}-xc5000c-license = "${nonarch_base_libdir}/firmware/LICENCE.xc5000c" + +RDEPENDS:${PN}-xc5000c += "${PN}-xc5000c-license" + +# For broadcom + +# for i in `grep brcm WHENCE | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo -e " \${PN}-$pkg \\"; done | sort -u + +LICENSE:${PN}-broadcom-license = "Firmware-broadcom_bcm43xx" +FILES:${PN}-broadcom-license = "${nonarch_base_libdir}/firmware/LICENCE.broadcom_bcm43xx" + +# for i in `grep brcm WHENCE | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo "$i - $pkg"; echo -e "FILES:\${PN}-$pkg = \"\${nonarch_base_libdir}/firmware/brcm/$i\""; done | grep ^FILES + +FILES:${PN}-bcm43xx = "${nonarch_base_libdir}/firmware/brcm/bcm43xx-0.fw" +FILES:${PN}-bcm43xx-hdr = "${nonarch_base_libdir}/firmware/brcm/bcm43xx_hdr-0.fw" +FILES:${PN}-bcm4329-fullmac = "${nonarch_base_libdir}/firmware/brcm/bcm4329-fullmac-4.bin" +FILES:${PN}-bcm43236b = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43236b.bin" +FILES:${PN}-bcm4329 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4329-sdio.bin" +FILES:${PN}-bcm4330 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4330-sdio.*" +FILES:${PN}-bcm4334 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4334-sdio.bin" +FILES:${PN}-bcm4335 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4335-sdio.bin" +FILES:${PN}-bcm4339 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4339-sdio.bin \ + ${nonarch_base_libdir}/firmware/cypress/cyfmac4339-sdio.bin \ +" +FILES:${PN}-bcm43241b0 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b0-sdio.bin" +FILES:${PN}-bcm43241b4 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b4-sdio.bin" +FILES:${PN}-bcm43241b5 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b5-sdio.bin" +FILES:${PN}-bcm43242a = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43242a.bin" +FILES:${PN}-bcm43143 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43143.bin \ + ${nonarch_base_libdir}/firmware/brcm/brcmfmac43143-sdio.bin \ +" +FILES:${PN}-bcm43430a0 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430a0-sdio.*" +FILES:${PN}-bcm43455 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.* \ + ${nonarch_base_libdir}/firmware/cypress/cyfmac43455-sdio.* \ +" +FILES:${PN}-bcm4350c2 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4350c2-pcie.bin" +FILES:${PN}-bcm4350 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4350-pcie.bin" +FILES:${PN}-bcm4356 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-sdio.* \ + ${nonarch_base_libdir}/firmware/cypress/cyfmac4356-sdio.* \ +" +FILES:${PN}-bcm43569 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43569.bin" +FILES:${PN}-bcm43570 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43570-pcie.bin \ + ${nonarch_base_libdir}/firmware/cypress/cyfmac43570-pcie.bin \ +" +FILES:${PN}-bcm4358 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4358-pcie.bin" +FILES:${PN}-bcm43602 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43602-pcie.bin \ + ${nonarch_base_libdir}/firmware/brcm/brcmfmac43602-pcie.ap.bin \ +" +FILES:${PN}-bcm4366b = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4366b-pcie.bin" +FILES:${PN}-bcm4366c = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4366c-pcie.bin" +FILES:${PN}-bcm4371 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4371-pcie.bin" + +# for i in `grep brcm WHENCE | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo -e "LICENSE:\${PN}-$pkg = \"Firmware-broadcom_bcm43xx\"\nRDEPENDS_\${PN}-$pkg += \"\${PN}-broadcom-license\""; done +# Currently 1st one and last 6 have cypress LICENSE + +LICENSE:${PN}-bcm43xx = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm43xx += "${PN}-broadcom-license" +LICENSE:${PN}-bcm43xx-hdr = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm43xx-hdr += "${PN}-broadcom-license" +LICENSE:${PN}-bcm4329-fullmac = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm4329-fullmac += "${PN}-broadcom-license" +LICENSE:${PN}-bcm43236b = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm43236b += "${PN}-broadcom-license" +LICENSE:${PN}-bcm4329 = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm4329 += "${PN}-broadcom-license" +LICENSE:${PN}-bcm4330 = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm4330 += "${PN}-broadcom-license" +LICENSE:${PN}-bcm4334 = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm4334 += "${PN}-broadcom-license" +LICENSE:${PN}-bcm4335 = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm4335 += "${PN}-broadcom-license" +LICENSE:${PN}-bcm4339 = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm4339 += "${PN}-broadcom-license" +LICENSE:${PN}-bcm43241b0 = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm43241b0 += "${PN}-broadcom-license" +LICENSE:${PN}-bcm43241b4 = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm43241b4 += "${PN}-broadcom-license" +LICENSE:${PN}-bcm43241b5 = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm43241b5 += "${PN}-broadcom-license" +LICENSE:${PN}-bcm43242a = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm43242a += "${PN}-broadcom-license" +LICENSE:${PN}-bcm43143 = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm43143 += "${PN}-broadcom-license" +LICENSE:${PN}-bcm43430a0 = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm43430a0 += "${PN}-broadcom-license" +LICENSE:${PN}-bcm43455 = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm43455 += "${PN}-broadcom-license" +LICENSE:${PN}-bcm4350c2 = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm4350c2 += "${PN}-broadcom-license" +LICENSE:${PN}-bcm4350 = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm4350 += "${PN}-broadcom-license" +LICENSE:${PN}-bcm4356 = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm4356 += "${PN}-broadcom-license" +LICENSE:${PN}-bcm43569 = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm43569 += "${PN}-broadcom-license" +LICENSE:${PN}-bcm43570 = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm43570 += "${PN}-broadcom-license" +LICENSE:${PN}-bcm4358 = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm4358 += "${PN}-broadcom-license" +LICENSE:${PN}-bcm43602 = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm43602 += "${PN}-broadcom-license" +LICENSE:${PN}-bcm4366b = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm4366b += "${PN}-broadcom-license" +LICENSE:${PN}-bcm4366c = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm4366c += "${PN}-broadcom-license" +LICENSE:${PN}-bcm4371 = "Firmware-broadcom_bcm43xx" +RDEPENDS:${PN}-bcm4371 += "${PN}-broadcom-license" + +# For broadcom cypress + +LICENSE:${PN}-cypress-license = "Firmware-cypress" +FILES:${PN}-cypress-license = "${nonarch_base_libdir}/firmware/LICENCE.cypress" + +FILES:${PN}-bcm-0bb4-0306 = "${nonarch_base_libdir}/firmware/brcm/BCM-0bb4-0306.hcd" +FILES:${PN}-bcm43340 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43340-sdio.* \ + ${nonarch_base_libdir}/firmware/cypress/cyfmac43340-sdio.*" +FILES:${PN}-bcm43362 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43362-sdio.* \ + ${nonarch_base_libdir}/firmware/cypress/cyfmac43362-sdio.*" +FILES:${PN}-bcm43430 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.* \ + ${nonarch_base_libdir}/firmware/cypress/cyfmac43430-sdio.*" +FILES:${PN}-bcm4354 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4354-sdio.bin \ + ${nonarch_base_libdir}/firmware/cypress/cyfmac4354-sdio.bin \ +" +FILES:${PN}-bcm4356-pcie = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-pcie.* \ + ${nonarch_base_libdir}/firmware/cypress/cyfmac4356-pcie.* \ +" +FILES:${PN}-bcm4373 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4373-sdio.bin \ + ${nonarch_base_libdir}/firmware/brcm/brcmfmac4373.bin \ + ${nonarch_base_libdir}/firmware/cypress/cyfmac4373-sdio.bin \ + ${nonarch_base_libdir}/firmware/brcm/brcmfmac4373-sdio.clm_blob \ + ${nonarch_base_libdir}/firmware/cypress/cyfmac4373-sdio.clm_blob \ +" + +LICENSE:${PN}-bcm-0bb4-0306 = "Firmware-cypress" +RDEPENDS:${PN}-bcm-0bb4-0306 += "${PN}-cypress-license" +LICENSE:${PN}-bcm43340 = "Firmware-cypress" +RDEPENDS:${PN}-bcm43340 += "${PN}-cypress-license" +LICENSE:${PN}-bcm43362 = "Firmware-cypress" +RDEPENDS:${PN}-bcm43362 += "${PN}-cypress-license" +LICENSE:${PN}-bcm43430 = "Firmware-cypress" +RDEPENDS:${PN}-bcm43430 += "${PN}-cypress-license" +LICENSE:${PN}-bcm4354 = "Firmware-cypress" +RDEPENDS:${PN}-bcm4354 += "${PN}-cypress-license" +LICENSE:${PN}-bcm4356-pcie = "Firmware-cypress" +RDEPENDS:${PN}-bcm4356-pcie += "${PN}-cypress-license" +LICENSE:${PN}-bcm4373 = "Firmware-cypress" +RDEPENDS:${PN}-bcm4373 += "${PN}-cypress-license" + +# For Broadcom bnx2 +# +# which is a separate case to the other Broadcom firmwares since its +# license is contained in the shared WHENCE file. + +LICENSE:${PN}-bnx2 = "WHENCE" +LICENSE:${PN}-whence-license = "WHENCE" + +FILES:${PN}-bnx2 = " \ + ${nonarch_base_libdir}/firmware/bnx2/bnx2-mips*.fw \ + ${nonarch_base_libdir}/firmware/bnx2/bnx2-rv2p*.fw \ +" +FILES:${PN}-whence-license = "${nonarch_base_libdir}/firmware/WHENCE" + +RDEPENDS:${PN}-bnx2 += "${PN}-whence-license" +RPROVIDES:${PN}-bnx2 = "${PN}-bnx2-mips" + +LICENSE:${PN}-bnx2x = "WHENCE" + +FILES:${PN}-bnx2x = "${nonarch_base_libdir}/firmware/bnx2x/bnx2x*.fw" + +RDEPENDS:${PN}-bnx2x += "${PN}-whence-license" + +# For cirrus +LICENSE:${PN}-cirrus = "Firmware-cirrus" +LICENSE:${PN}-cirrus-license = "Firmware-cirrus" + +FILES:${PN}-cirrus = "${nonarch_base_libdir}/firmware/cirrus/*" +FILES:${PN}-cirrus-license = "${nonarch_base_libdir}/firmware/LICENSE.cirrus" + +RDEPENDS:${PN}-cirrus += "${PN}-cirrus-license" + +# For cnm +LICENSE:${PN}-cnm = "Firmware-cnm" +LICENSE:${PN}-cnm-license = "Firmware-cnm" + +FILES:${PN}-cnm = "${nonarch_base_libdir}/firmware/cnm/wave521c_k3_codec_fw.bin" +FILES:${PN}-cnm-license = "${nonarch_base_libdir}/firmware/LICENCE.cnm" + +RDEPENDS:${PN}-cnm += "${PN}-cnm-license" + +# For imx-sdma +LICENSE:${PN}-imx-sdma-imx6q = "Firmware-imx-sdma_firmware" +LICENSE:${PN}-imx-sdma-imx7d = "Firmware-imx-sdma_firmware" +LICENSE:${PN}-imx-sdma-license = "Firmware-imx-sdma_firmware" + +FILES:${PN}-imx-sdma-imx6q = "${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx6q.bin" + +RPROVIDES:${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q" +RREPLACES:${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q" +RCONFLICTS:${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q" + +FILES:${PN}-imx-sdma-imx7d = "${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx7d.bin" + +FILES:${PN}-imx-sdma-license = "${nonarch_base_libdir}/firmware/LICENSE.sdma_firmware" + +RDEPENDS:${PN}-imx-sdma-imx6q += "${PN}-imx-sdma-license" +RDEPENDS:${PN}-imx-sdma-imx7d += "${PN}-imx-sdma-license" + +# For iwlwifi +LICENSE:${PN}-iwlwifi = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-135-6 = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-3160-7 = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-3160-8 = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-3160-9 = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-3160-10 = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-3160-12 = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-3160-13 = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-3160-16 = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-3160-17 = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-6000-4 = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-6000g2a-5 = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-6000g2a-6 = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-6000g2b-5 = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-6000g2b-6 = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-6050-4 = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-6050-5 = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-7260 = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-7265 = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-7265d = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-8000c = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-8265 = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-9000 = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-9260 = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-misc = "Firmware-iwlwifi_firmware" +LICENSE:${PN}-iwlwifi-license = "Firmware-iwlwifi_firmware" + + +FILES:${PN}-iwlwifi-license = "${nonarch_base_libdir}/firmware/LICENCE.iwlwifi_firmware" +FILES:${PN}-iwlwifi-135-6 = "${nonarch_base_libdir}/firmware/iwlwifi-135-6.ucode" +FILES:${PN}-iwlwifi-3160-7 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-7.ucode" +FILES:${PN}-iwlwifi-3160-8 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-8.ucode" +FILES:${PN}-iwlwifi-3160-9 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-9.ucode" +FILES:${PN}-iwlwifi-3160-10 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-10.ucode" +FILES:${PN}-iwlwifi-3160-12 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-12.ucode" +FILES:${PN}-iwlwifi-3160-13 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-13.ucode" +FILES:${PN}-iwlwifi-3160-16 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-16.ucode" +FILES:${PN}-iwlwifi-3160-17 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-17.ucode" +FILES:${PN}-iwlwifi-6000-4 = "${nonarch_base_libdir}/firmware/iwlwifi-6000-4.ucode" +FILES:${PN}-iwlwifi-6000g2a-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2a-5.ucode" +FILES:${PN}-iwlwifi-6000g2a-6 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2a-6.ucode" +FILES:${PN}-iwlwifi-6000g2b-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2b-5.ucode" +FILES:${PN}-iwlwifi-6000g2b-6 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2b-6.ucode" +FILES:${PN}-iwlwifi-6050-4 = "${nonarch_base_libdir}/firmware/iwlwifi-6050-4.ucode" +FILES:${PN}-iwlwifi-6050-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6050-5.ucode" +FILES:${PN}-iwlwifi-7260 = "${nonarch_base_libdir}/firmware/iwlwifi-7260-*.ucode" +FILES:${PN}-iwlwifi-7265 = "${nonarch_base_libdir}/firmware/iwlwifi-7265-*.ucode" +FILES:${PN}-iwlwifi-7265d = "${nonarch_base_libdir}/firmware/iwlwifi-7265D-*.ucode" +FILES:${PN}-iwlwifi-8000c = "${nonarch_base_libdir}/firmware/iwlwifi-8000C-*.ucode" +FILES:${PN}-iwlwifi-8265 = "${nonarch_base_libdir}/firmware/iwlwifi-8265-*.ucode" +FILES:${PN}-iwlwifi-9000 = "${nonarch_base_libdir}/firmware/iwlwifi-9000-*.ucode" +FILES:${PN}-iwlwifi-9260 = "${nonarch_base_libdir}/firmware/iwlwifi-9260-*.ucode" +FILES:${PN}-iwlwifi-misc = " \ + ${nonarch_base_libdir}/firmware/iwlwifi-*.ucode \ + ${nonarch_base_libdir}/firmware/iwlwifi-*.pnvm \ +" + +RDEPENDS:${PN}-iwlwifi-135-6 = "${PN}-iwlwifi-license" +RDEPENDS:${PN}-iwlwifi-3160-7 = "${PN}-iwlwifi-license" +RDEPENDS:${PN}-iwlwifi-3160-8 = "${PN}-iwlwifi-license" +RDEPENDS:${PN}-iwlwifi-3160-9 = "${PN}-iwlwifi-license" +RDEPENDS:${PN}-iwlwifi-3160-10 = "${PN}-iwlwifi-license" +RDEPENDS:${PN}-iwlwifi-3160-12 = "${PN}-iwlwifi-license" +RDEPENDS:${PN}-iwlwifi-3160-13 = "${PN}-iwlwifi-license" +RDEPENDS:${PN}-iwlwifi-3160-16 = "${PN}-iwlwifi-license" +RDEPENDS:${PN}-iwlwifi-3160-17 = "${PN}-iwlwifi-license" +RDEPENDS:${PN}-iwlwifi-6000-4 = "${PN}-iwlwifi-license" +RDEPENDS:${PN}-iwlwifi-6000g2a-5 = "${PN}-iwlwifi-license" +RDEPENDS:${PN}-iwlwifi-6000g2a-6 = "${PN}-iwlwifi-license" +RDEPENDS:${PN}-iwlwifi-6000g2b-5 = "${PN}-iwlwifi-license" +RDEPENDS:${PN}-iwlwifi-6000g2b-6 = "${PN}-iwlwifi-license" +RDEPENDS:${PN}-iwlwifi-6050-4 = "${PN}-iwlwifi-license" +RDEPENDS:${PN}-iwlwifi-6050-5 = "${PN}-iwlwifi-license" +RDEPENDS:${PN}-iwlwifi-7260 = "${PN}-iwlwifi-license" +RDEPENDS:${PN}-iwlwifi-7265 = "${PN}-iwlwifi-license" +RDEPENDS:${PN}-iwlwifi-7265d = "${PN}-iwlwifi-license" +RDEPENDS:${PN}-iwlwifi-8000c = "${PN}-iwlwifi-license" +RDEPENDS:${PN}-iwlwifi-8265 = "${PN}-iwlwifi-license" +RDEPENDS:${PN}-iwlwifi-9000 = "${PN}-iwlwifi-license" +RDEPENDS:${PN}-iwlwifi-9260 = "${PN}-iwlwifi-license" +RDEPENDS:${PN}-iwlwifi-misc = "${PN}-iwlwifi-license" + +# -iwlwifi-misc is a "catch all" package that includes all the iwlwifi +# firmwares that are not already included in other -iwlwifi- packages. +# -iwlwifi is a virtual package that depends upon all iwlwifi packages. +# These are distinct in order to allow the -misc firmwares to be installed +# without pulling in every other iwlwifi package. +ALLOW_EMPTY:${PN}-iwlwifi = "1" +ALLOW_EMPTY:${PN}-iwlwifi-misc = "1" + +# Handle package updating for the newly merged iwlwifi groupings +RPROVIDES:${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9" +RREPLACES:${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9" +RCONFLICTS:${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9" + +RPROVIDES:${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9" +RREPLACES:${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9" +RCONFLICTS:${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9" + +# For ibt +LICENSE:${PN}-ibt-license = "Firmware-ibt_firmware" +LICENSE:${PN}-ibt-hw-37-7 = "Firmware-ibt_firmware" +LICENSE:${PN}-ibt-hw-37-8 = "Firmware-ibt_firmware" +LICENSE:${PN}-ibt-11-5 = "Firmware-ibt_firmware" +LICENSE:${PN}-ibt-12-16 = "Firmware-ibt_firmware" +LICENSE:${PN}-ibt-17 = "Firmware-ibt_firmware" +LICENSE:${PN}-ibt-18 = "Firmware-ibt_firmware" +LICENSE:${PN}-ibt-20 = "Firmware-ibt_firmware" +LICENSE:${PN}-ibt-misc = "Firmware-ibt_firmware" + +FILES:${PN}-ibt-license = "${nonarch_base_libdir}/firmware/LICENCE.ibt_firmware" +FILES:${PN}-ibt-hw-37-7 = "${nonarch_base_libdir}/firmware/intel/ibt-hw-37.7*.bseq" +FILES:${PN}-ibt-hw-37-8 = "${nonarch_base_libdir}/firmware/intel/ibt-hw-37.8*.bseq" +FILES:${PN}-ibt-11-5 = "${nonarch_base_libdir}/firmware/intel/ibt-11-5.sfi ${nonarch_base_libdir}/firmware/intel/ibt-11-5.ddc" +FILES:${PN}-ibt-12-16 = "${nonarch_base_libdir}/firmware/intel/ibt-12-16.sfi ${nonarch_base_libdir}/firmware/intel/ibt-12-16.ddc" +FILES:${PN}-ibt-17 = "${nonarch_base_libdir}/firmware/intel/ibt-17-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-17-*.ddc" +FILES:${PN}-ibt-18 = "${nonarch_base_libdir}/firmware/intel/ibt-18-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-18-*.ddc" +FILES:${PN}-ibt-20 = "${nonarch_base_libdir}/firmware/intel/ibt-20-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-20-*.ddc" +FILES:${PN}-ibt-misc = "${nonarch_base_libdir}/firmware/intel/ibt-*" + +RDEPENDS:${PN}-ibt-hw-37-7 = "${PN}-ibt-license" +RDEPENDS:${PN}-ibt-hw-37.8 = "${PN}-ibt-license" +RDEPENDS:${PN}-ibt-11-5 = "${PN}-ibt-license" +RDEPENDS:${PN}-ibt-12-16 = "${PN}-ibt-license" +RDEPENDS:${PN}-ibt-17 = "${PN}-ibt-license" +RDEPENDS:${PN}-ibt-18 = "${PN}-ibt-license" +RDEPENDS:${PN}-ibt-20 = "${PN}-ibt-license" +RDEPENDS:${PN}-ibt-misc = "${PN}-ibt-license" + +ALLOW_EMPTY:${PN}-ibt= "1" +ALLOW_EMPTY:${PN}-ibt-misc = "1" + +LICENSE:${PN}-i915 = "Firmware-i915" +LICENSE:${PN}-i915-license = "Firmware-i915" +FILES:${PN}-i915-license = "${nonarch_base_libdir}/firmware/LICENSE.i915" +FILES:${PN}-i915 = "${nonarch_base_libdir}/firmware/i915" +RDEPENDS:${PN}-i915 = "${PN}-i915-license" + +# For ice-enhanced +LICENSE:${PN}-ice-enhanced = "Firmware-ice_enhanced" +LICENSE:${PN}-ice-enhanced-license = "Firmware-ice_enhanced" + +FILES:${PN}-ice-enhanced = " \ + ${nonarch_base_libdir}/firmware/intel/ice/ddp-comms/* \ + ${nonarch_base_libdir}/firmware/intel/ice/ddp-wireless_edge/* \ +" +FILES:${PN}-ice-enhanced-license = " \ + ${nonarch_base_libdir}/firmware/LICENSE.ice_enhanced \ +" +RDEPENDS:${PN}-ice-enhanced = "${PN}-ice-enhanced-license" + +LICENSE:${PN}-ice = "Firmware-ice" +LICENSE:${PN}-ice-license = "Firmware-ice" +FILES:${PN}-ice-license = "${nonarch_base_libdir}/firmware/LICENSE.ice" +FILES:${PN}-ice = " \ + ${nonarch_base_libdir}/firmware/intel/ice/ddp/* \ + ${nonarch_base_libdir}/firmware/intel/ice/ddp-lag/* \ +" +RDEPENDS:${PN}-ice = "${PN}-ice-license" + +FILES:${PN}-adsp-sst-license = "${nonarch_base_libdir}/firmware/LICENCE.adsp_sst" +LICENSE:${PN}-adsp-sst = "Firmware-adsp_sst" +LICENSE:${PN}-adsp-sst-license = "Firmware-adsp_sst" +FILES:${PN}-adsp-sst = "${nonarch_base_libdir}/firmware/intel/dsp_fw*" +RDEPENDS:${PN}-adsp-sst = "${PN}-adsp-sst-license" + +# For QAT +LICENSE:${PN}-qat = "Firmware-qat" +LICENSE:${PN}-qat-license = "Firmware-qat" +FILES:${PN}-qat-license = "${nonarch_base_libdir}/firmware/LICENCE.qat_firmware" +FILES:${PN}-qat = "${nonarch_base_libdir}/firmware/qat*.bin" +RDEPENDS:${PN}-qat = "${PN}-qat-license" + +LICENSE:${PN}-qed = "WHENCE" +FILES:${PN}-qed = "${nonarch_base_libdir}/firmware/qed/*" + +LICENSE:${PN}-linaro-license = "Firmware-linaro" +FILES:${PN}-linaro-license = "${nonarch_base_libdir}/firmware/LICENCE.linaro" + +# For QCOM VPU/GPU and SDM845 +LICENSE:${PN}-qcom-license = "Firmware-qcom" +LICENSE:${PN}-qcom-yamato-license = "Firmware-qcom-yamato" +LICENSE:${PN}-qcom-venus-1.8 = "Firmware-qcom" +LICENSE:${PN}-qcom-venus-4.2 = "Firmware-qcom" +LICENSE:${PN}-qcom-venus-5.2 = "Firmware-qcom" +LICENSE:${PN}-qcom-venus-5.4 = "Firmware-qcom" +LICENSE:${PN}-qcom-venus-6.0 = "Firmware-qcom" +LICENSE:${PN}-qcom-vpu = "Firmware-qcom" +LICENSE:${PN}-qcom-adreno-a2xx = "Firmware-qcom Firmware-qcom-yamato" +LICENSE:${PN}-qcom-adreno-a3xx = "Firmware-qcom" +LICENSE:${PN}-qcom-adreno-a4xx = "Firmware-qcom" +LICENSE:${PN}-qcom-adreno-a530 = "Firmware-qcom" +LICENSE:${PN}-qcom-adreno-a630 = "Firmware-qcom" +LICENSE:${PN}-qcom-adreno-a650 = "Firmware-qcom" +LICENSE:${PN}-qcom-adreno-a660 = "Firmware-qcom" +LICENSE:${PN}-qcom-adreno-a702 = "Firmware-qcom" +LICENSE:${PN}-qcom-adreno-g750 = "Firmware-qcom" +LICENSE:${PN}-qcom-apq8016-modem = "Firmware-qcom" +LICENSE:${PN}-qcom-apq8016-wifi = "Firmware-qcom" +LICENSE:${PN}-qcom-apq8096-audio = "Firmware-qcom" +LICENSE:${PN}-qcom-apq8096-adreno = "Firmware-qcom" +LICENSE:${PN}-qcom-apq8096-modem = "Firmware-qcom" +LICENSE:${PN}-qcom-qcm2290-adreno = "Firmware-qcom" +LICENSE:${PN}-qcom-qcm2290-audio = "Firmware-qcom" +LICENSE:${PN}-qcom-qcm2290-modem = "Firmware-qcom" +LICENSE:${PN}-qcom-qcm2290-wifi = "Firmware-qcom" +LICENSE:${PN}-qcom-qrb4210-adreno = "Firmware-qcom" +LICENSE:${PN}-qcom-qrb4210-audio = "Firmware-qcom" +LICENSE:${PN}-qcom-qrb4210-compute = "Firmware-qcom" +LICENSE:${PN}-qcom-qrb4210-modem = "Firmware-qcom" +LICENSE:${PN}-qcom-qrb4210-wifi = "Firmware-qcom" +LICENSE:${PN}-qcom-sc8280xp-lenovo-x13s-audio = "Firmware-qcom & Firmware-linaro" +LICENSE:${PN}-qcom-sc8280xp-lenovo-x13s-adreno = "Firmware-qcom" +LICENSE:${PN}-qcom-sc8280xp-lenovo-x13s-compute = "Firmware-qcom" +LICENSE:${PN}-qcom-sc8280xp-lenovo-x13s-sensors = "Firmware-qcom" +LICENSE:${PN}-qcom-sdm845-audio = "Firmware-qcom" +LICENSE:${PN}-qcom-sdm845-adreno = "Firmware-qcom" +LICENSE:${PN}-qcom-sdm845-compute = "Firmware-qcom" +LICENSE:${PN}-qcom-sdm845-modem = "Firmware-qcom" +LICENSE:${PN}-qcom-sdm845-thundercomm-db845c-sensors = "Firmware-qcom" +LICENSE:${PN}-qcom-sm8250-audio = "Firmware-qcom" +LICENSE:${PN}-qcom-sm8250-adreno = "Firmware-qcom" +LICENSE:${PN}-qcom-sm8250-compute = "Firmware-qcom" +LICENSE:${PN}-qcom-sm8250-thundercomm-rb5-sensors = "Firmware-qcom" +LICENSE:${PN}-qcom-sm8550-audio-tplg = "Firmware-linaro" +LICENSE:${PN}-qcom-sm8650-audio-tplg = "Firmware-linaro" +LICENSE:${PN}-qcom-x1e80100-adreno = "Firmware-qcom" + +FILES:${PN}-qcom-license = "${nonarch_base_libdir}/firmware/LICENSE.qcom ${nonarch_base_libdir}/firmware/qcom/NOTICE.txt" +FILES:${PN}-qcom-yamato-license = "${nonarch_base_libdir}/firmware/LICENSE.qcom_yamato" +FILES:${PN}-qcom-venus-1.8 = "${nonarch_base_libdir}/firmware/qcom/venus-1.8/*" +FILES:${PN}-qcom-venus-4.2 = "${nonarch_base_libdir}/firmware/qcom/venus-4.2/*" +FILES:${PN}-qcom-venus-5.2 = "${nonarch_base_libdir}/firmware/qcom/venus-5.2/*" +FILES:${PN}-qcom-venus-5.4 = "${nonarch_base_libdir}/firmware/qcom/venus-5.4/*" +FILES:${PN}-qcom-venus-6.0 = "${nonarch_base_libdir}/firmware/qcom/venus-6.0/*" +FILES:${PN}-qcom-vpu = " \ + ${nonarch_base_libdir}/firmware/qcom/vpu/* \ + ${nonarch_base_libdir}/firmware/qcom/vpu-1.0/* \ + ${nonarch_base_libdir}/firmware/qcom/vpu-2.0/* \ +" +FILES:${PN}-qcom-adreno-a2xx = "${nonarch_base_libdir}/firmware/qcom/leia_*.fw ${nonarch_base_libdir}/firmware/qcom/yamato_*.fw" +FILES:${PN}-qcom-adreno-a3xx = "${nonarch_base_libdir}/firmware/qcom/a3*_*.fw ${nonarch_base_libdir}/firmware/a300_*.fw" +FILES:${PN}-qcom-adreno-a4xx = "${nonarch_base_libdir}/firmware/qcom/a4*_*.fw" +FILES:${PN}-qcom-adreno-a530 = "${nonarch_base_libdir}/firmware/qcom/a530*.fw*" +FILES:${PN}-qcom-adreno-a630 = "${nonarch_base_libdir}/firmware/qcom/a630*.*" +FILES:${PN}-qcom-adreno-a650 = "${nonarch_base_libdir}/firmware/qcom/a650*.*" +FILES:${PN}-qcom-adreno-a660 = "${nonarch_base_libdir}/firmware/qcom/a660*.*" +FILES:${PN}-qcom-adreno-a702 = "${nonarch_base_libdir}/firmware/qcom/a702*.*" +FILES:${PN}-qcom-adreno-g750 = "${nonarch_base_libdir}/firmware/qcom/gen70500_*.*" +FILES:${PN}-qcom-apq8016-modem = "${nonarch_base_libdir}/firmware/qcom/apq8016/mba.mbn ${nonarch_base_libdir}/firmware/qcom/apq8016/modem.mbn" +FILES:${PN}-qcom-apq8016-wifi = "${nonarch_base_libdir}/firmware/qcom/apq8016/wcnss.mbn ${nonarch_base_libdir}/firmware/qcom/apq8016/WCNSS*" +FILES:${PN}-qcom-apq8096-adreno = "${nonarch_base_libdir}/firmware/qcom/apq8096/a530_zap.mbn ${nonarch_base_libdir}/firmware/qcom/a530_zap.mdt" +FILES:${PN}-qcom-apq8096-audio = "${nonarch_base_libdir}/firmware/qcom/apq8096/adsp*.*" +FILES:${PN}-qcom-apq8096-modem = "${nonarch_base_libdir}/firmware/qcom/apq8096/mba.mbn ${nonarch_base_libdir}/firmware/qcom/apq8096/modem*.* ${nonarch_base_libdir}/firmware/qcom/apq8096/wlanmdsp.mbn" +FILES:${PN}-qcom-qcm2290-adreno = "${nonarch_base_libdir}/firmware/qcom/qcm2290/a702_zap.mbn" +FILES:${PN}-qcom-qcm2290-audio = "${nonarch_base_libdir}/firmware/qcom/qcm2290/adsp*.*" +FILES:${PN}-qcom-qcm2290-modem = "${nonarch_base_libdir}/firmware/qcom/qcm2290/modem*.*" +FILES:${PN}-qcom-qcm2290-wifi = "${nonarch_base_libdir}/firmware/qcom/qcm2290/wlanmdsp.mbn ${nonarch_base_libdir}/firmware/ath10k/WCN3990/hw1.0/qcm2290/*" +FILES:${PN}-qcom-qrb4210-adreno = "${nonarch_base_libdir}/firmware/qcom/qrb4210/a610_zap.mbn" +FILES:${PN}-qcom-qrb4210-audio = "${nonarch_base_libdir}/firmware/qcom/qrb4210/adsp*.*" +FILES:${PN}-qcom-qrb4210-compute = "${nonarch_base_libdir}/firmware/qcom/qrb4210/cdsp*.*" +FILES:${PN}-qcom-qrb4210-modem = "${nonarch_base_libdir}/firmware/qcom/qrb4210/modem*.*" +FILES:${PN}-qcom-qrb4210-wifi = "${nonarch_base_libdir}/firmware/qcom/qrb4210/wlanmdsp.mbn ${nonarch_base_libdir}/firmware/ath10k/WCN3990/hw1.0/qrb4210/*" +FILES:${PN}-qcom-sc8280xp-lenovo-x13s-compat = "${nonarch_base_libdir}/firmware/qcom/LENOVO/21BX" +FILES:${PN}-qcom-sc8280xp-lenovo-x13s-audio = "${nonarch_base_libdir}/firmware/qcom/sc8280xp/LENOVO/21BX/*adsp*.* ${nonarch_base_libdir}/firmware/qcom/sc8280xp/LENOVO/21BX/battmgr.jsn ${nonarch_base_libdir}/firmware/qcom/sc8280xp/LENOVO/21BX/audioreach-tplg.bin ${nonarch_base_libdir}/firmware/qcom/sc8280xp/SC8280XP-LENOVO-X13S-tplg.bin" +FILES:${PN}-qcom-sc8280xp-lenovo-x13s-adreno = "${nonarch_base_libdir}/firmware/qcom/sc8280xp/LENOVO/21BX/qcdxkmsuc8280.mbn" +FILES:${PN}-qcom-sc8280xp-lenovo-x13s-compute = "${nonarch_base_libdir}/firmware/qcom/sc8280xp/LENOVO/21BX/*cdsp*.*" +FILES:${PN}-qcom-sc8280xp-lenovo-x13s-sensors = "${nonarch_base_libdir}/firmware/qcom/sc8280xp/LENOVO/21BX/*slpi*.*" +FILES:${PN}-qcom-sdm845-adreno = "${nonarch_base_libdir}/firmware/qcom/sdm845/a630*.*" +FILES:${PN}-qcom-sdm845-audio = "${nonarch_base_libdir}/firmware/qcom/sdm845/adsp*.*" +FILES:${PN}-qcom-sdm845-compute = "${nonarch_base_libdir}/firmware/qcom/sdm845/cdsp*.*" +FILES:${PN}-qcom-sdm845-modem = "${nonarch_base_libdir}/firmware/qcom/sdm845/mba.mbn ${nonarch_base_libdir}/firmware/qcom/sdm845/modem*.* ${nonarch_base_libdir}/firmware/qcom/sdm845/wlanmdsp.mbn ${nonarch_base_libdir}/firmware/qcom/sdm845/notice.txt_wlanmdsp \ + ${nonarch_base_libdir}/firmware/ath10k/WCN3990/hw1.0/wlanmdsp.mbn ${nonarch_base_libdir}/firmware/ath10k/WCN3990/hw1.0/notice.txt_wlanmdsp" +FILES:${PN}-qcom-sdm845-thundercomm-db845c-sensors = "${nonarch_base_libdir}/firmware/qcom/sdm845/Thundercomm/db845c/slpi*.*" +FILES:${PN}-qcom-sm8250-adreno = "${nonarch_base_libdir}/firmware/qcom/sm8250/a650*.*" +FILES:${PN}-qcom-sm8250-audio = "${nonarch_base_libdir}/firmware/qcom/sm8250/adsp*.*" +FILES:${PN}-qcom-sm8250-compute = "${nonarch_base_libdir}/firmware/qcom/sm8250/cdsp*.*" +FILES:${PN}-qcom-sm8250-thundercomm-rb5-sensors = "${nonarch_base_libdir}/firmware/qcom/sm8250/Thundercomm/RB5/slpi*.*" +FILES:${PN}-qcom-sm8550-audio-tplg = "${nonarch_base_libdir}/firmware/qcom/sm8550/*tplg.bin" +FILES:${PN}-qcom-sm8650-audio-tplg = "${nonarch_base_libdir}/firmware/qcom/sm8650/*tplg.bin" +FILES:${PN}-qcom-x1e80100-adreno = "${nonarch_base_libdir}/firmware/qcom/x1e80100/gen70500_zap.mbn" + +RDEPENDS:${PN}-qcom-venus-1.8 = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-venus-4.2 = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-venus-5.2 = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-venus-5.4 = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-venus-6.0 = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-vpu = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-adreno-a2xx = "${PN}-qcom-license ${PN}-qcom-yamato-license" +RDEPENDS:${PN}-qcom-adreno-a3xx = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-adreno-a4xx = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-adreno-a530 = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-adreno-a630 = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-adreno-a650 = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-adreno-a660 = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-adreno-a702 = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-adreno-g750 = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-apq8016-modem = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-apq8016-wifi = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-apq8096-adreno = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-apq8096-audio = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-apq8096-modem = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-qcm2290-adreno = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-qcm2290-audio = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-qcm2290-modem = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-qcm2290-wifi = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-qrb4210-adreno = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-qrb4210-audio = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-qrb4210-compute = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-qrb4210-modem = "${PN}-qcom-license" +# Only symlinks in qcom-qrb4210-wifi, firmware is in qcom-qcm2290-wifi +# c.f. https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/?id=650e88378e76d5fad3997a5398f1ade47a74d924 +RDEPENDS:${PN}-qcom-qrb4210-wifi = "${PN}-qcom-license ${PN}-qcom-qcm2290-wifi" +RDEPENDS:${PN}-qcom-sc8280xp-lenovo-x13s-audio = "${PN}-qcom-license ${PN}-linaro-license" +RDEPENDS:${PN}-qcom-sc8280xp-lenovo-x13s-adreno = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-sc8280xp-lenovo-x13s-compute = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-sc8280xp-lenovo-x13s-sensors = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-sdm845-adreno = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-sdm845-audio = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-sdm845-compute = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-sdm845-modem = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-sdm845-thundercomm-db845c-sensors = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-sm8250-adreno = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-sm8250-audio = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-sm8250-compute = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-sm8250-thundercomm-rb5-sensors = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-sm8550-audio-tplg = "${PN}-linaro-license" +RDEPENDS:${PN}-qcom-sm8650-audio-tplg = "${PN}-linaro-license" +RDEPENDS:${PN}-qcom-x1e80100-adreno = "${PN}-qcom-license" + +RRECOMMENDS:${PN}-qcom-sc8280xp-lenovo-x13s-audio = "${PN}-qcom-sc8280xp-lenovo-x13s-compat" +RRECOMMENDS:${PN}-qcom-sc8280xp-lenovo-x13s-adreno = "${PN}-qcom-sc8280xp-lenovo-x13s-compat" +RRECOMMENDS:${PN}-qcom-sc8280xp-lenovo-x13s-compute = "${PN}-qcom-sc8280xp-lenovo-x13s-compat" +RRECOMMENDS:${PN}-qcom-sc8280xp-lenovo-x13s-sensors = "${PN}-qcom-sc8280xp-lenovo-x13s-compat" + +LICENSE:${PN}-liquidui = "Firmware-cavium_liquidio" +FILES:${PN}-liquidio = "${nonarch_base_libdir}/firmware/liquidio" + +LICENSE:${PN}-mellanox = "WHENCE" +FILES:${PN}-mellanox = "${nonarch_base_libdir}/firmware/mellanox" + +LICENSE:${PN}-prestera = "Firmware-Marvell" +FILES:${PN}-prestera = "${nonarch_base_libdir}/firmware/mrvl/prestera" +RDEPENDS:${PN}-prestera = "${PN}-marvell-license" + +# For Rockchip +LICENSE:${PN}-rockchip-dptx = "Firmware-rockchip" +FILES:${PN}-rockchip-license = "${nonarch_base_libdir}/firmware/LICENCE.rockchip" +FILES:${PN}-rockchip-dptx = "${nonarch_base_libdir}/firmware/rockchip/dptx.bin" +RDEPENDS:${PN}-rockchip-dptx = "${PN}-rockchip-license" + +# For Amlogic VDEC +LICENSE:${PN}-amlogic-vdec = "Firmware-amlogic_vdec" +FILES:${PN}-amlogic-vdec-license = "${nonarch_base_libdir}/firmware/LICENSE.amlogic_vdec" +FILES:${PN}-amlogic-vdec = "${nonarch_base_libdir}/firmware/meson/vdec/*" +RDEPENDS:${PN}-amlogic-vdec = "${PN}-amlogic-vdec-license" + +# For other firmwares +# Maybe split out to separate packages when needed. +LICENSE:${PN} = "\ + Firmware-Abilis \ + & Firmware-agere \ + & Firmware-amdgpu \ + & Firmware-amd-ucode \ + & Firmware-amlogic_vdec \ + & Firmware-atmel \ + & Firmware-ca0132 \ + & Firmware-cavium \ + & Firmware-chelsio_firmware \ + & Firmware-cirrus \ + & Firmware-cnm \ + & Firmware-cw1200 \ + & Firmware-dib0700 \ + & Firmware-e100 \ + & Firmware-ene_firmware \ + & Firmware-fw_sst_0f28 \ + & Firmware-go7007 \ + & Firmware-hfi1_firmware \ + & Firmware-ibt_firmware \ + & Firmware-it913x \ + & Firmware-IntcSST2 \ + & Firmware-kaweth \ + & Firmware-moxa \ + & Firmware-myri10ge_firmware \ + & Firmware-nvidia \ + & Firmware-nxp \ + & Firmware-OLPC \ + & Firmware-ath9k-htc \ + & Firmware-phanfw \ + & Firmware-qat \ + & Firmware-qcom \ + & Firmware-qla1280 \ + & Firmware-qla2xxx \ + & Firmware-r8a779x_usb3 \ + & Firmware-radeon \ + & Firmware-ralink_a_mediatek_company_firmware \ + & Firmware-ralink-firmware \ + & Firmware-imx-sdma_firmware \ + & Firmware-siano \ + & Firmware-ti-connectivity \ + & Firmware-ti-keystone \ + & Firmware-ueagle-atm4-firmware \ + & Firmware-wl1251 \ + & Firmware-xc4000 \ + & Firmware-xc5000 \ + & Firmware-xc5000c \ + & WHENCE \ +" + +FILES:${PN}-license += "${nonarch_base_libdir}/firmware/LICEN*" +FILES:${PN} += "${nonarch_base_libdir}/firmware/*" +RDEPENDS:${PN} += "${PN}-license" +RDEPENDS:${PN} += "${PN}-whence-license" + +# Make linux-firmware depend on all of the split-out packages. +# Make linux-firmware-iwlwifi depend on all of the split-out iwlwifi packages. +# Make linux-firmware-ibt depend on all of the split-out ibt packages. +python populate_packages:prepend () { + firmware_pkgs = oe.utils.packages_filter_out_system(d) + d.appendVar('RRECOMMENDS:linux-firmware', ' ' + ' '.join(firmware_pkgs)) + + iwlwifi_pkgs = filter(lambda x: x.find('-iwlwifi-') != -1, firmware_pkgs) + d.appendVar('RRECOMMENDS:linux-firmware-iwlwifi', ' ' + ' '.join(iwlwifi_pkgs)) + + ibt_pkgs = filter(lambda x: x.find('-ibt-') != -1, firmware_pkgs) + d.appendVar('RRECOMMENDS:linux-firmware-ibt', ' ' + ' '.join(ibt_pkgs)) +} + +# Firmware files are generally not ran on the CPU, so they can be +# allarch despite being architecture specific +INSANE_SKIP = "arch" + +# Don't warn about already stripped files +INSANE_SKIP:${PN} = "already-stripped" + +# No need to put firmware into the sysroot +SYSROOT_DIRS_IGNORE += "${nonarch_base_libdir}/firmware" diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc index 175b2d1819..3a8d32e785 100644 --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc @@ -2,7 +2,7 @@ SUMMARY = "Sanitized set of kernel headers for the C library's use" HOMEPAGE = "https://www.kernel.org/" DESCRIPTION = "Designed to maintain an Application Programming Interface (API) stable version of the Linux headers" SECTION = "devel" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" ######################################################################### #### PLEASE READ @@ -44,6 +44,8 @@ python __anonymous () { d.setVar("HEADER_FETCH_VER", "4.x") elif major == "5": d.setVar("HEADER_FETCH_VER", "5.x") + elif major == "6": + d.setVar("HEADER_FETCH_VER", "6.x") else: d.setVar("HEADER_FETCH_VER", "2.6") } @@ -75,15 +77,15 @@ do_install() { find ${D}${includedir} -name ..install.cmd | xargs rm -f } -do_install_append_aarch64 () { +do_install:append:aarch64 () { do_install_armmultilib } -do_install_append_arm () { +do_install:append:arm () { do_install_armmultilib } -do_install_append_armeb () { +do_install:append:armeb () { do_install_armmultilib } @@ -103,8 +105,8 @@ do_install_armmultilib () { BBCLASSEXTEND = "nativesdk" -RDEPENDS_${PN}-dev = "" -RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" +DEV_PKG_DEPENDENCY = "" +RRECOMMENDS:${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" INHIBIT_DEFAULT_DEPS = "1" DEPENDS += "unifdef-native bison-native rsync-native" diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-include-linux-stddef.h-in-swab.h-uapi-header.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-include-linux-stddef.h-in-swab.h-uapi-header.patch deleted file mode 100644 index 5b7c1b6e21..0000000000 --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-include-linux-stddef.h-in-swab.h-uapi-header.patch +++ /dev/null @@ -1,42 +0,0 @@ -From dc221138c809125dc1bbff8506c70cb7bd846368 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Wed, 12 Sep 2018 17:08:58 -0700 -Subject: [PATCH] include linux/stddef.h in swab.h uapi header - -swab.h uses __always_inline without including the header where it is -defined, this is exposed by musl based distributions where this macro is -not defined by system C library headers unlike glibc where it is defined -in sys/cdefs.h and that header gets pulled in indirectly via - -features.h -> sys/cdefs.h - -and features.h gets pulled in a lot of headers. Therefore it may work in -cases where features.h is includes but not otherwise. - -Adding linux/stddef.h here ensures that __always_inline is always -defined independent of which C library is used in userspace - -Upstream-Status: Submitted [https://lkml.org/lkml/2018/9/13/78] - -Signed-off-by: Khem Raj <raj.khem@gmail.com> -Cc: Philippe Ombredanne <pombredanne@nexb.com> -Cc: Kate Stewart <kstewart@linuxfoundation.org> -Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Cc: Thomas Gleixner <tglx@linutronix.de> - ---- - include/uapi/linux/swab.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/include/uapi/linux/swab.h b/include/uapi/linux/swab.h -index 7272f85d6..2912fe463 100644 ---- a/include/uapi/linux/swab.h -+++ b/include/uapi/linux/swab.h -@@ -3,6 +3,7 @@ - #define _UAPI_LINUX_SWAB_H - - #include <linux/types.h> -+#include <linux/stddef.h> - #include <linux/compiler.h> - #include <asm/bitsperlong.h> - #include <asm/swab.h> diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch deleted file mode 100644 index 54528b6e6a..0000000000 --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 9ca6c6a510bda90954aa2532711200b89dd1df89 Mon Sep 17 00:00:00 2001 -From: Dave Martin <Dave.Martin@arm.com> -Date: Tue, 11 Dec 2018 19:26:45 +0000 -Subject: [PATCH 1/3] kbuild: install_headers.sh: Strip _UAPI from - #if-defined() guards - -install_headers.sh knows how to strip the _UAPI prefix from #ifdef/ -ifndef and #define directives used to guard headers against multiple -or inappropriate inclusion. Currently this does not work for guards -in the "#if defined()" style, which may be needed for non-trivial -cases. - -This patch adds similar logic so that the _UAPI prefix is also -stripped from guard directives written using "#if defined()" etc. - -This is not completely foolproof, but will work for simple cases of -using #if defined() to guard against inappropriate header inclusion. - -Signed-off-by: Dave Martin <Dave.Martin@arm.com> -Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> - -Upstream-Status: Submitted [https://www.spinics.net/lists/arm-kernel/msg694800.html] ---- - scripts/headers_install.sh | 1 + - 1 file changed, 1 insertion(+) - -Index: linux-5.4/scripts/headers_install.sh -=================================================================== ---- linux-5.4.orig/scripts/headers_install.sh -+++ linux-5.4/scripts/headers_install.sh -@@ -36,6 +36,7 @@ - s/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$)/\1__attribute__((packed))\2/g - s/(^|[[:space:](])(inline|asm|volatile)([[:space:](]|$)/\1__\2__\3/g - s@#(ifndef|define|endif[[:space:]]*/[*])[[:space:]]*_UAPI@#\1 @ -+ :1;s/(#(if|elif)(.*[^A-Za-z0-9_])defined\([[:space:]]*)_UAPI/\1/;t1 - ' $INFILE > $TMPFILE || exit 1 - - scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__ $TMPFILE > $OUTFILE diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch deleted file mode 100644 index a5ded602e5..0000000000 --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 694eba7bb974f6b8bd308804cb24350150108b2b Mon Sep 17 00:00:00 2001 -From: He Zhe <zhe.he@windriver.com> -Date: Wed, 21 Nov 2018 15:12:43 +0800 -Subject: [PATCH] scripts: Use fixed input and output files instead of pipe for here-doc - -There was a bug of "as" in binutils that when it checks if the input file and -output file are the same one, it would not check if they are on the same block -device. The check is introduced by the following commit in v2.31. - -https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h= -67f846b59b32f3d704c601669409c2584383fea9 - -The here-doc usage in this script creates temporary file in /tmp. When we run in -an environment where /tmp has rarely been used, the newly created temporary file -may have a very low inode number. If the inode number was 6 which is the same as -/dev/null, the as would wrongly think the input file and the output file are the -same and report the following error. - -*** Compiler lacks asm-goto support.. Stop. - -One observed case happened in docker where the /tmp could be so rarely used that -very low number inode may be allocated and triggers the error. - -The fix below for the bug only exists on the master branch of binutils so far -and has not been released from upstream. As the convict is introduced since -v2.31, only v2.31 is affected. - -https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h= -2a50366ded329bfb39d387253450c9d5302c3503 - -When building linux-libc-headers we need to use "as" in binutils which does not -contain the fix for the moment. To work around the error, we create a fixed -temporary file to contain the program being tested. - -This patch also removes ">/dev/null 2>&1" so we will have more direct error -information in case something else wrong happened. - -Upstream-Status: Inappropriate [A work around for binutils v2.31] - -Signed-off-by: He Zhe <zhe.he@windriver.com> ---- - scripts/gcc-goto.sh | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/scripts/gcc-goto.sh b/scripts/gcc-goto.sh -index 8b980fb22..d256a9438 100755 ---- a/scripts/gcc-goto.sh -+++ b/scripts/gcc-goto.sh -@@ -3,7 +3,7 @@ - # Test for gcc 'asm goto' support - # Copyright (C) 2010, Jason Baron <jbaron@redhat.com> - --cat << "END" | $@ -x c - -fno-PIE -c -o /dev/null -+cat << "END" > ./input - int main(void) - { - #if defined(__arm__) || defined(__aarch64__) -@@ -20,3 +20,6 @@ entry: - return 0; - } - END -+ -+$@ -x c ./input -fno-PIE -c -o ./output -+rm ./input ./output --- -2.19.1 - diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch index b5c4e1750e..b0e7014138 100644 --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch @@ -13,17 +13,17 @@ Upstream-Status: Submitted include/uapi/linux/kernel.h | 2 ++ 1 file changed, 2 insertions(+) -Index: linux-4.8-rc4/include/uapi/linux/kernel.h +Index: linux-5.12.11/include/uapi/linux/kernel.h =================================================================== ---- linux-4.8-rc4.orig/include/uapi/linux/kernel.h -+++ linux-4.8-rc4/include/uapi/linux/kernel.h -@@ -1,7 +1,9 @@ +--- linux-5.12.11.orig/include/uapi/linux/kernel.h ++++ linux-5.12.11/include/uapi/linux/kernel.h +@@ -2,7 +2,9 @@ #ifndef _UAPI_LINUX_KERNEL_H #define _UAPI_LINUX_KERNEL_H +#ifdef __GLIBC__ #include <linux/sysinfo.h> + #include <linux/const.h> +#endif - /* - * 'kernel.h' contains some often-used function prototypes etc + #endif /* _UAPI_LINUX_KERNEL_H */ diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.10.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.10.bb deleted file mode 100644 index d6a4d5aa61..0000000000 --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.10.bb +++ /dev/null @@ -1,19 +0,0 @@ -require linux-libc-headers.inc - -SRC_URI_append_libc-musl = "\ - file://0001-libc-compat.h-fix-some-issues-arising-from-in6.h.patch \ - file://0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch \ - file://0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch \ - file://0001-include-linux-stddef.h-in-swab.h-uapi-header.patch \ - " - -SRC_URI_append = "\ - file://0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch \ - file://0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch \ -" - -LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" - -SRC_URI[md5sum] = "753adc474bf799d569dec4f165ed92c3" -SRC_URI[sha256sum] = "dcdf99e43e98330d925016985bfbc7b83c66d367b714b2de0cbbfcbf83d8ca43" - diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_6.10.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_6.10.bb new file mode 100644 index 0000000000..9484083948 --- /dev/null +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_6.10.bb @@ -0,0 +1,13 @@ +require linux-libc-headers.inc + +SRC_URI:append:libc-musl = "\ + file://0001-libc-compat.h-fix-some-issues-arising-from-in6.h.patch \ + file://0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch \ + file://0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch \ + " + +LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" + +SRC_URI[sha256sum] = "774698422ee54c5f1e704456f37c65c06b51b4e9a8b0866f34580d86fef8e226" + + diff --git a/meta/recipes-kernel/linux/cve-exclusion.inc b/meta/recipes-kernel/linux/cve-exclusion.inc new file mode 100644 index 0000000000..7857633943 --- /dev/null +++ b/meta/recipes-kernel/linux/cve-exclusion.inc @@ -0,0 +1,34 @@ +CVE_STATUS[CVE-1999-0656] = "not-applicable-config: specific to ugidd, part of the old user-mode NFS server" + +CVE_STATUS[CVE-2006-2932] = "not-applicable-platform: specific to RHEL" + +CVE_STATUS[CVE-2007-2764] = "not-applicable-platform: specific to Sun/Brocade SilkWorm switches" + +CVE_STATUS[CVE-2007-4998] = "cpe-incorrect: a historic cp bug, no longer an issue as per https://bugzilla.redhat.com/show_bug.cgi?id=356471#c5" + +CVE_STATUS[CVE-2008-2544] = "disputed: not an issue as per https://bugzilla.redhat.com/show_bug.cgi?id=449089#c22" + +CVE_STATUS[CVE-2010-0298] = "fixed-version: 2.6.34 (1871c6)" + +CVE_STATUS[CVE-2014-2648] = "cpe-incorrect: not Linux" + +CVE_STATUS[CVE-2016-0774] = "ignored: result of incomplete backport" + +CVE_STATUS[CVE-2016-3695] = "not-applicable-platform: specific to RHEL with securelevel patches" + +CVE_STATUS[CVE-2016-3699] = "not-applicable-platform: specific to RHEL with securelevel patches" + +CVE_STATUS[CVE-2017-6264] = "not-applicable-platform: Android specific" + +CVE_STATUS[CVE-2017-1000377] = "not-applicable-platform: GRSecurity specific" + +CVE_STATUS[CVE-2018-6559] = "not-applicable-platform: Issue only affects Ubuntu" + +CVE_STATUS[CVE-2020-11935] = "not-applicable-config: Issue only affects aufs, which is not in linux-yocto" + +# Introduced in version v6.1 7b88bda3761b95856cf97822efe8281c8100067b +# Patched in kernel since v6.2 4a625ceee8a0ab0273534cb6b432ce6b331db5ee +# But, the CVE is disputed: +CVE_STATUS[CVE-2023-23005] = "disputed: There are no realistic cases \ +in which a user can cause the alloc_memory_type error case to be reached. \ +See: https://bugzilla.suse.com/show_bug.cgi?id=1208844#c2" diff --git a/meta/recipes-kernel/linux/cve-exclusion_6.10.inc b/meta/recipes-kernel/linux/cve-exclusion_6.10.inc new file mode 100644 index 0000000000..32a0701edf --- /dev/null +++ b/meta/recipes-kernel/linux/cve-exclusion_6.10.inc @@ -0,0 +1,6660 @@ + +# Auto-generated CVE metadata, DO NOT EDIT BY HAND. +# Generated at 2024-06-06 20:41:33.044442+00:00 for version 6.6.32 + +#python check_kernel_cve_status_version() { +# this_version = "6.6.29" +# kernel_version = d.getVar("LINUX_VERSION") +# if kernel_version != this_version: +# bb.warn("Kernel CVE status needs updating: generated for %s but kernel is %s" % (this_version, kernel_version)) +#} +#do_cve_check[prefuncs] += "check_kernel_cve_status_version" + +CVE_STATUS[CVE-2003-1604] = "fixed-version: Fixed from version 2.6.12rc2" + +CVE_STATUS[CVE-2004-0230] = "fixed-version: Fixed from version 3.6rc1" + +# CVE-2005-3660 has no known resolution + +CVE_STATUS[CVE-2006-3635] = "fixed-version: Fixed from version 2.6.26rc5" + +CVE_STATUS[CVE-2006-5331] = "fixed-version: Fixed from version 2.6.19rc3" + +CVE_STATUS[CVE-2006-6128] = "fixed-version: Fixed from version 2.6.19rc2" + +# CVE-2007-3719 has no known resolution + +CVE_STATUS[CVE-2007-4774] = "fixed-version: Fixed from version 2.6.12rc2" + +CVE_STATUS[CVE-2007-6761] = "fixed-version: Fixed from version 2.6.24rc6" + +CVE_STATUS[CVE-2007-6762] = "fixed-version: Fixed from version 2.6.20rc5" + +# CVE-2008-2544 has no known resolution + +# CVE-2008-4609 has no known resolution + +CVE_STATUS[CVE-2008-7316] = "fixed-version: Fixed from version 2.6.25rc1" + +CVE_STATUS[CVE-2009-2692] = "fixed-version: Fixed from version 2.6.31rc6" + +CVE_STATUS[CVE-2010-0008] = "fixed-version: Fixed from version 2.6.23rc9" + +CVE_STATUS[CVE-2010-3432] = "fixed-version: Fixed from version 2.6.36rc5" + +# CVE-2010-4563 has no known resolution + +CVE_STATUS[CVE-2010-4648] = "fixed-version: Fixed from version 2.6.37rc6" + +CVE_STATUS[CVE-2010-5313] = "fixed-version: Fixed from version 2.6.38rc1" + +# CVE-2010-5321 has no known resolution + +CVE_STATUS[CVE-2010-5328] = "fixed-version: Fixed from version 2.6.35rc1" + +CVE_STATUS[CVE-2010-5329] = "fixed-version: Fixed from version 2.6.39rc1" + +CVE_STATUS[CVE-2010-5331] = "fixed-version: Fixed from version 2.6.34rc7" + +CVE_STATUS[CVE-2010-5332] = "fixed-version: Fixed from version 2.6.37rc1" + +CVE_STATUS[CVE-2011-4098] = "fixed-version: Fixed from version 3.2rc1" + +CVE_STATUS[CVE-2011-4131] = "fixed-version: Fixed from version 3.3rc1" + +CVE_STATUS[CVE-2011-4915] = "fixed-version: Fixed from version 3.2rc1" + +# CVE-2011-4916 has no known resolution + +# CVE-2011-4917 has no known resolution + +CVE_STATUS[CVE-2011-5321] = "fixed-version: Fixed from version 3.2rc1" + +CVE_STATUS[CVE-2011-5327] = "fixed-version: Fixed from version 3.1rc1" + +CVE_STATUS[CVE-2012-0957] = "fixed-version: Fixed from version 3.7rc2" + +CVE_STATUS[CVE-2012-2119] = "fixed-version: Fixed from version 3.5rc1" + +CVE_STATUS[CVE-2012-2136] = "fixed-version: Fixed from version 3.5rc1" + +CVE_STATUS[CVE-2012-2137] = "fixed-version: Fixed from version 3.5rc2" + +CVE_STATUS[CVE-2012-2313] = "fixed-version: Fixed from version 3.4rc6" + +CVE_STATUS[CVE-2012-2319] = "fixed-version: Fixed from version 3.4rc6" + +CVE_STATUS[CVE-2012-2372] = "fixed-version: Fixed from version 3.13rc4" + +CVE_STATUS[CVE-2012-2375] = "fixed-version: Fixed from version 3.4rc1" + +CVE_STATUS[CVE-2012-2390] = "fixed-version: Fixed from version 3.5rc1" + +CVE_STATUS[CVE-2012-2669] = "fixed-version: Fixed from version 3.5rc4" + +CVE_STATUS[CVE-2012-2744] = "fixed-version: Fixed from version 2.6.34rc1" + +CVE_STATUS[CVE-2012-2745] = "fixed-version: Fixed from version 3.4rc3" + +CVE_STATUS[CVE-2012-3364] = "fixed-version: Fixed from version 3.5rc6" + +CVE_STATUS[CVE-2012-3375] = "fixed-version: Fixed from version 3.4rc5" + +CVE_STATUS[CVE-2012-3400] = "fixed-version: Fixed from version 3.5rc5" + +CVE_STATUS[CVE-2012-3412] = "fixed-version: Fixed from version 3.6rc2" + +CVE_STATUS[CVE-2012-3430] = "fixed-version: Fixed from version 3.6rc1" + +CVE_STATUS[CVE-2012-3510] = "fixed-version: Fixed from version 2.6.19rc4" + +CVE_STATUS[CVE-2012-3511] = "fixed-version: Fixed from version 3.5rc6" + +CVE_STATUS[CVE-2012-3520] = "fixed-version: Fixed from version 3.6rc3" + +CVE_STATUS[CVE-2012-3552] = "fixed-version: Fixed from version 3.0rc1" + +# Skipping CVE-2012-4220, no affected_versions + +# Skipping CVE-2012-4221, no affected_versions + +# Skipping CVE-2012-4222, no affected_versions + +CVE_STATUS[CVE-2012-4398] = "fixed-version: Fixed from version 3.4rc1" + +CVE_STATUS[CVE-2012-4444] = "fixed-version: Fixed from version 2.6.36rc4" + +CVE_STATUS[CVE-2012-4461] = "fixed-version: Fixed from version 3.7rc6" + +CVE_STATUS[CVE-2012-4467] = "fixed-version: Fixed from version 3.6rc5" + +CVE_STATUS[CVE-2012-4508] = "fixed-version: Fixed from version 3.7rc3" + +CVE_STATUS[CVE-2012-4530] = "fixed-version: Fixed from version 3.8rc1" + +# CVE-2012-4542 has no known resolution + +CVE_STATUS[CVE-2012-4565] = "fixed-version: Fixed from version 3.7rc4" + +CVE_STATUS[CVE-2012-5374] = "fixed-version: Fixed from version 3.8rc1" + +CVE_STATUS[CVE-2012-5375] = "fixed-version: Fixed from version 3.8rc1" + +CVE_STATUS[CVE-2012-5517] = "fixed-version: Fixed from version 3.6rc1" + +CVE_STATUS[CVE-2012-6536] = "fixed-version: Fixed from version 3.6rc7" + +CVE_STATUS[CVE-2012-6537] = "fixed-version: Fixed from version 3.6rc7" + +CVE_STATUS[CVE-2012-6538] = "fixed-version: Fixed from version 3.6rc7" + +CVE_STATUS[CVE-2012-6539] = "fixed-version: Fixed from version 3.6rc3" + +CVE_STATUS[CVE-2012-6540] = "fixed-version: Fixed from version 3.6rc3" + +CVE_STATUS[CVE-2012-6541] = "fixed-version: Fixed from version 3.6rc3" + +CVE_STATUS[CVE-2012-6542] = "fixed-version: Fixed from version 3.6rc3" + +CVE_STATUS[CVE-2012-6543] = "fixed-version: Fixed from version 3.6rc3" + +CVE_STATUS[CVE-2012-6544] = "fixed-version: Fixed from version 3.6rc3" + +CVE_STATUS[CVE-2012-6545] = "fixed-version: Fixed from version 3.6rc3" + +CVE_STATUS[CVE-2012-6546] = "fixed-version: Fixed from version 3.6rc3" + +CVE_STATUS[CVE-2012-6547] = "fixed-version: Fixed from version 3.6rc1" + +CVE_STATUS[CVE-2012-6548] = "fixed-version: Fixed from version 3.6rc1" + +CVE_STATUS[CVE-2012-6549] = "fixed-version: Fixed from version 3.6rc1" + +CVE_STATUS[CVE-2012-6638] = "fixed-version: Fixed from version 3.3rc1" + +CVE_STATUS[CVE-2012-6647] = "fixed-version: Fixed from version 3.6rc2" + +CVE_STATUS[CVE-2012-6657] = "fixed-version: Fixed from version 3.6" + +CVE_STATUS[CVE-2012-6689] = "fixed-version: Fixed from version 3.6rc5" + +CVE_STATUS[CVE-2012-6701] = "fixed-version: Fixed from version 3.5rc1" + +CVE_STATUS[CVE-2012-6703] = "fixed-version: Fixed from version 3.7rc1" + +CVE_STATUS[CVE-2012-6704] = "fixed-version: Fixed from version 3.5rc1" + +CVE_STATUS[CVE-2012-6712] = "fixed-version: Fixed from version 3.4rc1" + +CVE_STATUS[CVE-2013-0160] = "fixed-version: Fixed from version 3.9rc1" + +CVE_STATUS[CVE-2013-0190] = "fixed-version: Fixed from version 3.8rc5" + +CVE_STATUS[CVE-2013-0216] = "fixed-version: Fixed from version 3.8rc7" + +CVE_STATUS[CVE-2013-0217] = "fixed-version: Fixed from version 3.8rc7" + +CVE_STATUS[CVE-2013-0228] = "fixed-version: Fixed from version 3.8" + +CVE_STATUS[CVE-2013-0231] = "fixed-version: Fixed from version 3.8rc7" + +CVE_STATUS[CVE-2013-0268] = "fixed-version: Fixed from version 3.8rc6" + +CVE_STATUS[CVE-2013-0290] = "fixed-version: Fixed from version 3.8" + +CVE_STATUS[CVE-2013-0309] = "fixed-version: Fixed from version 3.7rc1" + +CVE_STATUS[CVE-2013-0310] = "fixed-version: Fixed from version 3.5" + +CVE_STATUS[CVE-2013-0311] = "fixed-version: Fixed from version 3.7rc8" + +CVE_STATUS[CVE-2013-0313] = "fixed-version: Fixed from version 3.8rc5" + +CVE_STATUS[CVE-2013-0343] = "fixed-version: Fixed from version 3.11rc7" + +CVE_STATUS[CVE-2013-0349] = "fixed-version: Fixed from version 3.8rc6" + +CVE_STATUS[CVE-2013-0871] = "fixed-version: Fixed from version 3.8rc5" + +CVE_STATUS[CVE-2013-0913] = "fixed-version: Fixed from version 3.9rc4" + +CVE_STATUS[CVE-2013-0914] = "fixed-version: Fixed from version 3.9rc3" + +CVE_STATUS[CVE-2013-1059] = "fixed-version: Fixed from version 3.11rc1" + +CVE_STATUS[CVE-2013-1763] = "fixed-version: Fixed from version 3.9rc1" + +CVE_STATUS[CVE-2013-1767] = "fixed-version: Fixed from version 3.9rc1" + +CVE_STATUS[CVE-2013-1772] = "fixed-version: Fixed from version 3.5rc1" + +CVE_STATUS[CVE-2013-1773] = "fixed-version: Fixed from version 3.3rc1" + +CVE_STATUS[CVE-2013-1774] = "fixed-version: Fixed from version 3.8rc5" + +CVE_STATUS[CVE-2013-1792] = "fixed-version: Fixed from version 3.9rc3" + +CVE_STATUS[CVE-2013-1796] = "fixed-version: Fixed from version 3.9rc4" + +CVE_STATUS[CVE-2013-1797] = "fixed-version: Fixed from version 3.9rc4" + +CVE_STATUS[CVE-2013-1798] = "fixed-version: Fixed from version 3.9rc4" + +CVE_STATUS[CVE-2013-1819] = "fixed-version: Fixed from version 3.8rc6" + +CVE_STATUS[CVE-2013-1826] = "fixed-version: Fixed from version 3.6rc7" + +CVE_STATUS[CVE-2013-1827] = "fixed-version: Fixed from version 3.6rc3" + +CVE_STATUS[CVE-2013-1828] = "fixed-version: Fixed from version 3.9rc2" + +CVE_STATUS[CVE-2013-1848] = "fixed-version: Fixed from version 3.9rc3" + +CVE_STATUS[CVE-2013-1858] = "fixed-version: Fixed from version 3.9rc3" + +CVE_STATUS[CVE-2013-1860] = "fixed-version: Fixed from version 3.9rc3" + +CVE_STATUS[CVE-2013-1928] = "fixed-version: Fixed from version 3.7rc3" + +CVE_STATUS[CVE-2013-1929] = "fixed-version: Fixed from version 3.9rc6" + +# Skipping CVE-2013-1935, no affected_versions + +CVE_STATUS[CVE-2013-1943] = "fixed-version: Fixed from version 3.0rc1" + +CVE_STATUS[CVE-2013-1956] = "fixed-version: Fixed from version 3.9rc5" + +CVE_STATUS[CVE-2013-1957] = "fixed-version: Fixed from version 3.9rc5" + +CVE_STATUS[CVE-2013-1958] = "fixed-version: Fixed from version 3.9rc5" + +CVE_STATUS[CVE-2013-1959] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-1979] = "fixed-version: Fixed from version 3.9rc8" + +CVE_STATUS[CVE-2013-2015] = "fixed-version: Fixed from version 3.8rc2" + +CVE_STATUS[CVE-2013-2017] = "fixed-version: Fixed from version 2.6.34" + +CVE_STATUS[CVE-2013-2058] = "fixed-version: Fixed from version 3.8rc4" + +CVE_STATUS[CVE-2013-2094] = "fixed-version: Fixed from version 3.9rc8" + +CVE_STATUS[CVE-2013-2128] = "fixed-version: Fixed from version 2.6.34rc4" + +CVE_STATUS[CVE-2013-2140] = "fixed-version: Fixed from version 3.11rc3" + +CVE_STATUS[CVE-2013-2141] = "fixed-version: Fixed from version 3.9rc8" + +CVE_STATUS[CVE-2013-2146] = "fixed-version: Fixed from version 3.9rc8" + +CVE_STATUS[CVE-2013-2147] = "fixed-version: Fixed from version 3.12rc3" + +CVE_STATUS[CVE-2013-2148] = "fixed-version: Fixed from version 3.11rc1" + +CVE_STATUS[CVE-2013-2164] = "fixed-version: Fixed from version 3.11rc1" + +# Skipping CVE-2013-2188, no affected_versions + +CVE_STATUS[CVE-2013-2206] = "fixed-version: Fixed from version 3.9rc4" + +# Skipping CVE-2013-2224, no affected_versions + +CVE_STATUS[CVE-2013-2232] = "fixed-version: Fixed from version 3.10" + +CVE_STATUS[CVE-2013-2234] = "fixed-version: Fixed from version 3.10" + +CVE_STATUS[CVE-2013-2237] = "fixed-version: Fixed from version 3.9rc6" + +# Skipping CVE-2013-2239, no affected_versions + +CVE_STATUS[CVE-2013-2546] = "fixed-version: Fixed from version 3.9rc1" + +CVE_STATUS[CVE-2013-2547] = "fixed-version: Fixed from version 3.9rc1" + +CVE_STATUS[CVE-2013-2548] = "fixed-version: Fixed from version 3.9rc1" + +CVE_STATUS[CVE-2013-2596] = "fixed-version: Fixed from version 3.9rc8" + +CVE_STATUS[CVE-2013-2634] = "fixed-version: Fixed from version 3.9rc3" + +CVE_STATUS[CVE-2013-2635] = "fixed-version: Fixed from version 3.9rc3" + +CVE_STATUS[CVE-2013-2636] = "fixed-version: Fixed from version 3.9rc3" + +CVE_STATUS[CVE-2013-2850] = "fixed-version: Fixed from version 3.10rc4" + +CVE_STATUS[CVE-2013-2851] = "fixed-version: Fixed from version 3.11rc1" + +CVE_STATUS[CVE-2013-2852] = "fixed-version: Fixed from version 3.10rc6" + +CVE_STATUS[CVE-2013-2888] = "fixed-version: Fixed from version 3.12rc1" + +CVE_STATUS[CVE-2013-2889] = "fixed-version: Fixed from version 3.12rc2" + +CVE_STATUS[CVE-2013-2890] = "fixed-version: Fixed from version 3.12rc2" + +CVE_STATUS[CVE-2013-2891] = "fixed-version: Fixed from version 3.12rc2" + +CVE_STATUS[CVE-2013-2892] = "fixed-version: Fixed from version 3.12rc1" + +CVE_STATUS[CVE-2013-2893] = "fixed-version: Fixed from version 3.12rc2" + +CVE_STATUS[CVE-2013-2894] = "fixed-version: Fixed from version 3.12rc2" + +CVE_STATUS[CVE-2013-2895] = "fixed-version: Fixed from version 3.12rc2" + +CVE_STATUS[CVE-2013-2896] = "fixed-version: Fixed from version 3.12rc1" + +CVE_STATUS[CVE-2013-2897] = "fixed-version: Fixed from version 3.12rc2" + +CVE_STATUS[CVE-2013-2898] = "fixed-version: Fixed from version 3.12rc1" + +CVE_STATUS[CVE-2013-2899] = "fixed-version: Fixed from version 3.12rc1" + +CVE_STATUS[CVE-2013-2929] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-2930] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-3076] = "fixed-version: Fixed from version 3.9" + +CVE_STATUS[CVE-2013-3222] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3223] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3224] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3225] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3226] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3227] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3228] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3229] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3230] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3231] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3232] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3233] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3234] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3235] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3236] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3237] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3301] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3302] = "fixed-version: Fixed from version 3.8rc3" + +CVE_STATUS[CVE-2013-4125] = "fixed-version: Fixed from version 3.11rc1" + +CVE_STATUS[CVE-2013-4127] = "fixed-version: Fixed from version 3.11rc1" + +CVE_STATUS[CVE-2013-4129] = "fixed-version: Fixed from version 3.11rc1" + +CVE_STATUS[CVE-2013-4162] = "fixed-version: Fixed from version 3.11rc1" + +CVE_STATUS[CVE-2013-4163] = "fixed-version: Fixed from version 3.11rc1" + +CVE_STATUS[CVE-2013-4205] = "fixed-version: Fixed from version 3.11rc5" + +CVE_STATUS[CVE-2013-4220] = "fixed-version: Fixed from version 3.10rc4" + +CVE_STATUS[CVE-2013-4247] = "fixed-version: Fixed from version 3.10rc5" + +CVE_STATUS[CVE-2013-4254] = "fixed-version: Fixed from version 3.11rc6" + +CVE_STATUS[CVE-2013-4270] = "fixed-version: Fixed from version 3.12rc4" + +CVE_STATUS[CVE-2013-4299] = "fixed-version: Fixed from version 3.12rc6" + +CVE_STATUS[CVE-2013-4300] = "fixed-version: Fixed from version 3.11" + +CVE_STATUS[CVE-2013-4312] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2013-4343] = "fixed-version: Fixed from version 3.12rc2" + +CVE_STATUS[CVE-2013-4345] = "fixed-version: Fixed from version 3.13rc2" + +CVE_STATUS[CVE-2013-4348] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-4350] = "fixed-version: Fixed from version 3.12rc2" + +CVE_STATUS[CVE-2013-4387] = "fixed-version: Fixed from version 3.12rc4" + +CVE_STATUS[CVE-2013-4470] = "fixed-version: Fixed from version 3.12rc7" + +CVE_STATUS[CVE-2013-4483] = "fixed-version: Fixed from version 3.10rc1" + +CVE_STATUS[CVE-2013-4511] = "fixed-version: Fixed from version 3.12" + +CVE_STATUS[CVE-2013-4512] = "fixed-version: Fixed from version 3.12" + +CVE_STATUS[CVE-2013-4513] = "fixed-version: Fixed from version 3.12" + +CVE_STATUS[CVE-2013-4514] = "fixed-version: Fixed from version 3.12" + +CVE_STATUS[CVE-2013-4515] = "fixed-version: Fixed from version 3.12" + +CVE_STATUS[CVE-2013-4516] = "fixed-version: Fixed from version 3.12" + +CVE_STATUS[CVE-2013-4563] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-4579] = "fixed-version: Fixed from version 3.13rc7" + +CVE_STATUS[CVE-2013-4587] = "fixed-version: Fixed from version 3.13rc4" + +CVE_STATUS[CVE-2013-4588] = "fixed-version: Fixed from version 2.6.33rc4" + +CVE_STATUS[CVE-2013-4591] = "fixed-version: Fixed from version 3.8rc1" + +CVE_STATUS[CVE-2013-4592] = "fixed-version: Fixed from version 3.7rc1" + +# Skipping CVE-2013-4737, no affected_versions + +# Skipping CVE-2013-4738, no affected_versions + +# Skipping CVE-2013-4739, no affected_versions + +CVE_STATUS[CVE-2013-5634] = "fixed-version: Fixed from version 3.10rc5" + +CVE_STATUS[CVE-2013-6282] = "fixed-version: Fixed from version 3.6rc6" + +CVE_STATUS[CVE-2013-6367] = "fixed-version: Fixed from version 3.13rc4" + +CVE_STATUS[CVE-2013-6368] = "fixed-version: Fixed from version 3.13rc4" + +CVE_STATUS[CVE-2013-6376] = "fixed-version: Fixed from version 3.13rc4" + +CVE_STATUS[CVE-2013-6378] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-6380] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-6381] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-6382] = "fixed-version: Fixed from version 3.13rc4" + +CVE_STATUS[CVE-2013-6383] = "fixed-version: Fixed from version 3.12" + +# Skipping CVE-2013-6392, no affected_versions + +CVE_STATUS[CVE-2013-6431] = "fixed-version: Fixed from version 3.12rc1" + +CVE_STATUS[CVE-2013-6432] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-6885] = "fixed-version: Fixed from version 3.14rc1" + +CVE_STATUS[CVE-2013-7026] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7027] = "fixed-version: Fixed from version 3.12rc7" + +CVE_STATUS[CVE-2013-7263] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7264] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7265] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7266] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7267] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7268] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7269] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7270] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7271] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7281] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7339] = "fixed-version: Fixed from version 3.13rc7" + +CVE_STATUS[CVE-2013-7348] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7421] = "fixed-version: Fixed from version 3.19rc1" + +# CVE-2013-7445 has no known resolution + +CVE_STATUS[CVE-2013-7446] = "fixed-version: Fixed from version 4.4rc4" + +CVE_STATUS[CVE-2013-7470] = "fixed-version: Fixed from version 3.12rc7" + +CVE_STATUS[CVE-2014-0038] = "fixed-version: Fixed from version 3.14rc1" + +CVE_STATUS[CVE-2014-0049] = "fixed-version: Fixed from version 3.14rc5" + +CVE_STATUS[CVE-2014-0055] = "fixed-version: Fixed from version 3.14" + +CVE_STATUS[CVE-2014-0069] = "fixed-version: Fixed from version 3.14rc4" + +CVE_STATUS[CVE-2014-0077] = "fixed-version: Fixed from version 3.14" + +CVE_STATUS[CVE-2014-0100] = "fixed-version: Fixed from version 3.14rc7" + +CVE_STATUS[CVE-2014-0101] = "fixed-version: Fixed from version 3.14rc6" + +CVE_STATUS[CVE-2014-0102] = "fixed-version: Fixed from version 3.14rc6" + +CVE_STATUS[CVE-2014-0131] = "fixed-version: Fixed from version 3.14rc7" + +CVE_STATUS[CVE-2014-0155] = "fixed-version: Fixed from version 3.15rc2" + +CVE_STATUS[CVE-2014-0181] = "fixed-version: Fixed from version 3.15rc5" + +CVE_STATUS[CVE-2014-0196] = "fixed-version: Fixed from version 3.15rc5" + +CVE_STATUS[CVE-2014-0203] = "fixed-version: Fixed from version 2.6.33rc5" + +CVE_STATUS[CVE-2014-0205] = "fixed-version: Fixed from version 2.6.37rc1" + +CVE_STATUS[CVE-2014-0206] = "fixed-version: Fixed from version 3.16rc3" + +# Skipping CVE-2014-0972, no affected_versions + +CVE_STATUS[CVE-2014-1438] = "fixed-version: Fixed from version 3.13" + +CVE_STATUS[CVE-2014-1444] = "fixed-version: Fixed from version 3.12rc7" + +CVE_STATUS[CVE-2014-1445] = "fixed-version: Fixed from version 3.12rc7" + +CVE_STATUS[CVE-2014-1446] = "fixed-version: Fixed from version 3.13rc7" + +CVE_STATUS[CVE-2014-1690] = "fixed-version: Fixed from version 3.13rc8" + +CVE_STATUS[CVE-2014-1737] = "fixed-version: Fixed from version 3.15rc5" + +CVE_STATUS[CVE-2014-1738] = "fixed-version: Fixed from version 3.15rc5" + +CVE_STATUS[CVE-2014-1739] = "fixed-version: Fixed from version 3.15rc6" + +CVE_STATUS[CVE-2014-1874] = "fixed-version: Fixed from version 3.14rc2" + +CVE_STATUS[CVE-2014-2038] = "fixed-version: Fixed from version 3.14rc1" + +CVE_STATUS[CVE-2014-2039] = "fixed-version: Fixed from version 3.14rc3" + +CVE_STATUS[CVE-2014-2309] = "fixed-version: Fixed from version 3.14rc7" + +CVE_STATUS[CVE-2014-2523] = "fixed-version: Fixed from version 3.14rc1" + +CVE_STATUS[CVE-2014-2568] = "fixed-version: Fixed from version 3.14" + +CVE_STATUS[CVE-2014-2580] = "fixed-version: Fixed from version 3.15rc1" + +CVE_STATUS[CVE-2014-2672] = "fixed-version: Fixed from version 3.14rc6" + +CVE_STATUS[CVE-2014-2673] = "fixed-version: Fixed from version 3.14rc6" + +CVE_STATUS[CVE-2014-2678] = "fixed-version: Fixed from version 3.15rc1" + +CVE_STATUS[CVE-2014-2706] = "fixed-version: Fixed from version 3.14rc6" + +CVE_STATUS[CVE-2014-2739] = "fixed-version: Fixed from version 3.15rc1" + +CVE_STATUS[CVE-2014-2851] = "fixed-version: Fixed from version 3.15rc2" + +CVE_STATUS[CVE-2014-2889] = "fixed-version: Fixed from version 3.2rc7" + +CVE_STATUS[CVE-2014-3122] = "fixed-version: Fixed from version 3.15rc1" + +CVE_STATUS[CVE-2014-3144] = "fixed-version: Fixed from version 3.15rc2" + +CVE_STATUS[CVE-2014-3145] = "fixed-version: Fixed from version 3.15rc2" + +CVE_STATUS[CVE-2014-3153] = "fixed-version: Fixed from version 3.15" + +CVE_STATUS[CVE-2014-3180] = "fixed-version: Fixed from version 3.17rc4" + +CVE_STATUS[CVE-2014-3181] = "fixed-version: Fixed from version 3.17rc3" + +CVE_STATUS[CVE-2014-3182] = "fixed-version: Fixed from version 3.17rc2" + +CVE_STATUS[CVE-2014-3183] = "fixed-version: Fixed from version 3.17rc2" + +CVE_STATUS[CVE-2014-3184] = "fixed-version: Fixed from version 3.17rc2" + +CVE_STATUS[CVE-2014-3185] = "fixed-version: Fixed from version 3.17rc3" + +CVE_STATUS[CVE-2014-3186] = "fixed-version: Fixed from version 3.17rc3" + +# Skipping CVE-2014-3519, no affected_versions + +CVE_STATUS[CVE-2014-3534] = "fixed-version: Fixed from version 3.16rc7" + +CVE_STATUS[CVE-2014-3535] = "fixed-version: Fixed from version 2.6.36rc1" + +CVE_STATUS[CVE-2014-3601] = "fixed-version: Fixed from version 3.17rc2" + +CVE_STATUS[CVE-2014-3610] = "fixed-version: Fixed from version 3.18rc2" + +CVE_STATUS[CVE-2014-3611] = "fixed-version: Fixed from version 3.18rc2" + +CVE_STATUS[CVE-2014-3631] = "fixed-version: Fixed from version 3.17rc5" + +CVE_STATUS[CVE-2014-3645] = "fixed-version: Fixed from version 3.12rc1" + +CVE_STATUS[CVE-2014-3646] = "fixed-version: Fixed from version 3.18rc2" + +CVE_STATUS[CVE-2014-3647] = "fixed-version: Fixed from version 3.18rc2" + +CVE_STATUS[CVE-2014-3673] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2014-3687] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2014-3688] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2014-3690] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2014-3917] = "fixed-version: Fixed from version 3.16rc1" + +CVE_STATUS[CVE-2014-3940] = "fixed-version: Fixed from version 3.15" + +CVE_STATUS[CVE-2014-4014] = "fixed-version: Fixed from version 3.16rc1" + +CVE_STATUS[CVE-2014-4027] = "fixed-version: Fixed from version 3.14rc1" + +CVE_STATUS[CVE-2014-4157] = "fixed-version: Fixed from version 3.15rc1" + +CVE_STATUS[CVE-2014-4171] = "fixed-version: Fixed from version 3.16rc3" + +# Skipping CVE-2014-4322, no affected_versions + +# Skipping CVE-2014-4323, no affected_versions + +CVE_STATUS[CVE-2014-4508] = "fixed-version: Fixed from version 3.16rc3" + +CVE_STATUS[CVE-2014-4608] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2014-4611] = "fixed-version: Fixed from version 3.16rc3" + +CVE_STATUS[CVE-2014-4652] = "fixed-version: Fixed from version 3.16rc2" + +CVE_STATUS[CVE-2014-4653] = "fixed-version: Fixed from version 3.16rc2" + +CVE_STATUS[CVE-2014-4654] = "fixed-version: Fixed from version 3.16rc2" + +CVE_STATUS[CVE-2014-4655] = "fixed-version: Fixed from version 3.16rc2" + +CVE_STATUS[CVE-2014-4656] = "fixed-version: Fixed from version 3.16rc2" + +CVE_STATUS[CVE-2014-4667] = "fixed-version: Fixed from version 3.16rc1" + +CVE_STATUS[CVE-2014-4699] = "fixed-version: Fixed from version 3.16rc4" + +CVE_STATUS[CVE-2014-4943] = "fixed-version: Fixed from version 3.16rc6" + +CVE_STATUS[CVE-2014-5045] = "fixed-version: Fixed from version 3.16rc7" + +CVE_STATUS[CVE-2014-5077] = "fixed-version: Fixed from version 3.16" + +CVE_STATUS[CVE-2014-5206] = "fixed-version: Fixed from version 3.17rc1" + +CVE_STATUS[CVE-2014-5207] = "fixed-version: Fixed from version 3.17rc1" + +# Skipping CVE-2014-5332, no affected_versions + +CVE_STATUS[CVE-2014-5471] = "fixed-version: Fixed from version 3.17rc2" + +CVE_STATUS[CVE-2014-5472] = "fixed-version: Fixed from version 3.17rc2" + +CVE_STATUS[CVE-2014-6410] = "fixed-version: Fixed from version 3.17rc5" + +CVE_STATUS[CVE-2014-6416] = "fixed-version: Fixed from version 3.17rc5" + +CVE_STATUS[CVE-2014-6417] = "fixed-version: Fixed from version 3.17rc5" + +CVE_STATUS[CVE-2014-6418] = "fixed-version: Fixed from version 3.17rc5" + +CVE_STATUS[CVE-2014-7145] = "fixed-version: Fixed from version 3.17rc2" + +# Skipping CVE-2014-7207, no affected_versions + +CVE_STATUS[CVE-2014-7283] = "fixed-version: Fixed from version 3.15rc1" + +CVE_STATUS[CVE-2014-7284] = "fixed-version: Fixed from version 3.15rc7" + +CVE_STATUS[CVE-2014-7822] = "fixed-version: Fixed from version 3.16rc1" + +CVE_STATUS[CVE-2014-7825] = "fixed-version: Fixed from version 3.18rc3" + +CVE_STATUS[CVE-2014-7826] = "fixed-version: Fixed from version 3.18rc3" + +CVE_STATUS[CVE-2014-7841] = "fixed-version: Fixed from version 3.18rc5" + +CVE_STATUS[CVE-2014-7842] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2014-7843] = "fixed-version: Fixed from version 3.18rc5" + +CVE_STATUS[CVE-2014-7970] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2014-7975] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2014-8086] = "fixed-version: Fixed from version 3.18rc3" + +CVE_STATUS[CVE-2014-8133] = "fixed-version: Fixed from version 3.19rc1" + +CVE_STATUS[CVE-2014-8134] = "fixed-version: Fixed from version 3.19rc1" + +CVE_STATUS[CVE-2014-8159] = "fixed-version: Fixed from version 4.0rc7" + +CVE_STATUS[CVE-2014-8160] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2014-8171] = "fixed-version: Fixed from version 3.12rc1" + +CVE_STATUS[CVE-2014-8172] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2014-8173] = "fixed-version: Fixed from version 3.13rc5" + +# Skipping CVE-2014-8181, no affected_versions + +CVE_STATUS[CVE-2014-8369] = "fixed-version: Fixed from version 3.18rc2" + +CVE_STATUS[CVE-2014-8480] = "fixed-version: Fixed from version 3.18rc2" + +CVE_STATUS[CVE-2014-8481] = "fixed-version: Fixed from version 3.18rc2" + +CVE_STATUS[CVE-2014-8559] = "fixed-version: Fixed from version 3.19rc1" + +CVE_STATUS[CVE-2014-8709] = "fixed-version: Fixed from version 3.14rc3" + +CVE_STATUS[CVE-2014-8884] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2014-8989] = "fixed-version: Fixed from version 3.19rc1" + +CVE_STATUS[CVE-2014-9090] = "fixed-version: Fixed from version 3.18rc6" + +CVE_STATUS[CVE-2014-9322] = "fixed-version: Fixed from version 3.18rc6" + +CVE_STATUS[CVE-2014-9419] = "fixed-version: Fixed from version 3.19rc1" + +CVE_STATUS[CVE-2014-9420] = "fixed-version: Fixed from version 3.19rc1" + +CVE_STATUS[CVE-2014-9428] = "fixed-version: Fixed from version 3.19rc3" + +CVE_STATUS[CVE-2014-9529] = "fixed-version: Fixed from version 3.19rc4" + +CVE_STATUS[CVE-2014-9584] = "fixed-version: Fixed from version 3.19rc3" + +CVE_STATUS[CVE-2014-9585] = "fixed-version: Fixed from version 3.19rc4" + +CVE_STATUS[CVE-2014-9644] = "fixed-version: Fixed from version 3.19rc1" + +CVE_STATUS[CVE-2014-9683] = "fixed-version: Fixed from version 3.19rc1" + +CVE_STATUS[CVE-2014-9710] = "fixed-version: Fixed from version 3.19rc1" + +CVE_STATUS[CVE-2014-9715] = "fixed-version: Fixed from version 3.15rc1" + +CVE_STATUS[CVE-2014-9717] = "fixed-version: Fixed from version 4.1rc1" + +CVE_STATUS[CVE-2014-9728] = "fixed-version: Fixed from version 3.19rc3" + +CVE_STATUS[CVE-2014-9729] = "fixed-version: Fixed from version 3.19rc3" + +CVE_STATUS[CVE-2014-9730] = "fixed-version: Fixed from version 3.19rc3" + +CVE_STATUS[CVE-2014-9731] = "fixed-version: Fixed from version 3.19rc3" + +# Skipping CVE-2014-9777, no affected_versions + +# Skipping CVE-2014-9778, no affected_versions + +# Skipping CVE-2014-9779, no affected_versions + +# Skipping CVE-2014-9780, no affected_versions + +# Skipping CVE-2014-9781, no affected_versions + +# Skipping CVE-2014-9782, no affected_versions + +# Skipping CVE-2014-9783, no affected_versions + +# Skipping CVE-2014-9784, no affected_versions + +# Skipping CVE-2014-9785, no affected_versions + +# Skipping CVE-2014-9786, no affected_versions + +# Skipping CVE-2014-9787, no affected_versions + +# Skipping CVE-2014-9788, no affected_versions + +# Skipping CVE-2014-9789, no affected_versions + +CVE_STATUS[CVE-2014-9803] = "fixed-version: Fixed from version 3.16rc1" + +# Skipping CVE-2014-9863, no affected_versions + +# Skipping CVE-2014-9864, no affected_versions + +# Skipping CVE-2014-9865, no affected_versions + +# Skipping CVE-2014-9866, no affected_versions + +# Skipping CVE-2014-9867, no affected_versions + +# Skipping CVE-2014-9868, no affected_versions + +# Skipping CVE-2014-9869, no affected_versions + +CVE_STATUS[CVE-2014-9870] = "fixed-version: Fixed from version 3.11rc1" + +# Skipping CVE-2014-9871, no affected_versions + +# Skipping CVE-2014-9872, no affected_versions + +# Skipping CVE-2014-9873, no affected_versions + +# Skipping CVE-2014-9874, no affected_versions + +# Skipping CVE-2014-9875, no affected_versions + +# Skipping CVE-2014-9876, no affected_versions + +# Skipping CVE-2014-9877, no affected_versions + +# Skipping CVE-2014-9878, no affected_versions + +# Skipping CVE-2014-9879, no affected_versions + +# Skipping CVE-2014-9880, no affected_versions + +# Skipping CVE-2014-9881, no affected_versions + +# Skipping CVE-2014-9882, no affected_versions + +# Skipping CVE-2014-9883, no affected_versions + +# Skipping CVE-2014-9884, no affected_versions + +# Skipping CVE-2014-9885, no affected_versions + +# Skipping CVE-2014-9886, no affected_versions + +# Skipping CVE-2014-9887, no affected_versions + +CVE_STATUS[CVE-2014-9888] = "fixed-version: Fixed from version 3.13rc1" + +# Skipping CVE-2014-9889, no affected_versions + +# Skipping CVE-2014-9890, no affected_versions + +# Skipping CVE-2014-9891, no affected_versions + +# Skipping CVE-2014-9892, no affected_versions + +# Skipping CVE-2014-9893, no affected_versions + +# Skipping CVE-2014-9894, no affected_versions + +CVE_STATUS[CVE-2014-9895] = "fixed-version: Fixed from version 3.11rc1" + +# Skipping CVE-2014-9896, no affected_versions + +# Skipping CVE-2014-9897, no affected_versions + +# Skipping CVE-2014-9898, no affected_versions + +# Skipping CVE-2014-9899, no affected_versions + +# Skipping CVE-2014-9900, no affected_versions + +CVE_STATUS[CVE-2014-9903] = "fixed-version: Fixed from version 3.14rc4" + +CVE_STATUS[CVE-2014-9904] = "fixed-version: Fixed from version 3.17rc1" + +CVE_STATUS[CVE-2014-9914] = "fixed-version: Fixed from version 3.16rc1" + +CVE_STATUS[CVE-2014-9922] = "fixed-version: Fixed from version 3.18rc2" + +CVE_STATUS[CVE-2014-9940] = "fixed-version: Fixed from version 3.19rc1" + +CVE_STATUS[CVE-2015-0239] = "fixed-version: Fixed from version 3.19rc6" + +CVE_STATUS[CVE-2015-0274] = "fixed-version: Fixed from version 3.15rc5" + +CVE_STATUS[CVE-2015-0275] = "fixed-version: Fixed from version 4.1rc1" + +# Skipping CVE-2015-0777, no affected_versions + +# Skipping CVE-2015-1328, no affected_versions + +CVE_STATUS[CVE-2015-1333] = "fixed-version: Fixed from version 4.2rc5" + +CVE_STATUS[CVE-2015-1339] = "fixed-version: Fixed from version 4.4rc5" + +CVE_STATUS[CVE-2015-1350] = "fixed-version: Fixed from version 4.9rc1" + +CVE_STATUS[CVE-2015-1420] = "fixed-version: Fixed from version 4.1rc7" + +CVE_STATUS[CVE-2015-1421] = "fixed-version: Fixed from version 3.19rc7" + +CVE_STATUS[CVE-2015-1465] = "fixed-version: Fixed from version 3.19rc7" + +CVE_STATUS[CVE-2015-1573] = "fixed-version: Fixed from version 3.19rc5" + +CVE_STATUS[CVE-2015-1593] = "fixed-version: Fixed from version 4.0rc1" + +CVE_STATUS[CVE-2015-1805] = "fixed-version: Fixed from version 3.16rc1" + +CVE_STATUS[CVE-2015-2041] = "fixed-version: Fixed from version 3.19rc7" + +CVE_STATUS[CVE-2015-2042] = "fixed-version: Fixed from version 3.19" + +CVE_STATUS[CVE-2015-2150] = "fixed-version: Fixed from version 4.0rc4" + +CVE_STATUS[CVE-2015-2666] = "fixed-version: Fixed from version 4.0rc1" + +CVE_STATUS[CVE-2015-2672] = "fixed-version: Fixed from version 4.0rc3" + +CVE_STATUS[CVE-2015-2686] = "fixed-version: Fixed from version 4.0rc6" + +CVE_STATUS[CVE-2015-2830] = "fixed-version: Fixed from version 4.0rc3" + +# CVE-2015-2877 has no known resolution + +CVE_STATUS[CVE-2015-2922] = "fixed-version: Fixed from version 4.0rc7" + +CVE_STATUS[CVE-2015-2925] = "fixed-version: Fixed from version 4.3rc1" + +CVE_STATUS[CVE-2015-3212] = "fixed-version: Fixed from version 4.2rc1" + +CVE_STATUS[CVE-2015-3214] = "fixed-version: Fixed from version 2.6.33rc8" + +CVE_STATUS[CVE-2015-3288] = "fixed-version: Fixed from version 4.2rc2" + +CVE_STATUS[CVE-2015-3290] = "fixed-version: Fixed from version 4.2rc3" + +CVE_STATUS[CVE-2015-3291] = "fixed-version: Fixed from version 4.2rc3" + +CVE_STATUS[CVE-2015-3331] = "fixed-version: Fixed from version 4.0rc5" + +# Skipping CVE-2015-3332, no affected_versions + +CVE_STATUS[CVE-2015-3339] = "fixed-version: Fixed from version 4.1rc1" + +CVE_STATUS[CVE-2015-3636] = "fixed-version: Fixed from version 4.1rc2" + +CVE_STATUS[CVE-2015-4001] = "fixed-version: Fixed from version 4.1rc7" + +CVE_STATUS[CVE-2015-4002] = "fixed-version: Fixed from version 4.1rc7" + +CVE_STATUS[CVE-2015-4003] = "fixed-version: Fixed from version 4.1rc7" + +CVE_STATUS[CVE-2015-4004] = "fixed-version: Fixed from version 4.3rc1" + +CVE_STATUS[CVE-2015-4036] = "fixed-version: Fixed from version 4.0rc1" + +CVE_STATUS[CVE-2015-4167] = "fixed-version: Fixed from version 4.0rc1" + +CVE_STATUS[CVE-2015-4170] = "fixed-version: Fixed from version 3.13rc5" + +CVE_STATUS[CVE-2015-4176] = "fixed-version: Fixed from version 4.1rc1" + +CVE_STATUS[CVE-2015-4177] = "fixed-version: Fixed from version 4.1rc1" + +CVE_STATUS[CVE-2015-4178] = "fixed-version: Fixed from version 4.1rc1" + +CVE_STATUS[CVE-2015-4692] = "fixed-version: Fixed from version 4.2rc1" + +CVE_STATUS[CVE-2015-4700] = "fixed-version: Fixed from version 4.1rc6" + +CVE_STATUS[CVE-2015-5156] = "fixed-version: Fixed from version 4.2rc7" + +CVE_STATUS[CVE-2015-5157] = "fixed-version: Fixed from version 4.2rc3" + +CVE_STATUS[CVE-2015-5257] = "fixed-version: Fixed from version 4.3rc3" + +CVE_STATUS[CVE-2015-5283] = "fixed-version: Fixed from version 4.3rc3" + +CVE_STATUS[CVE-2015-5307] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2015-5327] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2015-5364] = "fixed-version: Fixed from version 4.1rc7" + +CVE_STATUS[CVE-2015-5366] = "fixed-version: Fixed from version 4.1rc7" + +CVE_STATUS[CVE-2015-5697] = "fixed-version: Fixed from version 4.2rc6" + +CVE_STATUS[CVE-2015-5706] = "fixed-version: Fixed from version 4.1rc3" + +CVE_STATUS[CVE-2015-5707] = "fixed-version: Fixed from version 4.1rc1" + +CVE_STATUS[CVE-2015-6252] = "fixed-version: Fixed from version 4.2rc5" + +CVE_STATUS[CVE-2015-6526] = "fixed-version: Fixed from version 4.1rc1" + +# CVE-2015-6619 has no known resolution + +# CVE-2015-6646 has no known resolution + +CVE_STATUS[CVE-2015-6937] = "fixed-version: Fixed from version 4.3rc1" + +# Skipping CVE-2015-7312, no affected_versions + +CVE_STATUS[CVE-2015-7509] = "fixed-version: Fixed from version 3.7rc1" + +CVE_STATUS[CVE-2015-7513] = "fixed-version: Fixed from version 4.4rc7" + +CVE_STATUS[CVE-2015-7515] = "fixed-version: Fixed from version 4.4rc6" + +CVE_STATUS[CVE-2015-7550] = "fixed-version: Fixed from version 4.4rc8" + +# Skipping CVE-2015-7553, no affected_versions + +CVE_STATUS[CVE-2015-7566] = "fixed-version: Fixed from version 4.5rc2" + +CVE_STATUS[CVE-2015-7613] = "fixed-version: Fixed from version 4.3rc4" + +CVE_STATUS[CVE-2015-7799] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2015-7833] = "fixed-version: Fixed from version 4.6rc6" + +# Skipping CVE-2015-7837, no affected_versions + +CVE_STATUS[CVE-2015-7872] = "fixed-version: Fixed from version 4.3rc7" + +CVE_STATUS[CVE-2015-7884] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2015-7885] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2015-7990] = "fixed-version: Fixed from version 4.4rc4" + +# Skipping CVE-2015-8019, no affected_versions + +CVE_STATUS[CVE-2015-8104] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2015-8215] = "fixed-version: Fixed from version 4.0rc3" + +CVE_STATUS[CVE-2015-8324] = "fixed-version: Fixed from version 2.6.34rc1" + +CVE_STATUS[CVE-2015-8374] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2015-8539] = "fixed-version: Fixed from version 4.4rc3" + +CVE_STATUS[CVE-2015-8543] = "fixed-version: Fixed from version 4.4rc6" + +CVE_STATUS[CVE-2015-8550] = "fixed-version: Fixed from version 4.4rc6" + +CVE_STATUS[CVE-2015-8551] = "fixed-version: Fixed from version 4.4rc6" + +CVE_STATUS[CVE-2015-8552] = "fixed-version: Fixed from version 4.4rc6" + +CVE_STATUS[CVE-2015-8553] = "fixed-version: Fixed from version 4.4rc6" + +CVE_STATUS[CVE-2015-8569] = "fixed-version: Fixed from version 4.4rc6" + +CVE_STATUS[CVE-2015-8575] = "fixed-version: Fixed from version 4.4rc6" + +CVE_STATUS[CVE-2015-8660] = "fixed-version: Fixed from version 4.4rc4" + +CVE_STATUS[CVE-2015-8709] = "fixed-version: Fixed from version 4.10rc1" + +CVE_STATUS[CVE-2015-8746] = "fixed-version: Fixed from version 4.3rc1" + +CVE_STATUS[CVE-2015-8767] = "fixed-version: Fixed from version 4.3rc4" + +CVE_STATUS[CVE-2015-8785] = "fixed-version: Fixed from version 4.4rc5" + +CVE_STATUS[CVE-2015-8787] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2015-8812] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2015-8816] = "fixed-version: Fixed from version 4.4rc6" + +CVE_STATUS[CVE-2015-8830] = "fixed-version: Fixed from version 4.1rc1" + +CVE_STATUS[CVE-2015-8839] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2015-8844] = "fixed-version: Fixed from version 4.4rc3" + +CVE_STATUS[CVE-2015-8845] = "fixed-version: Fixed from version 4.4rc3" + +# Skipping CVE-2015-8937, no affected_versions + +# Skipping CVE-2015-8938, no affected_versions + +# Skipping CVE-2015-8939, no affected_versions + +# Skipping CVE-2015-8940, no affected_versions + +# Skipping CVE-2015-8941, no affected_versions + +# Skipping CVE-2015-8942, no affected_versions + +# Skipping CVE-2015-8943, no affected_versions + +# Skipping CVE-2015-8944, no affected_versions + +CVE_STATUS[CVE-2015-8950] = "fixed-version: Fixed from version 4.1rc2" + +CVE_STATUS[CVE-2015-8952] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2015-8953] = "fixed-version: Fixed from version 4.3" + +CVE_STATUS[CVE-2015-8955] = "fixed-version: Fixed from version 4.1rc1" + +CVE_STATUS[CVE-2015-8956] = "fixed-version: Fixed from version 4.2rc1" + +CVE_STATUS[CVE-2015-8961] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2015-8962] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2015-8963] = "fixed-version: Fixed from version 4.4" + +CVE_STATUS[CVE-2015-8964] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2015-8966] = "fixed-version: Fixed from version 4.4rc8" + +CVE_STATUS[CVE-2015-8967] = "fixed-version: Fixed from version 4.0rc1" + +CVE_STATUS[CVE-2015-8970] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2015-9004] = "fixed-version: Fixed from version 3.19rc7" + +CVE_STATUS[CVE-2015-9016] = "fixed-version: Fixed from version 4.3rc1" + +CVE_STATUS[CVE-2015-9289] = "fixed-version: Fixed from version 4.2rc1" + +CVE_STATUS[CVE-2016-0617] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-0723] = "fixed-version: Fixed from version 4.5rc2" + +CVE_STATUS[CVE-2016-0728] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-0758] = "fixed-version: Fixed from version 4.6" + +# Skipping CVE-2016-0774, no affected_versions + +CVE_STATUS[CVE-2016-0821] = "fixed-version: Fixed from version 4.3rc1" + +CVE_STATUS[CVE-2016-0823] = "fixed-version: Fixed from version 4.0rc5" + +CVE_STATUS[CVE-2016-10044] = "fixed-version: Fixed from version 4.8rc7" + +CVE_STATUS[CVE-2016-10088] = "fixed-version: Fixed from version 4.10rc1" + +CVE_STATUS[CVE-2016-10147] = "fixed-version: Fixed from version 4.9" + +CVE_STATUS[CVE-2016-10150] = "fixed-version: Fixed from version 4.9rc8" + +CVE_STATUS[CVE-2016-10153] = "fixed-version: Fixed from version 4.10rc1" + +CVE_STATUS[CVE-2016-10154] = "fixed-version: Fixed from version 4.10rc1" + +CVE_STATUS[CVE-2016-10200] = "fixed-version: Fixed from version 4.9rc7" + +CVE_STATUS[CVE-2016-10208] = "fixed-version: Fixed from version 4.10rc1" + +CVE_STATUS[CVE-2016-10229] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-10318] = "fixed-version: Fixed from version 4.8rc6" + +CVE_STATUS[CVE-2016-10723] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2016-10741] = "fixed-version: Fixed from version 4.10rc1" + +CVE_STATUS[CVE-2016-10764] = "fixed-version: Fixed from version 4.10rc1" + +CVE_STATUS[CVE-2016-10905] = "fixed-version: Fixed from version 4.8rc1" + +CVE_STATUS[CVE-2016-10906] = "fixed-version: Fixed from version 4.5rc6" + +CVE_STATUS[CVE-2016-10907] = "fixed-version: Fixed from version 4.9rc1" + +CVE_STATUS[CVE-2016-1237] = "fixed-version: Fixed from version 4.7rc5" + +CVE_STATUS[CVE-2016-1575] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-1576] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-1583] = "fixed-version: Fixed from version 4.7rc3" + +CVE_STATUS[CVE-2016-2053] = "fixed-version: Fixed from version 4.3rc1" + +CVE_STATUS[CVE-2016-2069] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-2070] = "fixed-version: Fixed from version 4.4" + +CVE_STATUS[CVE-2016-2085] = "fixed-version: Fixed from version 4.5rc4" + +CVE_STATUS[CVE-2016-2117] = "fixed-version: Fixed from version 4.6rc5" + +CVE_STATUS[CVE-2016-2143] = "fixed-version: Fixed from version 4.5" + +CVE_STATUS[CVE-2016-2184] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-2185] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-2186] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-2187] = "fixed-version: Fixed from version 4.6rc5" + +CVE_STATUS[CVE-2016-2188] = "fixed-version: Fixed from version 4.11rc2" + +CVE_STATUS[CVE-2016-2383] = "fixed-version: Fixed from version 4.5rc4" + +CVE_STATUS[CVE-2016-2384] = "fixed-version: Fixed from version 4.5rc4" + +CVE_STATUS[CVE-2016-2543] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-2544] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-2545] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-2546] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-2547] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-2548] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-2549] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-2550] = "fixed-version: Fixed from version 4.5rc4" + +CVE_STATUS[CVE-2016-2782] = "fixed-version: Fixed from version 4.5rc2" + +CVE_STATUS[CVE-2016-2847] = "fixed-version: Fixed from version 4.5rc1" + +# Skipping CVE-2016-2853, no affected_versions + +# Skipping CVE-2016-2854, no affected_versions + +CVE_STATUS[CVE-2016-3044] = "fixed-version: Fixed from version 4.5" + +CVE_STATUS[CVE-2016-3070] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2016-3134] = "fixed-version: Fixed from version 4.6rc2" + +CVE_STATUS[CVE-2016-3135] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-3136] = "fixed-version: Fixed from version 4.6rc3" + +CVE_STATUS[CVE-2016-3137] = "fixed-version: Fixed from version 4.6rc3" + +CVE_STATUS[CVE-2016-3138] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-3139] = "fixed-version: Fixed from version 3.17rc1" + +CVE_STATUS[CVE-2016-3140] = "fixed-version: Fixed from version 4.6rc3" + +CVE_STATUS[CVE-2016-3156] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-3157] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-3672] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-3689] = "fixed-version: Fixed from version 4.6rc1" + +# Skipping CVE-2016-3695, no affected_versions + +# Skipping CVE-2016-3699, no affected_versions + +# Skipping CVE-2016-3707, no affected_versions + +CVE_STATUS[CVE-2016-3713] = "fixed-version: Fixed from version 4.7rc1" + +# CVE-2016-3775 has no known resolution + +# CVE-2016-3802 has no known resolution + +# CVE-2016-3803 has no known resolution + +CVE_STATUS[CVE-2016-3841] = "fixed-version: Fixed from version 4.4rc4" + +CVE_STATUS[CVE-2016-3857] = "fixed-version: Fixed from version 4.8rc2" + +CVE_STATUS[CVE-2016-3951] = "fixed-version: Fixed from version 4.5" + +CVE_STATUS[CVE-2016-3955] = "fixed-version: Fixed from version 4.6rc3" + +CVE_STATUS[CVE-2016-3961] = "fixed-version: Fixed from version 4.6rc5" + +CVE_STATUS[CVE-2016-4440] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2016-4470] = "fixed-version: Fixed from version 4.7rc4" + +CVE_STATUS[CVE-2016-4482] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2016-4485] = "fixed-version: Fixed from version 4.6" + +CVE_STATUS[CVE-2016-4486] = "fixed-version: Fixed from version 4.6" + +CVE_STATUS[CVE-2016-4557] = "fixed-version: Fixed from version 4.6rc6" + +CVE_STATUS[CVE-2016-4558] = "fixed-version: Fixed from version 4.6rc7" + +CVE_STATUS[CVE-2016-4565] = "fixed-version: Fixed from version 4.6rc6" + +CVE_STATUS[CVE-2016-4568] = "fixed-version: Fixed from version 4.6rc6" + +CVE_STATUS[CVE-2016-4569] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2016-4578] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2016-4580] = "fixed-version: Fixed from version 4.6" + +CVE_STATUS[CVE-2016-4581] = "fixed-version: Fixed from version 4.6rc7" + +CVE_STATUS[CVE-2016-4794] = "fixed-version: Fixed from version 4.7rc4" + +CVE_STATUS[CVE-2016-4805] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-4913] = "fixed-version: Fixed from version 4.6" + +CVE_STATUS[CVE-2016-4951] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2016-4997] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2016-4998] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2016-5195] = "fixed-version: Fixed from version 4.9rc2" + +CVE_STATUS[CVE-2016-5243] = "fixed-version: Fixed from version 4.7rc3" + +CVE_STATUS[CVE-2016-5244] = "fixed-version: Fixed from version 4.7rc3" + +# Skipping CVE-2016-5340, no affected_versions + +# Skipping CVE-2016-5342, no affected_versions + +# Skipping CVE-2016-5343, no affected_versions + +# Skipping CVE-2016-5344, no affected_versions + +CVE_STATUS[CVE-2016-5400] = "fixed-version: Fixed from version 4.7" + +CVE_STATUS[CVE-2016-5412] = "fixed-version: Fixed from version 4.8rc1" + +CVE_STATUS[CVE-2016-5696] = "fixed-version: Fixed from version 4.7" + +CVE_STATUS[CVE-2016-5728] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2016-5828] = "fixed-version: Fixed from version 4.7rc6" + +CVE_STATUS[CVE-2016-5829] = "fixed-version: Fixed from version 4.7rc5" + +# CVE-2016-5870 has no known resolution + +CVE_STATUS[CVE-2016-6130] = "fixed-version: Fixed from version 4.6rc6" + +CVE_STATUS[CVE-2016-6136] = "fixed-version: Fixed from version 4.8rc1" + +CVE_STATUS[CVE-2016-6156] = "fixed-version: Fixed from version 4.7rc7" + +CVE_STATUS[CVE-2016-6162] = "fixed-version: Fixed from version 4.7" + +CVE_STATUS[CVE-2016-6187] = "fixed-version: Fixed from version 4.7rc7" + +CVE_STATUS[CVE-2016-6197] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-6198] = "fixed-version: Fixed from version 4.6" + +CVE_STATUS[CVE-2016-6213] = "fixed-version: Fixed from version 4.9rc1" + +CVE_STATUS[CVE-2016-6327] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-6480] = "fixed-version: Fixed from version 4.8rc3" + +CVE_STATUS[CVE-2016-6516] = "fixed-version: Fixed from version 4.8rc1" + +# Skipping CVE-2016-6753, no affected_versions + +CVE_STATUS[CVE-2016-6786] = "fixed-version: Fixed from version 4.0rc1" + +CVE_STATUS[CVE-2016-6787] = "fixed-version: Fixed from version 4.0rc1" + +CVE_STATUS[CVE-2016-6828] = "fixed-version: Fixed from version 4.8rc5" + +CVE_STATUS[CVE-2016-7039] = "fixed-version: Fixed from version 4.9rc4" + +CVE_STATUS[CVE-2016-7042] = "fixed-version: Fixed from version 4.9rc3" + +CVE_STATUS[CVE-2016-7097] = "fixed-version: Fixed from version 4.9rc1" + +CVE_STATUS[CVE-2016-7117] = "fixed-version: Fixed from version 4.6rc1" + +# Skipping CVE-2016-7118, no affected_versions + +CVE_STATUS[CVE-2016-7425] = "fixed-version: Fixed from version 4.9rc1" + +CVE_STATUS[CVE-2016-7910] = "fixed-version: Fixed from version 4.8rc1" + +CVE_STATUS[CVE-2016-7911] = "fixed-version: Fixed from version 4.7rc7" + +CVE_STATUS[CVE-2016-7912] = "fixed-version: Fixed from version 4.6rc5" + +CVE_STATUS[CVE-2016-7913] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-7914] = "fixed-version: Fixed from version 4.6rc4" + +CVE_STATUS[CVE-2016-7915] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-7916] = "fixed-version: Fixed from version 4.6rc7" + +CVE_STATUS[CVE-2016-7917] = "fixed-version: Fixed from version 4.5rc6" + +CVE_STATUS[CVE-2016-8399] = "fixed-version: Fixed from version 4.9" + +# Skipping CVE-2016-8401, no affected_versions + +# Skipping CVE-2016-8402, no affected_versions + +# Skipping CVE-2016-8403, no affected_versions + +# Skipping CVE-2016-8404, no affected_versions + +CVE_STATUS[CVE-2016-8405] = "fixed-version: Fixed from version 4.10rc6" + +# Skipping CVE-2016-8406, no affected_versions + +# Skipping CVE-2016-8407, no affected_versions + +CVE_STATUS[CVE-2016-8630] = "fixed-version: Fixed from version 4.9rc4" + +CVE_STATUS[CVE-2016-8632] = "fixed-version: Fixed from version 4.9rc8" + +CVE_STATUS[CVE-2016-8633] = "fixed-version: Fixed from version 4.9rc4" + +CVE_STATUS[CVE-2016-8636] = "fixed-version: Fixed from version 4.10rc8" + +CVE_STATUS[CVE-2016-8645] = "fixed-version: Fixed from version 4.9rc6" + +CVE_STATUS[CVE-2016-8646] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2016-8650] = "fixed-version: Fixed from version 4.9rc7" + +CVE_STATUS[CVE-2016-8655] = "fixed-version: Fixed from version 4.9rc8" + +CVE_STATUS[CVE-2016-8658] = "fixed-version: Fixed from version 4.8rc7" + +# CVE-2016-8660 has no known resolution + +CVE_STATUS[CVE-2016-8666] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-9083] = "fixed-version: Fixed from version 4.9rc4" + +CVE_STATUS[CVE-2016-9084] = "fixed-version: Fixed from version 4.9rc4" + +CVE_STATUS[CVE-2016-9120] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-9178] = "fixed-version: Fixed from version 4.8rc7" + +CVE_STATUS[CVE-2016-9191] = "fixed-version: Fixed from version 4.10rc4" + +CVE_STATUS[CVE-2016-9313] = "fixed-version: Fixed from version 4.9rc3" + +CVE_STATUS[CVE-2016-9555] = "fixed-version: Fixed from version 4.9rc4" + +CVE_STATUS[CVE-2016-9576] = "fixed-version: Fixed from version 4.9" + +CVE_STATUS[CVE-2016-9588] = "fixed-version: Fixed from version 4.10rc1" + +CVE_STATUS[CVE-2016-9604] = "fixed-version: Fixed from version 4.11rc8" + +# Skipping CVE-2016-9644, no affected_versions + +CVE_STATUS[CVE-2016-9685] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-9754] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2016-9755] = "fixed-version: Fixed from version 4.9rc8" + +CVE_STATUS[CVE-2016-9756] = "fixed-version: Fixed from version 4.9rc7" + +CVE_STATUS[CVE-2016-9777] = "fixed-version: Fixed from version 4.9rc7" + +CVE_STATUS[CVE-2016-9793] = "fixed-version: Fixed from version 4.9rc8" + +CVE_STATUS[CVE-2016-9794] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2016-9806] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2016-9919] = "fixed-version: Fixed from version 4.9rc8" + +# Skipping CVE-2017-0403, no affected_versions + +# Skipping CVE-2017-0404, no affected_versions + +# Skipping CVE-2017-0426, no affected_versions + +# Skipping CVE-2017-0427, no affected_versions + +# CVE-2017-0507 has no known resolution + +# CVE-2017-0508 has no known resolution + +# Skipping CVE-2017-0510, no affected_versions + +# Skipping CVE-2017-0528, no affected_versions + +# Skipping CVE-2017-0537, no affected_versions + +# CVE-2017-0564 has no known resolution + +CVE_STATUS[CVE-2017-0605] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2017-0627] = "fixed-version: Fixed from version 4.14rc1" + +# CVE-2017-0630 has no known resolution + +# CVE-2017-0749 has no known resolution + +CVE_STATUS[CVE-2017-0750] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2017-0786] = "fixed-version: Fixed from version 4.14rc4" + +CVE_STATUS[CVE-2017-0861] = "fixed-version: Fixed from version 4.15rc3" + +CVE_STATUS[CVE-2017-1000] = "fixed-version: Fixed from version 4.13rc5" + +CVE_STATUS[CVE-2017-1000111] = "fixed-version: Fixed from version 4.13rc5" + +CVE_STATUS[CVE-2017-1000112] = "fixed-version: Fixed from version 4.13rc5" + +CVE_STATUS[CVE-2017-1000251] = "fixed-version: Fixed from version 4.14rc1" + +CVE_STATUS[CVE-2017-1000252] = "fixed-version: Fixed from version 4.14rc1" + +CVE_STATUS[CVE-2017-1000253] = "fixed-version: Fixed from version 4.1rc1" + +CVE_STATUS[CVE-2017-1000255] = "fixed-version: Fixed from version 4.14rc5" + +CVE_STATUS[CVE-2017-1000363] = "fixed-version: Fixed from version 4.12rc2" + +CVE_STATUS[CVE-2017-1000364] = "fixed-version: Fixed from version 4.12rc6" + +CVE_STATUS[CVE-2017-1000365] = "fixed-version: Fixed from version 4.12rc7" + +CVE_STATUS[CVE-2017-1000370] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-1000371] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-1000379] = "fixed-version: Fixed from version 4.12rc6" + +CVE_STATUS[CVE-2017-1000380] = "fixed-version: Fixed from version 4.12rc5" + +CVE_STATUS[CVE-2017-1000405] = "fixed-version: Fixed from version 4.15rc2" + +CVE_STATUS[CVE-2017-1000407] = "fixed-version: Fixed from version 4.15rc3" + +CVE_STATUS[CVE-2017-1000410] = "fixed-version: Fixed from version 4.15rc8" + +CVE_STATUS[CVE-2017-10661] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-10662] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2017-10663] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-10810] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2017-10911] = "fixed-version: Fixed from version 4.12rc7" + +CVE_STATUS[CVE-2017-11089] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-11176] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-11472] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2017-11473] = "fixed-version: Fixed from version 4.13rc2" + +CVE_STATUS[CVE-2017-11600] = "fixed-version: Fixed from version 4.13" + +CVE_STATUS[CVE-2017-12134] = "fixed-version: Fixed from version 4.13rc6" + +CVE_STATUS[CVE-2017-12146] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-12153] = "fixed-version: Fixed from version 4.14rc2" + +CVE_STATUS[CVE-2017-12154] = "fixed-version: Fixed from version 4.14rc1" + +CVE_STATUS[CVE-2017-12168] = "fixed-version: Fixed from version 4.9rc6" + +CVE_STATUS[CVE-2017-12188] = "fixed-version: Fixed from version 4.14rc5" + +CVE_STATUS[CVE-2017-12190] = "fixed-version: Fixed from version 4.14rc5" + +CVE_STATUS[CVE-2017-12192] = "fixed-version: Fixed from version 4.14rc3" + +CVE_STATUS[CVE-2017-12193] = "fixed-version: Fixed from version 4.14rc7" + +CVE_STATUS[CVE-2017-12762] = "fixed-version: Fixed from version 4.13rc4" + +CVE_STATUS[CVE-2017-13080] = "fixed-version: Fixed from version 4.14rc6" + +CVE_STATUS[CVE-2017-13166] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2017-13167] = "fixed-version: Fixed from version 4.5rc4" + +CVE_STATUS[CVE-2017-13168] = "fixed-version: Fixed from version 4.18rc4" + +CVE_STATUS[CVE-2017-13215] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2017-13216] = "fixed-version: Fixed from version 4.15rc8" + +CVE_STATUS[CVE-2017-13220] = "fixed-version: Fixed from version 3.19rc3" + +# CVE-2017-13221 has no known resolution + +# CVE-2017-13222 has no known resolution + +CVE_STATUS[CVE-2017-13305] = "fixed-version: Fixed from version 4.12rc5" + +CVE_STATUS[CVE-2017-13686] = "fixed-version: Fixed from version 4.13rc7" + +# CVE-2017-13693 has no known resolution + +# CVE-2017-13694 has no known resolution + +CVE_STATUS[CVE-2017-13695] = "fixed-version: Fixed from version 4.17rc1" + +CVE_STATUS[CVE-2017-13715] = "fixed-version: Fixed from version 4.3rc1" + +CVE_STATUS[CVE-2017-14051] = "fixed-version: Fixed from version 4.14rc1" + +CVE_STATUS[CVE-2017-14106] = "fixed-version: Fixed from version 4.12rc3" + +CVE_STATUS[CVE-2017-14140] = "fixed-version: Fixed from version 4.13rc6" + +CVE_STATUS[CVE-2017-14156] = "fixed-version: Fixed from version 4.14rc1" + +CVE_STATUS[CVE-2017-14340] = "fixed-version: Fixed from version 4.14rc1" + +CVE_STATUS[CVE-2017-14489] = "fixed-version: Fixed from version 4.14rc3" + +CVE_STATUS[CVE-2017-14497] = "fixed-version: Fixed from version 4.13" + +CVE_STATUS[CVE-2017-14954] = "fixed-version: Fixed from version 4.14rc3" + +CVE_STATUS[CVE-2017-14991] = "fixed-version: Fixed from version 4.14rc2" + +CVE_STATUS[CVE-2017-15102] = "fixed-version: Fixed from version 4.9rc1" + +CVE_STATUS[CVE-2017-15115] = "fixed-version: Fixed from version 4.14rc6" + +CVE_STATUS[CVE-2017-15116] = "fixed-version: Fixed from version 4.2rc1" + +CVE_STATUS[CVE-2017-15121] = "fixed-version: Fixed from version 3.11rc1" + +CVE_STATUS[CVE-2017-15126] = "fixed-version: Fixed from version 4.14rc4" + +CVE_STATUS[CVE-2017-15127] = "fixed-version: Fixed from version 4.13rc5" + +CVE_STATUS[CVE-2017-15128] = "fixed-version: Fixed from version 4.14rc8" + +CVE_STATUS[CVE-2017-15129] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-15265] = "fixed-version: Fixed from version 4.14rc5" + +CVE_STATUS[CVE-2017-15274] = "fixed-version: Fixed from version 4.12rc5" + +CVE_STATUS[CVE-2017-15299] = "fixed-version: Fixed from version 4.14rc6" + +CVE_STATUS[CVE-2017-15306] = "fixed-version: Fixed from version 4.14rc7" + +CVE_STATUS[CVE-2017-15537] = "fixed-version: Fixed from version 4.14rc3" + +CVE_STATUS[CVE-2017-15649] = "fixed-version: Fixed from version 4.14rc4" + +CVE_STATUS[CVE-2017-15868] = "fixed-version: Fixed from version 3.19rc3" + +CVE_STATUS[CVE-2017-15951] = "fixed-version: Fixed from version 4.14rc6" + +CVE_STATUS[CVE-2017-16525] = "fixed-version: Fixed from version 4.14rc5" + +CVE_STATUS[CVE-2017-16526] = "fixed-version: Fixed from version 4.14rc4" + +CVE_STATUS[CVE-2017-16527] = "fixed-version: Fixed from version 4.14rc5" + +CVE_STATUS[CVE-2017-16528] = "fixed-version: Fixed from version 4.14rc1" + +CVE_STATUS[CVE-2017-16529] = "fixed-version: Fixed from version 4.14rc4" + +CVE_STATUS[CVE-2017-16530] = "fixed-version: Fixed from version 4.14rc4" + +CVE_STATUS[CVE-2017-16531] = "fixed-version: Fixed from version 4.14rc4" + +CVE_STATUS[CVE-2017-16532] = "fixed-version: Fixed from version 4.14rc5" + +CVE_STATUS[CVE-2017-16533] = "fixed-version: Fixed from version 4.14rc5" + +CVE_STATUS[CVE-2017-16534] = "fixed-version: Fixed from version 4.14rc4" + +CVE_STATUS[CVE-2017-16535] = "fixed-version: Fixed from version 4.14rc6" + +CVE_STATUS[CVE-2017-16536] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2017-16537] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2017-16538] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2017-16643] = "fixed-version: Fixed from version 4.14rc7" + +CVE_STATUS[CVE-2017-16644] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2017-16645] = "fixed-version: Fixed from version 4.14rc6" + +CVE_STATUS[CVE-2017-16646] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2017-16647] = "fixed-version: Fixed from version 4.14" + +CVE_STATUS[CVE-2017-16648] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2017-16649] = "fixed-version: Fixed from version 4.14" + +CVE_STATUS[CVE-2017-16650] = "fixed-version: Fixed from version 4.14" + +CVE_STATUS[CVE-2017-16911] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-16912] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-16913] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-16914] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-16939] = "fixed-version: Fixed from version 4.14rc7" + +CVE_STATUS[CVE-2017-16994] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2017-16995] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-16996] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-17052] = "fixed-version: Fixed from version 4.13rc7" + +CVE_STATUS[CVE-2017-17053] = "fixed-version: Fixed from version 4.13rc7" + +CVE_STATUS[CVE-2017-17448] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-17449] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-17450] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-17558] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-17712] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-17741] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-17805] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-17806] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-17807] = "fixed-version: Fixed from version 4.15rc3" + +CVE_STATUS[CVE-2017-17852] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-17853] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-17854] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-17855] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-17856] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-17857] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-17862] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2017-17863] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-17864] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-17975] = "fixed-version: Fixed from version 4.17rc1" + +CVE_STATUS[CVE-2017-18017] = "fixed-version: Fixed from version 4.11rc7" + +CVE_STATUS[CVE-2017-18075] = "fixed-version: Fixed from version 4.15rc7" + +CVE_STATUS[CVE-2017-18079] = "fixed-version: Fixed from version 4.13rc1" + +# CVE-2017-18169 has no known resolution + +CVE_STATUS[CVE-2017-18174] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2017-18193] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-18200] = "fixed-version: Fixed from version 4.14rc5" + +CVE_STATUS[CVE-2017-18202] = "fixed-version: Fixed from version 4.15rc2" + +CVE_STATUS[CVE-2017-18203] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2017-18204] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2017-18208] = "fixed-version: Fixed from version 4.15rc2" + +CVE_STATUS[CVE-2017-18216] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2017-18218] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-18221] = "fixed-version: Fixed from version 4.12rc4" + +CVE_STATUS[CVE-2017-18222] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2017-18224] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2017-18232] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2017-18241] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-18249] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2017-18255] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-18257] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-18261] = "fixed-version: Fixed from version 4.13rc6" + +CVE_STATUS[CVE-2017-18270] = "fixed-version: Fixed from version 4.14rc3" + +CVE_STATUS[CVE-2017-18344] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-18360] = "fixed-version: Fixed from version 4.12rc2" + +CVE_STATUS[CVE-2017-18379] = "fixed-version: Fixed from version 4.14rc3" + +CVE_STATUS[CVE-2017-18509] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-18549] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-18550] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-18551] = "fixed-version: Fixed from version 4.15rc9" + +CVE_STATUS[CVE-2017-18552] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-18595] = "fixed-version: Fixed from version 4.15rc6" + +CVE_STATUS[CVE-2017-2583] = "fixed-version: Fixed from version 4.10rc4" + +CVE_STATUS[CVE-2017-2584] = "fixed-version: Fixed from version 4.10rc4" + +CVE_STATUS[CVE-2017-2596] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-2618] = "fixed-version: Fixed from version 4.10rc8" + +CVE_STATUS[CVE-2017-2634] = "fixed-version: Fixed from version 2.6.25rc1" + +CVE_STATUS[CVE-2017-2636] = "fixed-version: Fixed from version 4.11rc2" + +CVE_STATUS[CVE-2017-2647] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2017-2671] = "fixed-version: Fixed from version 4.11rc6" + +CVE_STATUS[CVE-2017-5123] = "fixed-version: Fixed from version 4.14rc5" + +CVE_STATUS[CVE-2017-5546] = "fixed-version: Fixed from version 4.10rc4" + +CVE_STATUS[CVE-2017-5547] = "fixed-version: Fixed from version 4.10rc5" + +CVE_STATUS[CVE-2017-5548] = "fixed-version: Fixed from version 4.10rc5" + +CVE_STATUS[CVE-2017-5549] = "fixed-version: Fixed from version 4.10rc4" + +CVE_STATUS[CVE-2017-5550] = "fixed-version: Fixed from version 4.10rc4" + +CVE_STATUS[CVE-2017-5551] = "fixed-version: Fixed from version 4.10rc4" + +CVE_STATUS[CVE-2017-5576] = "fixed-version: Fixed from version 4.10rc6" + +CVE_STATUS[CVE-2017-5577] = "fixed-version: Fixed from version 4.10rc6" + +CVE_STATUS[CVE-2017-5669] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-5715] = "fixed-version: Fixed from version 4.15rc8" + +CVE_STATUS[CVE-2017-5753] = "fixed-version: Fixed from version 4.15rc8" + +CVE_STATUS[CVE-2017-5754] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2017-5897] = "fixed-version: Fixed from version 4.10rc8" + +CVE_STATUS[CVE-2017-5967] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-5970] = "fixed-version: Fixed from version 4.10rc8" + +CVE_STATUS[CVE-2017-5972] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2017-5986] = "fixed-version: Fixed from version 4.10rc8" + +CVE_STATUS[CVE-2017-6001] = "fixed-version: Fixed from version 4.10rc4" + +CVE_STATUS[CVE-2017-6074] = "fixed-version: Fixed from version 4.10" + +CVE_STATUS[CVE-2017-6214] = "fixed-version: Fixed from version 4.10rc8" + +CVE_STATUS[CVE-2017-6345] = "fixed-version: Fixed from version 4.10" + +CVE_STATUS[CVE-2017-6346] = "fixed-version: Fixed from version 4.10" + +CVE_STATUS[CVE-2017-6347] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-6348] = "fixed-version: Fixed from version 4.10" + +CVE_STATUS[CVE-2017-6353] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-6874] = "fixed-version: Fixed from version 4.11rc2" + +CVE_STATUS[CVE-2017-6951] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2017-7184] = "fixed-version: Fixed from version 4.11rc5" + +CVE_STATUS[CVE-2017-7187] = "fixed-version: Fixed from version 4.11rc5" + +CVE_STATUS[CVE-2017-7261] = "fixed-version: Fixed from version 4.11rc6" + +CVE_STATUS[CVE-2017-7273] = "fixed-version: Fixed from version 4.10rc4" + +CVE_STATUS[CVE-2017-7277] = "fixed-version: Fixed from version 4.11rc4" + +CVE_STATUS[CVE-2017-7294] = "fixed-version: Fixed from version 4.11rc6" + +CVE_STATUS[CVE-2017-7308] = "fixed-version: Fixed from version 4.11rc6" + +CVE_STATUS[CVE-2017-7346] = "fixed-version: Fixed from version 4.12rc5" + +# CVE-2017-7369 has no known resolution + +CVE_STATUS[CVE-2017-7374] = "fixed-version: Fixed from version 4.11rc4" + +CVE_STATUS[CVE-2017-7472] = "fixed-version: Fixed from version 4.11rc8" + +CVE_STATUS[CVE-2017-7477] = "fixed-version: Fixed from version 4.11" + +CVE_STATUS[CVE-2017-7482] = "fixed-version: Fixed from version 4.12rc7" + +CVE_STATUS[CVE-2017-7487] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2017-7495] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2017-7518] = "fixed-version: Fixed from version 4.12rc7" + +CVE_STATUS[CVE-2017-7533] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-7541] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-7542] = "fixed-version: Fixed from version 4.13rc2" + +CVE_STATUS[CVE-2017-7558] = "fixed-version: Fixed from version 4.13" + +CVE_STATUS[CVE-2017-7616] = "fixed-version: Fixed from version 4.11rc6" + +CVE_STATUS[CVE-2017-7618] = "fixed-version: Fixed from version 4.11rc8" + +CVE_STATUS[CVE-2017-7645] = "fixed-version: Fixed from version 4.11" + +CVE_STATUS[CVE-2017-7889] = "fixed-version: Fixed from version 4.11rc7" + +CVE_STATUS[CVE-2017-7895] = "fixed-version: Fixed from version 4.11" + +CVE_STATUS[CVE-2017-7979] = "fixed-version: Fixed from version 4.11rc8" + +CVE_STATUS[CVE-2017-8061] = "fixed-version: Fixed from version 4.11rc4" + +CVE_STATUS[CVE-2017-8062] = "fixed-version: Fixed from version 4.11rc2" + +CVE_STATUS[CVE-2017-8063] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-8064] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-8065] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-8066] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-8067] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-8068] = "fixed-version: Fixed from version 4.10rc8" + +CVE_STATUS[CVE-2017-8069] = "fixed-version: Fixed from version 4.10rc8" + +CVE_STATUS[CVE-2017-8070] = "fixed-version: Fixed from version 4.10rc8" + +CVE_STATUS[CVE-2017-8071] = "fixed-version: Fixed from version 4.10rc7" + +CVE_STATUS[CVE-2017-8072] = "fixed-version: Fixed from version 4.10rc7" + +CVE_STATUS[CVE-2017-8106] = "fixed-version: Fixed from version 3.16rc1" + +CVE_STATUS[CVE-2017-8240] = "fixed-version: Fixed from version 3.19rc6" + +# CVE-2017-8242 has no known resolution + +# CVE-2017-8244 has no known resolution + +# CVE-2017-8245 has no known resolution + +# CVE-2017-8246 has no known resolution + +CVE_STATUS[CVE-2017-8797] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2017-8824] = "fixed-version: Fixed from version 4.15rc3" + +CVE_STATUS[CVE-2017-8831] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-8890] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2017-8924] = "fixed-version: Fixed from version 4.11rc2" + +CVE_STATUS[CVE-2017-8925] = "fixed-version: Fixed from version 4.11rc2" + +CVE_STATUS[CVE-2017-9059] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2017-9074] = "fixed-version: Fixed from version 4.12rc2" + +CVE_STATUS[CVE-2017-9075] = "fixed-version: Fixed from version 4.12rc2" + +CVE_STATUS[CVE-2017-9076] = "fixed-version: Fixed from version 4.12rc2" + +CVE_STATUS[CVE-2017-9077] = "fixed-version: Fixed from version 4.12rc2" + +CVE_STATUS[CVE-2017-9150] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2017-9211] = "fixed-version: Fixed from version 4.12rc3" + +CVE_STATUS[CVE-2017-9242] = "fixed-version: Fixed from version 4.12rc3" + +CVE_STATUS[CVE-2017-9605] = "fixed-version: Fixed from version 4.12rc5" + +CVE_STATUS[CVE-2017-9725] = "fixed-version: Fixed from version 4.3rc7" + +CVE_STATUS[CVE-2017-9984] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-9985] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-9986] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2018-1000004] = "fixed-version: Fixed from version 4.15rc9" + +CVE_STATUS[CVE-2018-1000026] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2018-1000028] = "fixed-version: Fixed from version 4.15" + +CVE_STATUS[CVE-2018-1000199] = "fixed-version: Fixed from version 4.16" + +CVE_STATUS[CVE-2018-1000200] = "fixed-version: Fixed from version 4.17rc5" + +CVE_STATUS[CVE-2018-1000204] = "fixed-version: Fixed from version 4.17rc7" + +CVE_STATUS[CVE-2018-10021] = "fixed-version: Fixed from version 4.16rc7" + +CVE_STATUS[CVE-2018-10074] = "fixed-version: Fixed from version 4.16rc7" + +CVE_STATUS[CVE-2018-10087] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2018-10124] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2018-10322] = "fixed-version: Fixed from version 4.17rc4" + +CVE_STATUS[CVE-2018-10323] = "fixed-version: Fixed from version 4.17rc4" + +CVE_STATUS[CVE-2018-1065] = "fixed-version: Fixed from version 4.16rc3" + +CVE_STATUS[CVE-2018-1066] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2018-10675] = "fixed-version: Fixed from version 4.13rc6" + +CVE_STATUS[CVE-2018-1068] = "fixed-version: Fixed from version 4.16rc5" + +CVE_STATUS[CVE-2018-10840] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-10853] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-1087] = "fixed-version: Fixed from version 4.16rc7" + +# CVE-2018-10872 has no known resolution + +CVE_STATUS[CVE-2018-10876] = "fixed-version: Fixed from version 4.18rc4" + +CVE_STATUS[CVE-2018-10877] = "fixed-version: Fixed from version 4.18rc4" + +CVE_STATUS[CVE-2018-10878] = "fixed-version: Fixed from version 4.18rc4" + +CVE_STATUS[CVE-2018-10879] = "fixed-version: Fixed from version 4.18rc4" + +CVE_STATUS[CVE-2018-10880] = "fixed-version: Fixed from version 4.18rc4" + +CVE_STATUS[CVE-2018-10881] = "fixed-version: Fixed from version 4.18rc4" + +CVE_STATUS[CVE-2018-10882] = "fixed-version: Fixed from version 4.18rc4" + +CVE_STATUS[CVE-2018-10883] = "fixed-version: Fixed from version 4.18rc4" + +CVE_STATUS[CVE-2018-10901] = "fixed-version: Fixed from version 2.6.36rc1" + +CVE_STATUS[CVE-2018-10902] = "fixed-version: Fixed from version 4.18rc6" + +CVE_STATUS[CVE-2018-1091] = "fixed-version: Fixed from version 4.14rc2" + +CVE_STATUS[CVE-2018-1092] = "fixed-version: Fixed from version 4.17rc1" + +CVE_STATUS[CVE-2018-1093] = "fixed-version: Fixed from version 4.17rc1" + +CVE_STATUS[CVE-2018-10938] = "fixed-version: Fixed from version 4.13rc5" + +CVE_STATUS[CVE-2018-1094] = "fixed-version: Fixed from version 4.17rc1" + +CVE_STATUS[CVE-2018-10940] = "fixed-version: Fixed from version 4.17rc3" + +CVE_STATUS[CVE-2018-1095] = "fixed-version: Fixed from version 4.17rc1" + +CVE_STATUS[CVE-2018-1108] = "fixed-version: Fixed from version 4.17rc2" + +CVE_STATUS[CVE-2018-1118] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-1120] = "fixed-version: Fixed from version 4.17rc6" + +# CVE-2018-1121 has no known resolution + +CVE_STATUS[CVE-2018-11232] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2018-1128] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-1129] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-1130] = "fixed-version: Fixed from version 4.16rc7" + +CVE_STATUS[CVE-2018-11412] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-11506] = "fixed-version: Fixed from version 4.17rc7" + +CVE_STATUS[CVE-2018-11508] = "fixed-version: Fixed from version 4.17rc5" + +# CVE-2018-11987 has no known resolution + +CVE_STATUS[CVE-2018-12126] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2018-12127] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2018-12130] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2018-12207] = "fixed-version: Fixed from version 5.4rc2" + +CVE_STATUS[CVE-2018-12232] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-12233] = "fixed-version: Fixed from version 4.18rc2" + +CVE_STATUS[CVE-2018-12633] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-12714] = "fixed-version: Fixed from version 4.18rc2" + +CVE_STATUS[CVE-2018-12896] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-12904] = "fixed-version: Fixed from version 4.18rc1" + +# CVE-2018-12928 has no known resolution + +# CVE-2018-12929 has no known resolution + +# CVE-2018-12930 has no known resolution + +# CVE-2018-12931 has no known resolution + +CVE_STATUS[CVE-2018-13053] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-13093] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-13094] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-13095] = "fixed-version: Fixed from version 4.18rc3" + +CVE_STATUS[CVE-2018-13096] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-13097] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-13098] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-13099] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-13100] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-13405] = "fixed-version: Fixed from version 4.18rc4" + +CVE_STATUS[CVE-2018-13406] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-14609] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-14610] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-14611] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-14612] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-14613] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-14614] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-14615] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-14616] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-14617] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-14619] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2018-14625] = "fixed-version: Fixed from version 4.20rc6" + +CVE_STATUS[CVE-2018-14633] = "fixed-version: Fixed from version 4.19rc6" + +CVE_STATUS[CVE-2018-14634] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2018-14641] = "fixed-version: Fixed from version 4.19rc4" + +CVE_STATUS[CVE-2018-14646] = "fixed-version: Fixed from version 4.15rc8" + +CVE_STATUS[CVE-2018-14656] = "fixed-version: Fixed from version 4.19rc2" + +CVE_STATUS[CVE-2018-14678] = "fixed-version: Fixed from version 4.18rc8" + +CVE_STATUS[CVE-2018-14734] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-15471] = "fixed-version: Fixed from version 4.19rc7" + +CVE_STATUS[CVE-2018-15572] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-15594] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-16276] = "fixed-version: Fixed from version 4.18rc5" + +CVE_STATUS[CVE-2018-16597] = "fixed-version: Fixed from version 4.8rc1" + +CVE_STATUS[CVE-2018-16658] = "fixed-version: Fixed from version 4.19rc2" + +CVE_STATUS[CVE-2018-16862] = "fixed-version: Fixed from version 4.20rc5" + +CVE_STATUS[CVE-2018-16871] = "fixed-version: Fixed from version 4.20rc3" + +CVE_STATUS[CVE-2018-16880] = "fixed-version: Fixed from version 5.0rc5" + +CVE_STATUS[CVE-2018-16882] = "fixed-version: Fixed from version 4.20" + +CVE_STATUS[CVE-2018-16884] = "fixed-version: Fixed from version 5.0rc1" + +# CVE-2018-16885 has no known resolution + +CVE_STATUS[CVE-2018-17182] = "fixed-version: Fixed from version 4.19rc4" + +CVE_STATUS[CVE-2018-17972] = "fixed-version: Fixed from version 4.19rc7" + +# CVE-2018-17977 has no known resolution + +CVE_STATUS[CVE-2018-18021] = "fixed-version: Fixed from version 4.19rc7" + +CVE_STATUS[CVE-2018-18281] = "fixed-version: Fixed from version 4.19" + +CVE_STATUS[CVE-2018-18386] = "fixed-version: Fixed from version 4.15rc6" + +CVE_STATUS[CVE-2018-18397] = "fixed-version: Fixed from version 4.20rc5" + +CVE_STATUS[CVE-2018-18445] = "fixed-version: Fixed from version 4.19rc7" + +CVE_STATUS[CVE-2018-18559] = "fixed-version: Fixed from version 4.15rc2" + +# CVE-2018-18653 has no known resolution + +CVE_STATUS[CVE-2018-18690] = "fixed-version: Fixed from version 4.17rc4" + +CVE_STATUS[CVE-2018-18710] = "fixed-version: Fixed from version 4.20rc1" + +CVE_STATUS[CVE-2018-18955] = "fixed-version: Fixed from version 4.20rc2" + +CVE_STATUS[CVE-2018-19406] = "fixed-version: Fixed from version 4.20rc5" + +CVE_STATUS[CVE-2018-19407] = "fixed-version: Fixed from version 4.20rc5" + +CVE_STATUS[CVE-2018-19824] = "fixed-version: Fixed from version 4.20rc6" + +CVE_STATUS[CVE-2018-19854] = "fixed-version: Fixed from version 4.20rc3" + +CVE_STATUS[CVE-2018-19985] = "fixed-version: Fixed from version 4.20" + +CVE_STATUS[CVE-2018-20169] = "fixed-version: Fixed from version 4.20rc6" + +CVE_STATUS[CVE-2018-20449] = "fixed-version: Fixed from version 4.15rc2" + +CVE_STATUS[CVE-2018-20509] = "fixed-version: Fixed from version 4.14rc1" + +CVE_STATUS[CVE-2018-20510] = "fixed-version: Fixed from version 4.16rc3" + +CVE_STATUS[CVE-2018-20511] = "fixed-version: Fixed from version 4.19rc5" + +CVE_STATUS[CVE-2018-20669] = "fixed-version: Fixed from version 5.0rc1" + +CVE_STATUS[CVE-2018-20784] = "fixed-version: Fixed from version 5.0rc1" + +CVE_STATUS[CVE-2018-20836] = "fixed-version: Fixed from version 4.20rc1" + +CVE_STATUS[CVE-2018-20854] = "fixed-version: Fixed from version 4.20rc1" + +CVE_STATUS[CVE-2018-20855] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-20856] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-20961] = "fixed-version: Fixed from version 4.17rc1" + +CVE_STATUS[CVE-2018-20976] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-21008] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-25015] = "fixed-version: Fixed from version 4.15rc9" + +CVE_STATUS[CVE-2018-25020] = "fixed-version: Fixed from version 4.17rc7" + +# CVE-2018-3574 has no known resolution + +CVE_STATUS[CVE-2018-3620] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-3639] = "fixed-version: Fixed from version 4.17rc7" + +CVE_STATUS[CVE-2018-3646] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-3665] = "fixed-version: Fixed from version 3.7rc1" + +CVE_STATUS[CVE-2018-3693] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-5332] = "fixed-version: Fixed from version 4.15rc8" + +CVE_STATUS[CVE-2018-5333] = "fixed-version: Fixed from version 4.15rc8" + +CVE_STATUS[CVE-2018-5344] = "fixed-version: Fixed from version 4.15rc8" + +CVE_STATUS[CVE-2018-5390] = "fixed-version: Fixed from version 4.18rc7" + +CVE_STATUS[CVE-2018-5391] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-5703] = "fixed-version: Fixed from version 4.16rc5" + +CVE_STATUS[CVE-2018-5750] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2018-5803] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2018-5814] = "fixed-version: Fixed from version 4.17rc6" + +CVE_STATUS[CVE-2018-5848] = "fixed-version: Fixed from version 4.16rc1" + +# Skipping CVE-2018-5856, no affected_versions + +CVE_STATUS[CVE-2018-5873] = "fixed-version: Fixed from version 4.11rc8" + +CVE_STATUS[CVE-2018-5953] = "fixed-version: Fixed from version 4.15rc2" + +CVE_STATUS[CVE-2018-5995] = "fixed-version: Fixed from version 4.15rc2" + +CVE_STATUS[CVE-2018-6412] = "fixed-version: Fixed from version 4.16rc5" + +CVE_STATUS[CVE-2018-6554] = "fixed-version: Fixed from version 4.17rc1" + +CVE_STATUS[CVE-2018-6555] = "fixed-version: Fixed from version 4.17rc1" + +# CVE-2018-6559 has no known resolution + +CVE_STATUS[CVE-2018-6927] = "fixed-version: Fixed from version 4.15rc9" + +CVE_STATUS[CVE-2018-7191] = "fixed-version: Fixed from version 4.14rc6" + +CVE_STATUS[CVE-2018-7273] = "fixed-version: Fixed from version 4.15rc2" + +CVE_STATUS[CVE-2018-7480] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2018-7492] = "fixed-version: Fixed from version 4.15rc3" + +CVE_STATUS[CVE-2018-7566] = "fixed-version: Fixed from version 4.16rc2" + +CVE_STATUS[CVE-2018-7740] = "fixed-version: Fixed from version 4.16rc7" + +CVE_STATUS[CVE-2018-7754] = "fixed-version: Fixed from version 4.15rc2" + +CVE_STATUS[CVE-2018-7755] = "fixed-version: Fixed from version 4.19rc5" + +CVE_STATUS[CVE-2018-7757] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2018-7995] = "fixed-version: Fixed from version 4.16rc5" + +CVE_STATUS[CVE-2018-8043] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2018-8087] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2018-8781] = "fixed-version: Fixed from version 4.16rc7" + +CVE_STATUS[CVE-2018-8822] = "fixed-version: Fixed from version 4.16rc7" + +CVE_STATUS[CVE-2018-8897] = "fixed-version: Fixed from version 4.16rc7" + +CVE_STATUS[CVE-2018-9363] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-9385] = "fixed-version: Fixed from version 4.17rc3" + +CVE_STATUS[CVE-2018-9415] = "fixed-version: Fixed from version 4.17rc3" + +CVE_STATUS[CVE-2018-9422] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2018-9465] = "fixed-version: Fixed from version 4.15rc6" + +CVE_STATUS[CVE-2018-9516] = "fixed-version: Fixed from version 4.18rc5" + +CVE_STATUS[CVE-2018-9517] = "fixed-version: Fixed from version 4.14rc1" + +CVE_STATUS[CVE-2018-9518] = "fixed-version: Fixed from version 4.16rc3" + +CVE_STATUS[CVE-2018-9568] = "fixed-version: Fixed from version 4.14rc4" + +CVE_STATUS[CVE-2019-0136] = "fixed-version: Fixed from version 5.2rc6" + +CVE_STATUS[CVE-2019-0145] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-0146] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-0147] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-0148] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-0149] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-0154] = "fixed-version: Fixed from version 5.4rc8" + +CVE_STATUS[CVE-2019-0155] = "fixed-version: Fixed from version 5.4rc8" + +CVE_STATUS[CVE-2019-10124] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-10125] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-10126] = "fixed-version: Fixed from version 5.2rc6" + +# CVE-2019-10140 has no known resolution + +CVE_STATUS[CVE-2019-10142] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-10207] = "fixed-version: Fixed from version 5.3rc3" + +CVE_STATUS[CVE-2019-10220] = "fixed-version: Fixed from version 5.4rc2" + +CVE_STATUS[CVE-2019-10638] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-10639] = "fixed-version: Fixed from version 5.1rc4" + +CVE_STATUS[CVE-2019-11085] = "fixed-version: Fixed from version 5.0rc3" + +CVE_STATUS[CVE-2019-11091] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-11135] = "fixed-version: Fixed from version 5.4rc8" + +CVE_STATUS[CVE-2019-11190] = "fixed-version: Fixed from version 4.8rc5" + +CVE_STATUS[CVE-2019-11191] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-1125] = "fixed-version: Fixed from version 5.3rc4" + +CVE_STATUS[CVE-2019-11477] = "fixed-version: Fixed from version 5.2rc6" + +CVE_STATUS[CVE-2019-11478] = "fixed-version: Fixed from version 5.2rc6" + +CVE_STATUS[CVE-2019-11479] = "fixed-version: Fixed from version 5.2rc6" + +CVE_STATUS[CVE-2019-11486] = "fixed-version: Fixed from version 5.1rc4" + +CVE_STATUS[CVE-2019-11487] = "fixed-version: Fixed from version 5.1rc5" + +CVE_STATUS[CVE-2019-11599] = "fixed-version: Fixed from version 5.1rc6" + +CVE_STATUS[CVE-2019-11683] = "fixed-version: Fixed from version 5.1" + +CVE_STATUS[CVE-2019-11810] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-11811] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-11815] = "fixed-version: Fixed from version 5.1rc4" + +CVE_STATUS[CVE-2019-11833] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-11884] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-12378] = "fixed-version: Fixed from version 5.2rc3" + +CVE_STATUS[CVE-2019-12379] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-12380] = "fixed-version: Fixed from version 5.2rc3" + +CVE_STATUS[CVE-2019-12381] = "fixed-version: Fixed from version 5.2rc3" + +CVE_STATUS[CVE-2019-12382] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-12454] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-12455] = "fixed-version: Fixed from version 5.3rc1" + +# CVE-2019-12456 has no known resolution + +CVE_STATUS[CVE-2019-12614] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-12615] = "fixed-version: Fixed from version 5.2rc4" + +CVE_STATUS[CVE-2019-12817] = "fixed-version: Fixed from version 5.2rc7" + +CVE_STATUS[CVE-2019-12818] = "fixed-version: Fixed from version 5.0" + +CVE_STATUS[CVE-2019-12819] = "fixed-version: Fixed from version 5.0rc8" + +CVE_STATUS[CVE-2019-12881] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2019-12984] = "fixed-version: Fixed from version 5.2rc6" + +CVE_STATUS[CVE-2019-13233] = "fixed-version: Fixed from version 5.2rc4" + +CVE_STATUS[CVE-2019-13272] = "fixed-version: Fixed from version 5.2" + +CVE_STATUS[CVE-2019-13631] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-13648] = "fixed-version: Fixed from version 5.3rc2" + +CVE_STATUS[CVE-2019-14283] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-14284] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-14615] = "fixed-version: Fixed from version 5.5rc7" + +CVE_STATUS[CVE-2019-14763] = "fixed-version: Fixed from version 4.17rc1" + +CVE_STATUS[CVE-2019-14814] = "fixed-version: Fixed from version 5.3" + +CVE_STATUS[CVE-2019-14815] = "fixed-version: Fixed from version 5.3" + +CVE_STATUS[CVE-2019-14816] = "fixed-version: Fixed from version 5.3" + +CVE_STATUS[CVE-2019-14821] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-14835] = "fixed-version: Fixed from version 5.3" + +CVE_STATUS[CVE-2019-14895] = "fixed-version: Fixed from version 5.5rc3" + +CVE_STATUS[CVE-2019-14896] = "fixed-version: Fixed from version 5.5" + +CVE_STATUS[CVE-2019-14897] = "fixed-version: Fixed from version 5.5" + +# CVE-2019-14898 has no known resolution + +CVE_STATUS[CVE-2019-14901] = "fixed-version: Fixed from version 5.5rc3" + +CVE_STATUS[CVE-2019-15030] = "fixed-version: Fixed from version 5.3rc8" + +CVE_STATUS[CVE-2019-15031] = "fixed-version: Fixed from version 5.3rc8" + +CVE_STATUS[CVE-2019-15090] = "fixed-version: Fixed from version 5.2rc2" + +CVE_STATUS[CVE-2019-15098] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-15099] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-15117] = "fixed-version: Fixed from version 5.3rc5" + +CVE_STATUS[CVE-2019-15118] = "fixed-version: Fixed from version 5.3rc5" + +CVE_STATUS[CVE-2019-15211] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-15212] = "fixed-version: Fixed from version 5.2rc3" + +CVE_STATUS[CVE-2019-15213] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-15214] = "fixed-version: Fixed from version 5.1rc6" + +CVE_STATUS[CVE-2019-15215] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-15216] = "fixed-version: Fixed from version 5.1" + +CVE_STATUS[CVE-2019-15217] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-15218] = "fixed-version: Fixed from version 5.2rc3" + +CVE_STATUS[CVE-2019-15219] = "fixed-version: Fixed from version 5.2rc3" + +CVE_STATUS[CVE-2019-15220] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-15221] = "fixed-version: Fixed from version 5.2" + +CVE_STATUS[CVE-2019-15222] = "fixed-version: Fixed from version 5.3rc3" + +CVE_STATUS[CVE-2019-15223] = "fixed-version: Fixed from version 5.2rc3" + +# CVE-2019-15239 has no known resolution + +# CVE-2019-15290 has no known resolution + +CVE_STATUS[CVE-2019-15291] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-15292] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-15504] = "fixed-version: Fixed from version 5.3" + +CVE_STATUS[CVE-2019-15505] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-15538] = "fixed-version: Fixed from version 5.3rc6" + +CVE_STATUS[CVE-2019-15666] = "fixed-version: Fixed from version 5.1" + +# CVE-2019-15791 has no known resolution + +# CVE-2019-15792 has no known resolution + +# CVE-2019-15793 has no known resolution + +CVE_STATUS[CVE-2019-15794] = "fixed-version: Fixed from version 5.12" + +CVE_STATUS[CVE-2019-15807] = "fixed-version: Fixed from version 5.2rc3" + +# CVE-2019-15902 has no known resolution + +CVE_STATUS[CVE-2019-15916] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-15917] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-15918] = "fixed-version: Fixed from version 5.1rc6" + +CVE_STATUS[CVE-2019-15919] = "fixed-version: Fixed from version 5.1rc6" + +CVE_STATUS[CVE-2019-15920] = "fixed-version: Fixed from version 5.1rc6" + +CVE_STATUS[CVE-2019-15921] = "fixed-version: Fixed from version 5.1rc3" + +CVE_STATUS[CVE-2019-15922] = "fixed-version: Fixed from version 5.1rc4" + +CVE_STATUS[CVE-2019-15923] = "fixed-version: Fixed from version 5.1rc4" + +CVE_STATUS[CVE-2019-15924] = "fixed-version: Fixed from version 5.1rc4" + +CVE_STATUS[CVE-2019-15925] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-15926] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-15927] = "fixed-version: Fixed from version 5.0rc2" + +# CVE-2019-16089 has no known resolution + +CVE_STATUS[CVE-2019-16229] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-16230] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-16231] = "fixed-version: Fixed from version 5.4rc6" + +CVE_STATUS[CVE-2019-16232] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-16233] = "fixed-version: Fixed from version 5.4rc5" + +CVE_STATUS[CVE-2019-16234] = "fixed-version: Fixed from version 5.4rc4" + +CVE_STATUS[CVE-2019-16413] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-16714] = "fixed-version: Fixed from version 5.3rc7" + +CVE_STATUS[CVE-2019-16746] = "fixed-version: Fixed from version 5.4rc2" + +CVE_STATUS[CVE-2019-16921] = "fixed-version: Fixed from version 4.17rc1" + +CVE_STATUS[CVE-2019-16994] = "fixed-version: Fixed from version 5.0" + +CVE_STATUS[CVE-2019-16995] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-17052] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-17053] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-17054] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-17055] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-17056] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-17075] = "fixed-version: Fixed from version 5.4rc3" + +CVE_STATUS[CVE-2019-17133] = "fixed-version: Fixed from version 5.4rc4" + +CVE_STATUS[CVE-2019-17351] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-17666] = "fixed-version: Fixed from version 5.4rc6" + +CVE_STATUS[CVE-2019-18198] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-18282] = "fixed-version: Fixed from version 5.4rc6" + +CVE_STATUS[CVE-2019-18660] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-18675] = "fixed-version: Fixed from version 4.17rc5" + +# CVE-2019-18680 has no known resolution + +CVE_STATUS[CVE-2019-18683] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-18786] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-18805] = "fixed-version: Fixed from version 5.1rc7" + +CVE_STATUS[CVE-2019-18806] = "fixed-version: Fixed from version 5.4rc2" + +CVE_STATUS[CVE-2019-18807] = "fixed-version: Fixed from version 5.4rc2" + +CVE_STATUS[CVE-2019-18808] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-18809] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-18810] = "fixed-version: Fixed from version 5.4rc2" + +CVE_STATUS[CVE-2019-18811] = "fixed-version: Fixed from version 5.4rc7" + +CVE_STATUS[CVE-2019-18812] = "fixed-version: Fixed from version 5.4rc7" + +CVE_STATUS[CVE-2019-18813] = "fixed-version: Fixed from version 5.4rc6" + +CVE_STATUS[CVE-2019-18814] = "fixed-version: Fixed from version 5.7rc7" + +CVE_STATUS[CVE-2019-18885] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-19036] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19037] = "fixed-version: Fixed from version 5.5rc3" + +CVE_STATUS[CVE-2019-19039] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2019-19043] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19044] = "fixed-version: Fixed from version 5.4rc6" + +CVE_STATUS[CVE-2019-19045] = "fixed-version: Fixed from version 5.4rc6" + +CVE_STATUS[CVE-2019-19046] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19047] = "fixed-version: Fixed from version 5.4rc6" + +CVE_STATUS[CVE-2019-19048] = "fixed-version: Fixed from version 5.4rc3" + +CVE_STATUS[CVE-2019-19049] = "fixed-version: Fixed from version 5.4rc5" + +CVE_STATUS[CVE-2019-19050] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19051] = "fixed-version: Fixed from version 5.4rc6" + +CVE_STATUS[CVE-2019-19052] = "fixed-version: Fixed from version 5.4rc7" + +CVE_STATUS[CVE-2019-19053] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19054] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19055] = "fixed-version: Fixed from version 5.4rc4" + +CVE_STATUS[CVE-2019-19056] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19057] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19058] = "fixed-version: Fixed from version 5.4rc4" + +CVE_STATUS[CVE-2019-19059] = "fixed-version: Fixed from version 5.4rc4" + +CVE_STATUS[CVE-2019-19060] = "fixed-version: Fixed from version 5.4rc3" + +CVE_STATUS[CVE-2019-19061] = "fixed-version: Fixed from version 5.4rc3" + +CVE_STATUS[CVE-2019-19062] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19063] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19064] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19065] = "fixed-version: Fixed from version 5.4rc3" + +CVE_STATUS[CVE-2019-19066] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19067] = "fixed-version: Fixed from version 5.4rc2" + +CVE_STATUS[CVE-2019-19068] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19069] = "fixed-version: Fixed from version 5.4rc3" + +CVE_STATUS[CVE-2019-19070] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19071] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19072] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19073] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19074] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19075] = "fixed-version: Fixed from version 5.4rc2" + +CVE_STATUS[CVE-2019-19076] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19077] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19078] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19079] = "fixed-version: Fixed from version 5.3" + +CVE_STATUS[CVE-2019-19080] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19081] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19082] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19083] = "fixed-version: Fixed from version 5.4rc2" + +CVE_STATUS[CVE-2019-19227] = "fixed-version: Fixed from version 5.1rc3" + +CVE_STATUS[CVE-2019-19241] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19252] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19318] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19319] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-19332] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19338] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19377] = "fixed-version: Fixed from version 5.7rc1" + +# CVE-2019-19378 has no known resolution + +CVE_STATUS[CVE-2019-19447] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19448] = "fixed-version: Fixed from version 5.9rc1" + +CVE_STATUS[CVE-2019-19449] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2019-19462] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2019-19523] = "fixed-version: Fixed from version 5.4rc3" + +CVE_STATUS[CVE-2019-19524] = "fixed-version: Fixed from version 5.4rc8" + +CVE_STATUS[CVE-2019-19525] = "fixed-version: Fixed from version 5.4rc2" + +CVE_STATUS[CVE-2019-19526] = "fixed-version: Fixed from version 5.4rc4" + +CVE_STATUS[CVE-2019-19527] = "fixed-version: Fixed from version 5.3rc4" + +CVE_STATUS[CVE-2019-19528] = "fixed-version: Fixed from version 5.4rc3" + +CVE_STATUS[CVE-2019-19529] = "fixed-version: Fixed from version 5.4rc7" + +CVE_STATUS[CVE-2019-19530] = "fixed-version: Fixed from version 5.3rc5" + +CVE_STATUS[CVE-2019-19531] = "fixed-version: Fixed from version 5.3rc4" + +CVE_STATUS[CVE-2019-19532] = "fixed-version: Fixed from version 5.4rc6" + +CVE_STATUS[CVE-2019-19533] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19534] = "fixed-version: Fixed from version 5.4rc7" + +CVE_STATUS[CVE-2019-19535] = "fixed-version: Fixed from version 5.3rc4" + +CVE_STATUS[CVE-2019-19536] = "fixed-version: Fixed from version 5.3rc4" + +CVE_STATUS[CVE-2019-19537] = "fixed-version: Fixed from version 5.3rc5" + +CVE_STATUS[CVE-2019-19543] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-19602] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19767] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19768] = "fixed-version: Fixed from version 5.6rc4" + +CVE_STATUS[CVE-2019-19769] = "fixed-version: Fixed from version 5.6rc5" + +CVE_STATUS[CVE-2019-19770] = "fixed-version: Fixed from version 5.9rc1" + +CVE_STATUS[CVE-2019-19807] = "fixed-version: Fixed from version 5.4rc7" + +CVE_STATUS[CVE-2019-19813] = "fixed-version: Fixed from version 5.2rc1" + +# CVE-2019-19814 has no known resolution + +CVE_STATUS[CVE-2019-19815] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-19816] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-19922] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19927] = "fixed-version: Fixed from version 5.1rc6" + +CVE_STATUS[CVE-2019-19947] = "fixed-version: Fixed from version 5.5rc3" + +CVE_STATUS[CVE-2019-19965] = "fixed-version: Fixed from version 5.5rc2" + +CVE_STATUS[CVE-2019-19966] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-1999] = "fixed-version: Fixed from version 5.1rc3" + +CVE_STATUS[CVE-2019-20054] = "fixed-version: Fixed from version 5.1rc3" + +CVE_STATUS[CVE-2019-20095] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-20096] = "fixed-version: Fixed from version 5.1rc4" + +CVE_STATUS[CVE-2019-2024] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2019-2025] = "fixed-version: Fixed from version 4.20rc5" + +CVE_STATUS[CVE-2019-20422] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-2054] = "fixed-version: Fixed from version 4.8rc1" + +CVE_STATUS[CVE-2019-20636] = "fixed-version: Fixed from version 5.5rc6" + +# CVE-2019-20794 has no known resolution + +CVE_STATUS[CVE-2019-20806] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-20810] = "fixed-version: Fixed from version 5.6rc1" + +CVE_STATUS[CVE-2019-20811] = "fixed-version: Fixed from version 5.1rc3" + +CVE_STATUS[CVE-2019-20812] = "fixed-version: Fixed from version 5.5rc3" + +CVE_STATUS[CVE-2019-20908] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-20934] = "fixed-version: Fixed from version 5.3rc2" + +CVE_STATUS[CVE-2019-2101] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-2181] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-2182] = "fixed-version: Fixed from version 4.16rc3" + +CVE_STATUS[CVE-2019-2213] = "fixed-version: Fixed from version 5.2rc6" + +CVE_STATUS[CVE-2019-2214] = "fixed-version: Fixed from version 5.3rc2" + +CVE_STATUS[CVE-2019-2215] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2019-25044] = "fixed-version: Fixed from version 5.2rc4" + +CVE_STATUS[CVE-2019-25045] = "fixed-version: Fixed from version 5.1" + +CVE_STATUS[CVE-2019-25160] = "fixed-version: Fixed from version 5.0" + +CVE_STATUS[CVE-2019-25162] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2019-3016] = "fixed-version: Fixed from version 5.6rc1" + +CVE_STATUS[CVE-2019-3459] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-3460] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-3701] = "fixed-version: Fixed from version 5.0rc3" + +CVE_STATUS[CVE-2019-3819] = "fixed-version: Fixed from version 5.0rc6" + +CVE_STATUS[CVE-2019-3837] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2019-3846] = "fixed-version: Fixed from version 5.2rc6" + +CVE_STATUS[CVE-2019-3874] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-3882] = "fixed-version: Fixed from version 5.1rc4" + +CVE_STATUS[CVE-2019-3887] = "fixed-version: Fixed from version 5.1rc4" + +CVE_STATUS[CVE-2019-3892] = "fixed-version: Fixed from version 5.1rc6" + +CVE_STATUS[CVE-2019-3896] = "fixed-version: Fixed from version 2.6.35rc1" + +CVE_STATUS[CVE-2019-3900] = "fixed-version: Fixed from version 5.2rc4" + +CVE_STATUS[CVE-2019-3901] = "fixed-version: Fixed from version 4.6rc6" + +CVE_STATUS[CVE-2019-5108] = "fixed-version: Fixed from version 5.3" + +# Skipping CVE-2019-5489, no affected_versions + +CVE_STATUS[CVE-2019-6133] = "fixed-version: Fixed from version 5.0rc2" + +CVE_STATUS[CVE-2019-6974] = "fixed-version: Fixed from version 5.0rc6" + +CVE_STATUS[CVE-2019-7221] = "fixed-version: Fixed from version 5.0rc6" + +CVE_STATUS[CVE-2019-7222] = "fixed-version: Fixed from version 5.0rc6" + +CVE_STATUS[CVE-2019-7308] = "fixed-version: Fixed from version 5.0rc3" + +CVE_STATUS[CVE-2019-8912] = "fixed-version: Fixed from version 5.0rc8" + +CVE_STATUS[CVE-2019-8956] = "fixed-version: Fixed from version 5.0rc6" + +CVE_STATUS[CVE-2019-8980] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-9003] = "fixed-version: Fixed from version 5.0rc4" + +CVE_STATUS[CVE-2019-9162] = "fixed-version: Fixed from version 5.0rc7" + +CVE_STATUS[CVE-2019-9213] = "fixed-version: Fixed from version 5.0" + +CVE_STATUS[CVE-2019-9245] = "fixed-version: Fixed from version 5.0rc1" + +CVE_STATUS[CVE-2019-9444] = "fixed-version: Fixed from version 4.15rc2" + +CVE_STATUS[CVE-2019-9445] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-9453] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-9454] = "fixed-version: Fixed from version 4.15rc9" + +CVE_STATUS[CVE-2019-9455] = "fixed-version: Fixed from version 5.0rc1" + +CVE_STATUS[CVE-2019-9456] = "fixed-version: Fixed from version 4.16rc6" + +CVE_STATUS[CVE-2019-9457] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2019-9458] = "fixed-version: Fixed from version 4.19rc7" + +CVE_STATUS[CVE-2019-9466] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-9500] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-9503] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-9506] = "fixed-version: Fixed from version 5.2" + +CVE_STATUS[CVE-2019-9857] = "fixed-version: Fixed from version 5.1rc2" + +CVE_STATUS[CVE-2020-0009] = "fixed-version: Fixed from version 5.6rc3" + +CVE_STATUS[CVE-2020-0030] = "fixed-version: Fixed from version 4.16rc3" + +CVE_STATUS[CVE-2020-0041] = "fixed-version: Fixed from version 5.5rc2" + +CVE_STATUS[CVE-2020-0066] = "fixed-version: Fixed from version 4.3rc7" + +CVE_STATUS[CVE-2020-0067] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2020-0110] = "fixed-version: Fixed from version 5.6rc2" + +CVE_STATUS[CVE-2020-0255] = "fixed-version: Fixed from version 5.7rc4" + +CVE_STATUS[CVE-2020-0305] = "fixed-version: Fixed from version 5.5rc6" + +# CVE-2020-0347 has no known resolution + +CVE_STATUS[CVE-2020-0404] = "fixed-version: Fixed from version 5.6rc1" + +CVE_STATUS[CVE-2020-0423] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-0427] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2020-0429] = "fixed-version: Fixed from version 4.14rc4" + +CVE_STATUS[CVE-2020-0430] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2020-0431] = "fixed-version: Fixed from version 5.5rc6" + +CVE_STATUS[CVE-2020-0432] = "fixed-version: Fixed from version 5.6rc1" + +CVE_STATUS[CVE-2020-0433] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2020-0435] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2020-0444] = "fixed-version: Fixed from version 5.6rc4" + +CVE_STATUS[CVE-2020-0465] = "fixed-version: Fixed from version 5.9rc4" + +CVE_STATUS[CVE-2020-0466] = "fixed-version: Fixed from version 5.9rc2" + +CVE_STATUS[CVE-2020-0543] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-10135] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-10690] = "fixed-version: Fixed from version 5.5rc5" + +# CVE-2020-10708 has no known resolution + +CVE_STATUS[CVE-2020-10711] = "fixed-version: Fixed from version 5.7rc6" + +CVE_STATUS[CVE-2020-10720] = "fixed-version: Fixed from version 5.2rc3" + +CVE_STATUS[CVE-2020-10732] = "fixed-version: Fixed from version 5.7" + +CVE_STATUS[CVE-2020-10742] = "fixed-version: Fixed from version 3.16rc1" + +CVE_STATUS[CVE-2020-10751] = "fixed-version: Fixed from version 5.7rc4" + +CVE_STATUS[CVE-2020-10757] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-10766] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-10767] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-10768] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-10769] = "fixed-version: Fixed from version 5.0rc3" + +CVE_STATUS[CVE-2020-10773] = "fixed-version: Fixed from version 5.4rc6" + +# CVE-2020-10774 has no known resolution + +CVE_STATUS[CVE-2020-10781] = "fixed-version: Fixed from version 5.8rc6" + +CVE_STATUS[CVE-2020-10942] = "fixed-version: Fixed from version 5.6rc4" + +CVE_STATUS[CVE-2020-11494] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-11565] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-11608] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-11609] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-11668] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-11669] = "fixed-version: Fixed from version 5.2rc1" + +# CVE-2020-11725 has no known resolution + +CVE_STATUS[CVE-2020-11884] = "fixed-version: Fixed from version 5.7rc4" + +# CVE-2020-11935 has no known resolution + +CVE_STATUS[CVE-2020-12114] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2020-12351] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-12352] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-12362] = "fixed-version: Fixed from version 5.11rc1" + +CVE_STATUS[CVE-2020-12363] = "fixed-version: Fixed from version 5.11rc1" + +CVE_STATUS[CVE-2020-12364] = "fixed-version: Fixed from version 5.11rc1" + +CVE_STATUS[CVE-2020-12464] = "fixed-version: Fixed from version 5.7rc3" + +CVE_STATUS[CVE-2020-12465] = "fixed-version: Fixed from version 5.6rc6" + +CVE_STATUS[CVE-2020-12652] = "fixed-version: Fixed from version 5.5rc7" + +CVE_STATUS[CVE-2020-12653] = "fixed-version: Fixed from version 5.6rc1" + +CVE_STATUS[CVE-2020-12654] = "fixed-version: Fixed from version 5.6rc1" + +CVE_STATUS[CVE-2020-12655] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-12656] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-12657] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-12659] = "fixed-version: Fixed from version 5.7rc2" + +CVE_STATUS[CVE-2020-12768] = "fixed-version: Fixed from version 5.6rc4" + +CVE_STATUS[CVE-2020-12769] = "fixed-version: Fixed from version 5.5rc6" + +CVE_STATUS[CVE-2020-12770] = "fixed-version: Fixed from version 5.7rc3" + +CVE_STATUS[CVE-2020-12771] = "fixed-version: Fixed from version 5.8rc2" + +CVE_STATUS[CVE-2020-12826] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-12888] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-12912] = "fixed-version: Fixed from version 5.10rc4" + +CVE_STATUS[CVE-2020-13143] = "fixed-version: Fixed from version 5.7rc6" + +CVE_STATUS[CVE-2020-13974] = "fixed-version: Fixed from version 5.8rc1" + +# CVE-2020-14304 has no known resolution + +CVE_STATUS[CVE-2020-14305] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2020-14314] = "fixed-version: Fixed from version 5.9rc2" + +CVE_STATUS[CVE-2020-14331] = "fixed-version: Fixed from version 5.9rc1" + +CVE_STATUS[CVE-2020-14351] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-14353] = "fixed-version: Fixed from version 4.14rc3" + +CVE_STATUS[CVE-2020-14356] = "fixed-version: Fixed from version 5.8rc5" + +CVE_STATUS[CVE-2020-14381] = "fixed-version: Fixed from version 5.6rc6" + +CVE_STATUS[CVE-2020-14385] = "fixed-version: Fixed from version 5.9rc4" + +CVE_STATUS[CVE-2020-14386] = "fixed-version: Fixed from version 5.9rc4" + +CVE_STATUS[CVE-2020-14390] = "fixed-version: Fixed from version 5.9rc6" + +CVE_STATUS[CVE-2020-14416] = "fixed-version: Fixed from version 5.5" + +CVE_STATUS[CVE-2020-15393] = "fixed-version: Fixed from version 5.8rc3" + +CVE_STATUS[CVE-2020-15436] = "fixed-version: Fixed from version 5.8rc2" + +CVE_STATUS[CVE-2020-15437] = "fixed-version: Fixed from version 5.8rc7" + +CVE_STATUS[CVE-2020-15780] = "fixed-version: Fixed from version 5.8rc3" + +# CVE-2020-15802 has no known resolution + +CVE_STATUS[CVE-2020-15852] = "fixed-version: Fixed from version 5.8rc6" + +CVE_STATUS[CVE-2020-16119] = "fixed-version: Fixed from version 5.15rc2" + +CVE_STATUS[CVE-2020-16120] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-16166] = "fixed-version: Fixed from version 5.8" + +CVE_STATUS[CVE-2020-1749] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2020-24394] = "fixed-version: Fixed from version 5.8rc4" + +CVE_STATUS[CVE-2020-24490] = "fixed-version: Fixed from version 5.8" + +# CVE-2020-24502 has no known resolution + +# CVE-2020-24503 has no known resolution + +CVE_STATUS[CVE-2020-24504] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2020-24586] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2020-24587] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2020-24588] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2020-25211] = "fixed-version: Fixed from version 5.9rc7" + +CVE_STATUS[CVE-2020-25212] = "fixed-version: Fixed from version 5.9rc1" + +# CVE-2020-25220 has no known resolution + +CVE_STATUS[CVE-2020-25221] = "fixed-version: Fixed from version 5.9rc4" + +CVE_STATUS[CVE-2020-25284] = "fixed-version: Fixed from version 5.9rc5" + +CVE_STATUS[CVE-2020-25285] = "fixed-version: Fixed from version 5.9rc4" + +CVE_STATUS[CVE-2020-25639] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2020-25641] = "fixed-version: Fixed from version 5.9rc4" + +CVE_STATUS[CVE-2020-25643] = "fixed-version: Fixed from version 5.9rc7" + +CVE_STATUS[CVE-2020-25645] = "fixed-version: Fixed from version 5.9rc7" + +CVE_STATUS[CVE-2020-25656] = "fixed-version: Fixed from version 5.10rc2" + +# CVE-2020-25661 has no known resolution + +# CVE-2020-25662 has no known resolution + +CVE_STATUS[CVE-2020-25668] = "fixed-version: Fixed from version 5.10rc3" + +CVE_STATUS[CVE-2020-25669] = "fixed-version: Fixed from version 5.10rc5" + +CVE_STATUS[CVE-2020-25670] = "fixed-version: Fixed from version 5.12rc7" + +CVE_STATUS[CVE-2020-25671] = "fixed-version: Fixed from version 5.12rc7" + +CVE_STATUS[CVE-2020-25672] = "fixed-version: Fixed from version 5.12rc7" + +CVE_STATUS[CVE-2020-25673] = "fixed-version: Fixed from version 5.12rc7" + +CVE_STATUS[CVE-2020-25704] = "fixed-version: Fixed from version 5.10rc3" + +CVE_STATUS[CVE-2020-25705] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-26088] = "fixed-version: Fixed from version 5.9rc1" + +CVE_STATUS[CVE-2020-26139] = "fixed-version: Fixed from version 5.13rc4" + +# CVE-2020-26140 has no known resolution + +CVE_STATUS[CVE-2020-26141] = "fixed-version: Fixed from version 5.13rc4" + +# CVE-2020-26142 has no known resolution + +# CVE-2020-26143 has no known resolution + +CVE_STATUS[CVE-2020-26145] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2020-26147] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2020-26541] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-26555] = "fixed-version: Fixed from version 5.13rc1" + +# CVE-2020-26556 has no known resolution + +# CVE-2020-26557 has no known resolution + +CVE_STATUS[CVE-2020-26558] = "fixed-version: Fixed from version 5.13rc1" + +# CVE-2020-26559 has no known resolution + +# CVE-2020-26560 has no known resolution + +CVE_STATUS[CVE-2020-27066] = "fixed-version: Fixed from version 5.6" + +CVE_STATUS[CVE-2020-27067] = "fixed-version: Fixed from version 4.14rc4" + +CVE_STATUS[CVE-2020-27068] = "fixed-version: Fixed from version 5.6rc2" + +CVE_STATUS[CVE-2020-27152] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-27170] = "fixed-version: Fixed from version 5.12rc5" + +CVE_STATUS[CVE-2020-27171] = "fixed-version: Fixed from version 5.12rc5" + +CVE_STATUS[CVE-2020-27194] = "fixed-version: Fixed from version 5.9" + +CVE_STATUS[CVE-2020-2732] = "fixed-version: Fixed from version 5.6rc4" + +CVE_STATUS[CVE-2020-27418] = "fixed-version: Fixed from version 5.6rc5" + +CVE_STATUS[CVE-2020-27673] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-27675] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-27777] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-27784] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-27786] = "fixed-version: Fixed from version 5.7rc6" + +CVE_STATUS[CVE-2020-27815] = "fixed-version: Fixed from version 5.11rc1" + +CVE_STATUS[CVE-2020-27820] = "fixed-version: Fixed from version 5.16rc1" + +CVE_STATUS[CVE-2020-27825] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-27830] = "fixed-version: Fixed from version 5.10rc7" + +CVE_STATUS[CVE-2020-27835] = "fixed-version: Fixed from version 5.10rc6" + +CVE_STATUS[CVE-2020-28097] = "fixed-version: Fixed from version 5.9rc6" + +CVE_STATUS[CVE-2020-28374] = "fixed-version: Fixed from version 5.11rc4" + +CVE_STATUS[CVE-2020-28588] = "fixed-version: Fixed from version 5.10rc7" + +CVE_STATUS[CVE-2020-28915] = "fixed-version: Fixed from version 5.9" + +CVE_STATUS[CVE-2020-28941] = "fixed-version: Fixed from version 5.10rc5" + +CVE_STATUS[CVE-2020-28974] = "fixed-version: Fixed from version 5.10rc3" + +CVE_STATUS[CVE-2020-29368] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-29369] = "fixed-version: Fixed from version 5.8rc7" + +CVE_STATUS[CVE-2020-29370] = "fixed-version: Fixed from version 5.6rc7" + +CVE_STATUS[CVE-2020-29371] = "fixed-version: Fixed from version 5.9rc2" + +CVE_STATUS[CVE-2020-29372] = "fixed-version: Fixed from version 5.7rc3" + +CVE_STATUS[CVE-2020-29373] = "fixed-version: Fixed from version 5.6rc2" + +CVE_STATUS[CVE-2020-29374] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-29534] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-29568] = "fixed-version: Fixed from version 5.11rc1" + +CVE_STATUS[CVE-2020-29569] = "fixed-version: Fixed from version 5.11rc1" + +CVE_STATUS[CVE-2020-29660] = "fixed-version: Fixed from version 5.10rc7" + +CVE_STATUS[CVE-2020-29661] = "fixed-version: Fixed from version 5.10rc7" + +CVE_STATUS[CVE-2020-35499] = "fixed-version: Fixed from version 5.11rc1" + +# CVE-2020-35501 has no known resolution + +CVE_STATUS[CVE-2020-35508] = "fixed-version: Fixed from version 5.10rc3" + +CVE_STATUS[CVE-2020-35513] = "fixed-version: Fixed from version 4.17rc1" + +CVE_STATUS[CVE-2020-35519] = "fixed-version: Fixed from version 5.10rc7" + +CVE_STATUS[CVE-2020-36158] = "fixed-version: Fixed from version 5.11rc1" + +CVE_STATUS[CVE-2020-36310] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-36311] = "fixed-version: Fixed from version 5.9rc5" + +CVE_STATUS[CVE-2020-36312] = "fixed-version: Fixed from version 5.9rc5" + +CVE_STATUS[CVE-2020-36313] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-36322] = "fixed-version: Fixed from version 5.11rc1" + +CVE_STATUS[CVE-2020-36385] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-36386] = "fixed-version: Fixed from version 5.9rc1" + +CVE_STATUS[CVE-2020-36387] = "fixed-version: Fixed from version 5.9rc1" + +CVE_STATUS[CVE-2020-36516] = "fixed-version: Fixed from version 5.17rc2" + +CVE_STATUS[CVE-2020-36557] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-36558] = "fixed-version: Fixed from version 5.6rc3" + +CVE_STATUS[CVE-2020-36691] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-36694] = "fixed-version: Fixed from version 5.10" + +CVE_STATUS[CVE-2020-36766] = "fixed-version: Fixed from version 5.9rc1" + +CVE_STATUS[CVE-2020-36775] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-36776] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-36777] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-36778] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-36779] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-36780] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-36781] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-36782] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-36783] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-36784] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-36785] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-36786] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-36787] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-3702] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2020-4788] = "fixed-version: Fixed from version 5.10rc5" + +CVE_STATUS[CVE-2020-7053] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2020-8428] = "fixed-version: Fixed from version 5.5" + +CVE_STATUS[CVE-2020-8647] = "fixed-version: Fixed from version 5.6rc5" + +CVE_STATUS[CVE-2020-8648] = "fixed-version: Fixed from version 5.6rc3" + +CVE_STATUS[CVE-2020-8649] = "fixed-version: Fixed from version 5.6rc5" + +CVE_STATUS[CVE-2020-8694] = "fixed-version: Fixed from version 5.10rc4" + +# CVE-2020-8832 has no known resolution + +CVE_STATUS[CVE-2020-8834] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2020-8835] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-8992] = "fixed-version: Fixed from version 5.6rc2" + +CVE_STATUS[CVE-2020-9383] = "fixed-version: Fixed from version 5.6rc4" + +CVE_STATUS[CVE-2020-9391] = "fixed-version: Fixed from version 5.6rc3" + +CVE_STATUS[CVE-2021-0129] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-0342] = "fixed-version: Fixed from version 5.8rc1" + +# CVE-2021-0399 has no known resolution + +CVE_STATUS[CVE-2021-0447] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2021-0448] = "fixed-version: Fixed from version 5.9rc7" + +CVE_STATUS[CVE-2021-0512] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2021-0605] = "fixed-version: Fixed from version 5.8" + +# CVE-2021-0606 has no known resolution + +# CVE-2021-0695 has no known resolution + +CVE_STATUS[CVE-2021-0707] = "fixed-version: Fixed from version 5.11rc3" + +CVE_STATUS[CVE-2021-0920] = "fixed-version: Fixed from version 5.14rc4" + +# CVE-2021-0924 has no known resolution + +CVE_STATUS[CVE-2021-0929] = "fixed-version: Fixed from version 5.6rc1" + +CVE_STATUS[CVE-2021-0935] = "fixed-version: Fixed from version 4.16rc7" + +# CVE-2021-0936 has no known resolution + +CVE_STATUS[CVE-2021-0937] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-0938] = "fixed-version: Fixed from version 5.10rc4" + +CVE_STATUS[CVE-2021-0941] = "fixed-version: Fixed from version 5.12rc1" + +# CVE-2021-0961 has no known resolution + +CVE_STATUS[CVE-2021-1048] = "fixed-version: Fixed from version 5.9rc4" + +CVE_STATUS[CVE-2021-20177] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2021-20194] = "fixed-version: Fixed from version 5.10rc1" + +# CVE-2021-20219 has no known resolution + +CVE_STATUS[CVE-2021-20226] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2021-20239] = "fixed-version: Fixed from version 5.9rc1" + +CVE_STATUS[CVE-2021-20261] = "fixed-version: Fixed from version 4.5rc5" + +CVE_STATUS[CVE-2021-20265] = "fixed-version: Fixed from version 4.5rc3" + +CVE_STATUS[CVE-2021-20268] = "fixed-version: Fixed from version 5.11rc5" + +CVE_STATUS[CVE-2021-20292] = "fixed-version: Fixed from version 5.9rc1" + +CVE_STATUS[CVE-2021-20317] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2021-20320] = "fixed-version: Fixed from version 5.15rc3" + +CVE_STATUS[CVE-2021-20321] = "fixed-version: Fixed from version 5.15rc5" + +CVE_STATUS[CVE-2021-20322] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2021-21781] = "fixed-version: Fixed from version 5.11rc7" + +CVE_STATUS[CVE-2021-22543] = "fixed-version: Fixed from version 5.13" + +CVE_STATUS[CVE-2021-22555] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-22600] = "fixed-version: Fixed from version 5.16rc6" + +CVE_STATUS[CVE-2021-23133] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-23134] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-26401] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2021-26708] = "fixed-version: Fixed from version 5.11rc7" + +CVE_STATUS[CVE-2021-26930] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2021-26931] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2021-26932] = "fixed-version: Fixed from version 5.12rc1" + +# CVE-2021-26934 has no known resolution + +CVE_STATUS[CVE-2021-27363] = "fixed-version: Fixed from version 5.12rc2" + +CVE_STATUS[CVE-2021-27364] = "fixed-version: Fixed from version 5.12rc2" + +CVE_STATUS[CVE-2021-27365] = "fixed-version: Fixed from version 5.12rc2" + +CVE_STATUS[CVE-2021-28038] = "fixed-version: Fixed from version 5.12rc2" + +CVE_STATUS[CVE-2021-28039] = "fixed-version: Fixed from version 5.12rc2" + +CVE_STATUS[CVE-2021-28375] = "fixed-version: Fixed from version 5.12rc3" + +CVE_STATUS[CVE-2021-28660] = "fixed-version: Fixed from version 5.12rc3" + +CVE_STATUS[CVE-2021-28688] = "fixed-version: Fixed from version 5.12rc6" + +CVE_STATUS[CVE-2021-28691] = "fixed-version: Fixed from version 5.13rc6" + +CVE_STATUS[CVE-2021-28711] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-28712] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-28713] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-28714] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-28715] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-28950] = "fixed-version: Fixed from version 5.12rc4" + +CVE_STATUS[CVE-2021-28951] = "fixed-version: Fixed from version 5.12rc2" + +CVE_STATUS[CVE-2021-28952] = "fixed-version: Fixed from version 5.12rc4" + +CVE_STATUS[CVE-2021-28964] = "fixed-version: Fixed from version 5.12rc4" + +CVE_STATUS[CVE-2021-28971] = "fixed-version: Fixed from version 5.12rc4" + +CVE_STATUS[CVE-2021-28972] = "fixed-version: Fixed from version 5.12rc4" + +CVE_STATUS[CVE-2021-29154] = "fixed-version: Fixed from version 5.12rc7" + +CVE_STATUS[CVE-2021-29155] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-29264] = "fixed-version: Fixed from version 5.12rc3" + +CVE_STATUS[CVE-2021-29265] = "fixed-version: Fixed from version 5.12rc3" + +CVE_STATUS[CVE-2021-29266] = "fixed-version: Fixed from version 5.12rc4" + +CVE_STATUS[CVE-2021-29646] = "fixed-version: Fixed from version 5.12rc5" + +CVE_STATUS[CVE-2021-29647] = "fixed-version: Fixed from version 5.12rc5" + +CVE_STATUS[CVE-2021-29648] = "fixed-version: Fixed from version 5.12rc5" + +CVE_STATUS[CVE-2021-29649] = "fixed-version: Fixed from version 5.12rc5" + +CVE_STATUS[CVE-2021-29650] = "fixed-version: Fixed from version 5.12rc5" + +CVE_STATUS[CVE-2021-29657] = "fixed-version: Fixed from version 5.12rc6" + +CVE_STATUS[CVE-2021-30002] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2021-30178] = "fixed-version: Fixed from version 5.12rc2" + +CVE_STATUS[CVE-2021-31440] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-3178] = "fixed-version: Fixed from version 5.11rc5" + +CVE_STATUS[CVE-2021-31829] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-31916] = "fixed-version: Fixed from version 5.12rc5" + +CVE_STATUS[CVE-2021-32078] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-32399] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-32606] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-33033] = "fixed-version: Fixed from version 5.12rc3" + +CVE_STATUS[CVE-2021-33034] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-33061] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2021-33098] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-33135] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2021-33200] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-3347] = "fixed-version: Fixed from version 5.11rc6" + +CVE_STATUS[CVE-2021-3348] = "fixed-version: Fixed from version 5.11rc6" + +CVE_STATUS[CVE-2021-33624] = "fixed-version: Fixed from version 5.13rc7" + +CVE_STATUS[CVE-2021-33630] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2021-33631] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2021-33655] = "fixed-version: Fixed from version 5.19rc6" + +CVE_STATUS[CVE-2021-33656] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2021-33909] = "fixed-version: Fixed from version 5.14rc3" + +CVE_STATUS[CVE-2021-3411] = "fixed-version: Fixed from version 5.10" + +CVE_STATUS[CVE-2021-3428] = "fixed-version: Fixed from version 5.9rc2" + +CVE_STATUS[CVE-2021-3444] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2021-34556] = "fixed-version: Fixed from version 5.14rc4" + +CVE_STATUS[CVE-2021-34693] = "fixed-version: Fixed from version 5.13rc7" + +CVE_STATUS[CVE-2021-3483] = "fixed-version: Fixed from version 5.12rc6" + +CVE_STATUS[CVE-2021-34866] = "fixed-version: Fixed from version 5.14" + +CVE_STATUS[CVE-2021-3489] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-3490] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-3491] = "fixed-version: Fixed from version 5.13rc1" + +# CVE-2021-3492 has no known resolution + +CVE_STATUS[CVE-2021-3493] = "fixed-version: Fixed from version 5.11rc1" + +CVE_STATUS[CVE-2021-34981] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2021-3501] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-35039] = "fixed-version: Fixed from version 5.13" + +CVE_STATUS[CVE-2021-3506] = "fixed-version: Fixed from version 5.13rc1" + +# CVE-2021-3542 has no known resolution + +CVE_STATUS[CVE-2021-3543] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-35477] = "fixed-version: Fixed from version 5.14rc4" + +CVE_STATUS[CVE-2021-3564] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-3573] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-3587] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-3600] = "fixed-version: Fixed from version 5.11" + +CVE_STATUS[CVE-2021-3609] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2021-3612] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2021-3635] = "fixed-version: Fixed from version 5.5rc7" + +CVE_STATUS[CVE-2021-3640] = "fixed-version: Fixed from version 5.16rc1" + +CVE_STATUS[CVE-2021-3653] = "fixed-version: Fixed from version 5.14rc7" + +CVE_STATUS[CVE-2021-3655] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2021-3656] = "fixed-version: Fixed from version 5.14rc7" + +CVE_STATUS[CVE-2021-3659] = "fixed-version: Fixed from version 5.12rc7" + +CVE_STATUS[CVE-2021-3669] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2021-3679] = "fixed-version: Fixed from version 5.14rc3" + +# CVE-2021-3714 has no known resolution + +CVE_STATUS[CVE-2021-3715] = "fixed-version: Fixed from version 5.6" + +CVE_STATUS[CVE-2021-37159] = "fixed-version: Fixed from version 5.14rc3" + +CVE_STATUS[CVE-2021-3732] = "fixed-version: Fixed from version 5.14rc6" + +CVE_STATUS[CVE-2021-3736] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2021-3739] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2021-3743] = "fixed-version: Fixed from version 5.13rc7" + +CVE_STATUS[CVE-2021-3744] = "fixed-version: Fixed from version 5.15rc4" + +CVE_STATUS[CVE-2021-3752] = "fixed-version: Fixed from version 5.16rc1" + +CVE_STATUS[CVE-2021-3753] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2021-37576] = "fixed-version: Fixed from version 5.14rc3" + +CVE_STATUS[CVE-2021-3759] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2021-3760] = "fixed-version: Fixed from version 5.15rc6" + +CVE_STATUS[CVE-2021-3764] = "fixed-version: Fixed from version 5.15rc4" + +CVE_STATUS[CVE-2021-3772] = "fixed-version: Fixed from version 5.15" + +CVE_STATUS[CVE-2021-38160] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2021-38166] = "fixed-version: Fixed from version 5.14rc6" + +CVE_STATUS[CVE-2021-38198] = "fixed-version: Fixed from version 5.13rc6" + +CVE_STATUS[CVE-2021-38199] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2021-38200] = "fixed-version: Fixed from version 5.13rc7" + +CVE_STATUS[CVE-2021-38201] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2021-38202] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2021-38203] = "fixed-version: Fixed from version 5.14rc2" + +CVE_STATUS[CVE-2021-38204] = "fixed-version: Fixed from version 5.14rc3" + +CVE_STATUS[CVE-2021-38205] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2021-38206] = "fixed-version: Fixed from version 5.13rc7" + +CVE_STATUS[CVE-2021-38207] = "fixed-version: Fixed from version 5.13rc7" + +CVE_STATUS[CVE-2021-38208] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-38209] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-38300] = "fixed-version: Fixed from version 5.15rc4" + +# CVE-2021-3847 has no known resolution + +# CVE-2021-3864 has no known resolution + +# CVE-2021-3892 has no known resolution + +CVE_STATUS[CVE-2021-3894] = "fixed-version: Fixed from version 5.15rc6" + +CVE_STATUS[CVE-2021-3896] = "fixed-version: Fixed from version 5.15rc6" + +CVE_STATUS[CVE-2021-3923] = "fixed-version: Fixed from version 5.16" + +CVE_STATUS[CVE-2021-39633] = "fixed-version: Fixed from version 5.14" + +CVE_STATUS[CVE-2021-39634] = "fixed-version: Fixed from version 5.9rc8" + +CVE_STATUS[CVE-2021-39636] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2021-39648] = "fixed-version: Fixed from version 5.11rc3" + +CVE_STATUS[CVE-2021-39656] = "fixed-version: Fixed from version 5.12rc3" + +CVE_STATUS[CVE-2021-39657] = "fixed-version: Fixed from version 5.11rc4" + +CVE_STATUS[CVE-2021-39685] = "fixed-version: Fixed from version 5.16rc5" + +CVE_STATUS[CVE-2021-39686] = "fixed-version: Fixed from version 5.16rc1" + +CVE_STATUS[CVE-2021-39698] = "fixed-version: Fixed from version 5.16rc5" + +CVE_STATUS[CVE-2021-39711] = "fixed-version: Fixed from version 4.18rc6" + +CVE_STATUS[CVE-2021-39713] = "fixed-version: Fixed from version 4.20rc1" + +CVE_STATUS[CVE-2021-39714] = "fixed-version: Fixed from version 4.12rc1" + +# CVE-2021-39800 has no known resolution + +# CVE-2021-39801 has no known resolution + +# CVE-2021-39802 has no known resolution + +CVE_STATUS[CVE-2021-4001] = "fixed-version: Fixed from version 5.16rc2" + +CVE_STATUS[CVE-2021-4002] = "fixed-version: Fixed from version 5.16rc3" + +CVE_STATUS[CVE-2021-4023] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2021-4028] = "fixed-version: Fixed from version 5.15rc4" + +CVE_STATUS[CVE-2021-4032] = "fixed-version: Fixed from version 5.15rc7" + +CVE_STATUS[CVE-2021-4037] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2021-40490] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2021-4083] = "fixed-version: Fixed from version 5.16rc4" + +CVE_STATUS[CVE-2021-4090] = "fixed-version: Fixed from version 5.16rc2" + +CVE_STATUS[CVE-2021-4093] = "fixed-version: Fixed from version 5.15rc7" + +CVE_STATUS[CVE-2021-4095] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2021-41073] = "fixed-version: Fixed from version 5.15rc2" + +CVE_STATUS[CVE-2021-4135] = "fixed-version: Fixed from version 5.16rc6" + +CVE_STATUS[CVE-2021-4148] = "fixed-version: Fixed from version 5.15" + +CVE_STATUS[CVE-2021-4149] = "fixed-version: Fixed from version 5.15rc6" + +CVE_STATUS[CVE-2021-4150] = "fixed-version: Fixed from version 5.15rc7" + +CVE_STATUS[CVE-2021-4154] = "fixed-version: Fixed from version 5.14rc2" + +CVE_STATUS[CVE-2021-4155] = "fixed-version: Fixed from version 5.16" + +CVE_STATUS[CVE-2021-4157] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-4159] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2021-41864] = "fixed-version: Fixed from version 5.15rc5" + +CVE_STATUS[CVE-2021-4197] = "fixed-version: Fixed from version 5.16" + +CVE_STATUS[CVE-2021-42008] = "fixed-version: Fixed from version 5.14rc7" + +CVE_STATUS[CVE-2021-4202] = "fixed-version: Fixed from version 5.16rc2" + +CVE_STATUS[CVE-2021-4203] = "fixed-version: Fixed from version 5.15rc4" + +CVE_STATUS[CVE-2021-4204] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2021-4218] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2021-42252] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2021-42327] = "fixed-version: Fixed from version 5.15" + +CVE_STATUS[CVE-2021-42739] = "fixed-version: Fixed from version 5.16rc1" + +CVE_STATUS[CVE-2021-43056] = "fixed-version: Fixed from version 5.15rc6" + +CVE_STATUS[CVE-2021-43057] = "fixed-version: Fixed from version 5.15rc3" + +CVE_STATUS[CVE-2021-43267] = "fixed-version: Fixed from version 5.15" + +CVE_STATUS[CVE-2021-43389] = "fixed-version: Fixed from version 5.15rc6" + +CVE_STATUS[CVE-2021-43975] = "fixed-version: Fixed from version 5.16rc2" + +CVE_STATUS[CVE-2021-43976] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2021-44733] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-44879] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2021-45095] = "fixed-version: Fixed from version 5.16rc6" + +CVE_STATUS[CVE-2021-45100] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-45402] = "fixed-version: Fixed from version 5.16rc6" + +CVE_STATUS[CVE-2021-45469] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2021-45480] = "fixed-version: Fixed from version 5.16rc6" + +CVE_STATUS[CVE-2021-45485] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2021-45486] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-45868] = "fixed-version: Fixed from version 5.16rc1" + +CVE_STATUS[CVE-2021-46283] = "fixed-version: Fixed from version 5.13rc7" + +CVE_STATUS[CVE-2021-46904] = "fixed-version: Fixed from version 5.12rc7" + +CVE_STATUS[CVE-2021-46905] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46906] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-46908] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46909] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46910] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46911] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46912] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46913] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46914] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46915] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46916] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46917] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46918] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46919] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46920] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46921] = "fixed-version: Fixed from version 5.12" + +CVE_STATUS[CVE-2021-46922] = "fixed-version: Fixed from version 5.12" + +CVE_STATUS[CVE-2021-46923] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46924] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46925] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46926] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-46927] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46928] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-46929] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46930] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46931] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46932] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46933] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46934] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46935] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46936] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46937] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46938] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46939] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46940] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46941] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46942] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46943] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46944] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46945] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46947] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46948] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46949] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46950] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46951] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46952] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46953] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46954] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46955] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46956] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46957] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46958] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46959] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46960] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46961] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46962] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46963] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46964] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46965] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46966] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46967] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46968] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46969] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46970] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46971] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46972] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46973] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46974] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46976] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46977] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46978] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46979] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46980] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46981] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46982] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46983] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46984] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46985] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46986] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46987] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46988] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46989] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46990] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46991] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46992] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46993] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46994] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46995] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46996] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46997] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46998] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46999] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47000] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47001] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47002] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47003] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47004] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47005] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47006] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47007] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47008] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47009] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-47010] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47011] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47012] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47013] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47014] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47015] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47016] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47017] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47018] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47019] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47020] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47021] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47022] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47023] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47024] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47025] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47026] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47027] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47028] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47029] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47030] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47031] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47032] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47033] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47034] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47035] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47036] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47037] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47038] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47039] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47040] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47041] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47042] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47043] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47044] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47045] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47046] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47047] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47048] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47049] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47050] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47051] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47052] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47053] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47054] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47055] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47056] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47057] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47058] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47059] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47060] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47061] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47062] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47063] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47064] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47065] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47066] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47067] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47068] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47069] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47070] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47071] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47072] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47073] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47074] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47075] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47076] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47077] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47078] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47079] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47080] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47081] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47082] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47083] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47086] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47087] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47088] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47089] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47090] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47091] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47092] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47093] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47094] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47095] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47096] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47097] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47098] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47099] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47100] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47101] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47102] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47103] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47104] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47105] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47106] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47107] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47108] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47109] = "fixed-version: Fixed from version 5.13rc7" + +CVE_STATUS[CVE-2021-47110] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-47111] = "fixed-version: Fixed from version 5.13rc6" + +CVE_STATUS[CVE-2021-47112] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-47113] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47114] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47116] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47117] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47118] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47119] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47120] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47121] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47122] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47123] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-47124] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-47125] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47126] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47127] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47128] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47129] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47130] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47131] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47132] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47133] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47134] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47135] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47136] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47137] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47138] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47139] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47140] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47141] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47142] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47143] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47144] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47145] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47146] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47147] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47148] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47149] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47150] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47151] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47152] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47153] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47158] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47159] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47160] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47161] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47162] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47163] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47164] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47165] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47166] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47167] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47168] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47169] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47170] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47171] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47172] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47173] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47174] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47175] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47176] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47177] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47178] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47179] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47180] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2022-0001] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-0002] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-0168] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-0171] = "fixed-version: Fixed from version 5.18rc4" + +CVE_STATUS[CVE-2022-0185] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2022-0264] = "fixed-version: Fixed from version 5.16rc6" + +CVE_STATUS[CVE-2022-0286] = "fixed-version: Fixed from version 5.14rc2" + +CVE_STATUS[CVE-2022-0322] = "fixed-version: Fixed from version 5.15rc6" + +CVE_STATUS[CVE-2022-0330] = "fixed-version: Fixed from version 5.17rc2" + +CVE_STATUS[CVE-2022-0382] = "fixed-version: Fixed from version 5.16" + +# CVE-2022-0400 has no known resolution + +CVE_STATUS[CVE-2022-0433] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2022-0435] = "fixed-version: Fixed from version 5.17rc4" + +CVE_STATUS[CVE-2022-0480] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2022-0487] = "fixed-version: Fixed from version 5.17rc4" + +CVE_STATUS[CVE-2022-0492] = "fixed-version: Fixed from version 5.17rc3" + +CVE_STATUS[CVE-2022-0494] = "fixed-version: Fixed from version 5.17rc5" + +CVE_STATUS[CVE-2022-0500] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2022-0516] = "fixed-version: Fixed from version 5.17rc4" + +CVE_STATUS[CVE-2022-0617] = "fixed-version: Fixed from version 5.17rc2" + +CVE_STATUS[CVE-2022-0644] = "fixed-version: Fixed from version 5.15rc7" + +CVE_STATUS[CVE-2022-0646] = "fixed-version: Fixed from version 5.17rc5" + +CVE_STATUS[CVE-2022-0742] = "fixed-version: Fixed from version 5.17rc7" + +CVE_STATUS[CVE-2022-0812] = "fixed-version: Fixed from version 5.8rc6" + +CVE_STATUS[CVE-2022-0847] = "fixed-version: Fixed from version 5.17rc6" + +CVE_STATUS[CVE-2022-0850] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2022-0854] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-0995] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-0998] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2022-1011] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-1012] = "fixed-version: Fixed from version 5.18rc6" + +CVE_STATUS[CVE-2022-1015] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-1016] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-1043] = "fixed-version: Fixed from version 5.14rc7" + +CVE_STATUS[CVE-2022-1048] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-1055] = "fixed-version: Fixed from version 5.17rc3" + +# CVE-2022-1116 has no known resolution + +CVE_STATUS[CVE-2022-1158] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-1184] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-1195] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2022-1198] = "fixed-version: Fixed from version 5.17rc6" + +CVE_STATUS[CVE-2022-1199] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-1204] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-1205] = "fixed-version: Fixed from version 5.18rc1" + +# CVE-2022-1247 has no known resolution + +CVE_STATUS[CVE-2022-1263] = "fixed-version: Fixed from version 5.18rc3" + +CVE_STATUS[CVE-2022-1280] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2022-1353] = "fixed-version: Fixed from version 5.17" + +CVE_STATUS[CVE-2022-1419] = "fixed-version: Fixed from version 5.6rc2" + +CVE_STATUS[CVE-2022-1462] = "fixed-version: Fixed from version 5.19rc7" + +CVE_STATUS[CVE-2022-1508] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2022-1516] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-1651] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-1652] = "fixed-version: Fixed from version 5.18rc6" + +CVE_STATUS[CVE-2022-1671] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-1678] = "fixed-version: Fixed from version 4.20rc1" + +CVE_STATUS[CVE-2022-1679] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-1729] = "fixed-version: Fixed from version 5.18" + +CVE_STATUS[CVE-2022-1734] = "fixed-version: Fixed from version 5.18rc6" + +CVE_STATUS[CVE-2022-1786] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2022-1789] = "fixed-version: Fixed from version 5.18" + +CVE_STATUS[CVE-2022-1836] = "fixed-version: Fixed from version 5.18rc5" + +CVE_STATUS[CVE-2022-1852] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-1882] = "fixed-version: Fixed from version 5.19rc8" + +CVE_STATUS[CVE-2022-1943] = "fixed-version: Fixed from version 5.18rc7" + +CVE_STATUS[CVE-2022-1966] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-1972] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-1973] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-1974] = "fixed-version: Fixed from version 5.18rc6" + +CVE_STATUS[CVE-2022-1975] = "fixed-version: Fixed from version 5.18rc6" + +CVE_STATUS[CVE-2022-1976] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-1998] = "fixed-version: Fixed from version 5.17rc3" + +CVE_STATUS[CVE-2022-20008] = "fixed-version: Fixed from version 5.17rc5" + +CVE_STATUS[CVE-2022-20132] = "fixed-version: Fixed from version 5.16rc5" + +CVE_STATUS[CVE-2022-20141] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2022-20148] = "fixed-version: Fixed from version 5.16rc1" + +CVE_STATUS[CVE-2022-20153] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2022-20154] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2022-20158] = "fixed-version: Fixed from version 5.17" + +CVE_STATUS[CVE-2022-20166] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2022-20368] = "fixed-version: Fixed from version 5.17" + +CVE_STATUS[CVE-2022-20369] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-20409] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2022-20421] = "fixed-version: Fixed from version 6.0rc4" + +CVE_STATUS[CVE-2022-20422] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-20423] = "fixed-version: Fixed from version 5.17" + +CVE_STATUS[CVE-2022-20424] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2022-20565] = "fixed-version: Fixed from version 5.9rc4" + +CVE_STATUS[CVE-2022-20566] = "fixed-version: Fixed from version 5.19" + +CVE_STATUS[CVE-2022-20567] = "fixed-version: Fixed from version 4.16rc5" + +CVE_STATUS[CVE-2022-20568] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2022-20572] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-2078] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-21123] = "fixed-version: Fixed from version 5.19rc3" + +CVE_STATUS[CVE-2022-21125] = "fixed-version: Fixed from version 5.19rc3" + +CVE_STATUS[CVE-2022-21166] = "fixed-version: Fixed from version 5.19rc3" + +CVE_STATUS[CVE-2022-21385] = "fixed-version: Fixed from version 4.20" + +CVE_STATUS[CVE-2022-21499] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-21505] = "fixed-version: Fixed from version 5.19rc8" + +CVE_STATUS[CVE-2022-2153] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-2196] = "fixed-version: Fixed from version 6.2rc1" + +# CVE-2022-2209 has no known resolution + +CVE_STATUS[CVE-2022-22942] = "fixed-version: Fixed from version 5.17rc2" + +CVE_STATUS[CVE-2022-23036] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-23037] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-23038] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-23039] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-23040] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-23041] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-23042] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-2308] = "fixed-version: Fixed from version 6.0" + +CVE_STATUS[CVE-2022-2318] = "fixed-version: Fixed from version 5.19rc5" + +CVE_STATUS[CVE-2022-23222] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2022-2327] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2022-2380] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-23816] = "fixed-version: Fixed from version 5.19rc7" + +# CVE-2022-23825 has no known resolution + +CVE_STATUS[CVE-2022-23960] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-24122] = "fixed-version: Fixed from version 5.17rc2" + +CVE_STATUS[CVE-2022-24448] = "fixed-version: Fixed from version 5.17rc2" + +CVE_STATUS[CVE-2022-24958] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2022-24959] = "fixed-version: Fixed from version 5.17rc2" + +CVE_STATUS[CVE-2022-2503] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-25258] = "fixed-version: Fixed from version 5.17rc4" + +# CVE-2022-25265 has no known resolution + +CVE_STATUS[CVE-2022-25375] = "fixed-version: Fixed from version 5.17rc4" + +CVE_STATUS[CVE-2022-25636] = "fixed-version: Fixed from version 5.17rc6" + +CVE_STATUS[CVE-2022-2585] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-2586] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-2588] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-2590] = "fixed-version: Fixed from version 6.0rc3" + +CVE_STATUS[CVE-2022-2602] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-26365] = "fixed-version: Fixed from version 5.19rc6" + +CVE_STATUS[CVE-2022-26373] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-2639] = "fixed-version: Fixed from version 5.18rc4" + +CVE_STATUS[CVE-2022-26490] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2022-2663] = "fixed-version: Fixed from version 6.0rc5" + +# CVE-2022-26878 has no known resolution + +CVE_STATUS[CVE-2022-26966] = "fixed-version: Fixed from version 5.17rc6" + +CVE_STATUS[CVE-2022-27223] = "fixed-version: Fixed from version 5.17rc6" + +CVE_STATUS[CVE-2022-27666] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-27672] = "fixed-version: Fixed from version 6.2" + +CVE_STATUS[CVE-2022-2785] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-27950] = "fixed-version: Fixed from version 5.17rc5" + +CVE_STATUS[CVE-2022-28356] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-28388] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-28389] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-28390] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-2873] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-28796] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-28893] = "fixed-version: Fixed from version 5.18rc2" + +CVE_STATUS[CVE-2022-2905] = "fixed-version: Fixed from version 6.0rc4" + +CVE_STATUS[CVE-2022-29156] = "fixed-version: Fixed from version 5.17rc6" + +CVE_STATUS[CVE-2022-2938] = "fixed-version: Fixed from version 5.17rc2" + +CVE_STATUS[CVE-2022-29581] = "fixed-version: Fixed from version 5.18rc4" + +CVE_STATUS[CVE-2022-29582] = "fixed-version: Fixed from version 5.18rc2" + +CVE_STATUS[CVE-2022-2959] = "fixed-version: Fixed from version 5.19rc1" + +# CVE-2022-2961 has no known resolution + +CVE_STATUS[CVE-2022-2964] = "fixed-version: Fixed from version 5.17rc4" + +CVE_STATUS[CVE-2022-2977] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-2978] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-29900] = "fixed-version: Fixed from version 5.19rc7" + +CVE_STATUS[CVE-2022-29901] = "fixed-version: Fixed from version 5.19rc7" + +CVE_STATUS[CVE-2022-2991] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2022-29968] = "fixed-version: Fixed from version 5.18rc5" + +CVE_STATUS[CVE-2022-3028] = "fixed-version: Fixed from version 6.0rc3" + +CVE_STATUS[CVE-2022-30594] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-3061] = "fixed-version: Fixed from version 5.18rc5" + +CVE_STATUS[CVE-2022-3077] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-3078] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-3103] = "fixed-version: Fixed from version 6.0rc3" + +CVE_STATUS[CVE-2022-3104] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-3105] = "fixed-version: Fixed from version 5.16" + +CVE_STATUS[CVE-2022-3106] = "fixed-version: Fixed from version 5.16rc6" + +CVE_STATUS[CVE-2022-3107] = "fixed-version: Fixed from version 5.17" + +CVE_STATUS[CVE-2022-3108] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2022-3110] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-3111] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-3112] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-3113] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-3114] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-3115] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-3169] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3170] = "fixed-version: Fixed from version 6.0rc4" + +CVE_STATUS[CVE-2022-3176] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2022-3202] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-32250] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-32296] = "fixed-version: Fixed from version 5.18rc6" + +# CVE-2022-3238 has no known resolution + +CVE_STATUS[CVE-2022-3239] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-32981] = "fixed-version: Fixed from version 5.19rc2" + +CVE_STATUS[CVE-2022-3303] = "fixed-version: Fixed from version 6.0rc5" + +CVE_STATUS[CVE-2022-3344] = "fixed-version: Fixed from version 6.1rc7" + +CVE_STATUS[CVE-2022-33740] = "fixed-version: Fixed from version 5.19rc6" + +CVE_STATUS[CVE-2022-33741] = "fixed-version: Fixed from version 5.19rc6" + +CVE_STATUS[CVE-2022-33742] = "fixed-version: Fixed from version 5.19rc6" + +CVE_STATUS[CVE-2022-33743] = "fixed-version: Fixed from version 5.19rc6" + +CVE_STATUS[CVE-2022-33744] = "fixed-version: Fixed from version 5.19rc6" + +CVE_STATUS[CVE-2022-33981] = "fixed-version: Fixed from version 5.18rc5" + +CVE_STATUS[CVE-2022-3424] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2022-3435] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-34494] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-34495] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-34918] = "fixed-version: Fixed from version 5.19rc6" + +CVE_STATUS[CVE-2022-3521] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3522] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3523] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3524] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3526] = "fixed-version: Fixed from version 5.18rc3" + +CVE_STATUS[CVE-2022-3531] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2022-3532] = "fixed-version: Fixed from version 6.2rc1" + +# CVE-2022-3533 has no known resolution + +CVE_STATUS[CVE-2022-3534] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2022-3535] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3541] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3542] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3543] = "fixed-version: Fixed from version 6.1rc1" + +# CVE-2022-3544 has no known resolution + +CVE_STATUS[CVE-2022-3545] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-3564] = "fixed-version: Fixed from version 6.1rc4" + +CVE_STATUS[CVE-2022-3565] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3566] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3567] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3577] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-3586] = "fixed-version: Fixed from version 6.0rc5" + +CVE_STATUS[CVE-2022-3594] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3595] = "fixed-version: Fixed from version 6.1rc1" + +# CVE-2022-3606 has no known resolution + +CVE_STATUS[CVE-2022-36123] = "fixed-version: Fixed from version 5.19rc6" + +CVE_STATUS[CVE-2022-3619] = "fixed-version: Fixed from version 6.1rc4" + +CVE_STATUS[CVE-2022-3621] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3623] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3624] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-3625] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-3628] = "fixed-version: Fixed from version 6.1rc5" + +CVE_STATUS[CVE-2022-36280] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2022-3629] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-3630] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-3633] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-3635] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-3636] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-3640] = "fixed-version: Fixed from version 6.1rc4" + +CVE_STATUS[CVE-2022-36402] = "fixed-version: Fixed from version 6.5" + +# CVE-2022-3642 has no known resolution + +CVE_STATUS[CVE-2022-3643] = "fixed-version: Fixed from version 6.1" + +CVE_STATUS[CVE-2022-3646] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3649] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-36879] = "fixed-version: Fixed from version 5.19rc8" + +CVE_STATUS[CVE-2022-36946] = "fixed-version: Fixed from version 5.19" + +CVE_STATUS[CVE-2022-3707] = "fixed-version: Fixed from version 6.2rc3" + +# CVE-2022-38096 has no known resolution + +CVE_STATUS[CVE-2022-38457] = "fixed-version: Fixed from version 6.2rc4" + +CVE_STATUS[CVE-2022-3903] = "fixed-version: Fixed from version 6.1rc2" + +CVE_STATUS[CVE-2022-3910] = "fixed-version: Fixed from version 6.0rc6" + +CVE_STATUS[CVE-2022-39188] = "fixed-version: Fixed from version 5.19rc8" + +CVE_STATUS[CVE-2022-39189] = "fixed-version: Fixed from version 5.19rc2" + +CVE_STATUS[CVE-2022-39190] = "fixed-version: Fixed from version 6.0rc3" + +CVE_STATUS[CVE-2022-3977] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-39842] = "fixed-version: Fixed from version 5.19rc4" + +CVE_STATUS[CVE-2022-40133] = "fixed-version: Fixed from version 6.2rc4" + +CVE_STATUS[CVE-2022-40307] = "fixed-version: Fixed from version 6.0rc5" + +CVE_STATUS[CVE-2022-40476] = "fixed-version: Fixed from version 5.19rc4" + +CVE_STATUS[CVE-2022-40768] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-4095] = "fixed-version: Fixed from version 6.0rc4" + +CVE_STATUS[CVE-2022-40982] = "fixed-version: Fixed from version 6.5rc6" + +CVE_STATUS[CVE-2022-41218] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2022-41222] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2022-4127] = "fixed-version: Fixed from version 5.19rc6" + +CVE_STATUS[CVE-2022-4128] = "fixed-version: Fixed from version 5.19rc7" + +CVE_STATUS[CVE-2022-4129] = "fixed-version: Fixed from version 6.1rc6" + +CVE_STATUS[CVE-2022-4139] = "fixed-version: Fixed from version 6.1rc8" + +CVE_STATUS[CVE-2022-41674] = "fixed-version: Fixed from version 6.1rc1" + +# CVE-2022-41848 has no known resolution + +CVE_STATUS[CVE-2022-41849] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-41850] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-41858] = "fixed-version: Fixed from version 5.18rc2" + +CVE_STATUS[CVE-2022-42328] = "fixed-version: Fixed from version 6.1" + +CVE_STATUS[CVE-2022-42329] = "fixed-version: Fixed from version 6.1" + +CVE_STATUS[CVE-2022-42432] = "fixed-version: Fixed from version 6.0rc7" + +CVE_STATUS[CVE-2022-4269] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2022-42703] = "fixed-version: Fixed from version 6.0rc4" + +CVE_STATUS[CVE-2022-42719] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-42720] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-42721] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-42722] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-42895] = "fixed-version: Fixed from version 6.1rc4" + +CVE_STATUS[CVE-2022-42896] = "fixed-version: Fixed from version 6.1rc4" + +CVE_STATUS[CVE-2022-43750] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-4378] = "fixed-version: Fixed from version 6.1" + +CVE_STATUS[CVE-2022-4379] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2022-4382] = "fixed-version: Fixed from version 6.2rc5" + +CVE_STATUS[CVE-2022-43945] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-44032] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2022-44033] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2022-44034] = "fixed-version: Fixed from version 6.4rc1" + +# CVE-2022-4543 has no known resolution + +CVE_STATUS[CVE-2022-45869] = "fixed-version: Fixed from version 6.1rc7" + +# CVE-2022-45884 has no known resolution + +# CVE-2022-45885 has no known resolution + +CVE_STATUS[CVE-2022-45886] = "fixed-version: Fixed from version 6.4rc3" + +CVE_STATUS[CVE-2022-45887] = "fixed-version: Fixed from version 6.4rc3" + +CVE_STATUS[CVE-2022-45888] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2022-45919] = "fixed-version: Fixed from version 6.4rc3" + +CVE_STATUS[CVE-2022-45934] = "fixed-version: Fixed from version 6.1" + +CVE_STATUS[CVE-2022-4662] = "fixed-version: Fixed from version 6.0rc4" + +CVE_STATUS[CVE-2022-4696] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2022-4744] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2022-47518] = "fixed-version: Fixed from version 6.1rc8" + +CVE_STATUS[CVE-2022-47519] = "fixed-version: Fixed from version 6.1rc8" + +CVE_STATUS[CVE-2022-47520] = "fixed-version: Fixed from version 6.1rc8" + +CVE_STATUS[CVE-2022-47521] = "fixed-version: Fixed from version 6.1rc8" + +CVE_STATUS[CVE-2022-47929] = "fixed-version: Fixed from version 6.2rc4" + +CVE_STATUS[CVE-2022-47938] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-47939] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-47940] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-47941] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-47942] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-47943] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-47946] = "fixed-version: Fixed from version 5.12rc2" + +CVE_STATUS[CVE-2022-4842] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2022-48423] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2022-48424] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2022-48425] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2022-48502] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2022-48619] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-48626] = "fixed-version: Fixed from version 5.17rc4" + +CVE_STATUS[CVE-2022-48627] = "fixed-version: Fixed from version 5.19rc7" + +CVE_STATUS[CVE-2022-48628] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2022-48629] = "fixed-version: Fixed from version 5.17" + +CVE_STATUS[CVE-2022-48630] = "fixed-version: Fixed from version 5.18" + +CVE_STATUS[CVE-2023-0030] = "fixed-version: Fixed from version 5.0rc1" + +CVE_STATUS[CVE-2023-0045] = "fixed-version: Fixed from version 6.2rc3" + +CVE_STATUS[CVE-2023-0047] = "fixed-version: Fixed from version 5.16rc1" + +CVE_STATUS[CVE-2023-0122] = "fixed-version: Fixed from version 6.0rc4" + +CVE_STATUS[CVE-2023-0160] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-0179] = "fixed-version: Fixed from version 6.2rc5" + +CVE_STATUS[CVE-2023-0210] = "fixed-version: Fixed from version 6.2rc4" + +CVE_STATUS[CVE-2023-0240] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2023-0266] = "fixed-version: Fixed from version 6.2rc4" + +CVE_STATUS[CVE-2023-0386] = "fixed-version: Fixed from version 6.2rc6" + +CVE_STATUS[CVE-2023-0394] = "fixed-version: Fixed from version 6.2rc4" + +CVE_STATUS[CVE-2023-0458] = "fixed-version: Fixed from version 6.2rc5" + +CVE_STATUS[CVE-2023-0459] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-0461] = "fixed-version: Fixed from version 6.2rc3" + +CVE_STATUS[CVE-2023-0468] = "fixed-version: Fixed from version 6.1rc7" + +CVE_STATUS[CVE-2023-0469] = "fixed-version: Fixed from version 6.1rc7" + +CVE_STATUS[CVE-2023-0590] = "fixed-version: Fixed from version 6.1rc2" + +CVE_STATUS[CVE-2023-0597] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2023-0615] = "fixed-version: Fixed from version 6.1rc3" + +CVE_STATUS[CVE-2023-1032] = "fixed-version: Fixed from version 6.3rc2" + +CVE_STATUS[CVE-2023-1073] = "fixed-version: Fixed from version 6.2rc5" + +CVE_STATUS[CVE-2023-1074] = "fixed-version: Fixed from version 6.2rc6" + +CVE_STATUS[CVE-2023-1075] = "fixed-version: Fixed from version 6.2rc7" + +CVE_STATUS[CVE-2023-1076] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-1077] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-1078] = "fixed-version: Fixed from version 6.2rc8" + +CVE_STATUS[CVE-2023-1079] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-1095] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2023-1118] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-1192] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-1193] = "fixed-version: Fixed from version 6.3rc6" + +CVE_STATUS[CVE-2023-1194] = "fixed-version: Fixed from version 6.4rc6" + +CVE_STATUS[CVE-2023-1195] = "fixed-version: Fixed from version 6.1rc3" + +CVE_STATUS[CVE-2023-1206] = "fixed-version: Fixed from version 6.5rc4" + +CVE_STATUS[CVE-2023-1249] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2023-1252] = "fixed-version: Fixed from version 5.16rc1" + +CVE_STATUS[CVE-2023-1281] = "fixed-version: Fixed from version 6.2" + +CVE_STATUS[CVE-2023-1295] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2023-1380] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-1382] = "fixed-version: Fixed from version 6.1rc7" + +CVE_STATUS[CVE-2023-1390] = "fixed-version: Fixed from version 5.11rc4" + +# CVE-2023-1476 has no known resolution + +CVE_STATUS[CVE-2023-1513] = "fixed-version: Fixed from version 6.2" + +CVE_STATUS[CVE-2023-1582] = "fixed-version: Fixed from version 5.17rc4" + +CVE_STATUS[CVE-2023-1583] = "fixed-version: Fixed from version 6.3rc4" + +CVE_STATUS[CVE-2023-1611] = "fixed-version: Fixed from version 6.3rc5" + +CVE_STATUS[CVE-2023-1637] = "fixed-version: Fixed from version 5.18rc2" + +CVE_STATUS[CVE-2023-1652] = "fixed-version: Fixed from version 6.2rc5" + +CVE_STATUS[CVE-2023-1670] = "fixed-version: Fixed from version 6.3rc4" + +CVE_STATUS[CVE-2023-1829] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-1838] = "fixed-version: Fixed from version 5.18" + +CVE_STATUS[CVE-2023-1855] = "fixed-version: Fixed from version 6.3rc3" + +CVE_STATUS[CVE-2023-1859] = "fixed-version: Fixed from version 6.3rc7" + +CVE_STATUS[CVE-2023-1872] = "fixed-version: Fixed from version 5.18rc2" + +CVE_STATUS[CVE-2023-1989] = "fixed-version: Fixed from version 6.3rc4" + +CVE_STATUS[CVE-2023-1990] = "fixed-version: Fixed from version 6.3rc3" + +CVE_STATUS[CVE-2023-1998] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-2002] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-2006] = "fixed-version: Fixed from version 6.1rc7" + +CVE_STATUS[CVE-2023-2007] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2023-2008] = "fixed-version: Fixed from version 5.19rc4" + +CVE_STATUS[CVE-2023-2019] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2023-20569] = "fixed-version: Fixed from version 6.5rc6" + +CVE_STATUS[CVE-2023-20588] = "fixed-version: Fixed from version 6.5rc6" + +CVE_STATUS[CVE-2023-20593] = "fixed-version: Fixed from version 6.5rc4" + +CVE_STATUS[CVE-2023-20928] = "fixed-version: Fixed from version 6.0rc1" + +# CVE-2023-20937 has no known resolution + +CVE_STATUS[CVE-2023-20938] = "fixed-version: Fixed from version 5.18rc5" + +# CVE-2023-20941 has no known resolution + +CVE_STATUS[CVE-2023-21102] = "fixed-version: Fixed from version 6.2rc4" + +CVE_STATUS[CVE-2023-21106] = "fixed-version: Fixed from version 6.2rc5" + +CVE_STATUS[CVE-2023-2124] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-21255] = "fixed-version: Fixed from version 6.4rc4" + +CVE_STATUS[CVE-2023-21264] = "fixed-version: Fixed from version 6.4rc5" + +# CVE-2023-21400 has no known resolution + +CVE_STATUS[CVE-2023-2156] = "fixed-version: Fixed from version 6.3" + +CVE_STATUS[CVE-2023-2162] = "fixed-version: Fixed from version 6.2rc6" + +CVE_STATUS[CVE-2023-2163] = "fixed-version: Fixed from version 6.3" + +CVE_STATUS[CVE-2023-2166] = "fixed-version: Fixed from version 6.1" + +CVE_STATUS[CVE-2023-2176] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-2177] = "fixed-version: Fixed from version 5.19" + +CVE_STATUS[CVE-2023-2194] = "fixed-version: Fixed from version 6.3rc4" + +CVE_STATUS[CVE-2023-2235] = "fixed-version: Fixed from version 6.3rc3" + +CVE_STATUS[CVE-2023-2236] = "fixed-version: Fixed from version 6.1rc7" + +CVE_STATUS[CVE-2023-2248] = "fixed-version: Fixed from version 6.3" + +CVE_STATUS[CVE-2023-2269] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-22995] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2023-22996] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2023-22997] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2023-22998] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2023-22999] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2023-23000] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2023-23001] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2023-23002] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2023-23003] = "fixed-version: Fixed from version 5.16rc6" + +CVE_STATUS[CVE-2023-23004] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2023-23005] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2023-23006] = "fixed-version: Fixed from version 5.16rc8" + +# CVE-2023-23039 has no known resolution + +CVE_STATUS[CVE-2023-23454] = "fixed-version: Fixed from version 6.2rc3" + +CVE_STATUS[CVE-2023-23455] = "fixed-version: Fixed from version 6.2rc3" + +CVE_STATUS[CVE-2023-23559] = "fixed-version: Fixed from version 6.2rc5" + +CVE_STATUS[CVE-2023-23586] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2023-2430] = "fixed-version: Fixed from version 6.2rc5" + +CVE_STATUS[CVE-2023-2483] = "fixed-version: Fixed from version 6.3rc4" + +CVE_STATUS[CVE-2023-25012] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-2513] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2023-25775] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-2598] = "fixed-version: Fixed from version 6.4rc1" + +# CVE-2023-26242 has no known resolution + +# CVE-2023-2640 has no known resolution + +CVE_STATUS[CVE-2023-26544] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2023-26545] = "fixed-version: Fixed from version 6.2" + +CVE_STATUS[CVE-2023-26605] = "fixed-version: Fixed from version 6.1rc7" + +CVE_STATUS[CVE-2023-26606] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2023-26607] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2023-28327] = "fixed-version: Fixed from version 6.1" + +CVE_STATUS[CVE-2023-28328] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2023-28410] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2023-28464] = "fixed-version: Fixed from version 6.3rc7" + +CVE_STATUS[CVE-2023-28466] = "fixed-version: Fixed from version 6.3rc2" + +CVE_STATUS[CVE-2023-2860] = "fixed-version: Fixed from version 6.0rc5" + +CVE_STATUS[CVE-2023-28746] = "cpe-stable-backport: Backported in 6.6.22" + +CVE_STATUS[CVE-2023-28772] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2023-28866] = "fixed-version: Fixed from version 6.3rc4" + +CVE_STATUS[CVE-2023-2898] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2023-2985] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-3006] = "fixed-version: Fixed from version 6.1rc1" + +# Skipping CVE-2023-3022, no affected_versions + +CVE_STATUS[CVE-2023-30456] = "fixed-version: Fixed from version 6.3rc3" + +CVE_STATUS[CVE-2023-30772] = "fixed-version: Fixed from version 6.3rc4" + +CVE_STATUS[CVE-2023-3090] = "fixed-version: Fixed from version 6.4rc2" + +CVE_STATUS[CVE-2023-3106] = "fixed-version: Fixed from version 4.8rc7" + +# Skipping CVE-2023-3108, no affected_versions + +# CVE-2023-31081 has no known resolution + +# CVE-2023-31082 has no known resolution + +CVE_STATUS[CVE-2023-31083] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-31084] = "fixed-version: Fixed from version 6.4rc3" + +CVE_STATUS[CVE-2023-31085] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-3111] = "fixed-version: Fixed from version 6.0rc2" + +CVE_STATUS[CVE-2023-3117] = "fixed-version: Fixed from version 6.4rc7" + +CVE_STATUS[CVE-2023-31248] = "fixed-version: Fixed from version 6.5rc2" + +CVE_STATUS[CVE-2023-3141] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-31436] = "fixed-version: Fixed from version 6.3" + +CVE_STATUS[CVE-2023-3159] = "fixed-version: Fixed from version 5.18rc6" + +CVE_STATUS[CVE-2023-3161] = "fixed-version: Fixed from version 6.2rc7" + +CVE_STATUS[CVE-2023-3212] = "fixed-version: Fixed from version 6.4rc2" + +CVE_STATUS[CVE-2023-3220] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-32233] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-32247] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-32248] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-32250] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-32252] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-32254] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-32257] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-32258] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-32269] = "fixed-version: Fixed from version 6.2rc7" + +# CVE-2023-32629 has no known resolution + +CVE_STATUS[CVE-2023-3268] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-3269] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2023-3312] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-3317] = "fixed-version: Fixed from version 6.3rc6" + +CVE_STATUS[CVE-2023-33203] = "fixed-version: Fixed from version 6.3rc4" + +CVE_STATUS[CVE-2023-33250] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2023-33288] = "fixed-version: Fixed from version 6.3rc4" + +CVE_STATUS[CVE-2023-3338] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2023-3355] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-3357] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2023-3358] = "fixed-version: Fixed from version 6.2rc5" + +CVE_STATUS[CVE-2023-3359] = "fixed-version: Fixed from version 6.2rc7" + +CVE_STATUS[CVE-2023-3389] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2023-3390] = "fixed-version: Fixed from version 6.4rc7" + +CVE_STATUS[CVE-2023-33951] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-33952] = "fixed-version: Fixed from version 6.4rc1" + +# CVE-2023-3397 has no known resolution + +CVE_STATUS[CVE-2023-34255] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-34256] = "fixed-version: Fixed from version 6.4rc2" + +CVE_STATUS[CVE-2023-34319] = "fixed-version: Fixed from version 6.5rc6" + +CVE_STATUS[CVE-2023-34324] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-3439] = "fixed-version: Fixed from version 5.18rc5" + +CVE_STATUS[CVE-2023-35001] = "fixed-version: Fixed from version 6.5rc2" + +CVE_STATUS[CVE-2023-3567] = "fixed-version: Fixed from version 6.2rc7" + +# CVE-2023-35693 has no known resolution + +CVE_STATUS[CVE-2023-35788] = "fixed-version: Fixed from version 6.4rc5" + +CVE_STATUS[CVE-2023-35823] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-35824] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-35826] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-35827] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-35828] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-35829] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-3609] = "fixed-version: Fixed from version 6.4rc7" + +CVE_STATUS[CVE-2023-3610] = "fixed-version: Fixed from version 6.4" + +CVE_STATUS[CVE-2023-3611] = "fixed-version: Fixed from version 6.5rc2" + +# CVE-2023-3640 has no known resolution + +CVE_STATUS[CVE-2023-37453] = "fixed-version: Fixed from version 6.6rc1" + +# CVE-2023-37454 has no known resolution + +CVE_STATUS[CVE-2023-3772] = "fixed-version: Fixed from version 6.5rc7" + +CVE_STATUS[CVE-2023-3773] = "fixed-version: Fixed from version 6.5rc7" + +CVE_STATUS[CVE-2023-3776] = "fixed-version: Fixed from version 6.5rc2" + +CVE_STATUS[CVE-2023-3777] = "fixed-version: Fixed from version 6.5rc3" + +CVE_STATUS[CVE-2023-3812] = "fixed-version: Fixed from version 6.1rc4" + +CVE_STATUS[CVE-2023-38409] = "fixed-version: Fixed from version 6.3rc7" + +CVE_STATUS[CVE-2023-38426] = "fixed-version: Fixed from version 6.4rc3" + +CVE_STATUS[CVE-2023-38427] = "fixed-version: Fixed from version 6.4rc6" + +CVE_STATUS[CVE-2023-38428] = "fixed-version: Fixed from version 6.4rc3" + +CVE_STATUS[CVE-2023-38429] = "fixed-version: Fixed from version 6.4rc3" + +CVE_STATUS[CVE-2023-38430] = "fixed-version: Fixed from version 6.4rc6" + +CVE_STATUS[CVE-2023-38431] = "fixed-version: Fixed from version 6.4rc6" + +CVE_STATUS[CVE-2023-38432] = "fixed-version: Fixed from version 6.4" + +CVE_STATUS[CVE-2023-3863] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2023-3865] = "fixed-version: Fixed from version 6.4" + +CVE_STATUS[CVE-2023-3866] = "fixed-version: Fixed from version 6.4" + +CVE_STATUS[CVE-2023-3867] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2023-39189] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-39191] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-39192] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-39193] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-39194] = "fixed-version: Fixed from version 6.5rc7" + +CVE_STATUS[CVE-2023-39197] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2023-39198] = "fixed-version: Fixed from version 6.5rc7" + +CVE_STATUS[CVE-2023-4004] = "fixed-version: Fixed from version 6.5rc3" + +# CVE-2023-4010 has no known resolution + +CVE_STATUS[CVE-2023-4015] = "fixed-version: Fixed from version 6.5rc4" + +CVE_STATUS[CVE-2023-40283] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2023-40791] = "fixed-version: Fixed from version 6.5rc6" + +CVE_STATUS[CVE-2023-4128] = "fixed-version: Fixed from version 6.5rc5" + +CVE_STATUS[CVE-2023-4132] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2023-4133] = "fixed-version: Fixed from version 6.3" + +CVE_STATUS[CVE-2023-4134] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2023-4147] = "fixed-version: Fixed from version 6.5rc4" + +CVE_STATUS[CVE-2023-4155] = "fixed-version: Fixed from version 6.5rc6" + +CVE_STATUS[CVE-2023-4194] = "fixed-version: Fixed from version 6.5rc5" + +CVE_STATUS[CVE-2023-4206] = "fixed-version: Fixed from version 6.5rc5" + +CVE_STATUS[CVE-2023-4207] = "fixed-version: Fixed from version 6.5rc5" + +CVE_STATUS[CVE-2023-4208] = "fixed-version: Fixed from version 6.5rc5" + +CVE_STATUS[CVE-2023-4244] = "fixed-version: Fixed from version 6.5rc7" + +CVE_STATUS[CVE-2023-4273] = "fixed-version: Fixed from version 6.5rc5" + +CVE_STATUS[CVE-2023-42752] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-42753] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-42754] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-42755] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-42756] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-4385] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2023-4387] = "fixed-version: Fixed from version 5.18" + +CVE_STATUS[CVE-2023-4389] = "fixed-version: Fixed from version 5.18rc3" + +CVE_STATUS[CVE-2023-4394] = "fixed-version: Fixed from version 6.0rc3" + +CVE_STATUS[CVE-2023-44466] = "fixed-version: Fixed from version 6.5rc2" + +CVE_STATUS[CVE-2023-4459] = "fixed-version: Fixed from version 5.18" + +CVE_STATUS[CVE-2023-4563] = "fixed-version: Fixed from version 6.5rc6" + +CVE_STATUS[CVE-2023-4569] = "fixed-version: Fixed from version 6.5rc7" + +CVE_STATUS[CVE-2023-45862] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-45863] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-45871] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-45898] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-4610] = "fixed-version: Fixed from version 6.4" + +CVE_STATUS[CVE-2023-4611] = "fixed-version: Fixed from version 6.5rc4" + +CVE_STATUS[CVE-2023-4622] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2023-4623] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-46343] = "fixed-version: Fixed from version 6.6rc7" + +CVE_STATUS[CVE-2023-46813] = "fixed-version: Fixed from version 6.6rc7" + +CVE_STATUS[CVE-2023-46838] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-46862] = "fixed-version: Fixed from version 6.6" + +CVE_STATUS[CVE-2023-47233] = "cpe-stable-backport: Backported in 6.6.24" + +CVE_STATUS[CVE-2023-4732] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2023-4881] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-4921] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-50431] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-5090] = "fixed-version: Fixed from version 6.6rc7" + +CVE_STATUS[CVE-2023-51042] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2023-51043] = "fixed-version: Fixed from version 6.5rc3" + +CVE_STATUS[CVE-2023-5158] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-51779] = "cpe-stable-backport: Backported in 6.6.9" + +CVE_STATUS[CVE-2023-5178] = "fixed-version: Fixed from version 6.6rc7" + +CVE_STATUS[CVE-2023-51780] = "cpe-stable-backport: Backported in 6.6.8" + +CVE_STATUS[CVE-2023-51781] = "cpe-stable-backport: Backported in 6.6.8" + +CVE_STATUS[CVE-2023-51782] = "cpe-stable-backport: Backported in 6.6.8" + +CVE_STATUS[CVE-2023-5197] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52340] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-52429] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2023-52433] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-52434] = "cpe-stable-backport: Backported in 6.6.8" + +CVE_STATUS[CVE-2023-52435] = "cpe-stable-backport: Backported in 6.6.11" + +CVE_STATUS[CVE-2023-52436] = "cpe-stable-backport: Backported in 6.6.13" + +CVE_STATUS[CVE-2023-52438] = "cpe-stable-backport: Backported in 6.6.13" + +CVE_STATUS[CVE-2023-52439] = "cpe-stable-backport: Backported in 6.6.13" + +CVE_STATUS[CVE-2023-52440] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-52441] = "fixed-version: Fixed from version 6.5rc4" + +CVE_STATUS[CVE-2023-52442] = "fixed-version: Fixed from version 6.5rc4" + +CVE_STATUS[CVE-2023-52443] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52444] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52445] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52446] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52447] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52448] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52449] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52450] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52451] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52452] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52453] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52454] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52455] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52456] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52457] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52458] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52459] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52460] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2023-52461] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2023-52462] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52463] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52464] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52465] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52467] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52468] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52469] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52470] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52471] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2023-52472] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52473] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52474] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-52475] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52476] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52477] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52478] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52479] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52480] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52481] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52482] = "fixed-version: Fixed from version 6.6rc4" + +CVE_STATUS[CVE-2023-52483] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52484] = "fixed-version: Fixed from version 6.6rc5" + +# CVE-2023-52485 needs backporting (fixed from 6.8rc1) + +CVE_STATUS[CVE-2023-52486] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52487] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52488] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52489] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52490] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52491] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52492] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52493] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52494] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52495] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52497] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52498] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52499] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52500] = "fixed-version: Fixed from version 6.6rc2" + +CVE_STATUS[CVE-2023-52501] = "fixed-version: Fixed from version 6.6rc2" + +CVE_STATUS[CVE-2023-52502] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52503] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52504] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52505] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52506] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52507] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52508] = "fixed-version: Fixed from version 6.6rc2" + +CVE_STATUS[CVE-2023-52509] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52510] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52511] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-52512] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52513] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52515] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52516] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-52517] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-52518] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52519] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52520] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52522] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52523] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52524] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52525] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52526] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52527] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52528] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52529] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52530] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52531] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52532] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52559] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52560] = "fixed-version: Fixed from version 6.6rc4" + +CVE_STATUS[CVE-2023-52561] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-52562] = "fixed-version: Fixed from version 6.6rc4" + +CVE_STATUS[CVE-2023-52563] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52564] = "fixed-version: Fixed from version 6.6rc4" + +CVE_STATUS[CVE-2023-52565] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52566] = "fixed-version: Fixed from version 6.6rc4" + +CVE_STATUS[CVE-2023-52567] = "fixed-version: Fixed from version 6.6rc4" + +CVE_STATUS[CVE-2023-52568] = "fixed-version: Fixed from version 6.6rc4" + +CVE_STATUS[CVE-2023-52569] = "fixed-version: Fixed from version 6.6rc2" + +CVE_STATUS[CVE-2023-52570] = "fixed-version: Fixed from version 6.6rc4" + +CVE_STATUS[CVE-2023-52571] = "fixed-version: Fixed from version 6.6rc4" + +CVE_STATUS[CVE-2023-52572] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52573] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52574] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52575] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52576] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52577] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52578] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52580] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52581] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52582] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52583] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52584] = "cpe-stable-backport: Backported in 6.6.16" + +# CVE-2023-52585 needs backporting (fixed from 6.8rc1) + +# CVE-2023-52586 needs backporting (fixed from 6.8rc1) + +CVE_STATUS[CVE-2023-52587] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52588] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52589] = "cpe-stable-backport: Backported in 6.6.16" + +# CVE-2023-52590 needs backporting (fixed from 6.8rc1) + +CVE_STATUS[CVE-2023-52591] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52593] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52594] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52595] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52596] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52597] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52598] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52599] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52600] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52601] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52602] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52603] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52604] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52606] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52607] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52608] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52609] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52610] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52611] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52612] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52613] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52614] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52615] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52616] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52617] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52618] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52619] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52620] = "fixed-version: Fixed from version 6.4" + +CVE_STATUS[CVE-2023-52621] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52622] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52623] = "cpe-stable-backport: Backported in 6.6.16" + +# CVE-2023-52624 needs backporting (fixed from 6.8rc1) + +# CVE-2023-52625 needs backporting (fixed from 6.8rc1) + +CVE_STATUS[CVE-2023-52626] = "fixed-version: only affects 6.7rc2 onwards" + +CVE_STATUS[CVE-2023-52627] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52628] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-52629] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-52630] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2023-52631] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2023-52632] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52633] = "cpe-stable-backport: Backported in 6.6.16" + +# CVE-2023-52634 needs backporting (fixed from 6.8rc1) + +CVE_STATUS[CVE-2023-52635] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52636] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2023-52637] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2023-52638] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2023-52639] = "cpe-stable-backport: Backported in 6.6.22" + +CVE_STATUS[CVE-2023-52640] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2023-52641] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2023-5345] = "fixed-version: Fixed from version 6.6rc4" + +CVE_STATUS[CVE-2023-5633] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-5717] = "fixed-version: Fixed from version 6.6rc7" + +CVE_STATUS[CVE-2023-5972] = "fixed-version: Fixed from version 6.6rc7" + +CVE_STATUS[CVE-2023-6039] = "fixed-version: Fixed from version 6.5rc5" + +CVE_STATUS[CVE-2023-6040] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2023-6111] = "cpe-stable-backport: Backported in 6.6.3" + +CVE_STATUS[CVE-2023-6121] = "cpe-stable-backport: Backported in 6.6.4" + +CVE_STATUS[CVE-2023-6176] = "fixed-version: Fixed from version 6.6rc2" + +CVE_STATUS[CVE-2023-6200] = "cpe-stable-backport: Backported in 6.6.9" + +# CVE-2023-6238 has no known resolution + +# CVE-2023-6240 has no known resolution + +CVE_STATUS[CVE-2023-6270] = "cpe-stable-backport: Backported in 6.6.23" + +CVE_STATUS[CVE-2023-6356] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-6531] = "cpe-stable-backport: Backported in 6.6.7" + +# CVE-2023-6535 has no known resolution + +CVE_STATUS[CVE-2023-6536] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-6546] = "fixed-version: Fixed from version 6.5rc7" + +CVE_STATUS[CVE-2023-6560] = "cpe-stable-backport: Backported in 6.6.5" + +CVE_STATUS[CVE-2023-6606] = "cpe-stable-backport: Backported in 6.6.9" + +CVE_STATUS[CVE-2023-6610] = "cpe-stable-backport: Backported in 6.6.13" + +CVE_STATUS[CVE-2023-6622] = "cpe-stable-backport: Backported in 6.6.7" + +CVE_STATUS[CVE-2023-6679] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2023-6817] = "cpe-stable-backport: Backported in 6.6.7" + +CVE_STATUS[CVE-2023-6915] = "cpe-stable-backport: Backported in 6.6.13" + +CVE_STATUS[CVE-2023-6931] = "cpe-stable-backport: Backported in 6.6.7" + +CVE_STATUS[CVE-2023-6932] = "cpe-stable-backport: Backported in 6.6.5" + +CVE_STATUS[CVE-2023-7042] = "cpe-stable-backport: Backported in 6.6.23" + +CVE_STATUS[CVE-2023-7192] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2024-0193] = "cpe-stable-backport: Backported in 6.6.10" + +CVE_STATUS[CVE-2024-0340] = "fixed-version: Fixed from version 6.4rc6" + +CVE_STATUS[CVE-2024-0443] = "fixed-version: Fixed from version 6.4rc7" + +CVE_STATUS[CVE-2024-0562] = "fixed-version: Fixed from version 6.0rc3" + +# CVE-2024-0564 has no known resolution + +CVE_STATUS[CVE-2024-0565] = "cpe-stable-backport: Backported in 6.6.8" + +CVE_STATUS[CVE-2024-0582] = "cpe-stable-backport: Backported in 6.6.5" + +CVE_STATUS[CVE-2024-0584] = "cpe-stable-backport: Backported in 6.6.5" + +CVE_STATUS[CVE-2024-0607] = "cpe-stable-backport: Backported in 6.6.3" + +CVE_STATUS[CVE-2024-0639] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2024-0641] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2024-0646] = "cpe-stable-backport: Backported in 6.6.7" + +CVE_STATUS[CVE-2024-0775] = "fixed-version: Fixed from version 6.4rc2" + +CVE_STATUS[CVE-2024-0841] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-1085] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-1086] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-1151] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-1312] = "fixed-version: Fixed from version 6.5rc4" + +# CVE-2024-21803 has no known resolution + +# CVE-2024-2193 has no known resolution + +CVE_STATUS[CVE-2024-22099] = "cpe-stable-backport: Backported in 6.6.23" + +# CVE-2024-22386 has no known resolution + +CVE_STATUS[CVE-2024-22705] = "cpe-stable-backport: Backported in 6.6.10" + +CVE_STATUS[CVE-2024-23196] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2024-23307] = "cpe-stable-backport: Backported in 6.6.24" + +# CVE-2024-23848 has no known resolution + +CVE_STATUS[CVE-2024-23849] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-23850] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-23851] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-24855] = "fixed-version: Fixed from version 6.5rc2" + +# CVE-2024-24857 has no known resolution + +# CVE-2024-24858 has no known resolution + +# CVE-2024-24859 has no known resolution + +CVE_STATUS[CVE-2024-24860] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-24861] = "cpe-stable-backport: Backported in 6.6.24" + +# CVE-2024-24864 has no known resolution + +# CVE-2024-25739 has no known resolution + +# CVE-2024-25740 has no known resolution + +# CVE-2024-25741 has no known resolution + +CVE_STATUS[CVE-2024-25744] = "cpe-stable-backport: Backported in 6.6.7" + +CVE_STATUS[CVE-2024-26581] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26582] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26583] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26584] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26585] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26586] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26587] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26588] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26589] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26590] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26591] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26592] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26593] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26594] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26595] = "cpe-stable-backport: Backported in 6.6.14" + +# CVE-2024-26596 needs backporting (fixed from 6.8rc1) + +CVE_STATUS[CVE-2024-26597] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26598] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26599] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26600] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26601] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26602] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26603] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26604] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26605] = "fixed-version: only affects 6.7 onwards" + +CVE_STATUS[CVE-2024-26606] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26607] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26608] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26610] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26611] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26612] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26614] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26615] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26616] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26617] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26618] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26619] = "fixed-version: only affects 6.7rc5 onwards" + +CVE_STATUS[CVE-2024-26620] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26621] = "fixed-version: only affects 6.7 onwards" + +CVE_STATUS[CVE-2024-26622] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26623] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2024-26625] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2024-26626] = "fixed-version: only affects 6.8rc1 onwards" + +CVE_STATUS[CVE-2024-26627] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2024-26629] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26630] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26631] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26632] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26633] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26634] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26635] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26636] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26637] = "fixed-version: only affects 6.7 onwards" + +CVE_STATUS[CVE-2024-26638] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26639] = "fixed-version: only affects 6.8rc1 onwards" + +CVE_STATUS[CVE-2024-26640] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2024-26641] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2024-26642] = "cpe-stable-backport: Backported in 6.6.24" + +CVE_STATUS[CVE-2024-26643] = "cpe-stable-backport: Backported in 6.6.24" + +CVE_STATUS[CVE-2024-26644] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26645] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26646] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26647] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26648] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26649] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26650] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26651] = "cpe-stable-backport: Backported in 6.6.23" + +CVE_STATUS[CVE-2024-26652] = "cpe-stable-backport: Backported in 6.6.22" + +CVE_STATUS[CVE-2024-26653] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26654] = "cpe-stable-backport: Backported in 6.6.24" + +# CVE-2024-26655 needs backporting (fixed from 6.9rc2) + +CVE_STATUS[CVE-2024-26656] = "cpe-stable-backport: Backported in 6.6.24" + +CVE_STATUS[CVE-2024-26657] = "fixed-version: only affects 6.7rc1 onwards" + +# CVE-2024-26658 needs backporting (fixed from 6.8rc1) + +CVE_STATUS[CVE-2024-26659] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26660] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26661] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26662] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26663] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26664] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26665] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26666] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26667] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26668] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26669] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26670] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26671] = "cpe-stable-backport: Backported in 6.6.16" + +# CVE-2024-26672 needs backporting (fixed from 6.8rc1) + +CVE_STATUS[CVE-2024-26673] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2024-26674] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26675] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26676] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26677] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26678] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26679] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26680] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26681] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26682] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26683] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26684] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26685] = "cpe-stable-backport: Backported in 6.6.18" + +# CVE-2024-26686 needs backporting (fixed from 6.8rc4) + +CVE_STATUS[CVE-2024-26687] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26688] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26689] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26690] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26691] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26692] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26693] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26694] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26695] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26696] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26697] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26698] = "cpe-stable-backport: Backported in 6.6.18" + +# CVE-2024-26699 needs backporting (fixed from 6.8rc5) + +CVE_STATUS[CVE-2024-26700] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26702] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26703] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26704] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26705] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26706] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26707] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26708] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26709] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26710] = "fixed-version: only affects 6.8rc1 onwards" + +CVE_STATUS[CVE-2024-26711] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26712] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26713] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26714] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26715] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26716] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26717] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26718] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26719] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26720] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26721] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26722] = "fixed-version: only affects 6.7rc5 onwards" + +CVE_STATUS[CVE-2024-26723] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26724] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26725] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26726] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26727] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26728] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26729] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26730] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26731] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26732] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26733] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26734] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26735] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26736] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26737] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26738] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26739] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26740] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26741] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26742] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26743] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26744] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26745] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26746] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26747] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26748] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26749] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26750] = "fixed-version: only affects 6.8rc5 onwards" + +CVE_STATUS[CVE-2024-26751] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26752] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26753] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26754] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26755] = "fixed-version: only affects 6.7rc1 onwards" + +# CVE-2024-26756 needs backporting (fixed from 6.8rc6) + +# CVE-2024-26757 needs backporting (fixed from 6.8rc6) + +# CVE-2024-26758 needs backporting (fixed from 6.8rc6) + +CVE_STATUS[CVE-2024-26759] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26760] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26761] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26762] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26763] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26764] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26765] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26766] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26767] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26768] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26769] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26770] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26771] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26772] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26773] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26774] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26775] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26776] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26777] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26778] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26779] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26780] = "fixed-version: only affects 6.8rc4 onwards" + +CVE_STATUS[CVE-2024-26781] = "fixed-version: only affects 6.8rc6 onwards" + +CVE_STATUS[CVE-2024-26782] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26783] = "cpe-stable-backport: Backported in 6.6.22" + +# CVE-2024-26784 needs backporting (fixed from 6.8rc7) + +# CVE-2024-26785 needs backporting (fixed from 6.8rc7) + +CVE_STATUS[CVE-2024-26786] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26787] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26788] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26789] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26790] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26791] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26792] = "fixed-version: only affects 6.8rc4 onwards" + +CVE_STATUS[CVE-2024-26793] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26794] = "fixed-version: only affects 6.8rc6 onwards" + +CVE_STATUS[CVE-2024-26795] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26796] = "cpe-stable-backport: Backported in 6.6.21" + +# CVE-2024-26797 needs backporting (fixed from 6.8rc7) + +CVE_STATUS[CVE-2024-26798] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26799] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26800] = "fixed-version: only affects 6.8rc5 onwards" + +CVE_STATUS[CVE-2024-26801] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26802] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26803] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26804] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26805] = "cpe-stable-backport: Backported in 6.6.21" + +# CVE-2024-26806 needs backporting (fixed from 6.8rc7) + +CVE_STATUS[CVE-2024-26807] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26808] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26809] = "cpe-stable-backport: Backported in 6.6.23" + diff --git a/meta/recipes-kernel/linux/cve-exclusion_6.6.inc b/meta/recipes-kernel/linux/cve-exclusion_6.6.inc new file mode 100644 index 0000000000..32a0701edf --- /dev/null +++ b/meta/recipes-kernel/linux/cve-exclusion_6.6.inc @@ -0,0 +1,6660 @@ + +# Auto-generated CVE metadata, DO NOT EDIT BY HAND. +# Generated at 2024-06-06 20:41:33.044442+00:00 for version 6.6.32 + +#python check_kernel_cve_status_version() { +# this_version = "6.6.29" +# kernel_version = d.getVar("LINUX_VERSION") +# if kernel_version != this_version: +# bb.warn("Kernel CVE status needs updating: generated for %s but kernel is %s" % (this_version, kernel_version)) +#} +#do_cve_check[prefuncs] += "check_kernel_cve_status_version" + +CVE_STATUS[CVE-2003-1604] = "fixed-version: Fixed from version 2.6.12rc2" + +CVE_STATUS[CVE-2004-0230] = "fixed-version: Fixed from version 3.6rc1" + +# CVE-2005-3660 has no known resolution + +CVE_STATUS[CVE-2006-3635] = "fixed-version: Fixed from version 2.6.26rc5" + +CVE_STATUS[CVE-2006-5331] = "fixed-version: Fixed from version 2.6.19rc3" + +CVE_STATUS[CVE-2006-6128] = "fixed-version: Fixed from version 2.6.19rc2" + +# CVE-2007-3719 has no known resolution + +CVE_STATUS[CVE-2007-4774] = "fixed-version: Fixed from version 2.6.12rc2" + +CVE_STATUS[CVE-2007-6761] = "fixed-version: Fixed from version 2.6.24rc6" + +CVE_STATUS[CVE-2007-6762] = "fixed-version: Fixed from version 2.6.20rc5" + +# CVE-2008-2544 has no known resolution + +# CVE-2008-4609 has no known resolution + +CVE_STATUS[CVE-2008-7316] = "fixed-version: Fixed from version 2.6.25rc1" + +CVE_STATUS[CVE-2009-2692] = "fixed-version: Fixed from version 2.6.31rc6" + +CVE_STATUS[CVE-2010-0008] = "fixed-version: Fixed from version 2.6.23rc9" + +CVE_STATUS[CVE-2010-3432] = "fixed-version: Fixed from version 2.6.36rc5" + +# CVE-2010-4563 has no known resolution + +CVE_STATUS[CVE-2010-4648] = "fixed-version: Fixed from version 2.6.37rc6" + +CVE_STATUS[CVE-2010-5313] = "fixed-version: Fixed from version 2.6.38rc1" + +# CVE-2010-5321 has no known resolution + +CVE_STATUS[CVE-2010-5328] = "fixed-version: Fixed from version 2.6.35rc1" + +CVE_STATUS[CVE-2010-5329] = "fixed-version: Fixed from version 2.6.39rc1" + +CVE_STATUS[CVE-2010-5331] = "fixed-version: Fixed from version 2.6.34rc7" + +CVE_STATUS[CVE-2010-5332] = "fixed-version: Fixed from version 2.6.37rc1" + +CVE_STATUS[CVE-2011-4098] = "fixed-version: Fixed from version 3.2rc1" + +CVE_STATUS[CVE-2011-4131] = "fixed-version: Fixed from version 3.3rc1" + +CVE_STATUS[CVE-2011-4915] = "fixed-version: Fixed from version 3.2rc1" + +# CVE-2011-4916 has no known resolution + +# CVE-2011-4917 has no known resolution + +CVE_STATUS[CVE-2011-5321] = "fixed-version: Fixed from version 3.2rc1" + +CVE_STATUS[CVE-2011-5327] = "fixed-version: Fixed from version 3.1rc1" + +CVE_STATUS[CVE-2012-0957] = "fixed-version: Fixed from version 3.7rc2" + +CVE_STATUS[CVE-2012-2119] = "fixed-version: Fixed from version 3.5rc1" + +CVE_STATUS[CVE-2012-2136] = "fixed-version: Fixed from version 3.5rc1" + +CVE_STATUS[CVE-2012-2137] = "fixed-version: Fixed from version 3.5rc2" + +CVE_STATUS[CVE-2012-2313] = "fixed-version: Fixed from version 3.4rc6" + +CVE_STATUS[CVE-2012-2319] = "fixed-version: Fixed from version 3.4rc6" + +CVE_STATUS[CVE-2012-2372] = "fixed-version: Fixed from version 3.13rc4" + +CVE_STATUS[CVE-2012-2375] = "fixed-version: Fixed from version 3.4rc1" + +CVE_STATUS[CVE-2012-2390] = "fixed-version: Fixed from version 3.5rc1" + +CVE_STATUS[CVE-2012-2669] = "fixed-version: Fixed from version 3.5rc4" + +CVE_STATUS[CVE-2012-2744] = "fixed-version: Fixed from version 2.6.34rc1" + +CVE_STATUS[CVE-2012-2745] = "fixed-version: Fixed from version 3.4rc3" + +CVE_STATUS[CVE-2012-3364] = "fixed-version: Fixed from version 3.5rc6" + +CVE_STATUS[CVE-2012-3375] = "fixed-version: Fixed from version 3.4rc5" + +CVE_STATUS[CVE-2012-3400] = "fixed-version: Fixed from version 3.5rc5" + +CVE_STATUS[CVE-2012-3412] = "fixed-version: Fixed from version 3.6rc2" + +CVE_STATUS[CVE-2012-3430] = "fixed-version: Fixed from version 3.6rc1" + +CVE_STATUS[CVE-2012-3510] = "fixed-version: Fixed from version 2.6.19rc4" + +CVE_STATUS[CVE-2012-3511] = "fixed-version: Fixed from version 3.5rc6" + +CVE_STATUS[CVE-2012-3520] = "fixed-version: Fixed from version 3.6rc3" + +CVE_STATUS[CVE-2012-3552] = "fixed-version: Fixed from version 3.0rc1" + +# Skipping CVE-2012-4220, no affected_versions + +# Skipping CVE-2012-4221, no affected_versions + +# Skipping CVE-2012-4222, no affected_versions + +CVE_STATUS[CVE-2012-4398] = "fixed-version: Fixed from version 3.4rc1" + +CVE_STATUS[CVE-2012-4444] = "fixed-version: Fixed from version 2.6.36rc4" + +CVE_STATUS[CVE-2012-4461] = "fixed-version: Fixed from version 3.7rc6" + +CVE_STATUS[CVE-2012-4467] = "fixed-version: Fixed from version 3.6rc5" + +CVE_STATUS[CVE-2012-4508] = "fixed-version: Fixed from version 3.7rc3" + +CVE_STATUS[CVE-2012-4530] = "fixed-version: Fixed from version 3.8rc1" + +# CVE-2012-4542 has no known resolution + +CVE_STATUS[CVE-2012-4565] = "fixed-version: Fixed from version 3.7rc4" + +CVE_STATUS[CVE-2012-5374] = "fixed-version: Fixed from version 3.8rc1" + +CVE_STATUS[CVE-2012-5375] = "fixed-version: Fixed from version 3.8rc1" + +CVE_STATUS[CVE-2012-5517] = "fixed-version: Fixed from version 3.6rc1" + +CVE_STATUS[CVE-2012-6536] = "fixed-version: Fixed from version 3.6rc7" + +CVE_STATUS[CVE-2012-6537] = "fixed-version: Fixed from version 3.6rc7" + +CVE_STATUS[CVE-2012-6538] = "fixed-version: Fixed from version 3.6rc7" + +CVE_STATUS[CVE-2012-6539] = "fixed-version: Fixed from version 3.6rc3" + +CVE_STATUS[CVE-2012-6540] = "fixed-version: Fixed from version 3.6rc3" + +CVE_STATUS[CVE-2012-6541] = "fixed-version: Fixed from version 3.6rc3" + +CVE_STATUS[CVE-2012-6542] = "fixed-version: Fixed from version 3.6rc3" + +CVE_STATUS[CVE-2012-6543] = "fixed-version: Fixed from version 3.6rc3" + +CVE_STATUS[CVE-2012-6544] = "fixed-version: Fixed from version 3.6rc3" + +CVE_STATUS[CVE-2012-6545] = "fixed-version: Fixed from version 3.6rc3" + +CVE_STATUS[CVE-2012-6546] = "fixed-version: Fixed from version 3.6rc3" + +CVE_STATUS[CVE-2012-6547] = "fixed-version: Fixed from version 3.6rc1" + +CVE_STATUS[CVE-2012-6548] = "fixed-version: Fixed from version 3.6rc1" + +CVE_STATUS[CVE-2012-6549] = "fixed-version: Fixed from version 3.6rc1" + +CVE_STATUS[CVE-2012-6638] = "fixed-version: Fixed from version 3.3rc1" + +CVE_STATUS[CVE-2012-6647] = "fixed-version: Fixed from version 3.6rc2" + +CVE_STATUS[CVE-2012-6657] = "fixed-version: Fixed from version 3.6" + +CVE_STATUS[CVE-2012-6689] = "fixed-version: Fixed from version 3.6rc5" + +CVE_STATUS[CVE-2012-6701] = "fixed-version: Fixed from version 3.5rc1" + +CVE_STATUS[CVE-2012-6703] = "fixed-version: Fixed from version 3.7rc1" + +CVE_STATUS[CVE-2012-6704] = "fixed-version: Fixed from version 3.5rc1" + +CVE_STATUS[CVE-2012-6712] = "fixed-version: Fixed from version 3.4rc1" + +CVE_STATUS[CVE-2013-0160] = "fixed-version: Fixed from version 3.9rc1" + +CVE_STATUS[CVE-2013-0190] = "fixed-version: Fixed from version 3.8rc5" + +CVE_STATUS[CVE-2013-0216] = "fixed-version: Fixed from version 3.8rc7" + +CVE_STATUS[CVE-2013-0217] = "fixed-version: Fixed from version 3.8rc7" + +CVE_STATUS[CVE-2013-0228] = "fixed-version: Fixed from version 3.8" + +CVE_STATUS[CVE-2013-0231] = "fixed-version: Fixed from version 3.8rc7" + +CVE_STATUS[CVE-2013-0268] = "fixed-version: Fixed from version 3.8rc6" + +CVE_STATUS[CVE-2013-0290] = "fixed-version: Fixed from version 3.8" + +CVE_STATUS[CVE-2013-0309] = "fixed-version: Fixed from version 3.7rc1" + +CVE_STATUS[CVE-2013-0310] = "fixed-version: Fixed from version 3.5" + +CVE_STATUS[CVE-2013-0311] = "fixed-version: Fixed from version 3.7rc8" + +CVE_STATUS[CVE-2013-0313] = "fixed-version: Fixed from version 3.8rc5" + +CVE_STATUS[CVE-2013-0343] = "fixed-version: Fixed from version 3.11rc7" + +CVE_STATUS[CVE-2013-0349] = "fixed-version: Fixed from version 3.8rc6" + +CVE_STATUS[CVE-2013-0871] = "fixed-version: Fixed from version 3.8rc5" + +CVE_STATUS[CVE-2013-0913] = "fixed-version: Fixed from version 3.9rc4" + +CVE_STATUS[CVE-2013-0914] = "fixed-version: Fixed from version 3.9rc3" + +CVE_STATUS[CVE-2013-1059] = "fixed-version: Fixed from version 3.11rc1" + +CVE_STATUS[CVE-2013-1763] = "fixed-version: Fixed from version 3.9rc1" + +CVE_STATUS[CVE-2013-1767] = "fixed-version: Fixed from version 3.9rc1" + +CVE_STATUS[CVE-2013-1772] = "fixed-version: Fixed from version 3.5rc1" + +CVE_STATUS[CVE-2013-1773] = "fixed-version: Fixed from version 3.3rc1" + +CVE_STATUS[CVE-2013-1774] = "fixed-version: Fixed from version 3.8rc5" + +CVE_STATUS[CVE-2013-1792] = "fixed-version: Fixed from version 3.9rc3" + +CVE_STATUS[CVE-2013-1796] = "fixed-version: Fixed from version 3.9rc4" + +CVE_STATUS[CVE-2013-1797] = "fixed-version: Fixed from version 3.9rc4" + +CVE_STATUS[CVE-2013-1798] = "fixed-version: Fixed from version 3.9rc4" + +CVE_STATUS[CVE-2013-1819] = "fixed-version: Fixed from version 3.8rc6" + +CVE_STATUS[CVE-2013-1826] = "fixed-version: Fixed from version 3.6rc7" + +CVE_STATUS[CVE-2013-1827] = "fixed-version: Fixed from version 3.6rc3" + +CVE_STATUS[CVE-2013-1828] = "fixed-version: Fixed from version 3.9rc2" + +CVE_STATUS[CVE-2013-1848] = "fixed-version: Fixed from version 3.9rc3" + +CVE_STATUS[CVE-2013-1858] = "fixed-version: Fixed from version 3.9rc3" + +CVE_STATUS[CVE-2013-1860] = "fixed-version: Fixed from version 3.9rc3" + +CVE_STATUS[CVE-2013-1928] = "fixed-version: Fixed from version 3.7rc3" + +CVE_STATUS[CVE-2013-1929] = "fixed-version: Fixed from version 3.9rc6" + +# Skipping CVE-2013-1935, no affected_versions + +CVE_STATUS[CVE-2013-1943] = "fixed-version: Fixed from version 3.0rc1" + +CVE_STATUS[CVE-2013-1956] = "fixed-version: Fixed from version 3.9rc5" + +CVE_STATUS[CVE-2013-1957] = "fixed-version: Fixed from version 3.9rc5" + +CVE_STATUS[CVE-2013-1958] = "fixed-version: Fixed from version 3.9rc5" + +CVE_STATUS[CVE-2013-1959] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-1979] = "fixed-version: Fixed from version 3.9rc8" + +CVE_STATUS[CVE-2013-2015] = "fixed-version: Fixed from version 3.8rc2" + +CVE_STATUS[CVE-2013-2017] = "fixed-version: Fixed from version 2.6.34" + +CVE_STATUS[CVE-2013-2058] = "fixed-version: Fixed from version 3.8rc4" + +CVE_STATUS[CVE-2013-2094] = "fixed-version: Fixed from version 3.9rc8" + +CVE_STATUS[CVE-2013-2128] = "fixed-version: Fixed from version 2.6.34rc4" + +CVE_STATUS[CVE-2013-2140] = "fixed-version: Fixed from version 3.11rc3" + +CVE_STATUS[CVE-2013-2141] = "fixed-version: Fixed from version 3.9rc8" + +CVE_STATUS[CVE-2013-2146] = "fixed-version: Fixed from version 3.9rc8" + +CVE_STATUS[CVE-2013-2147] = "fixed-version: Fixed from version 3.12rc3" + +CVE_STATUS[CVE-2013-2148] = "fixed-version: Fixed from version 3.11rc1" + +CVE_STATUS[CVE-2013-2164] = "fixed-version: Fixed from version 3.11rc1" + +# Skipping CVE-2013-2188, no affected_versions + +CVE_STATUS[CVE-2013-2206] = "fixed-version: Fixed from version 3.9rc4" + +# Skipping CVE-2013-2224, no affected_versions + +CVE_STATUS[CVE-2013-2232] = "fixed-version: Fixed from version 3.10" + +CVE_STATUS[CVE-2013-2234] = "fixed-version: Fixed from version 3.10" + +CVE_STATUS[CVE-2013-2237] = "fixed-version: Fixed from version 3.9rc6" + +# Skipping CVE-2013-2239, no affected_versions + +CVE_STATUS[CVE-2013-2546] = "fixed-version: Fixed from version 3.9rc1" + +CVE_STATUS[CVE-2013-2547] = "fixed-version: Fixed from version 3.9rc1" + +CVE_STATUS[CVE-2013-2548] = "fixed-version: Fixed from version 3.9rc1" + +CVE_STATUS[CVE-2013-2596] = "fixed-version: Fixed from version 3.9rc8" + +CVE_STATUS[CVE-2013-2634] = "fixed-version: Fixed from version 3.9rc3" + +CVE_STATUS[CVE-2013-2635] = "fixed-version: Fixed from version 3.9rc3" + +CVE_STATUS[CVE-2013-2636] = "fixed-version: Fixed from version 3.9rc3" + +CVE_STATUS[CVE-2013-2850] = "fixed-version: Fixed from version 3.10rc4" + +CVE_STATUS[CVE-2013-2851] = "fixed-version: Fixed from version 3.11rc1" + +CVE_STATUS[CVE-2013-2852] = "fixed-version: Fixed from version 3.10rc6" + +CVE_STATUS[CVE-2013-2888] = "fixed-version: Fixed from version 3.12rc1" + +CVE_STATUS[CVE-2013-2889] = "fixed-version: Fixed from version 3.12rc2" + +CVE_STATUS[CVE-2013-2890] = "fixed-version: Fixed from version 3.12rc2" + +CVE_STATUS[CVE-2013-2891] = "fixed-version: Fixed from version 3.12rc2" + +CVE_STATUS[CVE-2013-2892] = "fixed-version: Fixed from version 3.12rc1" + +CVE_STATUS[CVE-2013-2893] = "fixed-version: Fixed from version 3.12rc2" + +CVE_STATUS[CVE-2013-2894] = "fixed-version: Fixed from version 3.12rc2" + +CVE_STATUS[CVE-2013-2895] = "fixed-version: Fixed from version 3.12rc2" + +CVE_STATUS[CVE-2013-2896] = "fixed-version: Fixed from version 3.12rc1" + +CVE_STATUS[CVE-2013-2897] = "fixed-version: Fixed from version 3.12rc2" + +CVE_STATUS[CVE-2013-2898] = "fixed-version: Fixed from version 3.12rc1" + +CVE_STATUS[CVE-2013-2899] = "fixed-version: Fixed from version 3.12rc1" + +CVE_STATUS[CVE-2013-2929] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-2930] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-3076] = "fixed-version: Fixed from version 3.9" + +CVE_STATUS[CVE-2013-3222] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3223] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3224] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3225] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3226] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3227] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3228] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3229] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3230] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3231] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3232] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3233] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3234] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3235] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3236] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3237] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3301] = "fixed-version: Fixed from version 3.9rc7" + +CVE_STATUS[CVE-2013-3302] = "fixed-version: Fixed from version 3.8rc3" + +CVE_STATUS[CVE-2013-4125] = "fixed-version: Fixed from version 3.11rc1" + +CVE_STATUS[CVE-2013-4127] = "fixed-version: Fixed from version 3.11rc1" + +CVE_STATUS[CVE-2013-4129] = "fixed-version: Fixed from version 3.11rc1" + +CVE_STATUS[CVE-2013-4162] = "fixed-version: Fixed from version 3.11rc1" + +CVE_STATUS[CVE-2013-4163] = "fixed-version: Fixed from version 3.11rc1" + +CVE_STATUS[CVE-2013-4205] = "fixed-version: Fixed from version 3.11rc5" + +CVE_STATUS[CVE-2013-4220] = "fixed-version: Fixed from version 3.10rc4" + +CVE_STATUS[CVE-2013-4247] = "fixed-version: Fixed from version 3.10rc5" + +CVE_STATUS[CVE-2013-4254] = "fixed-version: Fixed from version 3.11rc6" + +CVE_STATUS[CVE-2013-4270] = "fixed-version: Fixed from version 3.12rc4" + +CVE_STATUS[CVE-2013-4299] = "fixed-version: Fixed from version 3.12rc6" + +CVE_STATUS[CVE-2013-4300] = "fixed-version: Fixed from version 3.11" + +CVE_STATUS[CVE-2013-4312] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2013-4343] = "fixed-version: Fixed from version 3.12rc2" + +CVE_STATUS[CVE-2013-4345] = "fixed-version: Fixed from version 3.13rc2" + +CVE_STATUS[CVE-2013-4348] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-4350] = "fixed-version: Fixed from version 3.12rc2" + +CVE_STATUS[CVE-2013-4387] = "fixed-version: Fixed from version 3.12rc4" + +CVE_STATUS[CVE-2013-4470] = "fixed-version: Fixed from version 3.12rc7" + +CVE_STATUS[CVE-2013-4483] = "fixed-version: Fixed from version 3.10rc1" + +CVE_STATUS[CVE-2013-4511] = "fixed-version: Fixed from version 3.12" + +CVE_STATUS[CVE-2013-4512] = "fixed-version: Fixed from version 3.12" + +CVE_STATUS[CVE-2013-4513] = "fixed-version: Fixed from version 3.12" + +CVE_STATUS[CVE-2013-4514] = "fixed-version: Fixed from version 3.12" + +CVE_STATUS[CVE-2013-4515] = "fixed-version: Fixed from version 3.12" + +CVE_STATUS[CVE-2013-4516] = "fixed-version: Fixed from version 3.12" + +CVE_STATUS[CVE-2013-4563] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-4579] = "fixed-version: Fixed from version 3.13rc7" + +CVE_STATUS[CVE-2013-4587] = "fixed-version: Fixed from version 3.13rc4" + +CVE_STATUS[CVE-2013-4588] = "fixed-version: Fixed from version 2.6.33rc4" + +CVE_STATUS[CVE-2013-4591] = "fixed-version: Fixed from version 3.8rc1" + +CVE_STATUS[CVE-2013-4592] = "fixed-version: Fixed from version 3.7rc1" + +# Skipping CVE-2013-4737, no affected_versions + +# Skipping CVE-2013-4738, no affected_versions + +# Skipping CVE-2013-4739, no affected_versions + +CVE_STATUS[CVE-2013-5634] = "fixed-version: Fixed from version 3.10rc5" + +CVE_STATUS[CVE-2013-6282] = "fixed-version: Fixed from version 3.6rc6" + +CVE_STATUS[CVE-2013-6367] = "fixed-version: Fixed from version 3.13rc4" + +CVE_STATUS[CVE-2013-6368] = "fixed-version: Fixed from version 3.13rc4" + +CVE_STATUS[CVE-2013-6376] = "fixed-version: Fixed from version 3.13rc4" + +CVE_STATUS[CVE-2013-6378] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-6380] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-6381] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-6382] = "fixed-version: Fixed from version 3.13rc4" + +CVE_STATUS[CVE-2013-6383] = "fixed-version: Fixed from version 3.12" + +# Skipping CVE-2013-6392, no affected_versions + +CVE_STATUS[CVE-2013-6431] = "fixed-version: Fixed from version 3.12rc1" + +CVE_STATUS[CVE-2013-6432] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-6885] = "fixed-version: Fixed from version 3.14rc1" + +CVE_STATUS[CVE-2013-7026] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7027] = "fixed-version: Fixed from version 3.12rc7" + +CVE_STATUS[CVE-2013-7263] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7264] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7265] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7266] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7267] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7268] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7269] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7270] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7271] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7281] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7339] = "fixed-version: Fixed from version 3.13rc7" + +CVE_STATUS[CVE-2013-7348] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2013-7421] = "fixed-version: Fixed from version 3.19rc1" + +# CVE-2013-7445 has no known resolution + +CVE_STATUS[CVE-2013-7446] = "fixed-version: Fixed from version 4.4rc4" + +CVE_STATUS[CVE-2013-7470] = "fixed-version: Fixed from version 3.12rc7" + +CVE_STATUS[CVE-2014-0038] = "fixed-version: Fixed from version 3.14rc1" + +CVE_STATUS[CVE-2014-0049] = "fixed-version: Fixed from version 3.14rc5" + +CVE_STATUS[CVE-2014-0055] = "fixed-version: Fixed from version 3.14" + +CVE_STATUS[CVE-2014-0069] = "fixed-version: Fixed from version 3.14rc4" + +CVE_STATUS[CVE-2014-0077] = "fixed-version: Fixed from version 3.14" + +CVE_STATUS[CVE-2014-0100] = "fixed-version: Fixed from version 3.14rc7" + +CVE_STATUS[CVE-2014-0101] = "fixed-version: Fixed from version 3.14rc6" + +CVE_STATUS[CVE-2014-0102] = "fixed-version: Fixed from version 3.14rc6" + +CVE_STATUS[CVE-2014-0131] = "fixed-version: Fixed from version 3.14rc7" + +CVE_STATUS[CVE-2014-0155] = "fixed-version: Fixed from version 3.15rc2" + +CVE_STATUS[CVE-2014-0181] = "fixed-version: Fixed from version 3.15rc5" + +CVE_STATUS[CVE-2014-0196] = "fixed-version: Fixed from version 3.15rc5" + +CVE_STATUS[CVE-2014-0203] = "fixed-version: Fixed from version 2.6.33rc5" + +CVE_STATUS[CVE-2014-0205] = "fixed-version: Fixed from version 2.6.37rc1" + +CVE_STATUS[CVE-2014-0206] = "fixed-version: Fixed from version 3.16rc3" + +# Skipping CVE-2014-0972, no affected_versions + +CVE_STATUS[CVE-2014-1438] = "fixed-version: Fixed from version 3.13" + +CVE_STATUS[CVE-2014-1444] = "fixed-version: Fixed from version 3.12rc7" + +CVE_STATUS[CVE-2014-1445] = "fixed-version: Fixed from version 3.12rc7" + +CVE_STATUS[CVE-2014-1446] = "fixed-version: Fixed from version 3.13rc7" + +CVE_STATUS[CVE-2014-1690] = "fixed-version: Fixed from version 3.13rc8" + +CVE_STATUS[CVE-2014-1737] = "fixed-version: Fixed from version 3.15rc5" + +CVE_STATUS[CVE-2014-1738] = "fixed-version: Fixed from version 3.15rc5" + +CVE_STATUS[CVE-2014-1739] = "fixed-version: Fixed from version 3.15rc6" + +CVE_STATUS[CVE-2014-1874] = "fixed-version: Fixed from version 3.14rc2" + +CVE_STATUS[CVE-2014-2038] = "fixed-version: Fixed from version 3.14rc1" + +CVE_STATUS[CVE-2014-2039] = "fixed-version: Fixed from version 3.14rc3" + +CVE_STATUS[CVE-2014-2309] = "fixed-version: Fixed from version 3.14rc7" + +CVE_STATUS[CVE-2014-2523] = "fixed-version: Fixed from version 3.14rc1" + +CVE_STATUS[CVE-2014-2568] = "fixed-version: Fixed from version 3.14" + +CVE_STATUS[CVE-2014-2580] = "fixed-version: Fixed from version 3.15rc1" + +CVE_STATUS[CVE-2014-2672] = "fixed-version: Fixed from version 3.14rc6" + +CVE_STATUS[CVE-2014-2673] = "fixed-version: Fixed from version 3.14rc6" + +CVE_STATUS[CVE-2014-2678] = "fixed-version: Fixed from version 3.15rc1" + +CVE_STATUS[CVE-2014-2706] = "fixed-version: Fixed from version 3.14rc6" + +CVE_STATUS[CVE-2014-2739] = "fixed-version: Fixed from version 3.15rc1" + +CVE_STATUS[CVE-2014-2851] = "fixed-version: Fixed from version 3.15rc2" + +CVE_STATUS[CVE-2014-2889] = "fixed-version: Fixed from version 3.2rc7" + +CVE_STATUS[CVE-2014-3122] = "fixed-version: Fixed from version 3.15rc1" + +CVE_STATUS[CVE-2014-3144] = "fixed-version: Fixed from version 3.15rc2" + +CVE_STATUS[CVE-2014-3145] = "fixed-version: Fixed from version 3.15rc2" + +CVE_STATUS[CVE-2014-3153] = "fixed-version: Fixed from version 3.15" + +CVE_STATUS[CVE-2014-3180] = "fixed-version: Fixed from version 3.17rc4" + +CVE_STATUS[CVE-2014-3181] = "fixed-version: Fixed from version 3.17rc3" + +CVE_STATUS[CVE-2014-3182] = "fixed-version: Fixed from version 3.17rc2" + +CVE_STATUS[CVE-2014-3183] = "fixed-version: Fixed from version 3.17rc2" + +CVE_STATUS[CVE-2014-3184] = "fixed-version: Fixed from version 3.17rc2" + +CVE_STATUS[CVE-2014-3185] = "fixed-version: Fixed from version 3.17rc3" + +CVE_STATUS[CVE-2014-3186] = "fixed-version: Fixed from version 3.17rc3" + +# Skipping CVE-2014-3519, no affected_versions + +CVE_STATUS[CVE-2014-3534] = "fixed-version: Fixed from version 3.16rc7" + +CVE_STATUS[CVE-2014-3535] = "fixed-version: Fixed from version 2.6.36rc1" + +CVE_STATUS[CVE-2014-3601] = "fixed-version: Fixed from version 3.17rc2" + +CVE_STATUS[CVE-2014-3610] = "fixed-version: Fixed from version 3.18rc2" + +CVE_STATUS[CVE-2014-3611] = "fixed-version: Fixed from version 3.18rc2" + +CVE_STATUS[CVE-2014-3631] = "fixed-version: Fixed from version 3.17rc5" + +CVE_STATUS[CVE-2014-3645] = "fixed-version: Fixed from version 3.12rc1" + +CVE_STATUS[CVE-2014-3646] = "fixed-version: Fixed from version 3.18rc2" + +CVE_STATUS[CVE-2014-3647] = "fixed-version: Fixed from version 3.18rc2" + +CVE_STATUS[CVE-2014-3673] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2014-3687] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2014-3688] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2014-3690] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2014-3917] = "fixed-version: Fixed from version 3.16rc1" + +CVE_STATUS[CVE-2014-3940] = "fixed-version: Fixed from version 3.15" + +CVE_STATUS[CVE-2014-4014] = "fixed-version: Fixed from version 3.16rc1" + +CVE_STATUS[CVE-2014-4027] = "fixed-version: Fixed from version 3.14rc1" + +CVE_STATUS[CVE-2014-4157] = "fixed-version: Fixed from version 3.15rc1" + +CVE_STATUS[CVE-2014-4171] = "fixed-version: Fixed from version 3.16rc3" + +# Skipping CVE-2014-4322, no affected_versions + +# Skipping CVE-2014-4323, no affected_versions + +CVE_STATUS[CVE-2014-4508] = "fixed-version: Fixed from version 3.16rc3" + +CVE_STATUS[CVE-2014-4608] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2014-4611] = "fixed-version: Fixed from version 3.16rc3" + +CVE_STATUS[CVE-2014-4652] = "fixed-version: Fixed from version 3.16rc2" + +CVE_STATUS[CVE-2014-4653] = "fixed-version: Fixed from version 3.16rc2" + +CVE_STATUS[CVE-2014-4654] = "fixed-version: Fixed from version 3.16rc2" + +CVE_STATUS[CVE-2014-4655] = "fixed-version: Fixed from version 3.16rc2" + +CVE_STATUS[CVE-2014-4656] = "fixed-version: Fixed from version 3.16rc2" + +CVE_STATUS[CVE-2014-4667] = "fixed-version: Fixed from version 3.16rc1" + +CVE_STATUS[CVE-2014-4699] = "fixed-version: Fixed from version 3.16rc4" + +CVE_STATUS[CVE-2014-4943] = "fixed-version: Fixed from version 3.16rc6" + +CVE_STATUS[CVE-2014-5045] = "fixed-version: Fixed from version 3.16rc7" + +CVE_STATUS[CVE-2014-5077] = "fixed-version: Fixed from version 3.16" + +CVE_STATUS[CVE-2014-5206] = "fixed-version: Fixed from version 3.17rc1" + +CVE_STATUS[CVE-2014-5207] = "fixed-version: Fixed from version 3.17rc1" + +# Skipping CVE-2014-5332, no affected_versions + +CVE_STATUS[CVE-2014-5471] = "fixed-version: Fixed from version 3.17rc2" + +CVE_STATUS[CVE-2014-5472] = "fixed-version: Fixed from version 3.17rc2" + +CVE_STATUS[CVE-2014-6410] = "fixed-version: Fixed from version 3.17rc5" + +CVE_STATUS[CVE-2014-6416] = "fixed-version: Fixed from version 3.17rc5" + +CVE_STATUS[CVE-2014-6417] = "fixed-version: Fixed from version 3.17rc5" + +CVE_STATUS[CVE-2014-6418] = "fixed-version: Fixed from version 3.17rc5" + +CVE_STATUS[CVE-2014-7145] = "fixed-version: Fixed from version 3.17rc2" + +# Skipping CVE-2014-7207, no affected_versions + +CVE_STATUS[CVE-2014-7283] = "fixed-version: Fixed from version 3.15rc1" + +CVE_STATUS[CVE-2014-7284] = "fixed-version: Fixed from version 3.15rc7" + +CVE_STATUS[CVE-2014-7822] = "fixed-version: Fixed from version 3.16rc1" + +CVE_STATUS[CVE-2014-7825] = "fixed-version: Fixed from version 3.18rc3" + +CVE_STATUS[CVE-2014-7826] = "fixed-version: Fixed from version 3.18rc3" + +CVE_STATUS[CVE-2014-7841] = "fixed-version: Fixed from version 3.18rc5" + +CVE_STATUS[CVE-2014-7842] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2014-7843] = "fixed-version: Fixed from version 3.18rc5" + +CVE_STATUS[CVE-2014-7970] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2014-7975] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2014-8086] = "fixed-version: Fixed from version 3.18rc3" + +CVE_STATUS[CVE-2014-8133] = "fixed-version: Fixed from version 3.19rc1" + +CVE_STATUS[CVE-2014-8134] = "fixed-version: Fixed from version 3.19rc1" + +CVE_STATUS[CVE-2014-8159] = "fixed-version: Fixed from version 4.0rc7" + +CVE_STATUS[CVE-2014-8160] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2014-8171] = "fixed-version: Fixed from version 3.12rc1" + +CVE_STATUS[CVE-2014-8172] = "fixed-version: Fixed from version 3.13rc1" + +CVE_STATUS[CVE-2014-8173] = "fixed-version: Fixed from version 3.13rc5" + +# Skipping CVE-2014-8181, no affected_versions + +CVE_STATUS[CVE-2014-8369] = "fixed-version: Fixed from version 3.18rc2" + +CVE_STATUS[CVE-2014-8480] = "fixed-version: Fixed from version 3.18rc2" + +CVE_STATUS[CVE-2014-8481] = "fixed-version: Fixed from version 3.18rc2" + +CVE_STATUS[CVE-2014-8559] = "fixed-version: Fixed from version 3.19rc1" + +CVE_STATUS[CVE-2014-8709] = "fixed-version: Fixed from version 3.14rc3" + +CVE_STATUS[CVE-2014-8884] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2014-8989] = "fixed-version: Fixed from version 3.19rc1" + +CVE_STATUS[CVE-2014-9090] = "fixed-version: Fixed from version 3.18rc6" + +CVE_STATUS[CVE-2014-9322] = "fixed-version: Fixed from version 3.18rc6" + +CVE_STATUS[CVE-2014-9419] = "fixed-version: Fixed from version 3.19rc1" + +CVE_STATUS[CVE-2014-9420] = "fixed-version: Fixed from version 3.19rc1" + +CVE_STATUS[CVE-2014-9428] = "fixed-version: Fixed from version 3.19rc3" + +CVE_STATUS[CVE-2014-9529] = "fixed-version: Fixed from version 3.19rc4" + +CVE_STATUS[CVE-2014-9584] = "fixed-version: Fixed from version 3.19rc3" + +CVE_STATUS[CVE-2014-9585] = "fixed-version: Fixed from version 3.19rc4" + +CVE_STATUS[CVE-2014-9644] = "fixed-version: Fixed from version 3.19rc1" + +CVE_STATUS[CVE-2014-9683] = "fixed-version: Fixed from version 3.19rc1" + +CVE_STATUS[CVE-2014-9710] = "fixed-version: Fixed from version 3.19rc1" + +CVE_STATUS[CVE-2014-9715] = "fixed-version: Fixed from version 3.15rc1" + +CVE_STATUS[CVE-2014-9717] = "fixed-version: Fixed from version 4.1rc1" + +CVE_STATUS[CVE-2014-9728] = "fixed-version: Fixed from version 3.19rc3" + +CVE_STATUS[CVE-2014-9729] = "fixed-version: Fixed from version 3.19rc3" + +CVE_STATUS[CVE-2014-9730] = "fixed-version: Fixed from version 3.19rc3" + +CVE_STATUS[CVE-2014-9731] = "fixed-version: Fixed from version 3.19rc3" + +# Skipping CVE-2014-9777, no affected_versions + +# Skipping CVE-2014-9778, no affected_versions + +# Skipping CVE-2014-9779, no affected_versions + +# Skipping CVE-2014-9780, no affected_versions + +# Skipping CVE-2014-9781, no affected_versions + +# Skipping CVE-2014-9782, no affected_versions + +# Skipping CVE-2014-9783, no affected_versions + +# Skipping CVE-2014-9784, no affected_versions + +# Skipping CVE-2014-9785, no affected_versions + +# Skipping CVE-2014-9786, no affected_versions + +# Skipping CVE-2014-9787, no affected_versions + +# Skipping CVE-2014-9788, no affected_versions + +# Skipping CVE-2014-9789, no affected_versions + +CVE_STATUS[CVE-2014-9803] = "fixed-version: Fixed from version 3.16rc1" + +# Skipping CVE-2014-9863, no affected_versions + +# Skipping CVE-2014-9864, no affected_versions + +# Skipping CVE-2014-9865, no affected_versions + +# Skipping CVE-2014-9866, no affected_versions + +# Skipping CVE-2014-9867, no affected_versions + +# Skipping CVE-2014-9868, no affected_versions + +# Skipping CVE-2014-9869, no affected_versions + +CVE_STATUS[CVE-2014-9870] = "fixed-version: Fixed from version 3.11rc1" + +# Skipping CVE-2014-9871, no affected_versions + +# Skipping CVE-2014-9872, no affected_versions + +# Skipping CVE-2014-9873, no affected_versions + +# Skipping CVE-2014-9874, no affected_versions + +# Skipping CVE-2014-9875, no affected_versions + +# Skipping CVE-2014-9876, no affected_versions + +# Skipping CVE-2014-9877, no affected_versions + +# Skipping CVE-2014-9878, no affected_versions + +# Skipping CVE-2014-9879, no affected_versions + +# Skipping CVE-2014-9880, no affected_versions + +# Skipping CVE-2014-9881, no affected_versions + +# Skipping CVE-2014-9882, no affected_versions + +# Skipping CVE-2014-9883, no affected_versions + +# Skipping CVE-2014-9884, no affected_versions + +# Skipping CVE-2014-9885, no affected_versions + +# Skipping CVE-2014-9886, no affected_versions + +# Skipping CVE-2014-9887, no affected_versions + +CVE_STATUS[CVE-2014-9888] = "fixed-version: Fixed from version 3.13rc1" + +# Skipping CVE-2014-9889, no affected_versions + +# Skipping CVE-2014-9890, no affected_versions + +# Skipping CVE-2014-9891, no affected_versions + +# Skipping CVE-2014-9892, no affected_versions + +# Skipping CVE-2014-9893, no affected_versions + +# Skipping CVE-2014-9894, no affected_versions + +CVE_STATUS[CVE-2014-9895] = "fixed-version: Fixed from version 3.11rc1" + +# Skipping CVE-2014-9896, no affected_versions + +# Skipping CVE-2014-9897, no affected_versions + +# Skipping CVE-2014-9898, no affected_versions + +# Skipping CVE-2014-9899, no affected_versions + +# Skipping CVE-2014-9900, no affected_versions + +CVE_STATUS[CVE-2014-9903] = "fixed-version: Fixed from version 3.14rc4" + +CVE_STATUS[CVE-2014-9904] = "fixed-version: Fixed from version 3.17rc1" + +CVE_STATUS[CVE-2014-9914] = "fixed-version: Fixed from version 3.16rc1" + +CVE_STATUS[CVE-2014-9922] = "fixed-version: Fixed from version 3.18rc2" + +CVE_STATUS[CVE-2014-9940] = "fixed-version: Fixed from version 3.19rc1" + +CVE_STATUS[CVE-2015-0239] = "fixed-version: Fixed from version 3.19rc6" + +CVE_STATUS[CVE-2015-0274] = "fixed-version: Fixed from version 3.15rc5" + +CVE_STATUS[CVE-2015-0275] = "fixed-version: Fixed from version 4.1rc1" + +# Skipping CVE-2015-0777, no affected_versions + +# Skipping CVE-2015-1328, no affected_versions + +CVE_STATUS[CVE-2015-1333] = "fixed-version: Fixed from version 4.2rc5" + +CVE_STATUS[CVE-2015-1339] = "fixed-version: Fixed from version 4.4rc5" + +CVE_STATUS[CVE-2015-1350] = "fixed-version: Fixed from version 4.9rc1" + +CVE_STATUS[CVE-2015-1420] = "fixed-version: Fixed from version 4.1rc7" + +CVE_STATUS[CVE-2015-1421] = "fixed-version: Fixed from version 3.19rc7" + +CVE_STATUS[CVE-2015-1465] = "fixed-version: Fixed from version 3.19rc7" + +CVE_STATUS[CVE-2015-1573] = "fixed-version: Fixed from version 3.19rc5" + +CVE_STATUS[CVE-2015-1593] = "fixed-version: Fixed from version 4.0rc1" + +CVE_STATUS[CVE-2015-1805] = "fixed-version: Fixed from version 3.16rc1" + +CVE_STATUS[CVE-2015-2041] = "fixed-version: Fixed from version 3.19rc7" + +CVE_STATUS[CVE-2015-2042] = "fixed-version: Fixed from version 3.19" + +CVE_STATUS[CVE-2015-2150] = "fixed-version: Fixed from version 4.0rc4" + +CVE_STATUS[CVE-2015-2666] = "fixed-version: Fixed from version 4.0rc1" + +CVE_STATUS[CVE-2015-2672] = "fixed-version: Fixed from version 4.0rc3" + +CVE_STATUS[CVE-2015-2686] = "fixed-version: Fixed from version 4.0rc6" + +CVE_STATUS[CVE-2015-2830] = "fixed-version: Fixed from version 4.0rc3" + +# CVE-2015-2877 has no known resolution + +CVE_STATUS[CVE-2015-2922] = "fixed-version: Fixed from version 4.0rc7" + +CVE_STATUS[CVE-2015-2925] = "fixed-version: Fixed from version 4.3rc1" + +CVE_STATUS[CVE-2015-3212] = "fixed-version: Fixed from version 4.2rc1" + +CVE_STATUS[CVE-2015-3214] = "fixed-version: Fixed from version 2.6.33rc8" + +CVE_STATUS[CVE-2015-3288] = "fixed-version: Fixed from version 4.2rc2" + +CVE_STATUS[CVE-2015-3290] = "fixed-version: Fixed from version 4.2rc3" + +CVE_STATUS[CVE-2015-3291] = "fixed-version: Fixed from version 4.2rc3" + +CVE_STATUS[CVE-2015-3331] = "fixed-version: Fixed from version 4.0rc5" + +# Skipping CVE-2015-3332, no affected_versions + +CVE_STATUS[CVE-2015-3339] = "fixed-version: Fixed from version 4.1rc1" + +CVE_STATUS[CVE-2015-3636] = "fixed-version: Fixed from version 4.1rc2" + +CVE_STATUS[CVE-2015-4001] = "fixed-version: Fixed from version 4.1rc7" + +CVE_STATUS[CVE-2015-4002] = "fixed-version: Fixed from version 4.1rc7" + +CVE_STATUS[CVE-2015-4003] = "fixed-version: Fixed from version 4.1rc7" + +CVE_STATUS[CVE-2015-4004] = "fixed-version: Fixed from version 4.3rc1" + +CVE_STATUS[CVE-2015-4036] = "fixed-version: Fixed from version 4.0rc1" + +CVE_STATUS[CVE-2015-4167] = "fixed-version: Fixed from version 4.0rc1" + +CVE_STATUS[CVE-2015-4170] = "fixed-version: Fixed from version 3.13rc5" + +CVE_STATUS[CVE-2015-4176] = "fixed-version: Fixed from version 4.1rc1" + +CVE_STATUS[CVE-2015-4177] = "fixed-version: Fixed from version 4.1rc1" + +CVE_STATUS[CVE-2015-4178] = "fixed-version: Fixed from version 4.1rc1" + +CVE_STATUS[CVE-2015-4692] = "fixed-version: Fixed from version 4.2rc1" + +CVE_STATUS[CVE-2015-4700] = "fixed-version: Fixed from version 4.1rc6" + +CVE_STATUS[CVE-2015-5156] = "fixed-version: Fixed from version 4.2rc7" + +CVE_STATUS[CVE-2015-5157] = "fixed-version: Fixed from version 4.2rc3" + +CVE_STATUS[CVE-2015-5257] = "fixed-version: Fixed from version 4.3rc3" + +CVE_STATUS[CVE-2015-5283] = "fixed-version: Fixed from version 4.3rc3" + +CVE_STATUS[CVE-2015-5307] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2015-5327] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2015-5364] = "fixed-version: Fixed from version 4.1rc7" + +CVE_STATUS[CVE-2015-5366] = "fixed-version: Fixed from version 4.1rc7" + +CVE_STATUS[CVE-2015-5697] = "fixed-version: Fixed from version 4.2rc6" + +CVE_STATUS[CVE-2015-5706] = "fixed-version: Fixed from version 4.1rc3" + +CVE_STATUS[CVE-2015-5707] = "fixed-version: Fixed from version 4.1rc1" + +CVE_STATUS[CVE-2015-6252] = "fixed-version: Fixed from version 4.2rc5" + +CVE_STATUS[CVE-2015-6526] = "fixed-version: Fixed from version 4.1rc1" + +# CVE-2015-6619 has no known resolution + +# CVE-2015-6646 has no known resolution + +CVE_STATUS[CVE-2015-6937] = "fixed-version: Fixed from version 4.3rc1" + +# Skipping CVE-2015-7312, no affected_versions + +CVE_STATUS[CVE-2015-7509] = "fixed-version: Fixed from version 3.7rc1" + +CVE_STATUS[CVE-2015-7513] = "fixed-version: Fixed from version 4.4rc7" + +CVE_STATUS[CVE-2015-7515] = "fixed-version: Fixed from version 4.4rc6" + +CVE_STATUS[CVE-2015-7550] = "fixed-version: Fixed from version 4.4rc8" + +# Skipping CVE-2015-7553, no affected_versions + +CVE_STATUS[CVE-2015-7566] = "fixed-version: Fixed from version 4.5rc2" + +CVE_STATUS[CVE-2015-7613] = "fixed-version: Fixed from version 4.3rc4" + +CVE_STATUS[CVE-2015-7799] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2015-7833] = "fixed-version: Fixed from version 4.6rc6" + +# Skipping CVE-2015-7837, no affected_versions + +CVE_STATUS[CVE-2015-7872] = "fixed-version: Fixed from version 4.3rc7" + +CVE_STATUS[CVE-2015-7884] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2015-7885] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2015-7990] = "fixed-version: Fixed from version 4.4rc4" + +# Skipping CVE-2015-8019, no affected_versions + +CVE_STATUS[CVE-2015-8104] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2015-8215] = "fixed-version: Fixed from version 4.0rc3" + +CVE_STATUS[CVE-2015-8324] = "fixed-version: Fixed from version 2.6.34rc1" + +CVE_STATUS[CVE-2015-8374] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2015-8539] = "fixed-version: Fixed from version 4.4rc3" + +CVE_STATUS[CVE-2015-8543] = "fixed-version: Fixed from version 4.4rc6" + +CVE_STATUS[CVE-2015-8550] = "fixed-version: Fixed from version 4.4rc6" + +CVE_STATUS[CVE-2015-8551] = "fixed-version: Fixed from version 4.4rc6" + +CVE_STATUS[CVE-2015-8552] = "fixed-version: Fixed from version 4.4rc6" + +CVE_STATUS[CVE-2015-8553] = "fixed-version: Fixed from version 4.4rc6" + +CVE_STATUS[CVE-2015-8569] = "fixed-version: Fixed from version 4.4rc6" + +CVE_STATUS[CVE-2015-8575] = "fixed-version: Fixed from version 4.4rc6" + +CVE_STATUS[CVE-2015-8660] = "fixed-version: Fixed from version 4.4rc4" + +CVE_STATUS[CVE-2015-8709] = "fixed-version: Fixed from version 4.10rc1" + +CVE_STATUS[CVE-2015-8746] = "fixed-version: Fixed from version 4.3rc1" + +CVE_STATUS[CVE-2015-8767] = "fixed-version: Fixed from version 4.3rc4" + +CVE_STATUS[CVE-2015-8785] = "fixed-version: Fixed from version 4.4rc5" + +CVE_STATUS[CVE-2015-8787] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2015-8812] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2015-8816] = "fixed-version: Fixed from version 4.4rc6" + +CVE_STATUS[CVE-2015-8830] = "fixed-version: Fixed from version 4.1rc1" + +CVE_STATUS[CVE-2015-8839] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2015-8844] = "fixed-version: Fixed from version 4.4rc3" + +CVE_STATUS[CVE-2015-8845] = "fixed-version: Fixed from version 4.4rc3" + +# Skipping CVE-2015-8937, no affected_versions + +# Skipping CVE-2015-8938, no affected_versions + +# Skipping CVE-2015-8939, no affected_versions + +# Skipping CVE-2015-8940, no affected_versions + +# Skipping CVE-2015-8941, no affected_versions + +# Skipping CVE-2015-8942, no affected_versions + +# Skipping CVE-2015-8943, no affected_versions + +# Skipping CVE-2015-8944, no affected_versions + +CVE_STATUS[CVE-2015-8950] = "fixed-version: Fixed from version 4.1rc2" + +CVE_STATUS[CVE-2015-8952] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2015-8953] = "fixed-version: Fixed from version 4.3" + +CVE_STATUS[CVE-2015-8955] = "fixed-version: Fixed from version 4.1rc1" + +CVE_STATUS[CVE-2015-8956] = "fixed-version: Fixed from version 4.2rc1" + +CVE_STATUS[CVE-2015-8961] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2015-8962] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2015-8963] = "fixed-version: Fixed from version 4.4" + +CVE_STATUS[CVE-2015-8964] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2015-8966] = "fixed-version: Fixed from version 4.4rc8" + +CVE_STATUS[CVE-2015-8967] = "fixed-version: Fixed from version 4.0rc1" + +CVE_STATUS[CVE-2015-8970] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2015-9004] = "fixed-version: Fixed from version 3.19rc7" + +CVE_STATUS[CVE-2015-9016] = "fixed-version: Fixed from version 4.3rc1" + +CVE_STATUS[CVE-2015-9289] = "fixed-version: Fixed from version 4.2rc1" + +CVE_STATUS[CVE-2016-0617] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-0723] = "fixed-version: Fixed from version 4.5rc2" + +CVE_STATUS[CVE-2016-0728] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-0758] = "fixed-version: Fixed from version 4.6" + +# Skipping CVE-2016-0774, no affected_versions + +CVE_STATUS[CVE-2016-0821] = "fixed-version: Fixed from version 4.3rc1" + +CVE_STATUS[CVE-2016-0823] = "fixed-version: Fixed from version 4.0rc5" + +CVE_STATUS[CVE-2016-10044] = "fixed-version: Fixed from version 4.8rc7" + +CVE_STATUS[CVE-2016-10088] = "fixed-version: Fixed from version 4.10rc1" + +CVE_STATUS[CVE-2016-10147] = "fixed-version: Fixed from version 4.9" + +CVE_STATUS[CVE-2016-10150] = "fixed-version: Fixed from version 4.9rc8" + +CVE_STATUS[CVE-2016-10153] = "fixed-version: Fixed from version 4.10rc1" + +CVE_STATUS[CVE-2016-10154] = "fixed-version: Fixed from version 4.10rc1" + +CVE_STATUS[CVE-2016-10200] = "fixed-version: Fixed from version 4.9rc7" + +CVE_STATUS[CVE-2016-10208] = "fixed-version: Fixed from version 4.10rc1" + +CVE_STATUS[CVE-2016-10229] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-10318] = "fixed-version: Fixed from version 4.8rc6" + +CVE_STATUS[CVE-2016-10723] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2016-10741] = "fixed-version: Fixed from version 4.10rc1" + +CVE_STATUS[CVE-2016-10764] = "fixed-version: Fixed from version 4.10rc1" + +CVE_STATUS[CVE-2016-10905] = "fixed-version: Fixed from version 4.8rc1" + +CVE_STATUS[CVE-2016-10906] = "fixed-version: Fixed from version 4.5rc6" + +CVE_STATUS[CVE-2016-10907] = "fixed-version: Fixed from version 4.9rc1" + +CVE_STATUS[CVE-2016-1237] = "fixed-version: Fixed from version 4.7rc5" + +CVE_STATUS[CVE-2016-1575] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-1576] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-1583] = "fixed-version: Fixed from version 4.7rc3" + +CVE_STATUS[CVE-2016-2053] = "fixed-version: Fixed from version 4.3rc1" + +CVE_STATUS[CVE-2016-2069] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-2070] = "fixed-version: Fixed from version 4.4" + +CVE_STATUS[CVE-2016-2085] = "fixed-version: Fixed from version 4.5rc4" + +CVE_STATUS[CVE-2016-2117] = "fixed-version: Fixed from version 4.6rc5" + +CVE_STATUS[CVE-2016-2143] = "fixed-version: Fixed from version 4.5" + +CVE_STATUS[CVE-2016-2184] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-2185] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-2186] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-2187] = "fixed-version: Fixed from version 4.6rc5" + +CVE_STATUS[CVE-2016-2188] = "fixed-version: Fixed from version 4.11rc2" + +CVE_STATUS[CVE-2016-2383] = "fixed-version: Fixed from version 4.5rc4" + +CVE_STATUS[CVE-2016-2384] = "fixed-version: Fixed from version 4.5rc4" + +CVE_STATUS[CVE-2016-2543] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-2544] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-2545] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-2546] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-2547] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-2548] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-2549] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2016-2550] = "fixed-version: Fixed from version 4.5rc4" + +CVE_STATUS[CVE-2016-2782] = "fixed-version: Fixed from version 4.5rc2" + +CVE_STATUS[CVE-2016-2847] = "fixed-version: Fixed from version 4.5rc1" + +# Skipping CVE-2016-2853, no affected_versions + +# Skipping CVE-2016-2854, no affected_versions + +CVE_STATUS[CVE-2016-3044] = "fixed-version: Fixed from version 4.5" + +CVE_STATUS[CVE-2016-3070] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2016-3134] = "fixed-version: Fixed from version 4.6rc2" + +CVE_STATUS[CVE-2016-3135] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-3136] = "fixed-version: Fixed from version 4.6rc3" + +CVE_STATUS[CVE-2016-3137] = "fixed-version: Fixed from version 4.6rc3" + +CVE_STATUS[CVE-2016-3138] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-3139] = "fixed-version: Fixed from version 3.17rc1" + +CVE_STATUS[CVE-2016-3140] = "fixed-version: Fixed from version 4.6rc3" + +CVE_STATUS[CVE-2016-3156] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-3157] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-3672] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-3689] = "fixed-version: Fixed from version 4.6rc1" + +# Skipping CVE-2016-3695, no affected_versions + +# Skipping CVE-2016-3699, no affected_versions + +# Skipping CVE-2016-3707, no affected_versions + +CVE_STATUS[CVE-2016-3713] = "fixed-version: Fixed from version 4.7rc1" + +# CVE-2016-3775 has no known resolution + +# CVE-2016-3802 has no known resolution + +# CVE-2016-3803 has no known resolution + +CVE_STATUS[CVE-2016-3841] = "fixed-version: Fixed from version 4.4rc4" + +CVE_STATUS[CVE-2016-3857] = "fixed-version: Fixed from version 4.8rc2" + +CVE_STATUS[CVE-2016-3951] = "fixed-version: Fixed from version 4.5" + +CVE_STATUS[CVE-2016-3955] = "fixed-version: Fixed from version 4.6rc3" + +CVE_STATUS[CVE-2016-3961] = "fixed-version: Fixed from version 4.6rc5" + +CVE_STATUS[CVE-2016-4440] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2016-4470] = "fixed-version: Fixed from version 4.7rc4" + +CVE_STATUS[CVE-2016-4482] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2016-4485] = "fixed-version: Fixed from version 4.6" + +CVE_STATUS[CVE-2016-4486] = "fixed-version: Fixed from version 4.6" + +CVE_STATUS[CVE-2016-4557] = "fixed-version: Fixed from version 4.6rc6" + +CVE_STATUS[CVE-2016-4558] = "fixed-version: Fixed from version 4.6rc7" + +CVE_STATUS[CVE-2016-4565] = "fixed-version: Fixed from version 4.6rc6" + +CVE_STATUS[CVE-2016-4568] = "fixed-version: Fixed from version 4.6rc6" + +CVE_STATUS[CVE-2016-4569] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2016-4578] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2016-4580] = "fixed-version: Fixed from version 4.6" + +CVE_STATUS[CVE-2016-4581] = "fixed-version: Fixed from version 4.6rc7" + +CVE_STATUS[CVE-2016-4794] = "fixed-version: Fixed from version 4.7rc4" + +CVE_STATUS[CVE-2016-4805] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-4913] = "fixed-version: Fixed from version 4.6" + +CVE_STATUS[CVE-2016-4951] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2016-4997] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2016-4998] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2016-5195] = "fixed-version: Fixed from version 4.9rc2" + +CVE_STATUS[CVE-2016-5243] = "fixed-version: Fixed from version 4.7rc3" + +CVE_STATUS[CVE-2016-5244] = "fixed-version: Fixed from version 4.7rc3" + +# Skipping CVE-2016-5340, no affected_versions + +# Skipping CVE-2016-5342, no affected_versions + +# Skipping CVE-2016-5343, no affected_versions + +# Skipping CVE-2016-5344, no affected_versions + +CVE_STATUS[CVE-2016-5400] = "fixed-version: Fixed from version 4.7" + +CVE_STATUS[CVE-2016-5412] = "fixed-version: Fixed from version 4.8rc1" + +CVE_STATUS[CVE-2016-5696] = "fixed-version: Fixed from version 4.7" + +CVE_STATUS[CVE-2016-5728] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2016-5828] = "fixed-version: Fixed from version 4.7rc6" + +CVE_STATUS[CVE-2016-5829] = "fixed-version: Fixed from version 4.7rc5" + +# CVE-2016-5870 has no known resolution + +CVE_STATUS[CVE-2016-6130] = "fixed-version: Fixed from version 4.6rc6" + +CVE_STATUS[CVE-2016-6136] = "fixed-version: Fixed from version 4.8rc1" + +CVE_STATUS[CVE-2016-6156] = "fixed-version: Fixed from version 4.7rc7" + +CVE_STATUS[CVE-2016-6162] = "fixed-version: Fixed from version 4.7" + +CVE_STATUS[CVE-2016-6187] = "fixed-version: Fixed from version 4.7rc7" + +CVE_STATUS[CVE-2016-6197] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-6198] = "fixed-version: Fixed from version 4.6" + +CVE_STATUS[CVE-2016-6213] = "fixed-version: Fixed from version 4.9rc1" + +CVE_STATUS[CVE-2016-6327] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-6480] = "fixed-version: Fixed from version 4.8rc3" + +CVE_STATUS[CVE-2016-6516] = "fixed-version: Fixed from version 4.8rc1" + +# Skipping CVE-2016-6753, no affected_versions + +CVE_STATUS[CVE-2016-6786] = "fixed-version: Fixed from version 4.0rc1" + +CVE_STATUS[CVE-2016-6787] = "fixed-version: Fixed from version 4.0rc1" + +CVE_STATUS[CVE-2016-6828] = "fixed-version: Fixed from version 4.8rc5" + +CVE_STATUS[CVE-2016-7039] = "fixed-version: Fixed from version 4.9rc4" + +CVE_STATUS[CVE-2016-7042] = "fixed-version: Fixed from version 4.9rc3" + +CVE_STATUS[CVE-2016-7097] = "fixed-version: Fixed from version 4.9rc1" + +CVE_STATUS[CVE-2016-7117] = "fixed-version: Fixed from version 4.6rc1" + +# Skipping CVE-2016-7118, no affected_versions + +CVE_STATUS[CVE-2016-7425] = "fixed-version: Fixed from version 4.9rc1" + +CVE_STATUS[CVE-2016-7910] = "fixed-version: Fixed from version 4.8rc1" + +CVE_STATUS[CVE-2016-7911] = "fixed-version: Fixed from version 4.7rc7" + +CVE_STATUS[CVE-2016-7912] = "fixed-version: Fixed from version 4.6rc5" + +CVE_STATUS[CVE-2016-7913] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-7914] = "fixed-version: Fixed from version 4.6rc4" + +CVE_STATUS[CVE-2016-7915] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-7916] = "fixed-version: Fixed from version 4.6rc7" + +CVE_STATUS[CVE-2016-7917] = "fixed-version: Fixed from version 4.5rc6" + +CVE_STATUS[CVE-2016-8399] = "fixed-version: Fixed from version 4.9" + +# Skipping CVE-2016-8401, no affected_versions + +# Skipping CVE-2016-8402, no affected_versions + +# Skipping CVE-2016-8403, no affected_versions + +# Skipping CVE-2016-8404, no affected_versions + +CVE_STATUS[CVE-2016-8405] = "fixed-version: Fixed from version 4.10rc6" + +# Skipping CVE-2016-8406, no affected_versions + +# Skipping CVE-2016-8407, no affected_versions + +CVE_STATUS[CVE-2016-8630] = "fixed-version: Fixed from version 4.9rc4" + +CVE_STATUS[CVE-2016-8632] = "fixed-version: Fixed from version 4.9rc8" + +CVE_STATUS[CVE-2016-8633] = "fixed-version: Fixed from version 4.9rc4" + +CVE_STATUS[CVE-2016-8636] = "fixed-version: Fixed from version 4.10rc8" + +CVE_STATUS[CVE-2016-8645] = "fixed-version: Fixed from version 4.9rc6" + +CVE_STATUS[CVE-2016-8646] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2016-8650] = "fixed-version: Fixed from version 4.9rc7" + +CVE_STATUS[CVE-2016-8655] = "fixed-version: Fixed from version 4.9rc8" + +CVE_STATUS[CVE-2016-8658] = "fixed-version: Fixed from version 4.8rc7" + +# CVE-2016-8660 has no known resolution + +CVE_STATUS[CVE-2016-8666] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-9083] = "fixed-version: Fixed from version 4.9rc4" + +CVE_STATUS[CVE-2016-9084] = "fixed-version: Fixed from version 4.9rc4" + +CVE_STATUS[CVE-2016-9120] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-9178] = "fixed-version: Fixed from version 4.8rc7" + +CVE_STATUS[CVE-2016-9191] = "fixed-version: Fixed from version 4.10rc4" + +CVE_STATUS[CVE-2016-9313] = "fixed-version: Fixed from version 4.9rc3" + +CVE_STATUS[CVE-2016-9555] = "fixed-version: Fixed from version 4.9rc4" + +CVE_STATUS[CVE-2016-9576] = "fixed-version: Fixed from version 4.9" + +CVE_STATUS[CVE-2016-9588] = "fixed-version: Fixed from version 4.10rc1" + +CVE_STATUS[CVE-2016-9604] = "fixed-version: Fixed from version 4.11rc8" + +# Skipping CVE-2016-9644, no affected_versions + +CVE_STATUS[CVE-2016-9685] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2016-9754] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2016-9755] = "fixed-version: Fixed from version 4.9rc8" + +CVE_STATUS[CVE-2016-9756] = "fixed-version: Fixed from version 4.9rc7" + +CVE_STATUS[CVE-2016-9777] = "fixed-version: Fixed from version 4.9rc7" + +CVE_STATUS[CVE-2016-9793] = "fixed-version: Fixed from version 4.9rc8" + +CVE_STATUS[CVE-2016-9794] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2016-9806] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2016-9919] = "fixed-version: Fixed from version 4.9rc8" + +# Skipping CVE-2017-0403, no affected_versions + +# Skipping CVE-2017-0404, no affected_versions + +# Skipping CVE-2017-0426, no affected_versions + +# Skipping CVE-2017-0427, no affected_versions + +# CVE-2017-0507 has no known resolution + +# CVE-2017-0508 has no known resolution + +# Skipping CVE-2017-0510, no affected_versions + +# Skipping CVE-2017-0528, no affected_versions + +# Skipping CVE-2017-0537, no affected_versions + +# CVE-2017-0564 has no known resolution + +CVE_STATUS[CVE-2017-0605] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2017-0627] = "fixed-version: Fixed from version 4.14rc1" + +# CVE-2017-0630 has no known resolution + +# CVE-2017-0749 has no known resolution + +CVE_STATUS[CVE-2017-0750] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2017-0786] = "fixed-version: Fixed from version 4.14rc4" + +CVE_STATUS[CVE-2017-0861] = "fixed-version: Fixed from version 4.15rc3" + +CVE_STATUS[CVE-2017-1000] = "fixed-version: Fixed from version 4.13rc5" + +CVE_STATUS[CVE-2017-1000111] = "fixed-version: Fixed from version 4.13rc5" + +CVE_STATUS[CVE-2017-1000112] = "fixed-version: Fixed from version 4.13rc5" + +CVE_STATUS[CVE-2017-1000251] = "fixed-version: Fixed from version 4.14rc1" + +CVE_STATUS[CVE-2017-1000252] = "fixed-version: Fixed from version 4.14rc1" + +CVE_STATUS[CVE-2017-1000253] = "fixed-version: Fixed from version 4.1rc1" + +CVE_STATUS[CVE-2017-1000255] = "fixed-version: Fixed from version 4.14rc5" + +CVE_STATUS[CVE-2017-1000363] = "fixed-version: Fixed from version 4.12rc2" + +CVE_STATUS[CVE-2017-1000364] = "fixed-version: Fixed from version 4.12rc6" + +CVE_STATUS[CVE-2017-1000365] = "fixed-version: Fixed from version 4.12rc7" + +CVE_STATUS[CVE-2017-1000370] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-1000371] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-1000379] = "fixed-version: Fixed from version 4.12rc6" + +CVE_STATUS[CVE-2017-1000380] = "fixed-version: Fixed from version 4.12rc5" + +CVE_STATUS[CVE-2017-1000405] = "fixed-version: Fixed from version 4.15rc2" + +CVE_STATUS[CVE-2017-1000407] = "fixed-version: Fixed from version 4.15rc3" + +CVE_STATUS[CVE-2017-1000410] = "fixed-version: Fixed from version 4.15rc8" + +CVE_STATUS[CVE-2017-10661] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-10662] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2017-10663] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-10810] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2017-10911] = "fixed-version: Fixed from version 4.12rc7" + +CVE_STATUS[CVE-2017-11089] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-11176] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-11472] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2017-11473] = "fixed-version: Fixed from version 4.13rc2" + +CVE_STATUS[CVE-2017-11600] = "fixed-version: Fixed from version 4.13" + +CVE_STATUS[CVE-2017-12134] = "fixed-version: Fixed from version 4.13rc6" + +CVE_STATUS[CVE-2017-12146] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-12153] = "fixed-version: Fixed from version 4.14rc2" + +CVE_STATUS[CVE-2017-12154] = "fixed-version: Fixed from version 4.14rc1" + +CVE_STATUS[CVE-2017-12168] = "fixed-version: Fixed from version 4.9rc6" + +CVE_STATUS[CVE-2017-12188] = "fixed-version: Fixed from version 4.14rc5" + +CVE_STATUS[CVE-2017-12190] = "fixed-version: Fixed from version 4.14rc5" + +CVE_STATUS[CVE-2017-12192] = "fixed-version: Fixed from version 4.14rc3" + +CVE_STATUS[CVE-2017-12193] = "fixed-version: Fixed from version 4.14rc7" + +CVE_STATUS[CVE-2017-12762] = "fixed-version: Fixed from version 4.13rc4" + +CVE_STATUS[CVE-2017-13080] = "fixed-version: Fixed from version 4.14rc6" + +CVE_STATUS[CVE-2017-13166] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2017-13167] = "fixed-version: Fixed from version 4.5rc4" + +CVE_STATUS[CVE-2017-13168] = "fixed-version: Fixed from version 4.18rc4" + +CVE_STATUS[CVE-2017-13215] = "fixed-version: Fixed from version 4.5rc1" + +CVE_STATUS[CVE-2017-13216] = "fixed-version: Fixed from version 4.15rc8" + +CVE_STATUS[CVE-2017-13220] = "fixed-version: Fixed from version 3.19rc3" + +# CVE-2017-13221 has no known resolution + +# CVE-2017-13222 has no known resolution + +CVE_STATUS[CVE-2017-13305] = "fixed-version: Fixed from version 4.12rc5" + +CVE_STATUS[CVE-2017-13686] = "fixed-version: Fixed from version 4.13rc7" + +# CVE-2017-13693 has no known resolution + +# CVE-2017-13694 has no known resolution + +CVE_STATUS[CVE-2017-13695] = "fixed-version: Fixed from version 4.17rc1" + +CVE_STATUS[CVE-2017-13715] = "fixed-version: Fixed from version 4.3rc1" + +CVE_STATUS[CVE-2017-14051] = "fixed-version: Fixed from version 4.14rc1" + +CVE_STATUS[CVE-2017-14106] = "fixed-version: Fixed from version 4.12rc3" + +CVE_STATUS[CVE-2017-14140] = "fixed-version: Fixed from version 4.13rc6" + +CVE_STATUS[CVE-2017-14156] = "fixed-version: Fixed from version 4.14rc1" + +CVE_STATUS[CVE-2017-14340] = "fixed-version: Fixed from version 4.14rc1" + +CVE_STATUS[CVE-2017-14489] = "fixed-version: Fixed from version 4.14rc3" + +CVE_STATUS[CVE-2017-14497] = "fixed-version: Fixed from version 4.13" + +CVE_STATUS[CVE-2017-14954] = "fixed-version: Fixed from version 4.14rc3" + +CVE_STATUS[CVE-2017-14991] = "fixed-version: Fixed from version 4.14rc2" + +CVE_STATUS[CVE-2017-15102] = "fixed-version: Fixed from version 4.9rc1" + +CVE_STATUS[CVE-2017-15115] = "fixed-version: Fixed from version 4.14rc6" + +CVE_STATUS[CVE-2017-15116] = "fixed-version: Fixed from version 4.2rc1" + +CVE_STATUS[CVE-2017-15121] = "fixed-version: Fixed from version 3.11rc1" + +CVE_STATUS[CVE-2017-15126] = "fixed-version: Fixed from version 4.14rc4" + +CVE_STATUS[CVE-2017-15127] = "fixed-version: Fixed from version 4.13rc5" + +CVE_STATUS[CVE-2017-15128] = "fixed-version: Fixed from version 4.14rc8" + +CVE_STATUS[CVE-2017-15129] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-15265] = "fixed-version: Fixed from version 4.14rc5" + +CVE_STATUS[CVE-2017-15274] = "fixed-version: Fixed from version 4.12rc5" + +CVE_STATUS[CVE-2017-15299] = "fixed-version: Fixed from version 4.14rc6" + +CVE_STATUS[CVE-2017-15306] = "fixed-version: Fixed from version 4.14rc7" + +CVE_STATUS[CVE-2017-15537] = "fixed-version: Fixed from version 4.14rc3" + +CVE_STATUS[CVE-2017-15649] = "fixed-version: Fixed from version 4.14rc4" + +CVE_STATUS[CVE-2017-15868] = "fixed-version: Fixed from version 3.19rc3" + +CVE_STATUS[CVE-2017-15951] = "fixed-version: Fixed from version 4.14rc6" + +CVE_STATUS[CVE-2017-16525] = "fixed-version: Fixed from version 4.14rc5" + +CVE_STATUS[CVE-2017-16526] = "fixed-version: Fixed from version 4.14rc4" + +CVE_STATUS[CVE-2017-16527] = "fixed-version: Fixed from version 4.14rc5" + +CVE_STATUS[CVE-2017-16528] = "fixed-version: Fixed from version 4.14rc1" + +CVE_STATUS[CVE-2017-16529] = "fixed-version: Fixed from version 4.14rc4" + +CVE_STATUS[CVE-2017-16530] = "fixed-version: Fixed from version 4.14rc4" + +CVE_STATUS[CVE-2017-16531] = "fixed-version: Fixed from version 4.14rc4" + +CVE_STATUS[CVE-2017-16532] = "fixed-version: Fixed from version 4.14rc5" + +CVE_STATUS[CVE-2017-16533] = "fixed-version: Fixed from version 4.14rc5" + +CVE_STATUS[CVE-2017-16534] = "fixed-version: Fixed from version 4.14rc4" + +CVE_STATUS[CVE-2017-16535] = "fixed-version: Fixed from version 4.14rc6" + +CVE_STATUS[CVE-2017-16536] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2017-16537] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2017-16538] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2017-16643] = "fixed-version: Fixed from version 4.14rc7" + +CVE_STATUS[CVE-2017-16644] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2017-16645] = "fixed-version: Fixed from version 4.14rc6" + +CVE_STATUS[CVE-2017-16646] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2017-16647] = "fixed-version: Fixed from version 4.14" + +CVE_STATUS[CVE-2017-16648] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2017-16649] = "fixed-version: Fixed from version 4.14" + +CVE_STATUS[CVE-2017-16650] = "fixed-version: Fixed from version 4.14" + +CVE_STATUS[CVE-2017-16911] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-16912] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-16913] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-16914] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-16939] = "fixed-version: Fixed from version 4.14rc7" + +CVE_STATUS[CVE-2017-16994] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2017-16995] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-16996] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-17052] = "fixed-version: Fixed from version 4.13rc7" + +CVE_STATUS[CVE-2017-17053] = "fixed-version: Fixed from version 4.13rc7" + +CVE_STATUS[CVE-2017-17448] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-17449] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-17450] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-17558] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-17712] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-17741] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-17805] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-17806] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-17807] = "fixed-version: Fixed from version 4.15rc3" + +CVE_STATUS[CVE-2017-17852] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-17853] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-17854] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-17855] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-17856] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-17857] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-17862] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2017-17863] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-17864] = "fixed-version: Fixed from version 4.15rc5" + +CVE_STATUS[CVE-2017-17975] = "fixed-version: Fixed from version 4.17rc1" + +CVE_STATUS[CVE-2017-18017] = "fixed-version: Fixed from version 4.11rc7" + +CVE_STATUS[CVE-2017-18075] = "fixed-version: Fixed from version 4.15rc7" + +CVE_STATUS[CVE-2017-18079] = "fixed-version: Fixed from version 4.13rc1" + +# CVE-2017-18169 has no known resolution + +CVE_STATUS[CVE-2017-18174] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2017-18193] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-18200] = "fixed-version: Fixed from version 4.14rc5" + +CVE_STATUS[CVE-2017-18202] = "fixed-version: Fixed from version 4.15rc2" + +CVE_STATUS[CVE-2017-18203] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2017-18204] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2017-18208] = "fixed-version: Fixed from version 4.15rc2" + +CVE_STATUS[CVE-2017-18216] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2017-18218] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-18221] = "fixed-version: Fixed from version 4.12rc4" + +CVE_STATUS[CVE-2017-18222] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2017-18224] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2017-18232] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2017-18241] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-18249] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2017-18255] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-18257] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-18261] = "fixed-version: Fixed from version 4.13rc6" + +CVE_STATUS[CVE-2017-18270] = "fixed-version: Fixed from version 4.14rc3" + +CVE_STATUS[CVE-2017-18344] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2017-18360] = "fixed-version: Fixed from version 4.12rc2" + +CVE_STATUS[CVE-2017-18379] = "fixed-version: Fixed from version 4.14rc3" + +CVE_STATUS[CVE-2017-18509] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-18549] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-18550] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-18551] = "fixed-version: Fixed from version 4.15rc9" + +CVE_STATUS[CVE-2017-18552] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-18595] = "fixed-version: Fixed from version 4.15rc6" + +CVE_STATUS[CVE-2017-2583] = "fixed-version: Fixed from version 4.10rc4" + +CVE_STATUS[CVE-2017-2584] = "fixed-version: Fixed from version 4.10rc4" + +CVE_STATUS[CVE-2017-2596] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-2618] = "fixed-version: Fixed from version 4.10rc8" + +CVE_STATUS[CVE-2017-2634] = "fixed-version: Fixed from version 2.6.25rc1" + +CVE_STATUS[CVE-2017-2636] = "fixed-version: Fixed from version 4.11rc2" + +CVE_STATUS[CVE-2017-2647] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2017-2671] = "fixed-version: Fixed from version 4.11rc6" + +CVE_STATUS[CVE-2017-5123] = "fixed-version: Fixed from version 4.14rc5" + +CVE_STATUS[CVE-2017-5546] = "fixed-version: Fixed from version 4.10rc4" + +CVE_STATUS[CVE-2017-5547] = "fixed-version: Fixed from version 4.10rc5" + +CVE_STATUS[CVE-2017-5548] = "fixed-version: Fixed from version 4.10rc5" + +CVE_STATUS[CVE-2017-5549] = "fixed-version: Fixed from version 4.10rc4" + +CVE_STATUS[CVE-2017-5550] = "fixed-version: Fixed from version 4.10rc4" + +CVE_STATUS[CVE-2017-5551] = "fixed-version: Fixed from version 4.10rc4" + +CVE_STATUS[CVE-2017-5576] = "fixed-version: Fixed from version 4.10rc6" + +CVE_STATUS[CVE-2017-5577] = "fixed-version: Fixed from version 4.10rc6" + +CVE_STATUS[CVE-2017-5669] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-5715] = "fixed-version: Fixed from version 4.15rc8" + +CVE_STATUS[CVE-2017-5753] = "fixed-version: Fixed from version 4.15rc8" + +CVE_STATUS[CVE-2017-5754] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2017-5897] = "fixed-version: Fixed from version 4.10rc8" + +CVE_STATUS[CVE-2017-5967] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-5970] = "fixed-version: Fixed from version 4.10rc8" + +CVE_STATUS[CVE-2017-5972] = "fixed-version: Fixed from version 4.4rc1" + +CVE_STATUS[CVE-2017-5986] = "fixed-version: Fixed from version 4.10rc8" + +CVE_STATUS[CVE-2017-6001] = "fixed-version: Fixed from version 4.10rc4" + +CVE_STATUS[CVE-2017-6074] = "fixed-version: Fixed from version 4.10" + +CVE_STATUS[CVE-2017-6214] = "fixed-version: Fixed from version 4.10rc8" + +CVE_STATUS[CVE-2017-6345] = "fixed-version: Fixed from version 4.10" + +CVE_STATUS[CVE-2017-6346] = "fixed-version: Fixed from version 4.10" + +CVE_STATUS[CVE-2017-6347] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-6348] = "fixed-version: Fixed from version 4.10" + +CVE_STATUS[CVE-2017-6353] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-6874] = "fixed-version: Fixed from version 4.11rc2" + +CVE_STATUS[CVE-2017-6951] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2017-7184] = "fixed-version: Fixed from version 4.11rc5" + +CVE_STATUS[CVE-2017-7187] = "fixed-version: Fixed from version 4.11rc5" + +CVE_STATUS[CVE-2017-7261] = "fixed-version: Fixed from version 4.11rc6" + +CVE_STATUS[CVE-2017-7273] = "fixed-version: Fixed from version 4.10rc4" + +CVE_STATUS[CVE-2017-7277] = "fixed-version: Fixed from version 4.11rc4" + +CVE_STATUS[CVE-2017-7294] = "fixed-version: Fixed from version 4.11rc6" + +CVE_STATUS[CVE-2017-7308] = "fixed-version: Fixed from version 4.11rc6" + +CVE_STATUS[CVE-2017-7346] = "fixed-version: Fixed from version 4.12rc5" + +# CVE-2017-7369 has no known resolution + +CVE_STATUS[CVE-2017-7374] = "fixed-version: Fixed from version 4.11rc4" + +CVE_STATUS[CVE-2017-7472] = "fixed-version: Fixed from version 4.11rc8" + +CVE_STATUS[CVE-2017-7477] = "fixed-version: Fixed from version 4.11" + +CVE_STATUS[CVE-2017-7482] = "fixed-version: Fixed from version 4.12rc7" + +CVE_STATUS[CVE-2017-7487] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2017-7495] = "fixed-version: Fixed from version 4.7rc1" + +CVE_STATUS[CVE-2017-7518] = "fixed-version: Fixed from version 4.12rc7" + +CVE_STATUS[CVE-2017-7533] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-7541] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-7542] = "fixed-version: Fixed from version 4.13rc2" + +CVE_STATUS[CVE-2017-7558] = "fixed-version: Fixed from version 4.13" + +CVE_STATUS[CVE-2017-7616] = "fixed-version: Fixed from version 4.11rc6" + +CVE_STATUS[CVE-2017-7618] = "fixed-version: Fixed from version 4.11rc8" + +CVE_STATUS[CVE-2017-7645] = "fixed-version: Fixed from version 4.11" + +CVE_STATUS[CVE-2017-7889] = "fixed-version: Fixed from version 4.11rc7" + +CVE_STATUS[CVE-2017-7895] = "fixed-version: Fixed from version 4.11" + +CVE_STATUS[CVE-2017-7979] = "fixed-version: Fixed from version 4.11rc8" + +CVE_STATUS[CVE-2017-8061] = "fixed-version: Fixed from version 4.11rc4" + +CVE_STATUS[CVE-2017-8062] = "fixed-version: Fixed from version 4.11rc2" + +CVE_STATUS[CVE-2017-8063] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-8064] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-8065] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-8066] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-8067] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2017-8068] = "fixed-version: Fixed from version 4.10rc8" + +CVE_STATUS[CVE-2017-8069] = "fixed-version: Fixed from version 4.10rc8" + +CVE_STATUS[CVE-2017-8070] = "fixed-version: Fixed from version 4.10rc8" + +CVE_STATUS[CVE-2017-8071] = "fixed-version: Fixed from version 4.10rc7" + +CVE_STATUS[CVE-2017-8072] = "fixed-version: Fixed from version 4.10rc7" + +CVE_STATUS[CVE-2017-8106] = "fixed-version: Fixed from version 3.16rc1" + +CVE_STATUS[CVE-2017-8240] = "fixed-version: Fixed from version 3.19rc6" + +# CVE-2017-8242 has no known resolution + +# CVE-2017-8244 has no known resolution + +# CVE-2017-8245 has no known resolution + +# CVE-2017-8246 has no known resolution + +CVE_STATUS[CVE-2017-8797] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2017-8824] = "fixed-version: Fixed from version 4.15rc3" + +CVE_STATUS[CVE-2017-8831] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-8890] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2017-8924] = "fixed-version: Fixed from version 4.11rc2" + +CVE_STATUS[CVE-2017-8925] = "fixed-version: Fixed from version 4.11rc2" + +CVE_STATUS[CVE-2017-9059] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2017-9074] = "fixed-version: Fixed from version 4.12rc2" + +CVE_STATUS[CVE-2017-9075] = "fixed-version: Fixed from version 4.12rc2" + +CVE_STATUS[CVE-2017-9076] = "fixed-version: Fixed from version 4.12rc2" + +CVE_STATUS[CVE-2017-9077] = "fixed-version: Fixed from version 4.12rc2" + +CVE_STATUS[CVE-2017-9150] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2017-9211] = "fixed-version: Fixed from version 4.12rc3" + +CVE_STATUS[CVE-2017-9242] = "fixed-version: Fixed from version 4.12rc3" + +CVE_STATUS[CVE-2017-9605] = "fixed-version: Fixed from version 4.12rc5" + +CVE_STATUS[CVE-2017-9725] = "fixed-version: Fixed from version 4.3rc7" + +CVE_STATUS[CVE-2017-9984] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-9985] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2017-9986] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2018-1000004] = "fixed-version: Fixed from version 4.15rc9" + +CVE_STATUS[CVE-2018-1000026] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2018-1000028] = "fixed-version: Fixed from version 4.15" + +CVE_STATUS[CVE-2018-1000199] = "fixed-version: Fixed from version 4.16" + +CVE_STATUS[CVE-2018-1000200] = "fixed-version: Fixed from version 4.17rc5" + +CVE_STATUS[CVE-2018-1000204] = "fixed-version: Fixed from version 4.17rc7" + +CVE_STATUS[CVE-2018-10021] = "fixed-version: Fixed from version 4.16rc7" + +CVE_STATUS[CVE-2018-10074] = "fixed-version: Fixed from version 4.16rc7" + +CVE_STATUS[CVE-2018-10087] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2018-10124] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2018-10322] = "fixed-version: Fixed from version 4.17rc4" + +CVE_STATUS[CVE-2018-10323] = "fixed-version: Fixed from version 4.17rc4" + +CVE_STATUS[CVE-2018-1065] = "fixed-version: Fixed from version 4.16rc3" + +CVE_STATUS[CVE-2018-1066] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2018-10675] = "fixed-version: Fixed from version 4.13rc6" + +CVE_STATUS[CVE-2018-1068] = "fixed-version: Fixed from version 4.16rc5" + +CVE_STATUS[CVE-2018-10840] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-10853] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-1087] = "fixed-version: Fixed from version 4.16rc7" + +# CVE-2018-10872 has no known resolution + +CVE_STATUS[CVE-2018-10876] = "fixed-version: Fixed from version 4.18rc4" + +CVE_STATUS[CVE-2018-10877] = "fixed-version: Fixed from version 4.18rc4" + +CVE_STATUS[CVE-2018-10878] = "fixed-version: Fixed from version 4.18rc4" + +CVE_STATUS[CVE-2018-10879] = "fixed-version: Fixed from version 4.18rc4" + +CVE_STATUS[CVE-2018-10880] = "fixed-version: Fixed from version 4.18rc4" + +CVE_STATUS[CVE-2018-10881] = "fixed-version: Fixed from version 4.18rc4" + +CVE_STATUS[CVE-2018-10882] = "fixed-version: Fixed from version 4.18rc4" + +CVE_STATUS[CVE-2018-10883] = "fixed-version: Fixed from version 4.18rc4" + +CVE_STATUS[CVE-2018-10901] = "fixed-version: Fixed from version 2.6.36rc1" + +CVE_STATUS[CVE-2018-10902] = "fixed-version: Fixed from version 4.18rc6" + +CVE_STATUS[CVE-2018-1091] = "fixed-version: Fixed from version 4.14rc2" + +CVE_STATUS[CVE-2018-1092] = "fixed-version: Fixed from version 4.17rc1" + +CVE_STATUS[CVE-2018-1093] = "fixed-version: Fixed from version 4.17rc1" + +CVE_STATUS[CVE-2018-10938] = "fixed-version: Fixed from version 4.13rc5" + +CVE_STATUS[CVE-2018-1094] = "fixed-version: Fixed from version 4.17rc1" + +CVE_STATUS[CVE-2018-10940] = "fixed-version: Fixed from version 4.17rc3" + +CVE_STATUS[CVE-2018-1095] = "fixed-version: Fixed from version 4.17rc1" + +CVE_STATUS[CVE-2018-1108] = "fixed-version: Fixed from version 4.17rc2" + +CVE_STATUS[CVE-2018-1118] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-1120] = "fixed-version: Fixed from version 4.17rc6" + +# CVE-2018-1121 has no known resolution + +CVE_STATUS[CVE-2018-11232] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2018-1128] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-1129] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-1130] = "fixed-version: Fixed from version 4.16rc7" + +CVE_STATUS[CVE-2018-11412] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-11506] = "fixed-version: Fixed from version 4.17rc7" + +CVE_STATUS[CVE-2018-11508] = "fixed-version: Fixed from version 4.17rc5" + +# CVE-2018-11987 has no known resolution + +CVE_STATUS[CVE-2018-12126] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2018-12127] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2018-12130] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2018-12207] = "fixed-version: Fixed from version 5.4rc2" + +CVE_STATUS[CVE-2018-12232] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-12233] = "fixed-version: Fixed from version 4.18rc2" + +CVE_STATUS[CVE-2018-12633] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-12714] = "fixed-version: Fixed from version 4.18rc2" + +CVE_STATUS[CVE-2018-12896] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-12904] = "fixed-version: Fixed from version 4.18rc1" + +# CVE-2018-12928 has no known resolution + +# CVE-2018-12929 has no known resolution + +# CVE-2018-12930 has no known resolution + +# CVE-2018-12931 has no known resolution + +CVE_STATUS[CVE-2018-13053] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-13093] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-13094] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-13095] = "fixed-version: Fixed from version 4.18rc3" + +CVE_STATUS[CVE-2018-13096] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-13097] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-13098] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-13099] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-13100] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-13405] = "fixed-version: Fixed from version 4.18rc4" + +CVE_STATUS[CVE-2018-13406] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-14609] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-14610] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-14611] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-14612] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-14613] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-14614] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-14615] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-14616] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-14617] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-14619] = "fixed-version: Fixed from version 4.15rc4" + +CVE_STATUS[CVE-2018-14625] = "fixed-version: Fixed from version 4.20rc6" + +CVE_STATUS[CVE-2018-14633] = "fixed-version: Fixed from version 4.19rc6" + +CVE_STATUS[CVE-2018-14634] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2018-14641] = "fixed-version: Fixed from version 4.19rc4" + +CVE_STATUS[CVE-2018-14646] = "fixed-version: Fixed from version 4.15rc8" + +CVE_STATUS[CVE-2018-14656] = "fixed-version: Fixed from version 4.19rc2" + +CVE_STATUS[CVE-2018-14678] = "fixed-version: Fixed from version 4.18rc8" + +CVE_STATUS[CVE-2018-14734] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-15471] = "fixed-version: Fixed from version 4.19rc7" + +CVE_STATUS[CVE-2018-15572] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-15594] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-16276] = "fixed-version: Fixed from version 4.18rc5" + +CVE_STATUS[CVE-2018-16597] = "fixed-version: Fixed from version 4.8rc1" + +CVE_STATUS[CVE-2018-16658] = "fixed-version: Fixed from version 4.19rc2" + +CVE_STATUS[CVE-2018-16862] = "fixed-version: Fixed from version 4.20rc5" + +CVE_STATUS[CVE-2018-16871] = "fixed-version: Fixed from version 4.20rc3" + +CVE_STATUS[CVE-2018-16880] = "fixed-version: Fixed from version 5.0rc5" + +CVE_STATUS[CVE-2018-16882] = "fixed-version: Fixed from version 4.20" + +CVE_STATUS[CVE-2018-16884] = "fixed-version: Fixed from version 5.0rc1" + +# CVE-2018-16885 has no known resolution + +CVE_STATUS[CVE-2018-17182] = "fixed-version: Fixed from version 4.19rc4" + +CVE_STATUS[CVE-2018-17972] = "fixed-version: Fixed from version 4.19rc7" + +# CVE-2018-17977 has no known resolution + +CVE_STATUS[CVE-2018-18021] = "fixed-version: Fixed from version 4.19rc7" + +CVE_STATUS[CVE-2018-18281] = "fixed-version: Fixed from version 4.19" + +CVE_STATUS[CVE-2018-18386] = "fixed-version: Fixed from version 4.15rc6" + +CVE_STATUS[CVE-2018-18397] = "fixed-version: Fixed from version 4.20rc5" + +CVE_STATUS[CVE-2018-18445] = "fixed-version: Fixed from version 4.19rc7" + +CVE_STATUS[CVE-2018-18559] = "fixed-version: Fixed from version 4.15rc2" + +# CVE-2018-18653 has no known resolution + +CVE_STATUS[CVE-2018-18690] = "fixed-version: Fixed from version 4.17rc4" + +CVE_STATUS[CVE-2018-18710] = "fixed-version: Fixed from version 4.20rc1" + +CVE_STATUS[CVE-2018-18955] = "fixed-version: Fixed from version 4.20rc2" + +CVE_STATUS[CVE-2018-19406] = "fixed-version: Fixed from version 4.20rc5" + +CVE_STATUS[CVE-2018-19407] = "fixed-version: Fixed from version 4.20rc5" + +CVE_STATUS[CVE-2018-19824] = "fixed-version: Fixed from version 4.20rc6" + +CVE_STATUS[CVE-2018-19854] = "fixed-version: Fixed from version 4.20rc3" + +CVE_STATUS[CVE-2018-19985] = "fixed-version: Fixed from version 4.20" + +CVE_STATUS[CVE-2018-20169] = "fixed-version: Fixed from version 4.20rc6" + +CVE_STATUS[CVE-2018-20449] = "fixed-version: Fixed from version 4.15rc2" + +CVE_STATUS[CVE-2018-20509] = "fixed-version: Fixed from version 4.14rc1" + +CVE_STATUS[CVE-2018-20510] = "fixed-version: Fixed from version 4.16rc3" + +CVE_STATUS[CVE-2018-20511] = "fixed-version: Fixed from version 4.19rc5" + +CVE_STATUS[CVE-2018-20669] = "fixed-version: Fixed from version 5.0rc1" + +CVE_STATUS[CVE-2018-20784] = "fixed-version: Fixed from version 5.0rc1" + +CVE_STATUS[CVE-2018-20836] = "fixed-version: Fixed from version 4.20rc1" + +CVE_STATUS[CVE-2018-20854] = "fixed-version: Fixed from version 4.20rc1" + +CVE_STATUS[CVE-2018-20855] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-20856] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-20961] = "fixed-version: Fixed from version 4.17rc1" + +CVE_STATUS[CVE-2018-20976] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-21008] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2018-25015] = "fixed-version: Fixed from version 4.15rc9" + +CVE_STATUS[CVE-2018-25020] = "fixed-version: Fixed from version 4.17rc7" + +# CVE-2018-3574 has no known resolution + +CVE_STATUS[CVE-2018-3620] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-3639] = "fixed-version: Fixed from version 4.17rc7" + +CVE_STATUS[CVE-2018-3646] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-3665] = "fixed-version: Fixed from version 3.7rc1" + +CVE_STATUS[CVE-2018-3693] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-5332] = "fixed-version: Fixed from version 4.15rc8" + +CVE_STATUS[CVE-2018-5333] = "fixed-version: Fixed from version 4.15rc8" + +CVE_STATUS[CVE-2018-5344] = "fixed-version: Fixed from version 4.15rc8" + +CVE_STATUS[CVE-2018-5390] = "fixed-version: Fixed from version 4.18rc7" + +CVE_STATUS[CVE-2018-5391] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-5703] = "fixed-version: Fixed from version 4.16rc5" + +CVE_STATUS[CVE-2018-5750] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2018-5803] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2018-5814] = "fixed-version: Fixed from version 4.17rc6" + +CVE_STATUS[CVE-2018-5848] = "fixed-version: Fixed from version 4.16rc1" + +# Skipping CVE-2018-5856, no affected_versions + +CVE_STATUS[CVE-2018-5873] = "fixed-version: Fixed from version 4.11rc8" + +CVE_STATUS[CVE-2018-5953] = "fixed-version: Fixed from version 4.15rc2" + +CVE_STATUS[CVE-2018-5995] = "fixed-version: Fixed from version 4.15rc2" + +CVE_STATUS[CVE-2018-6412] = "fixed-version: Fixed from version 4.16rc5" + +CVE_STATUS[CVE-2018-6554] = "fixed-version: Fixed from version 4.17rc1" + +CVE_STATUS[CVE-2018-6555] = "fixed-version: Fixed from version 4.17rc1" + +# CVE-2018-6559 has no known resolution + +CVE_STATUS[CVE-2018-6927] = "fixed-version: Fixed from version 4.15rc9" + +CVE_STATUS[CVE-2018-7191] = "fixed-version: Fixed from version 4.14rc6" + +CVE_STATUS[CVE-2018-7273] = "fixed-version: Fixed from version 4.15rc2" + +CVE_STATUS[CVE-2018-7480] = "fixed-version: Fixed from version 4.11rc1" + +CVE_STATUS[CVE-2018-7492] = "fixed-version: Fixed from version 4.15rc3" + +CVE_STATUS[CVE-2018-7566] = "fixed-version: Fixed from version 4.16rc2" + +CVE_STATUS[CVE-2018-7740] = "fixed-version: Fixed from version 4.16rc7" + +CVE_STATUS[CVE-2018-7754] = "fixed-version: Fixed from version 4.15rc2" + +CVE_STATUS[CVE-2018-7755] = "fixed-version: Fixed from version 4.19rc5" + +CVE_STATUS[CVE-2018-7757] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2018-7995] = "fixed-version: Fixed from version 4.16rc5" + +CVE_STATUS[CVE-2018-8043] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2018-8087] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2018-8781] = "fixed-version: Fixed from version 4.16rc7" + +CVE_STATUS[CVE-2018-8822] = "fixed-version: Fixed from version 4.16rc7" + +CVE_STATUS[CVE-2018-8897] = "fixed-version: Fixed from version 4.16rc7" + +CVE_STATUS[CVE-2018-9363] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2018-9385] = "fixed-version: Fixed from version 4.17rc3" + +CVE_STATUS[CVE-2018-9415] = "fixed-version: Fixed from version 4.17rc3" + +CVE_STATUS[CVE-2018-9422] = "fixed-version: Fixed from version 4.6rc1" + +CVE_STATUS[CVE-2018-9465] = "fixed-version: Fixed from version 4.15rc6" + +CVE_STATUS[CVE-2018-9516] = "fixed-version: Fixed from version 4.18rc5" + +CVE_STATUS[CVE-2018-9517] = "fixed-version: Fixed from version 4.14rc1" + +CVE_STATUS[CVE-2018-9518] = "fixed-version: Fixed from version 4.16rc3" + +CVE_STATUS[CVE-2018-9568] = "fixed-version: Fixed from version 4.14rc4" + +CVE_STATUS[CVE-2019-0136] = "fixed-version: Fixed from version 5.2rc6" + +CVE_STATUS[CVE-2019-0145] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-0146] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-0147] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-0148] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-0149] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-0154] = "fixed-version: Fixed from version 5.4rc8" + +CVE_STATUS[CVE-2019-0155] = "fixed-version: Fixed from version 5.4rc8" + +CVE_STATUS[CVE-2019-10124] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-10125] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-10126] = "fixed-version: Fixed from version 5.2rc6" + +# CVE-2019-10140 has no known resolution + +CVE_STATUS[CVE-2019-10142] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-10207] = "fixed-version: Fixed from version 5.3rc3" + +CVE_STATUS[CVE-2019-10220] = "fixed-version: Fixed from version 5.4rc2" + +CVE_STATUS[CVE-2019-10638] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-10639] = "fixed-version: Fixed from version 5.1rc4" + +CVE_STATUS[CVE-2019-11085] = "fixed-version: Fixed from version 5.0rc3" + +CVE_STATUS[CVE-2019-11091] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-11135] = "fixed-version: Fixed from version 5.4rc8" + +CVE_STATUS[CVE-2019-11190] = "fixed-version: Fixed from version 4.8rc5" + +CVE_STATUS[CVE-2019-11191] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-1125] = "fixed-version: Fixed from version 5.3rc4" + +CVE_STATUS[CVE-2019-11477] = "fixed-version: Fixed from version 5.2rc6" + +CVE_STATUS[CVE-2019-11478] = "fixed-version: Fixed from version 5.2rc6" + +CVE_STATUS[CVE-2019-11479] = "fixed-version: Fixed from version 5.2rc6" + +CVE_STATUS[CVE-2019-11486] = "fixed-version: Fixed from version 5.1rc4" + +CVE_STATUS[CVE-2019-11487] = "fixed-version: Fixed from version 5.1rc5" + +CVE_STATUS[CVE-2019-11599] = "fixed-version: Fixed from version 5.1rc6" + +CVE_STATUS[CVE-2019-11683] = "fixed-version: Fixed from version 5.1" + +CVE_STATUS[CVE-2019-11810] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-11811] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-11815] = "fixed-version: Fixed from version 5.1rc4" + +CVE_STATUS[CVE-2019-11833] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-11884] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-12378] = "fixed-version: Fixed from version 5.2rc3" + +CVE_STATUS[CVE-2019-12379] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-12380] = "fixed-version: Fixed from version 5.2rc3" + +CVE_STATUS[CVE-2019-12381] = "fixed-version: Fixed from version 5.2rc3" + +CVE_STATUS[CVE-2019-12382] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-12454] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-12455] = "fixed-version: Fixed from version 5.3rc1" + +# CVE-2019-12456 has no known resolution + +CVE_STATUS[CVE-2019-12614] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-12615] = "fixed-version: Fixed from version 5.2rc4" + +CVE_STATUS[CVE-2019-12817] = "fixed-version: Fixed from version 5.2rc7" + +CVE_STATUS[CVE-2019-12818] = "fixed-version: Fixed from version 5.0" + +CVE_STATUS[CVE-2019-12819] = "fixed-version: Fixed from version 5.0rc8" + +CVE_STATUS[CVE-2019-12881] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2019-12984] = "fixed-version: Fixed from version 5.2rc6" + +CVE_STATUS[CVE-2019-13233] = "fixed-version: Fixed from version 5.2rc4" + +CVE_STATUS[CVE-2019-13272] = "fixed-version: Fixed from version 5.2" + +CVE_STATUS[CVE-2019-13631] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-13648] = "fixed-version: Fixed from version 5.3rc2" + +CVE_STATUS[CVE-2019-14283] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-14284] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-14615] = "fixed-version: Fixed from version 5.5rc7" + +CVE_STATUS[CVE-2019-14763] = "fixed-version: Fixed from version 4.17rc1" + +CVE_STATUS[CVE-2019-14814] = "fixed-version: Fixed from version 5.3" + +CVE_STATUS[CVE-2019-14815] = "fixed-version: Fixed from version 5.3" + +CVE_STATUS[CVE-2019-14816] = "fixed-version: Fixed from version 5.3" + +CVE_STATUS[CVE-2019-14821] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-14835] = "fixed-version: Fixed from version 5.3" + +CVE_STATUS[CVE-2019-14895] = "fixed-version: Fixed from version 5.5rc3" + +CVE_STATUS[CVE-2019-14896] = "fixed-version: Fixed from version 5.5" + +CVE_STATUS[CVE-2019-14897] = "fixed-version: Fixed from version 5.5" + +# CVE-2019-14898 has no known resolution + +CVE_STATUS[CVE-2019-14901] = "fixed-version: Fixed from version 5.5rc3" + +CVE_STATUS[CVE-2019-15030] = "fixed-version: Fixed from version 5.3rc8" + +CVE_STATUS[CVE-2019-15031] = "fixed-version: Fixed from version 5.3rc8" + +CVE_STATUS[CVE-2019-15090] = "fixed-version: Fixed from version 5.2rc2" + +CVE_STATUS[CVE-2019-15098] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-15099] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-15117] = "fixed-version: Fixed from version 5.3rc5" + +CVE_STATUS[CVE-2019-15118] = "fixed-version: Fixed from version 5.3rc5" + +CVE_STATUS[CVE-2019-15211] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-15212] = "fixed-version: Fixed from version 5.2rc3" + +CVE_STATUS[CVE-2019-15213] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-15214] = "fixed-version: Fixed from version 5.1rc6" + +CVE_STATUS[CVE-2019-15215] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-15216] = "fixed-version: Fixed from version 5.1" + +CVE_STATUS[CVE-2019-15217] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-15218] = "fixed-version: Fixed from version 5.2rc3" + +CVE_STATUS[CVE-2019-15219] = "fixed-version: Fixed from version 5.2rc3" + +CVE_STATUS[CVE-2019-15220] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-15221] = "fixed-version: Fixed from version 5.2" + +CVE_STATUS[CVE-2019-15222] = "fixed-version: Fixed from version 5.3rc3" + +CVE_STATUS[CVE-2019-15223] = "fixed-version: Fixed from version 5.2rc3" + +# CVE-2019-15239 has no known resolution + +# CVE-2019-15290 has no known resolution + +CVE_STATUS[CVE-2019-15291] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-15292] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-15504] = "fixed-version: Fixed from version 5.3" + +CVE_STATUS[CVE-2019-15505] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-15538] = "fixed-version: Fixed from version 5.3rc6" + +CVE_STATUS[CVE-2019-15666] = "fixed-version: Fixed from version 5.1" + +# CVE-2019-15791 has no known resolution + +# CVE-2019-15792 has no known resolution + +# CVE-2019-15793 has no known resolution + +CVE_STATUS[CVE-2019-15794] = "fixed-version: Fixed from version 5.12" + +CVE_STATUS[CVE-2019-15807] = "fixed-version: Fixed from version 5.2rc3" + +# CVE-2019-15902 has no known resolution + +CVE_STATUS[CVE-2019-15916] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-15917] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-15918] = "fixed-version: Fixed from version 5.1rc6" + +CVE_STATUS[CVE-2019-15919] = "fixed-version: Fixed from version 5.1rc6" + +CVE_STATUS[CVE-2019-15920] = "fixed-version: Fixed from version 5.1rc6" + +CVE_STATUS[CVE-2019-15921] = "fixed-version: Fixed from version 5.1rc3" + +CVE_STATUS[CVE-2019-15922] = "fixed-version: Fixed from version 5.1rc4" + +CVE_STATUS[CVE-2019-15923] = "fixed-version: Fixed from version 5.1rc4" + +CVE_STATUS[CVE-2019-15924] = "fixed-version: Fixed from version 5.1rc4" + +CVE_STATUS[CVE-2019-15925] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-15926] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-15927] = "fixed-version: Fixed from version 5.0rc2" + +# CVE-2019-16089 has no known resolution + +CVE_STATUS[CVE-2019-16229] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-16230] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-16231] = "fixed-version: Fixed from version 5.4rc6" + +CVE_STATUS[CVE-2019-16232] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-16233] = "fixed-version: Fixed from version 5.4rc5" + +CVE_STATUS[CVE-2019-16234] = "fixed-version: Fixed from version 5.4rc4" + +CVE_STATUS[CVE-2019-16413] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-16714] = "fixed-version: Fixed from version 5.3rc7" + +CVE_STATUS[CVE-2019-16746] = "fixed-version: Fixed from version 5.4rc2" + +CVE_STATUS[CVE-2019-16921] = "fixed-version: Fixed from version 4.17rc1" + +CVE_STATUS[CVE-2019-16994] = "fixed-version: Fixed from version 5.0" + +CVE_STATUS[CVE-2019-16995] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-17052] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-17053] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-17054] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-17055] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-17056] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-17075] = "fixed-version: Fixed from version 5.4rc3" + +CVE_STATUS[CVE-2019-17133] = "fixed-version: Fixed from version 5.4rc4" + +CVE_STATUS[CVE-2019-17351] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-17666] = "fixed-version: Fixed from version 5.4rc6" + +CVE_STATUS[CVE-2019-18198] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-18282] = "fixed-version: Fixed from version 5.4rc6" + +CVE_STATUS[CVE-2019-18660] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-18675] = "fixed-version: Fixed from version 4.17rc5" + +# CVE-2019-18680 has no known resolution + +CVE_STATUS[CVE-2019-18683] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-18786] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-18805] = "fixed-version: Fixed from version 5.1rc7" + +CVE_STATUS[CVE-2019-18806] = "fixed-version: Fixed from version 5.4rc2" + +CVE_STATUS[CVE-2019-18807] = "fixed-version: Fixed from version 5.4rc2" + +CVE_STATUS[CVE-2019-18808] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-18809] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-18810] = "fixed-version: Fixed from version 5.4rc2" + +CVE_STATUS[CVE-2019-18811] = "fixed-version: Fixed from version 5.4rc7" + +CVE_STATUS[CVE-2019-18812] = "fixed-version: Fixed from version 5.4rc7" + +CVE_STATUS[CVE-2019-18813] = "fixed-version: Fixed from version 5.4rc6" + +CVE_STATUS[CVE-2019-18814] = "fixed-version: Fixed from version 5.7rc7" + +CVE_STATUS[CVE-2019-18885] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-19036] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19037] = "fixed-version: Fixed from version 5.5rc3" + +CVE_STATUS[CVE-2019-19039] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2019-19043] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19044] = "fixed-version: Fixed from version 5.4rc6" + +CVE_STATUS[CVE-2019-19045] = "fixed-version: Fixed from version 5.4rc6" + +CVE_STATUS[CVE-2019-19046] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19047] = "fixed-version: Fixed from version 5.4rc6" + +CVE_STATUS[CVE-2019-19048] = "fixed-version: Fixed from version 5.4rc3" + +CVE_STATUS[CVE-2019-19049] = "fixed-version: Fixed from version 5.4rc5" + +CVE_STATUS[CVE-2019-19050] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19051] = "fixed-version: Fixed from version 5.4rc6" + +CVE_STATUS[CVE-2019-19052] = "fixed-version: Fixed from version 5.4rc7" + +CVE_STATUS[CVE-2019-19053] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19054] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19055] = "fixed-version: Fixed from version 5.4rc4" + +CVE_STATUS[CVE-2019-19056] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19057] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19058] = "fixed-version: Fixed from version 5.4rc4" + +CVE_STATUS[CVE-2019-19059] = "fixed-version: Fixed from version 5.4rc4" + +CVE_STATUS[CVE-2019-19060] = "fixed-version: Fixed from version 5.4rc3" + +CVE_STATUS[CVE-2019-19061] = "fixed-version: Fixed from version 5.4rc3" + +CVE_STATUS[CVE-2019-19062] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19063] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19064] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19065] = "fixed-version: Fixed from version 5.4rc3" + +CVE_STATUS[CVE-2019-19066] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19067] = "fixed-version: Fixed from version 5.4rc2" + +CVE_STATUS[CVE-2019-19068] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19069] = "fixed-version: Fixed from version 5.4rc3" + +CVE_STATUS[CVE-2019-19070] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19071] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19072] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19073] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19074] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19075] = "fixed-version: Fixed from version 5.4rc2" + +CVE_STATUS[CVE-2019-19076] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19077] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19078] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19079] = "fixed-version: Fixed from version 5.3" + +CVE_STATUS[CVE-2019-19080] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19081] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19082] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19083] = "fixed-version: Fixed from version 5.4rc2" + +CVE_STATUS[CVE-2019-19227] = "fixed-version: Fixed from version 5.1rc3" + +CVE_STATUS[CVE-2019-19241] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19252] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19318] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19319] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-19332] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19338] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19377] = "fixed-version: Fixed from version 5.7rc1" + +# CVE-2019-19378 has no known resolution + +CVE_STATUS[CVE-2019-19447] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19448] = "fixed-version: Fixed from version 5.9rc1" + +CVE_STATUS[CVE-2019-19449] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2019-19462] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2019-19523] = "fixed-version: Fixed from version 5.4rc3" + +CVE_STATUS[CVE-2019-19524] = "fixed-version: Fixed from version 5.4rc8" + +CVE_STATUS[CVE-2019-19525] = "fixed-version: Fixed from version 5.4rc2" + +CVE_STATUS[CVE-2019-19526] = "fixed-version: Fixed from version 5.4rc4" + +CVE_STATUS[CVE-2019-19527] = "fixed-version: Fixed from version 5.3rc4" + +CVE_STATUS[CVE-2019-19528] = "fixed-version: Fixed from version 5.4rc3" + +CVE_STATUS[CVE-2019-19529] = "fixed-version: Fixed from version 5.4rc7" + +CVE_STATUS[CVE-2019-19530] = "fixed-version: Fixed from version 5.3rc5" + +CVE_STATUS[CVE-2019-19531] = "fixed-version: Fixed from version 5.3rc4" + +CVE_STATUS[CVE-2019-19532] = "fixed-version: Fixed from version 5.4rc6" + +CVE_STATUS[CVE-2019-19533] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19534] = "fixed-version: Fixed from version 5.4rc7" + +CVE_STATUS[CVE-2019-19535] = "fixed-version: Fixed from version 5.3rc4" + +CVE_STATUS[CVE-2019-19536] = "fixed-version: Fixed from version 5.3rc4" + +CVE_STATUS[CVE-2019-19537] = "fixed-version: Fixed from version 5.3rc5" + +CVE_STATUS[CVE-2019-19543] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-19602] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19767] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2019-19768] = "fixed-version: Fixed from version 5.6rc4" + +CVE_STATUS[CVE-2019-19769] = "fixed-version: Fixed from version 5.6rc5" + +CVE_STATUS[CVE-2019-19770] = "fixed-version: Fixed from version 5.9rc1" + +CVE_STATUS[CVE-2019-19807] = "fixed-version: Fixed from version 5.4rc7" + +CVE_STATUS[CVE-2019-19813] = "fixed-version: Fixed from version 5.2rc1" + +# CVE-2019-19814 has no known resolution + +CVE_STATUS[CVE-2019-19815] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2019-19816] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-19922] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-19927] = "fixed-version: Fixed from version 5.1rc6" + +CVE_STATUS[CVE-2019-19947] = "fixed-version: Fixed from version 5.5rc3" + +CVE_STATUS[CVE-2019-19965] = "fixed-version: Fixed from version 5.5rc2" + +CVE_STATUS[CVE-2019-19966] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-1999] = "fixed-version: Fixed from version 5.1rc3" + +CVE_STATUS[CVE-2019-20054] = "fixed-version: Fixed from version 5.1rc3" + +CVE_STATUS[CVE-2019-20095] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-20096] = "fixed-version: Fixed from version 5.1rc4" + +CVE_STATUS[CVE-2019-2024] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2019-2025] = "fixed-version: Fixed from version 4.20rc5" + +CVE_STATUS[CVE-2019-20422] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-2054] = "fixed-version: Fixed from version 4.8rc1" + +CVE_STATUS[CVE-2019-20636] = "fixed-version: Fixed from version 5.5rc6" + +# CVE-2019-20794 has no known resolution + +CVE_STATUS[CVE-2019-20806] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-20810] = "fixed-version: Fixed from version 5.6rc1" + +CVE_STATUS[CVE-2019-20811] = "fixed-version: Fixed from version 5.1rc3" + +CVE_STATUS[CVE-2019-20812] = "fixed-version: Fixed from version 5.5rc3" + +CVE_STATUS[CVE-2019-20908] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2019-20934] = "fixed-version: Fixed from version 5.3rc2" + +CVE_STATUS[CVE-2019-2101] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-2181] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-2182] = "fixed-version: Fixed from version 4.16rc3" + +CVE_STATUS[CVE-2019-2213] = "fixed-version: Fixed from version 5.2rc6" + +CVE_STATUS[CVE-2019-2214] = "fixed-version: Fixed from version 5.3rc2" + +CVE_STATUS[CVE-2019-2215] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2019-25044] = "fixed-version: Fixed from version 5.2rc4" + +CVE_STATUS[CVE-2019-25045] = "fixed-version: Fixed from version 5.1" + +CVE_STATUS[CVE-2019-25160] = "fixed-version: Fixed from version 5.0" + +CVE_STATUS[CVE-2019-25162] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2019-3016] = "fixed-version: Fixed from version 5.6rc1" + +CVE_STATUS[CVE-2019-3459] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-3460] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-3701] = "fixed-version: Fixed from version 5.0rc3" + +CVE_STATUS[CVE-2019-3819] = "fixed-version: Fixed from version 5.0rc6" + +CVE_STATUS[CVE-2019-3837] = "fixed-version: Fixed from version 3.18rc1" + +CVE_STATUS[CVE-2019-3846] = "fixed-version: Fixed from version 5.2rc6" + +CVE_STATUS[CVE-2019-3874] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-3882] = "fixed-version: Fixed from version 5.1rc4" + +CVE_STATUS[CVE-2019-3887] = "fixed-version: Fixed from version 5.1rc4" + +CVE_STATUS[CVE-2019-3892] = "fixed-version: Fixed from version 5.1rc6" + +CVE_STATUS[CVE-2019-3896] = "fixed-version: Fixed from version 2.6.35rc1" + +CVE_STATUS[CVE-2019-3900] = "fixed-version: Fixed from version 5.2rc4" + +CVE_STATUS[CVE-2019-3901] = "fixed-version: Fixed from version 4.6rc6" + +CVE_STATUS[CVE-2019-5108] = "fixed-version: Fixed from version 5.3" + +# Skipping CVE-2019-5489, no affected_versions + +CVE_STATUS[CVE-2019-6133] = "fixed-version: Fixed from version 5.0rc2" + +CVE_STATUS[CVE-2019-6974] = "fixed-version: Fixed from version 5.0rc6" + +CVE_STATUS[CVE-2019-7221] = "fixed-version: Fixed from version 5.0rc6" + +CVE_STATUS[CVE-2019-7222] = "fixed-version: Fixed from version 5.0rc6" + +CVE_STATUS[CVE-2019-7308] = "fixed-version: Fixed from version 5.0rc3" + +CVE_STATUS[CVE-2019-8912] = "fixed-version: Fixed from version 5.0rc8" + +CVE_STATUS[CVE-2019-8956] = "fixed-version: Fixed from version 5.0rc6" + +CVE_STATUS[CVE-2019-8980] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-9003] = "fixed-version: Fixed from version 5.0rc4" + +CVE_STATUS[CVE-2019-9162] = "fixed-version: Fixed from version 5.0rc7" + +CVE_STATUS[CVE-2019-9213] = "fixed-version: Fixed from version 5.0" + +CVE_STATUS[CVE-2019-9245] = "fixed-version: Fixed from version 5.0rc1" + +CVE_STATUS[CVE-2019-9444] = "fixed-version: Fixed from version 4.15rc2" + +CVE_STATUS[CVE-2019-9445] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-9453] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2019-9454] = "fixed-version: Fixed from version 4.15rc9" + +CVE_STATUS[CVE-2019-9455] = "fixed-version: Fixed from version 5.0rc1" + +CVE_STATUS[CVE-2019-9456] = "fixed-version: Fixed from version 4.16rc6" + +CVE_STATUS[CVE-2019-9457] = "fixed-version: Fixed from version 4.13rc1" + +CVE_STATUS[CVE-2019-9458] = "fixed-version: Fixed from version 4.19rc7" + +CVE_STATUS[CVE-2019-9466] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-9500] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-9503] = "fixed-version: Fixed from version 5.1rc1" + +CVE_STATUS[CVE-2019-9506] = "fixed-version: Fixed from version 5.2" + +CVE_STATUS[CVE-2019-9857] = "fixed-version: Fixed from version 5.1rc2" + +CVE_STATUS[CVE-2020-0009] = "fixed-version: Fixed from version 5.6rc3" + +CVE_STATUS[CVE-2020-0030] = "fixed-version: Fixed from version 4.16rc3" + +CVE_STATUS[CVE-2020-0041] = "fixed-version: Fixed from version 5.5rc2" + +CVE_STATUS[CVE-2020-0066] = "fixed-version: Fixed from version 4.3rc7" + +CVE_STATUS[CVE-2020-0067] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2020-0110] = "fixed-version: Fixed from version 5.6rc2" + +CVE_STATUS[CVE-2020-0255] = "fixed-version: Fixed from version 5.7rc4" + +CVE_STATUS[CVE-2020-0305] = "fixed-version: Fixed from version 5.5rc6" + +# CVE-2020-0347 has no known resolution + +CVE_STATUS[CVE-2020-0404] = "fixed-version: Fixed from version 5.6rc1" + +CVE_STATUS[CVE-2020-0423] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-0427] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2020-0429] = "fixed-version: Fixed from version 4.14rc4" + +CVE_STATUS[CVE-2020-0430] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2020-0431] = "fixed-version: Fixed from version 5.5rc6" + +CVE_STATUS[CVE-2020-0432] = "fixed-version: Fixed from version 5.6rc1" + +CVE_STATUS[CVE-2020-0433] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2020-0435] = "fixed-version: Fixed from version 4.19rc1" + +CVE_STATUS[CVE-2020-0444] = "fixed-version: Fixed from version 5.6rc4" + +CVE_STATUS[CVE-2020-0465] = "fixed-version: Fixed from version 5.9rc4" + +CVE_STATUS[CVE-2020-0466] = "fixed-version: Fixed from version 5.9rc2" + +CVE_STATUS[CVE-2020-0543] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-10135] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-10690] = "fixed-version: Fixed from version 5.5rc5" + +# CVE-2020-10708 has no known resolution + +CVE_STATUS[CVE-2020-10711] = "fixed-version: Fixed from version 5.7rc6" + +CVE_STATUS[CVE-2020-10720] = "fixed-version: Fixed from version 5.2rc3" + +CVE_STATUS[CVE-2020-10732] = "fixed-version: Fixed from version 5.7" + +CVE_STATUS[CVE-2020-10742] = "fixed-version: Fixed from version 3.16rc1" + +CVE_STATUS[CVE-2020-10751] = "fixed-version: Fixed from version 5.7rc4" + +CVE_STATUS[CVE-2020-10757] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-10766] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-10767] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-10768] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-10769] = "fixed-version: Fixed from version 5.0rc3" + +CVE_STATUS[CVE-2020-10773] = "fixed-version: Fixed from version 5.4rc6" + +# CVE-2020-10774 has no known resolution + +CVE_STATUS[CVE-2020-10781] = "fixed-version: Fixed from version 5.8rc6" + +CVE_STATUS[CVE-2020-10942] = "fixed-version: Fixed from version 5.6rc4" + +CVE_STATUS[CVE-2020-11494] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-11565] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-11608] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-11609] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-11668] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-11669] = "fixed-version: Fixed from version 5.2rc1" + +# CVE-2020-11725 has no known resolution + +CVE_STATUS[CVE-2020-11884] = "fixed-version: Fixed from version 5.7rc4" + +# CVE-2020-11935 has no known resolution + +CVE_STATUS[CVE-2020-12114] = "fixed-version: Fixed from version 5.3rc1" + +CVE_STATUS[CVE-2020-12351] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-12352] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-12362] = "fixed-version: Fixed from version 5.11rc1" + +CVE_STATUS[CVE-2020-12363] = "fixed-version: Fixed from version 5.11rc1" + +CVE_STATUS[CVE-2020-12364] = "fixed-version: Fixed from version 5.11rc1" + +CVE_STATUS[CVE-2020-12464] = "fixed-version: Fixed from version 5.7rc3" + +CVE_STATUS[CVE-2020-12465] = "fixed-version: Fixed from version 5.6rc6" + +CVE_STATUS[CVE-2020-12652] = "fixed-version: Fixed from version 5.5rc7" + +CVE_STATUS[CVE-2020-12653] = "fixed-version: Fixed from version 5.6rc1" + +CVE_STATUS[CVE-2020-12654] = "fixed-version: Fixed from version 5.6rc1" + +CVE_STATUS[CVE-2020-12655] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-12656] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-12657] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-12659] = "fixed-version: Fixed from version 5.7rc2" + +CVE_STATUS[CVE-2020-12768] = "fixed-version: Fixed from version 5.6rc4" + +CVE_STATUS[CVE-2020-12769] = "fixed-version: Fixed from version 5.5rc6" + +CVE_STATUS[CVE-2020-12770] = "fixed-version: Fixed from version 5.7rc3" + +CVE_STATUS[CVE-2020-12771] = "fixed-version: Fixed from version 5.8rc2" + +CVE_STATUS[CVE-2020-12826] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-12888] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-12912] = "fixed-version: Fixed from version 5.10rc4" + +CVE_STATUS[CVE-2020-13143] = "fixed-version: Fixed from version 5.7rc6" + +CVE_STATUS[CVE-2020-13974] = "fixed-version: Fixed from version 5.8rc1" + +# CVE-2020-14304 has no known resolution + +CVE_STATUS[CVE-2020-14305] = "fixed-version: Fixed from version 4.12rc1" + +CVE_STATUS[CVE-2020-14314] = "fixed-version: Fixed from version 5.9rc2" + +CVE_STATUS[CVE-2020-14331] = "fixed-version: Fixed from version 5.9rc1" + +CVE_STATUS[CVE-2020-14351] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-14353] = "fixed-version: Fixed from version 4.14rc3" + +CVE_STATUS[CVE-2020-14356] = "fixed-version: Fixed from version 5.8rc5" + +CVE_STATUS[CVE-2020-14381] = "fixed-version: Fixed from version 5.6rc6" + +CVE_STATUS[CVE-2020-14385] = "fixed-version: Fixed from version 5.9rc4" + +CVE_STATUS[CVE-2020-14386] = "fixed-version: Fixed from version 5.9rc4" + +CVE_STATUS[CVE-2020-14390] = "fixed-version: Fixed from version 5.9rc6" + +CVE_STATUS[CVE-2020-14416] = "fixed-version: Fixed from version 5.5" + +CVE_STATUS[CVE-2020-15393] = "fixed-version: Fixed from version 5.8rc3" + +CVE_STATUS[CVE-2020-15436] = "fixed-version: Fixed from version 5.8rc2" + +CVE_STATUS[CVE-2020-15437] = "fixed-version: Fixed from version 5.8rc7" + +CVE_STATUS[CVE-2020-15780] = "fixed-version: Fixed from version 5.8rc3" + +# CVE-2020-15802 has no known resolution + +CVE_STATUS[CVE-2020-15852] = "fixed-version: Fixed from version 5.8rc6" + +CVE_STATUS[CVE-2020-16119] = "fixed-version: Fixed from version 5.15rc2" + +CVE_STATUS[CVE-2020-16120] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-16166] = "fixed-version: Fixed from version 5.8" + +CVE_STATUS[CVE-2020-1749] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2020-24394] = "fixed-version: Fixed from version 5.8rc4" + +CVE_STATUS[CVE-2020-24490] = "fixed-version: Fixed from version 5.8" + +# CVE-2020-24502 has no known resolution + +# CVE-2020-24503 has no known resolution + +CVE_STATUS[CVE-2020-24504] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2020-24586] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2020-24587] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2020-24588] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2020-25211] = "fixed-version: Fixed from version 5.9rc7" + +CVE_STATUS[CVE-2020-25212] = "fixed-version: Fixed from version 5.9rc1" + +# CVE-2020-25220 has no known resolution + +CVE_STATUS[CVE-2020-25221] = "fixed-version: Fixed from version 5.9rc4" + +CVE_STATUS[CVE-2020-25284] = "fixed-version: Fixed from version 5.9rc5" + +CVE_STATUS[CVE-2020-25285] = "fixed-version: Fixed from version 5.9rc4" + +CVE_STATUS[CVE-2020-25639] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2020-25641] = "fixed-version: Fixed from version 5.9rc4" + +CVE_STATUS[CVE-2020-25643] = "fixed-version: Fixed from version 5.9rc7" + +CVE_STATUS[CVE-2020-25645] = "fixed-version: Fixed from version 5.9rc7" + +CVE_STATUS[CVE-2020-25656] = "fixed-version: Fixed from version 5.10rc2" + +# CVE-2020-25661 has no known resolution + +# CVE-2020-25662 has no known resolution + +CVE_STATUS[CVE-2020-25668] = "fixed-version: Fixed from version 5.10rc3" + +CVE_STATUS[CVE-2020-25669] = "fixed-version: Fixed from version 5.10rc5" + +CVE_STATUS[CVE-2020-25670] = "fixed-version: Fixed from version 5.12rc7" + +CVE_STATUS[CVE-2020-25671] = "fixed-version: Fixed from version 5.12rc7" + +CVE_STATUS[CVE-2020-25672] = "fixed-version: Fixed from version 5.12rc7" + +CVE_STATUS[CVE-2020-25673] = "fixed-version: Fixed from version 5.12rc7" + +CVE_STATUS[CVE-2020-25704] = "fixed-version: Fixed from version 5.10rc3" + +CVE_STATUS[CVE-2020-25705] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-26088] = "fixed-version: Fixed from version 5.9rc1" + +CVE_STATUS[CVE-2020-26139] = "fixed-version: Fixed from version 5.13rc4" + +# CVE-2020-26140 has no known resolution + +CVE_STATUS[CVE-2020-26141] = "fixed-version: Fixed from version 5.13rc4" + +# CVE-2020-26142 has no known resolution + +# CVE-2020-26143 has no known resolution + +CVE_STATUS[CVE-2020-26145] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2020-26147] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2020-26541] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-26555] = "fixed-version: Fixed from version 5.13rc1" + +# CVE-2020-26556 has no known resolution + +# CVE-2020-26557 has no known resolution + +CVE_STATUS[CVE-2020-26558] = "fixed-version: Fixed from version 5.13rc1" + +# CVE-2020-26559 has no known resolution + +# CVE-2020-26560 has no known resolution + +CVE_STATUS[CVE-2020-27066] = "fixed-version: Fixed from version 5.6" + +CVE_STATUS[CVE-2020-27067] = "fixed-version: Fixed from version 4.14rc4" + +CVE_STATUS[CVE-2020-27068] = "fixed-version: Fixed from version 5.6rc2" + +CVE_STATUS[CVE-2020-27152] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-27170] = "fixed-version: Fixed from version 5.12rc5" + +CVE_STATUS[CVE-2020-27171] = "fixed-version: Fixed from version 5.12rc5" + +CVE_STATUS[CVE-2020-27194] = "fixed-version: Fixed from version 5.9" + +CVE_STATUS[CVE-2020-2732] = "fixed-version: Fixed from version 5.6rc4" + +CVE_STATUS[CVE-2020-27418] = "fixed-version: Fixed from version 5.6rc5" + +CVE_STATUS[CVE-2020-27673] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-27675] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-27777] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-27784] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-27786] = "fixed-version: Fixed from version 5.7rc6" + +CVE_STATUS[CVE-2020-27815] = "fixed-version: Fixed from version 5.11rc1" + +CVE_STATUS[CVE-2020-27820] = "fixed-version: Fixed from version 5.16rc1" + +CVE_STATUS[CVE-2020-27825] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-27830] = "fixed-version: Fixed from version 5.10rc7" + +CVE_STATUS[CVE-2020-27835] = "fixed-version: Fixed from version 5.10rc6" + +CVE_STATUS[CVE-2020-28097] = "fixed-version: Fixed from version 5.9rc6" + +CVE_STATUS[CVE-2020-28374] = "fixed-version: Fixed from version 5.11rc4" + +CVE_STATUS[CVE-2020-28588] = "fixed-version: Fixed from version 5.10rc7" + +CVE_STATUS[CVE-2020-28915] = "fixed-version: Fixed from version 5.9" + +CVE_STATUS[CVE-2020-28941] = "fixed-version: Fixed from version 5.10rc5" + +CVE_STATUS[CVE-2020-28974] = "fixed-version: Fixed from version 5.10rc3" + +CVE_STATUS[CVE-2020-29368] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-29369] = "fixed-version: Fixed from version 5.8rc7" + +CVE_STATUS[CVE-2020-29370] = "fixed-version: Fixed from version 5.6rc7" + +CVE_STATUS[CVE-2020-29371] = "fixed-version: Fixed from version 5.9rc2" + +CVE_STATUS[CVE-2020-29372] = "fixed-version: Fixed from version 5.7rc3" + +CVE_STATUS[CVE-2020-29373] = "fixed-version: Fixed from version 5.6rc2" + +CVE_STATUS[CVE-2020-29374] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-29534] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-29568] = "fixed-version: Fixed from version 5.11rc1" + +CVE_STATUS[CVE-2020-29569] = "fixed-version: Fixed from version 5.11rc1" + +CVE_STATUS[CVE-2020-29660] = "fixed-version: Fixed from version 5.10rc7" + +CVE_STATUS[CVE-2020-29661] = "fixed-version: Fixed from version 5.10rc7" + +CVE_STATUS[CVE-2020-35499] = "fixed-version: Fixed from version 5.11rc1" + +# CVE-2020-35501 has no known resolution + +CVE_STATUS[CVE-2020-35508] = "fixed-version: Fixed from version 5.10rc3" + +CVE_STATUS[CVE-2020-35513] = "fixed-version: Fixed from version 4.17rc1" + +CVE_STATUS[CVE-2020-35519] = "fixed-version: Fixed from version 5.10rc7" + +CVE_STATUS[CVE-2020-36158] = "fixed-version: Fixed from version 5.11rc1" + +CVE_STATUS[CVE-2020-36310] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-36311] = "fixed-version: Fixed from version 5.9rc5" + +CVE_STATUS[CVE-2020-36312] = "fixed-version: Fixed from version 5.9rc5" + +CVE_STATUS[CVE-2020-36313] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-36322] = "fixed-version: Fixed from version 5.11rc1" + +CVE_STATUS[CVE-2020-36385] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2020-36386] = "fixed-version: Fixed from version 5.9rc1" + +CVE_STATUS[CVE-2020-36387] = "fixed-version: Fixed from version 5.9rc1" + +CVE_STATUS[CVE-2020-36516] = "fixed-version: Fixed from version 5.17rc2" + +CVE_STATUS[CVE-2020-36557] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-36558] = "fixed-version: Fixed from version 5.6rc3" + +CVE_STATUS[CVE-2020-36691] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2020-36694] = "fixed-version: Fixed from version 5.10" + +CVE_STATUS[CVE-2020-36766] = "fixed-version: Fixed from version 5.9rc1" + +CVE_STATUS[CVE-2020-36775] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-36776] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-36777] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-36778] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-36779] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-36780] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-36781] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-36782] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-36783] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-36784] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-36785] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-36786] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-36787] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2020-3702] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2020-4788] = "fixed-version: Fixed from version 5.10rc5" + +CVE_STATUS[CVE-2020-7053] = "fixed-version: Fixed from version 5.2rc1" + +CVE_STATUS[CVE-2020-8428] = "fixed-version: Fixed from version 5.5" + +CVE_STATUS[CVE-2020-8647] = "fixed-version: Fixed from version 5.6rc5" + +CVE_STATUS[CVE-2020-8648] = "fixed-version: Fixed from version 5.6rc3" + +CVE_STATUS[CVE-2020-8649] = "fixed-version: Fixed from version 5.6rc5" + +CVE_STATUS[CVE-2020-8694] = "fixed-version: Fixed from version 5.10rc4" + +# CVE-2020-8832 has no known resolution + +CVE_STATUS[CVE-2020-8834] = "fixed-version: Fixed from version 4.18rc1" + +CVE_STATUS[CVE-2020-8835] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2020-8992] = "fixed-version: Fixed from version 5.6rc2" + +CVE_STATUS[CVE-2020-9383] = "fixed-version: Fixed from version 5.6rc4" + +CVE_STATUS[CVE-2020-9391] = "fixed-version: Fixed from version 5.6rc3" + +CVE_STATUS[CVE-2021-0129] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-0342] = "fixed-version: Fixed from version 5.8rc1" + +# CVE-2021-0399 has no known resolution + +CVE_STATUS[CVE-2021-0447] = "fixed-version: Fixed from version 4.15rc1" + +CVE_STATUS[CVE-2021-0448] = "fixed-version: Fixed from version 5.9rc7" + +CVE_STATUS[CVE-2021-0512] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2021-0605] = "fixed-version: Fixed from version 5.8" + +# CVE-2021-0606 has no known resolution + +# CVE-2021-0695 has no known resolution + +CVE_STATUS[CVE-2021-0707] = "fixed-version: Fixed from version 5.11rc3" + +CVE_STATUS[CVE-2021-0920] = "fixed-version: Fixed from version 5.14rc4" + +# CVE-2021-0924 has no known resolution + +CVE_STATUS[CVE-2021-0929] = "fixed-version: Fixed from version 5.6rc1" + +CVE_STATUS[CVE-2021-0935] = "fixed-version: Fixed from version 4.16rc7" + +# CVE-2021-0936 has no known resolution + +CVE_STATUS[CVE-2021-0937] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-0938] = "fixed-version: Fixed from version 5.10rc4" + +CVE_STATUS[CVE-2021-0941] = "fixed-version: Fixed from version 5.12rc1" + +# CVE-2021-0961 has no known resolution + +CVE_STATUS[CVE-2021-1048] = "fixed-version: Fixed from version 5.9rc4" + +CVE_STATUS[CVE-2021-20177] = "fixed-version: Fixed from version 5.5rc1" + +CVE_STATUS[CVE-2021-20194] = "fixed-version: Fixed from version 5.10rc1" + +# CVE-2021-20219 has no known resolution + +CVE_STATUS[CVE-2021-20226] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2021-20239] = "fixed-version: Fixed from version 5.9rc1" + +CVE_STATUS[CVE-2021-20261] = "fixed-version: Fixed from version 4.5rc5" + +CVE_STATUS[CVE-2021-20265] = "fixed-version: Fixed from version 4.5rc3" + +CVE_STATUS[CVE-2021-20268] = "fixed-version: Fixed from version 5.11rc5" + +CVE_STATUS[CVE-2021-20292] = "fixed-version: Fixed from version 5.9rc1" + +CVE_STATUS[CVE-2021-20317] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2021-20320] = "fixed-version: Fixed from version 5.15rc3" + +CVE_STATUS[CVE-2021-20321] = "fixed-version: Fixed from version 5.15rc5" + +CVE_STATUS[CVE-2021-20322] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2021-21781] = "fixed-version: Fixed from version 5.11rc7" + +CVE_STATUS[CVE-2021-22543] = "fixed-version: Fixed from version 5.13" + +CVE_STATUS[CVE-2021-22555] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-22600] = "fixed-version: Fixed from version 5.16rc6" + +CVE_STATUS[CVE-2021-23133] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-23134] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-26401] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2021-26708] = "fixed-version: Fixed from version 5.11rc7" + +CVE_STATUS[CVE-2021-26930] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2021-26931] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2021-26932] = "fixed-version: Fixed from version 5.12rc1" + +# CVE-2021-26934 has no known resolution + +CVE_STATUS[CVE-2021-27363] = "fixed-version: Fixed from version 5.12rc2" + +CVE_STATUS[CVE-2021-27364] = "fixed-version: Fixed from version 5.12rc2" + +CVE_STATUS[CVE-2021-27365] = "fixed-version: Fixed from version 5.12rc2" + +CVE_STATUS[CVE-2021-28038] = "fixed-version: Fixed from version 5.12rc2" + +CVE_STATUS[CVE-2021-28039] = "fixed-version: Fixed from version 5.12rc2" + +CVE_STATUS[CVE-2021-28375] = "fixed-version: Fixed from version 5.12rc3" + +CVE_STATUS[CVE-2021-28660] = "fixed-version: Fixed from version 5.12rc3" + +CVE_STATUS[CVE-2021-28688] = "fixed-version: Fixed from version 5.12rc6" + +CVE_STATUS[CVE-2021-28691] = "fixed-version: Fixed from version 5.13rc6" + +CVE_STATUS[CVE-2021-28711] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-28712] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-28713] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-28714] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-28715] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-28950] = "fixed-version: Fixed from version 5.12rc4" + +CVE_STATUS[CVE-2021-28951] = "fixed-version: Fixed from version 5.12rc2" + +CVE_STATUS[CVE-2021-28952] = "fixed-version: Fixed from version 5.12rc4" + +CVE_STATUS[CVE-2021-28964] = "fixed-version: Fixed from version 5.12rc4" + +CVE_STATUS[CVE-2021-28971] = "fixed-version: Fixed from version 5.12rc4" + +CVE_STATUS[CVE-2021-28972] = "fixed-version: Fixed from version 5.12rc4" + +CVE_STATUS[CVE-2021-29154] = "fixed-version: Fixed from version 5.12rc7" + +CVE_STATUS[CVE-2021-29155] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-29264] = "fixed-version: Fixed from version 5.12rc3" + +CVE_STATUS[CVE-2021-29265] = "fixed-version: Fixed from version 5.12rc3" + +CVE_STATUS[CVE-2021-29266] = "fixed-version: Fixed from version 5.12rc4" + +CVE_STATUS[CVE-2021-29646] = "fixed-version: Fixed from version 5.12rc5" + +CVE_STATUS[CVE-2021-29647] = "fixed-version: Fixed from version 5.12rc5" + +CVE_STATUS[CVE-2021-29648] = "fixed-version: Fixed from version 5.12rc5" + +CVE_STATUS[CVE-2021-29649] = "fixed-version: Fixed from version 5.12rc5" + +CVE_STATUS[CVE-2021-29650] = "fixed-version: Fixed from version 5.12rc5" + +CVE_STATUS[CVE-2021-29657] = "fixed-version: Fixed from version 5.12rc6" + +CVE_STATUS[CVE-2021-30002] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2021-30178] = "fixed-version: Fixed from version 5.12rc2" + +CVE_STATUS[CVE-2021-31440] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-3178] = "fixed-version: Fixed from version 5.11rc5" + +CVE_STATUS[CVE-2021-31829] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-31916] = "fixed-version: Fixed from version 5.12rc5" + +CVE_STATUS[CVE-2021-32078] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-32399] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-32606] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-33033] = "fixed-version: Fixed from version 5.12rc3" + +CVE_STATUS[CVE-2021-33034] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-33061] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2021-33098] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-33135] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2021-33200] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-3347] = "fixed-version: Fixed from version 5.11rc6" + +CVE_STATUS[CVE-2021-3348] = "fixed-version: Fixed from version 5.11rc6" + +CVE_STATUS[CVE-2021-33624] = "fixed-version: Fixed from version 5.13rc7" + +CVE_STATUS[CVE-2021-33630] = "fixed-version: Fixed from version 5.4rc1" + +CVE_STATUS[CVE-2021-33631] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2021-33655] = "fixed-version: Fixed from version 5.19rc6" + +CVE_STATUS[CVE-2021-33656] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2021-33909] = "fixed-version: Fixed from version 5.14rc3" + +CVE_STATUS[CVE-2021-3411] = "fixed-version: Fixed from version 5.10" + +CVE_STATUS[CVE-2021-3428] = "fixed-version: Fixed from version 5.9rc2" + +CVE_STATUS[CVE-2021-3444] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2021-34556] = "fixed-version: Fixed from version 5.14rc4" + +CVE_STATUS[CVE-2021-34693] = "fixed-version: Fixed from version 5.13rc7" + +CVE_STATUS[CVE-2021-3483] = "fixed-version: Fixed from version 5.12rc6" + +CVE_STATUS[CVE-2021-34866] = "fixed-version: Fixed from version 5.14" + +CVE_STATUS[CVE-2021-3489] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-3490] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-3491] = "fixed-version: Fixed from version 5.13rc1" + +# CVE-2021-3492 has no known resolution + +CVE_STATUS[CVE-2021-3493] = "fixed-version: Fixed from version 5.11rc1" + +CVE_STATUS[CVE-2021-34981] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2021-3501] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-35039] = "fixed-version: Fixed from version 5.13" + +CVE_STATUS[CVE-2021-3506] = "fixed-version: Fixed from version 5.13rc1" + +# CVE-2021-3542 has no known resolution + +CVE_STATUS[CVE-2021-3543] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-35477] = "fixed-version: Fixed from version 5.14rc4" + +CVE_STATUS[CVE-2021-3564] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-3573] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-3587] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-3600] = "fixed-version: Fixed from version 5.11" + +CVE_STATUS[CVE-2021-3609] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2021-3612] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2021-3635] = "fixed-version: Fixed from version 5.5rc7" + +CVE_STATUS[CVE-2021-3640] = "fixed-version: Fixed from version 5.16rc1" + +CVE_STATUS[CVE-2021-3653] = "fixed-version: Fixed from version 5.14rc7" + +CVE_STATUS[CVE-2021-3655] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2021-3656] = "fixed-version: Fixed from version 5.14rc7" + +CVE_STATUS[CVE-2021-3659] = "fixed-version: Fixed from version 5.12rc7" + +CVE_STATUS[CVE-2021-3669] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2021-3679] = "fixed-version: Fixed from version 5.14rc3" + +# CVE-2021-3714 has no known resolution + +CVE_STATUS[CVE-2021-3715] = "fixed-version: Fixed from version 5.6" + +CVE_STATUS[CVE-2021-37159] = "fixed-version: Fixed from version 5.14rc3" + +CVE_STATUS[CVE-2021-3732] = "fixed-version: Fixed from version 5.14rc6" + +CVE_STATUS[CVE-2021-3736] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2021-3739] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2021-3743] = "fixed-version: Fixed from version 5.13rc7" + +CVE_STATUS[CVE-2021-3744] = "fixed-version: Fixed from version 5.15rc4" + +CVE_STATUS[CVE-2021-3752] = "fixed-version: Fixed from version 5.16rc1" + +CVE_STATUS[CVE-2021-3753] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2021-37576] = "fixed-version: Fixed from version 5.14rc3" + +CVE_STATUS[CVE-2021-3759] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2021-3760] = "fixed-version: Fixed from version 5.15rc6" + +CVE_STATUS[CVE-2021-3764] = "fixed-version: Fixed from version 5.15rc4" + +CVE_STATUS[CVE-2021-3772] = "fixed-version: Fixed from version 5.15" + +CVE_STATUS[CVE-2021-38160] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2021-38166] = "fixed-version: Fixed from version 5.14rc6" + +CVE_STATUS[CVE-2021-38198] = "fixed-version: Fixed from version 5.13rc6" + +CVE_STATUS[CVE-2021-38199] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2021-38200] = "fixed-version: Fixed from version 5.13rc7" + +CVE_STATUS[CVE-2021-38201] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2021-38202] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2021-38203] = "fixed-version: Fixed from version 5.14rc2" + +CVE_STATUS[CVE-2021-38204] = "fixed-version: Fixed from version 5.14rc3" + +CVE_STATUS[CVE-2021-38205] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2021-38206] = "fixed-version: Fixed from version 5.13rc7" + +CVE_STATUS[CVE-2021-38207] = "fixed-version: Fixed from version 5.13rc7" + +CVE_STATUS[CVE-2021-38208] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-38209] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-38300] = "fixed-version: Fixed from version 5.15rc4" + +# CVE-2021-3847 has no known resolution + +# CVE-2021-3864 has no known resolution + +# CVE-2021-3892 has no known resolution + +CVE_STATUS[CVE-2021-3894] = "fixed-version: Fixed from version 5.15rc6" + +CVE_STATUS[CVE-2021-3896] = "fixed-version: Fixed from version 5.15rc6" + +CVE_STATUS[CVE-2021-3923] = "fixed-version: Fixed from version 5.16" + +CVE_STATUS[CVE-2021-39633] = "fixed-version: Fixed from version 5.14" + +CVE_STATUS[CVE-2021-39634] = "fixed-version: Fixed from version 5.9rc8" + +CVE_STATUS[CVE-2021-39636] = "fixed-version: Fixed from version 4.16rc1" + +CVE_STATUS[CVE-2021-39648] = "fixed-version: Fixed from version 5.11rc3" + +CVE_STATUS[CVE-2021-39656] = "fixed-version: Fixed from version 5.12rc3" + +CVE_STATUS[CVE-2021-39657] = "fixed-version: Fixed from version 5.11rc4" + +CVE_STATUS[CVE-2021-39685] = "fixed-version: Fixed from version 5.16rc5" + +CVE_STATUS[CVE-2021-39686] = "fixed-version: Fixed from version 5.16rc1" + +CVE_STATUS[CVE-2021-39698] = "fixed-version: Fixed from version 5.16rc5" + +CVE_STATUS[CVE-2021-39711] = "fixed-version: Fixed from version 4.18rc6" + +CVE_STATUS[CVE-2021-39713] = "fixed-version: Fixed from version 4.20rc1" + +CVE_STATUS[CVE-2021-39714] = "fixed-version: Fixed from version 4.12rc1" + +# CVE-2021-39800 has no known resolution + +# CVE-2021-39801 has no known resolution + +# CVE-2021-39802 has no known resolution + +CVE_STATUS[CVE-2021-4001] = "fixed-version: Fixed from version 5.16rc2" + +CVE_STATUS[CVE-2021-4002] = "fixed-version: Fixed from version 5.16rc3" + +CVE_STATUS[CVE-2021-4023] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2021-4028] = "fixed-version: Fixed from version 5.15rc4" + +CVE_STATUS[CVE-2021-4032] = "fixed-version: Fixed from version 5.15rc7" + +CVE_STATUS[CVE-2021-4037] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2021-40490] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2021-4083] = "fixed-version: Fixed from version 5.16rc4" + +CVE_STATUS[CVE-2021-4090] = "fixed-version: Fixed from version 5.16rc2" + +CVE_STATUS[CVE-2021-4093] = "fixed-version: Fixed from version 5.15rc7" + +CVE_STATUS[CVE-2021-4095] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2021-41073] = "fixed-version: Fixed from version 5.15rc2" + +CVE_STATUS[CVE-2021-4135] = "fixed-version: Fixed from version 5.16rc6" + +CVE_STATUS[CVE-2021-4148] = "fixed-version: Fixed from version 5.15" + +CVE_STATUS[CVE-2021-4149] = "fixed-version: Fixed from version 5.15rc6" + +CVE_STATUS[CVE-2021-4150] = "fixed-version: Fixed from version 5.15rc7" + +CVE_STATUS[CVE-2021-4154] = "fixed-version: Fixed from version 5.14rc2" + +CVE_STATUS[CVE-2021-4155] = "fixed-version: Fixed from version 5.16" + +CVE_STATUS[CVE-2021-4157] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-4159] = "fixed-version: Fixed from version 5.7rc1" + +CVE_STATUS[CVE-2021-41864] = "fixed-version: Fixed from version 5.15rc5" + +CVE_STATUS[CVE-2021-4197] = "fixed-version: Fixed from version 5.16" + +CVE_STATUS[CVE-2021-42008] = "fixed-version: Fixed from version 5.14rc7" + +CVE_STATUS[CVE-2021-4202] = "fixed-version: Fixed from version 5.16rc2" + +CVE_STATUS[CVE-2021-4203] = "fixed-version: Fixed from version 5.15rc4" + +CVE_STATUS[CVE-2021-4204] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2021-4218] = "fixed-version: Fixed from version 5.8rc1" + +CVE_STATUS[CVE-2021-42252] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2021-42327] = "fixed-version: Fixed from version 5.15" + +CVE_STATUS[CVE-2021-42739] = "fixed-version: Fixed from version 5.16rc1" + +CVE_STATUS[CVE-2021-43056] = "fixed-version: Fixed from version 5.15rc6" + +CVE_STATUS[CVE-2021-43057] = "fixed-version: Fixed from version 5.15rc3" + +CVE_STATUS[CVE-2021-43267] = "fixed-version: Fixed from version 5.15" + +CVE_STATUS[CVE-2021-43389] = "fixed-version: Fixed from version 5.15rc6" + +CVE_STATUS[CVE-2021-43975] = "fixed-version: Fixed from version 5.16rc2" + +CVE_STATUS[CVE-2021-43976] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2021-44733] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-44879] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2021-45095] = "fixed-version: Fixed from version 5.16rc6" + +CVE_STATUS[CVE-2021-45100] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-45402] = "fixed-version: Fixed from version 5.16rc6" + +CVE_STATUS[CVE-2021-45469] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2021-45480] = "fixed-version: Fixed from version 5.16rc6" + +CVE_STATUS[CVE-2021-45485] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2021-45486] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-45868] = "fixed-version: Fixed from version 5.16rc1" + +CVE_STATUS[CVE-2021-46283] = "fixed-version: Fixed from version 5.13rc7" + +CVE_STATUS[CVE-2021-46904] = "fixed-version: Fixed from version 5.12rc7" + +CVE_STATUS[CVE-2021-46905] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46906] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-46908] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46909] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46910] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46911] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46912] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46913] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46914] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46915] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46916] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46917] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46918] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46919] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46920] = "fixed-version: Fixed from version 5.12rc8" + +CVE_STATUS[CVE-2021-46921] = "fixed-version: Fixed from version 5.12" + +CVE_STATUS[CVE-2021-46922] = "fixed-version: Fixed from version 5.12" + +CVE_STATUS[CVE-2021-46923] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46924] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46925] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46926] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-46927] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46928] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-46929] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46930] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46931] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46932] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46933] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46934] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46935] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46936] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46937] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2021-46938] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46939] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46940] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46941] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46942] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46943] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46944] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46945] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46947] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46948] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46949] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46950] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46951] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46952] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46953] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46954] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46955] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46956] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46957] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46958] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46959] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46960] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46961] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46962] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46963] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46964] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46965] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46966] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46967] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46968] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46969] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46970] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46971] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46972] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46973] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46974] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46976] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46977] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46978] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46979] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46980] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46981] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46982] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46983] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46984] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46985] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46986] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46987] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46988] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46989] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46990] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-46991] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46992] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46993] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46994] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46995] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46996] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46997] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46998] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-46999] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47000] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47001] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47002] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47003] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47004] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47005] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47006] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47007] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47008] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47009] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-47010] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47011] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47012] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47013] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47014] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47015] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47016] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47017] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47018] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47019] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47020] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47021] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47022] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47023] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47024] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47025] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47026] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47027] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47028] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47029] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47030] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47031] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47032] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47033] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47034] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47035] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47036] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47037] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47038] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47039] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47040] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47041] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47042] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47043] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47044] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47045] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47046] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47047] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47048] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47049] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47050] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47051] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47052] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47053] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47054] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47055] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47056] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47057] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47058] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47059] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47060] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47061] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47062] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47063] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47064] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47065] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47066] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47067] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47068] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2021-47069] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47070] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47071] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47072] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47073] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47074] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47075] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47076] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47077] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47078] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47079] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47080] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47081] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47082] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47083] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47086] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47087] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47088] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47089] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47090] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47091] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47092] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47093] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47094] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47095] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47096] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47097] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47098] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47099] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47100] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47101] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47102] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47103] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47104] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47105] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47106] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47107] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47108] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2021-47109] = "fixed-version: Fixed from version 5.13rc7" + +CVE_STATUS[CVE-2021-47110] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-47111] = "fixed-version: Fixed from version 5.13rc6" + +CVE_STATUS[CVE-2021-47112] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-47113] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47114] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47116] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47117] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47118] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47119] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47120] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47121] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47122] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47123] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-47124] = "fixed-version: Fixed from version 5.13rc2" + +CVE_STATUS[CVE-2021-47125] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47126] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47127] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47128] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47129] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47130] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47131] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47132] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47133] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47134] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47135] = "fixed-version: Fixed from version 5.13rc5" + +CVE_STATUS[CVE-2021-47136] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47137] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47138] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47139] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47140] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47141] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47142] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47143] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47144] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47145] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47146] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47147] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47148] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47149] = "fixed-version: Fixed from version 5.13rc3" + +CVE_STATUS[CVE-2021-47150] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47151] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47152] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47153] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47158] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47159] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47160] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47161] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47162] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47163] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47164] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47165] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47166] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47167] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47168] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47169] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47170] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47171] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47172] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47173] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47174] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47175] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47176] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47177] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47178] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47179] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2021-47180] = "fixed-version: Fixed from version 5.13rc4" + +CVE_STATUS[CVE-2022-0001] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-0002] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-0168] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-0171] = "fixed-version: Fixed from version 5.18rc4" + +CVE_STATUS[CVE-2022-0185] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2022-0264] = "fixed-version: Fixed from version 5.16rc6" + +CVE_STATUS[CVE-2022-0286] = "fixed-version: Fixed from version 5.14rc2" + +CVE_STATUS[CVE-2022-0322] = "fixed-version: Fixed from version 5.15rc6" + +CVE_STATUS[CVE-2022-0330] = "fixed-version: Fixed from version 5.17rc2" + +CVE_STATUS[CVE-2022-0382] = "fixed-version: Fixed from version 5.16" + +# CVE-2022-0400 has no known resolution + +CVE_STATUS[CVE-2022-0433] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2022-0435] = "fixed-version: Fixed from version 5.17rc4" + +CVE_STATUS[CVE-2022-0480] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2022-0487] = "fixed-version: Fixed from version 5.17rc4" + +CVE_STATUS[CVE-2022-0492] = "fixed-version: Fixed from version 5.17rc3" + +CVE_STATUS[CVE-2022-0494] = "fixed-version: Fixed from version 5.17rc5" + +CVE_STATUS[CVE-2022-0500] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2022-0516] = "fixed-version: Fixed from version 5.17rc4" + +CVE_STATUS[CVE-2022-0617] = "fixed-version: Fixed from version 5.17rc2" + +CVE_STATUS[CVE-2022-0644] = "fixed-version: Fixed from version 5.15rc7" + +CVE_STATUS[CVE-2022-0646] = "fixed-version: Fixed from version 5.17rc5" + +CVE_STATUS[CVE-2022-0742] = "fixed-version: Fixed from version 5.17rc7" + +CVE_STATUS[CVE-2022-0812] = "fixed-version: Fixed from version 5.8rc6" + +CVE_STATUS[CVE-2022-0847] = "fixed-version: Fixed from version 5.17rc6" + +CVE_STATUS[CVE-2022-0850] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2022-0854] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-0995] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-0998] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2022-1011] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-1012] = "fixed-version: Fixed from version 5.18rc6" + +CVE_STATUS[CVE-2022-1015] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-1016] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-1043] = "fixed-version: Fixed from version 5.14rc7" + +CVE_STATUS[CVE-2022-1048] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-1055] = "fixed-version: Fixed from version 5.17rc3" + +# CVE-2022-1116 has no known resolution + +CVE_STATUS[CVE-2022-1158] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-1184] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-1195] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2022-1198] = "fixed-version: Fixed from version 5.17rc6" + +CVE_STATUS[CVE-2022-1199] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-1204] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-1205] = "fixed-version: Fixed from version 5.18rc1" + +# CVE-2022-1247 has no known resolution + +CVE_STATUS[CVE-2022-1263] = "fixed-version: Fixed from version 5.18rc3" + +CVE_STATUS[CVE-2022-1280] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2022-1353] = "fixed-version: Fixed from version 5.17" + +CVE_STATUS[CVE-2022-1419] = "fixed-version: Fixed from version 5.6rc2" + +CVE_STATUS[CVE-2022-1462] = "fixed-version: Fixed from version 5.19rc7" + +CVE_STATUS[CVE-2022-1508] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2022-1516] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-1651] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-1652] = "fixed-version: Fixed from version 5.18rc6" + +CVE_STATUS[CVE-2022-1671] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-1678] = "fixed-version: Fixed from version 4.20rc1" + +CVE_STATUS[CVE-2022-1679] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-1729] = "fixed-version: Fixed from version 5.18" + +CVE_STATUS[CVE-2022-1734] = "fixed-version: Fixed from version 5.18rc6" + +CVE_STATUS[CVE-2022-1786] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2022-1789] = "fixed-version: Fixed from version 5.18" + +CVE_STATUS[CVE-2022-1836] = "fixed-version: Fixed from version 5.18rc5" + +CVE_STATUS[CVE-2022-1852] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-1882] = "fixed-version: Fixed from version 5.19rc8" + +CVE_STATUS[CVE-2022-1943] = "fixed-version: Fixed from version 5.18rc7" + +CVE_STATUS[CVE-2022-1966] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-1972] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-1973] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-1974] = "fixed-version: Fixed from version 5.18rc6" + +CVE_STATUS[CVE-2022-1975] = "fixed-version: Fixed from version 5.18rc6" + +CVE_STATUS[CVE-2022-1976] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-1998] = "fixed-version: Fixed from version 5.17rc3" + +CVE_STATUS[CVE-2022-20008] = "fixed-version: Fixed from version 5.17rc5" + +CVE_STATUS[CVE-2022-20132] = "fixed-version: Fixed from version 5.16rc5" + +CVE_STATUS[CVE-2022-20141] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2022-20148] = "fixed-version: Fixed from version 5.16rc1" + +CVE_STATUS[CVE-2022-20153] = "fixed-version: Fixed from version 5.13rc1" + +CVE_STATUS[CVE-2022-20154] = "fixed-version: Fixed from version 5.16rc8" + +CVE_STATUS[CVE-2022-20158] = "fixed-version: Fixed from version 5.17" + +CVE_STATUS[CVE-2022-20166] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2022-20368] = "fixed-version: Fixed from version 5.17" + +CVE_STATUS[CVE-2022-20369] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-20409] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2022-20421] = "fixed-version: Fixed from version 6.0rc4" + +CVE_STATUS[CVE-2022-20422] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-20423] = "fixed-version: Fixed from version 5.17" + +CVE_STATUS[CVE-2022-20424] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2022-20565] = "fixed-version: Fixed from version 5.9rc4" + +CVE_STATUS[CVE-2022-20566] = "fixed-version: Fixed from version 5.19" + +CVE_STATUS[CVE-2022-20567] = "fixed-version: Fixed from version 4.16rc5" + +CVE_STATUS[CVE-2022-20568] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2022-20572] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-2078] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-21123] = "fixed-version: Fixed from version 5.19rc3" + +CVE_STATUS[CVE-2022-21125] = "fixed-version: Fixed from version 5.19rc3" + +CVE_STATUS[CVE-2022-21166] = "fixed-version: Fixed from version 5.19rc3" + +CVE_STATUS[CVE-2022-21385] = "fixed-version: Fixed from version 4.20" + +CVE_STATUS[CVE-2022-21499] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-21505] = "fixed-version: Fixed from version 5.19rc8" + +CVE_STATUS[CVE-2022-2153] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-2196] = "fixed-version: Fixed from version 6.2rc1" + +# CVE-2022-2209 has no known resolution + +CVE_STATUS[CVE-2022-22942] = "fixed-version: Fixed from version 5.17rc2" + +CVE_STATUS[CVE-2022-23036] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-23037] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-23038] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-23039] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-23040] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-23041] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-23042] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-2308] = "fixed-version: Fixed from version 6.0" + +CVE_STATUS[CVE-2022-2318] = "fixed-version: Fixed from version 5.19rc5" + +CVE_STATUS[CVE-2022-23222] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2022-2327] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2022-2380] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-23816] = "fixed-version: Fixed from version 5.19rc7" + +# CVE-2022-23825 has no known resolution + +CVE_STATUS[CVE-2022-23960] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-24122] = "fixed-version: Fixed from version 5.17rc2" + +CVE_STATUS[CVE-2022-24448] = "fixed-version: Fixed from version 5.17rc2" + +CVE_STATUS[CVE-2022-24958] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2022-24959] = "fixed-version: Fixed from version 5.17rc2" + +CVE_STATUS[CVE-2022-2503] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-25258] = "fixed-version: Fixed from version 5.17rc4" + +# CVE-2022-25265 has no known resolution + +CVE_STATUS[CVE-2022-25375] = "fixed-version: Fixed from version 5.17rc4" + +CVE_STATUS[CVE-2022-25636] = "fixed-version: Fixed from version 5.17rc6" + +CVE_STATUS[CVE-2022-2585] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-2586] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-2588] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-2590] = "fixed-version: Fixed from version 6.0rc3" + +CVE_STATUS[CVE-2022-2602] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-26365] = "fixed-version: Fixed from version 5.19rc6" + +CVE_STATUS[CVE-2022-26373] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-2639] = "fixed-version: Fixed from version 5.18rc4" + +CVE_STATUS[CVE-2022-26490] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2022-2663] = "fixed-version: Fixed from version 6.0rc5" + +# CVE-2022-26878 has no known resolution + +CVE_STATUS[CVE-2022-26966] = "fixed-version: Fixed from version 5.17rc6" + +CVE_STATUS[CVE-2022-27223] = "fixed-version: Fixed from version 5.17rc6" + +CVE_STATUS[CVE-2022-27666] = "fixed-version: Fixed from version 5.17rc8" + +CVE_STATUS[CVE-2022-27672] = "fixed-version: Fixed from version 6.2" + +CVE_STATUS[CVE-2022-2785] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-27950] = "fixed-version: Fixed from version 5.17rc5" + +CVE_STATUS[CVE-2022-28356] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-28388] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-28389] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-28390] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-2873] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-28796] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-28893] = "fixed-version: Fixed from version 5.18rc2" + +CVE_STATUS[CVE-2022-2905] = "fixed-version: Fixed from version 6.0rc4" + +CVE_STATUS[CVE-2022-29156] = "fixed-version: Fixed from version 5.17rc6" + +CVE_STATUS[CVE-2022-2938] = "fixed-version: Fixed from version 5.17rc2" + +CVE_STATUS[CVE-2022-29581] = "fixed-version: Fixed from version 5.18rc4" + +CVE_STATUS[CVE-2022-29582] = "fixed-version: Fixed from version 5.18rc2" + +CVE_STATUS[CVE-2022-2959] = "fixed-version: Fixed from version 5.19rc1" + +# CVE-2022-2961 has no known resolution + +CVE_STATUS[CVE-2022-2964] = "fixed-version: Fixed from version 5.17rc4" + +CVE_STATUS[CVE-2022-2977] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-2978] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-29900] = "fixed-version: Fixed from version 5.19rc7" + +CVE_STATUS[CVE-2022-29901] = "fixed-version: Fixed from version 5.19rc7" + +CVE_STATUS[CVE-2022-2991] = "fixed-version: Fixed from version 5.15rc1" + +CVE_STATUS[CVE-2022-29968] = "fixed-version: Fixed from version 5.18rc5" + +CVE_STATUS[CVE-2022-3028] = "fixed-version: Fixed from version 6.0rc3" + +CVE_STATUS[CVE-2022-30594] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-3061] = "fixed-version: Fixed from version 5.18rc5" + +CVE_STATUS[CVE-2022-3077] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-3078] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-3103] = "fixed-version: Fixed from version 6.0rc3" + +CVE_STATUS[CVE-2022-3104] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-3105] = "fixed-version: Fixed from version 5.16" + +CVE_STATUS[CVE-2022-3106] = "fixed-version: Fixed from version 5.16rc6" + +CVE_STATUS[CVE-2022-3107] = "fixed-version: Fixed from version 5.17" + +CVE_STATUS[CVE-2022-3108] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2022-3110] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-3111] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-3112] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-3113] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-3114] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-3115] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-3169] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3170] = "fixed-version: Fixed from version 6.0rc4" + +CVE_STATUS[CVE-2022-3176] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2022-3202] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-32250] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-32296] = "fixed-version: Fixed from version 5.18rc6" + +# CVE-2022-3238 has no known resolution + +CVE_STATUS[CVE-2022-3239] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-32981] = "fixed-version: Fixed from version 5.19rc2" + +CVE_STATUS[CVE-2022-3303] = "fixed-version: Fixed from version 6.0rc5" + +CVE_STATUS[CVE-2022-3344] = "fixed-version: Fixed from version 6.1rc7" + +CVE_STATUS[CVE-2022-33740] = "fixed-version: Fixed from version 5.19rc6" + +CVE_STATUS[CVE-2022-33741] = "fixed-version: Fixed from version 5.19rc6" + +CVE_STATUS[CVE-2022-33742] = "fixed-version: Fixed from version 5.19rc6" + +CVE_STATUS[CVE-2022-33743] = "fixed-version: Fixed from version 5.19rc6" + +CVE_STATUS[CVE-2022-33744] = "fixed-version: Fixed from version 5.19rc6" + +CVE_STATUS[CVE-2022-33981] = "fixed-version: Fixed from version 5.18rc5" + +CVE_STATUS[CVE-2022-3424] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2022-3435] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-34494] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-34495] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-34918] = "fixed-version: Fixed from version 5.19rc6" + +CVE_STATUS[CVE-2022-3521] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3522] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3523] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3524] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3526] = "fixed-version: Fixed from version 5.18rc3" + +CVE_STATUS[CVE-2022-3531] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2022-3532] = "fixed-version: Fixed from version 6.2rc1" + +# CVE-2022-3533 has no known resolution + +CVE_STATUS[CVE-2022-3534] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2022-3535] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3541] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3542] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3543] = "fixed-version: Fixed from version 6.1rc1" + +# CVE-2022-3544 has no known resolution + +CVE_STATUS[CVE-2022-3545] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-3564] = "fixed-version: Fixed from version 6.1rc4" + +CVE_STATUS[CVE-2022-3565] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3566] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3567] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3577] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-3586] = "fixed-version: Fixed from version 6.0rc5" + +CVE_STATUS[CVE-2022-3594] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3595] = "fixed-version: Fixed from version 6.1rc1" + +# CVE-2022-3606 has no known resolution + +CVE_STATUS[CVE-2022-36123] = "fixed-version: Fixed from version 5.19rc6" + +CVE_STATUS[CVE-2022-3619] = "fixed-version: Fixed from version 6.1rc4" + +CVE_STATUS[CVE-2022-3621] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3623] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3624] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-3625] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-3628] = "fixed-version: Fixed from version 6.1rc5" + +CVE_STATUS[CVE-2022-36280] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2022-3629] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-3630] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-3633] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-3635] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-3636] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-3640] = "fixed-version: Fixed from version 6.1rc4" + +CVE_STATUS[CVE-2022-36402] = "fixed-version: Fixed from version 6.5" + +# CVE-2022-3642 has no known resolution + +CVE_STATUS[CVE-2022-3643] = "fixed-version: Fixed from version 6.1" + +CVE_STATUS[CVE-2022-3646] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-3649] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-36879] = "fixed-version: Fixed from version 5.19rc8" + +CVE_STATUS[CVE-2022-36946] = "fixed-version: Fixed from version 5.19" + +CVE_STATUS[CVE-2022-3707] = "fixed-version: Fixed from version 6.2rc3" + +# CVE-2022-38096 has no known resolution + +CVE_STATUS[CVE-2022-38457] = "fixed-version: Fixed from version 6.2rc4" + +CVE_STATUS[CVE-2022-3903] = "fixed-version: Fixed from version 6.1rc2" + +CVE_STATUS[CVE-2022-3910] = "fixed-version: Fixed from version 6.0rc6" + +CVE_STATUS[CVE-2022-39188] = "fixed-version: Fixed from version 5.19rc8" + +CVE_STATUS[CVE-2022-39189] = "fixed-version: Fixed from version 5.19rc2" + +CVE_STATUS[CVE-2022-39190] = "fixed-version: Fixed from version 6.0rc3" + +CVE_STATUS[CVE-2022-3977] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-39842] = "fixed-version: Fixed from version 5.19rc4" + +CVE_STATUS[CVE-2022-40133] = "fixed-version: Fixed from version 6.2rc4" + +CVE_STATUS[CVE-2022-40307] = "fixed-version: Fixed from version 6.0rc5" + +CVE_STATUS[CVE-2022-40476] = "fixed-version: Fixed from version 5.19rc4" + +CVE_STATUS[CVE-2022-40768] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-4095] = "fixed-version: Fixed from version 6.0rc4" + +CVE_STATUS[CVE-2022-40982] = "fixed-version: Fixed from version 6.5rc6" + +CVE_STATUS[CVE-2022-41218] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2022-41222] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2022-4127] = "fixed-version: Fixed from version 5.19rc6" + +CVE_STATUS[CVE-2022-4128] = "fixed-version: Fixed from version 5.19rc7" + +CVE_STATUS[CVE-2022-4129] = "fixed-version: Fixed from version 6.1rc6" + +CVE_STATUS[CVE-2022-4139] = "fixed-version: Fixed from version 6.1rc8" + +CVE_STATUS[CVE-2022-41674] = "fixed-version: Fixed from version 6.1rc1" + +# CVE-2022-41848 has no known resolution + +CVE_STATUS[CVE-2022-41849] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-41850] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-41858] = "fixed-version: Fixed from version 5.18rc2" + +CVE_STATUS[CVE-2022-42328] = "fixed-version: Fixed from version 6.1" + +CVE_STATUS[CVE-2022-42329] = "fixed-version: Fixed from version 6.1" + +CVE_STATUS[CVE-2022-42432] = "fixed-version: Fixed from version 6.0rc7" + +CVE_STATUS[CVE-2022-4269] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2022-42703] = "fixed-version: Fixed from version 6.0rc4" + +CVE_STATUS[CVE-2022-42719] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-42720] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-42721] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-42722] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-42895] = "fixed-version: Fixed from version 6.1rc4" + +CVE_STATUS[CVE-2022-42896] = "fixed-version: Fixed from version 6.1rc4" + +CVE_STATUS[CVE-2022-43750] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-4378] = "fixed-version: Fixed from version 6.1" + +CVE_STATUS[CVE-2022-4379] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2022-4382] = "fixed-version: Fixed from version 6.2rc5" + +CVE_STATUS[CVE-2022-43945] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2022-44032] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2022-44033] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2022-44034] = "fixed-version: Fixed from version 6.4rc1" + +# CVE-2022-4543 has no known resolution + +CVE_STATUS[CVE-2022-45869] = "fixed-version: Fixed from version 6.1rc7" + +# CVE-2022-45884 has no known resolution + +# CVE-2022-45885 has no known resolution + +CVE_STATUS[CVE-2022-45886] = "fixed-version: Fixed from version 6.4rc3" + +CVE_STATUS[CVE-2022-45887] = "fixed-version: Fixed from version 6.4rc3" + +CVE_STATUS[CVE-2022-45888] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2022-45919] = "fixed-version: Fixed from version 6.4rc3" + +CVE_STATUS[CVE-2022-45934] = "fixed-version: Fixed from version 6.1" + +CVE_STATUS[CVE-2022-4662] = "fixed-version: Fixed from version 6.0rc4" + +CVE_STATUS[CVE-2022-4696] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2022-4744] = "fixed-version: Fixed from version 5.16rc7" + +CVE_STATUS[CVE-2022-47518] = "fixed-version: Fixed from version 6.1rc8" + +CVE_STATUS[CVE-2022-47519] = "fixed-version: Fixed from version 6.1rc8" + +CVE_STATUS[CVE-2022-47520] = "fixed-version: Fixed from version 6.1rc8" + +CVE_STATUS[CVE-2022-47521] = "fixed-version: Fixed from version 6.1rc8" + +CVE_STATUS[CVE-2022-47929] = "fixed-version: Fixed from version 6.2rc4" + +CVE_STATUS[CVE-2022-47938] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-47939] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-47940] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2022-47941] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-47942] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-47943] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2022-47946] = "fixed-version: Fixed from version 5.12rc2" + +CVE_STATUS[CVE-2022-4842] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2022-48423] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2022-48424] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2022-48425] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2022-48502] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2022-48619] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2022-48626] = "fixed-version: Fixed from version 5.17rc4" + +CVE_STATUS[CVE-2022-48627] = "fixed-version: Fixed from version 5.19rc7" + +CVE_STATUS[CVE-2022-48628] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2022-48629] = "fixed-version: Fixed from version 5.17" + +CVE_STATUS[CVE-2022-48630] = "fixed-version: Fixed from version 5.18" + +CVE_STATUS[CVE-2023-0030] = "fixed-version: Fixed from version 5.0rc1" + +CVE_STATUS[CVE-2023-0045] = "fixed-version: Fixed from version 6.2rc3" + +CVE_STATUS[CVE-2023-0047] = "fixed-version: Fixed from version 5.16rc1" + +CVE_STATUS[CVE-2023-0122] = "fixed-version: Fixed from version 6.0rc4" + +CVE_STATUS[CVE-2023-0160] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-0179] = "fixed-version: Fixed from version 6.2rc5" + +CVE_STATUS[CVE-2023-0210] = "fixed-version: Fixed from version 6.2rc4" + +CVE_STATUS[CVE-2023-0240] = "fixed-version: Fixed from version 5.10rc1" + +CVE_STATUS[CVE-2023-0266] = "fixed-version: Fixed from version 6.2rc4" + +CVE_STATUS[CVE-2023-0386] = "fixed-version: Fixed from version 6.2rc6" + +CVE_STATUS[CVE-2023-0394] = "fixed-version: Fixed from version 6.2rc4" + +CVE_STATUS[CVE-2023-0458] = "fixed-version: Fixed from version 6.2rc5" + +CVE_STATUS[CVE-2023-0459] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-0461] = "fixed-version: Fixed from version 6.2rc3" + +CVE_STATUS[CVE-2023-0468] = "fixed-version: Fixed from version 6.1rc7" + +CVE_STATUS[CVE-2023-0469] = "fixed-version: Fixed from version 6.1rc7" + +CVE_STATUS[CVE-2023-0590] = "fixed-version: Fixed from version 6.1rc2" + +CVE_STATUS[CVE-2023-0597] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2023-0615] = "fixed-version: Fixed from version 6.1rc3" + +CVE_STATUS[CVE-2023-1032] = "fixed-version: Fixed from version 6.3rc2" + +CVE_STATUS[CVE-2023-1073] = "fixed-version: Fixed from version 6.2rc5" + +CVE_STATUS[CVE-2023-1074] = "fixed-version: Fixed from version 6.2rc6" + +CVE_STATUS[CVE-2023-1075] = "fixed-version: Fixed from version 6.2rc7" + +CVE_STATUS[CVE-2023-1076] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-1077] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-1078] = "fixed-version: Fixed from version 6.2rc8" + +CVE_STATUS[CVE-2023-1079] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-1095] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2023-1118] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-1192] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-1193] = "fixed-version: Fixed from version 6.3rc6" + +CVE_STATUS[CVE-2023-1194] = "fixed-version: Fixed from version 6.4rc6" + +CVE_STATUS[CVE-2023-1195] = "fixed-version: Fixed from version 6.1rc3" + +CVE_STATUS[CVE-2023-1206] = "fixed-version: Fixed from version 6.5rc4" + +CVE_STATUS[CVE-2023-1249] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2023-1252] = "fixed-version: Fixed from version 5.16rc1" + +CVE_STATUS[CVE-2023-1281] = "fixed-version: Fixed from version 6.2" + +CVE_STATUS[CVE-2023-1295] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2023-1380] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-1382] = "fixed-version: Fixed from version 6.1rc7" + +CVE_STATUS[CVE-2023-1390] = "fixed-version: Fixed from version 5.11rc4" + +# CVE-2023-1476 has no known resolution + +CVE_STATUS[CVE-2023-1513] = "fixed-version: Fixed from version 6.2" + +CVE_STATUS[CVE-2023-1582] = "fixed-version: Fixed from version 5.17rc4" + +CVE_STATUS[CVE-2023-1583] = "fixed-version: Fixed from version 6.3rc4" + +CVE_STATUS[CVE-2023-1611] = "fixed-version: Fixed from version 6.3rc5" + +CVE_STATUS[CVE-2023-1637] = "fixed-version: Fixed from version 5.18rc2" + +CVE_STATUS[CVE-2023-1652] = "fixed-version: Fixed from version 6.2rc5" + +CVE_STATUS[CVE-2023-1670] = "fixed-version: Fixed from version 6.3rc4" + +CVE_STATUS[CVE-2023-1829] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-1838] = "fixed-version: Fixed from version 5.18" + +CVE_STATUS[CVE-2023-1855] = "fixed-version: Fixed from version 6.3rc3" + +CVE_STATUS[CVE-2023-1859] = "fixed-version: Fixed from version 6.3rc7" + +CVE_STATUS[CVE-2023-1872] = "fixed-version: Fixed from version 5.18rc2" + +CVE_STATUS[CVE-2023-1989] = "fixed-version: Fixed from version 6.3rc4" + +CVE_STATUS[CVE-2023-1990] = "fixed-version: Fixed from version 6.3rc3" + +CVE_STATUS[CVE-2023-1998] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-2002] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-2006] = "fixed-version: Fixed from version 6.1rc7" + +CVE_STATUS[CVE-2023-2007] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2023-2008] = "fixed-version: Fixed from version 5.19rc4" + +CVE_STATUS[CVE-2023-2019] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2023-20569] = "fixed-version: Fixed from version 6.5rc6" + +CVE_STATUS[CVE-2023-20588] = "fixed-version: Fixed from version 6.5rc6" + +CVE_STATUS[CVE-2023-20593] = "fixed-version: Fixed from version 6.5rc4" + +CVE_STATUS[CVE-2023-20928] = "fixed-version: Fixed from version 6.0rc1" + +# CVE-2023-20937 has no known resolution + +CVE_STATUS[CVE-2023-20938] = "fixed-version: Fixed from version 5.18rc5" + +# CVE-2023-20941 has no known resolution + +CVE_STATUS[CVE-2023-21102] = "fixed-version: Fixed from version 6.2rc4" + +CVE_STATUS[CVE-2023-21106] = "fixed-version: Fixed from version 6.2rc5" + +CVE_STATUS[CVE-2023-2124] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-21255] = "fixed-version: Fixed from version 6.4rc4" + +CVE_STATUS[CVE-2023-21264] = "fixed-version: Fixed from version 6.4rc5" + +# CVE-2023-21400 has no known resolution + +CVE_STATUS[CVE-2023-2156] = "fixed-version: Fixed from version 6.3" + +CVE_STATUS[CVE-2023-2162] = "fixed-version: Fixed from version 6.2rc6" + +CVE_STATUS[CVE-2023-2163] = "fixed-version: Fixed from version 6.3" + +CVE_STATUS[CVE-2023-2166] = "fixed-version: Fixed from version 6.1" + +CVE_STATUS[CVE-2023-2176] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-2177] = "fixed-version: Fixed from version 5.19" + +CVE_STATUS[CVE-2023-2194] = "fixed-version: Fixed from version 6.3rc4" + +CVE_STATUS[CVE-2023-2235] = "fixed-version: Fixed from version 6.3rc3" + +CVE_STATUS[CVE-2023-2236] = "fixed-version: Fixed from version 6.1rc7" + +CVE_STATUS[CVE-2023-2248] = "fixed-version: Fixed from version 6.3" + +CVE_STATUS[CVE-2023-2269] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-22995] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2023-22996] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2023-22997] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2023-22998] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2023-22999] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2023-23000] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2023-23001] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2023-23002] = "fixed-version: Fixed from version 5.17rc1" + +CVE_STATUS[CVE-2023-23003] = "fixed-version: Fixed from version 5.16rc6" + +CVE_STATUS[CVE-2023-23004] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2023-23005] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2023-23006] = "fixed-version: Fixed from version 5.16rc8" + +# CVE-2023-23039 has no known resolution + +CVE_STATUS[CVE-2023-23454] = "fixed-version: Fixed from version 6.2rc3" + +CVE_STATUS[CVE-2023-23455] = "fixed-version: Fixed from version 6.2rc3" + +CVE_STATUS[CVE-2023-23559] = "fixed-version: Fixed from version 6.2rc5" + +CVE_STATUS[CVE-2023-23586] = "fixed-version: Fixed from version 5.12rc1" + +CVE_STATUS[CVE-2023-2430] = "fixed-version: Fixed from version 6.2rc5" + +CVE_STATUS[CVE-2023-2483] = "fixed-version: Fixed from version 6.3rc4" + +CVE_STATUS[CVE-2023-25012] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-2513] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2023-25775] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-2598] = "fixed-version: Fixed from version 6.4rc1" + +# CVE-2023-26242 has no known resolution + +# CVE-2023-2640 has no known resolution + +CVE_STATUS[CVE-2023-26544] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2023-26545] = "fixed-version: Fixed from version 6.2" + +CVE_STATUS[CVE-2023-26605] = "fixed-version: Fixed from version 6.1rc7" + +CVE_STATUS[CVE-2023-26606] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2023-26607] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2023-28327] = "fixed-version: Fixed from version 6.1" + +CVE_STATUS[CVE-2023-28328] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2023-28410] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2023-28464] = "fixed-version: Fixed from version 6.3rc7" + +CVE_STATUS[CVE-2023-28466] = "fixed-version: Fixed from version 6.3rc2" + +CVE_STATUS[CVE-2023-2860] = "fixed-version: Fixed from version 6.0rc5" + +CVE_STATUS[CVE-2023-28746] = "cpe-stable-backport: Backported in 6.6.22" + +CVE_STATUS[CVE-2023-28772] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2023-28866] = "fixed-version: Fixed from version 6.3rc4" + +CVE_STATUS[CVE-2023-2898] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2023-2985] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-3006] = "fixed-version: Fixed from version 6.1rc1" + +# Skipping CVE-2023-3022, no affected_versions + +CVE_STATUS[CVE-2023-30456] = "fixed-version: Fixed from version 6.3rc3" + +CVE_STATUS[CVE-2023-30772] = "fixed-version: Fixed from version 6.3rc4" + +CVE_STATUS[CVE-2023-3090] = "fixed-version: Fixed from version 6.4rc2" + +CVE_STATUS[CVE-2023-3106] = "fixed-version: Fixed from version 4.8rc7" + +# Skipping CVE-2023-3108, no affected_versions + +# CVE-2023-31081 has no known resolution + +# CVE-2023-31082 has no known resolution + +CVE_STATUS[CVE-2023-31083] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-31084] = "fixed-version: Fixed from version 6.4rc3" + +CVE_STATUS[CVE-2023-31085] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-3111] = "fixed-version: Fixed from version 6.0rc2" + +CVE_STATUS[CVE-2023-3117] = "fixed-version: Fixed from version 6.4rc7" + +CVE_STATUS[CVE-2023-31248] = "fixed-version: Fixed from version 6.5rc2" + +CVE_STATUS[CVE-2023-3141] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-31436] = "fixed-version: Fixed from version 6.3" + +CVE_STATUS[CVE-2023-3159] = "fixed-version: Fixed from version 5.18rc6" + +CVE_STATUS[CVE-2023-3161] = "fixed-version: Fixed from version 6.2rc7" + +CVE_STATUS[CVE-2023-3212] = "fixed-version: Fixed from version 6.4rc2" + +CVE_STATUS[CVE-2023-3220] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-32233] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-32247] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-32248] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-32250] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-32252] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-32254] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-32257] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-32258] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-32269] = "fixed-version: Fixed from version 6.2rc7" + +# CVE-2023-32629 has no known resolution + +CVE_STATUS[CVE-2023-3268] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-3269] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2023-3312] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-3317] = "fixed-version: Fixed from version 6.3rc6" + +CVE_STATUS[CVE-2023-33203] = "fixed-version: Fixed from version 6.3rc4" + +CVE_STATUS[CVE-2023-33250] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2023-33288] = "fixed-version: Fixed from version 6.3rc4" + +CVE_STATUS[CVE-2023-3338] = "fixed-version: Fixed from version 6.1rc1" + +CVE_STATUS[CVE-2023-3355] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-3357] = "fixed-version: Fixed from version 6.2rc1" + +CVE_STATUS[CVE-2023-3358] = "fixed-version: Fixed from version 6.2rc5" + +CVE_STATUS[CVE-2023-3359] = "fixed-version: Fixed from version 6.2rc7" + +CVE_STATUS[CVE-2023-3389] = "fixed-version: Fixed from version 6.0rc1" + +CVE_STATUS[CVE-2023-3390] = "fixed-version: Fixed from version 6.4rc7" + +CVE_STATUS[CVE-2023-33951] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-33952] = "fixed-version: Fixed from version 6.4rc1" + +# CVE-2023-3397 has no known resolution + +CVE_STATUS[CVE-2023-34255] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-34256] = "fixed-version: Fixed from version 6.4rc2" + +CVE_STATUS[CVE-2023-34319] = "fixed-version: Fixed from version 6.5rc6" + +CVE_STATUS[CVE-2023-34324] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-3439] = "fixed-version: Fixed from version 5.18rc5" + +CVE_STATUS[CVE-2023-35001] = "fixed-version: Fixed from version 6.5rc2" + +CVE_STATUS[CVE-2023-3567] = "fixed-version: Fixed from version 6.2rc7" + +# CVE-2023-35693 has no known resolution + +CVE_STATUS[CVE-2023-35788] = "fixed-version: Fixed from version 6.4rc5" + +CVE_STATUS[CVE-2023-35823] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-35824] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-35826] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-35827] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-35828] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-35829] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-3609] = "fixed-version: Fixed from version 6.4rc7" + +CVE_STATUS[CVE-2023-3610] = "fixed-version: Fixed from version 6.4" + +CVE_STATUS[CVE-2023-3611] = "fixed-version: Fixed from version 6.5rc2" + +# CVE-2023-3640 has no known resolution + +CVE_STATUS[CVE-2023-37453] = "fixed-version: Fixed from version 6.6rc1" + +# CVE-2023-37454 has no known resolution + +CVE_STATUS[CVE-2023-3772] = "fixed-version: Fixed from version 6.5rc7" + +CVE_STATUS[CVE-2023-3773] = "fixed-version: Fixed from version 6.5rc7" + +CVE_STATUS[CVE-2023-3776] = "fixed-version: Fixed from version 6.5rc2" + +CVE_STATUS[CVE-2023-3777] = "fixed-version: Fixed from version 6.5rc3" + +CVE_STATUS[CVE-2023-3812] = "fixed-version: Fixed from version 6.1rc4" + +CVE_STATUS[CVE-2023-38409] = "fixed-version: Fixed from version 6.3rc7" + +CVE_STATUS[CVE-2023-38426] = "fixed-version: Fixed from version 6.4rc3" + +CVE_STATUS[CVE-2023-38427] = "fixed-version: Fixed from version 6.4rc6" + +CVE_STATUS[CVE-2023-38428] = "fixed-version: Fixed from version 6.4rc3" + +CVE_STATUS[CVE-2023-38429] = "fixed-version: Fixed from version 6.4rc3" + +CVE_STATUS[CVE-2023-38430] = "fixed-version: Fixed from version 6.4rc6" + +CVE_STATUS[CVE-2023-38431] = "fixed-version: Fixed from version 6.4rc6" + +CVE_STATUS[CVE-2023-38432] = "fixed-version: Fixed from version 6.4" + +CVE_STATUS[CVE-2023-3863] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2023-3865] = "fixed-version: Fixed from version 6.4" + +CVE_STATUS[CVE-2023-3866] = "fixed-version: Fixed from version 6.4" + +CVE_STATUS[CVE-2023-3867] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2023-39189] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-39191] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-39192] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-39193] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-39194] = "fixed-version: Fixed from version 6.5rc7" + +CVE_STATUS[CVE-2023-39197] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2023-39198] = "fixed-version: Fixed from version 6.5rc7" + +CVE_STATUS[CVE-2023-4004] = "fixed-version: Fixed from version 6.5rc3" + +# CVE-2023-4010 has no known resolution + +CVE_STATUS[CVE-2023-4015] = "fixed-version: Fixed from version 6.5rc4" + +CVE_STATUS[CVE-2023-40283] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2023-40791] = "fixed-version: Fixed from version 6.5rc6" + +CVE_STATUS[CVE-2023-4128] = "fixed-version: Fixed from version 6.5rc5" + +CVE_STATUS[CVE-2023-4132] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2023-4133] = "fixed-version: Fixed from version 6.3" + +CVE_STATUS[CVE-2023-4134] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2023-4147] = "fixed-version: Fixed from version 6.5rc4" + +CVE_STATUS[CVE-2023-4155] = "fixed-version: Fixed from version 6.5rc6" + +CVE_STATUS[CVE-2023-4194] = "fixed-version: Fixed from version 6.5rc5" + +CVE_STATUS[CVE-2023-4206] = "fixed-version: Fixed from version 6.5rc5" + +CVE_STATUS[CVE-2023-4207] = "fixed-version: Fixed from version 6.5rc5" + +CVE_STATUS[CVE-2023-4208] = "fixed-version: Fixed from version 6.5rc5" + +CVE_STATUS[CVE-2023-4244] = "fixed-version: Fixed from version 6.5rc7" + +CVE_STATUS[CVE-2023-4273] = "fixed-version: Fixed from version 6.5rc5" + +CVE_STATUS[CVE-2023-42752] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-42753] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-42754] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-42755] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-42756] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-4385] = "fixed-version: Fixed from version 5.19rc1" + +CVE_STATUS[CVE-2023-4387] = "fixed-version: Fixed from version 5.18" + +CVE_STATUS[CVE-2023-4389] = "fixed-version: Fixed from version 5.18rc3" + +CVE_STATUS[CVE-2023-4394] = "fixed-version: Fixed from version 6.0rc3" + +CVE_STATUS[CVE-2023-44466] = "fixed-version: Fixed from version 6.5rc2" + +CVE_STATUS[CVE-2023-4459] = "fixed-version: Fixed from version 5.18" + +CVE_STATUS[CVE-2023-4563] = "fixed-version: Fixed from version 6.5rc6" + +CVE_STATUS[CVE-2023-4569] = "fixed-version: Fixed from version 6.5rc7" + +CVE_STATUS[CVE-2023-45862] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-45863] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-45871] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-45898] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-4610] = "fixed-version: Fixed from version 6.4" + +CVE_STATUS[CVE-2023-4611] = "fixed-version: Fixed from version 6.5rc4" + +CVE_STATUS[CVE-2023-4622] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2023-4623] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-46343] = "fixed-version: Fixed from version 6.6rc7" + +CVE_STATUS[CVE-2023-46813] = "fixed-version: Fixed from version 6.6rc7" + +CVE_STATUS[CVE-2023-46838] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-46862] = "fixed-version: Fixed from version 6.6" + +CVE_STATUS[CVE-2023-47233] = "cpe-stable-backport: Backported in 6.6.24" + +CVE_STATUS[CVE-2023-4732] = "fixed-version: Fixed from version 5.14rc1" + +CVE_STATUS[CVE-2023-4881] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-4921] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-50431] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-5090] = "fixed-version: Fixed from version 6.6rc7" + +CVE_STATUS[CVE-2023-51042] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2023-51043] = "fixed-version: Fixed from version 6.5rc3" + +CVE_STATUS[CVE-2023-5158] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-51779] = "cpe-stable-backport: Backported in 6.6.9" + +CVE_STATUS[CVE-2023-5178] = "fixed-version: Fixed from version 6.6rc7" + +CVE_STATUS[CVE-2023-51780] = "cpe-stable-backport: Backported in 6.6.8" + +CVE_STATUS[CVE-2023-51781] = "cpe-stable-backport: Backported in 6.6.8" + +CVE_STATUS[CVE-2023-51782] = "cpe-stable-backport: Backported in 6.6.8" + +CVE_STATUS[CVE-2023-5197] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52340] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2023-52429] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2023-52433] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-52434] = "cpe-stable-backport: Backported in 6.6.8" + +CVE_STATUS[CVE-2023-52435] = "cpe-stable-backport: Backported in 6.6.11" + +CVE_STATUS[CVE-2023-52436] = "cpe-stable-backport: Backported in 6.6.13" + +CVE_STATUS[CVE-2023-52438] = "cpe-stable-backport: Backported in 6.6.13" + +CVE_STATUS[CVE-2023-52439] = "cpe-stable-backport: Backported in 6.6.13" + +CVE_STATUS[CVE-2023-52440] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-52441] = "fixed-version: Fixed from version 6.5rc4" + +CVE_STATUS[CVE-2023-52442] = "fixed-version: Fixed from version 6.5rc4" + +CVE_STATUS[CVE-2023-52443] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52444] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52445] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52446] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52447] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52448] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52449] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52450] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52451] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52452] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52453] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52454] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52455] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52456] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52457] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52458] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52459] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52460] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2023-52461] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2023-52462] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52463] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52464] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52465] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52467] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52468] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52469] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52470] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52471] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2023-52472] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52473] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52474] = "fixed-version: Fixed from version 6.4rc1" + +CVE_STATUS[CVE-2023-52475] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52476] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52477] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52478] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52479] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52480] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52481] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52482] = "fixed-version: Fixed from version 6.6rc4" + +CVE_STATUS[CVE-2023-52483] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52484] = "fixed-version: Fixed from version 6.6rc5" + +# CVE-2023-52485 needs backporting (fixed from 6.8rc1) + +CVE_STATUS[CVE-2023-52486] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52487] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52488] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52489] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52490] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52491] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52492] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52493] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52494] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52495] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52497] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52498] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52499] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52500] = "fixed-version: Fixed from version 6.6rc2" + +CVE_STATUS[CVE-2023-52501] = "fixed-version: Fixed from version 6.6rc2" + +CVE_STATUS[CVE-2023-52502] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52503] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52504] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52505] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52506] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52507] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52508] = "fixed-version: Fixed from version 6.6rc2" + +CVE_STATUS[CVE-2023-52509] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52510] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52511] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-52512] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-52513] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52515] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52516] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-52517] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-52518] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52519] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52520] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52522] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52523] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52524] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52525] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52526] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52527] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52528] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52529] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52530] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52531] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52532] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52559] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2023-52560] = "fixed-version: Fixed from version 6.6rc4" + +CVE_STATUS[CVE-2023-52561] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-52562] = "fixed-version: Fixed from version 6.6rc4" + +CVE_STATUS[CVE-2023-52563] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52564] = "fixed-version: Fixed from version 6.6rc4" + +CVE_STATUS[CVE-2023-52565] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52566] = "fixed-version: Fixed from version 6.6rc4" + +CVE_STATUS[CVE-2023-52567] = "fixed-version: Fixed from version 6.6rc4" + +CVE_STATUS[CVE-2023-52568] = "fixed-version: Fixed from version 6.6rc4" + +CVE_STATUS[CVE-2023-52569] = "fixed-version: Fixed from version 6.6rc2" + +CVE_STATUS[CVE-2023-52570] = "fixed-version: Fixed from version 6.6rc4" + +CVE_STATUS[CVE-2023-52571] = "fixed-version: Fixed from version 6.6rc4" + +CVE_STATUS[CVE-2023-52572] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52573] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52574] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52575] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52576] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52577] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52578] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52580] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52581] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52582] = "fixed-version: Fixed from version 6.6rc3" + +CVE_STATUS[CVE-2023-52583] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52584] = "cpe-stable-backport: Backported in 6.6.16" + +# CVE-2023-52585 needs backporting (fixed from 6.8rc1) + +# CVE-2023-52586 needs backporting (fixed from 6.8rc1) + +CVE_STATUS[CVE-2023-52587] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52588] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52589] = "cpe-stable-backport: Backported in 6.6.16" + +# CVE-2023-52590 needs backporting (fixed from 6.8rc1) + +CVE_STATUS[CVE-2023-52591] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52593] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52594] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52595] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52596] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52597] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52598] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52599] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52600] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52601] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52602] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52603] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52604] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52606] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52607] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52608] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52609] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52610] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52611] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52612] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52613] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-52614] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52615] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52616] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52617] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52618] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52619] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52620] = "fixed-version: Fixed from version 6.4" + +CVE_STATUS[CVE-2023-52621] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52622] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52623] = "cpe-stable-backport: Backported in 6.6.16" + +# CVE-2023-52624 needs backporting (fixed from 6.8rc1) + +# CVE-2023-52625 needs backporting (fixed from 6.8rc1) + +CVE_STATUS[CVE-2023-52626] = "fixed-version: only affects 6.7rc2 onwards" + +CVE_STATUS[CVE-2023-52627] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2023-52628] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-52629] = "fixed-version: Fixed from version 6.6rc1" + +CVE_STATUS[CVE-2023-52630] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2023-52631] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2023-52632] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52633] = "cpe-stable-backport: Backported in 6.6.16" + +# CVE-2023-52634 needs backporting (fixed from 6.8rc1) + +CVE_STATUS[CVE-2023-52635] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2023-52636] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2023-52637] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2023-52638] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2023-52639] = "cpe-stable-backport: Backported in 6.6.22" + +CVE_STATUS[CVE-2023-52640] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2023-52641] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2023-5345] = "fixed-version: Fixed from version 6.6rc4" + +CVE_STATUS[CVE-2023-5633] = "fixed-version: Fixed from version 6.6rc6" + +CVE_STATUS[CVE-2023-5717] = "fixed-version: Fixed from version 6.6rc7" + +CVE_STATUS[CVE-2023-5972] = "fixed-version: Fixed from version 6.6rc7" + +CVE_STATUS[CVE-2023-6039] = "fixed-version: Fixed from version 6.5rc5" + +CVE_STATUS[CVE-2023-6040] = "fixed-version: Fixed from version 5.18rc1" + +CVE_STATUS[CVE-2023-6111] = "cpe-stable-backport: Backported in 6.6.3" + +CVE_STATUS[CVE-2023-6121] = "cpe-stable-backport: Backported in 6.6.4" + +CVE_STATUS[CVE-2023-6176] = "fixed-version: Fixed from version 6.6rc2" + +CVE_STATUS[CVE-2023-6200] = "cpe-stable-backport: Backported in 6.6.9" + +# CVE-2023-6238 has no known resolution + +# CVE-2023-6240 has no known resolution + +CVE_STATUS[CVE-2023-6270] = "cpe-stable-backport: Backported in 6.6.23" + +CVE_STATUS[CVE-2023-6356] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-6531] = "cpe-stable-backport: Backported in 6.6.7" + +# CVE-2023-6535 has no known resolution + +CVE_STATUS[CVE-2023-6536] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2023-6546] = "fixed-version: Fixed from version 6.5rc7" + +CVE_STATUS[CVE-2023-6560] = "cpe-stable-backport: Backported in 6.6.5" + +CVE_STATUS[CVE-2023-6606] = "cpe-stable-backport: Backported in 6.6.9" + +CVE_STATUS[CVE-2023-6610] = "cpe-stable-backport: Backported in 6.6.13" + +CVE_STATUS[CVE-2023-6622] = "cpe-stable-backport: Backported in 6.6.7" + +CVE_STATUS[CVE-2023-6679] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2023-6817] = "cpe-stable-backport: Backported in 6.6.7" + +CVE_STATUS[CVE-2023-6915] = "cpe-stable-backport: Backported in 6.6.13" + +CVE_STATUS[CVE-2023-6931] = "cpe-stable-backport: Backported in 6.6.7" + +CVE_STATUS[CVE-2023-6932] = "cpe-stable-backport: Backported in 6.6.5" + +CVE_STATUS[CVE-2023-7042] = "cpe-stable-backport: Backported in 6.6.23" + +CVE_STATUS[CVE-2023-7192] = "fixed-version: Fixed from version 6.3rc1" + +CVE_STATUS[CVE-2024-0193] = "cpe-stable-backport: Backported in 6.6.10" + +CVE_STATUS[CVE-2024-0340] = "fixed-version: Fixed from version 6.4rc6" + +CVE_STATUS[CVE-2024-0443] = "fixed-version: Fixed from version 6.4rc7" + +CVE_STATUS[CVE-2024-0562] = "fixed-version: Fixed from version 6.0rc3" + +# CVE-2024-0564 has no known resolution + +CVE_STATUS[CVE-2024-0565] = "cpe-stable-backport: Backported in 6.6.8" + +CVE_STATUS[CVE-2024-0582] = "cpe-stable-backport: Backported in 6.6.5" + +CVE_STATUS[CVE-2024-0584] = "cpe-stable-backport: Backported in 6.6.5" + +CVE_STATUS[CVE-2024-0607] = "cpe-stable-backport: Backported in 6.6.3" + +CVE_STATUS[CVE-2024-0639] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2024-0641] = "fixed-version: Fixed from version 6.6rc5" + +CVE_STATUS[CVE-2024-0646] = "cpe-stable-backport: Backported in 6.6.7" + +CVE_STATUS[CVE-2024-0775] = "fixed-version: Fixed from version 6.4rc2" + +CVE_STATUS[CVE-2024-0841] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-1085] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-1086] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-1151] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-1312] = "fixed-version: Fixed from version 6.5rc4" + +# CVE-2024-21803 has no known resolution + +# CVE-2024-2193 has no known resolution + +CVE_STATUS[CVE-2024-22099] = "cpe-stable-backport: Backported in 6.6.23" + +# CVE-2024-22386 has no known resolution + +CVE_STATUS[CVE-2024-22705] = "cpe-stable-backport: Backported in 6.6.10" + +CVE_STATUS[CVE-2024-23196] = "fixed-version: Fixed from version 6.5rc1" + +CVE_STATUS[CVE-2024-23307] = "cpe-stable-backport: Backported in 6.6.24" + +# CVE-2024-23848 has no known resolution + +CVE_STATUS[CVE-2024-23849] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-23850] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-23851] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-24855] = "fixed-version: Fixed from version 6.5rc2" + +# CVE-2024-24857 has no known resolution + +# CVE-2024-24858 has no known resolution + +# CVE-2024-24859 has no known resolution + +CVE_STATUS[CVE-2024-24860] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-24861] = "cpe-stable-backport: Backported in 6.6.24" + +# CVE-2024-24864 has no known resolution + +# CVE-2024-25739 has no known resolution + +# CVE-2024-25740 has no known resolution + +# CVE-2024-25741 has no known resolution + +CVE_STATUS[CVE-2024-25744] = "cpe-stable-backport: Backported in 6.6.7" + +CVE_STATUS[CVE-2024-26581] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26582] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26583] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26584] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26585] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26586] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26587] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26588] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26589] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26590] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26591] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26592] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26593] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26594] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26595] = "cpe-stable-backport: Backported in 6.6.14" + +# CVE-2024-26596 needs backporting (fixed from 6.8rc1) + +CVE_STATUS[CVE-2024-26597] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26598] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26599] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26600] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26601] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26602] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26603] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26604] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26605] = "fixed-version: only affects 6.7 onwards" + +CVE_STATUS[CVE-2024-26606] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26607] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26608] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26610] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26611] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26612] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26614] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26615] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26616] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26617] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26618] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26619] = "fixed-version: only affects 6.7rc5 onwards" + +CVE_STATUS[CVE-2024-26620] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26621] = "fixed-version: only affects 6.7 onwards" + +CVE_STATUS[CVE-2024-26622] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26623] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2024-26625] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2024-26626] = "fixed-version: only affects 6.8rc1 onwards" + +CVE_STATUS[CVE-2024-26627] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2024-26629] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26630] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26631] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26632] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26633] = "cpe-stable-backport: Backported in 6.6.14" + +CVE_STATUS[CVE-2024-26634] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26635] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26636] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26637] = "fixed-version: only affects 6.7 onwards" + +CVE_STATUS[CVE-2024-26638] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26639] = "fixed-version: only affects 6.8rc1 onwards" + +CVE_STATUS[CVE-2024-26640] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2024-26641] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2024-26642] = "cpe-stable-backport: Backported in 6.6.24" + +CVE_STATUS[CVE-2024-26643] = "cpe-stable-backport: Backported in 6.6.24" + +CVE_STATUS[CVE-2024-26644] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26645] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26646] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26647] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26648] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26649] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26650] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26651] = "cpe-stable-backport: Backported in 6.6.23" + +CVE_STATUS[CVE-2024-26652] = "cpe-stable-backport: Backported in 6.6.22" + +CVE_STATUS[CVE-2024-26653] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26654] = "cpe-stable-backport: Backported in 6.6.24" + +# CVE-2024-26655 needs backporting (fixed from 6.9rc2) + +CVE_STATUS[CVE-2024-26656] = "cpe-stable-backport: Backported in 6.6.24" + +CVE_STATUS[CVE-2024-26657] = "fixed-version: only affects 6.7rc1 onwards" + +# CVE-2024-26658 needs backporting (fixed from 6.8rc1) + +CVE_STATUS[CVE-2024-26659] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26660] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26661] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26662] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26663] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26664] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26665] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26666] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26667] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26668] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26669] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26670] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26671] = "cpe-stable-backport: Backported in 6.6.16" + +# CVE-2024-26672 needs backporting (fixed from 6.8rc1) + +CVE_STATUS[CVE-2024-26673] = "cpe-stable-backport: Backported in 6.6.16" + +CVE_STATUS[CVE-2024-26674] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26675] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26676] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26677] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26678] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26679] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26680] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26681] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26682] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26683] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26684] = "cpe-stable-backport: Backported in 6.6.17" + +CVE_STATUS[CVE-2024-26685] = "cpe-stable-backport: Backported in 6.6.18" + +# CVE-2024-26686 needs backporting (fixed from 6.8rc4) + +CVE_STATUS[CVE-2024-26687] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26688] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26689] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26690] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26691] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26692] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26693] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26694] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26695] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26696] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26697] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26698] = "cpe-stable-backport: Backported in 6.6.18" + +# CVE-2024-26699 needs backporting (fixed from 6.8rc5) + +CVE_STATUS[CVE-2024-26700] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26702] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26703] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26704] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26705] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26706] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26707] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26708] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26709] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26710] = "fixed-version: only affects 6.8rc1 onwards" + +CVE_STATUS[CVE-2024-26711] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26712] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26713] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26714] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26715] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26716] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26717] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26718] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26719] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26720] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26721] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26722] = "fixed-version: only affects 6.7rc5 onwards" + +CVE_STATUS[CVE-2024-26723] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26724] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26725] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26726] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26727] = "cpe-stable-backport: Backported in 6.6.18" + +CVE_STATUS[CVE-2024-26728] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26729] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26730] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26731] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26732] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26733] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26734] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26735] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26736] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26737] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26738] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26739] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26740] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26741] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26742] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26743] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26744] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26745] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26746] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26747] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26748] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26749] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26750] = "fixed-version: only affects 6.8rc5 onwards" + +CVE_STATUS[CVE-2024-26751] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26752] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26753] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26754] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26755] = "fixed-version: only affects 6.7rc1 onwards" + +# CVE-2024-26756 needs backporting (fixed from 6.8rc6) + +# CVE-2024-26757 needs backporting (fixed from 6.8rc6) + +# CVE-2024-26758 needs backporting (fixed from 6.8rc6) + +CVE_STATUS[CVE-2024-26759] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26760] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26761] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26762] = "fixed-version: only affects 6.7rc1 onwards" + +CVE_STATUS[CVE-2024-26763] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26764] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26765] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26766] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26767] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26768] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26769] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26770] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26771] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26772] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26773] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26774] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26775] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26776] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26777] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26778] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26779] = "cpe-stable-backport: Backported in 6.6.19" + +CVE_STATUS[CVE-2024-26780] = "fixed-version: only affects 6.8rc4 onwards" + +CVE_STATUS[CVE-2024-26781] = "fixed-version: only affects 6.8rc6 onwards" + +CVE_STATUS[CVE-2024-26782] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26783] = "cpe-stable-backport: Backported in 6.6.22" + +# CVE-2024-26784 needs backporting (fixed from 6.8rc7) + +# CVE-2024-26785 needs backporting (fixed from 6.8rc7) + +CVE_STATUS[CVE-2024-26786] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26787] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26788] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26789] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26790] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26791] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26792] = "fixed-version: only affects 6.8rc4 onwards" + +CVE_STATUS[CVE-2024-26793] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26794] = "fixed-version: only affects 6.8rc6 onwards" + +CVE_STATUS[CVE-2024-26795] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26796] = "cpe-stable-backport: Backported in 6.6.21" + +# CVE-2024-26797 needs backporting (fixed from 6.8rc7) + +CVE_STATUS[CVE-2024-26798] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26799] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26800] = "fixed-version: only affects 6.8rc5 onwards" + +CVE_STATUS[CVE-2024-26801] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26802] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26803] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26804] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26805] = "cpe-stable-backport: Backported in 6.6.21" + +# CVE-2024-26806 needs backporting (fixed from 6.8rc7) + +CVE_STATUS[CVE-2024-26807] = "cpe-stable-backport: Backported in 6.6.21" + +CVE_STATUS[CVE-2024-26808] = "cpe-stable-backport: Backported in 6.6.15" + +CVE_STATUS[CVE-2024-26809] = "cpe-stable-backport: Backported in 6.6.23" + diff --git a/meta/recipes-kernel/linux/generate-cve-exclusions.py b/meta/recipes-kernel/linux/generate-cve-exclusions.py new file mode 100755 index 0000000000..aa9195aab4 --- /dev/null +++ b/meta/recipes-kernel/linux/generate-cve-exclusions.py @@ -0,0 +1,98 @@ +#! /usr/bin/env python3 + +# Generate granular CVE status metadata for a specific version of the kernel +# using data from linuxkernelcves.com. +# +# SPDX-License-Identifier: GPL-2.0-only + +import argparse +import datetime +import json +import pathlib +import re + +from packaging.version import Version + + +def parse_version(s): + """ + Parse the version string and either return a packaging.version.Version, or + None if the string was unset or "unk". + """ + if s and s != "unk": + # packaging.version.Version doesn't approve of versions like v5.12-rc1-dontuse + s = s.replace("-dontuse", "") + return Version(s) + return None + + +def main(argp=None): + parser = argparse.ArgumentParser() + parser.add_argument("datadir", type=pathlib.Path, help="Path to a clone of https://github.com/nluedtke/linux_kernel_cves") + parser.add_argument("version", type=Version, help="Kernel version number to generate data for, such as 6.1.38") + + args = parser.parse_args(argp) + datadir = args.datadir + version = args.version + base_version = f"{version.major}.{version.minor}" + + with open(datadir / "data" / "kernel_cves.json", "r") as f: + cve_data = json.load(f) + + with open(datadir / "data" / "stream_fixes.json", "r") as f: + stream_data = json.load(f) + + print(f""" +# Auto-generated CVE metadata, DO NOT EDIT BY HAND. +# Generated at {datetime.datetime.now(datetime.timezone.utc)} for version {version} + +python check_kernel_cve_status_version() {{ + this_version = "{version}" + kernel_version = d.getVar("LINUX_VERSION") + if kernel_version != this_version: + bb.warn("Kernel CVE status needs updating: generated for %s but kernel is %s" % (this_version, kernel_version)) +}} +do_cve_check[prefuncs] += "check_kernel_cve_status_version" +""") + + for cve, data in cve_data.items(): + if "affected_versions" not in data: + print(f"# Skipping {cve}, no affected_versions") + print() + continue + + affected = data["affected_versions"] + first_affected, fixed = re.search(r"(.+) to (.+)", affected).groups() + first_affected = parse_version(first_affected) + fixed = parse_version(fixed) + + if not fixed: + print(f"# {cve} has no known resolution") + elif first_affected and version < first_affected: + print(f'CVE_STATUS[{cve}] = "fixed-version: only affects {first_affected} onwards"') + elif fixed <= version: + print( + f'CVE_STATUS[{cve}] = "fixed-version: Fixed from version {fixed}"' + ) + else: + if cve in stream_data: + backport_data = stream_data[cve] + if base_version in backport_data: + backport_ver = Version(backport_data[base_version]["fixed_version"]) + if backport_ver <= version: + print( + f'CVE_STATUS[{cve}] = "cpe-stable-backport: Backported in {backport_ver}"' + ) + else: + # TODO print a note that the kernel needs bumping + print(f"# {cve} needs backporting (fixed from {backport_ver})") + else: + print(f"# {cve} needs backporting (fixed from {fixed})") + else: + print(f"# {cve} needs backporting (fixed from {fixed})") + + print() + + +if __name__ == "__main__": + main() diff --git a/meta/recipes-kernel/linux/kernel-devsrc.bb b/meta/recipes-kernel/linux/kernel-devsrc.bb index 84e99233e6..7724967151 100644 --- a/meta/recipes-kernel/linux/kernel-devsrc.bb +++ b/meta/recipes-kernel/linux/kernel-devsrc.bb @@ -5,7 +5,7 @@ development or external module builds" SECTION = "kernel" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" inherit linux-kernel-base @@ -47,21 +47,21 @@ do_install() { # create a /usr/src/kernel symlink to /lib/modules/<version>/source mkdir -p ${D}/usr/src ( - cd ${D}/usr/src - lnr ${D}${KERNEL_BUILD_ROOT}${KERNEL_VERSION}/source kernel + cd ${D}/usr/src + ln -rs ${D}${KERNEL_BUILD_ROOT}${KERNEL_VERSION}/source kernel ) # for on target purposes, we unify build and source ( - cd $kerneldir - ln -s build source + cd $kerneldir + ln -s build source ) # first copy everything ( - cd ${S} - cp --parents $(find -type f -name "Makefile*" -o -name "Kconfig*") $kerneldir/build - cp --parents $(find -type f -name "Build" -o -name "Build.include") $kerneldir/build + cd ${S} + cp --parents $(find -type f -name "Makefile*" -o -name "Kconfig*") $kerneldir/build + cp --parents $(find -type f -name "Build" -o -name "Build.include") $kerneldir/build ) # then drop all but the needed Makefiles/Kconfig files @@ -70,92 +70,114 @@ do_install() { # now copy in parts from the build that we'll need later ( - cd ${B} - - cp Module.symvers $kerneldir/build - cp System.map* $kerneldir/build - if [ -s Module.markers ]; then - cp Module.markers $kerneldir/build - fi - - cp -a .config $kerneldir/build - - # This scripts copy blow up QA, so for now, we require a more - # complex 'make scripts' to restore these, versus copying them - # here. Left as a reference to indicate that we know the scripts must - # be dealt with. - # cp -a scripts $kerneldir/build - - # although module.lds can be regenerated on target via 'make modules_prepare' - # there are several places where 'makes scripts prepare' is done, and that won't - # regenerate the file. So we copy it onto the target as a migration to using - # modules_prepare - cp -a --parents scripts/module.lds $kerneldir/build/ 2>/dev/null || : + cd ${B} + + if [ -s Module.symvers ]; then + cp Module.symvers $kerneldir/build + fi + cp System.map* $kerneldir/build + if [ -s Module.markers ]; then + cp Module.markers $kerneldir/build + fi + + cp -a .config $kerneldir/build + + # This scripts copy blow up QA, so for now, we require a more + # complex 'make scripts' to restore these, versus copying them + # here. Left as a reference to indicate that we know the scripts must + # be dealt with. + # cp -a scripts $kerneldir/build + + # although module.lds can be regenerated on target via 'make modules_prepare' + # there are several places where 'makes scripts prepare' is done, and that won't + # regenerate the file. So we copy it onto the target as a migration to using + # modules_prepare + cp -a --parents scripts/module.lds $kerneldir/build/ 2>/dev/null || : if [ -d arch/${ARCH}/scripts ]; then - cp -a arch/${ARCH}/scripts $kerneldir/build/arch/${ARCH} - fi - if [ -f arch/${ARCH}/*lds ]; then - cp -a arch/${ARCH}/*lds $kerneldir/build/arch/${ARCH} - fi - - rm -f $kerneldir/build/scripts/*.o - rm -f $kerneldir/build/scripts/*/*.o - - if [ "${ARCH}" = "powerpc" ]; then - if [ -e arch/powerpc/lib/crtsavres.S ] || - [ -e arch/powerpc/lib/crtsavres.o ]; then - cp -a --parents arch/powerpc/lib/crtsavres.[So] $kerneldir/build/ - fi - fi - - if [ "${ARCH}" = "arm64" ]; then - cp -a --parents arch/arm64/kernel/vdso/vdso.lds $kerneldir/build/ - fi - - cp -a include $kerneldir/build/include - - # we don't usually copy generated files, since they can be rebuilt on the target, - # but without this file, we get a forced syncconfig run in v5.8+, which prompts and - # breaks workflows. - cp -a --parents include/generated/autoconf.h $kerneldir/build 2>/dev/null || : - - if [ -e $kerneldir/include/generated/.vdso-offsets.h.cmd ]; then - rm $kerneldir/include/generated/.vdso-offsets.h.cmd - fi + cp -a arch/${ARCH}/scripts $kerneldir/build/arch/${ARCH} + fi + if [ -f arch/${ARCH}/*lds ]; then + cp -a arch/${ARCH}/*lds $kerneldir/build/arch/${ARCH} + fi + + rm -f $kerneldir/build/scripts/*.o + rm -f $kerneldir/build/scripts/*/*.o + + if [ "${ARCH}" = "powerpc" ]; then + if [ -e arch/powerpc/lib/crtsavres.S ] || + [ -e arch/powerpc/lib/crtsavres.o ]; then + cp -a --parents arch/powerpc/lib/crtsavres.[So] $kerneldir/build/ + fi + fi + + if [ "${ARCH}" = "arm64" -o "${ARCH}" = "riscv" ]; then + if [ -e arch/${ARCH}/kernel/vdso/vdso.lds ]; then + cp -a --parents arch/${ARCH}/kernel/vdso/vdso.lds $kerneldir/build/ + fi + fi + if [ "${ARCH}" = "powerpc" ]; then + cp -a --parents arch/powerpc/kernel/vdso32/vdso32.lds $kerneldir/build 2>/dev/null || : + cp -a --parents arch/powerpc/kernel/vdso64/vdso64.lds $kerneldir/build 2>/dev/null || : + # v5.19+ + cp -a --parents arch/powerpc/kernel/vdso/vdso*.lds $kerneldir/build 2>/dev/null || : + fi + + cp -a include $kerneldir/build/include + + # we don't usually copy generated files, since they can be rebuilt on the target, + # but without this file, we get a forced syncconfig run in v5.8+, which prompts and + # breaks workflows. + cp -a --parents include/generated/autoconf.h $kerneldir/build 2>/dev/null || : + + rm -f $kerneldir/include/generated/.vdso-offsets.h.cmd + rm -f $kerneldir/build/include/generated/.vdso-offsets.h.cmd + rm -f $kerneldir/build/include/generated/.compat_vdso-offsets.h.cmd + rm -f $kerneldir/build/include/generated/.vdso32-offsets.h.cmd + rm -f $kerneldir/build/include/generated/.vdso64-offsets.h.cmd ) # now grab the chunks from the source tree that we need ( - cd ${S} + cd ${S} + + cp -a scripts $kerneldir/build + + # for v6.1+ (otherwise we are missing multiple default targets) + cp -a --parents Kbuild $kerneldir/build 2>/dev/null || : - cp -a scripts $kerneldir/build + # For v6.6+ the debian packing is moved out to seperate rules file + # Remove as we else would ned to RDEPEND on make + rm $kerneldir/build/scripts/package/debian/rules 2>/dev/null || : - # if our build dir had objtool, it will also be rebuilt on target, so - # we copy what is required for that build - if [ -f ${B}/tools/objtool/objtool ]; then - # these are a few files associated with objtool, since we'll need to - # rebuild it - cp -a --parents tools/build/Build.include $kerneldir/build/ - cp -a --parents tools/build/Build $kerneldir/build/ - cp -a --parents tools/build/fixdep.c $kerneldir/build/ - cp -a --parents tools/scripts/utilities.mak $kerneldir/build/ + # if our build dir had objtool, it will also be rebuilt on target, so + # we copy what is required for that build + if [ -f ${B}/tools/objtool/objtool ]; then + # these are a few files associated with objtool, since we'll need to + # rebuild it + cp -a --parents tools/build/Build.include $kerneldir/build/ + cp -a --parents tools/build/Build $kerneldir/build/ + cp -a --parents tools/build/fixdep.c $kerneldir/build/ + cp -a --parents tools/scripts/utilities.mak $kerneldir/build/ - # extra files, just in case - cp -a --parents tools/objtool/* $kerneldir/build/ - cp -a --parents tools/lib/* $kerneldir/build/ - cp -a --parents tools/lib/subcmd/* $kerneldir/build/ + # extra files, just in case + cp -a --parents tools/objtool/* $kerneldir/build/ + cp -a --parents tools/lib/* $kerneldir/build/ + cp -a --parents tools/lib/subcmd/* $kerneldir/build/ - cp -a --parents tools/include/* $kerneldir/build/ + cp -a --parents tools/include/* $kerneldir/build/ - cp -a --parents $(find tools/arch/${ARCH}/ -type f) $kerneldir/build/ - fi + cp -a --parents $(find tools/arch/${ARCH}/ -type f) $kerneldir/build/ + fi - if [ "${ARCH}" = "arm64" ]; then - # arch/arm64/include/asm/xen references arch/arm - cp -a --parents arch/arm/include/asm/xen $kerneldir/build/ - # arch/arm64/include/asm/opcodes.h references arch/arm - cp -a --parents arch/arm/include/asm/opcodes.h $kerneldir/build/ + if [ "${ARCH}" = "arm64" ]; then + # arch/arm64/include/asm/xen references arch/arm + cp -a --parents arch/arm/include/asm/xen $kerneldir/build/ + # arch/arm64/include/asm/opcodes.h references arch/arm + cp -a --parents arch/arm/include/asm/opcodes.h $kerneldir/build/ + + # v6.1+ + cp -a --parents arch/arm64/kernel/asm-offsets.c $kerneldir/build/ cp -a --parents arch/arm64/kernel/vdso/*gettimeofday.* $kerneldir/build/ cp -a --parents arch/arm64/kernel/vdso/sigreturn.S $kerneldir/build/ @@ -163,106 +185,174 @@ do_install() { cp -a --parents arch/arm64/kernel/vdso/gen_vdso_offsets.sh $kerneldir/build/ cp -a --parents arch/arm64/kernel/module.lds $kerneldir/build/ 2>/dev/null || : - fi - if [ "${ARCH}" = "powerpc" ]; then - # 5.0 needs these files, but don't error if they aren't present in the source - cp -a --parents arch/${ARCH}/kernel/syscalls/syscall.tbl $kerneldir/build/ 2>/dev/null || : - cp -a --parents arch/${ARCH}/kernel/syscalls/syscalltbl.sh $kerneldir/build/ 2>/dev/null || : - cp -a --parents arch/${ARCH}/kernel/syscalls/syscallhdr.sh $kerneldir/build/ 2>/dev/null || : - fi + # 5.13+ needs these tools + cp -a --parents arch/arm64/tools/gen-cpucaps.awk $kerneldir/build/ 2>/dev/null || : + cp -a --parents arch/arm64/tools/cpucaps $kerneldir/build/ 2>/dev/null || : + + # 5.19+ + cp -a --parents arch/arm64/tools/gen-sysreg.awk $kerneldir/build/ 2>/dev/null || : + cp -a --parents arch/arm64/tools/sysreg $kerneldir/build/ 2>/dev/null || : + + if [ -e $kerneldir/build/arch/arm64/tools/gen-cpucaps.awk ]; then + sed -i -e "s,#!.*awk.*,#!${USRBINPATH}/env awk," $kerneldir/build/arch/arm64/tools/gen-cpucaps.awk + fi + if [ -e $kerneldir/build/arch/arm64/tools/gen-sysreg.awk ]; then + sed -i -e "s,#!.*awk.*,#!${USRBINPATH}/env awk," $kerneldir/build/arch/arm64/tools/gen-sysreg.awk + fi + fi + + if [ "${ARCH}" = "powerpc" ]; then + # 5.0 needs these files, but don't error if they aren't present in the source + cp -a --parents arch/${ARCH}/kernel/syscalls/syscall.tbl $kerneldir/build/ 2>/dev/null || : + cp -a --parents arch/${ARCH}/kernel/syscalls/syscalltbl.sh $kerneldir/build/ 2>/dev/null || : + cp -a --parents arch/${ARCH}/kernel/syscalls/syscallhdr.sh $kerneldir/build/ 2>/dev/null || : + cp -a --parents arch/${ARCH}/kernel/vdso32/* $kerneldir/build/ 2>/dev/null || : + cp -a --parents arch/${ARCH}/kernel/vdso64/* $kerneldir/build/ 2>/dev/null || : + + # v5.19+ + cp -a --parents arch/powerpc/kernel/vdso/*.S $kerneldir/build 2>/dev/null || : + cp -a --parents arch/powerpc/kernel/vdso/*gettimeofday.* $kerneldir/build 2>/dev/null || : + cp -a --parents arch/powerpc/kernel/vdso/gen_vdso*_offsets.sh $kerneldir/build/ 2>/dev/null || : + + # v6,1+ + cp -a --parents arch/powerpc/kernel/asm-offsets.c $kerneldir/build/ 2>/dev/null || : + cp -a --parents arch/powerpc/kernel/head_booke.h $kerneldir/build/ 2>/dev/null || : + fi + if [ "${ARCH}" = "riscv" ]; then + cp -a --parents arch/riscv/kernel/vdso/*gettimeofday.* $kerneldir/build/ + cp -a --parents arch/riscv/kernel/vdso/note.S $kerneldir/build/ + # v6.1+ + cp -a --parents arch/riscv/kernel/asm-offsets.c $kerneldir/build/ + if [ -e arch/riscv/kernel/vdso/gen_vdso_offsets.sh ]; then + cp -a --parents arch/riscv/kernel/vdso/gen_vdso_offsets.sh $kerneldir/build/ + fi + cp -a --parents arch/riscv/kernel/vdso/* $kerneldir/build/ 2>/dev/null || : + if [ -e arch/riscv/kernel/compat_vdso/gen_compat_vdso_offsets.sh ]; then + cp -a --parents arch/riscv/kernel/compat_vdso/gen_compat_vdso_offsets.sh $kerneldir/build/ + fi + cp -a --parents arch/riscv/kernel/compat_vdso/* $kerneldir/build/ 2>/dev/null || : + fi + + # include the machine specific headers for ARM variants, if available. + if [ "${ARCH}" = "arm" ]; then + cp -a --parents arch/${ARCH}/mach-*/include $kerneldir/build/ - # include the machine specific headers for ARM variants, if available. - if [ "${ARCH}" = "arm" ]; then - cp -a --parents arch/${ARCH}/mach-*/include $kerneldir/build/ + # include a few files for 'make prepare' + cp -a --parents arch/arm/tools/gen-mach-types $kerneldir/build/ + cp -a --parents arch/arm/tools/mach-types $kerneldir/build/ - # include a few files for 'make prepare' - cp -a --parents arch/arm/tools/gen-mach-types $kerneldir/build/ - cp -a --parents arch/arm/tools/mach-types $kerneldir/build/ + # 5.19+ + cp -a --parents arch/arm/tools/gen-sysreg.awk $kerneldir/build/ 2>/dev/null || : - # ARM syscall table tools only exist for kernels v4.10 or later + # ARM syscall table tools only exist for kernels v4.10 or later SYSCALL_TOOLS=$(find arch/arm/tools -name "syscall*") if [ -n "$SYSCALL_TOOLS" ] ; then - cp -a --parents $SYSCALL_TOOLS $kerneldir/build/ + cp -a --parents $SYSCALL_TOOLS $kerneldir/build/ fi cp -a --parents arch/arm/kernel/module.lds $kerneldir/build/ 2>/dev/null || : - fi - - if [ -d arch/${ARCH}/include ]; then - cp -a --parents arch/${ARCH}/include $kerneldir/build/ - fi - - cp -a include $kerneldir/build - - cp -a --parents lib/vdso/* $kerneldir/build/ 2>/dev/null || : - - cp -a --parents tools/include/tools/le_byteshift.h $kerneldir/build/ - cp -a --parents tools/include/tools/be_byteshift.h $kerneldir/build/ - - # required for generate missing syscalls prepare phase - cp -a --parents $(find arch/x86 -type f -name "syscall_32.tbl") $kerneldir/build - cp -a --parents $(find arch/arm -type f -name "*.tbl") $kerneldir/build 2>/dev/null || : - - if [ "${ARCH}" = "x86" ]; then - # files for 'make prepare' to succeed with kernel-devel - cp -a --parents $(find arch/x86 -type f -name "syscall_32.tbl") $kerneldir/build/ - cp -a --parents $(find arch/x86 -type f -name "syscalltbl.sh") $kerneldir/build/ - cp -a --parents $(find arch/x86 -type f -name "syscallhdr.sh") $kerneldir/build/ - cp -a --parents $(find arch/x86 -type f -name "syscall_64.tbl") $kerneldir/build/ - cp -a --parents arch/x86/tools/relocs_32.c $kerneldir/build/ - cp -a --parents arch/x86/tools/relocs_64.c $kerneldir/build/ - cp -a --parents arch/x86/tools/relocs.c $kerneldir/build/ - cp -a --parents arch/x86/tools/relocs_common.c $kerneldir/build/ - cp -a --parents arch/x86/tools/relocs.h $kerneldir/build/ - cp -a --parents arch/x86/tools/gen-insn-attr-x86.awk $kerneldir/build/ 2>/dev/null || : - cp -a --parents arch/x86/purgatory/purgatory.c $kerneldir/build/ - - # 4.18 + have unified the purgatory files, so we ignore any errors if - # these files are not present - cp -a --parents arch/x86/purgatory/sha256.h $kerneldir/build/ 2>/dev/null || : - cp -a --parents arch/x86/purgatory/sha256.c $kerneldir/build/ 2>/dev/null || : - - cp -a --parents arch/x86/purgatory/stack.S $kerneldir/build/ - cp -a --parents arch/x86/purgatory/string.c $kerneldir/build/ 2>/dev/null || : - cp -a --parents arch/x86/purgatory/setup-x86_64.S $kerneldir/build/ - cp -a --parents arch/x86/purgatory/entry64.S $kerneldir/build/ - cp -a --parents arch/x86/boot/string.h $kerneldir/build/ - cp -a --parents arch/x86/boot/string.c $kerneldir/build/ - cp -a --parents arch/x86/boot/compressed/string.c $kerneldir/build/ 2>/dev/null || : - cp -a --parents arch/x86/boot/ctype.h $kerneldir/build/ - - # objtool requires these files - cp -a --parents arch/x86/lib/inat.c $kerneldir/build/ 2>/dev/null || : - cp -a --parents arch/x86/lib/insn.c $kerneldir/build/ 2>/dev/null || : - fi - - if [ "${ARCH}" = "mips" ]; then - cp -a --parents arch/mips/Kbuild.platforms $kerneldir/build/ - cp --parents $(find -type f -name "Platform") $kerneldir/build - cp --parents arch/mips/boot/tools/relocs* $kerneldir/build - cp -a --parents arch/mips/kernel/asm-offsets.c $kerneldir/build - cp -a --parents kernel/time/timeconst.bc $kerneldir/build - cp -a --parents kernel/bounds.c $kerneldir/build - cp -a --parents Kbuild $kerneldir/build - cp -a --parents arch/mips/kernel/syscalls/*.sh $kerneldir/build 2>/dev/null || : - cp -a --parents arch/mips/kernel/syscalls/*.tbl $kerneldir/build 2>/dev/null || : - cp -a --parents arch/mips/tools/elf-entry.c $kerneldir/build 2>/dev/null || : - fi + # v6.1+ + cp -a --parents arch/arm/kernel/asm-offsets.c $kerneldir/build/ 2>/dev/null || : + cp -a --parents arch/arm/kernel/signal.h $kerneldir/build/ 2>/dev/null || : + fi + + if [ -d arch/${ARCH}/include ]; then + cp -a --parents arch/${ARCH}/include $kerneldir/build/ + fi + + cp -a include $kerneldir/build + + cp -a --parents lib/vdso/* $kerneldir/build/ 2>/dev/null || : + + cp -a --parents tools/include/tools/le_byteshift.h $kerneldir/build/ + cp -a --parents tools/include/tools/be_byteshift.h $kerneldir/build/ + + # required for generate missing syscalls prepare phase + cp -a --parents $(find arch/x86 -type f -name "syscall_32.tbl") $kerneldir/build + cp -a --parents $(find arch/arm -type f -name "*.tbl") $kerneldir/build 2>/dev/null || : + + if [ "${ARCH}" = "x86" ]; then + # files for 'make prepare' to succeed with kernel-devel + cp -a --parents $(find arch/x86 -type f -name "syscall_32.tbl") $kerneldir/build/ 2>/dev/null || : + cp -a --parents $(find arch/x86 -type f -name "syscalltbl.sh") $kerneldir/build/ 2>/dev/null || : + cp -a --parents $(find arch/x86 -type f -name "syscallhdr.sh") $kerneldir/build/ 2>/dev/null || : + cp -a --parents $(find arch/x86 -type f -name "syscall_64.tbl") $kerneldir/build/ 2>/dev/null || : + cp -a --parents arch/x86/tools/relocs_32.c $kerneldir/build/ + cp -a --parents arch/x86/tools/relocs_64.c $kerneldir/build/ + cp -a --parents arch/x86/tools/relocs.c $kerneldir/build/ + cp -a --parents arch/x86/tools/relocs_common.c $kerneldir/build/ + cp -a --parents arch/x86/tools/relocs.h $kerneldir/build/ + cp -a --parents arch/x86/tools/gen-insn-attr-x86.awk $kerneldir/build/ 2>/dev/null || : + cp -a --parents arch/x86/purgatory/purgatory.c $kerneldir/build/ + + # 4.18 + have unified the purgatory files, so we ignore any errors if + # these files are not present + cp -a --parents arch/x86/purgatory/sha256.h $kerneldir/build/ 2>/dev/null || : + cp -a --parents arch/x86/purgatory/sha256.c $kerneldir/build/ 2>/dev/null || : + + cp -a --parents arch/x86/purgatory/stack.S $kerneldir/build/ + cp -a --parents arch/x86/purgatory/string.c $kerneldir/build/ 2>/dev/null || : + cp -a --parents arch/x86/purgatory/setup-x86_64.S $kerneldir/build/ + cp -a --parents arch/x86/purgatory/entry64.S $kerneldir/build/ + cp -a --parents arch/x86/boot/string.h $kerneldir/build/ + cp -a --parents arch/x86/boot/string.c $kerneldir/build/ + cp -a --parents arch/x86/boot/compressed/string.c $kerneldir/build/ 2>/dev/null || : + cp -a --parents arch/x86/boot/ctype.h $kerneldir/build/ + + # objtool requires these files + cp -a --parents arch/x86/lib/inat.c $kerneldir/build/ 2>/dev/null || : + cp -a --parents arch/x86/lib/insn.c $kerneldir/build/ 2>/dev/null || : + + # v6.1+ + cp -a --parents arch/x86/kernel/asm-offsets* $kerneldir/build || : + # for capabilities.h, vmx.h + cp -a --parents arch/x86/kvm/vmx/*.h $kerneldir/build || : + # for lapic.h, hyperv.h .... + cp -a --parents arch/x86/kvm/*.h $kerneldir/build || : + fi + + # moved from arch/mips to all arches for v6.1+ + cp -a --parents kernel/time/timeconst.bc $kerneldir/build 2>/dev/null || : + cp -a --parents kernel/bounds.c $kerneldir/build 2>/dev/null || : + + if [ "${ARCH}" = "mips" ]; then + cp -a --parents arch/mips/Kbuild.platforms $kerneldir/build/ + cp --parents $(find -type f -name "Platform") $kerneldir/build + cp --parents arch/mips/boot/tools/relocs* $kerneldir/build + cp -a --parents arch/mips/kernel/asm-offsets.c $kerneldir/build + cp -a --parents Kbuild $kerneldir/build + cp -a --parents arch/mips/kernel/syscalls/*.sh $kerneldir/build 2>/dev/null || : + cp -a --parents arch/mips/kernel/syscalls/*.tbl $kerneldir/build 2>/dev/null || : + cp -a --parents arch/mips/tools/elf-entry.c $kerneldir/build 2>/dev/null || : + fi + + if [ "${ARCH}" = "loongarch" ]; then + cp -a --parents arch/loongarch/kernel/asm-offsets.c $kerneldir/build + cp -a --parents Kbuild $kerneldir/build + cp -a --parents arch/loongarch/vdso/*.S $kerneldir/build 2>/dev/null || : + cp -a --parents arch/loongarch/vdso/*gettimeofday.* $kerneldir/build 2>/dev/null || : + cp -a --parents arch/loongarch/vdso/*getcpu.* $kerneldir/build 2>/dev/null || : + cp -a --parents arch/loongarch/vdso/gen_vdso*_offsets.sh $kerneldir/build/ 2>/dev/null || : + fi # required to build scripts/selinux/genheaders/genheaders cp -a --parents security/selinux/include/* $kerneldir/build/ - # copy any localversion files - cp -a localversion* $kerneldir/build/ 2>/dev/null || : + # copy any localversion files + cp -a localversion* $kerneldir/build/ 2>/dev/null || : ) # Make sure the Makefile and version.h have a matching timestamp so that # external modules can be built touch -r $kerneldir/build/Makefile $kerneldir/build/include/generated/uapi/linux/version.h - # Copy .config to include/config/auto.conf so "make prepare" is unnecessary. - cp $kerneldir/build/.config $kerneldir/build/include/config/auto.conf + # This fixes a warning that the compilers don't match when building a module + # Change: CONFIG_CC_VERSION_TEXT="x86_64-poky-linux-gcc (GCC) 12.2.0" to "gcc (GCC) 12.2.0" + # #define CONFIG_CC_VERSION_TEXT "x86_64-poky-linux-gcc (GCC) 12.2.0" to "gcc (GCC) 12.2.0" + sed -i 's/CONFIG_CC_VERSION_TEXT=".*\(gcc.*\)"/CONFIG_CC_VERSION_TEXT="\1"/' "$kerneldir/build/.config" + sed -i 's/#define CONFIG_CC_VERSION_TEXT ".*\(gcc.*\)"/#define CONFIG_CC_VERSION_TEXT "\1"/' $kerneldir/build/include/generated/autoconf.h + sed -i 's/CONFIG_CC_VERSION_TEXT=".*\(gcc.*\)"/CONFIG_CC_VERSION_TEXT="\1"/' $kerneldir/build/include/config/auto.conf # make sure these are at least as old as the .config, or rebuilds will trigger touch -r $kerneldir/build/.config $kerneldir/build/include/generated/autoconf.h 2>/dev/null || : @@ -273,7 +363,11 @@ do_install() { sed -i 's/ifneq "$(LD)" ".*-linux-.*ld.bfd.*$/ifneq "$(LD)" "ld"/' "$kerneldir/build/include/config/auto.conf.cmd" sed -i 's/ifneq "$(AR)" ".*-linux-.*ar.*$/ifneq "$(AR)" "ar"/' "$kerneldir/build/include/config/auto.conf.cmd" sed -i 's/ifneq "$(OBJCOPY)" ".*-linux-.*objcopy.*$/ifneq "$(OBJCOPY)" "objcopy"/' "$kerneldir/build/include/config/auto.conf.cmd" - sed -i 's/ifneq "$(NM)" ".*-linux-.*nm.*$/ifneq "$(NM)" "nm"/' "$kerneldir/build/include/config/auto.conf.cmd" + if [ "${ARCH}" = "powerpc" ]; then + sed -i 's/ifneq "$(NM)" ".*-linux-.*nm.*$/ifneq "$(NM)" "nm --synthetic"/' "$kerneldir/build/include/config/auto.conf.cmd" + else + sed -i 's/ifneq "$(NM)" ".*-linux-.*nm.*$/ifneq "$(NM)" "nm"/' "$kerneldir/build/include/config/auto.conf.cmd" + fi sed -i 's/ifneq "$(HOSTCXX)" ".*$/ifneq "$(HOSTCXX)" "g++"/' "$kerneldir/build/include/config/auto.conf.cmd" sed -i 's/ifneq "$(HOSTCC)" ".*$/ifneq "$(HOSTCC)" "gcc"/' "$kerneldir/build/include/config/auto.conf.cmd" sed -i 's/ifneq "$(CC_VERSION_TEXT)".*\(gcc.*\)"/ifneq "$(CC_VERSION_TEXT)" "\1"/' "$kerneldir/build/include/config/auto.conf.cmd" @@ -286,9 +380,9 @@ do_install() { # left as /usr/bin/python rootfs assembly will fail, since we only have python3 # in the RDEPENDS (and the python3 package does not include /usr/bin/python) for ss in $(find $kerneldir/build/scripts -type f -name '*'); do - sed -i 's,/usr/bin/python2,/usr/bin/env python3,' "$ss" - sed -i 's,/usr/bin/env python2,/usr/bin/env python3,' "$ss" - sed -i 's,/usr/bin/python,/usr/bin/env python3,' "$ss" + sed -i 's,/usr/bin/python2,/usr/bin/env python3,' "$ss" + sed -i 's,/usr/bin/env python2,/usr/bin/env python3,' "$ss" + sed -i 's,/usr/bin/python,/usr/bin/env python3,' "$ss" done chown -R root:root ${D} @@ -297,13 +391,17 @@ do_install() { # Ensure we don't race against "make scripts" during cpio do_install[lockfiles] = "${TMPDIR}/kernel-scripts.lock" -FILES_${PN} = "${KERNEL_BUILD_ROOT} ${KERNEL_SRC_PATH}" -FILES_${PN}-dbg += "${KERNEL_BUILD_ROOT}*/build/scripts/*/.debug/*" +FILES:${PN} = "${KERNEL_BUILD_ROOT} ${KERNEL_SRC_PATH}" +FILES:${PN}-dbg += "${KERNEL_BUILD_ROOT}*/build/scripts/*/.debug/*" -RDEPENDS_${PN} = "bc python3 flex bison ${TCLIBC}-utils" +RDEPENDS:${PN} = "bc python3-core flex bison ${TCLIBC}-utils gawk" # 4.15+ needs these next two RDEPENDS -RDEPENDS_${PN} += "openssl-dev util-linux" +RDEPENDS:${PN} += "openssl-dev util-linux" # and x86 needs a bit more for 4.15+ -RDEPENDS_${PN} += "${@bb.utils.contains('ARCH', 'x86', 'elfutils', '', d)}" +RDEPENDS:${PN} += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-dev', '', d)}" +# powerpc needs elfutils on 6.3+ +RDEPENDS:${PN} += "${@bb.utils.contains('ARCH', 'powerpc', 'elfutils-dev', '', d)}" # 5.8+ needs gcc-plugins libmpc-dev -RDEPENDS_${PN} += "gcc-plugins libmpc-dev" +RDEPENDS:${PN} += "gcc-plugins libmpc-dev" +# 5.13+ needs grep for powerpc +RDEPENDS:${PN}:append:powerpc = " grep" diff --git a/meta/recipes-kernel/linux/linux-dummy.bb b/meta/recipes-kernel/linux/linux-dummy.bb index c56f8990de..3e9a563cad 100644 --- a/meta/recipes-kernel/linux/linux-dummy.bb +++ b/meta/recipes-kernel/linux/linux-dummy.bb @@ -4,7 +4,7 @@ provider for virtual/kernel to satisfy dependencies for situations \ where you wish to build the kernel externally from the build system." SECTION = "kernel" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe" PROVIDES += "virtual/kernel" @@ -16,22 +16,23 @@ PACKAGES_DYNAMIC += "^kernel-image-.*" PACKAGES_DYNAMIC += "^kernel-firmware-.*" PACKAGES += "kernel-modules kernel-vmlinux" -FILES_kernel-modules = "" -ALLOW_EMPTY_kernel-modules = "1" -DESCRIPTION_kernel-modules = "Kernel modules meta package" -FILES_kernel-vmlinux = "" -ALLOW_EMPTY_kernel-vmlinux = "1" -DESCRIPTION_kernel-vmlinux = "Kernel vmlinux meta package" +FILES:kernel-modules = "" +ALLOW_EMPTY:kernel-modules = "1" +DESCRIPTION:kernel-modules = "Kernel modules meta package" +FILES:kernel-vmlinux = "" +ALLOW_EMPTY:kernel-vmlinux = "1" +DESCRIPTION:kernel-vmlinux = "Kernel vmlinux meta package" INHIBIT_DEFAULT_DEPS = "1" COMPATIBLE_HOST = ".*-linux" -PR = "r1" SRC_URI = "file://COPYING.GPL" -S = "${WORKDIR}" + +S = "${WORKDIR}/sources" +UNPACKDIR = "${S}" do_configure() { : diff --git a/meta/recipes-kernel/linux/linux-yocto-dev.bb b/meta/recipes-kernel/linux/linux-yocto-dev.bb index f407882316..292897ce43 100644 --- a/meta/recipes-kernel/linux/linux-yocto-dev.bb +++ b/meta/recipes-kernel/linux/linux-yocto-dev.bb @@ -10,17 +10,15 @@ inherit kernel require recipes-kernel/linux/linux-yocto.inc -# for ncurses tests -inherit pkgconfig # provide this .inc to set specific revisions include recipes-kernel/linux/linux-yocto-dev-revisions.inc -KBRANCH = "standard/base" +KBRANCH = "v6.11/standard/base" KMETA = "kernel-meta" -SRC_URI = "git://git.yoctoproject.org/linux-yocto-dev.git;branch=${KBRANCH};name=machine \ - git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=master;destsuffix=${KMETA}" +SRC_URI = "git://git.yoctoproject.org/linux-yocto-dev.git;branch=${KBRANCH};name=machine;protocol=https \ + git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=master;destsuffix=${KMETA};protocol=https" # Set default SRCREVs. Both the machine and meta SRCREVs are statically set # to the korg v3.7 tag, and hence prevent network access during parsing. If @@ -30,27 +28,34 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto-dev.git;branch=${KBRANCH};name SRCREV_machine ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}' SRCREV_meta ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}' -LINUX_VERSION ?= "5.13+" +LINUX_VERSION ?= "6.11" LINUX_VERSION_EXTENSION ?= "-yoctodev-${LINUX_KERNEL_TYPE}" -PV = "${LINUX_VERSION}+git${SRCPV}" +PV = "${LINUX_VERSION}+git" LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" -DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" -DEPENDS += "openssl-native util-linux-native" +# yaml and dtschema are required for 5.16+ device tree validation, libyaml is checked +# via pkgconfig, so must always be present, but we can wrap the others to make them +# conditional +DEPENDS += "libyaml-native" -COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemumips64|qemux86-64|qemuriscv64)" +PACKAGECONFIG ??= "" +PACKAGECONFIG[dt-validation] = ",,python3-dtschema-native" +# we need the wrappers if validation isn't in the packageconfig +DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'dt-validation', '', 'python3-dtschema-wrapper-native', d)}" -KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" +COMPATIBLE_MACHINE = "^(qemuarmv5|qemuarm|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64|qemuriscv32|qemuriscv64|qemuloongarch64)$" + +KERNEL_DEVICETREE:qemuarmv5 = "arm/versatile-pb.dtb" # Functionality flags KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc" -KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" -KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc" -KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" -KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" -KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}" -KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}" -KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc", "", d)}" +KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}" +KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc" +KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" +KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" +KERNEL_FEATURES:append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}" +KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}" +KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc features/gpio/sim.scc", "", d)}" KERNEL_VERSION_SANITY_SKIP = "1" diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb b/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb deleted file mode 100644 index 432289292b..0000000000 --- a/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb +++ /dev/null @@ -1,45 +0,0 @@ -KBRANCH ?= "v5.4/standard/preempt-rt/base" - -require recipes-kernel/linux/linux-yocto.inc - -# Skip processing of this recipe if it is not explicitly specified as the -# PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying -# to build multiple virtual/kernel providers, e.g. as dependency of -# core-image-rt-sdk, core-image-rt. -python () { - if d.getVar("KERNEL_PACKAGE_NAME") == "kernel" and d.getVar("PREFERRED_PROVIDER_virtual/kernel") != "linux-yocto-rt": - raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it") -} - -SRCREV_machine ?= "08b154b1c1f1c85db88295a4169dff6826c2e383" -SRCREV_meta ?= "656383210d369bbd49a7a278c6c7c7313f0df825" - -SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ - git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}" - -LINUX_VERSION ?= "5.4.125" - -LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" - -DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" -DEPENDS += "openssl-native util-linux-native" - -PV = "${LINUX_VERSION}+git${SRCPV}" - -KMETA = "kernel-meta" -KCONF_BSP_AUDIT_LEVEL = "2" - -LINUX_KERNEL_TYPE = "preempt-rt" - -COMPATIBLE_MACHINE = "(qemux86|qemux86-64|qemuarm|qemuarmv5|qemuarm64|qemuppc|qemumips)" - -KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" - -# Functionality flags -KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc" -KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" -KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc" -KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" -KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" -KERNEL_FEATURES_append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}" -KERNEL_FEATURES_append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc", "", d)}" diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_6.10.bb b/meta/recipes-kernel/linux/linux-yocto-rt_6.10.bb new file mode 100644 index 0000000000..b2e9071615 --- /dev/null +++ b/meta/recipes-kernel/linux/linux-yocto-rt_6.10.bb @@ -0,0 +1,48 @@ +KBRANCH ?= "v6.10/standard/preempt-rt/base" + +require recipes-kernel/linux/linux-yocto.inc + +# CVE exclusions +include recipes-kernel/linux/cve-exclusion_6.10.inc + +# Skip processing of this recipe if it is not explicitly specified as the +# PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying +# to build multiple virtual/kernel providers, e.g. as dependency of +# core-image-rt-sdk, core-image-rt. +python () { + if d.getVar("KERNEL_PACKAGE_NAME") == "kernel" and d.getVar("PREFERRED_PROVIDER_virtual/kernel") != "linux-yocto-rt": + raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it") +} + +SRCREV_machine ?= "b8e8a499763e5f192540d76dcbed6b545b7dafc5" +SRCREV_meta ?= "a9ca38a63029cdc0c92bb37d3156304bf0a17ad0" + +SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \ + git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.10;destsuffix=${KMETA};protocol=https" + +LINUX_VERSION ?= "6.10.8" + +LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" + +DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" +DEPENDS += "openssl-native util-linux-native" + +PV = "${LINUX_VERSION}+git" + +KMETA = "kernel-meta" +KCONF_BSP_AUDIT_LEVEL = "1" + +LINUX_KERNEL_TYPE = "preempt-rt" + +COMPATIBLE_MACHINE = "^(qemux86|qemux86-64|qemuarm|qemuarmv5|qemuarm64|qemuppc|qemumips)$" + +KERNEL_DEVICETREE:qemuarmv5 = "arm/versatile-pb.dtb" + +# Functionality flags +KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc" +KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}" +KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc" +KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" +KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" +KERNEL_FEATURES:append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}" +KERNEL_FEATURES:append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc features/gpio/sim.scc", "", d)}" diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb b/meta/recipes-kernel/linux/linux-yocto-rt_6.6.bb index 877e8d2946..2c8725f27a 100644 --- a/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb +++ b/meta/recipes-kernel/linux/linux-yocto-rt_6.6.bb @@ -1,7 +1,10 @@ -KBRANCH ?= "v5.10/standard/preempt-rt/base" +KBRANCH ?= "v6.6/standard/preempt-rt/base" require recipes-kernel/linux/linux-yocto.inc +# CVE exclusions +include recipes-kernel/linux/cve-exclusion_6.6.inc + # Skip processing of this recipe if it is not explicitly specified as the # PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying # to build multiple virtual/kernel providers, e.g. as dependency of @@ -11,35 +14,35 @@ python () { raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it") } -SRCREV_machine ?= "6186341e981ad4fd3941c7c9af509923bbe2a2a5" -SRCREV_meta ?= "67dad5ca86bd47dbbaa2194b9854c228055dfd37" +SRCREV_machine ?= "f1958988835e4b36462e9a7762001b695989288c" +SRCREV_meta ?= "c82d4e5d08201d0259c29a4d15ce1e72fc63c65f" -SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ - git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.10;destsuffix=${KMETA}" +SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \ + git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.6;destsuffix=${KMETA};protocol=https" -LINUX_VERSION ?= "5.10.43" +LINUX_VERSION ?= "6.6.50" LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" DEPENDS += "openssl-native util-linux-native" -PV = "${LINUX_VERSION}+git${SRCPV}" +PV = "${LINUX_VERSION}+git" KMETA = "kernel-meta" KCONF_BSP_AUDIT_LEVEL = "1" LINUX_KERNEL_TYPE = "preempt-rt" -COMPATIBLE_MACHINE = "(qemux86|qemux86-64|qemuarm|qemuarmv5|qemuarm64|qemuppc|qemumips)" +COMPATIBLE_MACHINE = "^(qemux86|qemux86-64|qemuarm|qemuarmv5|qemuarm64|qemuppc|qemumips)$" -KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" +KERNEL_DEVICETREE:qemuarmv5 = "arm/versatile-pb.dtb" # Functionality flags KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc" -KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" -KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc" -KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" -KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" -KERNEL_FEATURES_append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}" -KERNEL_FEATURES_append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc", "", d)}" +KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}" +KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc" +KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" +KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" +KERNEL_FEATURES:append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}" +KERNEL_FEATURES:append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc features/gpio/sim.scc", "", d)}" diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb deleted file mode 100644 index b44deb6f32..0000000000 --- a/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb +++ /dev/null @@ -1,32 +0,0 @@ -KBRANCH ?= "v5.10/standard/tiny/base" -KBRANCH_qemuarm ?= "v5.10/standard/tiny/arm-versatile-926ejs" - -LINUX_KERNEL_TYPE = "tiny" -KCONFIG_MODE = "--allnoconfig" - -require recipes-kernel/linux/linux-yocto.inc - -LINUX_VERSION ?= "5.10.43" -LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" - -DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" -DEPENDS += "openssl-native util-linux-native" - -KMETA = "kernel-meta" -KCONF_BSP_AUDIT_LEVEL = "2" - -SRCREV_machine_qemuarm ?= "9c63dda7dd5834bf731747d6ae03ae13d48e20e3" -SRCREV_machine ?= "ab49d2db98bdee2c8c6e17fb59ded9e5292b0f41" -SRCREV_meta ?= "67dad5ca86bd47dbbaa2194b9854c228055dfd37" - -PV = "${LINUX_VERSION}+git${SRCPV}" - -SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ - git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.10;destsuffix=${KMETA}" - -COMPATIBLE_MACHINE = "qemux86|qemux86-64|qemuarm|qemuarmv5" - -# Functionality flags -KERNEL_FEATURES = "" - -KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb deleted file mode 100644 index 6c93e2b163..0000000000 --- a/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb +++ /dev/null @@ -1,32 +0,0 @@ -KBRANCH ?= "v5.4/standard/tiny/base" -KBRANCH_qemuarm ?= "v5.4/standard/tiny/arm-versatile-926ejs" - -LINUX_KERNEL_TYPE = "tiny" -KCONFIG_MODE = "--allnoconfig" - -require recipes-kernel/linux/linux-yocto.inc - -LINUX_VERSION ?= "5.4.125" -LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" - -DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" -DEPENDS += "openssl-native util-linux-native" - -KMETA = "kernel-meta" -KCONF_BSP_AUDIT_LEVEL = "2" - -SRCREV_machine_qemuarm ?= "35f9751972b9fba920b1666228a35e5ce0b04440" -SRCREV_machine ?= "bcd119e358de95fb4b8ff6d560e5dab8b8a5ecee" -SRCREV_meta ?= "656383210d369bbd49a7a278c6c7c7313f0df825" - -PV = "${LINUX_VERSION}+git${SRCPV}" - -SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ - git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}" - -COMPATIBLE_MACHINE = "qemux86|qemux86-64|qemuarm|qemuarmv5" - -# Functionality flags -KERNEL_FEATURES = "" - -KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_6.10.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_6.10.bb new file mode 100644 index 0000000000..62354201b0 --- /dev/null +++ b/meta/recipes-kernel/linux/linux-yocto-tiny_6.10.bb @@ -0,0 +1,33 @@ +KBRANCH ?= "v6.10/standard/tiny/base" + +LINUX_KERNEL_TYPE = "tiny" +KCONFIG_MODE = "--allnoconfig" + +require recipes-kernel/linux/linux-yocto.inc + +# CVE exclusions +include recipes-kernel/linux/cve-exclusion_6.10.inc + +LINUX_VERSION ?= "6.10.8" +LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" + +DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" +DEPENDS += "openssl-native util-linux-native" + +KMETA = "kernel-meta" +KCONF_BSP_AUDIT_LEVEL = "2" + +SRCREV_machine ?= "1025debfd0d40f7f8d0547328bbf50ac543bdeba" +SRCREV_meta ?= "a9ca38a63029cdc0c92bb37d3156304bf0a17ad0" + +PV = "${LINUX_VERSION}+git" + +SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \ + git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.10;destsuffix=${KMETA};protocol=https" + +COMPATIBLE_MACHINE = "^(qemux86|qemux86-64|qemuarm64|qemuarm|qemuarmv5)$" + +# Functionality flags +KERNEL_FEATURES = "" + +KERNEL_DEVICETREE:qemuarmv5 = "arm/versatile-pb.dtb" diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_6.6.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_6.6.bb new file mode 100644 index 0000000000..ce20fbc07d --- /dev/null +++ b/meta/recipes-kernel/linux/linux-yocto-tiny_6.6.bb @@ -0,0 +1,33 @@ +KBRANCH ?= "v6.6/standard/tiny/base" + +LINUX_KERNEL_TYPE = "tiny" +KCONFIG_MODE = "--allnoconfig" + +require recipes-kernel/linux/linux-yocto.inc + +# CVE exclusions +include recipes-kernel/linux/cve-exclusion_6.6.inc + +LINUX_VERSION ?= "6.6.50" +LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" + +DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" +DEPENDS += "openssl-native util-linux-native" + +KMETA = "kernel-meta" +KCONF_BSP_AUDIT_LEVEL = "2" + +SRCREV_machine ?= "10604010520101e717ca658ada47b394a46e1539" +SRCREV_meta ?= "c82d4e5d08201d0259c29a4d15ce1e72fc63c65f" + +PV = "${LINUX_VERSION}+git" + +SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \ + git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.6;destsuffix=${KMETA};protocol=https" + +COMPATIBLE_MACHINE = "^(qemux86|qemux86-64|qemuarm64|qemuarm|qemuarmv5)$" + +# Functionality flags +KERNEL_FEATURES = "" + +KERNEL_DEVICETREE:qemuarmv5 = "arm/versatile-pb.dtb" diff --git a/meta/recipes-kernel/linux/linux-yocto.inc b/meta/recipes-kernel/linux/linux-yocto.inc index a85280990b..0132fcffb3 100644 --- a/meta/recipes-kernel/linux/linux-yocto.inc +++ b/meta/recipes-kernel/linux/linux-yocto.inc @@ -1,6 +1,6 @@ SUMMARY = "Linux kernel" SECTION = "kernel" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" HOMEPAGE = "https://www.yoctoproject.org/" LIC_FILES_CHKSUM ?= "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" @@ -19,21 +19,23 @@ python () { } DEPENDS += "xz-native bc-native" -DEPENDS_append_aarch64 = " libgcc" -KERNEL_CC_append_aarch64 = " ${TOOLCHAIN_OPTIONS}" -KERNEL_LD_append_aarch64 = " ${TOOLCHAIN_OPTIONS}" +DEPENDS:append:aarch64 = " libgcc" +KERNEL_CC:append:aarch64 = " ${TOOLCHAIN_OPTIONS}" +KERNEL_LD:append:aarch64 = " ${TOOLCHAIN_OPTIONS}" -DEPENDS_append_nios2 = " libgcc" -KERNEL_CC_append_nios2 = " ${TOOLCHAIN_OPTIONS}" -KERNEL_LD_append_nios2 = " ${TOOLCHAIN_OPTIONS}" +DEPENDS:append:nios2 = " libgcc" +KERNEL_CC:append:nios2 = " ${TOOLCHAIN_OPTIONS}" +KERNEL_LD:append:nios2 = " ${TOOLCHAIN_OPTIONS}" -DEPENDS_append_arc = " libgcc" -KERNEL_CC_append_arc = " ${TOOLCHAIN_OPTIONS}" -KERNEL_LD_append_arc = " ${TOOLCHAIN_OPTIONS}" +DEPENDS:append:arc = " libgcc" +KERNEL_CC:append:arc = " ${TOOLCHAIN_OPTIONS}" +KERNEL_LD:append:arc = " ${TOOLCHAIN_OPTIONS}" -KERNEL_FEATURES_append_qemuall=" features/debug/printk.scc" +KERNEL_FEATURES:append:qemuall=" features/debug/printk.scc features/taskstats/taskstats.scc" -KERNEL_FEATURES_append = " ${@bb.utils.contains('MACHINE_FEATURES', 'numa', 'features/numa/numa.scc', '', d)}" +KERNEL_FEATURES:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'efi', 'cfg/efi.scc', '', d)}" +KERNEL_FEATURES:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'numa', 'features/numa/numa.scc', '', d)}" +KERNEL_FEATURES:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'vfat', 'cfg/fs/vfat.scc', '', d)}" # A KMACHINE is the mapping of a yocto $MACHINE to what is built # by the kernel. This is typically the branch that should be built, @@ -48,11 +50,32 @@ inherit kernel-yocto B = "${WORKDIR}/linux-${PACKAGE_ARCH}-${LINUX_KERNEL_TYPE}-build" -do_install_append(){ +do_install:append(){ if [ -n "${KMETA}" ]; then rm -rf ${STAGING_KERNEL_DIR}/${KMETA} fi } # enable kernel-sample for oeqa/runtime/cases's ksample.py test -KERNEL_FEATURES_append_qemuall=" features/kernel-sample/kernel-sample.scc" +KERNEL_FEATURES:append:qemuall=" features/kernel-sample/kernel-sample.scc" + +KERNEL_DEBUG ?= "" +# These used to be version specific, but are now common dependencies. New +# tools / dependencies will continue to be added in version specific recipes. +DEPENDS += '${@bb.utils.contains_any("ARCH", [ "x86", "arm64", "powerpc" ], "elfutils-native", "", d)}' +DEPENDS += "openssl-native util-linux-native" +DEPENDS += "gmp-native libmpc-native" + +# Some options depend on CONFIG_PAHOLE_VERSION, so need to make pahole-native available before do_kernel_configme +do_kernel_configme[depends] += '${@bb.utils.contains("KERNEL_DEBUG", "True", "pahole-native:do_populate_sysroot", "", d)}' + +EXTRA_OEMAKE += '${@bb.utils.contains("KERNEL_DEBUG", "True", "", "PAHOLE=false", d)}' + +do_devshell:prepend() { + # setup native pkg-config variables (kconfig scripts call pkg-config directly, cannot generically be overriden to pkg-config-native) + d.setVar("PKG_CONFIG_DIR", "${STAGING_DIR_NATIVE}${libdir_native}/pkgconfig") + d.setVar("PKG_CONFIG_PATH", "${PKG_CONFIG_DIR}:${STAGING_DATADIR_NATIVE}/pkgconfig") + d.setVar("PKG_CONFIG_LIBDIR", "${PKG_CONFIG_DIR}") + d.setVarFlag("PKG_CONFIG_SYSROOT_DIR", "unexport", "1") + d.appendVar("OE_TERMINAL_EXPORTS", " PKG_CONFIG_DIR PKG_CONFIG_PATH PKG_CONFIG_LIBDIR PKG_CONFIG_SYSROOT_DIR") +} diff --git a/meta/recipes-kernel/linux/linux-yocto_5.10.bb b/meta/recipes-kernel/linux/linux-yocto_5.10.bb deleted file mode 100644 index f99782c1be..0000000000 --- a/meta/recipes-kernel/linux/linux-yocto_5.10.bb +++ /dev/null @@ -1,58 +0,0 @@ -KBRANCH ?= "v5.10/standard/base" - -require recipes-kernel/linux/linux-yocto.inc - -# board specific branches -KBRANCH_qemuarm ?= "v5.10/standard/arm-versatile-926ejs" -KBRANCH_qemuarm64 ?= "v5.10/standard/qemuarm64" -KBRANCH_qemumips ?= "v5.10/standard/mti-malta32" -KBRANCH_qemuppc ?= "v5.10/standard/qemuppc" -KBRANCH_qemuriscv64 ?= "v5.10/standard/base" -KBRANCH_qemuriscv32 ?= "v5.10/standard/base" -KBRANCH_qemux86 ?= "v5.10/standard/base" -KBRANCH_qemux86-64 ?= "v5.10/standard/base" -KBRANCH_qemumips64 ?= "v5.10/standard/mti-malta64" - -SRCREV_machine_qemuarm ?= "2fc3409cf8c2a6d684929576fd409949060a0bd9" -SRCREV_machine_qemuarm64 ?= "ab49d2db98bdee2c8c6e17fb59ded9e5292b0f41" -SRCREV_machine_qemumips ?= "5cec6d1ab35feb99f023b233871cafa29e3c3682" -SRCREV_machine_qemuppc ?= "ab49d2db98bdee2c8c6e17fb59ded9e5292b0f41" -SRCREV_machine_qemuriscv64 ?= "ab49d2db98bdee2c8c6e17fb59ded9e5292b0f41" -SRCREV_machine_qemuriscv32 ?= "ab49d2db98bdee2c8c6e17fb59ded9e5292b0f41" -SRCREV_machine_qemux86 ?= "ab49d2db98bdee2c8c6e17fb59ded9e5292b0f41" -SRCREV_machine_qemux86-64 ?= "ab49d2db98bdee2c8c6e17fb59ded9e5292b0f41" -SRCREV_machine_qemumips64 ?= "769a7118662a2256e20df60be9c9727f9c5878b0" -SRCREV_machine ?= "ab49d2db98bdee2c8c6e17fb59ded9e5292b0f41" -SRCREV_meta ?= "67dad5ca86bd47dbbaa2194b9854c228055dfd37" - -# remap qemuarm to qemuarma15 for the 5.8 kernel -# KMACHINE_qemuarm ?= "qemuarma15" - -SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \ - git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.10;destsuffix=${KMETA}" - -LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" -LINUX_VERSION ?= "5.10.43" - -DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" -DEPENDS += "openssl-native util-linux-native" -DEPENDS += "gmp-native" - -PV = "${LINUX_VERSION}+git${SRCPV}" - -KMETA = "kernel-meta" -KCONF_BSP_AUDIT_LEVEL = "1" - -KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" - -COMPATIBLE_MACHINE = "qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemuppc64|qemumips|qemumips64|qemux86-64|qemuriscv64|qemuriscv32" - -# Functionality flags -KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc" -KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" -KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc" -KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" -KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" -KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}" -KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}" -KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc", "", d)}" diff --git a/meta/recipes-kernel/linux/linux-yocto_5.4.bb b/meta/recipes-kernel/linux/linux-yocto_5.4.bb deleted file mode 100644 index 7edab4931a..0000000000 --- a/meta/recipes-kernel/linux/linux-yocto_5.4.bb +++ /dev/null @@ -1,55 +0,0 @@ -KBRANCH ?= "v5.4/standard/base" - -require recipes-kernel/linux/linux-yocto.inc - -# board specific branches -KBRANCH_qemuarm ?= "v5.4/standard/arm-versatile-926ejs" -KBRANCH_qemuarm64 ?= "v5.4/standard/qemuarm64" -KBRANCH_qemumips ?= "v5.4/standard/mti-malta32" -KBRANCH_qemuppc ?= "v5.4/standard/qemuppc" -KBRANCH_qemuriscv64 ?= "v5.4/standard/base" -KBRANCH_qemux86 ?= "v5.4/standard/base" -KBRANCH_qemux86-64 ?= "v5.4/standard/base" -KBRANCH_qemumips64 ?= "v5.4/standard/mti-malta64" - -SRCREV_machine_qemuarm ?= "b523a950c926e2d7475768b504e46fa618a3b891" -SRCREV_machine_qemuarm64 ?= "bcd119e358de95fb4b8ff6d560e5dab8b8a5ecee" -SRCREV_machine_qemumips ?= "bff59892e827bc85e85fef518305007a787812aa" -SRCREV_machine_qemuppc ?= "bcd119e358de95fb4b8ff6d560e5dab8b8a5ecee" -SRCREV_machine_qemuriscv64 ?= "bcd119e358de95fb4b8ff6d560e5dab8b8a5ecee" -SRCREV_machine_qemux86 ?= "bcd119e358de95fb4b8ff6d560e5dab8b8a5ecee" -SRCREV_machine_qemux86-64 ?= "bcd119e358de95fb4b8ff6d560e5dab8b8a5ecee" -SRCREV_machine_qemumips64 ?= "e25b97140f5d46ac437cd8a1d9ecc235cbf462b5" -SRCREV_machine ?= "bcd119e358de95fb4b8ff6d560e5dab8b8a5ecee" -SRCREV_meta ?= "656383210d369bbd49a7a278c6c7c7313f0df825" - -# remap qemuarm to qemuarma15 for the 5.4 kernel -# KMACHINE_qemuarm ?= "qemuarma15" - -SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \ - git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}" - -LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" -LINUX_VERSION ?= "5.4.125" - -DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" -DEPENDS += "openssl-native util-linux-native" - -PV = "${LINUX_VERSION}+git${SRCPV}" - -KMETA = "kernel-meta" -KCONF_BSP_AUDIT_LEVEL = "1" - -KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" - -COMPATIBLE_MACHINE = "qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64|qemuriscv64" - -# Functionality flags -KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc" -KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" -KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc" -KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" -KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" -KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}" -KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}" -KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc", "", d)}" diff --git a/meta/recipes-kernel/linux/linux-yocto_6.10.bb b/meta/recipes-kernel/linux/linux-yocto_6.10.bb new file mode 100644 index 0000000000..0d3041b27a --- /dev/null +++ b/meta/recipes-kernel/linux/linux-yocto_6.10.bb @@ -0,0 +1,73 @@ +KBRANCH ?= "v6.10/standard/base" + +require recipes-kernel/linux/linux-yocto.inc + +# CVE exclusions +include recipes-kernel/linux/cve-exclusion.inc +include recipes-kernel/linux/cve-exclusion_6.10.inc + +# board specific branches +KBRANCH:qemuarm ?= "v6.10/standard/arm-versatile-926ejs" +KBRANCH:qemuarm64 ?= "v6.10/standard/qemuarm64" +KBRANCH:qemumips ?= "v6.10/standard/mti-malta32" +KBRANCH:qemuppc ?= "v6.10/standard/qemuppc" +KBRANCH:qemuriscv64 ?= "v6.10/standard/base" +KBRANCH:qemuriscv32 ?= "v6.10/standard/base" +KBRANCH:qemux86 ?= "v6.10/standard/base" +KBRANCH:qemux86.104 ?= "v6.10/standard/base" +KBRANCH:qemuloongarch64 ?= "v6.10/standard/base" +KBRANCH:qemumips64 ?= "v6.10/standard/mti-malta64" + +SRCREV_machine:qemuarm ?= "8df31eb72735ccc31dd9c533b69be987bea50ee4" +SRCREV_machine:qemuarm64 ?= "1025debfd0d40f7f8d0547328bbf50ac543bdeba" +SRCREV_machine:qemuloongarch64 ?= "1025debfd0d40f7f8d0547328bbf50ac543bdeba" +SRCREV_machine:qemumips ?= "95be5bc86ab306b47c92a91bace9737dff60c461" +SRCREV_machine:qemuppc ?= "1025debfd0d40f7f8d0547328bbf50ac543bdeba" +SRCREV_machine:qemuriscv64 ?= "1025debfd0d40f7f8d0547328bbf50ac543bdeba" +SRCREV_machine:qemuriscv32 ?= "1025debfd0d40f7f8d0547328bbf50ac543bdeba" +SRCREV_machine:qemux86 ?= "1025debfd0d40f7f8d0547328bbf50ac543bdeba" +SRCREV_machine:qemux86-64 ?= "1025debfd0d40f7f8d0547328bbf50ac543bdeba" +SRCREV_machine:qemumips64 ?= "5fdfe03b830e275d165d1bc655dd4a7b9072aecc" +SRCREV_machine ?= "1025debfd0d40f7f8d0547328bbf50ac543bdeba" +SRCREV_meta ?= "a9ca38a63029cdc0c92bb37d3156304bf0a17ad0" + +# set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll +# get the <version>/base branch, which is pure upstream -stable, and the same +# meta SRCREV as the linux-yocto-standard builds. Select your version using the +# normal PREFERRED_VERSION settings. +BBCLASSEXTEND = "devupstream:target" +SRCREV_machine:class-devupstream ?= "560ed1386571c54598065fb9e80ff54855e2236d" +PN:class-devupstream = "linux-yocto-upstream" +KBRANCH:class-devupstream = "v6.10/base" + +SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH};protocol=https \ + git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.10;destsuffix=${KMETA};protocol=https" + +LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" +LINUX_VERSION ?= "6.10.8" + +PV = "${LINUX_VERSION}+git" + +KMETA = "kernel-meta" +KCONF_BSP_AUDIT_LEVEL = "1" + +KERNEL_DEVICETREE:qemuarmv5 = "arm/versatile-pb.dtb" + +COMPATIBLE_MACHINE = "^(qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemuppc64|qemumips|qemumips64|qemux86-64|qemuriscv64|qemuriscv32|qemuloongarch64)$" + +# Functionality flags +KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc" +KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}" +KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc cfg/net/mdio.scc" +KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" +KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" +KERNEL_FEATURES:append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}" +KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc features/nf_tables/nft_test.scc", "", d)}" +KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc features/gpio/sim.scc", "", d)}" +# libteam ptests from meta-oe needs it +KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/net/team/team.scc", "", d)}" +KERNEL_FEATURES:append:powerpc =" arch/powerpc/powerpc-debug.scc" +KERNEL_FEATURES:append:powerpc64 =" arch/powerpc/powerpc-debug.scc" +KERNEL_FEATURES:append:powerpc64le =" arch/powerpc/powerpc-debug.scc" + +INSANE_SKIP:kernel-vmlinux:qemuppc64 = "textrel" diff --git a/meta/recipes-kernel/linux/linux-yocto_6.6.bb b/meta/recipes-kernel/linux/linux-yocto_6.6.bb new file mode 100644 index 0000000000..b871b30157 --- /dev/null +++ b/meta/recipes-kernel/linux/linux-yocto_6.6.bb @@ -0,0 +1,74 @@ +KBRANCH ?= "v6.6/standard/base" + +require recipes-kernel/linux/linux-yocto.inc + +# CVE exclusions +include recipes-kernel/linux/cve-exclusion.inc +include recipes-kernel/linux/cve-exclusion_6.6.inc + +# board specific branches +KBRANCH:qemuarm ?= "v6.6/standard/arm-versatile-926ejs" +KBRANCH:qemuarm64 ?= "v6.6/standard/qemuarm64" +KBRANCH:qemumips ?= "v6.6/standard/mti-malta32" +KBRANCH:qemuppc ?= "v6.6/standard/qemuppc" +KBRANCH:qemuriscv64 ?= "v6.6/standard/base" +KBRANCH:qemuriscv32 ?= "v6.6/standard/base" +KBRANCH:qemux86 ?= "v6.6/standard/base" +KBRANCH:qemux86-64 ?= "v6.6/standard/base" +KBRANCH:qemuloongarch64 ?= "v6.6/standard/base" +KBRANCH:qemumips64 ?= "v6.6/standard/mti-malta64" + +SRCREV_machine:qemuarm ?= "36f604ad9d400626d19666688399af0d0ae93e53" +SRCREV_machine:qemuarm64 ?= "10604010520101e717ca658ada47b394a46e1539" +SRCREV_machine:qemuloongarch64 ?= "10604010520101e717ca658ada47b394a46e1539" +SRCREV_machine:qemumips ?= "8ca27eda30aa6ceb72b61c784ebb057de07201ae" +SRCREV_machine:qemuppc ?= "10604010520101e717ca658ada47b394a46e1539" +SRCREV_machine:qemuriscv64 ?= "10604010520101e717ca658ada47b394a46e1539" +SRCREV_machine:qemuriscv32 ?= "10604010520101e717ca658ada47b394a46e1539" +SRCREV_machine:qemux86 ?= "10604010520101e717ca658ada47b394a46e1539" +SRCREV_machine:qemux86-64 ?= "10604010520101e717ca658ada47b394a46e1539" +SRCREV_machine:qemumips64 ?= "72b65c64c2fd2b4d252b4a93642acc268ca2f006" +SRCREV_machine ?= "10604010520101e717ca658ada47b394a46e1539" +SRCREV_meta ?= "c82d4e5d08201d0259c29a4d15ce1e72fc63c65f" + +# set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll +# get the <version>/base branch, which is pure upstream -stable, and the same +# meta SRCREV as the linux-yocto-standard builds. Select your version using the +# normal PREFERRED_VERSION settings. +BBCLASSEXTEND = "devupstream:target" +SRCREV_machine:class-devupstream ?= "ad07a29023cebd40848fce81e6732d671ede5fe6" +PN:class-devupstream = "linux-yocto-upstream" +KBRANCH:class-devupstream = "v6.6/base" + +SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH};protocol=https \ + git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.6;destsuffix=${KMETA};protocol=https" + +LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" +LINUX_VERSION ?= "6.6.50" + +PV = "${LINUX_VERSION}+git" + +KMETA = "kernel-meta" +KCONF_BSP_AUDIT_LEVEL = "1" + +KERNEL_DEVICETREE:qemuarmv5 = "arm/versatile-pb.dtb" + +COMPATIBLE_MACHINE = "^(qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemuppc64|qemumips|qemumips64|qemux86-64|qemuriscv64|qemuriscv32|qemuloongarch64)$" + +# Functionality flags +KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc" +KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}" +KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc cfg/net/mdio.scc" +KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" +KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" +KERNEL_FEATURES:append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}" +KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc features/nf_tables/nft_test.scc", "", d)}" +KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc features/gpio/sim.scc", "", d)}" +# libteam ptests from meta-oe needs it +KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/net/team/team.scc", "", d)}" +KERNEL_FEATURES:append:powerpc =" arch/powerpc/powerpc-debug.scc" +KERNEL_FEATURES:append:powerpc64 =" arch/powerpc/powerpc-debug.scc" +KERNEL_FEATURES:append:powerpc64le =" arch/powerpc/powerpc-debug.scc" + +INSANE_SKIP:kernel-vmlinux:qemuppc64 = "textrel" + diff --git a/meta/recipes-kernel/lttng/babeltrace2/run-ptest b/meta/recipes-kernel/lttng/babeltrace2/run-ptest index 72fe223436..71a9c81bfb 100755 --- a/meta/recipes-kernel/lttng/babeltrace2/run-ptest +++ b/meta/recipes-kernel/lttng/babeltrace2/run-ptest @@ -6,4 +6,14 @@ # test plan to raise ERRORs; this is just noise. makeargs="LOG_DRIVER_FLAGS=--ignore-exit abs_top_srcdir=$PWD abs_top_builddir=$PWD GREP=grep SED=sed PYTHON=python3" -exec make -C tests -k -s $makeargs $target 2>/dev/null +exec 2> error.log +make -C tests -k -s $makeargs $target +exitcode=$? +if [ -e error.log ]; then + cat error.log +fi +if [ -e tests/test-suite.log ]; then + cat tests/test-suite.log +fi + +exit $exitcode
\ No newline at end of file diff --git a/meta/recipes-kernel/lttng/babeltrace2_2.0.4.bb b/meta/recipes-kernel/lttng/babeltrace2_2.0.6.bb index 7fb524eeb0..a50ba8fcdf 100644 --- a/meta/recipes-kernel/lttng/babeltrace2_2.0.4.bb +++ b/meta/recipes-kernel/lttng/babeltrace2_2.0.6.bb @@ -2,34 +2,36 @@ SUMMARY = "Babeltrace2 - Trace Format Babel Tower" DESCRIPTION = "Babeltrace provides trace read and write libraries in host side, as well as a trace converter, which used to convert LTTng 2.0 traces into human-readable log." HOMEPAGE = "http://babeltrace.org/" BUGTRACKER = "https://bugs.lttng.org/projects/babeltrace" -LICENSE = "MIT & GPLv2 & LGPLv2.1 & BSD-2-Clause" +LICENSE = "MIT & GPL-2.0-only & LGPL-2.1-only & BSD-2-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=a6a458c13f18385b7bc5069a6d7b176e" DEPENDS = "glib-2.0 util-linux popt bison-native flex-native" -SRC_URI = "git://git.efficios.com/babeltrace.git;branch=stable-2.0 \ +SRC_URI = "git://git.efficios.com/babeltrace.git;branch=stable-2.0;protocol=https \ file://run-ptest \ file://0001-tests-do-not-run-test-applications-from-.libs.patch \ file://0001-Make-manpages-multilib-identical.patch \ " -SRCREV = "23e8cf4e6fdc1d0b230e964dafac08a57e6228e6" +SRCREV = "0a6632f77801f3218a288604c646f8a39cb0d2c4" UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>2(\.\d+)+)$" S = "${WORKDIR}/git" inherit autotools pkgconfig ptest python3targetconfig -EXTRA_OECONF = "--disable-debug-info" +EXTRA_OECONF = "--disable-debug-info --disable-Werror" PACKAGECONFIG ??= "manpages" PACKAGECONFIG[manpages] = ", --disable-man-pages, asciidoc-native xmlto-native" -FILES_${PN}-staticdev += "${libdir}/babeltrace2/plugins/*.a" -FILES_${PN} += "${libdir}/babeltrace2/plugins/*.so" +FILES:${PN}-staticdev += "${libdir}/babeltrace2/plugins/*.a" +FILES:${PN} += "${libdir}/babeltrace2/plugins/*.so" ASNEEDED = "" +LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld ptest', '-fuse-ld=bfd ', '', d)}" -RDEPENDS_${PN}-ptest += "bash gawk python3" +# coreutils since we need full mktemp +RDEPENDS:${PN}-ptest += "bash gawk python3 make grep coreutils findutils" do_compile_ptest () { make -C tests all diff --git a/meta/recipes-kernel/lttng/babeltrace_1.5.8.bb b/meta/recipes-kernel/lttng/babeltrace_1.5.11.bb index 9e5d3a7a97..f4d9b5e42a 100644 --- a/meta/recipes-kernel/lttng/babeltrace_1.5.8.bb +++ b/meta/recipes-kernel/lttng/babeltrace_1.5.11.bb @@ -2,15 +2,15 @@ SUMMARY = "Babeltrace - Trace Format Babel Tower" DESCRIPTION = "Babeltrace provides trace read and write libraries in host side, as well as a trace converter, which used to convert LTTng 2.0 traces into human-readable log." HOMEPAGE = "http://babeltrace.org/" BUGTRACKER = "https://bugs.lttng.org/projects/babeltrace" -LICENSE = "MIT & GPLv2 & LGPLv2.1" +LICENSE = "MIT & GPL-2.0-only & LGPL-2.1-only" LIC_FILES_CHKSUM = "file://LICENSE;md5=76ba15dd76a248e1dd526bca0e2125fa" DEPENDS = "glib-2.0 util-linux popt bison-native flex-native" -SRC_URI = "git://git.efficios.com/babeltrace.git;branch=stable-1.5 \ +SRC_URI = "git://git.efficios.com/babeltrace.git;branch=stable-1.5;protocol=https \ file://run-ptest \ " -SRCREV = "054a54ae10b01a271afc4f19496c041b10fb414c" +SRCREV = "91c00f70884887ff5c4849a8e3d47e311a22ba9d" UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>1(\.\d+)+)$" S = "${WORKDIR}/git" @@ -21,7 +21,7 @@ EXTRA_OECONF = "--disable-debug-info" ASNEEDED = "" -RDEPENDS_${PN}-ptest += "bash gawk" +RDEPENDS:${PN}-ptest += "bash gawk make" addtask do_patch_ptest_path after do_patch before do_configure do_patch_ptest_path () { diff --git a/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-kfree_skb-changed-in-6.11-rc1.patch b/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-kfree_skb-changed-in-6.11-rc1.patch new file mode 100644 index 0000000000..36bf697c51 --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-kfree_skb-changed-in-6.11-rc1.patch @@ -0,0 +1,62 @@ +From a06c63b0360cbe1a7c8073461b9cf088234875f7 Mon Sep 17 00:00:00 2001 +From: Kienan Stewart <kstewart@efficios.com> +Date: Mon, 29 Jul 2024 14:01:18 +0000 +Subject: [PATCH] Fix: kfree_skb changed in 6.11-rc1 + +See upstream commit: + + commit c53795d48ee8f385c6a9e394651e7ee914baaeba + Author: Yan Zhai <yan@cloudflare.com> + Date: Mon Jun 17 11:09:04 2024 -0700 + + net: add rx_sk to trace_kfree_skb + + skb does not include enough information to find out receiving + sockets/services and netns/containers on packet drops. In theory + skb->dev tells about netns, but it can get cleared/reused, e.g. by TCP + stack for OOO packet lookup. Similarly, skb->sk often identifies a local + sender, and tells nothing about a receiver. + + Allow passing an extra receiving socket to the tracepoint to improve + the visibility on receiving drops. + +Upstream-Status: Backport + +Change-Id: I33c8ce1a48006456f198ab1592f733b55be01016 +Signed-off-by: Kienan Stewart <kstewart@efficios.com> +Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> +--- + include/instrumentation/events/skb.h | 20 +++++++++++++++++++- + 1 file changed, 19 insertions(+), 1 deletion(-) + +diff --git a/include/instrumentation/events/skb.h b/include/instrumentation/events/skb.h +index 9f1047c..5556ab6 100644 +--- a/include/instrumentation/events/skb.h ++++ b/include/instrumentation/events/skb.h +@@ -40,7 +40,25 @@ LTTNG_TRACEPOINT_ENUM(skb_drop_reason, + ) + #endif + +-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0) \ ++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,11,0)) ++LTTNG_TRACEPOINT_EVENT_MAP(kfree_skb, ++ ++ skb_kfree, ++ ++ TP_PROTO(struct sk_buff *skb, void *location, ++ enum skb_drop_reason reason, struct sock *rx_sk), ++ ++ TP_ARGS(skb, location, reason, rx_sk), ++ ++ TP_FIELDS( ++ ctf_integer_hex(void *, skbaddr, skb) ++ ctf_integer_hex(void *, location, location) ++ ctf_integer_network(unsigned short, protocol, skb->protocol) ++ ctf_enum(skb_drop_reason, uint8_t, reason, reason) ++ ctf_integer_hex(void *, rx_skaddr, rx_sk) ++ ) ++) ++#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0) \ + || LTTNG_KERNEL_RANGE(5,15,58, 5,16,0) \ + || LTTNG_RHEL_KERNEL_RANGE(5,14,0,70,0,0, 5,15,0,0,0,0) \ + || LTTNG_RHEL_KERNEL_RANGE(4,18,0,477,10,1, 4,19,0,0,0,0)) diff --git a/meta/recipes-kernel/lttng/lttng-modules/0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch b/meta/recipes-kernel/lttng/lttng-modules/0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch index 6d81c81efe..4911982461 100644 --- a/meta/recipes-kernel/lttng/lttng-modules/0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch +++ b/meta/recipes-kernel/lttng/lttng-modules/0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch @@ -1,4 +1,4 @@ -From 0287f5c32b9fd99078e71c22ca679343d18f1513 Mon Sep 17 00:00:00 2001 +From 60d423945bd4f4c4b7bfc6f29da9231152d05690 Mon Sep 17 00:00:00 2001 From: Bruce Ashfield <bruce.ashfield@gmail.com> Date: Sat, 15 May 2021 10:26:38 -0400 Subject: [PATCH] src/Kbuild: change missing CONFIG_TRACEPOINTS to warning @@ -16,22 +16,31 @@ Upstream-Status: Inappropriate [embedded specific] Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> --- - src/Kbuild | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + src/Kbuild | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Kbuild b/src/Kbuild -index 7137874f..18a43b50 100644 +index 7137874..04eb5c9 100644 --- a/src/Kbuild +++ b/src/Kbuild -@@ -2,7 +2,7 @@ +@@ -2,10 +2,13 @@ ifdef CONFIG_LOCALVERSION # Check if dot-config is included. ifeq ($(CONFIG_TRACEPOINTS),) - $(error The option CONFIG_TRACEPOINTS needs to be enabled in your kernel configuration) + $(warning The option CONFIG_TRACEPOINTS needs to be enabled in your kernel configuration) ++ DISABLE_MODULE = y endif # CONFIG_TRACEPOINTS endif # ifdef CONFIG_LOCALVERSION --- -2.19.1 - ++ifneq ($(DISABLE_MODULE),y) ++ + TOP_LTTNG_MODULES_DIR := $(shell dirname $(lastword $(MAKEFILE_LIST)))/.. + + lttng_check_linux_version = $(shell pwd)/include/linux/version.h +@@ -150,3 +153,5 @@ lttng-statedump-objs := lttng-statedump-impl.o + obj-$(CONFIG_LTTNG) += probes/ + obj-$(CONFIG_LTTNG) += lib/ + obj-$(CONFIG_LTTNG) += tests/ ++ ++endif # DISABLE_MODULE diff --git a/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-ext4_da_reserve_space-changed-in-6.11-rc1.patch b/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-ext4_da_reserve_space-changed-in-6.11-rc1.patch new file mode 100644 index 0000000000..e62717baeb --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-ext4_da_reserve_space-changed-in-6.11-rc1.patch @@ -0,0 +1,55 @@ +From bfb177d2745d19cb56a27c438f4925d6397fbf0b Mon Sep 17 00:00:00 2001 +From: Kienan Stewart <kstewart@efficios.com> +Date: Mon, 29 Jul 2024 14:08:32 +0000 +Subject: [PATCH] Fix: ext4_da_reserve_space changed in 6.11-rc1 + +See upstream commit: + + commit 0d66b23d79c750276f791411d81a524549a64852 + Author: Zhang Yi <yi.zhang@huawei.com> + Date: Fri May 17 20:40:02 2024 +0800 + + ext4: make ext4_da_reserve_space() reserve multi-clusters + + Add 'nr_resv' parameter to ext4_da_reserve_space(), which indicates the + number of clusters wants to reserve, make it reserve multiple clusters + at a time. + +Upstream-Status: Backport + +Change-Id: Ib1ce8c3023d53a6d22ec444a435fdb3c871f64c5 +Signed-off-by: Kienan Stewart <kstewart@efficios.com> +Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> +--- + include/instrumentation/events/ext4.h | 18 +++++++++++++++++- + 1 file changed, 17 insertions(+), 1 deletion(-) + +diff --git a/include/instrumentation/events/ext4.h b/include/instrumentation/events/ext4.h +index 4131803..9f1d4b1 100644 +--- a/include/instrumentation/events/ext4.h ++++ b/include/instrumentation/events/ext4.h +@@ -821,7 +821,23 @@ LTTNG_TRACEPOINT_EVENT(ext4_da_update_reserve_space, + ) + #endif + +-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0)) ++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,11,0)) ++LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space, ++ TP_PROTO(struct inode *inode, int nr_resv), ++ ++ TP_ARGS(inode, nr_resv), ++ ++ TP_FIELDS( ++ ctf_integer(dev_t, dev, inode->i_sb->s_dev) ++ ctf_integer(ino_t, ino, inode->i_ino) ++ ctf_integer(__u64, i_blocks, inode->i_blocks) ++ ctf_integer(__u64, nr_resv, nr_resv) ++ ctf_integer(int, reserved_data_blocks, ++ EXT4_I(inode)->i_reserved_data_blocks) ++ ctf_integer(TP_MODE_T, mode, inode->i_mode) ++ ) ++) ++#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0)) + LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space, + TP_PROTO(struct inode *inode), + diff --git a/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-orig_start-removed-from-btrfs_get_extent-in-6.11.patch b/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-orig_start-removed-from-btrfs_get_extent-in-6.11.patch new file mode 100644 index 0000000000..4d06ec76e7 --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-orig_start-removed-from-btrfs_get_extent-in-6.11.patch @@ -0,0 +1,64 @@ +From 1e4cc8d271117af9262e28a5dd19790a0917818c Mon Sep 17 00:00:00 2001 +From: Kienan Stewart <kstewart@efficios.com> +Date: Mon, 29 Jul 2024 14:11:36 +0000 +Subject: [PATCH] Fix: orig_start removed from btrfs_get_extent in 6.11-rc1 + +See upstream commit: + + commit 4aa7b5d1784f510c0f42afc1d74efb41947221d7 + Author: Qu Wenruo <wqu@suse.com> + Date: Tue Apr 30 07:53:04 2024 +0930 + + btrfs: remove extent_map::orig_start member + + Since we have extent_map::offset, the old extent_map::orig_start is just + extent_map::start - extent_map::offset for non-hole/inline extents. + + And since the new extent_map::offset is already verified by + validate_extent_map() while the old orig_start is not, let's just remove + the old member from all call sites. + +Upstream-Status: Backport + +Change-Id: I025a30d49b3e3ddc37d7846acc191ebbdf2ff19e +Signed-off-by: Kienan Stewart <kstewart@efficios.com> +Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> +--- + include/instrumentation/events/btrfs.h | 24 +++++++++++++++++++++++- + 1 file changed, 23 insertions(+), 1 deletion(-) + +diff --git a/include/instrumentation/events/btrfs.h b/include/instrumentation/events/btrfs.h +index c0c746e..dfad19c 100644 +--- a/include/instrumentation/events/btrfs.h ++++ b/include/instrumentation/events/btrfs.h +@@ -177,7 +177,29 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__inode, btrfs_inode_evict, + ) + #endif + +-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,8,0)) ++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,11,0)) ++ ++LTTNG_TRACEPOINT_EVENT(btrfs_get_extent, ++ ++ TP_PROTO(const struct btrfs_root *root, const struct btrfs_inode *inode, ++ const struct extent_map *map), ++ ++ TP_ARGS(root, inode, map), ++ ++ TP_FIELDS( ++ ctf_integer(u64, root_objectid, root->root_key.objectid) ++ ctf_integer(u64, ino, btrfs_ino(inode)) ++ ctf_integer(u64, start, map->start) ++ ctf_integer(u64, len, map->len) ++ ctf_integer(u64, block_start, map->block_start) ++ ctf_integer(u64, block_len, map->block_len) ++ ctf_integer(unsigned int, flags, map->flags) ++ ctf_integer(int, refs, refcount_read(&map->refs)) ++ ctf_integer(unsigned int, compress_type, extent_map_compression(map)) ++ ) ++) ++ ++#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,8,0)) + + LTTNG_TRACEPOINT_EVENT(btrfs_get_extent, + diff --git a/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-block_len-removed-frmo-btrfs_get_extent-in-6.11-.patch b/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-block_len-removed-frmo-btrfs_get_extent-in-6.11-.patch new file mode 100644 index 0000000000..c9f48e2f2b --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-block_len-removed-frmo-btrfs_get_extent-in-6.11-.patch @@ -0,0 +1,44 @@ +From 974125ab11a7f0b4df5658cdac26dc5cf9fdbc87 Mon Sep 17 00:00:00 2001 +From: Kienan Stewart <kstewart@efficios.com> +Date: Mon, 29 Jul 2024 14:12:47 +0000 +Subject: [PATCH] Fix: block_len removed frmo btrfs_get_extent in 6.11-rc1 + +See upstream commit: + + commit e28b851ed9b232c3b84cb8d0fedbdfa8ca881386 + Author: Qu Wenruo <wqu@suse.com> + Date: Tue Apr 30 07:53:05 2024 +0930 + + btrfs: remove extent_map::block_len member + + The extent_map::block_len is either extent_map::len (non-compressed + extent) or extent_map::disk_num_bytes (compressed extent). + + Since we already have sanity checks to do the cross-checks between the + new and old members, we can drop the old extent_map::block_len now. + + For most call sites, they can manually select extent_map::len or + extent_map::disk_num_bytes, since most if not all of them have checked + if the extent is compressed. + +Upstream-Status: Backport + +Change-Id: Ib03fc685b4e876bf4e53afdd28ca9826342a0e4e +Signed-off-by: Kienan Stewart <kstewart@efficios.com> +Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> +--- + include/instrumentation/events/btrfs.h | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/include/instrumentation/events/btrfs.h b/include/instrumentation/events/btrfs.h +index dfad19c..28320d8 100644 +--- a/include/instrumentation/events/btrfs.h ++++ b/include/instrumentation/events/btrfs.h +@@ -192,7 +192,6 @@ LTTNG_TRACEPOINT_EVENT(btrfs_get_extent, + ctf_integer(u64, start, map->start) + ctf_integer(u64, len, map->len) + ctf_integer(u64, block_start, map->block_start) +- ctf_integer(u64, block_len, map->block_len) + ctf_integer(unsigned int, flags, map->flags) + ctf_integer(int, refs, refcount_read(&map->refs)) + ctf_integer(unsigned int, compress_type, extent_map_compression(map)) diff --git a/meta/recipes-kernel/lttng/lttng-modules/0005-Fix-block_start-removed-from-btrfs_get_extent-in-6.1.patch b/meta/recipes-kernel/lttng/lttng-modules/0005-Fix-block_start-removed-from-btrfs_get_extent-in-6.1.patch new file mode 100644 index 0000000000..86c72cc650 --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-modules/0005-Fix-block_start-removed-from-btrfs_get_extent-in-6.1.patch @@ -0,0 +1,50 @@ +From b845e79532c9c28c0108bf556171093236460251 Mon Sep 17 00:00:00 2001 +From: Kienan Stewart <kstewart@efficios.com> +Date: Mon, 29 Jul 2024 14:14:24 +0000 +Subject: [PATCH] Fix: block_start removed from btrfs_get_extent in 6.11-rc1 + +See upstream commit: + + commit c77a8c61002e91d859e118008fd495efbe1d9373 + Author: Qu Wenruo <wqu@suse.com> + Date: Tue Apr 30 07:53:06 2024 +0930 + + btrfs: remove extent_map::block_start member + + The member extent_map::block_start can be calculated from + extent_map::disk_bytenr + extent_map::offset for regular extents. + And otherwise just extent_map::disk_bytenr. + + And this is already validated by the validate_extent_map(). Now we can + remove the member. + + However there is a special case in btrfs_create_dio_extent() where we + for NOCOW/PREALLOC ordered extents cannot directly use the resulting + btrfs_file_extent, as btrfs_split_ordered_extent() cannot handle them + yet. + + So for that call site, we pass file_extent->disk_bytenr + + file_extent->num_bytes as disk_bytenr for the ordered extent, and 0 for + offset. + +Upstream-Status: Backport + +Change-Id: I2e3245bb0d1f5263e902659aa05848d5e231909b +Signed-off-by: Kienan Stewart <kstewart@efficios.com> +Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> +--- + include/instrumentation/events/btrfs.h | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/include/instrumentation/events/btrfs.h b/include/instrumentation/events/btrfs.h +index 28320d8..8fb6866 100644 +--- a/include/instrumentation/events/btrfs.h ++++ b/include/instrumentation/events/btrfs.h +@@ -191,7 +191,6 @@ LTTNG_TRACEPOINT_EVENT(btrfs_get_extent, + ctf_integer(u64, ino, btrfs_ino(inode)) + ctf_integer(u64, start, map->start) + ctf_integer(u64, len, map->len) +- ctf_integer(u64, block_start, map->block_start) + ctf_integer(unsigned int, flags, map->flags) + ctf_integer(int, refs, refcount_read(&map->refs)) + ctf_integer(unsigned int, compress_type, extent_map_compression(map)) diff --git a/meta/recipes-kernel/lttng/lttng-modules/0006-Fix-scsi-sd-Atomic-write-support-added-in-6.11-rc1.patch b/meta/recipes-kernel/lttng/lttng-modules/0006-Fix-scsi-sd-Atomic-write-support-added-in-6.11-rc1.patch new file mode 100644 index 0000000000..2745e6444a --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-modules/0006-Fix-scsi-sd-Atomic-write-support-added-in-6.11-rc1.patch @@ -0,0 +1,200 @@ +From d0797fe4bce357d419d2f1f8a3cfe2f8e71ebfdb Mon Sep 17 00:00:00 2001 +From: Kienan Stewart <kstewart@efficios.com> +Date: Mon, 29 Jul 2024 14:23:02 +0000 +Subject: [PATCH] Fix: scsi: sd: Atomic write support added in 6.11-rc1 + +See upstream commit: + + commit bf4ae8f2e6407a779c0368eb0f3e047a8333be17 + Author: John Garry <john.g.garry@oracle.com> + Date: Thu Jun 20 12:53:57 2024 +0000 + + scsi: sd: Atomic write support + + Support is divided into two main areas: + - reading VPD pages and setting sdev request_queue limits + - support WRITE ATOMIC (16) command and tracing + + The relevant block limits VPD page need to be read to allow the block layer + request_queue atomic write limits to be set. These VPD page limits are + described in sbc4r22 section 6.6.4 - Block limits VPD page. + + There are five limits of interest: + - MAXIMUM ATOMIC TRANSFER LENGTH + - ATOMIC ALIGNMENT + - ATOMIC TRANSFER LENGTH GRANULARITY + - MAXIMUM ATOMIC TRANSFER LENGTH WITH BOUNDARY + - MAXIMUM ATOMIC BOUNDARY SIZE + + MAXIMUM ATOMIC TRANSFER LENGTH is the maximum length for a WRITE ATOMIC + (16) command. It will not be greater than the device MAXIMUM TRANSFER + LENGTH. + + ATOMIC ALIGNMENT and ATOMIC TRANSFER LENGTH GRANULARITY are the minimum + alignment and length values for an atomic write in terms of logical blocks. + + Unlike NVMe, SCSI does not specify an LBA space boundary, but does specify + a per-IO boundary granularity. The maximum boundary size is specified in + MAXIMUM ATOMIC BOUNDARY SIZE. When used, this boundary value is set in the + WRITE ATOMIC (16) ATOMIC BOUNDARY field - layout for the WRITE_ATOMIC_16 + command can be found in sbc4r22 section 5.48. This boundary value is the + granularity size at which the device may atomically write the data. A value + of zero in WRITE ATOMIC (16) ATOMIC BOUNDARY field means that all data must + be atomically written together. + + MAXIMUM ATOMIC TRANSFER LENGTH WITH BOUNDARY is the maximum atomic write + length if a non-zero boundary value is set. + + For atomic write support, the WRITE ATOMIC (16) boundary is not of much + interest, as the block layer expects each request submitted to be executed + be atomically written together. + + MAXIMUM ATOMIC TRANSFER LENGTH WITH BOUNDARY is the maximum atomic write + length if a non-zero boundary value is set. + + For atomic write support, the WRITE ATOMIC (16) boundary is not of much + interest, as the block layer expects each request submitted to be executed + atomically. However, the SCSI spec does leave itself open to a quirky + scenario where MAXIMUM ATOMIC TRANSFER LENGTH is zero, yet MAXIMUM ATOMIC + TRANSFER LENGTH WITH BOUNDARY and MAXIMUM ATOMIC BOUNDARY SIZE are both + non-zero. This case will be supported. + + To set the block layer request_queue atomic write capabilities, sanitize + the VPD page limits and set limits as follows: + - atomic_write_unit_min is derived from granularity and alignment values. + If no granularity value is not set, use physical block size + - atomic_write_unit_max is derived from MAXIMUM ATOMIC TRANSFER LENGTH. In + the scenario where MAXIMUM ATOMIC TRANSFER LENGTH is zero and boundary + limits are non-zero, use MAXIMUM ATOMIC BOUNDARY SIZE for + atomic_write_unit_max. New flag scsi_disk.use_atomic_write_boundary is + set for this scenario. + - atomic_write_boundary_bytes is set to zero always + + SCSI also supports a WRITE ATOMIC (32) command, which is for type 2 + protection enabled. This is not going to be supported now, so check for + T10_PI_TYPE2_PROTECTION when setting any request_queue limits. + + To handle an atomic write request, add support for WRITE ATOMIC (16) + command in handler sd_setup_atomic_cmnd(). Flag use_atomic_write_boundary + is checked here for encoding ATOMIC BOUNDARY field. + + Trace info is also added for WRITE_ATOMIC_16 command. + +Upstream-Status: Backport + +Change-Id: Ie072002fe2184615c72531ac081a324ef18cfb03 +Signed-off-by: Kienan Stewart <kstewart@efficios.com> +Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> +--- + include/instrumentation/events/scsi.h | 98 ++++++++++++++++++++++++++- + 1 file changed, 97 insertions(+), 1 deletion(-) + +diff --git a/include/instrumentation/events/scsi.h b/include/instrumentation/events/scsi.h +index 52c0ebd..54ba3ee 100644 +--- a/include/instrumentation/events/scsi.h ++++ b/include/instrumentation/events/scsi.h +@@ -16,7 +16,103 @@ + + #define scsi_opcode_name(opcode) { opcode, #opcode } + +-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,7,0) \ ++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,11,0)) ++ ++#define show_opcode_name(val) \ ++ __print_symbolic(val, \ ++ scsi_opcode_name(TEST_UNIT_READY), \ ++ scsi_opcode_name(REZERO_UNIT), \ ++ scsi_opcode_name(REQUEST_SENSE), \ ++ scsi_opcode_name(FORMAT_UNIT), \ ++ scsi_opcode_name(READ_BLOCK_LIMITS), \ ++ scsi_opcode_name(REASSIGN_BLOCKS), \ ++ scsi_opcode_name(INITIALIZE_ELEMENT_STATUS), \ ++ scsi_opcode_name(READ_6), \ ++ scsi_opcode_name(WRITE_6), \ ++ scsi_opcode_name(SEEK_6), \ ++ scsi_opcode_name(READ_REVERSE), \ ++ scsi_opcode_name(WRITE_FILEMARKS), \ ++ scsi_opcode_name(SPACE), \ ++ scsi_opcode_name(INQUIRY), \ ++ scsi_opcode_name(RECOVER_BUFFERED_DATA), \ ++ scsi_opcode_name(MODE_SELECT), \ ++ scsi_opcode_name(RESERVE), \ ++ scsi_opcode_name(RELEASE), \ ++ scsi_opcode_name(COPY), \ ++ scsi_opcode_name(ERASE), \ ++ scsi_opcode_name(MODE_SENSE), \ ++ scsi_opcode_name(START_STOP), \ ++ scsi_opcode_name(RECEIVE_DIAGNOSTIC), \ ++ scsi_opcode_name(SEND_DIAGNOSTIC), \ ++ scsi_opcode_name(ALLOW_MEDIUM_REMOVAL), \ ++ scsi_opcode_name(SET_WINDOW), \ ++ scsi_opcode_name(READ_CAPACITY), \ ++ scsi_opcode_name(READ_10), \ ++ scsi_opcode_name(WRITE_10), \ ++ scsi_opcode_name(SEEK_10), \ ++ scsi_opcode_name(POSITION_TO_ELEMENT), \ ++ scsi_opcode_name(WRITE_VERIFY), \ ++ scsi_opcode_name(VERIFY), \ ++ scsi_opcode_name(SEARCH_HIGH), \ ++ scsi_opcode_name(SEARCH_EQUAL), \ ++ scsi_opcode_name(SEARCH_LOW), \ ++ scsi_opcode_name(SET_LIMITS), \ ++ scsi_opcode_name(PRE_FETCH), \ ++ scsi_opcode_name(READ_POSITION), \ ++ scsi_opcode_name(SYNCHRONIZE_CACHE), \ ++ scsi_opcode_name(LOCK_UNLOCK_CACHE), \ ++ scsi_opcode_name(READ_DEFECT_DATA), \ ++ scsi_opcode_name(MEDIUM_SCAN), \ ++ scsi_opcode_name(COMPARE), \ ++ scsi_opcode_name(COPY_VERIFY), \ ++ scsi_opcode_name(WRITE_BUFFER), \ ++ scsi_opcode_name(READ_BUFFER), \ ++ scsi_opcode_name(UPDATE_BLOCK), \ ++ scsi_opcode_name(READ_LONG), \ ++ scsi_opcode_name(WRITE_LONG), \ ++ scsi_opcode_name(CHANGE_DEFINITION), \ ++ scsi_opcode_name(WRITE_SAME), \ ++ scsi_opcode_name(UNMAP), \ ++ scsi_opcode_name(READ_TOC), \ ++ scsi_opcode_name(LOG_SELECT), \ ++ scsi_opcode_name(LOG_SENSE), \ ++ scsi_opcode_name(XDWRITEREAD_10), \ ++ scsi_opcode_name(MODE_SELECT_10), \ ++ scsi_opcode_name(RESERVE_10), \ ++ scsi_opcode_name(RELEASE_10), \ ++ scsi_opcode_name(MODE_SENSE_10), \ ++ scsi_opcode_name(PERSISTENT_RESERVE_IN), \ ++ scsi_opcode_name(PERSISTENT_RESERVE_OUT), \ ++ scsi_opcode_name(VARIABLE_LENGTH_CMD), \ ++ scsi_opcode_name(REPORT_LUNS), \ ++ scsi_opcode_name(MAINTENANCE_IN), \ ++ scsi_opcode_name(MAINTENANCE_OUT), \ ++ scsi_opcode_name(MOVE_MEDIUM), \ ++ scsi_opcode_name(EXCHANGE_MEDIUM), \ ++ scsi_opcode_name(READ_12), \ ++ scsi_opcode_name(WRITE_12), \ ++ scsi_opcode_name(WRITE_VERIFY_12), \ ++ scsi_opcode_name(SEARCH_HIGH_12), \ ++ scsi_opcode_name(SEARCH_EQUAL_12), \ ++ scsi_opcode_name(SEARCH_LOW_12), \ ++ scsi_opcode_name(READ_ELEMENT_STATUS), \ ++ scsi_opcode_name(SEND_VOLUME_TAG), \ ++ scsi_opcode_name(WRITE_LONG_2), \ ++ scsi_opcode_name(READ_16), \ ++ scsi_opcode_name(WRITE_16), \ ++ scsi_opcode_name(VERIFY_16), \ ++ scsi_opcode_name(WRITE_SAME_16), \ ++ scsi_opcode_name(ZBC_OUT), \ ++ scsi_opcode_name(ZBC_IN), \ ++ scsi_opcode_name(SERVICE_ACTION_IN_16), \ ++ scsi_opcode_name(READ_32), \ ++ scsi_opcode_name(WRITE_32), \ ++ scsi_opcode_name(WRITE_SAME_32), \ ++ scsi_opcode_name(ATA_16), \ ++ scsi_opcode_name(WRITE_ATOMIC_16), \ ++ scsi_opcode_name(ATA_12)) ++ ++#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,7,0) \ + || LTTNG_SLE_KERNEL_RANGE(4,4,9,36,0,0, 4,5,0,0,0,0)) + + #define show_opcode_name(val) \ diff --git a/meta/recipes-kernel/lttng/lttng-modules/Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch b/meta/recipes-kernel/lttng/lttng-modules/Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch deleted file mode 100644 index e411242272..0000000000 --- a/meta/recipes-kernel/lttng/lttng-modules/Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 1b0e574d680101105a6c1e8931c78824f5a97a42 Mon Sep 17 00:00:00 2001 -From: Otavio Salvador <otavio@ossystems.com.br> -Date: Mon, 5 Sep 2016 17:08:56 +0000 -Subject: [PATCH] Makefile: Do not fail if CONFIG_TRACEPOINTS is not enabled -Organization: O.S. Systems Software LTDA. - -The lttng-modules are being pulled by the tools-profile image feature, -however, not every kernel has the CONFIG_TRACEPOINTS feature enabled. - -This change makes the build do not fail when CONFIG_TRACEPOINTS is not -available, allowing it to be kept being pulled by default. - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> ---- - Makefile | 9 +++++---- - 1 file changed, 5 insertions(+), 4 deletions(-) - -diff --git a/Makefile b/Makefile -index 8602649..75550cc 100644 ---- a/Makefile -+++ b/Makefile -@@ -8,10 +8,7 @@ ifneq ($(KERNELRELEASE),) - # and defines the modules to be built. - - ifdef CONFIG_LOCALVERSION # Check if dot-config is included. -- ifeq ($(CONFIG_TRACEPOINTS),) -- $(error The option CONFIG_TRACEPOINTS needs to be enabled in your kernel configuration) -- endif # CONFIG_TRACEPOINTS -- endif # ifdef CONFIG_LOCALVERSION -+ ifneq ($(CONFIG_TRACEPOINTS),) - - TOP_LTTNG_MODULES_DIR := $(shell dirname $(lastword $(MAKEFILE_LIST))) - -@@ -94,6 +91,10 @@ ifneq ($(KERNELRELEASE),) - obj-$(CONFIG_LTTNG) += lib/ - obj-$(CONFIG_LTTNG) += tests/ - -+ else -+ $(warning The option CONFIG_TRACEPOINTS needs to be enabled in your kernel configuration) -+ endif # CONFIG_TRACEPOINTS -+ endif # ifdef CONFIG_LOCALVERSION - else # KERNELRELEASE - - # This part of the Makefile is used when the 'make' command is runned in the --- -2.1.4 - diff --git a/meta/recipes-kernel/lttng/lttng-modules_2.12.6.bb b/meta/recipes-kernel/lttng/lttng-modules_2.12.6.bb deleted file mode 100644 index 94e849de59..0000000000 --- a/meta/recipes-kernel/lttng/lttng-modules_2.12.6.bb +++ /dev/null @@ -1,42 +0,0 @@ -SECTION = "devel" -SUMMARY = "Linux Trace Toolkit KERNEL MODULE" -DESCRIPTION = "The lttng-modules 2.0 package contains the kernel tracer modules" -HOMEPAGE = "https://lttng.org/" -LICENSE = "LGPLv2.1 & GPLv2 & MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=3f882d431dc0f32f1f44c0707aa41128" - -inherit module - -include lttng-platforms.inc - -SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \ - file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \ - " - -SRC_URI[sha256sum] = "95ac2a2cf92d85d23ffbdaca6a1ec0d7c167211d1e0fb850ab90004a3f475eaa" - -export INSTALL_MOD_DIR="kernel/lttng-modules" - -EXTRA_OEMAKE += "KERNELDIR='${STAGING_KERNEL_DIR}'" - -do_install_append() { - # Delete empty directories to avoid QA failures if no modules were built - find ${D}/${nonarch_base_libdir} -depth -type d -empty -exec rmdir {} \; -} - -python do_package_prepend() { - if not os.path.exists(os.path.join(d.getVar('D'), d.getVar('nonarch_base_libdir')[1:], 'modules')): - bb.warn("%s: no modules were created; this may be due to CONFIG_TRACEPOINTS not being enabled in your kernel." % d.getVar('PN')) -} - -BBCLASSEXTEND = "devupstream:target" -LIC_FILES_CHKSUM_class-devupstream = "file://LICENSE;md5=0464cff101a009c403cd2ed65d01d4c4" -DEFAULT_PREFERENCE_class-devupstream = "-1" -SRC_URI_class-devupstream = "git://git.lttng.org/lttng-modules;branch=stable-2.13 \ - file://0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch \ - " - -SRCREV_class-devupstream = "f982b51a98a29cb4aaf607cb9bbf2b509d8e6933" -PV_class-devupstream = "2.13.0-rc2+git${SRCPV}" -S_class-devupstream = "${WORKDIR}/git" -SRCREV_FORMAT ?= "lttng_git" diff --git a/meta/recipes-kernel/lttng/lttng-modules_2.13.14.bb b/meta/recipes-kernel/lttng/lttng-modules_2.13.14.bb new file mode 100644 index 0000000000..5b1e61f3be --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-modules_2.13.14.bb @@ -0,0 +1,47 @@ +SECTION = "devel" +SUMMARY = "Linux Trace Toolkit KERNEL MODULE" +DESCRIPTION = "The lttng-modules 2.0 package contains the kernel tracer modules" +HOMEPAGE = "https://lttng.org/" +LICENSE = "LGPL-2.1-only & GPL-2.0-only & MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=8d0d9f08888046474772a5d745d89d6a" + +inherit module + +include lttng-platforms.inc + +SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \ + file://0001-Fix-kfree_skb-changed-in-6.11-rc1.patch \ + file://0002-Fix-ext4_da_reserve_space-changed-in-6.11-rc1.patch \ + file://0003-Fix-orig_start-removed-from-btrfs_get_extent-in-6.11.patch \ + file://0004-Fix-block_len-removed-frmo-btrfs_get_extent-in-6.11-.patch \ + file://0005-Fix-block_start-removed-from-btrfs_get_extent-in-6.1.patch \ + file://0006-Fix-scsi-sd-Atomic-write-support-added-in-6.11-rc1.patch \ + " + +# Use :append here so that the patch is applied also when using devupstream +SRC_URI:append = " file://0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch" + +SRC_URI[sha256sum] = "c6449f7ff12ab644a630692a556304e51525ca37d98aebf826796918be0f5da6" + +export INSTALL_MOD_DIR="kernel/lttng-modules" + +EXTRA_OEMAKE += "KERNELDIR='${STAGING_KERNEL_DIR}'" + +MODULES_MODULE_SYMVERS_LOCATION = "src" + +do_install:append() { + # Delete empty directories to avoid QA failures if no modules were built + if [ -d ${D}/${nonarch_base_libdir} ]; then + find ${D}/${nonarch_base_libdir} -depth -type d -empty -exec rmdir {} \; + fi +} + +python do_package:prepend() { + if not os.path.exists(os.path.join(d.getVar('D'), d.getVar('nonarch_base_libdir')[1:], 'modules')): + bb.warn("%s: no modules were created; this may be due to CONFIG_TRACEPOINTS not being enabled in your kernel." % d.getVar('PN')) +} + +BBCLASSEXTEND = "devupstream:target" +SRC_URI:class-devupstream = "git://git.lttng.org/lttng-modules;branch=stable-2.13;protocol=https" +SRCREV:class-devupstream = "7584cfc04914cb0842a986e9808686858b9c8630" +SRCREV_FORMAT ?= "lttng_git" diff --git a/meta/recipes-kernel/lttng/lttng-platforms.inc b/meta/recipes-kernel/lttng/lttng-platforms.inc index aa8220bbb4..900e36df82 100644 --- a/meta/recipes-kernel/lttng/lttng-platforms.inc +++ b/meta/recipes-kernel/lttng/lttng-platforms.inc @@ -2,16 +2,20 @@ # Whether the platform supports kernel tracing # LTTNGMODULES = "lttng-modules" -LTTNGMODULES_arc = "" -LTTNGMODULES_riscv64 = "" +LTTNGMODULES:arc = "" +LTTNGMODULES:riscv64 = "" -COMPATIBLE_HOST_riscv64_pn-lttng-modules = "null" -COMPATIBLE_HOST_arc_pn-lttng-modules = "null" +COMPATIBLE_HOST:riscv64:pn-lttng-modules = "null" +COMPATIBLE_HOST:arc:pn-lttng-modules = "null" # Whether the platform supports userspace tracing # lttng-ust uses sched_getcpu() which is not there on for some platforms. LTTNGUST = "lttng-ust" -LTTNGUST_arc = "" +LTTNGUST:arc = "" -COMPATIBLE_HOST_arc_pn-lttng-ust = "null" +COMPATIBLE_HOST:arc:pn-lttng-ust = "null" +# Whether the platform supports lttng-tools +# lttng-tools requires SYS_ppoll and SYS_pselect6 which are not supported on riscv32. +# It's also turned off for riscv32 in meta-riscv. See https://github.com/riscv/meta-riscv/blob/master/conf/layer.conf +COMPATIBLE_HOST:riscv32:pn-lttng-tools = "null" diff --git a/meta/recipes-kernel/lttng/lttng-tools/0001-Fix-rotation-destroy-flush-fix-session-daemon-abort-.patch b/meta/recipes-kernel/lttng/lttng-tools/0001-Fix-rotation-destroy-flush-fix-session-daemon-abort-.patch new file mode 100644 index 0000000000..3286dfb5c1 --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-tools/0001-Fix-rotation-destroy-flush-fix-session-daemon-abort-.patch @@ -0,0 +1,56 @@ +From 6b45c5f80d20e7bbf3d98c1fa17d2cf8716af3bb Mon Sep 17 00:00:00 2001 +From: Xiangyu Chen <xiangyu.chen@windriver.com> +Date: Mon, 25 Mar 2024 18:20:14 +0800 +Subject: [PATCH] Fix: rotation-destroy-flush: fix session daemon abort if no + kernel module present + +Testing rotation-destroy-flush when no lttng kernel modules present, it would +be failed with error message: + + Error: Unable to load required module lttng-ring-buffer-client-discard + not ok 1 - Start session daemon + Failed test 'Start session daemon' + not ok 2 - Create session rotation_destroy_flush in -o /tmp/tmp.test_rot ... + ... + +This because test script that sets the LTTNG_ABORT_ON_ERROR environment +variable. It's this environment variable that causes the sessiond to handle the +kernel module loading failure as an abort rather than a warning. + +Using "check_skip_kernel_test" to detect whether the kernel module fails to +load is expected or not. If the failure is expected, the script won't set that +environment variable any more. + +Fixes: 3a174400 +("tests:add check_skip_kernel_test to check root user and lttng kernel modules") + +Upstream-Status: Submitted [https://review.lttng.org/c/lttng-tools/+/12155] + +Change-Id: I371e9ba717613e2940186f710cf3cccd35baed6c +Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com> +--- + .../ust/rotation-destroy-flush/test_rotation_destroy_flush | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/tests/regression/ust/rotation-destroy-flush/test_rotation_destroy_flush b/tests/regression/ust/rotation-destroy-flush/test_rotation_destroy_flush +index 669bcbc43..64161768f 100755 +--- a/tests/regression/ust/rotation-destroy-flush/test_rotation_destroy_flush ++++ b/tests/regression/ust/rotation-destroy-flush/test_rotation_destroy_flush +@@ -23,11 +23,11 @@ SIZE_LIMIT=$PAGE_SIZE + NR_ITER=10 + NUM_TESTS=$((15*$NR_ITER)) + +-# Ensure the daemons invoke abort on error. +-export LTTNG_ABORT_ON_ERROR=1 +- + source $TESTDIR/utils/utils.sh + ++# Ensure the daemons invoke abort on error. ++check_skip_kernel_test || export LTTNG_ABORT_ON_ERROR=1 ++ + # MUST set TESTDIR before calling those functions + function run_app() + { +-- +2.25.1 + diff --git a/meta/recipes-kernel/lttng/lttng-tools/0001-compat-Define-off64_t-as-off_t-on-linux.patch b/meta/recipes-kernel/lttng/lttng-tools/0001-compat-Define-off64_t-as-off_t-on-linux.patch new file mode 100644 index 0000000000..4e21d1e9f1 --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-tools/0001-compat-Define-off64_t-as-off_t-on-linux.patch @@ -0,0 +1,74 @@ +From 74b3844737b03492756b4f896c938b504b069f14 Mon Sep 17 00:00:00 2001 +From: Jérémie Galarneau <jeremie.galarneau@efficios.com> +Date: Tue, 17 Jan 2023 16:57:35 -0500 +Subject: [PATCH] compat: off64_t is not defined by musl + +This helps compile with latest musl, where off64_t is not defined unless +_LARGEFILE64_SOURCE is defined. On glibc, _LARGEFILE64_SOURCE is defined +if _GNU_SOURCE is defined, so the problem is only seen with musl. + +Since the project uses AC_SYS_LARGEFILE, which from the autoconf doc: +"arrange for 64-bit file offsets, known as large-file support." + +As such, it is safe to assume off_t is 64-bit wide. This is checked by a +static_assert to catch any platform where autoconf would let a 32-bit +off_t slip. + +Upstream-Status: Submitted [https://review.lttng.org/c/lttng-tools/+/9268] +Reported-by: Khem Raj <raj.khem@gmail.com> +Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com> +Change-Id: If2c6007a8c85bc3f3065002af8a7538b882fb4a8 +--- + +--- a/src/common/compat/compat-fcntl.c ++++ b/src/common/compat/compat-fcntl.c +@@ -8,14 +8,17 @@ + #define _LGPL_SOURCE + #include <common/compat/fcntl.h> + #include <common/macros.h> ++#include <common/bug.h> ++#include <stdint.h> + #include <unistd.h> + + #ifdef __linux__ + + LTTNG_HIDDEN +-int compat_sync_file_range(int fd, off64_t offset, off64_t nbytes, ++int compat_sync_file_range(int fd, off_t offset, off_t nbytes, + unsigned int flags) + { ++ LTTNG_BUILD_BUG_ON(sizeof(off_t) != sizeof(int64_t)); + #ifdef HAVE_SYNC_FILE_RANGE + return sync_file_range(fd, offset, nbytes, flags); + #else +--- a/src/common/compat/fcntl.h ++++ b/src/common/compat/fcntl.h +@@ -13,16 +13,12 @@ + + #include <common/compat/errno.h> + +-#if (defined(__CYGWIN__)) +-typedef long long off64_t; +-#endif +- + #if (defined(__FreeBSD__) || defined(__sun__)) + typedef off64_t loff_t; + #endif + + #ifdef __linux__ +-extern int compat_sync_file_range(int fd, off64_t offset, off64_t nbytes, ++extern int compat_sync_file_range(int fd, off_t offset, off_t nbytes, + unsigned int flags); + #define lttng_sync_file_range(fd, offset, nbytes, flags) \ + compat_sync_file_range(fd, offset, nbytes, flags) +@@ -37,8 +33,8 @@ extern int compat_sync_file_range(int fd + #define SYNC_FILE_RANGE_WAIT_BEFORE 0 + #define SYNC_FILE_RANGE_WRITE 0 + +-static inline int lttng_sync_file_range(int fd, off64_t offset, +- off64_t nbytes, unsigned int flags) ++static inline int lttng_sync_file_range(int fd, off_t offset, ++ off_t nbytes, unsigned int flags) + { + return -ENOSYS; + } diff --git a/meta/recipes-kernel/lttng/lttng-tools/0001-tests-add-check_skip_kernel_test-to-check-root-user-.patch b/meta/recipes-kernel/lttng/lttng-tools/0001-tests-add-check_skip_kernel_test-to-check-root-user-.patch new file mode 100644 index 0000000000..2671a1908e --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-tools/0001-tests-add-check_skip_kernel_test-to-check-root-user-.patch @@ -0,0 +1,1246 @@ +From cf558f802b259a33605fe0ede4d74ae2ff6be699 Mon Sep 17 00:00:00 2001 +From: Xiangyu Chen <xiangyu.chen@windriver.com> +Date: Mon, 12 Feb 2024 09:23:54 -0500 +Subject: [PATCH] tests: add check_skip_kernel_test to check root user and + lttng kernel modules +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The current tests will run both userspace and kernel testing. Some of +use cases only use lttng for one kind of tracing on an embedded +device (e.g. userspace), so in this scenario, the kernel modules might +not install to target rootfs, the test cases would be fail and exit. + +Add LTTNG_TOOLS_DISABLE_KERNEL_TESTS to skip the lttng kernel features +test, this flag can be set via "make": + + make check LTTNG_TOOLS_DISABLE_KERNEL_TESTS=1 + +When this flag was set, all kernel related testcases would be marked as +SKIP in result. + +Since the the LTTNG_TOOLS_DISABLE_KERNEL_TESTS was checked in function +check_skip_kernel_test, lots of testcases also need to check root +permission, so merging the root permission checking into +check_skip_kernel_test. + +Upstream-Status: Backport from +[https://git.lttng.org/?p=lttng-tools.git;a=commit;h=3a1744008331a0604479d3d7461f77056fad3a64] + +Change-Id: I49a1f642a9869c21a69e0186c296fd917bd7b525 +Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com> +Signed-off-by: Michael Jeanson <mjeanson@efficios.com> +Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com> +--- + tests/destructive/metadata-regeneration | 8 +---- + tests/perf/test_perf_raw.in | 8 +---- + tests/regression/kernel/test_all_events | 8 +---- + tests/regression/kernel/test_callstack | 8 +---- + tests/regression/kernel/test_channel | 8 +---- + tests/regression/kernel/test_clock_override | 8 +---- + tests/regression/kernel/test_event_basic | 8 +---- + tests/regression/kernel/test_kernel_function | 8 +---- + tests/regression/kernel/test_lttng_logger | 8 +---- + tests/regression/kernel/test_ns_contexts | 8 +---- + .../regression/kernel/test_ns_contexts_change | 9 +---- + .../kernel/test_rotation_destroy_flush | 8 +---- + .../regression/kernel/test_select_poll_epoll | 8 +---- + tests/regression/kernel/test_syscall | 8 +---- + tests/regression/kernel/test_userspace_probe | 8 +---- + tests/regression/tools/clear/test_kernel | 8 +---- + .../tools/filtering/test_invalid_filter | 8 +---- + .../tools/filtering/test_unsupported_op | 8 +---- + .../tools/filtering/test_valid_filter | 8 +---- + tests/regression/tools/health/test_health.sh | 10 ++---- + tests/regression/tools/health/test_thread_ok | 9 +---- + tests/regression/tools/live/test_kernel | 10 +++--- + tests/regression/tools/live/test_lttng_kernel | 8 +---- + tests/regression/tools/metadata/test_kernel | 8 +---- + .../test_notification_kernel_buffer_usage | 36 +++++++++---------- + .../test_notification_kernel_capture | 23 ++++++------ + .../test_notification_kernel_error | 23 ++++++------ + .../test_notification_kernel_instrumentation | 23 ++++++------ + .../test_notification_kernel_syscall | 19 +++++----- + .../test_notification_kernel_userspace_probe | 20 +++++------ + .../notification/test_notification_multi_app | 14 +++----- + ...test_notification_notifier_discarded_count | 9 +++-- + .../tools/regen-metadata/test_kernel | 8 +---- + .../tools/regen-statedump/test_kernel | 8 +---- + tests/regression/tools/rotation/test_kernel | 8 +---- + tests/regression/tools/snapshots/test_kernel | 8 +---- + .../tools/snapshots/test_kernel_streaming | 8 +---- + .../streaming/test_high_throughput_limits | 8 +---- + tests/regression/tools/streaming/test_kernel | 8 +---- + .../tools/tracker/test_event_tracker | 8 +---- + .../tools/trigger/test_add_trigger_cli | 12 ++----- + .../tools/trigger/test_list_triggers_cli | 26 +++++--------- + .../tools/wildcard/test_event_wildcard | 8 +---- + .../test_relayd_working_directory | 4 +-- + .../ust/namespaces/test_ns_contexts_change | 7 +--- + tests/regression/ust/test_event_perf | 8 +---- + tests/utils/utils.sh | 35 ++++++++++++++++++ + 47 files changed, 166 insertions(+), 363 deletions(-) + +diff --git a/tests/destructive/metadata-regeneration b/tests/destructive/metadata-regeneration +index b81e7af32..36b130d17 100755 +--- a/tests/destructive/metadata-regeneration ++++ b/tests/destructive/metadata-regeneration +@@ -185,19 +185,13 @@ function test_ust_streaming () + rm -f ${file_sync_before_last} + } + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- + if ! destructive_tests_enabled ; then + echo 'You need to set the LTTNG_ENABLE_DESTRUCTIVE_TESTS to "will-break-my-system" as argument to run this test' + echo 'Moreover, please make sure that ntp is not running while executing this test' + exit 0 + fi + +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test $NUM_TESTS "Skipping all tests." || + { + start_lttng_relayd "-o $TRACE_PATH" + start_lttng_sessiond +diff --git a/tests/perf/test_perf_raw.in b/tests/perf/test_perf_raw.in +index f293ccd71..d35529a87 100644 +--- a/tests/perf/test_perf_raw.in ++++ b/tests/perf/test_perf_raw.in +@@ -137,12 +137,6 @@ function test_kernel_raw() + rm -rf $TRACE_PATH + } + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- + # MUST set TESTDIR before calling those functions + plan_tests $NUM_TESTS + +@@ -154,7 +148,7 @@ have_libpfm + + test_ust_raw + +-skip $isroot "Root access is needed for kernel testing, skipping." 9 || ++check_skip_kernel_test 9 || + { + modprobe lttng-test + test_kernel_raw +diff --git a/tests/regression/kernel/test_all_events b/tests/regression/kernel/test_all_events +index 2e20888df..044f9b65f 100755 +--- a/tests/regression/kernel/test_all_events ++++ b/tests/regression/kernel/test_all_events +@@ -43,13 +43,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + start_lttng_sessiond +diff --git a/tests/regression/kernel/test_callstack b/tests/regression/kernel/test_callstack +index a4477fd7c..d8d6b5e0f 100755 +--- a/tests/regression/kernel/test_callstack ++++ b/tests/regression/kernel/test_callstack +@@ -134,13 +134,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." "$NUM_TESTS" || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + start_lttng_sessiond +diff --git a/tests/regression/kernel/test_channel b/tests/regression/kernel/test_channel +index 9cc74c4e8..4c377bd2a 100755 +--- a/tests/regression/kernel/test_channel ++++ b/tests/regression/kernel/test_channel +@@ -47,13 +47,7 @@ function test_channel_buffer_too_large() + plan_tests $NUM_TESTS + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + start_lttng_sessiond + +diff --git a/tests/regression/kernel/test_clock_override b/tests/regression/kernel/test_clock_override +index 72892898b..48a3f926a 100755 +--- a/tests/regression/kernel/test_clock_override ++++ b/tests/regression/kernel/test_clock_override +@@ -172,13 +172,7 @@ TESTS=( + TEST_COUNT=${#TESTS[@]} + i=0 + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + trap signal_cleanup SIGTERM SIGINT +diff --git a/tests/regression/kernel/test_event_basic b/tests/regression/kernel/test_event_basic +index ac9ec0549..387e2f733 100755 +--- a/tests/regression/kernel/test_event_basic ++++ b/tests/regression/kernel/test_event_basic +@@ -73,13 +73,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test $NUM_TESTS "Skipping all tests." || + { + validate_lttng_modules_present + start_lttng_sessiond +diff --git a/tests/regression/kernel/test_kernel_function b/tests/regression/kernel/test_kernel_function +index b1d5491fc..ea16cdeef 100755 +--- a/tests/regression/kernel/test_kernel_function ++++ b/tests/regression/kernel/test_kernel_function +@@ -43,13 +43,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + start_lttng_sessiond_notap + validate_lttng_modules_present +diff --git a/tests/regression/kernel/test_lttng_logger b/tests/regression/kernel/test_lttng_logger +index b8f7ded82..00eaae823 100755 +--- a/tests/regression/kernel/test_lttng_logger ++++ b/tests/regression/kernel/test_lttng_logger +@@ -110,13 +110,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + start_lttng_sessiond +diff --git a/tests/regression/kernel/test_ns_contexts b/tests/regression/kernel/test_ns_contexts +index 0c8718d78..59e2568f6 100755 +--- a/tests/regression/kernel/test_ns_contexts ++++ b/tests/regression/kernel/test_ns_contexts +@@ -108,13 +108,7 @@ plan_tests $NUM_TESTS + print_test_banner "$TEST_DESC" + + +-isroot=0 +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." "$NUM_TESTS" && exit 0 +- ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." && exit 0 + + system_has_ns=0 + if [ -d "/proc/$$/ns" ]; then +diff --git a/tests/regression/kernel/test_ns_contexts_change b/tests/regression/kernel/test_ns_contexts_change +index 42a61276b..3f5e4eeab 100755 +--- a/tests/regression/kernel/test_ns_contexts_change ++++ b/tests/regression/kernel/test_ns_contexts_change +@@ -162,14 +162,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +- +-isroot=0 +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." "$NUM_TESTS" && exit 0 +- ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." && exit 0 + + system_has_ns=0 + if [ -d "/proc/$$/ns" ]; then +diff --git a/tests/regression/kernel/test_rotation_destroy_flush b/tests/regression/kernel/test_rotation_destroy_flush +index cb773d7df..0af514b49 100755 +--- a/tests/regression/kernel/test_rotation_destroy_flush ++++ b/tests/regression/kernel/test_rotation_destroy_flush +@@ -120,13 +120,7 @@ TESTS=( + TEST_COUNT=${#TESTS[@]} + i=0 + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + trap signal_cleanup SIGTERM SIGINT +diff --git a/tests/regression/kernel/test_select_poll_epoll b/tests/regression/kernel/test_select_poll_epoll +index d8245a0e7..20f0ef0ae 100755 +--- a/tests/regression/kernel/test_select_poll_epoll ++++ b/tests/regression/kernel/test_select_poll_epoll +@@ -374,13 +374,7 @@ if test $? != 0; then + exit 0 + fi + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + +diff --git a/tests/regression/kernel/test_syscall b/tests/regression/kernel/test_syscall +index 401a18a8d..219d94703 100755 +--- a/tests/regression/kernel/test_syscall ++++ b/tests/regression/kernel/test_syscall +@@ -664,13 +664,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + start_lttng_sessiond +diff --git a/tests/regression/kernel/test_userspace_probe b/tests/regression/kernel/test_userspace_probe +index 1091ee65e..5d984d666 100755 +--- a/tests/regression/kernel/test_userspace_probe ++++ b/tests/regression/kernel/test_userspace_probe +@@ -815,13 +815,7 @@ fi + plan_tests $NUM_TESTS + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + start_lttng_sessiond +diff --git a/tests/regression/tools/clear/test_kernel b/tests/regression/tools/clear/test_kernel +index 06fb1c368..48250a742 100755 +--- a/tests/regression/tools/clear/test_kernel ++++ b/tests/regression/tools/clear/test_kernel +@@ -536,12 +536,6 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- + streaming_tests=(test_kernel_streaming + test_kernel_streaming_rotate_clear + test_kernel_streaming_clear_rotate +@@ -563,7 +557,7 @@ snapshot_tests=(test_kernel_streaming_snapshot + test_kernel_local_snapshot + ) + +-skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping kernel streaming tests." || + { + trap signal_cleanup SIGTERM SIGINT + +diff --git a/tests/regression/tools/filtering/test_invalid_filter b/tests/regression/tools/filtering/test_invalid_filter +index 7d9e524d9..8435e5546 100755 +--- a/tests/regression/tools/filtering/test_invalid_filter ++++ b/tests/regression/tools/filtering/test_invalid_filter +@@ -168,13 +168,7 @@ done + + test_bytecode_limit -u + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel invalid filter tests." $NUM_KERNEL_TESTS || ++check_skip_kernel_test "$NUM_KERNEL_TESTS" "Skipping kernel invalid filter tests." || + { + diag "Test kernel filters" + i=0 +diff --git a/tests/regression/tools/filtering/test_unsupported_op b/tests/regression/tools/filtering/test_unsupported_op +index 299247a3c..91eb86d21 100755 +--- a/tests/regression/tools/filtering/test_unsupported_op ++++ b/tests/regression/tools/filtering/test_unsupported_op +@@ -103,13 +103,7 @@ while [ "$i" -lt "$OP_COUNT" ]; do + let "i++" + done + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel unsupported filter operations tests." $NUM_KERNEL_TESTS || ++check_skip_kernel_test $NUM_KERNEL_TESTS "Skipping kernel unsupported filter operations tests." || + { + diag "Test kernel unsupported filter operations" + +diff --git a/tests/regression/tools/filtering/test_valid_filter b/tests/regression/tools/filtering/test_valid_filter +index e76ffa25f..1ba7c79bb 100755 +--- a/tests/regression/tools/filtering/test_valid_filter ++++ b/tests/regression/tools/filtering/test_valid_filter +@@ -1452,13 +1452,7 @@ KERNEL_FILTERS=( + + IFS=$OLDIFS + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel valid filter tests." $NUM_KERNEL_TESTS || ++check_skip_kernel_test "$NUM_KERNEL_TESTS" "Skipping kernel valid filter tests." || + { + diag "Test kernel valid filters" + +diff --git a/tests/regression/tools/health/test_health.sh b/tests/regression/tools/health/test_health.sh +index b3d6419d2..68716e6b9 100644 +--- a/tests/regression/tools/health/test_health.sh ++++ b/tests/regression/tools/health/test_health.sh +@@ -82,7 +82,7 @@ function test_health + diag "With UST consumer daemons" + enable_ust_lttng_event_ok $SESSION_NAME $UST_EVENT_NAME $CHANNEL_NAME + +- skip $isroot "Root access is needed. Skipping kernel consumer health check test." "1" || ++ check_skip_kernel_test "1" "Skipping kernel consumer health check test." || + { + diag "With kernel consumer daemon" + lttng_enable_kernel_event $SESSION_NAME $KERNEL_EVENT_NAME $CHANNEL_NAME +@@ -113,7 +113,7 @@ function test_health + + + if [ ${test_needs_root} -eq 1 ]; then +- skip ${isroot} "Root access needed for test \"${test_thread_name}\"." "1" || ++ check_skip_kernel_test "1" "Skipping \"${test_thread_name}\"." || + { + report_errors "${test_thread_error_string}" "${test_relayd}" + } +@@ -276,12 +276,6 @@ STDERR_PATH=$(mktemp --tmpdir tmp.test_health_stderr_path.XXXXXX) + TRACE_PATH=$(mktemp --tmpdir -d tmp.test_health_trace_path.XXXXXX) + HEALTH_PATH=$(mktemp --tmpdir -d tmp.test_health_trace_path.XXXXXX) + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- + THREAD_COUNT=${#THREAD[@]} + i=0 + while [ "$i" -lt "$THREAD_COUNT" ]; do +diff --git a/tests/regression/tools/health/test_thread_ok b/tests/regression/tools/health/test_thread_ok +index e84adb611..e5e23543f 100755 +--- a/tests/regression/tools/health/test_thread_ok ++++ b/tests/regression/tools/health/test_thread_ok +@@ -67,7 +67,7 @@ function test_thread_ok + $CURDIR/$HEALTH_CHECK_BIN > ${STDOUT_PATH} 2> ${STDERR_PATH} + report_errors + +- skip $isroot "Root access is needed. Skipping kernel consumer health check test." "5" || ++ check_skip_kernel_test "5" "Skipping kernel consumer health check test." || + { + diag "With kernel consumer daemon" + create_lttng_session_no_output $SESSION_NAME +@@ -115,13 +115,6 @@ STDERR_PATH=$(mktemp --tmpdir tmp.test_thread_ok_stderr_path.XXXXXX) + TRACE_PATH=$(mktemp --tmpdir -d tmp.test_thread_ok_trace_path.XXXXXX) + HEALTH_PATH=$(mktemp --tmpdir -d tmp.test_thread_ok_trace_path.XXXXXX) + +-# The manage kernel thread is only spawned if we are root +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- + test_thread_ok + + rm -rf ${HEALTH_PATH} +diff --git a/tests/regression/tools/live/test_kernel b/tests/regression/tools/live/test_kernel +index b622b5214..fdaa09f0d 100755 +--- a/tests/regression/tools/live/test_kernel ++++ b/tests/regression/tools/live/test_kernel +@@ -39,13 +39,11 @@ function clean_live_tracing() + rm -rf $TRACE_PATH + } + +-# Need root access for kernel tracing. +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- plan_skip_all "Root access is needed. Skipping all tests." ++check_skip_kernel_test && ++{ ++ plan_skip_all "Skipping all tests." + exit 0 +-fi ++} + + modprobe lttng-test + +diff --git a/tests/regression/tools/live/test_lttng_kernel b/tests/regression/tools/live/test_lttng_kernel +index a23d9373a..1b933648f 100755 +--- a/tests/regression/tools/live/test_lttng_kernel ++++ b/tests/regression/tools/live/test_lttng_kernel +@@ -45,13 +45,7 @@ function clean_live_tracing() + } + + # Need root access for kernel tracing. +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + modprobe lttng-test + +diff --git a/tests/regression/tools/metadata/test_kernel b/tests/regression/tools/metadata/test_kernel +index 57cace6ea..26e95d93a 100755 +--- a/tests/regression/tools/metadata/test_kernel ++++ b/tests/regression/tools/metadata/test_kernel +@@ -91,13 +91,7 @@ plan_tests $NUM_TESTS + print_test_banner "$TEST_DESC" + + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel metadata tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping kernel metadata tests." || + { + validate_lttng_modules_present + modprobe lttng-test +diff --git a/tests/regression/tools/notification/test_notification_kernel_buffer_usage b/tests/regression/tools/notification/test_notification_kernel_buffer_usage +index 76e69a77e..8fdaabb3e 100755 +--- a/tests/regression/tools/notification/test_notification_kernel_buffer_usage ++++ b/tests/regression/tools/notification/test_notification_kernel_buffer_usage +@@ -60,29 +60,27 @@ function test_buffer_usage_notification + wait $APP_PID 2> /dev/null + } + +-if [ "$(id -u)" == "0" ]; then +- +- validate_lttng_modules_present +- ++check_skip_kernel_test && ++{ ++ plan_skip_all "Skipping all tests." ++ rm -rf "$TEST_TMPDIR" ++ exit 0 ++} + +- modprobe lttng-test ++validate_lttng_modules_present + +- # Used on sessiond launch. +- LTTNG_SESSIOND_ENV_VARS="LTTNG_TESTPOINT_ENABLE=1 \ +- CONSUMER_PAUSE_PIPE_PATH=${TESTPOINT_PIPE_PATH} \ +- LD_PRELOAD=${TESTPOINT}" +- start_lttng_sessiond_notap ++modprobe lttng-test + +- test_buffer_usage_notification ++# Used on sessiond launch. ++LTTNG_SESSIOND_ENV_VARS="LTTNG_TESTPOINT_ENABLE=1 \ ++ CONSUMER_PAUSE_PIPE_PATH=${TESTPOINT_PIPE_PATH} \ ++ LD_PRELOAD=${TESTPOINT}" ++start_lttng_sessiond_notap + +- stop_lttng_sessiond_notap +- rmmod lttng-test ++test_buffer_usage_notification + +- rm -rf "${consumerd_pipe[@]}" 2> /dev/null +-else +- # Kernel tests are skipped. +- plan_tests $NUM_TESTS +- skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS +-fi ++stop_lttng_sessiond_notap ++rmmod lttng-test + ++rm -rf "${consumerd_pipe[@]}" 2> /dev/null + rm -rf "$TEST_TMPDIR" +diff --git a/tests/regression/tools/notification/test_notification_kernel_capture b/tests/regression/tools/notification/test_notification_kernel_capture +index 88f123d3d..0f8a2bc6f 100755 +--- a/tests/regression/tools/notification/test_notification_kernel_capture ++++ b/tests/regression/tools/notification/test_notification_kernel_capture +@@ -31,22 +31,21 @@ function test_basic_error_path + } + + +-if [ "$(id -u)" == "0" ]; then +- validate_lttng_modules_present ++check_skip_kernel_test && ++{ ++ plan_skip_all "Skipping all tests." ++ exit 0 ++} + +- modprobe lttng-test ++validate_lttng_modules_present + +- start_lttng_sessiond_notap ++modprobe lttng-test + +- test_basic_error_path ++start_lttng_sessiond_notap + +- stop_lttng_sessiond_notap +- rmmod lttng-test ++test_basic_error_path + +-else +- # Kernel tests are skipped. +- plan_tests $NUM_TESTS +- skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS +-fi ++stop_lttng_sessiond_notap ++rmmod lttng-test + + rm -f "$TESTAPP_STATE_PATH" +diff --git a/tests/regression/tools/notification/test_notification_kernel_error b/tests/regression/tools/notification/test_notification_kernel_error +index 80fe6e5b5..b757ec2b4 100755 +--- a/tests/regression/tools/notification/test_notification_kernel_error ++++ b/tests/regression/tools/notification/test_notification_kernel_error +@@ -30,23 +30,22 @@ function test_basic_error_path + wait $APP_PID 2> /dev/null + } + ++check_skip_kernel_test && ++{ ++ plan_skip_all "Skipping all tests." ++ exit 0 ++} + +-if [ "$(id -u)" == "0" ]; then +- validate_lttng_modules_present ++validate_lttng_modules_present + +- modprobe lttng-test ++modprobe lttng-test + +- start_lttng_sessiond_notap ++start_lttng_sessiond_notap + +- test_basic_error_path ++test_basic_error_path + +- stop_lttng_sessiond_notap +- rmmod lttng-test ++stop_lttng_sessiond_notap ++rmmod lttng-test + +-else +- # Kernel tests are skipped. +- plan_tests $NUM_TESTS +- skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS +-fi + + rm -f "$TESTAPP_STATE_PATH" +diff --git a/tests/regression/tools/notification/test_notification_kernel_instrumentation b/tests/regression/tools/notification/test_notification_kernel_instrumentation +index 90545a541..705f7703d 100755 +--- a/tests/regression/tools/notification/test_notification_kernel_instrumentation ++++ b/tests/regression/tools/notification/test_notification_kernel_instrumentation +@@ -28,22 +28,21 @@ function test_kernel_instrumentation_notification + wait $APP_PID 2> /dev/null + } + +-if [ "$(id -u)" == "0" ]; then +- validate_lttng_modules_present ++check_skip_kernel_test && ++{ ++ plan_skip_all "Skipping all tests." ++ exit 0 ++} + +- modprobe lttng-test ++validate_lttng_modules_present + +- start_lttng_sessiond_notap ++modprobe lttng-test + +- test_kernel_instrumentation_notification ++start_lttng_sessiond_notap + +- stop_lttng_sessiond_notap +- rmmod lttng-test ++test_kernel_instrumentation_notification + +-else +- # Kernel tests are skipped. +- plan_tests $NUM_TESTS +- skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS +-fi ++stop_lttng_sessiond_notap ++rmmod lttng-test + + rm -f "$TESTAPP_STATE_PATH" +diff --git a/tests/regression/tools/notification/test_notification_kernel_syscall b/tests/regression/tools/notification/test_notification_kernel_syscall +index d273cb55d..7fa235388 100755 +--- a/tests/regression/tools/notification/test_notification_kernel_syscall ++++ b/tests/regression/tools/notification/test_notification_kernel_syscall +@@ -31,19 +31,18 @@ function test_kernel_syscall_notification + wait $APP_PID 2> /dev/null + } + +-if [ "$(id -u)" == "0" ]; then +- validate_lttng_modules_present ++check_skip_kernel_test && ++{ ++ plan_skip_all "Skipping all tests." ++ exit 0 ++} + +- start_lttng_sessiond_notap ++validate_lttng_modules_present + +- test_kernel_syscall_notification ++start_lttng_sessiond_notap + +- stop_lttng_sessiond_notap ++test_kernel_syscall_notification + +-else +- # Kernel tests are skipped. +- plan_tests $NUM_TESTS +- skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS +-fi ++stop_lttng_sessiond_notap + + rm -f "$TESTAPP_STATE_PATH" +diff --git a/tests/regression/tools/notification/test_notification_kernel_userspace_probe b/tests/regression/tools/notification/test_notification_kernel_userspace_probe +index 8ef8d708d..abddd9be7 100755 +--- a/tests/regression/tools/notification/test_notification_kernel_userspace_probe ++++ b/tests/regression/tools/notification/test_notification_kernel_userspace_probe +@@ -29,18 +29,18 @@ function test_kernel_userspace_probe_notification + wait $APP_PID 2> /dev/null + } + +-if [ "$(id -u)" == "0" ]; then +- validate_lttng_modules_present ++check_skip_kernel_test && ++{ ++ plan_skip_all "Skipping all tests." ++ exit 0 ++} ++ ++validate_lttng_modules_present + +- start_lttng_sessiond_notap ++start_lttng_sessiond_notap + +- test_kernel_userspace_probe_notification ++test_kernel_userspace_probe_notification + +- stop_lttng_sessiond_notap +-else +- # Kernel tests are skipped. +- plan_tests $NUM_TESTS +- skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS +-fi ++stop_lttng_sessiond_notap + + rm -f "$TESTAPP_STATE_PATH" +diff --git a/tests/regression/tools/notification/test_notification_multi_app b/tests/regression/tools/notification/test_notification_multi_app +index d8b639225..61891b56f 100755 +--- a/tests/regression/tools/notification/test_notification_multi_app ++++ b/tests/regression/tools/notification/test_notification_multi_app +@@ -411,22 +411,18 @@ function test_on_register_evaluation () + rm -rf "$output_dir" + } + +- + TESTS=( + test_multi_app_ust + test_on_register_evaluation_ust + ) + +-if [ "$(id -u)" == "0" ]; then ++check_skip_kernel_test "$NUM_TEST_KERNEL" "Skipping kernel multi-app notification tests." || { + validate_lttng_modules_present + TESTS+=( +- test_multi_app_kernel +- test_on_register_evaluation_kernel +-) +-else +- skip 0 "Root access is needed. Skipping all kernel multi-app notification tests." $NUM_TEST_KERNEL +-fi +- ++ test_multi_app_kernel ++ test_on_register_evaluation_kernel ++ ) ++} + + for fct_test in ${TESTS[@]}; + do +diff --git a/tests/regression/tools/notification/test_notification_notifier_discarded_count b/tests/regression/tools/notification/test_notification_notifier_discarded_count +index c9235393e..a6c31a728 100755 +--- a/tests/regression/tools/notification/test_notification_notifier_discarded_count ++++ b/tests/regression/tools/notification/test_notification_notifier_discarded_count +@@ -391,7 +391,8 @@ function test_ust_notifier_discarded_regardless_trigger_owner + test_ust_notifier_discarded_count + test_ust_notifier_discarded_count_max_bucket + +-if [ "$(id -u)" == "0" ]; then ++check_skip_kernel_test "$KERNEL_NUM_TESTS" "Skipping kernel notification tests." || ++{ + + validate_lttng_modules_present + +@@ -413,9 +414,7 @@ if [ "$(id -u)" == "0" ]; then + modprobe --remove lttng-test + + rm -rf "${sessiond_pipe[@]}" 2> /dev/null +-else +- # Kernel tests are skipped. +- skip 0 "Root access is needed. Skipping all kernel notification tests." $KERNEL_NUM_TESTS +-fi ++ ++} + + rm -rf "$TEST_TMPDIR" +diff --git a/tests/regression/tools/regen-metadata/test_kernel b/tests/regression/tools/regen-metadata/test_kernel +index 49eea32a7..555a4e2ce 100755 +--- a/tests/regression/tools/regen-metadata/test_kernel ++++ b/tests/regression/tools/regen-metadata/test_kernel +@@ -99,13 +99,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + +diff --git a/tests/regression/tools/regen-statedump/test_kernel b/tests/regression/tools/regen-statedump/test_kernel +index 8a261355d..bbbac3942 100755 +--- a/tests/regression/tools/regen-statedump/test_kernel ++++ b/tests/regression/tools/regen-statedump/test_kernel +@@ -39,13 +39,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + start_lttng_sessiond +diff --git a/tests/regression/tools/rotation/test_kernel b/tests/regression/tools/rotation/test_kernel +index f5f1f5553..efe3fd359 100755 +--- a/tests/regression/tools/rotation/test_kernel ++++ b/tests/regression/tools/rotation/test_kernel +@@ -82,13 +82,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + +diff --git a/tests/regression/tools/snapshots/test_kernel b/tests/regression/tools/snapshots/test_kernel +index abb243563..d91876867 100755 +--- a/tests/regression/tools/snapshots/test_kernel ++++ b/tests/regression/tools/snapshots/test_kernel +@@ -217,13 +217,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel snapshot tests" $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + + validate_lttng_modules_present +diff --git a/tests/regression/tools/snapshots/test_kernel_streaming b/tests/regression/tools/snapshots/test_kernel_streaming +index 0c92dc710..dd965afee 100755 +--- a/tests/regression/tools/snapshots/test_kernel_streaming ++++ b/tests/regression/tools/snapshots/test_kernel_streaming +@@ -145,13 +145,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel streaming tests" $NUM_TESTS || ++check_skip_kernel_test $NUM_TESTS "Skipping all tests." || + { + validate_lttng_modules_present + +diff --git a/tests/regression/tools/streaming/test_high_throughput_limits b/tests/regression/tools/streaming/test_high_throughput_limits +index 2b9e3ad39..c55d51098 100755 +--- a/tests/regression/tools/streaming/test_high_throughput_limits ++++ b/tests/regression/tools/streaming/test_high_throughput_limits +@@ -170,13 +170,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed to set bandwith limits. Skipping all tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + + # Catch sigint and try to cleanup limits +diff --git a/tests/regression/tools/streaming/test_kernel b/tests/regression/tools/streaming/test_kernel +index 33334229f..113eea7bf 100755 +--- a/tests/regression/tools/streaming/test_kernel ++++ b/tests/regression/tools/streaming/test_kernel +@@ -47,13 +47,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS || ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." || + { + validate_lttng_modules_present + +diff --git a/tests/regression/tools/tracker/test_event_tracker b/tests/regression/tools/tracker/test_event_tracker +index cc0f698d2..de0c79d36 100755 +--- a/tests/regression/tools/tracker/test_event_tracker ++++ b/tests/regression/tools/tracker/test_event_tracker +@@ -466,13 +466,7 @@ test_event_track_untrack ust 0 "${EVENT_NAME}" "--pid --all" # backward compat + test_event_tracker ust 1 "${EVENT_NAME}" "--pid --all" # backward compat + test_event_pid_tracker ust 1 "${EVENT_NAME}" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel tracker tests." $NUM_KERNEL_TESTS || ++check_skip_kernel_test "$NUM_KERNEL_TESTS" "Skipping kernel tracker tests." || + { + diag "Test kernel tracker" + +diff --git a/tests/regression/tools/trigger/test_add_trigger_cli b/tests/regression/tools/trigger/test_add_trigger_cli +index 98ecf6272..d1763aa2e 100755 +--- a/tests/regression/tools/trigger/test_add_trigger_cli ++++ b/tests/regression/tools/trigger/test_add_trigger_cli +@@ -34,12 +34,6 @@ tmp_stdout=$(mktemp --tmpdir -t test_parse_cli_trigger_stdout.XXXXXX) + tmp_stderr=$(mktemp --tmpdir -t test_parse_cli_trigger_stderr.XXXXXX) + uprobe_elf_binary="${TESTDIR}/utils/testapp/userspace-probe-elf-binary/.libs/userspace-probe-elf-binary" + +-if [ "$(id -u)" == "0" ]; then +- ist_root=1 +-else +- ist_root=0 +-fi +- + function test_success () + { + local test_name="$1" +@@ -223,7 +217,7 @@ test_success "--exclude-name two" "trigger5" \ + --condition event-rule-matches --type=user --name='jean-*' --exclude-name jean-chretien -x jean-charest \ + --action notify + +-skip $ist_root "non-root user: skipping kprobe tests" 18 || { ++check_skip_kernel_test 18 "Skipping kprobe tests." || { + i=0 + + for type in kprobe kernel:kprobe; do +@@ -262,7 +256,7 @@ skip $ist_root "non-root user: skipping kprobe tests" 18 || { + done + } + +-skip $ist_root "non-root user: skipping uprobe tests" 6 || { ++check_skip_kernel_test 6 "Skipping uprobe tests." || { + test_success "--condition event-rule-matches uprobe" "uprobe-trigger-0" \ + --name="uprobe-trigger-0" \ + --condition event-rule-matches --type=kernel:uprobe --location=${uprobe_elf_binary}:test_function --event-name=ma-probe \ +@@ -274,7 +268,7 @@ skip $ist_root "non-root user: skipping uprobe tests" 6 || { + --action notify + } + +-skip $ist_root "non-root user: skipping syscall tests" 30 || { ++check_skip_kernel_test 30 "Skipping syscall tests." || { + test_success "--condition event-rule-matches one syscall" "syscall-trigger-0" \ + --name="syscall-trigger-0" \ + --condition event-rule-matches --type=syscall --name=open \ +diff --git a/tests/regression/tools/trigger/test_list_triggers_cli b/tests/regression/tools/trigger/test_list_triggers_cli +index a04018013..02c3de3e9 100755 +--- a/tests/regression/tools/trigger/test_list_triggers_cli ++++ b/tests/regression/tools/trigger/test_list_triggers_cli +@@ -36,22 +36,12 @@ uprobe_sdt_binary=$(realpath "${TESTDIR}/utils/testapp/userspace-probe-sdt-binar + register_some_triggers_bin=$(realpath "${CURDIR}/utils/register-some-triggers") + + uid=$(id --user) +-gid=$(id --group) + +-if [ "$uid" == "0" ]; then +- ist_root=1 +- ls "$uprobe_sdt_binary" >/dev/null 2>&1 +- if test $? == 0; then +- hast_sdt_binary=1 +- else +- hast_sdt_binary=0 +- fi +-else +- ist_root=0 +- hast_sdt_binary=0 ++sdt_binary_present=0 ++if [ -f "$uprobe_sdt_binary" ]; then ++ sdt_binary_present=1 + fi + +- + test_top_level_options () + { + diag "Listing top level options" +@@ -2695,10 +2685,12 @@ start_lttng_sessiond_notap + + test_top_level_options + test_event_rule_matches_tracepoint +-skip $ist_root "non-root user: skipping kprobe tests" 13 || test_event_rule_matches_probe +-skip $ist_root "non-root user: skipping uprobe tests" 9 || test_event_rule_matches_userspace_probe_elf +-skip $(($ist_root && $hast_sdt_binary)) "skipping userspace probe SDT tests" 9 || test_event_rule_matches_userspace_probe_sdt +-skip $ist_root "non-root user: skipping syscall tests" 17 || test_event_rule_matches_syscall ++check_skip_kernel_test 48 "Skipping kprobe, uprobe, SDT and syscall tests." || { ++ test_event_rule_matches_probe ++ test_event_rule_matches_userspace_probe_elf ++ skip $sdt_binary_present "No SDT binary. Skipping userspace probe SDT tests" 9 || test_event_rule_matches_userspace_probe_sdt ++ test_event_rule_matches_syscall ++} + test_session_consumed_size_condition + test_buffer_usage_conditions + test_session_rotation_conditions +diff --git a/tests/regression/tools/wildcard/test_event_wildcard b/tests/regression/tools/wildcard/test_event_wildcard +index f69baffc4..14d9bb88a 100755 +--- a/tests/regression/tools/wildcard/test_event_wildcard ++++ b/tests/regression/tools/wildcard/test_event_wildcard +@@ -124,13 +124,7 @@ test_event_wildcard ust 1 'tp*tptest' + test_event_wildcard ust 1 'tp**tptest' + test_event_wildcard ust 1 'tp*test' + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- +-skip $isroot "Root access is needed. Skipping all kernel wildcard tests." $NUM_KERNEL_TESTS || ++check_skip_kernel_test "$NUM_KERNEL_TESTS" "Skipping kernel wildcard tests." || + { + diag "Test kernel wildcards" + +diff --git a/tests/regression/tools/working-directory/test_relayd_working_directory b/tests/regression/tools/working-directory/test_relayd_working_directory +index c7e784cca..6bd1e504a 100755 +--- a/tests/regression/tools/working-directory/test_relayd_working_directory ++++ b/tests/regression/tools/working-directory/test_relayd_working_directory +@@ -145,9 +145,9 @@ function test_relayd_debug_permission() + diag "Test lttng-relayd change working directory on non writable directory" + + if [ "$(id -u)" == "0" ]; then +- is_user=0 ++ is_user=0 + else +- is_user=1 ++ is_user=1 + fi + + skip $is_user "Skipping permission debug output test; operation can't fail as root" 6 || +diff --git a/tests/regression/ust/namespaces/test_ns_contexts_change b/tests/regression/ust/namespaces/test_ns_contexts_change +index 8a4b62ce3..622241f7b 100755 +--- a/tests/regression/ust/namespaces/test_ns_contexts_change ++++ b/tests/regression/ust/namespaces/test_ns_contexts_change +@@ -101,12 +101,7 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-isroot=0 +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-fi +- +-skip $isroot "Root access is needed. Skipping all tests." "$NUM_TESTS" && exit 0 ++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." && exit 0 + + system_has_ns=0 + if [ -d "/proc/$$/ns" ]; then +diff --git a/tests/regression/ust/test_event_perf b/tests/regression/ust/test_event_perf +index 33aab2981..178959a19 100755 +--- a/tests/regression/ust/test_event_perf ++++ b/tests/regression/ust/test_event_perf +@@ -119,17 +119,11 @@ plan_tests $NUM_TESTS + + print_test_banner "$TEST_DESC" + +-if [ "$(id -u)" == "0" ]; then +- isroot=1 +-else +- isroot=0 +-fi +- + start_lttng_sessiond + + test_parsing_raw + +-skip $isroot "Root access is needed. Skipping UST perf tests." 8 || ++check_skip_kernel_test 8 "Skipping UST perf tests." || + { + test_event_basic + } +diff --git a/tests/utils/utils.sh b/tests/utils/utils.sh +index faa87e783..da0e0569d 100644 +--- a/tests/utils/utils.sh ++++ b/tests/utils/utils.sh +@@ -318,6 +318,41 @@ function conf_proc_count() + echo + } + ++# Usage: ++# check_skip_kernel_test [NB_TESTS] [SKIP_MESSAGE] ++# Return 0 if LTTNG_TOOLS_DISABLE_KERNEL_TESTS was set or the current user is not a root user ++# If NB_TESTS is set, call skip() to skip number of tests. ++# If NB_TESTS is empty, just output a reason with diag. ++# An optional message can be added. ++ ++function check_skip_kernel_test () ++{ ++ local num_tests="$1" ++ local skip_message="$2" ++ ++ # Check for skip test kernel flag ++ if [ "$LTTNG_TOOLS_DISABLE_KERNEL_TESTS" == "1" ]; then ++ if ! test -z "$num_tests"; then ++ skip 0 "LTTNG_TOOLS_DISABLE_KERNEL_TESTS was set.${skip_message+ }${skip_message}" "$num_tests" ++ else ++ diag "LTTNG_TOOLS_DISABLE_KERNEL_TESTS was set.${skip_message+ }${skip_message}" ++ fi ++ return 0 ++ fi ++ ++ # Check if we are running as root ++ if [ "$(id -u)" != "0" ]; then ++ if ! test -z "$num_tests"; then ++ skip 0 "Root access is needed for kernel testing.${skip_message+ }${skip_message}" "$num_tests" ++ else ++ diag "Root access is needed for kernel testing.${skip_message+ }${skip_message}" ++ fi ++ return 0 ++ fi ++ ++ return 1 ++} ++ + # Check if base lttng-modules are present. + # Bail out on failure + function validate_lttng_modules_present () +-- +2.25.1 + diff --git a/meta/recipes-kernel/lttng/lttng-tools/0001-tests-do-not-strip-a-helper-library.patch b/meta/recipes-kernel/lttng/lttng-tools/0001-tests-do-not-strip-a-helper-library.patch index 2d08b08879..2f95889c4b 100644 --- a/meta/recipes-kernel/lttng/lttng-tools/0001-tests-do-not-strip-a-helper-library.patch +++ b/meta/recipes-kernel/lttng/lttng-tools/0001-tests-do-not-strip-a-helper-library.patch @@ -1,4 +1,4 @@ -From ab238c213fac190972f55e73cf3e0bb1c7846eb8 Mon Sep 17 00:00:00 2001 +From 2237748af00467ad8250a7ccd944200f811db69a Mon Sep 17 00:00:00 2001 From: Alexander Kanavin <alex.kanavin@gmail.com> Date: Thu, 12 Dec 2019 16:52:07 +0100 Subject: [PATCH] tests: do not strip a helper library @@ -10,10 +10,10 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/utils/testapp/userspace-probe-elf-binary/Makefile.am b/tests/utils/testapp/userspace-probe-elf-binary/Makefile.am -index 03f5d5a..d12c343 100644 +index 836f13e..e19a554 100644 --- a/tests/utils/testapp/userspace-probe-elf-binary/Makefile.am +++ b/tests/utils/testapp/userspace-probe-elf-binary/Makefile.am -@@ -12,7 +12,7 @@ userspace_probe_elf_binary_LDADD = libfoo.la +@@ -14,7 +14,7 @@ userspace_probe_elf_binary_LDADD = libfoo.la libfoo.strip: libfoo.la $(OBJCOPY) --strip-all .libs/libfoo.so @@ -22,6 +22,3 @@ index 03f5d5a..d12c343 100644 @if [ x"$(srcdir)" != x"$(builddir)" ]; then \ for script in $(EXTRA_DIST); do \ cp -f $(srcdir)/$$script $(builddir); \ --- -2.17.1 - diff --git a/meta/recipes-kernel/lttng/lttng-tools/0001-tests-regression-disable-the-tools-live-tests.patch b/meta/recipes-kernel/lttng/lttng-tools/0001-tests-regression-disable-the-tools-live-tests.patch deleted file mode 100644 index 08c1423310..0000000000 --- a/meta/recipes-kernel/lttng/lttng-tools/0001-tests-regression-disable-the-tools-live-tests.patch +++ /dev/null @@ -1,55 +0,0 @@ -From de9fc501e775cae05f1f87534b4237cd78e8d9a8 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex.kanavin@gmail.com> -Date: Fri, 24 Jan 2020 18:03:25 +0100 -Subject: [PATCH] tests/regression: disable the tools/live tests - -They have been found to sporadically fail; the issue has been -reported upstream and they will work to investigate and fix: -https://bugs.lttng.org/issues/1217 - -Upstream-Status: Inappropriate [upstream is working on a real fix] -Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> - ---- - tests/regression/Makefile.am | 10 +--------- - 1 file changed, 1 insertion(+), 9 deletions(-) - -diff --git a/tests/regression/Makefile.am b/tests/regression/Makefile.am -index cbac90d..d467886 100644 ---- a/tests/regression/Makefile.am -+++ b/tests/regression/Makefile.am -@@ -11,16 +11,10 @@ TESTS = tools/filtering/test_invalid_filter \ - tools/filtering/test_valid_filter \ - tools/streaming/test_ust \ - tools/health/test_thread_ok \ -- tools/live/test_ust \ -- tools/live/test_ust_tracefile_count \ -- tools/live/test_lttng_ust \ - tools/tracefile-limits/test_tracefile_count \ - tools/tracefile-limits/test_tracefile_size \ -- tools/exclusion/test_exclusion \ - tools/snapshots/test_ust_fast \ -- tools/snapshots/test_ust_streaming \ - tools/save-load/test_save \ -- tools/save-load/test_load \ - tools/save-load/test_autoload \ - tools/mi/test_mi \ - tools/wildcard/test_event_wildcard \ -@@ -38,8 +32,7 @@ TESTS = tools/filtering/test_invalid_filter \ - tools/working-directory/test_relayd_working_directory \ - tools/notification/test_notification_multi_app \ - tools/clear/test_ust \ -- tools/clear/test_kernel \ -- tools/tracker/test_event_tracker -+ tools/clear/test_kernel - - if HAVE_LIBLTTNG_UST_CTL - SUBDIRS += ust -@@ -60,7 +53,6 @@ TESTS += ust/before-after/test_before_after \ - ust/multi-lib/test_multi_lib \ - ust/rotation-destroy-flush/test_rotation_destroy_flush \ - ust/namespaces/test_ns_contexts \ -- ust/namespaces/test_ns_contexts_change \ - tools/metadata/test_ust \ - tools/relayd-grouping/test_ust - endif # HAVE_LIBLTTNG_UST_CTL diff --git a/meta/recipes-kernel/lttng/lttng-tools/determinism.patch b/meta/recipes-kernel/lttng/lttng-tools/determinism.patch deleted file mode 100644 index b2ab880bd6..0000000000 --- a/meta/recipes-kernel/lttng/lttng-tools/determinism.patch +++ /dev/null @@ -1,64 +0,0 @@ -This is a bit ugly. Specifing abs_builddir as an RPATH is plain wrong when -cross compiling. Sadly, removing the rpath makes libtool/automake do -weird things and breaks the build as shared libs are no longer generated. - -We already try and delete the RPATH at do_install with chrpath however -that does leave the path in the string table so it doesn't help us -with reproducibility. - -Instead, hack in a bogus but harmless path, then delete it later in -our do_install. Ultimately we may want to pass a specific path to use -to configure if we really do need to set an RPATH at all. It is unclear -to me whether the tests need that or not. - -Fixes reproducibility issues for lttng-tools. - -Upstream-Status: Pending [needs discussion with upstream about the correct solution] -RP 2021/3/1 - -Index: lttng-tools-2.12.2/tests/regression/ust/ust-dl/Makefile.am -=================================================================== ---- lttng-tools-2.12.2.orig/tests/regression/ust/ust-dl/Makefile.am -+++ lttng-tools-2.12.2/tests/regression/ust/ust-dl/Makefile.am -@@ -27,16 +27,16 @@ noinst_LTLIBRARIES = libzzz.la libbar.la - - libzzz_la_SOURCES = libzzz.c libzzz.h - libzzz_la_LDFLAGS = -module -shared -avoid-version \ -- -rpath $(abs_builddir) -+ -rpath /usr/lib - - libbar_la_SOURCES = libbar.c libbar.h - libbar_la_LDFLAGS = -module -shared -avoid-version \ -- -rpath $(abs_builddir) -+ -rpath /usr/lib - libbar_la_LIBADD = libzzz.la - - libfoo_la_SOURCES = libfoo.c libfoo.h - libfoo_la_LDFLAGS = -module -shared -avoid-version \ -- -rpath $(abs_builddir) -+ -rpath /usr/lib - libfoo_la_LIBADD = libbar.la - - CLEANFILES = libfoo.so libfoo.so.debug libbar.so libbar.so.debug \ -@@ -44,7 +44,7 @@ CLEANFILES = libfoo.so libfoo.so.debug l - - libtp_la_SOURCES = libbar-tp.h libbar-tp.c libfoo-tp.h libfoo-tp.c \ - libzzz-tp.h libzzz-tp.c --libtp_la_LDFLAGS = -module -shared -rpath $(abs_builddir) -+libtp_la_LDFLAGS = -module -shared -rpath /usr/lib - - # Extract debug symbols - libfoo.so.debug: libfoo.la -Index: lttng-tools-2.12.2/tests/utils/testapp/userspace-probe-elf-binary/Makefile.am -=================================================================== ---- lttng-tools-2.12.2.orig/tests/utils/testapp/userspace-probe-elf-binary/Makefile.am -+++ lttng-tools-2.12.2/tests/utils/testapp/userspace-probe-elf-binary/Makefile.am -@@ -5,7 +5,7 @@ AM_CFLAGS += -O0 - noinst_LTLIBRARIES = libfoo.la - - libfoo_la_SOURCES = foo.c foo.h --libfoo_la_LDFLAGS = -shared -module -avoid-version -rpath $(abs_builddir)/.libs/ -+libfoo_la_LDFLAGS = -shared -module -avoid-version -rpath /usr/lib - - noinst_PROGRAMS = userspace-probe-elf-binary - userspace_probe_elf_binary_SOURCES = userspace-probe-elf-binary.c diff --git a/meta/recipes-kernel/lttng/lttng-tools/disable-tests.patch b/meta/recipes-kernel/lttng/lttng-tools/disable-tests.patch new file mode 100644 index 0000000000..3a77ea2e43 --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-tools/disable-tests.patch @@ -0,0 +1,34 @@ +Upstream-Status: Inappropriate [need to root cause the test hangs] + +We keep seeing hangs in the tools/notifications tests on x86 and arm for +a variety of distros. Exclude them for now to work out if this is the +only place we see them and give SWAT/triage a break from the stream +of them. + +https://bugzilla.yoctoproject.org/show_bug.cgi?id=14263 + +Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> + +Index: lttng-tools-2.13.1/tests/regression/Makefile.am +=================================================================== +--- lttng-tools-2.13.1.orig/tests/regression/Makefile.am ++++ lttng-tools-2.13.1/tests/regression/Makefile.am +@@ -29,18 +29,6 @@ TESTS = tools/base-path/test_ust \ + tools/crash/test_crash \ + tools/regen-metadata/test_ust \ + tools/regen-statedump/test_ust \ +- tools/notification/test_notification_ust_error \ +- tools/notification/test_notification_ust_buffer_usage \ +- tools/notification/test_notification_ust_capture \ +- tools/notification/test_notification_ust_event_rule_condition_exclusion \ +- tools/notification/test_notification_kernel_error \ +- tools/notification/test_notification_kernel_buffer_usage \ +- tools/notification/test_notification_kernel_capture \ +- tools/notification/test_notification_kernel_instrumentation \ +- tools/notification/test_notification_kernel_syscall \ +- tools/notification/test_notification_notifier_discarded_count \ +- tools/notification/test_notification_kernel_userspace_probe \ +- tools/notification/test_notification_multi_app \ + tools/rotation/test_ust \ + tools/rotation/test_kernel \ + tools/rotation/test_save_load_mi \ diff --git a/meta/recipes-kernel/lttng/lttng-tools/run-ptest b/meta/recipes-kernel/lttng/lttng-tools/run-ptest index eaa2e7b29d..39d93e2bbf 100755 --- a/meta/recipes-kernel/lttng/lttng-tools/run-ptest +++ b/meta/recipes-kernel/lttng/lttng-tools/run-ptest @@ -1,6 +1,45 @@ #!/bin/sh # Without --ignore-exit, the tap harness causes any FAILs within a # test plan to raise ERRORs; this is just noise. -makeargs="LOG_DRIVER_FLAGS=--ignore-exit top_srcdir=$PWD top_builddir=$PWD" -make -k -t all >/dev/null 2>&1 -exec make -k -s $makeargs check 2>/dev/null | sed -e 's#/tmp/tmp\...........#/tmp/tmp.XXXXXXXXXX#g' + +#Detecting whether current system has lttng kernel modules +LTTNG_KMOD_PATH=/lib/modules/$(uname -r)/kernel/lttng-modules/lttng-tracer.ko +function validate_lttng_modules_present() +{ + # Check for loadable modules. + if [ -f "$LTTNG_KMOD_PATH" ]; then + return 0 + fi + + # Check for builtin modules. + ls /proc/lttng > /dev/null 2>&1 + if [ $? -eq 0 ]; then + return 0 + fi + + return 1 +} + +export LD_LIBRARY_PATH=FIXMEPTESTPATH/tests/utils/testapp/userspace-probe-elf-binary/.libs +makeargs="LOG_DRIVER_FLAGS=--ignore-exit top_srcdir=FIXMEPTESTPATH top_builddir=FIXMEPTESTPATH" + +#If current system doesn't have lttng kernel modules, disable lttng kernel related tests. +validate_lttng_modules_present || { + makeargs="$makeargs LTTNG_TOOLS_DISABLE_KERNEL_TESTS=1" +} + +make -k -t all >error.log 2>&1 +# Can specify a test e.g.: +# -C tests/regression/ check TESTS='kernel/test_callstack' +make -k -s $makeargs check 2>error.log | sed -e 's#/tmp/tmp\...........#/tmp/tmp.XXXXXXXXXX#g' +exitcode=$? +if [ -e error.log ]; then + cat error.log +fi +if [ -e tests/unit/test-suite.log ]; then + cat tests/unit/test-suite.log +fi +if [ -e tests/regression/test-suite.log ]; then + cat tests/regression/test-suite.log +fi +exit $exitcode diff --git a/meta/recipes-kernel/lttng/lttng-tools_2.12.4.bb b/meta/recipes-kernel/lttng/lttng-tools_2.13.14.bb index 133d7561b8..65d19b6e5f 100644 --- a/meta/recipes-kernel/lttng/lttng-tools_2.12.4.bb +++ b/meta/recipes-kernel/lttng/lttng-tools_2.13.14.bb @@ -5,27 +5,27 @@ to extract program execution details from the Linux operating system \ and interpret them." HOMEPAGE = "https://github.com/lttng/lttng-tools" -LICENSE = "GPLv2 & LGPLv2.1" +LICENSE = "GPL-2.0-only & LGPL-2.1-only" LIC_FILES_CHKSUM = "file://LICENSE;md5=40ef17463fbd6f377db3c47b1cbaded8 \ file://LICENSES/GPL-2.0;md5=e68f69a54b44ba526ad7cb963e18fbce \ file://LICENSES/LGPL-2.1;md5=9920968d0f2ff585ce61fae30344dd95" include lttng-platforms.inc -DEPENDS = "liburcu popt libxml2 util-linux" -RDEPENDS_${PN} = "libgcc" -RRECOMMENDS_${PN} += "${LTTNGMODULES}" -RDEPENDS_${PN}-ptest += "make perl bash gawk babeltrace procps perl-module-overloading coreutils util-linux kmod ${LTTNGMODULES} sed python3-core grep" -RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils" -RDEPENDS_${PN}-ptest_append_libc-musl = " musl-utils" +DEPENDS = "liburcu popt libxml2 util-linux bison-native" +RDEPENDS:${PN} = "libgcc" +RRECOMMENDS:${PN} += "${LTTNGMODULES}" +RDEPENDS:${PN}-ptest += "make perl bash gawk babeltrace procps perl-module-overloading coreutils util-linux kmod ${LTTNGMODULES} sed python3-core grep binutils" +RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-utils" +RDEPENDS:${PN}-ptest:append:libc-musl = " musl-utils" # babelstats.pl wants getopt-long -RDEPENDS_${PN}-ptest += "perl-module-getopt-long" +RDEPENDS:${PN}-ptest += "perl-module-getopt-long" PYTHON_OPTION = "am_cv_python_pyexecdir='${PYTHON_SITEPACKAGES_DIR}' \ am_cv_python_pythondir='${PYTHON_SITEPACKAGES_DIR}' \ PYTHON_INCLUDE='-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}' \ " -PACKAGECONFIG ??= "${LTTNGUST}" +PACKAGECONFIG ??= "${LTTNGUST} kmod" PACKAGECONFIG[python] = "--enable-python-bindings ${PYTHON_OPTION},,python3 swig-native" PACKAGECONFIG[lttng-ust] = "--with-lttng-ust, --without-lttng-ust, lttng-ust" PACKAGECONFIG[kmod] = "--with-kmod, --without-kmod, kmod" @@ -35,51 +35,59 @@ SRC_URI = "https://lttng.org/files/lttng-tools/lttng-tools-${PV}.tar.bz2 \ file://0001-tests-do-not-strip-a-helper-library.patch \ file://run-ptest \ file://lttng-sessiond.service \ - file://0001-tests-regression-disable-the-tools-live-tests.patch \ - file://determinism.patch \ + file://disable-tests.patch \ + file://0001-compat-Define-off64_t-as-off_t-on-linux.patch \ + file://0001-tests-add-check_skip_kernel_test-to-check-root-user-.patch \ + file://0001-Fix-rotation-destroy-flush-fix-session-daemon-abort-.patch \ " -SRC_URI[sha256sum] = "d729f8c2373a41194f171aeb0da0a9bb35ac181f31afa7e260786d19a500dea1" +SRC_URI[sha256sum] = "53bdf7c4ad07dbfe660ee4d9affc63fe44ae59e9a73c6f7a96e0fca140e5adcb" inherit autotools ptest pkgconfig useradd python3-dir manpages systemd -SYSTEMD_SERVICE_${PN} = "lttng-sessiond.service" +CACHED_CONFIGUREVARS = "PGREP=/usr/bin/pgrep" + +SYSTEMD_SERVICE:${PN} = "lttng-sessiond.service" SYSTEMD_AUTO_ENABLE = "disable" USERADD_PACKAGES = "${PN}" -GROUPADD_PARAM_${PN} = "tracing" +GROUPADD_PARAM:${PN} = "tracing" -FILES_${PN} += "${libdir}/lttng/libexec/* ${datadir}/xml/lttng \ +FILES:${PN} += "${libdir}/lttng/libexec/* ${datadir}/xml/lttng \ ${PYTHON_SITEPACKAGES_DIR}/*" -FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a" -FILES_${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la" +FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a" +FILES:${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la" # Since files are installed into ${libdir}/lttng/libexec we match # the libexec insane test so skip it. # Python module needs to keep _lttng.so -INSANE_SKIP_${PN} = "libexec dev-so" -INSANE_SKIP_${PN}-dbg = "libexec" +INSANE_SKIP:${PN} = "libexec dev-so" +INSANE_SKIP:${PN}-dbg = "libexec" -PRIVATE_LIBS_${PN}-ptest = "libfoo.so" +PRIVATE_LIBS:${PN}-ptest = "libfoo.so" -do_install_append () { +do_install:append () { # install systemd unit file - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/lttng-sessiond.service ${D}${systemd_unitdir}/system + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${UNPACKDIR}/lttng-sessiond.service ${D}${systemd_system_unitdir} } do_install_ptest () { for f in Makefile tests/Makefile tests/utils/utils.sh tests/regression/tools/save-load/*.lttng \ tests/regression/tools/save-load/configuration/load-42*.lttng tests/regression/tools/health/test_health.sh \ tests/regression/tools/metadata/utils.sh tests/regression/tools/rotation/rotate_utils.sh \ + tests/regression/tools/notification/util_event_generator.sh \ tests/regression/tools/base-path/*.lttng; do install -D "${B}/$f" "${D}${PTEST_PATH}/$f" done - for f in config/tap-driver.sh config/test-driver src/common/config/session.xsd src/common/mi-lttng-4.0.xsd; do + for f in tests/utils/tap-driver.sh config/test-driver src/common/config/session.xsd src/common/mi-lttng-4.1.xsd; do install -D "${S}/$f" "${D}${PTEST_PATH}/$f" done + # Patch in the correct path for the custom libraries a helper executable needs + sed -i -e 's!FIXMEPTESTPATH!${PTEST_PATH}!g' "${D}${PTEST_PATH}/run-ptest" + # Prevent 'make check' from recursing into non-test subdirectories. sed -i -e 's!^SUBDIRS = .*!SUBDIRS = tests!' "${D}${PTEST_PATH}/Makefile" @@ -107,7 +115,7 @@ do_install_ptest () { for f in $(find "${B}/tests/$d" -maxdepth 1 -executable -type f -printf '%P ') ; do cp ${B}/tests/$d/$f ${D}${PTEST_PATH}/tests/`dirname $d`/$f case $f in - *.so) + *.so|userspace-probe-elf-*) install -d ${D}${PTEST_PATH}/tests/$d/ ln -s ../$f ${D}${PTEST_PATH}/tests/$d/$f # Remove any rpath/runpath to pass QA check. @@ -118,6 +126,7 @@ do_install_ptest () { done chrpath --delete ${D}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-binary/userspace-probe-elf-binary + chrpath --delete ${D}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-cxx-binary/userspace-probe-elf-cxx-binary chrpath --delete ${D}${PTEST_PATH}/tests/regression/ust/ust-dl/libbar.so chrpath --delete ${D}${PTEST_PATH}/tests/regression/ust/ust-dl/libfoo.so @@ -175,3 +184,14 @@ do_install_ptest () { esac done } + +INHIBIT_PACKAGE_STRIP_FILES = "\ + ${PKGD}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-binary/userspace-probe-elf-binary \ + ${PKGD}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-binary/.libs/userspace-probe-elf-binary \ + ${PKGD}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-cxx-binary/userspace-probe-elf-cxx-binary \ + ${PKGD}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-cxx-binary/.libs/userspace-probe-elf-cxx-binary \ + ${PKGD}${PTEST_PATH}/tests/utils/testapp/gen-syscall-events/gen-syscall-events \ + ${PKGD}${PTEST_PATH}/tests/utils/testapp/gen-syscall-events/.libs/gen-syscall-events \ + ${PKGD}${PTEST_PATH}/tests/utils/testapp/gen-syscall-events-callstack/gen-syscall-events-callstack \ + ${PKGD}${PTEST_PATH}/tests/utils/testapp/gen-syscall-events-callstack/.libs/gen-syscall-events-callstack \ + " diff --git a/meta/recipes-kernel/lttng/lttng-ust/0001-Makefile.am-update-rpath-link.patch b/meta/recipes-kernel/lttng/lttng-ust/0001-Makefile.am-update-rpath-link.patch new file mode 100644 index 0000000000..6aca8f85fa --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-ust/0001-Makefile.am-update-rpath-link.patch @@ -0,0 +1,33 @@ +From 7d053804ab3823d40ae10d90f4efc49dbfb4cb66 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Wed, 22 Sep 2021 16:33:10 +0800 +Subject: [PATCH] Makefile.am: update rpath link + +since commit 6339062 Move liblttng-ust to 'src/lib/', +liblttng-ust.so/liblttng-ust-common.so/liblttng-ust-tracepoint.so +'s location changed from one dir to multiple dirs. which make below +error: +ld: warning: liblttng-ust-common.so.1, needed by ../../../src/lib/lttng-ust/.libs/liblttng-ust.so, not found (try using -rpath or -rpath-link) +ld: warning: liblttng-ust-tracepoint.so.1, needed by ../../../src/lib/lttng-ust/.libs/liblttng-ust.so, not found (try using -rpath or -rpath-link) + +Upstream-Status: Submitted [https://github.com/lttng/lttng-ust/pull/61] + +Signed-off-by: Changqing Li <changqing.li@windriver.com> + +--- + doc/examples/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am +index 57782cc..d46caa6 100644 +--- a/doc/examples/Makefile.am ++++ b/doc/examples/Makefile.am +@@ -167,7 +167,7 @@ all-local: + CFLAGS='$(CFLAGS)' \ + AM_CFLAGS='$(AM_CFLAGS)' \ + LDFLAGS="$(LDFLAGS)" \ +- AM_LDFLAGS='$(AM_LDFLAGS) -L../../../src/lib/lttng-ust/.libs -Wl,-rpath="$(PWD)/../../src/lib/lttng-ust/.libs/" -Wl,-rpath-link="$(PWD)/../../src/lib/lttng-ust/.libs/"' \ ++ AM_LDFLAGS='$(AM_LDFLAGS) -L../../../src/lib/lttng-ust/.libs -Wl,-rpath="$(PWD)/../../src/lib/lttng-ust/.libs/" -Wl,-rpath-link="$(PWD)/../../src/lib/lttng-ust/.libs/:$(PWD)/../../src/lib/lttng-ust-tracepoint/.libs:$(PWD)/../../src/lib/lttng-ust-common/.libs/"' \ + LTTNG_GEN_TP_PATH="$$rel_src_subdir$(top_srcdir)/tools/" \ + AM_V_P="$(AM_V_P)" \ + AM_V_at="$(AM_V_at)" \ diff --git a/meta/recipes-kernel/lttng/lttng-ust/0001-lttng-ust-common-link-with-liburcu-explicitly.patch b/meta/recipes-kernel/lttng/lttng-ust/0001-lttng-ust-common-link-with-liburcu-explicitly.patch new file mode 100644 index 0000000000..e85dbdb439 --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-ust/0001-lttng-ust-common-link-with-liburcu-explicitly.patch @@ -0,0 +1,26 @@ +From 27402453f25fbdb5a9fb1a1b88d1c4d9852187d2 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex@linutronix.de> +Date: Sun, 5 Sep 2021 10:44:19 +0200 +Subject: [PATCH] lttng-ust-common: link with liburcu explicitly + +Otherwise linking errors are seen on x86-32. + +Upstream-Status: Submitted [by email to lttng-dev, Francis, Jonathan] +Signed-off-by: Alexander Kanavin <alex@linutronix.de> + +--- + src/lib/lttng-ust-common/Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/lib/lttng-ust-common/Makefile.am b/src/lib/lttng-ust-common/Makefile.am +index 1ccc290..6531fa0 100644 +--- a/src/lib/lttng-ust-common/Makefile.am ++++ b/src/lib/lttng-ust-common/Makefile.am +@@ -16,6 +16,7 @@ liblttng_ust_common_la_SOURCES = \ + + liblttng_ust_common_la_LIBADD = \ + $(top_builddir)/src/common/libcommon.la \ ++ $(URCU_LIBS) \ + $(DL_LIBS) + + liblttng_ust_common_la_LDFLAGS = -no-undefined -version-info $(LTTNG_UST_LIBRARY_VERSION) diff --git a/meta/recipes-kernel/lttng/lttng-ust/0001-python-lttngust-Makefile.am-Add-install-lib-to-setup.patch b/meta/recipes-kernel/lttng/lttng-ust/0001-python-lttngust-Makefile.am-Add-install-lib-to-setup.patch index c2028d0e1a..7c49583e0d 100644 --- a/meta/recipes-kernel/lttng/lttng-ust/0001-python-lttngust-Makefile.am-Add-install-lib-to-setup.patch +++ b/meta/recipes-kernel/lttng/lttng-ust/0001-python-lttngust-Makefile.am-Add-install-lib-to-setup.patch @@ -1,6 +1,6 @@ -From f79dac30af9adda12996da7f6aa6667d3b580537 Mon Sep 17 00:00:00 2001 -From: Robert Yang <liezhi.yang@windriver.com> -Date: Thu, 26 Sep 2019 17:54:00 +0800 +From f65efd963e52de51d35e2e03fb773f33dd64f565 Mon Sep 17 00:00:00 2001 +From: Richard Purdie <richard.purdie@linuxfoundation.org> +Date: Tue, 20 Feb 2024 12:19:06 +0000 Subject: [PATCH] python-lttngust/Makefile.am: Add --install-lib to setup.py Otherwise it may install to /usr/lib, but should be /usr/lib64 when cross @@ -9,23 +9,21 @@ building. Upstream-Status: Submitted [https://github.com/lttng/lttng-ust/pull/59] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> + --- - python-lttngust/Makefile.am | 2 +- + src/python-lttngust/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/python-lttngust/Makefile.am b/python-lttngust/Makefile.am -index 6c0d20d..38b51b8 100644 ---- a/python-lttngust/Makefile.am -+++ b/python-lttngust/Makefile.am -@@ -9,7 +9,7 @@ install-exec-local: +diff --git a/src/python-lttngust/Makefile.am b/src/python-lttngust/Makefile.am +index d53e21d..283901e 100644 +--- a/src/python-lttngust/Makefile.am ++++ b/src/python-lttngust/Makefile.am +@@ -45,7 +45,7 @@ install-exec-local: build-python-bindings.stamp if [ "$(DESTDIR)" != "" ]; then \ opts="$$opts --root=$(DESTDIR)"; \ fi; \ -- $(PYTHON) setup.py install $$opts; -+ $(PYTHON) setup.py install $$opts --install-lib=$(pythondir); +- $(PYTHON) $(builddir)/setup.py install $(PY_INSTALL_OPTS) $$opts; ++ $(PYTHON) $(builddir)/setup.py install $(PY_INSTALL_OPTS) $$opts --install-lib=$(pythondir); clean-local: rm -rf $(builddir)/build --- -2.7.4 - diff --git a/meta/recipes-kernel/lttng/lttng-ust_2.12.2.bb b/meta/recipes-kernel/lttng/lttng-ust_2.13.8.bb index e340ff3460..dddd3a5004 100644 --- a/meta/recipes-kernel/lttng/lttng-ust_2.12.2.bb +++ b/meta/recipes-kernel/lttng/lttng-ust_2.13.8.bb @@ -3,37 +3,38 @@ DESCRIPTION = "The LTTng UST 2.x package contains the userspace tracer library t HOMEPAGE = "http://lttng.org/ust" BUGTRACKER = "https://bugs.lttng.org/projects/lttng-ust" -LICENSE = "LGPLv2.1+ & MIT & GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=c963eb366b781252b0bf0fdf1624d9e9 \ - file://snprintf/snprintf.c;endline=32;md5=d3d544959d8a3782b2e07451be0a903c \ - file://snprintf/various.h;endline=31;md5=89f2509b6b4682c4fc95255eec4abe44" +LICENSE = "LGPL-2.1-or-later & MIT & GPL-2.0-only" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a46577a38ad0c36ff6ff43ccf40c480f" PYTHON_OPTION = "am_cv_python_pyexecdir='${PYTHON_SITEPACKAGES_DIR}' \ am_cv_python_pythondir='${PYTHON_SITEPACKAGES_DIR}' \ PYTHON_INCLUDE='-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}' \ " -inherit autotools lib_package manpages python3native +inherit autotools lib_package manpages python3native pkgconfig include lttng-platforms.inc EXTRA_OECONF = "--disable-numa" +CPPFLAGS:append:arm = "${@oe.utils.vartrue('DEBUG_BUILD', '-DUATOMIC_NO_LINK_ERROR', '', d)}" DEPENDS = "liburcu util-linux" -RDEPENDS_${PN}-bin = "python3-core" +RDEPENDS:${PN}-bin = "python3-core" # For backwards compatibility after rename -RPROVIDES_${PN} = "lttng2-ust" -RREPLACES_${PN} = "lttng2-ust" -RCONFLICTS_${PN} = "lttng2-ust" +RPROVIDES:${PN} = "lttng2-ust" +RREPLACES:${PN} = "lttng2-ust" +RCONFLICTS:${PN} = "lttng2-ust" PE = "2" SRC_URI = "https://lttng.org/files/lttng-ust/lttng-ust-${PV}.tar.bz2 \ file://0001-python-lttngust-Makefile.am-Add-install-lib-to-setup.patch \ + file://0001-lttng-ust-common-link-with-liburcu-explicitly.patch \ + file://0001-Makefile.am-update-rpath-link.patch \ " -SRC_URI[sha256sum] = "bcd0f064b6ca88c72d84e760eac3472ae5c828411c634435922bee9fce359fc7" +SRC_URI[sha256sum] = "d4ef98dab9a37ad4f524ccafdfd50af4f266039b528dd5afabce78e49024d937" CVE_PRODUCT = "ust" @@ -41,11 +42,11 @@ PACKAGECONFIG[examples] = "--enable-examples, --disable-examples," PACKAGECONFIG[manpages] = "--enable-man-pages, --disable-man-pages, asciidoc-native xmlto-native libxslt-native" PACKAGECONFIG[python3-agent] = "--enable-python-agent ${PYTHON_OPTION}, --disable-python-agent, python3, python3" -FILES_${PN} += " ${PYTHON_SITEPACKAGES_DIR}/*" -FILES_${PN}-staticdev += " ${PYTHON_SITEPACKAGES_DIR}/*.a" -FILES_${PN}-dev += " ${PYTHON_SITEPACKAGES_DIR}/*.la" +FILES:${PN} += " ${PYTHON_SITEPACKAGES_DIR}/*" +FILES:${PN}-staticdev += " ${PYTHON_SITEPACKAGES_DIR}/*.a" +FILES:${PN}-dev += " ${PYTHON_SITEPACKAGES_DIR}/*.la" -do_install_append() { +do_install:append() { # Patch python tools to use Python 3; they should be source compatible, but # still refer to Python 2 in the shebang sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${bindir}/lttng-gen-tp diff --git a/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb b/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb index b2b50b9bcf..581e90e9b4 100644 --- a/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb +++ b/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb @@ -1,19 +1,20 @@ SUMMARY = "Build tools needed by external modules" HOMEPAGE = "https://www.yoctoproject.org/" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" -inherit kernel-arch +inherit kernel-arch linux-kernel-base inherit pkgconfig PACKAGE_ARCH = "${MACHINE_ARCH}" -S = "${WORKDIR}" +S = "${WORKDIR}/sources" +UNPACKDIR = "${S}" do_configure[depends] += "virtual/kernel:do_shared_workdir openssl-native:do_populate_sysroot" do_compile[depends] += "virtual/kernel:do_compile_kernelmodules" -RDEPENDS_${PN}-dev = "" +DEV_PKG_DEPENDENCY = "" DEPENDS += "bc-native bison-native" DEPENDS += "gmp-native" @@ -21,13 +22,18 @@ DEPENDS += "gmp-native" EXTRA_OEMAKE = " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}"" EXTRA_OEMAKE += " HOSTCXX="${BUILD_CXX} ${BUILD_CXXFLAGS} ${BUILD_LDFLAGS}" CROSS_COMPILE=${TARGET_PREFIX}" +KERNEL_LOCALVERSION = "${@get_kernellocalversion_file("${STAGING_KERNEL_BUILDDIR}")}" +export LOCALVERSION="${KERNEL_LOCALVERSION}" + # Build some host tools under work-shared. CC, LD, and AR are probably # not used, but this is the historical way of invoking "make scripts". # do_configure() { unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS for t in prepare scripts_basic scripts; do - oe_runmake CC="${KERNEL_CC}" LD="${KERNEL_LD}" AR="${KERNEL_AR}" \ + oe_runmake CC="${KERNEL_CC}" LD="${KERNEL_LD}" \ + AR="${KERNEL_AR}" OBJCOPY="${KERNEL_OBJCOPY}" \ + STRIP="${KERNEL_STRIP}" \ -C ${STAGING_KERNEL_DIR} O=${STAGING_KERNEL_BUILDDIR} $t done } diff --git a/meta/recipes-kernel/modutils-initscripts/files/PD.patch b/meta/recipes-kernel/modutils-initscripts/files/PD.patch deleted file mode 100644 index 21ac49cbd8..0000000000 --- a/meta/recipes-kernel/modutils-initscripts/files/PD.patch +++ /dev/null @@ -1,8 +0,0 @@ -Upstream-Status: Inappropriate [licensing] - -Index: modutils-initscripts-1.0/LICENSE -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ modutils-initscripts-1.0/LICENSE 2010-12-06 14:26:03.570339002 -0800 -@@ -0,0 +1 @@ -+Public Domain diff --git a/meta/recipes-kernel/modutils-initscripts/files/modutils.sh b/meta/recipes-kernel/modutils-initscripts/files/modutils.sh index 67e1dcd990..e9aaa66cb7 100755 --- a/meta/recipes-kernel/modutils-initscripts/files/modutils.sh +++ b/meta/recipes-kernel/modutils-initscripts/files/modutils.sh @@ -1,4 +1,8 @@ #!/bin/sh +# +# SPDX-License-Identifier: MIT +# + ### BEGIN INIT INFO # Provides: module-init-tools # Required-Start: diff --git a/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb b/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb index 97b4ddb88b..49268445a8 100644 --- a/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb +++ b/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb @@ -1,13 +1,11 @@ SUMMARY = "Initscript for auto-loading kernel modules on boot" SECTION = "base" -LICENSE = "PD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=7bf87fc37976e93ec66ad84fac58c098" -SRC_URI = "file://modutils.sh \ - file://PD.patch" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://modutils.sh;beginline=3;endline=3;md5=b2dccaa94b3629a08bfb4f983cad6f89" +SRC_URI = "file://modutils.sh" -PR = "r7" - -S = "${WORKDIR}" +S = "${WORKDIR}/sources" +UNPACKDIR = "${S}" INITSCRIPT_NAME = "modutils.sh" INITSCRIPT_PARAMS = "start 06 S ." @@ -19,11 +17,11 @@ do_compile () { do_install () { install -d ${D}${sysconfdir}/init.d/ - install -m 0755 ${WORKDIR}/modutils.sh ${D}${sysconfdir}/init.d/ + install -m 0755 ${S}/modutils.sh ${D}${sysconfdir}/init.d/ } -PACKAGE_WRITE_DEPS_append = " ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd-systemctl-native','',d)}" -pkg_postinst_${PN} () { +PACKAGE_WRITE_DEPS:append = " ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd-systemctl-native','',d)}" +pkg_postinst:${PN} () { if type systemctl >/dev/null 2>/dev/null; then if [ -n "$D" ]; then OPTS="--root=$D" diff --git a/meta/recipes-kernel/perf/perf-perl.inc b/meta/recipes-kernel/perf/perf-perl.inc index ae77319b20..f3eef75a90 100644 --- a/meta/recipes-kernel/perf/perf-perl.inc +++ b/meta/recipes-kernel/perf/perf-perl.inc @@ -2,6 +2,6 @@ inherit perlnative cpan-base # Env var which tells perl if it should use host (no) or target (yes) settings export PERLCONFIGTARGET = "${@is_target(d)}" -export PERL_INC = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)}/CORE" -export PERL_LIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)}" -export PERL_ARCHLIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)}" +export PERL_INC = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/${@get_perl_version(d)}/${@get_perl_arch(d)}/CORE" +export PERL_LIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/${@get_perl_version(d)}" +export PERL_ARCHLIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/${@get_perl_version(d)}/${@get_perl_arch(d)}" diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb index 99808d636b..f3f350aa98 100644 --- a/meta/recipes-kernel/perf/perf.bb +++ b/meta/recipes-kernel/perf/perf.bb @@ -7,32 +7,35 @@ and software features (software counters, tracepoints) \ as well." HOMEPAGE = "https://perf.wiki.kernel.org/index.php/Main_Page" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" -PR = "r9" -PACKAGECONFIG ??= "scripting tui libunwind" +PACKAGECONFIG ??= "python tui libunwind libtraceevent" PACKAGECONFIG[dwarf] = ",NO_DWARF=1" -PACKAGECONFIG[scripting] = ",NO_LIBPERL=1 NO_LIBPYTHON=1,perl python3" -# gui support was added with kernel 3.6.35 -# since 3.10 libnewt was replaced by slang -# to cover a wide range of kernel we add both dependencies -PACKAGECONFIG[tui] = ",NO_NEWT=1,libnewt slang" +PACKAGECONFIG[perl] = ",NO_LIBPERL=1,perl" +PACKAGECONFIG[python] = ",NO_LIBPYTHON=1,python3 python3-setuptools-native" +PACKAGECONFIG[tui] = ",NO_SLANG=1,slang" PACKAGECONFIG[libunwind] = ",NO_LIBUNWIND=1 NO_LIBDW_DWARF_UNWIND=1,libunwind" PACKAGECONFIG[libnuma] = ",NO_LIBNUMA=1" +PACKAGECONFIG[bfd] = ",NO_LIBBFD=1" PACKAGECONFIG[systemtap] = ",NO_SDT=1,systemtap" PACKAGECONFIG[jvmti] = ",NO_JVMTI=1" # libaudit support would need scripting to be enabled PACKAGECONFIG[audit] = ",NO_LIBAUDIT=1,audit" PACKAGECONFIG[manpages] = ",,xmlto-native asciidoc-native" PACKAGECONFIG[cap] = ",,libcap" +PACKAGECONFIG[libtraceevent] = ",NO_LIBTRACEEVENT=1,libtraceevent" +# jevents requires host python for generating a .c file, but is +# unrelated to the python item. +PACKAGECONFIG[jevents] = ",NO_JEVENTS=1,python3-native" # Arm CoreSight PACKAGECONFIG[coresight] = "CORESIGHT=1,,opencsd" +PACKAGECONFIG[pfm4] = ",NO_LIBPFM4=1,libpfm4" +PACKAGECONFIG[babeltrace] = ",NO_LIBBABELTRACE=1,babeltrace" # libunwind is not yet ported for some architectures -PACKAGECONFIG_remove_arc = "libunwind" -PACKAGECONFIG_remove_riscv64 = "libunwind" -PACKAGECONFIG_remove_riscv32 = "libunwind" +PACKAGECONFIG:remove:arc = "libunwind" +PACKAGECONFIG:remove:riscv32 = "libunwind" DEPENDS = " \ virtual/${MLPREFIX}libc \ @@ -48,7 +51,7 @@ PROVIDES = "virtual/perf" inherit linux-kernel-base kernel-arch manpages # needed for building the tools/perf Python bindings -inherit ${@bb.utils.contains('PACKAGECONFIG', 'scripting', 'python3targetconfig', '', d)} +inherit_defer ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3targetconfig', '', d)} inherit python3-dir export PYTHON_SITEPACKAGES_DIR @@ -58,20 +61,28 @@ export WERROR = "0" do_populate_lic[depends] += "virtual/kernel:do_shared_workdir" # needed for building the tools/perf Perl binding -include ${@bb.utils.contains('PACKAGECONFIG', 'scripting', 'perf-perl.inc', '', d)} +include ${@bb.utils.contains('PACKAGECONFIG', 'perl', 'perf-perl.inc', '', d)} inherit kernelsrc S = "${WORKDIR}/${BP}" -SPDX_S = "${S}/tools/perf" # The LDFLAGS is required or some old kernels fails due missing # symbols and this is preferred than requiring patches to every old # supported kernel. LDFLAGS="-ldl -lutil" +# Perf's build system adds its own optimization flags for most TUs, +# overriding the flags included here. But for some, perf does not add +# any -O option, so ensure the distro's chosen optimization gets used +# for those. Also include ${DEBUG_PREFIX_MAP} which nsures perf is +# built with appropriate -f*-prefix-map options, +# avoiding the 'buildpaths' QA warning. +TARGET_CC_ARCH += "${SELECTED_OPTIMIZATION} ${DEBUG_PREFIX_MAP}" + EXTRA_OEMAKE = '\ V=1 \ + VF=1 \ -C ${S}/tools/perf \ O=${B} \ CROSS_COMPILE=${TARGET_PREFIX} \ @@ -81,12 +92,13 @@ EXTRA_OEMAKE = '\ LDSHARED="${CC} -shared" \ AR="${AR}" \ LD="${LD}" \ - EXTRA_CFLAGS="-ldw" \ - YFLAGS='-y --file-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}' \ + EXTRA_CFLAGS="-ldw -I${S}" \ + YFLAGS='-y --file-prefix-map=${WORKDIR}=${TARGET_DBGSRC_DIR}' \ EXTRA_LDFLAGS="${PERF_EXTRA_LDFLAGS}" \ perfexecdir=${libexecdir} \ NO_GTK2=1 \ ${PACKAGECONFIG_CONFARGS} \ + PKG_CONFIG=pkg-config \ TMPDIR="${B}" \ LIBUNWIND_DIR=${STAGING_EXECPREFIXDIR} \ ' @@ -102,7 +114,7 @@ EXTRA_OEMAKE += "\ 'sharedir=${@os.path.relpath(datadir, prefix)}' \ 'mandir=${@os.path.relpath(mandir, prefix)}' \ 'infodir=${@os.path.relpath(infodir, prefix)}' \ - ${@bb.utils.contains('PACKAGECONFIG', 'scripting', 'PYTHON=python3 PYTHON_CONFIG=python3-config', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'python', 'PYTHON=python3 PYTHON_CONFIG=python3-config', '', d)} \ " # During do_configure, we might run a 'make clean'. That often breaks @@ -110,8 +122,12 @@ EXTRA_OEMAKE += "\ # that it has to be done this way rather than by passing -j1, since # perf's build system by default ignores any -j argument, but does # honour a JOBS variable. -EXTRA_OEMAKE_append_task-configure = " JOBS=1" +EXTRA_OEMAKE:append:task-configure = " JOBS=1" +# the architectures that need this file can be found in +# tools/include/uapi/asm/bpf_perf_event.h +# We are only listing supported arches at the moment +PERF_BPF_EVENT_SRC ?= '${@bb.utils.contains_any("ARCH", [ "riscv", "arm64" ], "arch/${ARCH}/include/uapi/asm/bpf_perf_event.h", "", d)}' PERF_SRC ?= "Makefile \ tools/arch \ tools/build \ @@ -121,18 +137,26 @@ PERF_SRC ?= "Makefile \ tools/perf \ tools/scripts \ scripts/ \ + arch/arm64/tools \ + ${PERF_BPF_EVENT_SRC} \ arch/${ARCH}/Makefile \ " PERF_EXTRA_LDFLAGS = "" -# MIPS N32 -PERF_EXTRA_LDFLAGS_mipsarchn32eb = "-m elf32btsmipn32" -PERF_EXTRA_LDFLAGS_mipsarchn32el = "-m elf32ltsmipn32" +# MIPS N32/N64 +PERF_EXTRA_LDFLAGS:mipsarchn32eb = "-m elf32btsmipn32" +PERF_EXTRA_LDFLAGS:mipsarchn32el = "-m elf32ltsmipn32" +PERF_EXTRA_LDFLAGS:mipsarchn64eb = "-m elf64btsmip" +PERF_EXTRA_LDFLAGS:mipsarchn64el = "-m elf64ltsmip" do_compile() { # Linux kernel build system is expected to do the right thing unset CFLAGS + test -e ${S}/tools/lib/traceevent/plugins/Makefile && \ + sed -i -e 's|\$(libdir)/traceevent/plugins|\$(libdir)/traceevent_${KERNEL_VERSION}/plugins|g' ${S}/tools/lib/traceevent/plugins/Makefile + test -e ${S}/tools/perf/Makefile.config && \ + sed -i -e 's|\$(libdir)/traceevent/plugins|\$(libdir)/traceevent_${KERNEL_VERSION}/plugins|g' ${S}/tools/perf/Makefile.config oe_runmake all } @@ -141,8 +165,11 @@ do_install() { unset CFLAGS oe_runmake install # we are checking for this make target to be compatible with older perf versions - if ${@bb.utils.contains('PACKAGECONFIG', 'scripting', 'true', 'false', d)} && grep -q install-python_ext ${S}/tools/perf/Makefile*; then + if ${@bb.utils.contains('PACKAGECONFIG', 'python', 'true', 'false', d)} && grep -q install-python_ext ${S}/tools/perf/Makefile*; then oe_runmake DESTDIR=${D} install-python_ext + if [ -e ${D}${libdir}/python*/site-packages/perf-*/SOURCES.txt ]; then + sed -i -e 's#${WORKDIR}##g' ${D}${libdir}/python*/site-packages/perf-*/SOURCES.txt + fi fi } @@ -157,7 +184,8 @@ python copy_perf_source_from_kernel() { src = oe.path.join(src_dir, s) dest = oe.path.join(dest_dir, s) if not os.path.exists(src): - bb.fatal("Path does not exist: %s. Maybe PERF_SRC does not match the kernel version." % src) + bb.warn("Path does not exist: %s. Maybe PERF_SRC lists more files than what your kernel version provides and needs." % src) + continue if os.path.isdir(src): oe.path.copyhardlinktree(src, dest) else: @@ -166,7 +194,7 @@ python copy_perf_source_from_kernel() { bb.utils.copyfile(src, dest) } -do_configure_prepend () { +do_configure:prepend () { # If building a multlib based perf, the incorrect library path will be # detected by perf, since it triggers via: ifeq ($(ARCH),x86_64). In a 32 bit # build, with a 64 bit multilib, the arch won't match and the detection of a @@ -202,14 +230,18 @@ do_configure_prepend () { if [ -e "${S}/tools/perf/Makefile.perf" ]; then sed -i -e 's,\ .config-detected, $(OUTPUT)/config-detected,g' \ ${S}/tools/perf/Makefile.perf - sed -i -e "s,prefix='\$(DESTDIR_SQ)/usr'$,prefix='\$(DESTDIR_SQ)/usr' --install-lib='\$(DESTDIR)\$(PYTHON_SITEPACKAGES_DIR)',g" \ + # Variant with linux-yocto-specific patch + sed -i -e "s,prefix='\$(DESTDIR_SQ)/usr'$,prefix='\$(DESTDIR_SQ)/usr' --install-lib='\$(PYTHON_SITEPACKAGES_DIR)' --root='\$(DESTDIR)',g" \ + ${S}/tools/perf/Makefile.perf + # Variant for mainline Linux + sed -i -e "s,root='/\$(DESTDIR_SQ)',prefix='\$(DESTDIR_SQ)/usr' --install-lib='\$(PYTHON_SITEPACKAGES_DIR)' --root='/\$(DESTDIR_SQ)',g" \ ${S}/tools/perf/Makefile.perf # backport https://github.com/torvalds/linux/commit/e4ffd066ff440a57097e9140fa9e16ceef905de8 sed -i -e 's,\($(Q)$(SHELL) .$(arch_errno_tbl).\) $(CC) $(arch_errno_hdr_dir),\1 $(firstword $(CC)) $(arch_errno_hdr_dir),g' \ ${S}/tools/perf/Makefile.perf fi sed -i -e "s,--root='/\$(DESTDIR_SQ)',--prefix='\$(DESTDIR_SQ)/usr' --install-lib='\$(DESTDIR)\$(PYTHON_SITEPACKAGES_DIR)',g" \ - ${S}/tools/perf/Makefile* + ${S}/tools/perf/Makefile if [ -e "${S}/tools/build/Makefile.build" ]; then sed -i -e 's,\ .config-detected, $(OUTPUT)/config-detected,g' \ @@ -226,6 +258,15 @@ do_configure_prepend () { # reproducible. sed -i -e 's,$(call get-executable-or-default\,PYTHON\,$(PYTHON_AUTO)),$(notdir $(call get-executable-or-default\,PYTHON\,$(PYTHON_AUTO))),g' \ ${S}/tools/perf/Makefile.config + # The same line is in older releases, but looking explicitly for Python 2 + sed -i -e 's,$(call get-executable-or-default\,PYTHON\,$(PYTHON2)),$(notdir $(call get-executable-or-default\,PYTHON\,$(PYTHON2))),g' \ + ${S}/tools/perf/Makefile.config + + # likewise with this substitution. Kernels with commit 18f2967418d031a39 + # [perf tools: Use Python devtools for version autodetection rather than runtime] + # need this substitution for reproducibility. + sed -i -e 's,$(call get-executable-or-default\,PYTHON\,$(subst -config\,\,$(PYTHON_AUTO))),$(notdir $(call get-executable-or-default\,PYTHON\,$(subst -config\,\,$(PYTHON_AUTO)))),g' \ + ${S}/tools/perf/Makefile.config # The following line: # srcdir_SQ = $(patsubst %tools/perf,tools/perf,$(subst ','\'',$(srcdir))), @@ -234,6 +275,9 @@ do_configure_prepend () { # change the Makefile line to remove everything before 'tools/perf' sed -i -e "s%srcdir_SQ = \$(subst ','\\\'',\$(srcdir))%srcdir_SQ = \$(patsubst \%tools/perf,tools/perf,\$(subst ','\\\'',\$(srcdir)))%g" \ ${S}/tools/perf/Makefile.config + # Avoid hardcoded path to python-native + sed -i -e 's#\(PYTHON_WORD := \)$(call shell-wordify,$(PYTHON))#\1 python3#g' \ + ${S}/tools/perf/Makefile.config fi if [ -e "${S}/tools/perf/tests/Build" ]; then # OUTPUT is the full path, we have python on the path so we remove it from the @@ -259,6 +303,20 @@ do_configure_prepend () { sed -i -e "s,$target,$replacement1$replacement2$replacement3,g" \ "${S}/tools/perf/pmu-events/Build" fi + if [ -e "${S}/tools/perf/pmu-events/jevents.py" ]; then + sed -i -e "s#os.scandir(path)#sorted(os.scandir(path), key=lambda e: e.name)#g" \ + "${S}/tools/perf/pmu-events/jevents.py" + fi + if [ -e "${S}/tools/perf/arch/arm64/Makefile" ]; then + sed -i 's,sysdef := $(srctree)/,sysdef := ,' ${S}/tools/perf/arch/arm64/Makefile + sed -i 's,$(incpath) $(sysdef),$(incpath) $(srctree)/$(sysdef) $(sysdef),' ${S}/tools/perf/arch/arm64/Makefile + fi + if [ -e "${S}/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl" ]; then + if ! grep -q input_rel ${S}/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl; then + sed -i 's,input=$4,input=$4\ninput_rel=$5,' ${S}/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl + fi + sed -i 's,#include \\"\$input\\",#include \\"\$input_rel\\",' ${S}/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl + fi # end reproducibility substitutions # We need to ensure the --sysroot option in CC is preserved @@ -266,6 +324,7 @@ do_configure_prepend () { sed -i 's,CC = $(CROSS_COMPILE)gcc,#CC,' ${S}/tools/perf/Makefile.perf sed -i 's,AR = $(CROSS_COMPILE)ar,#AR,' ${S}/tools/perf/Makefile.perf sed -i 's,LD = $(CROSS_COMPILE)ld,#LD,' ${S}/tools/perf/Makefile.perf + sed -i 's,PKG_CONFIG = $(CROSS_COMPILE)pkg-config,#PKG_CONFIG,' ${S}/tools/perf/Makefile.perf fi if [ -e "${S}/tools/lib/api/Makefile" ]; then sed -i 's,CC = $(CROSS_COMPILE)gcc,#CC,' ${S}/tools/lib/api/Makefile @@ -282,6 +341,9 @@ do_configure_prepend () { if [ -e "${S}/tools/build/Makefile.feature" ]; then sed -i 's,CFLAGS=,CC="\$(CC)" CFLAGS=,' ${S}/tools/build/Makefile.feature fi + # The libperl feature check produces fatal warnings due to -Werror being + # used, silence enough errors that the check passes. + sed -i 's/\(FLAGS_PERL_EMBED=.*\)/\1 -Wno-error=unused-function -Wno-error=attributes/' ${S}/tools/build/feature/Makefile # 3.17-rc1+ has a include issue for arm/powerpc. Temporarily sed in the appropriate include if [ -e "${S}/tools/perf/arch/$ARCH/util/skip-callchain-idx.c" ]; then @@ -311,7 +373,7 @@ do_configure_prepend () { done } -python do_package_prepend() { +python do_package:prepend() { d.setVar('PKGV', d.getVar("KERNEL_VERSION").split("-")[0]) } @@ -320,25 +382,36 @@ PACKAGE_ARCH = "${MACHINE_ARCH}" PACKAGES =+ "${PN}-archive ${PN}-tests ${PN}-perl ${PN}-python" -RDEPENDS_${PN} += "elfutils bash" -RDEPENDS_${PN}-archive =+ "bash" -RDEPENDS_${PN}-python =+ "bash python3 python3-modules ${@bb.utils.contains('PACKAGECONFIG', 'audit', 'audit-python', '', d)}" -RDEPENDS_${PN}-perl =+ "bash perl perl-modules" -RDEPENDS_${PN}-tests =+ "python3 bash" - -RSUGGESTS_SCRIPTING = "${@bb.utils.contains('PACKAGECONFIG', 'scripting', '${PN}-perl ${PN}-python', '',d)}" -RSUGGESTS_${PN} += "${PN}-archive ${PN}-tests ${RSUGGESTS_SCRIPTING}" +RDEPENDS:${PN} += "elfutils bash" +RDEPENDS:${PN}-archive =+ "bash" +RDEPENDS:${PN}-python =+ "bash python3 python3-modules ${@bb.utils.contains('PACKAGECONFIG', 'audit', 'audit-python', '', d)}" +RDEPENDS:${PN}-perl =+ "bash perl perl-modules" +RDEPENDS:${PN}-tests =+ "python3 bash perl" +RSUGGESTS:${PN} += "${PN}-archive ${PN}-tests \ + ${@bb.utils.contains('PACKAGECONFIG', 'perl', '${PN}-perl', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'python', '${PN}-python', '', d)} \ + " FILES_SOLIBSDEV = "" -FILES_${PN} += "${libexecdir}/perf-core ${exec_prefix}/libexec/perf-core ${libdir}/traceevent ${libdir}/libperf-jvmti.so" -FILES_${PN}-archive = "${libdir}/perf/perf-core/perf-archive" -FILES_${PN}-tests = "${libdir}/perf/perf-core/tests ${libexecdir}/perf-core/tests" -FILES_${PN}-python = " \ +FILES:${PN} += "${libexecdir}/perf-core ${exec_prefix}/libexec/perf-core ${libdir}/traceevent* ${libdir}/libperf-jvmti.so" +FILES:${PN}-archive = "${libdir}/perf/perf-core/perf-archive" +FILES:${PN}-tests = "${libdir}/perf/perf-core/tests ${libexecdir}/perf-core/tests" +FILES:${PN}-python = " \ ${PYTHON_SITEPACKAGES_DIR} \ ${libexecdir}/perf-core/scripts/python \ " -FILES_${PN}-perl = "${libexecdir}/perf-core/scripts/perl" +FILES:${PN}-perl = "${libexecdir}/perf-core/scripts/perl" + +DEBUG_OPTIMIZATION:append = " -Wno-error=maybe-uninitialized" +PACKAGESPLITFUNCS =+ "perf_fix_sources" -INHIBIT_PACKAGE_DEBUG_SPLIT="1" -DEBUG_OPTIMIZATION_append = " -Wno-error=maybe-uninitialized" +perf_fix_sources () { + for f in util/parse-events-flex.h util/parse-events-flex.c util/pmu-flex.c \ + util/pmu-flex.h util/expr-flex.h util/expr-flex.c; do + f=${PKGD}${TARGET_DBGSRC_DIR}/$f + if [ -e $f ]; then + sed -i -e 's#${S}/##g' $f + fi + done +} diff --git a/meta/recipes-kernel/perf/perf/sort-pmuevents.py b/meta/recipes-kernel/perf/perf/sort-pmuevents.py index 5ddf0f144f..0a87e553ab 100755 --- a/meta/recipes-kernel/perf/perf/sort-pmuevents.py +++ b/meta/recipes-kernel/perf/perf/sort-pmuevents.py @@ -33,34 +33,40 @@ if os.path.exists(outfile): with open(infile, 'r') as file: data = file.read() -preamble_regex = re.compile( '^(.*?)^struct', re.MULTILINE | re.DOTALL ) +preamble_regex = re.compile( '^(.*?)^(struct|const struct|static struct|static const struct)', re.MULTILINE | re.DOTALL ) preamble = re.search( preamble_regex, data ) -struct_block_regex = re.compile( '^struct.*?(\w+) (.*?)\[\] = {(.*?)^};', re.MULTILINE | re.DOTALL ) -field_regex = re.compile( '{.*?},', re.MULTILINE | re.DOTALL ) -cpuid_regex = re.compile( '\.cpuid = (.*?),', re.MULTILINE | re.DOTALL ) -name_regex = re.compile( '\.name = (.*?),', re.MULTILINE | re.DOTALL ) +struct_block_regex = re.compile(r'^(struct|const struct|static struct|static const struct).*?(\w+) (.*?)\[\] = {(.*?)^};', re.MULTILINE | re.DOTALL ) +field_regex = re.compile(r'{.*?},', re.MULTILINE | re.DOTALL ) +cpuid_regex = re.compile(r'\.cpuid = (.*?),', re.MULTILINE | re.DOTALL ) +name_regex = re.compile(r'\.name = (.*?),', re.MULTILINE | re.DOTALL ) # create a dictionary structure to store all the structs, their # types and then their fields. entry_dict = {} for struct in re.findall( struct_block_regex, data ): - # print( "struct: %s %s" % (struct[0],struct[1]) ) - entry_dict[struct[1]] = {} - entry_dict[struct[1]]['type'] = struct[0] - entry_dict[struct[1]]['fields'] = {} - for entry in re.findall( field_regex, struct[2] ): + # print( "struct: %s %s %s" % (struct[0],struct[1],struct[2]) ) + entry_dict[struct[2]] = {} + entry_dict[struct[2]]['type_prefix'] = struct[0] + entry_dict[struct[2]]['type'] = struct[1] + entry_dict[struct[2]]['fields'] = {} + for entry in re.findall( field_regex, struct[3] ): #print( " entry: %s" % entry ) cpuid = re.search( cpuid_regex, entry ) if cpuid: #print( " cpuid found: %s" % cpuid.group(1) ) - entry_dict[struct[1]]['fields'][cpuid.group(1)] = entry - + entry_dict[struct[2]]['fields'][cpuid.group(1)] = entry + name = re.search( name_regex, entry ) if name: #print( " name found: %s" % name.group(1) ) - entry_dict[struct[1]]['fields'][name.group(1)] = entry - + entry_dict[struct[2]]['fields'][name.group(1)] = entry + + # unmatched entries are most likely array terminators and + # should end up as the last element in the sorted list, which + # is achieved by using '0' as the key + if not cpuid and not name: + entry_dict[struct[2]]['fields']['0'] = entry # created ordered dictionaries from the captured values. These are ordered by # a sorted() iteration of the keys. We don't care about the order we read @@ -72,6 +78,7 @@ for struct in re.findall( struct_block_regex, data ): entry_dict_sorted = OrderedDict() for i in sorted(entry_dict.keys()): entry_dict_sorted[i] = {} + entry_dict_sorted[i]['type_prefix'] = entry_dict[i]['type_prefix'] entry_dict_sorted[i]['type'] = entry_dict[i]['type'] entry_dict_sorted[i]['fields'] = {} for f in sorted(entry_dict[i]['fields'].keys()): @@ -83,7 +90,7 @@ outf = open( outfile, 'w' ) print( preamble.group(1) ) outf.write( preamble.group(1) ) for d in entry_dict_sorted: - outf.write( "struct %s %s[] = {\n" % (entry_dict_sorted[d]['type'],d) ) + outf.write( "%s %s %s[] = {\n" % (entry_dict_sorted[d]['type_prefix'], entry_dict_sorted[d]['type'],d) ) for f in entry_dict_sorted[d]['fields']: outf.write( entry_dict_sorted[d]['fields'][f] + '\n' ) diff --git a/meta/recipes-kernel/powertop/powertop_2.14.bb b/meta/recipes-kernel/powertop/powertop_2.15.bb index cb7f3c4dc1..ec81d546a8 100644 --- a/meta/recipes-kernel/powertop/powertop_2.14.bb +++ b/meta/recipes-kernel/powertop/powertop_2.15.bb @@ -2,23 +2,23 @@ SUMMARY = "Power usage tool" DESCRIPTION = "Linux tool to diagnose issues with power consumption and power management." HOMEPAGE = "https://01.org/powertop/" BUGTRACKER = "https://app.devzing.com/powertopbugs/bugzilla" -DEPENDS = "ncurses libnl pciutils autoconf-archive" -LICENSE = "GPLv2" +DEPENDS = "ncurses libnl pciutils autoconf-archive-native" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e" -SRC_URI = "git://github.com/fenrus75/powertop;protocol=https \ - file://0001-wakeup_xxx.h-include-limits.h.patch \ -" -SRCREV = "52f022f9bbe6e060fba11701d657a8d9762702ba" +SRC_URI = "git://github.com/fenrus75/powertop;protocol=https;branch=master \ + file://0001-wakeup_xxx.h-include-limits.h.patch \ + " +SRCREV = "d51ad395436d4d1dcc3ca46e1519ffeb475bf651" S = "${WORKDIR}/git" -LDFLAGS_append = " -pthread" +LDFLAGS += "-pthread" inherit autotools gettext pkgconfig bash-completion inherit update-alternatives -ALTERNATIVE_${PN} = "powertop" +ALTERNATIVE:${PN} = "powertop" ALTERNATIVE_TARGET[powertop] = "${sbindir}/powertop" ALTERNATIVE_LINK_NAME[powertop] = "${sbindir}/powertop" ALTERNATIVE_PRIORITY = "100" diff --git a/meta/recipes-kernel/systemtap/systemtap-native_git.bb b/meta/recipes-kernel/systemtap/systemtap-native_git.bb index 19cc1cf0f0..2690b259c8 100644 --- a/meta/recipes-kernel/systemtap/systemtap-native_git.bb +++ b/meta/recipes-kernel/systemtap/systemtap-native_git.bb @@ -1,6 +1,6 @@ require systemtap_git.bb -inherit native +inherit_defer native addtask addto_recipe_sysroot after do_populate_sysroot before do_build diff --git a/meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb b/meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb deleted file mode 100644 index 6ee0be5e3e..0000000000 --- a/meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb +++ /dev/null @@ -1,40 +0,0 @@ -SUMMARY = "UProbes kernel module for SystemTap" -HOMEPAGE = "https://sourceware.org/systemtap/" -require systemtap_git.inc - -DEPENDS = "systemtap virtual/kernel" - -# On systems without CONFIG_UTRACE, this package is empty. -ALLOW_EMPTY_${PN} = "1" - -inherit module-base gettext - -FILESEXTRAPATHS =. "${FILE_DIRNAME}/systemtap:" - -FILES_${PN} += "${datadir}/systemtap/runtime/uprobes" - -# Compile and install the uprobes kernel module on machines with utrace -# support. Note that staprun expects it in the systemtap/runtime directory, -# not in /lib/modules. -do_compile() { - if grep -q "CONFIG_UTRACE=y" ${STAGING_KERNEL_BUILDDIR}/.config - then - unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS CC LD CPP - oe_runmake CC="${KERNEL_CC}" LD="${KERNEL_LD}" \ - AR="${KERNEL_AR}" \ - -C ${STAGING_KERNEL_DIR} scripts - oe_runmake KDIR=${STAGING_KERNEL_DIR} \ - M="${S}/runtime/uprobes/" \ - CC="${KERNEL_CC}" LD="${KERNEL_LD}" \ - AR="${KERNEL_AR}" \ - -C "${S}/runtime/uprobes/" - fi -} - -do_install() { - if [ -e "${S}/runtime/uprobes/uprobes.ko" ] - then - install -d ${D}${datadir}/systemtap/runtime/uprobes/ - install -m 0644 ${S}/runtime/uprobes/uprobes.ko ${D}${datadir}/systemtap/runtime/uprobes/ - fi -} diff --git a/meta/recipes-kernel/systemtap/systemtap/0001-elaborate.cxx-gcc-version-compatibility-hack-redux.patch b/meta/recipes-kernel/systemtap/systemtap/0001-elaborate.cxx-gcc-version-compatibility-hack-redux.patch new file mode 100644 index 0000000000..0c2888400d --- /dev/null +++ b/meta/recipes-kernel/systemtap/systemtap/0001-elaborate.cxx-gcc-version-compatibility-hack-redux.patch @@ -0,0 +1,32 @@ +From 91caf37e4dfe862f9b68447b1597c0d0f31523c3 Mon Sep 17 00:00:00 2001 +From: "Frank Ch. Eigler" <fche@redhat.com> +Date: Tue, 7 May 2024 15:04:04 -0400 +Subject: [PATCH] elaborate.cxx: gcc version compatibility hack redux + +Note __GNUC__ >= 14 for this diagnostic. + +Upstream-Status: Backport [https://sourceware.org/git/?p=systemtap.git;a=commit;h=91caf37e4dfe862f9b68447b1597c0d0f31523c3] +Signed-off-by: Victor Kamensky <victor.kamensky7@gmail.com> +--- + elaborate.cxx | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/elaborate.cxx b/elaborate.cxx +index 88505559b..c08023f1d 100644 +--- a/elaborate.cxx ++++ b/elaborate.cxx +@@ -2656,9 +2656,11 @@ symresolution_info::symresolution_info (systemtap_session& s, bool omniscient_un + session (s), unmangled_p(omniscient_unmangled), current_function (0), current_probe (0) + { + #pragma GCC diagnostic push ++ #if __GNUC__ >= 14 + // c10s early snapshot GCC complains about this construct, which is + // made safe via our dtor usage + #pragma GCC diagnostic ignored "-Wdangling-pointer" ++ #endif + saved_session_symbol_resolver = s.symbol_resolver; + s.symbol_resolver = this; // save resolver for early PR25841 function resolution + #pragma GCC diagnostic pop +-- +2.45.2 + diff --git a/meta/recipes-kernel/systemtap/systemtap/0001-elaborate.cxx-gcc-version-compatibility-hack.patch b/meta/recipes-kernel/systemtap/systemtap/0001-elaborate.cxx-gcc-version-compatibility-hack.patch new file mode 100644 index 0000000000..7cdcc93f14 --- /dev/null +++ b/meta/recipes-kernel/systemtap/systemtap/0001-elaborate.cxx-gcc-version-compatibility-hack.patch @@ -0,0 +1,52 @@ +From d11241bdd05bc4c745c8aef53a2725331e1a93b4 Mon Sep 17 00:00:00 2001 +From: "Frank Ch. Eigler" <fche@redhat.com> +Date: Tue, 7 May 2024 14:25:12 -0400 +Subject: [PATCH] elaborate.cxx: gcc version compatibility hack +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Suppress -Wdangling-pointer for a construct that appears valid, but +one particular GCC snapshot version complains about. + +In constructor ‘symresolution_info::symresolution_info(systemtap_session&, bool)’, +inlined from ‘int semantic_pass_symbols(systemtap_session&)’ at ../systemtap/elaborate.cxx:1872:28: +../systemtap/elaborate.cxx:2659:21: error: storing the address of local variable ‘sym’ in ‘*s.systemtap_session::symbol_resolver’ [-Werror=dangling-pointer=] + 2659 | s.symbol_resolver = this; // save resolver for early PR25841 function resolution + | ~~~~~~~~~~~~~~~~~~^~~~~~ +../systemtap/elaborate.cxx: In function ‘int semantic_pass_symbols(systemtap_session&)’: +../systemtap/elaborate.cxx:1872:22: note: ‘sym’ declared here + 1872 | symresolution_info sym (s); + | ^~~ +../systemtap/elaborate.cxx:1870:43: note: ‘s’ declared here + 1870 | semantic_pass_symbols (systemtap_session& s) + | ~~~~~~~~~~~~~~~~~~~^ +cc1plus: all warnings being treated as errors + +Upstream-Status: Backport [https://sourceware.org/git/?p=systemtap.git;a=commit;h=d11241bdd05bc4c745c8aef53a2725331e1a93b4] +Signed-off-by: Victor Kamensky <victor.kamensky7@gmail.com> +--- + elaborate.cxx | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/elaborate.cxx b/elaborate.cxx +index 8bf9e6c06..88505559b 100644 +--- a/elaborate.cxx ++++ b/elaborate.cxx +@@ -2655,8 +2655,13 @@ semantic_pass (systemtap_session& s) + symresolution_info::symresolution_info (systemtap_session& s, bool omniscient_unmangled): + session (s), unmangled_p(omniscient_unmangled), current_function (0), current_probe (0) + { ++ #pragma GCC diagnostic push ++ // c10s early snapshot GCC complains about this construct, which is ++ // made safe via our dtor usage ++ #pragma GCC diagnostic ignored "-Wdangling-pointer" + saved_session_symbol_resolver = s.symbol_resolver; + s.symbol_resolver = this; // save resolver for early PR25841 function resolution ++ #pragma GCC diagnostic pop + } + + +-- +2.45.2 + diff --git a/meta/recipes-kernel/systemtap/systemtap/0001-staprun-address-ncurses-6.3-failures.patch b/meta/recipes-kernel/systemtap/systemtap/0001-staprun-address-ncurses-6.3-failures.patch new file mode 100644 index 0000000000..1decf21593 --- /dev/null +++ b/meta/recipes-kernel/systemtap/systemtap/0001-staprun-address-ncurses-6.3-failures.patch @@ -0,0 +1,61 @@ +From 191f528da19193d713d94ee252e2485efd9af4d3 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex@linutronix.de> +Date: Mon, 25 Oct 2021 17:59:24 +0200 +Subject: [PATCH] staprun: address ncurses 6.3 failures + +Upstream-Status: Submitted [by email to smakarov@redhat.com,systemtap@sourceware.org] +Signed-off-by: Alexander Kanavin <alex@linutronix.de> +--- + staprun/monitor.c | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +diff --git a/staprun/monitor.c b/staprun/monitor.c +index 478634c09..f4fbfd686 100644 +--- a/staprun/monitor.c ++++ b/staprun/monitor.c +@@ -448,12 +448,12 @@ void monitor_render(void) + if (active_window == 0) + wattron(status, A_BOLD); + wprintw(status, "\n%*s\t%*s\t%*s\t%*s\t%*s\t%*s\t%s\n", +- width[p_index], HIGHLIGHT("index", p_index, comp_fn_index), +- width[p_state], HIGHLIGHT("state", p_state, comp_fn_index), +- width[p_hits], HIGHLIGHT("hits", p_hits, comp_fn_index), +- width[p_min], HIGHLIGHT("min", p_min, comp_fn_index), +- width[p_avg], HIGHLIGHT("avg", p_avg, comp_fn_index), +- width[p_max], HIGHLIGHT("max", p_max, comp_fn_index), ++ (int)width[p_index], HIGHLIGHT("index", p_index, comp_fn_index), ++ (int)width[p_state], HIGHLIGHT("state", p_state, comp_fn_index), ++ (int)width[p_hits], HIGHLIGHT("hits", p_hits, comp_fn_index), ++ (int)width[p_min], HIGHLIGHT("min", p_min, comp_fn_index), ++ (int)width[p_avg], HIGHLIGHT("avg", p_avg, comp_fn_index), ++ (int)width[p_max], HIGHLIGHT("max", p_max, comp_fn_index), + HIGHLIGHT("name", p_name, comp_fn_index)); + if (active_window == 0) + wattroff(status, A_BOLD); +@@ -466,17 +466,17 @@ void monitor_render(void) + json_object *probe, *field; + probe = json_object_array_get_idx(jso_probe_list, i); + json_object_object_get_ex(probe, "index", &field); +- wprintw(status, "%*s\t", width[p_index], json_object_get_string(field)); ++ wprintw(status, "%*s\t", (int)width[p_index], json_object_get_string(field)); + json_object_object_get_ex(probe, "state", &field); +- wprintw(status, "%*s\t", width[p_state], json_object_get_string(field)); ++ wprintw(status, "%*s\t", (int)width[p_state], json_object_get_string(field)); + json_object_object_get_ex(probe, "hits", &field); +- wprintw(status, "%*s\t", width[p_hits], json_object_get_string(field)); ++ wprintw(status, "%*s\t", (int)width[p_hits], json_object_get_string(field)); + json_object_object_get_ex(probe, "min", &field); +- wprintw(status, "%*s\t", width[p_min], json_object_get_string(field)); ++ wprintw(status, "%*s\t", (int)width[p_min], json_object_get_string(field)); + json_object_object_get_ex(probe, "avg", &field); +- wprintw(status, "%*s\t", width[p_avg], json_object_get_string(field)); ++ wprintw(status, "%*s\t", (int)width[p_avg], json_object_get_string(field)); + json_object_object_get_ex(probe, "max", &field); +- wprintw(status, "%*s\t", width[p_max], json_object_get_string(field)); ++ wprintw(status, "%*s\t", (int)width[p_max], json_object_get_string(field)); + getyx(status, discard, cur_x); + json_object_object_get_ex(probe, "name", &field); + wprintw(status, "%.*s", max_cols-cur_x-1, json_object_get_string(field)); +-- +2.20.1 + diff --git a/meta/recipes-kernel/systemtap/systemtap_git.bb b/meta/recipes-kernel/systemtap/systemtap_git.bb index c4a6eef59a..68f5c76428 100644 --- a/meta/recipes-kernel/systemtap/systemtap_git.bb +++ b/meta/recipes-kernel/systemtap/systemtap_git.bb @@ -6,7 +6,10 @@ HOMEPAGE = "https://sourceware.org/systemtap/" require systemtap_git.inc -SRC_URI += "file://0001-improve-reproducibility-for-c-compiling.patch" +SRC_URI += " \ + file://0001-improve-reproducibility-for-c-compiling.patch \ + file://0001-staprun-address-ncurses-6.3-failures.patch \ + " DEPENDS = "elfutils" @@ -21,58 +24,62 @@ STAP_DOCS ?= "--disable-docs --disable-publican --disable-refdocs" EXTRA_OECONF += "${STAP_DOCS} " -PACKAGECONFIG ??= "translator sqlite monitor python3-probes" +PACKAGECONFIG ??= "translator sqlite monitor python3-probes ${@bb.utils.filter('DISTRO_FEATURES', 'debuginfod', d)}" PACKAGECONFIG[translator] = "--enable-translator,--disable-translator,boost,bash" PACKAGECONFIG[libvirt] = "--enable-libvirt,--disable-libvirt,libvirt" PACKAGECONFIG[sqlite] = "--enable-sqlite,--disable-sqlite,sqlite3" PACKAGECONFIG[monitor] = "--enable-monitor,--disable-monitor,ncurses json-c" PACKAGECONFIG[python3-probes] = "--with-python3-probes,--without-python3-probes,python3-setuptools-native" +PACKAGECONFIG[debuginfod] = "--with-debuginfod, --without-debuginfod" inherit autotools gettext pkgconfig systemd -inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3-probes', 'distutils3-base', '', d)} +inherit_defer ${@bb.utils.contains('PACKAGECONFIG', 'python3-probes', 'setuptools3-base', '', d)} + +# | ../git/elaborate.cxx:2601:21: error: storing the address of local variable 'sym' in '*s.systemtap_session::symbol_resolver' [-Werror=dangling-pointer=] +CXXFLAGS += "-Wno-dangling-pointer" # exporter comes with python3-probes PACKAGES =+ "${PN}-exporter" -FILES_${PN}-exporter = "${sysconfdir}/stap-exporter/* \ +FILES:${PN}-exporter = "${sysconfdir}/stap-exporter/* \ ${sysconfdir}/sysconfig/stap-exporter \ - ${systemd_unitdir}/system/stap-exporter.service \ + ${systemd_system_unitdir}/stap-exporter.service \ ${sbindir}/stap-exporter" -RDEPENDS_${PN}-exporter = "${PN} python3-core python3-netclient" -SYSTEMD_SERVICE_${PN}-exporter = "stap-exporter.service" +RDEPENDS:${PN}-exporter = "${PN} python3-core python3-netclient" +SYSTEMD_SERVICE:${PN}-exporter = "stap-exporter.service" PACKAGES =+ "${PN}-runtime" -FILES_${PN}-runtime = "\ +FILES:${PN}-runtime = "\ ${bindir}/staprun \ ${bindir}/stap-merge \ ${bindir}/stapsh \ ${libexecdir}/${BPN}/stapio \ " -RDEPENDS_${PN}_class-target += "${PN}-runtime" +RDEPENDS:${PN}:class-target += "${PN}-runtime" PACKAGES =+ "${PN}-examples" -FILES_${PN}-examples = "${datadir}/${BPN}/examples/" -RDEPENDS_${PN}-examples += "${PN}" +FILES:${PN}-examples = "${datadir}/${BPN}/examples/" +RDEPENDS:${PN}-examples += "${PN}" # don't complain that some examples involve bash, perl, php... -INSANE_SKIP_${PN}-examples += "file-rdeps" +INSANE_SKIP:${PN}-examples += "file-rdeps" PACKAGES =+ "${PN}-python" -FILES_${PN}-python += "\ +FILES:${PN}-python += "\ ${bindir}/dtrace \ ${libdir}/python*/ \ ${libexecdir}/${BPN}/python/ \ " # python material requires sdt headers -RDEPENDS_${PN}-python += "${PN}-dev python3-core" -INSANE_SKIP_${PN}-python += "dev-deps" +RDEPENDS:${PN}-python += "${PN}-dev python3-core" +INSANE_SKIP:${PN}-python += "dev-deps" -do_configure_prepend () { +do_configure:prepend () { # Improve reproducibility for c++ object files reltivepath="${@os.path.relpath(d.getVar('STAGING_INCDIR'), d.getVar('S'))}" sed -i "s:@RELATIVE_STAGING_INCDIR@:$reltivepath:g" ${S}/stringtable.h } -do_install_append () { +do_install:append () { if [ ! -f ${D}${bindir}/stap ]; then # translator disabled case, need to leave only minimal runtime rm -rf ${D}${datadir}/${PN} diff --git a/meta/recipes-kernel/systemtap/systemtap_git.inc b/meta/recipes-kernel/systemtap/systemtap_git.inc index 23ecc61987..80945ad7f8 100644 --- a/meta/recipes-kernel/systemtap/systemtap_git.inc +++ b/meta/recipes-kernel/systemtap/systemtap_git.inc @@ -1,16 +1,18 @@ -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -SRCREV = "0eba8a46bc99c66e5dd274a9a4d661fe08ac4b8a" -PV = "4.5" +SRCREV = "3a0c9c15163520dd0d9ab07177da62ce9cc2332f" +PV = "5.1" -SRC_URI = "git://sourceware.org/git/systemtap.git \ +SRC_URI = "git://sourceware.org/git/systemtap.git;branch=master;protocol=https \ file://0001-Do-not-let-configure-write-a-python-location-into-th.patch \ file://0001-Install-python-modules-to-correct-library-dir.patch \ file://0001-staprun-stapbpf-don-t-support-installing-a-non-root.patch \ + file://0001-elaborate.cxx-gcc-version-compatibility-hack.patch \ + file://0001-elaborate.cxx-gcc-version-compatibility-hack-redux.patch \ " -COMPATIBLE_HOST = '(x86_64|i.86|powerpc|arm|aarch64|microblazeel|mips).*-linux' -COMPATIBLE_HOST_libc-musl = 'null' +COMPATIBLE_HOST = '(x86_64|i.86|powerpc|arm|aarch64|microblazeel|mips|riscv64).*-linux' +COMPATIBLE_HOST:libc-musl = 'null' S = "${WORKDIR}/git" diff --git a/meta/recipes-kernel/wireless-regdb/wireless-regdb_2021.04.21.bb b/meta/recipes-kernel/wireless-regdb/wireless-regdb_2024.07.04.bb index f79c0b29ea..daf5e6dfcd 100644 --- a/meta/recipes-kernel/wireless-regdb/wireless-regdb_2021.04.21.bb +++ b/meta/recipes-kernel/wireless-regdb/wireless-regdb_2024.07.04.bb @@ -5,7 +5,7 @@ LICENSE = "ISC" LIC_FILES_CHKSUM = "file://LICENSE;md5=07c4f6dea3845b02a18dc00c8c87699c" SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz" -SRC_URI[sha256sum] = "9e4c02b2a9710df4dbdb327c39612e8cbbae6495987afeddaebab28c1ea3d8fa" +SRC_URI[sha256sum] = "9832a14e1be24abff7be30dee3c9a1afb5fdfcf475a0d91aafef039f8d85f5eb" inherit bin_package allarch @@ -13,7 +13,7 @@ do_install() { install -d -m0755 ${D}${nonarch_libdir}/crda install -d -m0755 ${D}${sysconfdir}/wireless-regdb/pubkeys install -m 0644 regulatory.bin ${D}${nonarch_libdir}/crda/regulatory.bin - install -m 0644 sforshee.key.pub.pem ${D}${sysconfdir}/wireless-regdb/pubkeys/sforshee.key.pub.pem + install -m 0644 wens.key.pub.pem ${D}${sysconfdir}/wireless-regdb/pubkeys/wens.key.pub.pem install -m 0644 -D regulatory.db ${D}${nonarch_base_libdir}/firmware/regulatory.db install -m 0644 regulatory.db.p7s ${D}${nonarch_base_libdir}/firmware/regulatory.db.p7s @@ -24,9 +24,9 @@ do_install() { # For kernel <= v4.14, inherit the kernel_wireless_regdb.bbclass # (in meta-networking) in kernel's recipe. PACKAGES = "${PN}-static ${PN}" -RCONFLICTS_${PN} = "${PN}-static" +RCONFLICTS:${PN} = "${PN}-static" -FILES_${PN}-static = " \ +FILES:${PN}-static = " \ ${nonarch_base_libdir}/firmware/regulatory.db \ ${nonarch_base_libdir}/firmware/regulatory.db.p7s \ " @@ -34,10 +34,10 @@ FILES_${PN}-static = " \ # Native users might want to use the source of regulatory DB. # This is for example used by Linux kernel <= v4.14 and # kernel_wireless_regdb.bbclass in meta-networking. -do_install_append_class-native() { +do_install:append:class-native() { install -m 0644 -D db.txt ${D}${libdir}/crda/db.txt } -RSUGGESTS_${PN} = "crda" +RSUGGESTS:${PN} = "crda" BBCLASSEXTEND = "native" |