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: 145672043d6d75a9e5a03afb4c205e8008218a3b)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0e8a4142bb90a92d175df6b2537d24a372356f98)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
Trevor Gamblin 2024-01-02 11:52:58 -05:00 committed by Steve Sakoman
parent 84d3e21ba8
commit 89b80f507f

View File

@ -367,7 +367,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
@ -381,19 +381,19 @@ 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 + "$", '.qemuboot.conf', self.rootfs)
qb = re.sub('\\.' + fst + "$", '.qemuboot.conf', self.rootfs)
if os.path.exists(qb):
self.qemuboot = qb
self.qbconfload = True
else:
logger.warning("%s doesn't exist, will try to remove '.rootfs' from filename" % qb)
# They to remove .rootfs (IMAGE_NAME_SUFFIX) as well
qb = re.sub('\.rootfs.qemuboot.conf$', '.qemuboot.conf', qb)
qb = re.sub('\\.rootfs.qemuboot.conf$', '.qemuboot.conf', qb)
if os.path.exists(qb):
self.qemuboot = qb
self.qbconfload = True