Build/Build kJams script: Difference between revisions
remove leftover stub templates; depot keeps only the .bat files |
add sugarbear WinAppHelper script; keep bobina as manual recipe |
||
| Line 76: | Line 76: | ||
<code>build.bat</code> picks VS 2019 on <code>LUNA-PC</code> and VS 2022 elsewhere, then runs <code>win_build.py</code>. | <code>build.bat</code> picks VS 2019 on <code>LUNA-PC</code> and VS 2022 elsewhere, then runs <code>win_build.py</code>. | ||
== | == Sugarbear (taurus-pc, scripted) == | ||
The three taurus-pc stubs are created on '''sugarbear''' by: | |||
# On | <pre> | ||
/bin/bash /Volumes/Developer/depot/kJams/Development/xplat/python/create_sugarbear_winapphelpers.sh --dry-run | |||
/bin/bash /Volumes/Developer/depot/kJams/Development/xplat/python/create_sugarbear_winapphelpers.sh | |||
</pre> | |||
That copies the live Parallels '''Command Prompt''' app for taurus-pc (Helper Version 27 as of 2026-09) and points <code>APP Path</code> at the bats in the table. Precise recipe: depot <code>xplat/python/create_sugarbear_winapphelpers.md</code>. | |||
taurus-pc must be running. Do not run the script on taurus, pandora, or bobina. The stubs live on sugarbear's disk at <code>.../xplat/proj/win/_scripts/</code> — that is the path <code>open</code> uses. It is not pandora's depot and not a substitute for <code>p4 sync</code> on taurus. | |||
Bobina is not scripted: Parallels there is version-locked for luna. | |||
== Recipe (bobina / luna-pc, one stub, manual) == | |||
Do this '''on bobina''' for <code>Build kJams luna-pc.app</code>. luna-pc must be running and logged into the GUI session you want the build to use. | |||
# On bobina, open the Parallels "Windows applications" folder for '''luna-pc'''. | |||
## If you cannot find it: Parallels → Configure → Options → Applications → enable "Show Windows applications folder in Dock". Dock icon → Reveal in Finder. | ## If you cannot find it: Parallels → Configure → Options → Applications → enable "Show Windows applications folder in Dock". Dock icon → Reveal in Finder. | ||
# Copy '''Command Prompt''' to the Desktop. | # Copy '''Command Prompt''' to the Desktop. | ||
| Line 91: | Line 106: | ||
# Edit <code>Contents/Resources/AppParams.pva</code>: set <code>APP Path</code> (or <code>App Path</code>) to the same <code>Z:\...</code> bat path. Confirm <code>VM Name</code> is luna-pc or taurus-pc as appropriate. | # Edit <code>Contents/Resources/AppParams.pva</code>: set <code>APP Path</code> (or <code>App Path</code>) to the same <code>Z:\...</code> bat path. Confirm <code>VM Name</code> is luna-pc or taurus-pc as appropriate. | ||
# Move the finished <code>.app</code> into <code>/Volumes/Developer/depot/kJams/Development/xplat/proj/win/_scripts/</code> (same path on the host via the Developer share). | # Move the finished <code>.app</code> into <code>/Volumes/Developer/depot/kJams/Development/xplat/proj/win/_scripts/</code> (same path on the host via the Developer share). | ||
# | # You only need this once on bobina (<code>Build kJams luna-pc.app</code>). sugarbear's three stubs come from the script above, not from this copy-Command-Prompt list. | ||
== Hop (what taurus actually does) == | == Hop (what taurus actually does) == | ||
| Line 105: | Line 119: | ||
* Depot docs: <code>Development/documentation/01_Infrastructure_Overview.md</code> | * Depot docs: <code>Development/documentation/01_Infrastructure_Overview.md</code> | ||
* <code>Development/xplat/python/create_sugarbear_winapphelpers.md</code> | |||
* <code>CF/python/xplat.py</code> — <code>guest_to_host()</code>, <code>get_win_build_apphelper_name()</code> | * <code>CF/python/xplat.py</code> — <code>guest_to_host()</code>, <code>get_win_build_apphelper_name()</code> | ||
Revision as of 20:31, 7 September 2026
The coordinator (taurus, a Mac VM on sugarbear) cannot SSH into a Windows guest and land in the current GUI login session. Parallels "Windows Apps" (WinAppHelper stubs) are Mac .app bundles that, when opened on the hardware host, launch a .bat inside that host's Windows guest session.
Create each stub on the hardware that owns the VM (bobina for luna-pc, sugarbear for taurus-pc). Do not create them on pandora. The VM UUID is baked into AppParams.pva; a stub made on the wrong Mac will not talk to the build guest.
Store finished stubs here (this is what Python opens):
xplat/proj/win/_scripts/
Machine map
| Role | Name | What it is |
|---|---|---|
| Dev workstation | pandora | Dave's personal Mac. Not a release-build host. Qt Creator / MCP only. |
| 32-bit hardware | bobina | Intel Mac. Hosts luna + luna-pc. Perpetual only. |
| 32-bit Mac guest | luna | Mojave VM on bobina. Coordinator SSHes here directly (open publish.command).
|
| 32-bit Windows guest | luna-pc | Windows 10 VM on bobina. Reached only by opening a WinAppHelper on bobina. |
| 64-bit hardware | sugarbear | ARM Mac. Hosts taurus + taurus-pc. Perpetual + subscription. USB code-sign token lives on taurus-pc. |
| Coordinator / 64-bit Mac guest | taurus | Mac VM on sugarbear. is_initiator() is hardcoded to this host. Launches luna, luna-pc, taurus-pc, and a local Mac worker.
|
| 64-bit Windows guest | taurus-pc | Windows VM on sugarbear. Win64 compile + USB signing for both 32- and 64-bit. |
Apps Python opens
Names are the Windows guest that runs the work. Python builds them in xplat.get_win_build_apphelper_name() / get_win_codesign_apphelper_name().
| Bundle name (exact) | Create / open on
|
Target VM | App Path
|
|---|---|---|---|
Build kJams luna-pc.app
|
bobina | luna-pc | Z:\depot\kJams\Development\xplat\proj\win\_scripts\build.bat
|
Build kJams taurus-pc.app
|
sugarbear | taurus-pc | Z:\depot\kJams\Development\xplat\proj\win\_scripts\build.bat
|
code sign taurus-pc.app
|
sugarbear | taurus-pc | Z:\depot\kJams\Development\xplat\proj\win\_scripts\code_sign_app_taurus.bat
|
code sign paths taurus-pc.app
|
sugarbear | taurus-pc | Z:\depot\kJams\Development\xplat\proj\win\_scripts\code_sign_paths_taurus.bat
|
build.bat picks VS 2019 on LUNA-PC and VS 2022 elsewhere, then runs win_build.py.
Sugarbear (taurus-pc, scripted)
The three taurus-pc stubs are created on sugarbear by:
/bin/bash /Volumes/Developer/depot/kJams/Development/xplat/python/create_sugarbear_winapphelpers.sh --dry-run /bin/bash /Volumes/Developer/depot/kJams/Development/xplat/python/create_sugarbear_winapphelpers.sh
That copies the live Parallels Command Prompt app for taurus-pc (Helper Version 27 as of 2026-09) and points APP Path at the bats in the table. Precise recipe: depot xplat/python/create_sugarbear_winapphelpers.md.
taurus-pc must be running. Do not run the script on taurus, pandora, or bobina. The stubs live on sugarbear's disk at .../xplat/proj/win/_scripts/ — that is the path open uses. It is not pandora's depot and not a substitute for p4 sync on taurus.
Bobina is not scripted: Parallels there is version-locked for luna.
Recipe (bobina / luna-pc, one stub, manual)
Do this on bobina for Build kJams luna-pc.app. luna-pc must be running and logged into the GUI session you want the build to use.
- On bobina, open the Parallels "Windows applications" folder for luna-pc.
- If you cannot find it: Parallels → Configure → Options → Applications → enable "Show Windows applications folder in Dock". Dock icon → Reveal in Finder.
- Copy Command Prompt to the Desktop.
- Rename the copy to the exact bundle name from the table (without
.appif Finder hides it), e.g.Build kJams luna-pc. - Right-click → Show Package Contents.
- Edit
Contents/Info.plist:CFBundleGetInfoStringmust end with theApp Pathfrom the table (theZ:\...\ _scripts\....batline).CFBundleName= the exact bundle name without.app.
- Edit
Contents/Resources/English.lproj/InfoPlist.strings: set bothCFBundleNameandCFBundleDisplayNameto that same name. - Edit
Contents/Resources/AppParams.pva: setAPP Path(orApp Path) to the sameZ:\...bat path. ConfirmVM Nameis luna-pc or taurus-pc as appropriate. - Move the finished
.appinto/Volumes/Developer/depot/kJams/Development/xplat/proj/win/_scripts/(same path on the host via the Developer share). - You only need this once on bobina (
Build kJams luna-pc.app). sugarbear's three stubs come from the script above, not from this copy-Command-Prompt list.
Hop (what taurus actually does)
- Win32 build: taurus SSHes to bobina and
opensBuild kJams luna-pc.app→ luna-pc runsbuild.bat. - Win64 build: taurus SSHes to sugarbear and
opensBuild kJams taurus-pc.app→ taurus-pc runsbuild.bat. - USB code sign (from luna-pc or taurus Mac): SSH to sugarbear and
opencode sign taurus-pc.apporcode sign paths taurus-pc.app. - Mac32: taurus SSHes to luna and
openspublish.command/rogue.command(no WinAppHelper). - Mac64: taurus spawns a local Terminal worker with
KJAMS_WORKER=1.
See also
- Depot docs:
Development/documentation/01_Infrastructure_Overview.md Development/xplat/python/create_sugarbear_winapphelpers.mdCF/python/xplat.py—guest_to_host(),get_win_build_apphelper_name()