From: Bjørn Mork Date: Fri, 27 Dec 2024 11:43:18 +0000 (+0100) Subject: build: parsing "git log" breaks with gpg signature verification X-Git-Tag: v25.12.0-rc1~1220 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F20127%2Fhead;p=thirdparty%2Fopenwrt.git build: parsing "git log" breaks with gpg signature verification 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 --- diff --git a/include/download.mk b/include/download.mk index be0c9a31f17..e87501563aa 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 929d8e00e8d..47c5f5de62a 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 e9a5cca0740..bf21f77feb3 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 09c16f72a78..67b1540117c 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; \