scripts: feeds: Don’t hardcode IS_TTY openwrt-23.05
authorErnestas Kulik <[email protected]>
Wed, 12 Nov 2025 08:16:30 +0000 (10:16 +0200)
committerChristian Marangi <[email protected]>
Wed, 12 Nov 2025 11:07:24 +0000 (12:07 +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]>
(cherry picked from commit fd7e43d429a370665795fb14c859c046c761e4e9)

scripts/feeds

index f0dea6d040aa1d818e109fe3f800fc286aea372c..8ce2db455ef04016fc9de5274a5a89cd02981bf2 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");