Consolidate dedicated server release notices

Source licenses, attribution, provenance, and font notices from the pinned game checkout while retaining installer compatibility with earlier manifest formats.
This commit is contained in:
Alexander Sellite 2026-08-12 22:12:16 -04:00
parent 0f1d931a7b
commit 220cfd2354
8 changed files with 92 additions and 421 deletions

View file

@ -91,12 +91,39 @@ for filename in NETfishingServer.x86_64 NETfishingServer.pck BUILD_INFO SHA256SU
exit 1
fi
done
for filename in \
GPL-3.0-or-later.txt \
ASSET-LICENSE.md \
THIRD-PARTY-NOTICES.md \
TRADEMARKS.md \
CREDITS.md; do
manifest_value() {
local key="$1"
awk -F= -v key="${key}" '$1 == key {sub(/^[^=]*=/, ""); print; exit}' \
"${payload_dir}/BUILD_INFO"
}
manifest_version="$(manifest_value manifest_version)"
case "${manifest_version}" in
1|2)
required_notice_files=(
GPL-3.0-or-later.txt
ASSET-LICENSE.md
THIRD-PARTY-NOTICES.md
TRADEMARKS.md
CREDITS.md
)
;;
3)
required_notice_files=(
GPL-3.0-or-later.txt
ASSET-LICENSE.md
ATTRIBUTION.md
TRADEMARKS.md
Tuffy-LICENSE.txt
Seattle-Avenue-LICENSE.txt
)
;;
*)
echo "Unsupported BUILD_INFO format." >&2
exit 1
;;
esac
for filename in "${required_notice_files[@]}"; do
if [[ ! -f "${payload_dir}/licenses/${filename}" ]]; then
echo "Archive is missing required notice licenses/${filename}." >&2
exit 1
@ -108,20 +135,10 @@ if [[ ! -f "${payload_dir}/SOURCE-CODE.md" ]]; then
fi
(cd -- "${payload_dir}" && sha256sum -c SHA256SUMS)
manifest_value() {
local key="$1"
awk -F= -v key="${key}" '$1 == key {sub(/^[^=]*=/, ""); print; exit}' \
"${payload_dir}/BUILD_INFO"
}
manifest_version="$(manifest_value manifest_version)"
game_version="$(manifest_value game_version)"
game_commit="$(manifest_value game_commit)"
packaging_commit="$(manifest_value packaging_commit)"
platform="$(manifest_value platform)"
if [[ "${manifest_version}" != "1" && "${manifest_version}" != "2" ]]; then
echo "Unsupported BUILD_INFO format." >&2
exit 1
fi
if [[ ! "${game_version}" =~ ^[A-Za-z0-9][A-Za-z0-9._-]*$ ]]; then
echo "Invalid game version in BUILD_INFO." >&2
exit 1
@ -130,7 +147,7 @@ if [[ ! "${game_commit}" =~ ^[0-9a-f]{40}$ ]]; then
echo "Invalid game commit in BUILD_INFO." >&2
exit 1
fi
if [[ "${manifest_version}" == "2" \
if [[ "${manifest_version}" != "1" \
&& ! "${packaging_commit}" =~ ^[0-9a-f]{40}$ ]]; then
echo "Invalid packaging commit in BUILD_INFO." >&2
exit 1
@ -158,12 +175,7 @@ else
install -m 0444 "${payload_dir}/SHA256SUMS" "${release_stage}/"
install -m 0444 "${payload_dir}/SOURCE-CODE.md" "${release_stage}/"
install -d -m 0755 "${release_stage}/licenses"
for filename in \
GPL-3.0-or-later.txt \
ASSET-LICENSE.md \
THIRD-PARTY-NOTICES.md \
TRADEMARKS.md \
CREDITS.md; do
for filename in "${required_notice_files[@]}"; do
install -m 0444 "${payload_dir}/licenses/${filename}" \
"${release_stage}/licenses/${filename}"
done