diff --git a/build_patches/openwrt/0021-rules-add-AUTORELEASE-and-COMMITCOUNT-variables.patch b/build_patches/openwrt/0021-rules-add-AUTORELEASE-and-COMMITCOUNT-variables.patch new file mode 100644 index 00000000..faf37102 --- /dev/null +++ b/build_patches/openwrt/0021-rules-add-AUTORELEASE-and-COMMITCOUNT-variables.patch @@ -0,0 +1,82 @@ +From: Paul Spooren +Date: Fri, 1 Jan 2021 14:02:12 -1000 +Subject: rules: add AUTORELEASE and COMMITCOUNT variables + +The lack of bumped PKG_RELEASE variables is a recurring theme on the +mailing list and in GitHub comments. This costs precious review time, +a rare good within the OpenWrt project. + +Instead of relying on a manually set PKG_RELEASE this commit adds a +`commitcount` function that uses the number of Git commits to determine +the release. The function is called via the variables `$(AUTORELEASE)` +or `$(COMMITCOUNT)`. The `PKG_RELEASE` variable can be set to either of +the two. + +- $(AUTORELEASE): + +Release is automagically set to the number of commits since the last +commit containing either ": update to " or ": bump to ". + +Example below: + + $ git log packages/foobar/ + foobar: fixup file location + foobar: disable docs + foobar: bump to 5.3.2 + foobar: fixup copyright + +Resulting package name: foobar_5.3.2-3_all.ipk, two package changes +since the last upstream version change, using a 1 based counter. + +- $(COMMITCOUNT): + +For non-traditional versioning (x.y.z), most prominent `base-files`, +this variable contains the total number of package commits. + +The new functionality can also be used by other feeds like packages.git. + +In case no build information is available, e.g. when using release +tarballs, the SOURCE_DATE_EPOCH is used to have a reproducible release +identifier. + +Suggested-by: Daniel Golle +Signed-off-by: Paul Spooren +(cherry picked from commit 9ae3c6f94c616cfbf854d3ec749c7fafc9893942) + +diff --git a/rules.mk b/rules.mk +index 41ed9bafd01b458a1ff3bf7b7b43cc6c48cca845..7c1f39ccf4023601a7647f4eaf648b6392f480b9 100644 +--- a/rules.mk ++++ b/rules.mk +@@ -404,6 +404,32 @@ endef + # file extension + ext=$(word $(words $(subst ., ,$(1))),$(subst ., ,$(1))) + ++# Count Git commits of a package ++# $(1) => if non-empty: count commits since last ": [uU]pdate to " or ": [bB]ump to " in commit message ++define commitcount ++$(shell \ ++ if git log -1 >/dev/null 2>/dev/null; then \ ++ if [ -n "$(1)" ]; then \ ++ last_bump="$$(git log --pretty=format:'%h %s' . | \ ++ grep --max-count=1 -e ': [uU]pdate to ' -e ': [bB]ump to ' | \ ++ cut -f 1 -d ' ')"; \ ++ fi; \ ++ if [ -n "$$last_bump" ]; then \ ++ echo -n $$(($$(git rev-list --count "$$last_bump..HEAD" .) + 1)); \ ++ else \ ++ echo -n $$(($$(git rev-list --count HEAD .) + 1)); \ ++ fi; \ ++ else \ ++ secs="$$(($(SOURCE_DATE_EPOCH) % 86400))"; \ ++ date="$$(date --utc --date="@$(SOURCE_DATE_EPOCH)" "+%y%m%d")"; \ ++ printf '%s.%05d' "$$date" "$$secs"; \ ++ fi; \ ++) ++endef ++ ++COMMITCOUNT = $(if $(DUMP),,$(call commitcount)) ++AUTORELEASE = $(if $(DUMP),,$(call commitcount,1)) ++ + all: + FORCE: ; + .PHONY: FORCE diff --git a/build_patches/openwrt/0022-rules-fix-COMMITCOUNT-logic.patch b/build_patches/openwrt/0022-rules-fix-COMMITCOUNT-logic.patch new file mode 100644 index 00000000..f70824d8 --- /dev/null +++ b/build_patches/openwrt/0022-rules-fix-COMMITCOUNT-logic.patch @@ -0,0 +1,34 @@ +From: Paul Spooren +Date: Tue, 26 Jan 2021 17:16:36 -1000 +Subject: rules: fix COMMITCOUNT logic + +The newly added $(COMMITCOUNT) variable was wrongly increased by plus +one. The addition should have been only added to $(AUTORELEASE) as +OpenWrt traditionally starts counting at one rather than zero. + +$(AUTORELEASE) counts the commits since the last bump, which is zero on +the version bump commit itself. + +This commit increases $(AUTORELEASE) by one while leaving $(COMMITCOUNT) +as is. + +The base-files package is the only package using $(COMMITCOUNT) so far +and requires a pseudo commit to keep the PKG_RELEASE correct. A non +functional change (Copyright bump) is done in the next commit. + +Signed-off-by: Paul Spooren +(cherry picked from commit 513f7171a3e509bba54ecc2af2d6259c7cbff221) + +diff --git a/rules.mk b/rules.mk +index 7c1f39ccf4023601a7647f4eaf648b6392f480b9..8bfc67fb2cd43e3ce4330fd28b398722858d3493 100644 +--- a/rules.mk ++++ b/rules.mk +@@ -417,7 +417,7 @@ $(shell \ + if [ -n "$$last_bump" ]; then \ + echo -n $$(($$(git rev-list --count "$$last_bump..HEAD" .) + 1)); \ + else \ +- echo -n $$(($$(git rev-list --count HEAD .) + 1)); \ ++ git rev-list --count HEAD .; \ + fi; \ + else \ + secs="$$(($(SOURCE_DATE_EPOCH) % 86400))"; \ diff --git a/build_patches/openwrt/0023-rules-fix-empty-COMMITCOUNT-AUTORELEASE.patch b/build_patches/openwrt/0023-rules-fix-empty-COMMITCOUNT-AUTORELEASE.patch new file mode 100644 index 00000000..e34bf02e --- /dev/null +++ b/build_patches/openwrt/0023-rules-fix-empty-COMMITCOUNT-AUTORELEASE.patch @@ -0,0 +1,39 @@ +From: Paul Spooren +Date: Thu, 28 Jan 2021 23:17:10 -1000 +Subject: rules: fix empty COMMITCOUNT/AUTORELEASE + +Packages that are in-tree only often lack a PKG_VERSION and only use the +PKG_RELEASE to mark changes. Using COMMITCOUNT/AUTORELEASE variables +causes an issue as both variables are empty during the metadata DUMP +phase. + +Instead of leaving these variables empty and causing an error message +like below, set the variables to 0 during dumping. On actual building +the variable is evaluated causing in a value above 0. + +ERROR: please fix package/utils/px5g-wolfssl/Makefile - \ + see logs/package/utils/px5g-wolfssl/dump.txt for details + +Makefile:48: *** Package/px5g-wolfssl is missing the VERSION field. Stop. + +Reported-by: Daniel Golle +Reported-by: Stijn Segers +Reported-by: Stijn Tintel +Signed-off-by: Paul Spooren +(cherry picked from commit ddab795b370da986149f8c8e6b3455bf9c1066fe) + +diff --git a/rules.mk b/rules.mk +index 8bfc67fb2cd43e3ce4330fd28b398722858d3493..ee586bf989498b564b4de03b10b68cf66506d3d5 100644 +--- a/rules.mk ++++ b/rules.mk +@@ -427,8 +427,8 @@ $(shell \ + ) + endef + +-COMMITCOUNT = $(if $(DUMP),,$(call commitcount)) +-AUTORELEASE = $(if $(DUMP),,$(call commitcount,1)) ++COMMITCOUNT = $(if $(DUMP),0,$(call commitcount)) ++AUTORELEASE = $(if $(DUMP),0,$(call commitcount,1)) + + all: + FORCE: ; diff --git a/src/packages/fff/fff-alfred-monitoring-proxy/Makefile b/src/packages/fff/fff-alfred-monitoring-proxy/Makefile index f2863c99..d1d650eb 100644 --- a/src/packages/fff/fff-alfred-monitoring-proxy/Makefile +++ b/src/packages/fff/fff-alfred-monitoring-proxy/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-alfred-monitoring-proxy -PKG_RELEASE:=4 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-alfred/Makefile b/src/packages/fff/fff-alfred/Makefile index 9da80f64..a4cfe034 100644 --- a/src/packages/fff/fff-alfred/Makefile +++ b/src/packages/fff/fff-alfred/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-alfred -PKG_RELEASE:=2 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-babeld/Makefile b/src/packages/fff/fff-babeld/Makefile index fef12122..d121f0b1 100644 --- a/src/packages/fff/fff-babeld/Makefile +++ b/src/packages/fff/fff-babeld/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-babeld -PKG_RELEASE:=7 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-batman-adv/Makefile b/src/packages/fff/fff-batman-adv/Makefile index 44feaae5..3f0cb76b 100644 --- a/src/packages/fff/fff-batman-adv/Makefile +++ b/src/packages/fff/fff-batman-adv/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-batman-adv -PKG_RELEASE:=4 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-boardname/Makefile b/src/packages/fff/fff-boardname/Makefile index 4d472605..ddcb7e0b 100644 --- a/src/packages/fff/fff-boardname/Makefile +++ b/src/packages/fff/fff-boardname/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-boardname -PKG_RELEASE:=8 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-config/Makefile b/src/packages/fff/fff-config/Makefile index 271cec54..bf1edd7f 100644 --- a/src/packages/fff/fff-config/Makefile +++ b/src/packages/fff/fff-config/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-config -PKG_RELEASE:=2 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-dhcp/Makefile b/src/packages/fff/fff-dhcp/Makefile index cb968948..049e8f92 100644 --- a/src/packages/fff/fff-dhcp/Makefile +++ b/src/packages/fff/fff-dhcp/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-dhcp -PKG_RELEASE:=5 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-fastd/Makefile b/src/packages/fff/fff-fastd/Makefile index 50fb34b5..f16d3bb3 100644 --- a/src/packages/fff/fff-fastd/Makefile +++ b/src/packages/fff/fff-fastd/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-fastd -PKG_RELEASE:=3 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-firewall/Makefile b/src/packages/fff/fff-firewall/Makefile index 75ecb6ce..534375ce 100644 --- a/src/packages/fff/fff-firewall/Makefile +++ b/src/packages/fff/fff-firewall/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-firewall -PKG_RELEASE:=6 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-hoods/Makefile b/src/packages/fff/fff-hoods/Makefile index 6bd460d3..35075322 100644 --- a/src/packages/fff/fff-hoods/Makefile +++ b/src/packages/fff/fff-hoods/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-hoods -PKG_RELEASE:=19 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-hoodutils/Makefile b/src/packages/fff/fff-hoodutils/Makefile index 59b8e29f..c8e21843 100644 --- a/src/packages/fff/fff-hoodutils/Makefile +++ b/src/packages/fff/fff-hoodutils/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-hoodutils -PKG_RELEASE:=2 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-layer3-config/Makefile b/src/packages/fff/fff-layer3-config/Makefile index 7a7588c0..8bcb9fce 100644 --- a/src/packages/fff/fff-layer3-config/Makefile +++ b/src/packages/fff/fff-layer3-config/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-layer3-config -PKG_RELEASE:=6 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-layer3/Makefile b/src/packages/fff/fff-layer3/Makefile index ce3d2002..1eeefe0b 100644 --- a/src/packages/fff/fff-layer3/Makefile +++ b/src/packages/fff/fff-layer3/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-layer3 -PKG_RELEASE:=8 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-network/Makefile b/src/packages/fff/fff-network/Makefile index f11c4469..6263b91b 100644 --- a/src/packages/fff/fff-network/Makefile +++ b/src/packages/fff/fff-network/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-network -PKG_RELEASE:=36 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-node/Makefile b/src/packages/fff/fff-node/Makefile index 6a6a6392..5c00c5b0 100644 --- a/src/packages/fff/fff-node/Makefile +++ b/src/packages/fff/fff-node/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-node -PKG_RELEASE:=3 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-ra/Makefile b/src/packages/fff/fff-ra/Makefile index 78cdefeb..8022fb62 100644 --- a/src/packages/fff/fff-ra/Makefile +++ b/src/packages/fff/fff-ra/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-ra -PKG_RELEASE:=3 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-random/Makefile b/src/packages/fff/fff-random/Makefile index 085588ca..1093c700 100644 --- a/src/packages/fff/fff-random/Makefile +++ b/src/packages/fff/fff-random/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-random -PKG_RELEASE:=3 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-simple-tc/Makefile b/src/packages/fff/fff-simple-tc/Makefile index e86005a0..536df454 100644 --- a/src/packages/fff/fff-simple-tc/Makefile +++ b/src/packages/fff/fff-simple-tc/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-simple-tc -PKG_RELEASE:=2 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-support/Makefile b/src/packages/fff/fff-support/Makefile index d7d255b6..c294da9c 100644 --- a/src/packages/fff/fff-support/Makefile +++ b/src/packages/fff/fff-support/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-support -PKG_RELEASE:=7 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-sysupgrade/Makefile b/src/packages/fff/fff-sysupgrade/Makefile index 4b99eac0..fc368b48 100644 --- a/src/packages/fff/fff-sysupgrade/Makefile +++ b/src/packages/fff/fff-sysupgrade/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-sysupgrade -PKG_RELEASE:=12 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-timeserver/Makefile b/src/packages/fff/fff-timeserver/Makefile index 61b91bec..2a35abe2 100644 --- a/src/packages/fff/fff-timeserver/Makefile +++ b/src/packages/fff/fff-timeserver/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-timeserver -PKG_RELEASE:=3 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-uradvd/Makefile b/src/packages/fff/fff-uradvd/Makefile index 41e639c8..0cf79741 100644 --- a/src/packages/fff/fff-uradvd/Makefile +++ b/src/packages/fff/fff-uradvd/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-uradvd -PKG_RELEASE:=2 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-vpn-select/Makefile b/src/packages/fff/fff-vpn-select/Makefile index 919ae6e9..46e66105 100644 --- a/src/packages/fff/fff-vpn-select/Makefile +++ b/src/packages/fff/fff-vpn-select/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-vpn-select -PKG_RELEASE:=5 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-web-hood/Makefile b/src/packages/fff/fff-web-hood/Makefile index dbb6e23a..612cabc9 100644 --- a/src/packages/fff/fff-web-hood/Makefile +++ b/src/packages/fff/fff-web-hood/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-web-hood -PKG_RELEASE:=2 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-web-ui/Makefile b/src/packages/fff/fff-web-ui/Makefile index c99a2823..011a3e8b 100644 --- a/src/packages/fff/fff-web-ui/Makefile +++ b/src/packages/fff/fff-web-ui/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-web-ui -PKG_RELEASE:=18 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-wireguard/Makefile b/src/packages/fff/fff-wireguard/Makefile index c39e68ef..b97e614a 100644 --- a/src/packages/fff/fff-wireguard/Makefile +++ b/src/packages/fff/fff-wireguard/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-wireguard -PKG_RELEASE:=5 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff-wireless/Makefile b/src/packages/fff/fff-wireless/Makefile index a1456f05..92c0d21d 100644 --- a/src/packages/fff/fff-wireless/Makefile +++ b/src/packages/fff/fff-wireless/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-wireless -PKG_RELEASE:=20 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk diff --git a/src/packages/fff/fff/Makefile b/src/packages/fff/fff/Makefile index 3dae0384..49157934 100644 --- a/src/packages/fff/fff/Makefile +++ b/src/packages/fff/fff/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff -PKG_RELEASE:=9 +PKG_RELEASE:=$(COMMITCOUNT) include $(INCLUDE_DIR)/package.mk