Skip to content

fix: Linux .run installers bundle all icons/assets and install properly#49

Merged
JohnVictorCrown merged 2 commits into
masterfrom
fix/linux-run-installer-complete
Feb 12, 2026
Merged

fix: Linux .run installers bundle all icons/assets and install properly#49
JohnVictorCrown merged 2 commits into
masterfrom
fix/linux-run-installer-complete

Conversation

@kilo-code-bot

@kilo-code-bot kilo-code-bot Bot commented Feb 12, 2026

Copy link
Copy Markdown
Contributor

Summary

Linux .run self-extracting installers now produce complete installers that bundle all icons and assets, and properly install the application with desktop integration.

Problem

Previously, the .run installer only bundled a single icon (icon.png) and ran the launcher script directly when extracted — it didn't actually install anything to a permanent location or create desktop entries.

Changes

New files

  • scripts/linux-install.sh — Full installer script that:
    • Copies binary, launcher, icons, and Mesa libs to /opt/Water/
    • Creates .desktop entry in ~/.local/share/applications/
    • Installs XDG icons to ~/.local/share/icons/hicolor/ (48x48, 128x128, 256x256, scalable)
    • Creates /usr/local/bin/water symlink for PATH access
    • Updates icon cache and desktop database
    • Validates all required files before installation
  • scripts/linux-uninstall.sh — Clean uninstaller that removes all installed files

Modified files

  • Makefile (_bundle-linux-mesa target):
    • Bundles ALL icons: logo.png, logo-only.png, vscode.png into icons/ directory
    • Bundles install.sh into the .run archive
    • Validates all required assets exist before bundling (no silent fallbacks)
    • Verifies bundled contents before creating .run
    • .run now executes install.sh (not the launcher directly)
    • Prints full bundle contents for build verification
  • scripts/water-launcher.sh — Updated documentation to reflect new directory layout with icons/ directory

What the .run installer does when run

  1. Self-extracts to a temp directory
  2. Runs install.sh which:
    • Installs binary + launcher to /opt/Water/bin/ and /opt/Water/
    • Installs all icons to /opt/Water/icons/ and XDG icon directories
    • Installs Mesa fallback libs to /opt/Water/lib/
    • Creates ai.water.app.desktop with proper icon references
    • Creates /usr/local/bin/water symlink

Build safety

  • All icon/asset bundling steps fail hard if files are missing (no || true)
  • Pre-bundle and post-bundle validation checks
  • Binary is statically linked (libgcc/libstdc++) with only X11/OpenGL as dynamic deps

Built for stellar.foundation.us by Kilo for Slack

kilo-code-bot Bot and others added 2 commits February 12, 2026 18:35
…operly

- Add scripts/linux-install.sh: full installer that copies binary, icons,
  Mesa libs to /opt/Water, creates .desktop entry, installs XDG icons,
  and creates /usr/local/bin/water symlink
- Add scripts/linux-uninstall.sh: clean uninstaller
- Update Makefile _bundle-linux-mesa target to:
  - Bundle ALL icons (logo.png, logo-only.png, vscode.png) into icons/ dir
  - Bundle install.sh into the .run archive
  - Validate all required assets exist before bundling (no silent fallbacks)
  - Verify bundled contents before creating .run
  - Run install.sh (not launcher) when .run is executed
- Update water-launcher.sh with icons/ directory documentation
- No || true on critical icon/asset bundling steps
@JohnVictorCrown
JohnVictorCrown merged commit 38ed9ef into master Feb 12, 2026
2 checks passed
@JohnVictorCrown
JohnVictorCrown deleted the fix/linux-run-installer-complete branch February 12, 2026 20:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant