git: b6f69c39999b - main - release: Fix dependency ordering
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 08 Oct 2025 04:42:15 UTC
The branch main has been updated by cperciva:
URL: https://cgit.FreeBSD.org/src/commit/?id=b6f69c39999bfb85af262363b4fe22edc80027d7
commit b6f69c39999bfb85af262363b4fe22edc80027d7
Author: Colin Percival <cperciva@FreeBSD.org>
AuthorDate: 2025-10-07 20:48:06 +0000
Commit: Colin Percival <cperciva@FreeBSD.org>
CommitDate: 2025-10-08 04:42:10 +0000
release: Fix dependency ordering
The 'make release' command triggers some sub-builds, in particular
'real-release' (which builds install images) and 'vm-release' (which
builds VM images). These both now depend on pkgbase-repo.
Unfortunately for historical reasons 'make real-release' has used a
recursive make instead of proper make dependencies; this results in
the pkgbase-repo target being invoked twice since the recursive make
does not have any awareness of the targets being run by the parent
make command. Since the pkgbase-repo target starts by creating the
pkgbase-repo directory, the second make command incorrectly assumes
that target has already been built; this showed up in 15.0-ALPHA5
builds with pkgbase-repo.tar being empty as it was created after the
pkgbase-repo directory was created by before that directory had been
populated.
Change
real-release:
make obj
make ${RELEASE_TARGETS}
to a single line
real-release: obj .WAIT ${RELEASE_TARGETS}
in order to handle dependency deduplication properly while keeping
the intended behaviour that "obj" completes before ${RELEASE_TARGETS}.
Diagnosed by: jrtc27, emaste
Reviewed by: emaste
MFC after: 1 day
Sponsored by: https://www.patreon.com/cperciva
Differential Revision: https://reviews.freebsd.org/D52972
---
release/Makefile | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/release/Makefile b/release/Makefile
index 12f5114f8b22..13532097d56c 100644
--- a/release/Makefile
+++ b/release/Makefile
@@ -448,9 +448,7 @@ release: real-release vm-release cloudware-release oci-release
release-done:
touch release
-real-release:
- ${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} obj
- ${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} ${RELEASE_TARGETS}
+real-release: obj .WAIT ${RELEASE_TARGETS}
install: release-install vm-install oci-install .WAIT cloud-install