git: 458dc7f30310 - main - pkgbase: fix incremental generation of packages
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 10 Oct 2024 06:49:23 UTC
The branch main has been updated by bapt:
URL: https://cgit.FreeBSD.org/src/commit/?id=458dc7f30310394a571fd4f2f5368acd48684652
commit 458dc7f30310394a571fd4f2f5368acd48684652
Author: Baptiste Daroussin <bapt@FreeBSD.org>
AuthorDate: 2024-10-08 06:53:45 +0000
Commit: Baptiste Daroussin <bapt@FreeBSD.org>
CommitDate: 2024-10-10 06:48:28 +0000
pkgbase: fix incremental generation of packages
Replace the regex trying to catch the branch name of the existing
repository which was too naive with simpler glob matching.
As a result the only case when we only use the new packages are:
moving from alpha to beta
moving from beta to rc
moving from rc to release
changing the major version number for the main git branch
PR: 281393
Differential Revision: D46874
---
Makefile.inc1 | 46 ++++++++++++++++++++++++++++++++--------------
1 file changed, 32 insertions(+), 14 deletions(-)
diff --git a/Makefile.inc1 b/Makefile.inc1
index 557bbc825625..55d49d5760f2 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -571,28 +571,27 @@ VERSION= FreeBSD ${_REVISION}-${_BRANCH:C/-p[0-9]+$//} ${TARGET_ARCH} ${SRCRELDA
.endif
MAJOR_REVISION= ${_REVISION:R}
-.if !defined(PKG_VERSION)
_PKG_REVISION= ${_REVISION}
_STRTIMENOW= %Y%m%d%H%M%S
_TIMENOW= ${_STRTIMENOW:gmtime}
BRANCH_EXT=
.if ${_BRANCH:MCURRENT*} || ${_BRANCH:MSTABLE*} || ${_BRANCH:MPRERELEASE*}
-_PKG_REVISION= ${MAJOR_REVISION}
-BRANCH_EXT= snap
-EXTRA_REVISION= .${BRANCH_EXT}${_TIMENOW}
+_PKG_REVISION:= ${MAJOR_REVISION}
+BRANCH_EXT= ${MAJOR_REVISION}.snap
+EXTRA_REVISION= .snap${_TIMENOW}
.elif ${_BRANCH:MALPHA*}
-BRANCH_EXT= a${_BRANCH:C/ALPHA([0-9]+).*/\1/}
-EXTRA_REVISION= .${BRANCH_EXT}.${_TIMENOW}
+BRANCH_EXT= alpha
+EXTRA_REVISION= .${_BRANCH:C/ALPHA([0-9]+).*/\1/}.${_TIMENOW}
.elif ${_BRANCH:MBETA*}
-BRANCH_EXT= b${_BRANCH:C/BETA([0-9]+).*/\1/}
-EXTRA_REVISION= .${BRANCH_EXT}.${_TIMENOW}
+BRANCH_EXT= beta
+EXTRA_REVISION= .${_BRANCH:C/BETA([0-9]+).*/\1/}.${_TIMENOW}
.elif ${_BRANCH:MRC*}
-BRANCH_EXT= rc${_BRANCH:C/RC([0-9]+).*/\1/}
-EXTRA_REVISION= .${BRANCH_EXT}.${_TIMENOW}
+BRANCH_EXT= rc
+EXTRA_REVISION= .rc${_BRANCH:C/RC([0-9]+).*/\1/}.${_TIMENOW}
.elif ${_BRANCH:M*-p*}
-BRANCH_EXT= p${_BRANCH:C/.*-p([0-9]+$)/\1/}
-EXTRA_REVISION= ${BRANCH_EXT}
+EXTRA_REVISION= p${_BRANCH:C/.*-p([0-9]+$)/\1/}
.endif
+.if !defined(PKG_VERSION)
PKG_VERSION:= ${_PKG_REVISION}${EXTRA_REVISION:C/[[:space:]]//g}
.endif
.endif # !defined(PKG_VERSION)
@@ -2040,7 +2039,26 @@ PKG_EXT= pkg
.if exists(${PKG_ABI_FILE}) && exists(${REPODIR}/${PKG_ABI})
PKG_VERSION_FROM!=/usr/bin/readlink ${REPODIR}/${PKG_ABI}/latest
PKG_VERSION_FROM_DIR= ${REPODIR}/${PKG_ABI}/${PKG_VERSION_FROM}
-BRANCH_EXT_FROM= ${PKG_VERSION_FROM:C/^[^[:alpha:]]+p?([[:alpha:]]*)[0-9]+$/\1/}
+# Determine the name of the branch base on the version
+# X.bY => beta
+# X.aY => alpha
+# X.rcY => rc
+# X.snap => snap
+# all others mean release
+#
+# This will be used when comparing to the branch that we are building
+# to decide if we keep old packages or new packages when only their
+# version differs
+BRANCH_EXT_FROM=
+.if ${PKG_VERSION_FROM:M*.snap*}
+BRANCH_EXT_FROM= ${PKG_VERSION_FROM:C/.snap.*$//}.snap
+.elif ${PKG_VERSION_FROM:M*.b*}
+BRANCH_EXT_FROM= beta
+.elif ${PKG_VERSION_FROM:M*.rc*}
+BRANCH_EXT_FROM= rc
+.elif ${PKG_VERSION_FROM:M*.a*}
+BRANCH_EXT_FROM= alpha
+.endif
.else
PKG_VERSION_FROM=
PKG_VERSION_FROM_DIR=
@@ -2081,7 +2099,7 @@ real-update-packages: stage-packages .PHONY
continue; \
fi ; \
newsum=$$(pkg query -F ${REPODIR}/${PKG_ABI}/${PKG_VERSION}/$${newpkgname} '%X') ; \
- if [ "${BRANCH_EXT_FROM}" == "${BRANCH_EXT:C/[0-9]+$//}" -a "$${oldsum}" == "$${newsum}" ]; then \
+ if [ "${BRANCH_EXT_FROM}" = "${BRANCH_EXT}" -a "$${oldsum}" = "$${newsum}" ]; then \
echo "==> Keeping old ${PKG_NAME_PREFIX}-$${pkgname}-${PKG_VERSION_FROM}.${PKG_EXT}" ; \
rm ${REPODIR}/${PKG_ABI}/${PKG_VERSION}/$${newpkgname} ; \
cp $${pkg} ${REPODIR}/${PKG_ABI}/${PKG_VERSION} ; \