scripts: make-manifest.py drops launcher exe from files list #6
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
make-manifest.pycurrently stores the launcher file only under the top-levellauncherfield of the manifest and excludes it from thefilesarray.The launcher-side orchestrator (jann/metin-launcher
UpdateOrchestrator) only iteratesmanifest.fileswhen downloading blobs — it never consults thelauncherfield for a download action. Result: the launcher exe (e.g.Metin2.exe) is never fetched, the install dir is left without the client binary, andGameProcess.Launchlogsgame executable not found.Hit this during today's m2pack-full release: had to post-process every signed manifest by reinjecting the launcher entry into files before publish.
Reproduction
python3 scripts/make-manifest.py --source /path/to/client --launcher Metin2.exe --out manifest.jsonjq '.files | map(select(.path == "Metin2.exe")) | length' manifest.json→0Fix options
filesinwalk_clientbefore returning (and keep thelauncherfield for spawn-time metadata).manifest.launcheron a hash mismatch.The first option is simpler and keeps the orchestrator contract ("files lists every blob") honest. Opening as a blocker for the next clean-pipeline release.
Workaround currently in use: the release wrapper patches the JSON with a second python pass that sorts the launcher entry into files and re-signs with
sign-manifest.py.