Page MenuHomeFreeBSD

release: Fix dependency ordering
ClosedPublic

Authored by cperciva on Oct 7 2025, 11:14 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Nov 24, 7:36 PM
Unknown Object (File)
Sun, Nov 16, 5:39 PM
Unknown Object (File)
Sat, Nov 15, 6:16 AM
Unknown Object (File)
Oct 19 2025, 8:00 PM
Unknown Object (File)
Oct 10 2025, 4:31 PM
Unknown Object (File)
Oct 10 2025, 4:31 PM
Unknown Object (File)
Oct 10 2025, 4:31 PM
Unknown Object (File)
Oct 10 2025, 10:49 AM
Subscribers

Details

Summary
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
MFC after:      1 day
Sponsored by:   https://www.patreon.com/cperciva
Differential Revision:  https://reviews.freebsd.org/D52972

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable