- packaging/make_artifacts.py:本地与 CI 共用的打包脚本 —— 版本取自 cargo metadata
(tag 交叉校验,不一致即失败)、按宿主判定槽位、Windows 裸 exe / UNIX tar.gz
(内含 LICENSE/NOTICE/README.md)、SHA256SUMS.txt;打包前跑 `ull --version` 断言版本;
tar 内 mtime/uid 归零 + gzip header mtime=0 → 同源构建 sha256 可复现
- packaging/README.md:产物矩阵与命名约定、版本唯一真相源、各平台运行时依赖、
软渲染兜底、release profile 取舍、**本机实测**体积与冒烟证据、合规与支持矩阵
- packaging/release-notes.md:GitHub Release 说明模板({{VERSION}}/{{SUMS}},
写清 Win10+ / macOS 12+ / Linux x64 支持矩阵)
- .github/workflows/release.yml:tag v* 触发四槽位矩阵 → 产物 + 重算 SHA256SUMS →
gh release create(pre-release 默认开,workflow_dispatch 只构建);Windows 用
+crt-static 并以 dumpbin 导入表把"单文件"做成硬门禁;归档内容自检 LICENSE/NOTICE/README
- Cargo.toml:release profile lto thin → fat(实测 GUI 16,366,080 → 14,595,584 B
= −10.8%,ull 7,572,992 → 6,157,824 B = −18.7%)
验证:cargo build --release 通过;GUI `--software-renderer --screenshot` 出 1180×760 PNG、
`ull --version` = 0.1.0;PE 导入表 33 个 DLL 全为系统库(无 VCRUNTIME/libwinpthread);
cargo deny licenses/bans/sources ok;workflow 用 python yaml 解析自检。
3.5 KiB
Unlucky Launcher {{VERSION}}
Rust-native single-file Minecraft launcher: Slint + Metro UI, built-in AI agent (chat / config edits / crash diagnosis) and an MCP server other agent tools can attach to. No WebView, no bundled runtime, no JRE download needed to start the launcher itself.
Downloads
| Platform | Asset | Notes |
|---|---|---|
| Windows 10/11 x64 | unlucky-launcher-{{VERSION}}-windows-x64.exe |
single exe, double-click to run |
| Linux x64 (X11/Wayland) | unlucky-launcher-{{VERSION}}-linux-x64.tar.gz |
single binary inside, no installer |
| macOS 12+ Apple Silicon | unlucky-launcher-{{VERSION}}-macos-arm64.tar.gz |
single binary inside, no installer |
| macOS 12+ Intel | unlucky-launcher-{{VERSION}}-macos-x64.tar.gz |
single binary inside, no installer |
LICENSE, NOTICE and README.md ship in every archive; on Windows they are attached to
this release next to the .exe (a lone exe cannot carry them), so the license terms travel
with the download on every platform.
Support matrix
| Platform | Level | Runtime requirements |
|---|---|---|
| Windows 10/11 x64 | first class | nothing beyond the OS (UCRT is part of Win10+) |
| macOS 12+ (arm64 / x64) | first class | nothing; unsigned build, see Gatekeeper note |
| Linux x64, X11 | first class | libxkbcommon, fontconfig, libGL (or software renderer), libxcb |
| Linux x64, Wayland | supported | wayland-client, libxkbcommon, plus the X11 set for XWayland apps |
| Windows 8.1/8/7 | unsupported | baseline was raised to Win10 (decision D21) |
Install
Windows — put the .exe anywhere and run it. Portable data lives next to the exe when a
portable.marker file is present, otherwise under %APPDATA%.
Linux
tar -xzf unlucky-launcher-{{VERSION}}-linux-x64.tar.gz
cd unlucky-launcher-{{VERSION}}-linux-x64
chmod +x unlucky-launcher && ./unlucky-launcher
macOS
tar -xzf unlucky-launcher-{{VERSION}}-macos-arm64.tar.gz
cd unlucky-launcher-{{VERSION}}-macos-arm64
xattr -d com.apple.quarantine unlucky-launcher # unsigned build, Gatekeeper quarantine
chmod +x unlucky-launcher && ./unlucky-launcher
No GPU? Software renderer
The UI prefers OpenGL (femtovg) and falls back to Slint's CPU renderer when no usable GL driver is present. Force it on any machine with:
unlucky-launcher --software-renderer # or: SLINT_BACKEND=winit-software unlucky-launcher
Verify the download
# Linux / macOS
sha256sum -c SHA256SUMS.txt --ignore-missing
# Windows (PowerShell)
Get-FileHash .\unlucky-launcher-{{VERSION}}-windows-x64.exe -Algorithm SHA256
Checksums
{{SUMS}}
Known limitations of this build
- Microsoft (MSA) account login depends on a Mojang app-id whitelist that is still pending; until it is granted, use offline accounts or authlib-injector (the 403 is reported with a readable diagnostic instead of a silent failure).
- Binaries are not code-signed / notarized yet: Windows SmartScreen and macOS Gatekeeper warn on first launch. Checksums above are the integrity reference for now.
- macOS ships the bare binary (single-file promise), not a
.appbundle: no Dock icon or Finder double-click — launch it from a terminal.
License
Apache-2.0. Third-party notices (including Slint's Royalty-Free 2.0 track) are in NOTICE.
Unlucky Launcher is not affiliated with Mojang or Microsoft; it does not ship game files.
Made with Slint — Slint Royalty-Free 2.0 track, unmodified.