scripts/runqemu: fix regex escape sequences

When invoking runqemu with Python 3.12, the following warning is
encountered:

|SyntaxWarning: invalid escape sequence '\.'

This is because the interpreter scans the string before it is processed
by the regex module, and it interprets the backslash as part of an
escape sequence, but not a standard one. This will be registered as an
error rather than a warning in future Python versions. To avoid the it,
simply add an extra backslash so that Python doesn't misinterpret the
string, while the regex parser still sees an escaped '.' character.

(From OE-Core rev: 2f8982ef4c903f43867da56fcfd080a6556daa8b)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Backported from master: 0e8a4142bb90a92d175df6b2537d24a372356f98

Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
Trevor Gamblin 2024-02-21 20:36:54 +01:00 committed by Steve Sakoman
parent 6e8300c5bc
commit 1e41c667e6

View File

@ -362,7 +362,7 @@ class BaseConfig(object):
if p.endswith('.qemuboot.conf'):
self.qemuboot = p
self.qbconfload = True
elif re.search('\.bin$', p) or re.search('bzImage', p) or \
elif re.search('\\.bin$', p) or re.search('bzImage', p) or \
re.search('zImage', p) or re.search('vmlinux', p) or \
re.search('fitImage', p) or re.search('uImage', p):
self.kernel = p
@ -376,13 +376,13 @@ class BaseConfig(object):
fst = t
break
if not fst:
m = re.search('.*\.(.*)$', self.rootfs)
m = re.search('.*\\.(.*)$', self.rootfs)
if m:
fst = m.group(1)
if fst:
self.check_arg_fstype(fst)
qb = re.sub('\.' + fst + "$", '', self.rootfs)
qb = '%s%s' % (re.sub('\.rootfs$', '', qb), '.qemuboot.conf')
qb = re.sub('\\.' + fst + "$", '', self.rootfs)
qb = '%s%s' % (re.sub('\\.rootfs$', '', qb), '.qemuboot.conf')
if os.path.exists(qb):
self.qemuboot = qb
self.qbconfload = True