# Linux Packaging

WireShare now treats hosted ecosystem builders as the primary Linux
distribution path. The repo-tracked packaging source of truth lives under this
directory; generated Flatpak staging trees, rendered rollout bundles, and
release artifacts do not.

## Release contract

The rollout orchestrator and hosted-builder handoffs are driven by:

- [/Users/nick/wireshare-code/packaging/release_manifest.yaml](/Users/nick/wireshare-code/packaging/release_manifest.yaml:1)
- [/Users/nick/wireshare-code/packaging/targets.yaml](/Users/nick/wireshare-code/packaging/targets.yaml:1)

Publish these assets to GitHub Releases before handing off to hosted builders or
distro recipes:

- `WireShare.jar`
- `WireShare-<version>-source.tar.gz`
- `SHA256SUMS`
- `DEPENDENCY_INVENTORY.txt`

`packaging/common/release-artifacts.env` is rendered from the release manifest
and records the canonical asset names and release URLs for the current version.

## Shared metadata

`packaging/common/` contains the canonical Linux app identity and reusable
packaging inputs:

- `app/` for the desktop file and AppStream metainfo
- `icons/` for the canonical hicolor and scalable icon exports
- `launchers/` for the system-Java launcher and Flatpak-specific launcher
- `release-artifacts.env` for the rendered release-asset references

## Waves

Wave 1 focuses on the highest-spread hosted and community builders:

- `flathub/`
- `snap/`
- `aur/`
- `obs/`
- `copr/`

Wave 2 adds source-build distro packaging:

- `debian/`
- `fedora/`
- `opensuse/`
- `ppa/`
- `mageia/`
- `gentoo/`
- `nix/`
- `guix/`
- `alpine/`
- `void/`
- `solus/`
- `homebrew/`

Wave 3 adds ports and long-tail recipe ecosystems:

- `pkgsrc/`
- `slackbuilds/`
- `freebsd/`
- `openbsd/`

## Local fallback

`./gradlew packageLinuxFlatpak` still builds a local x86_64 Flatpak bundle for
manual GitHub Releases fallback use. It is no longer the primary Linux
distribution path and should not be treated as the source of truth for Flathub
or other hosted-builder packaging.
