diff mbox series

build: propagate errors in scan and feed update

Message ID mailman.32462.1693270870.1880391.openwrt-devel@lists.openwrt.org
State New
Headers show
Series build: propagate errors in scan and feed update | expand

Commit Message

Karsten Sperling Aug. 29, 2023, 1 a.m. UTC
The sender domain has a DMARC Reject/Quarantine policy which disallows
sending mailing list messages using the original "From" header.

To mitigate this problem, the original message has been wrapped
automatically by the mailing list software.
Currently, when an error occurs during scanning of a package Makefile, an
error message is logged, but the error is not actually propagated. This
makes it easy for build scripts to accidentally proceed based on an incomplete
package scan.

Propagate errors correctly in scan.mk and update_index in the feeds script.

Signed-off-by: Karsten Sperling <ksperling@apple.com>
---
 include/scan.mk |  1 +
 scripts/feeds   | 10 +++++-----
 2 files changed, 6 insertions(+), 5 deletions(-)
diff mbox series

Patch

diff --git a/include/scan.mk b/include/scan.mk
index 33a5832ff5..fa1909caa3 100644
--- a/include/scan.mk
+++ b/include/scan.mk
@@ -55,6 +55,7 @@  define PackageDir
 			$(NO_TRACE_MAKE) --no-print-dir -r DUMP=1 FEED="$(call feedname,$(2))" -C $(SCAN_DIR)/$(2) $(SCAN_MAKEOPTS) > $(TOPDIR)/logs/$(SCAN_DIR)/$(2)/dump.txt 2>&1; \
 			$$(call progress,ERROR: please fix $(SCAN_DIR)/$(2)/Makefile - see logs/$(SCAN_DIR)/$(2)/dump.txt for details\n) \
 			rm -f $$@; \
+			exit 2; \
 		}; \
 		echo; \
 	} > $$@.tmp
diff --git a/scripts/feeds b/scripts/feeds
index aee73e793f..f321649807 100755
--- a/scripts/feeds
+++ b/scripts/feeds
@@ -127,11 +127,11 @@  sub update_index($)
 	-d "./feeds/$name.tmp" or mkdir "./feeds/$name.tmp" or return 1;
 	-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\"");
-	system("ln -sf $name.tmp/.packageinfo ./feeds/$name.index");
-	system("ln -sf $name.tmp/.targetinfo ./feeds/$name.targetindex");
+	system("$mk -s prepare-mk OPENWRT_BUILD= TMP_DIR=\"$ENV{TOPDIR}/feeds/$name.tmp\"") == 0 or return 1;
+	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\"") == 0 or return 1;
+	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\"") == 0 or return 1;
+	system("ln -sf $name.tmp/.packageinfo ./feeds/$name.index") == 0 or return 1;
+	system("ln -sf $name.tmp/.targetinfo ./feeds/$name.targetindex") == 0 or return 1;
 
 	return 0;
 }