Metadata-Version: 2.4
Name: flatpak-runtime-tools
Version: 0.1.0
Summary: Tools to assemble Flatpak runtimes from openSUSE RPMs
Author-email: Jeff Mahoney <jeffm@suse.com>
License: MIT
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# flatpak-runtime-tools

Logic for building RPM-based Flatpak runtimes/SDKs/extensions (openSUSE Leap 16
prototype). Spec files only call these entry points.

| Tool | Purpose |
|---|---|
| `frt-closure` | Dependency closure of a seed list against the build chroot's rpmdb. Emits sorted NVRA JSON. |
| `frt-assemble` | Copy a closure's files into a staging root and apply the runtime layout transform. Writes `packages.json`. |
| `frt-metadata` | Render the flatpak `metadata` keyfile from a TOML profile. |
| `frt-check` | Post-assembly sanity checks on the assembled tree. |

## Layout
- `frt/` — Python package, installed into the standard site-packages dir.
- `pyproject.toml` — `[project.scripts]` define the `frt-*` console entry points,
  installed to `/usr/bin` by the wheel (no wrapper scripts).
- `profiles/<RUNTIME_ID>/` — `seeds`, `deny`, `metadata.toml`; installed to
  `/usr/share/flatpak-runtime-tools/profiles/` (consumed by the assembly specs
  by path).

## Development
```sh
make check     # run unit tests (stdlib unittest, no rpm needed)
make wheel     # build a wheel (python -m build)
make tar       # reproducible tarball for OBS
```
Packaging is standard Python: the RPM runs `%pyproject_wheel` / `%pyproject_install`.
The rpm backend (`frt.closure.RpmdbResolver`) imports `rpm` lazily, so the unit
tests run without `python3-rpm`.
