From ae9c9d0f8e41621c1bde94a43ec463052fa58c8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= Date: Fri, 27 Dec 2024 12:43:18 +0100 Subject: [PATCH] build: parsing "git log" breaks with gpg signature verification MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Parsing "git log" is fragile. The actual output depends on both global and local configuration files. Enabling "log.showSignature" makes "git log" prefix signed commits with multiple lines of gpg verify output, regardless of the configured log format. Add "--no-show-signature" to "git log" commands to work around this particular issue. Signed-off-by: Bjørn Mork Link: https://github.com/openwrt/openwrt/pull/20127 Signed-off-by: Robert Marko --- include/download.mk | 2 +- rules.mk | 4 ++-- scripts/getver.sh | 2 +- toolchain/Makefile | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/download.mk b/include/download.mk index be0c9a31f1..e87501563a 100644 --- a/include/download.mk +++ b/include/download.mk @@ -238,7 +238,7 @@ define DownloadMethod/rawgit [ \! -d $(SUBDIR) ] && \ git clone $(OPTS) $(URL) $(SUBDIR) && \ (cd $(SUBDIR) && git checkout $(SOURCE_VERSION)) && \ - export TAR_TIMESTAMP=`cd $(SUBDIR) && git log -1 --format='@%ct'` && \ + export TAR_TIMESTAMP=`cd $(SUBDIR) && git log -1 --no-show-signature --format='@%ct'` && \ echo "Generating formal git archive (apply .gitattributes rules)" && \ (cd $(SUBDIR) && git config core.abbrev 8 && \ git archive --format=tar HEAD --output=../$(SUBDIR).tar.git) && \ diff --git a/rules.mk b/rules.mk index 929d8e00e8..47c5f5de62 100644 --- a/rules.mk +++ b/rules.mk @@ -514,9 +514,9 @@ ext=$(word $(words $(subst ., ,$(1))),$(subst ., ,$(1))) ## define commitcount $(shell \ - if git log -1 >/dev/null 2>/dev/null; then \ + if git log -1 --no-show-signature >/dev/null 2>/dev/null; then \ if [ -n "$(1)" ]; then \ - last_bump="$$(git log --pretty=format:'%h %s' . | \ + last_bump="$$(git log --no-show-signature --pretty=format:'%h %s' . | \ grep -m 1 -e ': [uU]pdate to ' -e ': [bB]ump to ' | \ cut -f 1 -d ' ')"; \ fi; \ diff --git a/scripts/getver.sh b/scripts/getver.sh index e9a5cca074..bf21f77feb 100755 --- a/scripts/getver.sh +++ b/scripts/getver.sh @@ -43,7 +43,7 @@ try_git() { REV="${UPSTREAM_REV}+$((REV - UPSTREAM_REV))" fi - REV="${REV:+r$REV-$(git log -n 1 --format="%h" $UPSTREAM_BASE)}" + REV="${REV:+r$REV-$(git log -n 1 --no-show-signature --format="%h" $UPSTREAM_BASE)}" ;; esac diff --git a/toolchain/Makefile b/toolchain/Makefile index 09c16f72a7..67b1540117 100644 --- a/toolchain/Makefile +++ b/toolchain/Makefile @@ -65,7 +65,7 @@ endif ifdef CONFIG_BUILDBOT ifneq ($(wildcard $(TOPDIR)/.git),) $(TOOLCHAIN_DIR)/stamp/.ver_check: $(TMP_DIR)/.build - cd "$(TOPDIR)"; git log --format=%h -1 toolchain > $(TMP_DIR)/.ver_check + cd "$(TOPDIR)"; git log --no-show-signature --format=%h -1 toolchain > $(TMP_DIR)/.ver_check cmp -s $(TMP_DIR)/.ver_check $@ || { \ rm -rf $(BUILD_DIR) $(STAGING_DIR) $(TOOLCHAIN_DIR) $(BUILD_DIR_TOOLCHAIN); \ mkdir -p $(TOOLCHAIN_DIR)/stamp; \