build: luci.mk: rework package version handling
authorJo-Philipp Wich <jo@mein.io>
Thu, 9 Apr 2020 21:11:41 +0000 (23:11 +0200)
committerJo-Philipp Wich <jo@mein.io>
Thu, 9 Apr 2020 21:23:33 +0000 (23:23 +0200)
 - Derive the version of packages from the last change of the sources
 - Derive the version of i18n packages from the last change of the po dir

Fixes: #2257
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
luci.mk

diff --git a/luci.mk b/luci.mk
index 6be83a4f52d4c87364b6eaed4921485d1b0d25f5..456fa016ee747600cee50821f500c69286323a7d 100644 (file)
--- a/luci.mk
+++ b/luci.mk
@@ -59,8 +59,15 @@ LUCI_LC_ALIAS.zh_Hant=zh-tw
 
 PKG_NAME?=$(LUCI_NAME)
 
-PKG_VERSION?=$(if $(DUMP),x,$(strip $(shell \
-       set -- $$(git log -1 --format="%ct %h" --abbrev=7); \
+PKG_PO_VERSION?=$(if $(DUMP),x,$(strip $(shell \
+       set -- $$(git log -1 --format="%ct %h" --abbrev=7 -- po); \
+       secs="$$(($$1 % 86400))"; \
+       yday="$$(date --utc --date="@$$1" "+%y.%j")"; \
+       printf 'git-%s.%05d-%s' "$$yday" "$$secs" "$$2" \
+)))
+
+PKG_SRC_VERSION?=$(if $(DUMP),x,$(strip $(shell \
+       set -- $$(git log -1 --format="%ct %h" --abbrev=7 -- . ':(exclude)po'); \
        secs="$$(($$1 % 86400))"; \
        yday="$$(date --utc --date="@$$1" "+%y.%j")"; \
        printf 'git-%s.%05d-%s' "$$yday" "$$secs" "$$2" \
@@ -95,6 +102,7 @@ define Package/$(PKG_NAME)
   SUBMENU:=$(if $(LUCI_MENU.$(LUCI_TYPE)),$(LUCI_MENU.$(LUCI_TYPE)),$(LUCI_MENU.app))
   TITLE:=$(if $(LUCI_TITLE),$(LUCI_TITLE),LuCI $(LUCI_NAME) $(LUCI_TYPE))
   DEPENDS:=$(LUCI_DEPENDS)
+  VERSION:=$(PKG_SRC_VERSION)
   $(if $(LUCI_EXTRA_DEPENDS),EXTRA_DEPENDS:=$(LUCI_EXTRA_DEPENDS))
   $(if $(LUCI_PKGARCH),PKGARCH:=$(LUCI_PKGARCH))
 endef
@@ -236,6 +244,7 @@ define LuciTranslation
     HIDDEN:=1
     DEFAULT:=LUCI_LANG_$(2)||(ALL&&m)
     DEPENDS:=$(PKG_NAME)
+    VERSION:=$(PKG_PO_VERSION)
     PKGARCH:=all
   endef