The release bundles erts and 13 OTP applications from
lang/erlang-runtime28, and pkg-plist pinned each of their versioned
directory names. Six of the last eight plist commits were pure OTP
rename churn.
Derive the versions from the installed runtime at plist-generation time
instead. The package file list is unchanged: resolving the tokenized
plist with the versions this build staged reproduces the previous
pkg-plist, so no PORTREVISION bump is needed.
An erlang-runtime28 update now needs only a PORTREVISION bump. Note
this reads ${LOCALBASE}/lib/erlang28 rather than the staged release,
because generate-plist runs before do-install; it holds as long as the
release copies erts and the OTP applications unmodified.