]> code.ossystems Code Review - openembedded-core.git/commit
cve-check: replace Looseversion with custom version class
authorLee Chee Yang <chee.yang.lee@intel.com>
Fri, 22 Jan 2021 10:07:19 +0000 (18:07 +0800)
committerSteve Sakoman <steve@sakoman.com>
Thu, 4 Feb 2021 14:57:53 +0000 (04:57 -1000)
commit294baea424472341d2ec880f13699076315d8274
treef0cfe2f29cc6af8d9e3fa06a2abef49b099f9491
parent2a558ee61a2452a209d39cd1528a309c549c0f4e
cve-check: replace Looseversion with custom version class

The way distutils.version.LooseVersion compare version are tricky, it treat
all these ( "1.0-beta2", "1.0-rc1", "1.0A", "1.0p2" and "1.0pre1") as greater
version than "1.0". This might be right for "1.0A" and "1.0p1" but not for
the rest, also these version could be confusing, the "p" in "1.0p1" can be
"pre" or "patched" version or even other meaning.

Replace Looseversion with custom class, it uses regex to capture common
version format like "1.1.1" or tag format using date like "2020-12-12" as
release section, check for following known string/tags ( beta, rc, pre, dev,
alpha, preview) as pre-release section, any other trailing characters
are difficult to understand/define so ignore them. Compare release
section and pre-release section saperately.

included selftest for the version class.

[YOCTO#14127]

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6ced85e9ddd3569240f1e8b82130d1ac0fffbc40)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
meta/classes/cve-check.bbclass
meta/lib/oe/cve_check.py [new file with mode: 0644]
meta/lib/oeqa/selftest/cases/cve_check.py [new file with mode: 0644]