Skip to content

feat(flatpak): Flatpak manifest, AppStream metainfo, and distribution CI pipeline - #294

Closed
Muneerali199 wants to merge 1 commit into
AOSSIE-Org:mainfrom
Muneerali199:poc/flatpak-distribution
Closed

feat(flatpak): Flatpak manifest, AppStream metainfo, and distribution CI pipeline#294
Muneerali199 wants to merge 1 commit into
AOSSIE-Org:mainfrom
Muneerali199:poc/flatpak-distribution

Conversation

@Muneerali199

Copy link
Copy Markdown
Contributor

Summary

Closes #206

This PR is a GSoC 2026 proposal reference artifact for the Flatpak Distribution issue. The complete, Flathub-ready implementation will be delivered during the GSoC coding period.


Problem

Rein has no Flatpak packaging. Linux users must build from source or use the AppImage directly (no sandboxing, no auto-update, not in any store). Flatpak would give:

  • Sandboxed installs on all major distros (Fedora, Ubuntu, Arch, openSUSE…)
  • Distribution through Flathub (largest Linux app store)
  • Automatic updates via GNOME Software / KDE Discover

Files added

File Purpose
flatpak/org.aossie.Rein.yml Flatpak manifest (app-id, finish-args, modules)
flatpak/org.aossie.Rein.desktop .desktop entry for app launchers
flatpak/org.aossie.Rein.metainfo.xml AppStream metainfo (required by Flathub)
flatpak/rein-wrapper.sh Sandbox-safe launcher (--no-sandbox for Electron)
flatpak/flathub.json Flathub submission config
.github/workflows/flatpak.yml CI: build Flatpak bundle on tag push

Architecture

Flatpak sandbox (org.aossie.Rein)
├── runtime: org.freedesktop.Platform 23.08
├── base:    org.electronjs.Electron2.BaseApp
│
├── finish-args
│   ├── --socket=x11 / --socket=wayland    (display)
│   ├── --share=network                    (WebSocket / WebRTC)
│   ├── --filesystem=xdg-run/pipewire-0    (screen capture)
│   ├── --talk-name=org.freedesktop.portal.ScreenCast
│   └── --device=all                       (uinput virtual input)
│
└── modules
    ├── ydotool  (virtual input backend, built from source)
    └── rein     (Electron AppImage, extracted in-sandbox)

CI pipeline (tag push → .flatpak bundle):

git tag v1.2.3
        │
        ▼ flatpak.yml
  ubuntu-latest (bilelmoussaoui/flatpak-github-actions container)
        │
        ├── npm build → electron-builder --linux AppImage
        ├── copy AppImage → flatpak/rein-placeholder.AppImage
        ├── flatpak-builder (org.aossie.Rein.yml)
        │       └── produces rein.flatpak bundle
        ├── upload-artifact (30 days)
        └── softprops/action-gh-release → attaches to GitHub Release

Flatpak vs AppImage comparison

AppImage Flatpak
Sandboxed No Yes (seccomp + namespaces)
Auto-update No Yes (via GNOME Software)
In Flathub No Yes (after review)
Wayland native Partial Yes (via portal)
ydotool included No Yes (bundled module)
PipeWire screen capture No Yes (XDG portal)

What the full GSoC implementation will add

  • Submit org.aossie.Rein.yml to flathub/org.aossie.Rein repository for review
  • Replace placeholder AppImage source with proper Electron Flatpak SDK build (no AppImage-in-Flatpak antipattern)
  • PipeWire portal integration for screen capture (replacing X11 XShm)
  • Icon set (16×16 → 256×256 PNGs) generated from SVG
  • Automated Flathub PR on every upstream release tag
  • Flathub beta channel for pre-release testing

Note: This PR is closed immediately as a proposal artifact. Full implementation during GSoC 2026.

@Muneerali199

Copy link
Copy Markdown
Contributor Author

Closing as a GSoC 2026 proposal reference artifact. This PR demonstrates the Flatpak packaging design for Issue #206. The complete implementation — including a proper Electron Flatpak SDK build (no AppImage-in-Flatpak), PipeWire portal integration, icon set, and Flathub submission — will be delivered during the GSoC 2026 coding period.

@coderabbitai

coderabbitai Bot commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

Warning

Rate limit exceeded

@Muneerali199 has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 22 minutes and 13 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: e8c7be90-f473-410f-b0da-6e14af757a90

📥 Commits

Reviewing files that changed from the base of the PR and between af16487 and 6f6b781.

📒 Files selected for processing (6)
  • .github/workflows/flatpak.yml
  • flatpak/flathub.json
  • flatpak/org.aossie.Rein.desktop
  • flatpak/org.aossie.Rein.metainfo.xml
  • flatpak/org.aossie.Rein.yml
  • flatpak/rein-wrapper.sh
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

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.

[WorkFlow] Flathub distribution pipeline

1 participant