From be8cc4137c8ca9be65ac77217a890674126675eb Mon Sep 17 00:00:00 2001 From: Zoltan Boszormenyi Date: Wed, 5 Nov 2025 11:59:36 +0100 Subject: [PATCH] bitbake: knotty: Make sure getTerminalColumns() returns two integers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Python 3.14 complains about these: Traceback (most recent call last): File "/mnt2/zozo/yocto-5.3/bitbake/lib/bb/ui/knotty.py", line 722, in main termfilter.updateFooter() ~~~~~~~~~~~~~~~~~~~~~~~^^ File "/mnt2/zozo/yocto-5.3/bitbake/lib/bb/ui/knotty.py", line 339, in updateFooter lines = self.getlines(content) File "/mnt2/zozo/yocto-5.3/bitbake/lib/bb/ui/knotty.py", line 370, in getlines lines = lines + 1 + int(len(line) / (self.columns + 1)) ~~~~~~~~~~~~~^~~ TypeError: can only concatenate str (not "int") to str and Traceback (most recent call last): File "/mnt2/zozo/yocto-5.3/bitbake/lib/bb/ui/knotty.py", line 722, in main termfilter.updateFooter() ~~~~~~~~~~~~~~~~~~~~~~~^^ File "/mnt2/zozo/yocto-5.3/bitbake/lib/bb/ui/knotty.py", line 341, in updateFooter for tasknum, task in enumerate(tasks[:(self.rows - 1 - lines)]): ~~~~~~~~~~^~~ TypeError: unsupported operand type(s) for -: 'str' and 'int' Make sure getting the number of rows and columns from the terminal via the environment variables LINES and COLUMNS are returned as a pair of integers. This matches the return value of ioctl_GWINSZ(). (Bitbake rev: 10118785e4a670bce4980e1044c0888a8b6e84af) Signed-off-by: Zoltán Böszörményi Signed-off-by: Richard Purdie (cherry picked from commit a4e0b6f8077276a0bfb9d05c759bc752a84d1f76) Signed-off-by: Yoann Congal Signed-off-by: Paul Barker Signed-off-by: Richard Purdie --- bitbake/lib/bb/ui/knotty.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bitbake/lib/bb/ui/knotty.py b/bitbake/lib/bb/ui/knotty.py index 41a943adf8..5198e93d8d 100644 --- a/bitbake/lib/bb/ui/knotty.py +++ b/bitbake/lib/bb/ui/knotty.py @@ -145,7 +145,7 @@ class TerminalFilter(object): pass if not cr: try: - cr = (os.environ['LINES'], os.environ['COLUMNS']) + cr = (int(os.environ['LINES']), int(os.environ['COLUMNS'])) except: cr = (25, 80) return cr