Skip to content

Conversation

@alfonsodg
Copy link
Contributor

Summary

This PR adds comprehensive Linux build support for Goose Desktop, enabling builds on various Linux distributions including Arch/Manjaro, Debian/Ubuntu, Fedora, and openSUSE.

Changes

  • Configure Electron Forge for Linux builds: Remove incompatible RPM maker and configure ZIP maker for Linux
  • Update documentation: Enhanced with Linux-specific build instructions
  • Add comprehensive Linux build guide: New with detailed instructions for multiple distributions
  • Add launcher script: to suppress common GLib warnings that don't affect functionality

Testing

  • ✅ Successfully built on Manjaro Linux (Arch-based)
  • ✅ Application runs without critical errors
  • ✅ Server backend properly embedded
  • ✅ ZIP distribution works correctly

Distribution Support

  • Debian/Ubuntu: DEB packages and ZIP distribution
  • Arch/Manjaro: ZIP distribution (RPM maker removed for compatibility)
  • Fedora/RHEL: ZIP distribution with proper dependencies
  • openSUSE: ZIP distribution support

Files Changed

  • : Configure makers for Linux compatibility
  • : Add Linux build instructions and system dependencies
  • : Comprehensive Linux build documentation
  • : Launcher script for improved user experience

This enables the Goose community to build and distribute the desktop application on Linux systems, expanding platform support beyond macOS and Windows.

- Configure Electron Forge for Linux builds (remove RPM, add ZIP)
- Update ui/desktop/README.md with Linux build instructions
- Add BUILDING_LINUX.md with detailed Linux build guide
- Add goose-gui.sh launcher script to suppress GLib warnings
- Support for Debian/Ubuntu, Arch/Manjaro, Fedora, and openSUSE

This enables building Goose Desktop on various Linux distributions
by providing proper system dependencies documentation and removing
incompatible RPM maker for Arch-based systems.
- Add Linux support while maintaining macOS and Windows compatibility
- Use platform-specific icon configuration
- Restore arch configuration for proper builds
Resolve conflicts in forge.config.ts:
- Add Linux support to ZIP maker while maintaining macOS and Windows compatibility
- Keep RPM maker from upstream for comprehensive Linux package support
- Use platform-specific icon configuration (PNG for Linux, ICO for others)
- Preserve arch configuration for proper builds

This ensures comprehensive Linux build support while maintaining compatibility
with existing macOS and Windows build processes.
Copy link
Collaborator

@DOsinga DOsinga left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for doing this!

# Suppresses common GLib warnings that don't affect functionality

cd /home/alfonsodg/Devel-Local/oss/goose/ui/desktop/out/Goose-linux-x64
./Goose 2>&1 | grep -v "GLib-GObject" | grep -v "browser_main_loop"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we move this to the Just file?

arch: process.env.ELECTRON_ARCH === 'x64' ? ['x64'] : ['arm64'],
options: {
icon: 'src/images/icon.ico',
icon: process.platform === 'linux' ? 'src/images/icon.png' : 'src/images/icon.ico',
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how broken was this before?

@DOsinga DOsinga merged commit 84704d1 into block:main Aug 2, 2025
7 checks passed
katzdave added a commit that referenced this pull request Aug 4, 2025
…ng-quickfix

* 'main' of github.com:block/goose: (26 commits)
  docs: Add YouTube link to Git MCP Tutorial (#3831)
  feat: more robust client initialization for the app (#3830)
  Build app bundles on release branches always (#3789)
  fix param order of debug_conversation_fixer (#3796)
  Fix directory switcher not working in active chat sessions and file browser not defaulting to current session directory path (#3791)
  File completion in CLI (#3822)
  docs: Dynamic linux install buttons (#3810)
  tests: Add missing `#[serial]` to two tests (#3816)
  Chore: apply more clippy rules to prevent from code complexity (#3813)
  chore(mcp): Add helpers to parse parameters (#2821)
  feat: enable docusaurus respectPrefersColorScheme (#3746)
  fix session resume in new window (#3800)
  Add settings field documentation to recipe guides (#3809)
  chore(deps): bump on-headers and compression in /documentation (#3532)
  fix(ui): refresh provider related issues (#3385)
  feat: Add comprehensive Linux build support (#3673)
  developer: Optimize text_editor_view a bit (#3781)
  Override session name generator for ollama provider (#3710)
  docs: fix markdown for cognee tutorial (#3801)
  chore: Upgrade node (#3756)
  ...
michaelneale added a commit that referenced this pull request Aug 4, 2025
* main: (34 commits)
  Token counting in Auto-compact uses provider metadata (#3788)
  docs: Add YouTube link to Git MCP Tutorial (#3831)
  feat: more robust client initialization for the app (#3830)
  Build app bundles on release branches always (#3789)
  fix param order of debug_conversation_fixer (#3796)
  Fix directory switcher not working in active chat sessions and file browser not defaulting to current session directory path (#3791)
  File completion in CLI (#3822)
  docs: Dynamic linux install buttons (#3810)
  tests: Add missing `#[serial]` to two tests (#3816)
  Chore: apply more clippy rules to prevent from code complexity (#3813)
  chore(mcp): Add helpers to parse parameters (#2821)
  feat: enable docusaurus respectPrefersColorScheme (#3746)
  fix session resume in new window (#3800)
  Add settings field documentation to recipe guides (#3809)
  chore(deps): bump on-headers and compression in /documentation (#3532)
  fix(ui): refresh provider related issues (#3385)
  feat: Add comprehensive Linux build support (#3673)
  developer: Optimize text_editor_view a bit (#3781)
  Override session name generator for ollama provider (#3710)
  docs: fix markdown for cognee tutorial (#3801)
  ...
michaelneale added a commit that referenced this pull request Aug 5, 2025
* main: (56 commits)
  Token counting in Auto-compact uses provider metadata (#3788)
  docs: Add YouTube link to Git MCP Tutorial (#3831)
  feat: more robust client initialization for the app (#3830)
  Build app bundles on release branches always (#3789)
  fix param order of debug_conversation_fixer (#3796)
  Fix directory switcher not working in active chat sessions and file browser not defaulting to current session directory path (#3791)
  File completion in CLI (#3822)
  docs: Dynamic linux install buttons (#3810)
  tests: Add missing `#[serial]` to two tests (#3816)
  Chore: apply more clippy rules to prevent from code complexity (#3813)
  chore(mcp): Add helpers to parse parameters (#2821)
  feat: enable docusaurus respectPrefersColorScheme (#3746)
  fix session resume in new window (#3800)
  Add settings field documentation to recipe guides (#3809)
  chore(deps): bump on-headers and compression in /documentation (#3532)
  fix(ui): refresh provider related issues (#3385)
  feat: Add comprehensive Linux build support (#3673)
  developer: Optimize text_editor_view a bit (#3781)
  Override session name generator for ollama provider (#3710)
  docs: fix markdown for cognee tutorial (#3801)
  ...
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.

2 participants