Closes the remaining artifact rows of the final audit (docs/rewrite/notes/final-Z4.md): - webgen: config.mdx, actions.mdx, commands.mdx (byte-identical to Zig's webgen output once its missing stdout flush is added) - `just install-lib`: libghostty (+ ghostty.h, modulemap) and libghostty-vt with versioned symlinks, headers and libghostty-vt.pc - scripts/xcframework.sh: per-arch builds, lipo and xcodebuild -create-xcframework for GhosttyKit (dry-run verified only) - `just install` builds --profile production so the installed app id is com.mitchellh.ghostty; other profiles install the -debug id/name - `just update-translations`: xgettext/msgmerge pipeline; extracted msgids equal upstream's .pot (found and fixed an untranslated string in the child-exited banner) - `just dist` / `distcheck`: versioned source tarball with VERSION and a prebuilt GTK resource bundle - Windows: icon, version resource and DPI/common-controls manifest embedded via embed-resource, GUI subsystem Test Plan: - just install-lib /tmp/p release all && pkg-config --cflags \ --libs /tmp/p/share/pkgconfig/libghostty-vt.pc - just distcheck
2.7 KiB
2.7 KiB
Z4: artifact and distribution gaps
- Webdata (
GhosttyWebdata.zig):ghostty-build-data +webgen-{config,actions,commands}(src/webdata.rs);just webdata,just install-webdata PREFIX. Byte-identical to Zig 0.15.2 output of a copy whose webgen mains gainedstdout.flush(). Upstream's mains never flush the 2048-byte buffer, so the real Zig files are truncated. Rust emits the complete files. Also+versionmode (build-info version string). - libghostty / vt install:
scripts/install-lib.sh,just install-lib PREFIX PROFILE WHAT;just installinstalls vt (as Zig's default install does). Layout, headers andlibghostty-vt.pcmatch the Zig output (soname.so.0set via patchelf, symlinks.so,.so.0,.so.0.1.0). libghostty addsghostty.h+module.modulemap. - XCFramework:
scripts/xcframework.sh/just xcframework(cargo staticlib per target,lipo -create,xcodebuild -create-xcframework -headers crates/ghostty-lib/include, iOS + simulator slices). Verified only withDRY_RUN=1: no macOS tools or SDK here; the darwin cross build was not attempted. - App id:
just installdefaults to--profile production(ReleaseFast); other profiles get-debugid/name, like Zig Debug/ReleaseSafe. Desktop, D-Bus, systemd and metainfo files use it. DESTDIR install checked for production (com.mitchellh.ghostty, build mode .ReleaseFast) and release (-debug). - i18n:
scripts/update-translations.sh/just update-translations(xgettext with the same flags +--keyword=trover blueprints and apprt-gtk Rust sources, py.pot, merge, msgmerge). msgids identical to upstream's .pot. Found and fixed:surface_child_exited.rsdidn't translate "Command succeeded/failed" (nowtr). Script accepts an OUT_DIR; po/ was not rewritten in place (location comments would churn). - Dist:
scripts/dist.sh,just dist/just distcheck:ghostty-<version>.tar.gzwithVERSIONand the prebuiltcrates/ghostty-apprt-gtk/dist/ghostty.gresource(used by apprt-gtk/build.rs outside a git checkout, like Zig'sghostty_resources.c/h). Framedata is already committed. As in Zig, VERSION is for packagers (GHOSTTY_VERSION_STRING). Usesgit ls-files(includes uncommitted files), notgit archive HEAD. distcheck passes. - Windows:
dist/windows/{ghostty.rc,ico,manifest}copied; rootbuild.rsusesembed-resourceplus the GUI subsystem. The root binary can't cargo-check for Windows (GTK/wayland deps), so verified with a scratch crate using the same build.rs for x86_64-pc-windows-gnu: PE subsystem 2, manifest (PerMonitorV2, Common-Controls 6) present. - Touched outside lane: apprt-gtk
build.rs(prebuilt gresource) andsurface_child_exited.rs(tr).