luci.mk: fix compatibility with GNU Make 4.2
authorJo-Philipp Wich <jo@mein.io>
Tue, 25 Oct 2022 09:30:13 +0000 (11:30 +0200)
committerJo-Philipp Wich <jo@mein.io>
Mon, 3 Apr 2023 11:45:03 +0000 (13:45 +0200)
GNU Make version 4.2 chokes on `#` characters embedded in variable
substitutions, leading to the following error:

    ../../luci.mk:114: *** unterminated call to function 'if': missing ')'.  Stop.

Avoid this problem by replacing variable substitutions with Git branch
format arguments.

Ref: https://github.com/openwrt/luci/pull/5976#issuecomment-1289935106
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 639e7faa1ad25b0bc2ffd5bfec79c2b9d95a50ee)

luci.mk

diff --git a/luci.mk b/luci.mk
index c9b7d930b68978bb3fc7bed64bb1e3da5b309639..dc9f937eff6972c0c7476fa9329ff1a1623404d2 100644 (file)
--- a/luci.mk
+++ b/luci.mk
@@ -114,9 +114,8 @@ PKG_SRC_VERSION?=$(if $(DUMP),x,$(strip $(call findrev,1)))
 PKG_GITBRANCH?=$(if $(DUMP),x,$(strip $(shell \
        variant="LuCI"; \
        if git log -1 >/dev/null 2>/dev/null; then \
-               branch=$$(git branch --remote --no-abbrev --contains 2>/dev/null | tail -n1); \
-               branch=$${branch:-$$(git branch --no-abbrev --contains 2>/dev/null)}; \
-               branch=$${branch#? }; branch=$${branch#*/}; \
+               branch=$$(git branch --format='%(refname:strip=3)' --remote --no-abbrev --contains 2>/dev/null | tail -n1); \
+               branch=$${branch:-$$(git branch --format='%(refname:strip=2)' --no-abbrev --contains 2>/dev/null | tail -n1)}; \
                if [ "$$branch" != "master" ]; then \
                        variant="LuCI $${branch:-unknown} branch"; \
                else \