scripts: feeds: Don’t hardcode IS_TTY
authorErnestas Kulik <[email protected]>
Wed, 12 Nov 2025 08:16:30 +0000 (10:16 +0200)
committerChristian Marangi <[email protected]>
Wed, 12 Nov 2025 11:05:53 +0000 (12:05 +0100)
When building in environments that set IS_TTY, the feeds script does not
honor it and passes a hardcoded value to scan.mk, causing unwanted
control characters to appear in stdout.

This commit addresses the issue by checking IS_TTY and MAKE_TERMOUT
variables and uses their values if defined.

Closes #8039

Signed-off-by: Ernestas Kulik <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20743
Signed-off-by: Christian Marangi <[email protected]>
scripts/feeds

index 05169b2940a53a6667c8fa3a130d5f33920a7cbf..4b01c8b37f8f09e40a1eebcb9677304c43156699 100755 (executable)
@@ -128,8 +128,14 @@ sub update_index($)
        -d "./feeds/$name.tmp/info" or mkdir "./feeds/$name.tmp/info" or return 1;
 
        system("$mk -s prepare-mk OPENWRT_BUILD= TMP_DIR=\"$ENV{TOPDIR}/feeds/$name.tmp\"");
-       system("$mk -s -f include/scan.mk IS_TTY=1 SCAN_TARGET=\"packageinfo\" SCAN_DIR=\"feeds/$name\" SCAN_NAME=\"package\" SCAN_DEPTH=5 SCAN_EXTRA=\"\" TMP_DIR=\"$ENV{TOPDIR}/feeds/$name.tmp\"");
-       system("$mk -s -f include/scan.mk IS_TTY=1 SCAN_TARGET=\"targetinfo\" SCAN_DIR=\"feeds/$name\" SCAN_NAME=\"target\" SCAN_DEPTH=5 SCAN_EXTRA=\"\" SCAN_MAKEOPTS=\"TARGET_BUILD=1\" TMP_DIR=\"$ENV{TOPDIR}/feeds/$name.tmp\"");
+
+       my $is_tty = $ENV{IS_TTY};
+       $is_tty = defined $is_tty ? $is_tty : $ENV{MAKE_TERMOUT};
+       $is_tty = defined $is_tty ? $is_tty : 1;
+
+       system("$mk -s -f include/scan.mk IS_TTY=$is_tty SCAN_TARGET=\"packageinfo\" SCAN_DIR=\"feeds/$name\" SCAN_NAME=\"package\" SCAN_DEPTH=5 SCAN_EXTRA=\"\" TMP_DIR=\"$ENV{TOPDIR}/feeds/$name.tmp\"");
+       system("$mk -s -f include/scan.mk IS_TTY=$is_tty SCAN_TARGET=\"targetinfo\" SCAN_DIR=\"feeds/$name\" SCAN_NAME=\"target\" SCAN_DEPTH=5 SCAN_EXTRA=\"\" SCAN_MAKEOPTS=\"TARGET_BUILD=1\" TMP_DIR=\"$ENV{TOPDIR}/feeds/$name.tmp\"");
+
        system("ln -sf $name.tmp/.packageinfo ./feeds/$name.index");
        system("ln -sf $name.tmp/.targetinfo ./feeds/$name.targetindex");