feat: package the app as a flatpak
This commit is contained in:
parent
8e9d2a92a6
commit
080b47b24f
11 changed files with 135 additions and 1 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -1,4 +1,6 @@
|
|||
/target
|
||||
.flatpak
|
||||
.flatpak-builder
|
||||
result
|
||||
result-*
|
||||
*.key
|
||||
|
|
|
|||
15
README.md
15
README.md
|
|
@ -38,3 +38,18 @@ The tests run offline against an in-memory store: seed and key parsing, a sealed
|
|||
## Status
|
||||
|
||||
Work in progress: the UI is unexercised against a live server — the store, crypto and address paths are covered by tests, the network flows (register, fetch, send, rotate) are wired to fumi-core's operations but only smoke-tested as far as launching the window.
|
||||
|
||||
## Packaging
|
||||
|
||||
`devbox run package` builds and installs the app as a Flatpak from
|
||||
`com.randogoth.carrier.json` — the binary, the desktop file, the metainfo and
|
||||
the icon all come from the repo, and the tooling (`flatpak`, `flatpak-builder`,
|
||||
`appstreamcli`) lives in the devbox environment. The flatpak runtime is the one
|
||||
dependency outside devbox; install it once:
|
||||
|
||||
flatpak install --user flathub org.gnome.Sdk//51 org.freedesktop.Sdk.Extension.rust-stable//26.08
|
||||
|
||||
The result is installed into the user flatpak and runs as
|
||||
`flatpak run com.randogoth.carrier`. Inside the sandbox the app keeps its
|
||||
config under `~/.var/app/com.randogoth.carrier/config/carrier`, so a flatpak
|
||||
install starts with a fresh identity rather than the dev build's account.
|
||||
|
|
|
|||
69
com.randogoth.carrier.json
Normal file
69
com.randogoth.carrier.json
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
{
|
||||
"id": "com.randogoth.carrier",
|
||||
"runtime": "org.gnome.Platform",
|
||||
"runtime-version": "51",
|
||||
"sdk": "org.gnome.Sdk",
|
||||
"command": "carrier",
|
||||
"finish-args": [
|
||||
"--socket=wayland",
|
||||
"--socket=fallback-x11",
|
||||
"--device=dri",
|
||||
"--share=network"
|
||||
],
|
||||
"add-extensions": {
|
||||
"org.freedesktop.Sdk.Extension.rust-stable": {
|
||||
"directory": "/usr/lib/sdk/rust-stable",
|
||||
"version": "stable",
|
||||
"bundle": false,
|
||||
"autodelete": false,
|
||||
"disable-filesystem": true
|
||||
}
|
||||
},
|
||||
"build-options": {
|
||||
"append-path": "/usr/lib/sdk/rust-stable/bin",
|
||||
"build-args": [
|
||||
"--share=network"
|
||||
]
|
||||
},
|
||||
"cleanup": [
|
||||
"/share/doc"
|
||||
],
|
||||
"modules": [
|
||||
{
|
||||
"name": "carrier",
|
||||
"buildsystem": "simple",
|
||||
"build-commands": [
|
||||
"sed -i 's|../fumi/core|fumi/core|' Cargo.toml",
|
||||
"cargo build --release --locked",
|
||||
"install -Dm755 target/release/carrier /app/bin/carrier",
|
||||
"install -Dm644 data/com.randogoth.carrier.desktop /app/share/applications/com.randogoth.carrier.desktop",
|
||||
"install -Dm644 data/com.randogoth.carrier.metainfo.xml /app/share/metainfo/com.randogoth.carrier.metainfo.xml",
|
||||
"install -Dm644 data/icons/com.randogoth.carrier.png /app/share/icons/hicolor/512x512/apps/com.randogoth.carrier.png",
|
||||
"install -Dm644 data/icons/com.randogoth.carrier-256.png /app/share/icons/hicolor/256x256/apps/com.randogoth.carrier.png",
|
||||
"install -Dm644 data/icons/com.randogoth.carrier-128.png /app/share/icons/hicolor/128x128/apps/com.randogoth.carrier.png"
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"type": "dir",
|
||||
"path": ".",
|
||||
"skip": [
|
||||
"target",
|
||||
".git",
|
||||
".jj",
|
||||
".flatpak"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "dir",
|
||||
"path": "../fumi",
|
||||
"dest": "fumi",
|
||||
"skip": [
|
||||
".jj",
|
||||
".git",
|
||||
"target"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
10
data/com.randogoth.carrier.desktop
Normal file
10
data/com.randogoth.carrier.desktop
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
[Desktop Entry]
|
||||
Name=carrier
|
||||
Comment=Minimalist smolmail client
|
||||
Exec=carrier
|
||||
Icon=com.randogoth.carrier
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Network;Email;
|
||||
Keywords=mail;smolmail;fumi;
|
||||
X-Purism-FormFactor=Workstation;Mobile;
|
||||
20
data/com.randogoth.carrier.metainfo.xml
Normal file
20
data/com.randogoth.carrier.metainfo.xml
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<component type="desktop-application">
|
||||
<id>com.randogoth.carrier</id>
|
||||
<name>carrier</name>
|
||||
<summary>Minimalist smolmail client</summary>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<project_license>Apache-2.0</project_license>
|
||||
<description>
|
||||
<p>carrier is a minimalist desktop client for Smol Mail: one compact
|
||||
window — the list above, the article below — built on fumi-core, the
|
||||
reference CLI's own library, with a Relm4 (GTK4) UI made from
|
||||
libadwaita's own widgets. One 32-byte seed is the only secret; mail
|
||||
stays sealed at rest and opens on demand.</p>
|
||||
</description>
|
||||
<launchable type="desktop-id">com.randogoth.carrier.desktop</launchable>
|
||||
<releases>
|
||||
<release version="0.1.0" date="2026-10-03"/>
|
||||
</releases>
|
||||
<content_rating type="oars-1.1"/>
|
||||
</component>
|
||||
BIN
data/icons/com.randogoth.carrier-128.png
Normal file
BIN
data/icons/com.randogoth.carrier-128.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
BIN
data/icons/com.randogoth.carrier-256.png
Normal file
BIN
data/icons/com.randogoth.carrier-256.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
BIN
data/icons/com.randogoth.carrier.png
Normal file
BIN
data/icons/com.randogoth.carrier.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
|
|
@ -19,7 +19,10 @@
|
|||
"nixpkgs#gdk-pixbuf",
|
||||
"nixpkgs#harfbuzz",
|
||||
"nixpkgs#libadwaita",
|
||||
"nixpkgs#adwaita-icon-theme"
|
||||
"nixpkgs#adwaita-icon-theme",
|
||||
"nixpkgs#flatpak",
|
||||
"nixpkgs#flatpak-builder",
|
||||
"nixpkgs#appstream"
|
||||
],
|
||||
"shell": {
|
||||
"init_hook": [
|
||||
|
|
@ -40,6 +43,9 @@
|
|||
],
|
||||
"check": [
|
||||
"cargo fmt --check && cargo build && cargo test"
|
||||
],
|
||||
"package": [
|
||||
"flatpak-builder --force-clean --user --install-deps-from=flathub --install .flatpak com.randogoth.carrier.json"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
|||
12
devbox.lock
12
devbox.lock
|
|
@ -47,10 +47,22 @@
|
|||
"last_modified": "1970-01-01T00:00:00Z",
|
||||
"resolved": "path:/nix/store/v8ynlbrldn7k8byb1kx0j0wka8dsbrw9-source?narHash=sha256-BZWCi9ZRJiARTuKTbbtvFTj7t1TK4G3UEckT3HyNfRg%3D#adwaita-icon-theme"
|
||||
},
|
||||
"nixpkgs#appstream": {
|
||||
"last_modified": "1970-01-01T00:00:00Z",
|
||||
"resolved": "path:/nix/store/v8ynlbrldn7k8byb1kx0j0wka8dsbrw9-source?narHash=sha256-BZWCi9ZRJiARTuKTbbtvFTj7t1TK4G3UEckT3HyNfRg%3D#appstream"
|
||||
},
|
||||
"nixpkgs#cairo": {
|
||||
"last_modified": "1970-01-01T00:00:00Z",
|
||||
"resolved": "path:/nix/store/v8ynlbrldn7k8byb1kx0j0wka8dsbrw9-source?narHash=sha256-BZWCi9ZRJiARTuKTbbtvFTj7t1TK4G3UEckT3HyNfRg%3D#cairo"
|
||||
},
|
||||
"nixpkgs#flatpak": {
|
||||
"last_modified": "1970-01-01T00:00:00Z",
|
||||
"resolved": "path:/nix/store/v8ynlbrldn7k8byb1kx0j0wka8dsbrw9-source?narHash=sha256-BZWCi9ZRJiARTuKTbbtvFTj7t1TK4G3UEckT3HyNfRg%3D#flatpak"
|
||||
},
|
||||
"nixpkgs#flatpak-builder": {
|
||||
"last_modified": "1970-01-01T00:00:00Z",
|
||||
"resolved": "path:/nix/store/v8ynlbrldn7k8byb1kx0j0wka8dsbrw9-source?narHash=sha256-BZWCi9ZRJiARTuKTbbtvFTj7t1TK4G3UEckT3HyNfRg%3D#flatpak-builder"
|
||||
},
|
||||
"nixpkgs#gcc": {
|
||||
"last_modified": "1970-01-01T00:00:00Z",
|
||||
"resolved": "path:/nix/store/v8ynlbrldn7k8byb1kx0j0wka8dsbrw9-source?narHash=sha256-BZWCi9ZRJiARTuKTbbtvFTj7t1TK4G3UEckT3HyNfRg%3D#gcc"
|
||||
|
|
|
|||
BIN
smolmail.png
BIN
smolmail.png
Binary file not shown.
|
Before Width: | Height: | Size: 5.2 KiB |
Loading…
Add table
Add a link
Reference in a new issue