On Wed, 28 Jun 2023, Anubhav Shelat wrote: > Fixed bug in kcompile where run would fail if kcompile-source version > had the form x.y instead of x.y.z > > Signed-off-by: Anubhav Shelat <ashelat@xxxxxxxxxx> > --- > rteval/modules/loads/kcompile.py | 13 ++++++++++--- > 1 file changed, 10 insertions(+), 3 deletions(-) > > diff --git a/rteval/modules/loads/kcompile.py b/rteval/modules/loads/kcompile.py > index 35ee5cbbb52d..445575fb137a 100644 > --- a/rteval/modules/loads/kcompile.py > +++ b/rteval/modules/loads/kcompile.py > @@ -175,8 +175,11 @@ class Kcompile(CommandLineLoad): > if 'rc' in self._cfg.source: > tarfile_prefix = re.search(r"\d{1,2}\.\d{1,3}\-[a-z]*\d{1,2}", self._cfg.source).group(0) > else: > - tarfile_prefix = re.search(r"\d{1,2}\.\d{1,3}\.*\d{1,2}", self._cfg.source).group(0) > - > + try: > + tarfile_prefix = re.search(r"\d{1,2}\.\d{1,3}\.*\d{1,2}", self._cfg.source).group(0) > + except AttributeError: > + # if the kernel version has the form x.x instead of x.x.x > + tarfile_prefix = re.search(r"\d{1,2}\.\d{1,3}", self._cfg.source).group(0) > # either a tar.xz or tar.gz might exist. Check for both. > xz_file = os.path.join(self.srcdir,"linux-" + tarfile_prefix + ".tar.xz" ) > gz_file = os.path.join(self.srcdir,"linux-" + tarfile_prefix + ".tar.gz" ) > @@ -193,7 +196,11 @@ class Kcompile(CommandLineLoad): > # find our source tarball > if self._cfg.source: > self.source = self._find_tarball() > - kernel_prefix = re.search(r"linux-\d{1,2}\.\d{1,3}\.*\d{1,2}", self.source).group(0) > + try: > + kernel_prefix = re.search(r"linux-\d{1,2}\.\d{1,3}\.*\d{1,2}", self.source).group(0) > + except AttributeError: > + # if the kernel version has the form x.x instead of x.x.x > + kernel_prefix = re.search(r"linux-\d{1,2}\.\d{1,3}", self.source).group(0) > else: > tarfiles = glob.glob(os.path.join(self.srcdir, f"{DEFAULT_KERNEL_PREFIX}*")) > if tarfiles: > -- > 2.39.3 > > We don't want to use a try/except block to detect that our regular expression didn't match. Instead construct a regular expression that will match both the cases of linux-x.y.z.tar.gz and linux-x.y.tar.gz Note \d{1,2} means one to two digits you can group those with parenthesis (\d{1,3}\.){1,2} The above matches 1 to 3 digits followed by a period and that whole group 1 to 2 times. Use your interactive python interpreter to play with the regular expression before creating your patch. John