{ "module": "betterbird", "version": "1", "upgrade": { "policy": "record", "why": "a new build may remove the community package betterbird-bin and replaces the installation in /opt/betterbird, which a running Betterbird has open: the switch on each node and every upgrade wait for the operator, who quits Betterbird first and then pushes (novox/hq ADR 0316 §4, §5)" }, "requires": [ "x11-display" ], "invokes": [ "seat:mesh-controller.settings", "seat:mesh-controller.nodes", "seat:mesh-controller.node", "betterbird.betterbird_derive" ], "tools": [ "betterbird_status", "betterbird_prefs", "betterbird_config", "betterbird_config_apply", "betterbird_user_js", "betterbird_log", "betterbird_restart", "betterbird_check", "betterbird_accounts", "betterbird_identities", "betterbird_calendars", "betterbird_address_books", "betterbird_filters", "betterbird_tags", "betterbird_derive", "betterbird_drift", "betterbird_reminder_test" ], "config": { "prefs": { "type": "object", "description": "Betterbird's preferences the operator sets, by their own names (mailnews.*, calendar.* and the like), laid into prefs.json; an account's, a server's and a tag's are refused, as accounts, the four kinds and tags own them (novox/hq ADR 0329 §6).", "trusted": true, "default": {} }, "accounts": { "type": "object", "description": "The mail accounts Betterbird is set up with, each by a name of the operator's: its address, its sender's name and its incoming and outgoing servers; no password, token or cookie (novox/hq ADR 0329 §2).", "trusted": true, "default": {} }, "identities": { "type": "object", "description": "The identities beside an account's own, each by a name of the operator's: the address and name it sends as, its signature as a list of lines, and the profile's key to adopt on a node.", "trusted": true, "default": {} }, "calendars": { "type": "object", "description": "The calendars Betterbird shows, each by a name of the operator's: where it is and how it is reached, and the profile's key to adopt on a node.", "trusted": true, "default": {} }, "address-books": { "type": "object", "description": "The address books Betterbird uses, each by a name of the operator's: where it is and how it is reached, and the profile's key to adopt on a node.", "trusted": true, "default": {} }, "filters": { "type": "object", "description": "The message filters of each account, by account: what each matches and what it does with the mail.", "trusted": true, "default": {} }, "tags": { "type": "object", "description": "The tags Betterbird offers, each by its own key: its name, colour and order; trusted since issue 751, so a change to it is the operator's to approve.", "trusted": true, "default": {} } }, "resources": [ { "id": "configuration-dir", "type": "directory", "path": "${machine:account-home}/.config/betterbird", "owner": "${machine:account}", "mode": "0755" }, { "id": "prefs", "type": "file", "path": "${machine:account-home}/.config/betterbird/prefs.json", "owner": "${machine:account}", "mode": "0644", "merge": "json", "takes-config": [ "prefs" ], "template": "files/prefs.json", "trusted": true }, { "id": "accounts", "type": "file", "path": "${machine:account-home}/.config/betterbird/accounts.json", "owner": "${machine:account}", "mode": "0600", "merge": "json", "takes-config": [ "accounts" ], "template": "files/accounts.json", "trusted": true }, { "id": "configuration", "type": "file", "path": "${machine:account-home}/.config/betterbird/configuration.json", "owner": "${machine:account}", "mode": "0600", "merge": "json", "takes-config": [ "identities", "calendars", "address-books", "filters" ], "template": "files/configuration.json", "trusted": true }, { "id": "tags", "type": "file", "path": "${machine:account-home}/.config/betterbird/tags.json", "owner": "${machine:account}", "mode": "0644", "merge": "json", "takes-config": [ "tags" ], "template": "files/tags.json", "trusted": true }, { "id": "community-package", "type": "package", "package": "betterbird-bin", "absent": true }, { "id": "installation", "type": "archive", "path": "/opt/betterbird", "artifact": "archive" }, { "id": "owl", "type": "archive", "path": "/opt/betterbird/owl", "artifact": "owl" }, { "id": "policies", "type": "archive", "path": "/opt/betterbird/distribution", "artifact": "distribution" }, { "id": "spelling", "type": "archive", "path": "/opt/betterbird/defaults/pref", "artifact": "defaults" }, { "id": "preparation", "type": "archive", "path": "/usr/local/lib/mesh-betterbird", "artifact": "tools" }, { "id": "start", "type": "file", "path": "/usr/local/bin/betterbird", "mode": "0755", "template": "files/betterbird" }, { "id": "launcher", "type": "file", "path": "/usr/local/share/applications/eu.betterbird.Betterbird.desktop", "mode": "0644", "template": "files/eu.betterbird.Betterbird.desktop" } ], "build": { "artifacts": [ { "name": "tools", "kind": "bundle", "language": "go", "system": "arch", "from": "cmd/betterbird-tools", "binary": "betterbird-tools", "loads": [ "betterbird-tools" ] }, { "name": "archive", "kind": "archive", "url": "https://www.betterbird.eu/downloads/LinuxArchive/betterbird-153.4.0esr-bb10.en-US.linux-x86_64.tar.xz", "sha256": "38dd24890a66b4cf9a45bc24e15192e00c26b929e1bb8df7974c16a4539129e2", "version": "153.4.0esr-bb10", "within": "betterbird", "names-on-purpose": { "www.betterbird.eu": "Betterbird's project publishes its Linux release there; the build seat fetches it once, by its pinned sha256 (novox/hq ADR 0316 §2)" } }, { "name": "owl", "kind": "archive", "url": "https://www.beonex.com/owl/owl.xpi", "sha256": "a54cc3d52113b34f97942ee19190947dee23561e2217f18db3d80ac023991221", "version": "1.5.6.1", "file": "owl.xpi", "names-on-purpose": { "www.beonex.com": "Owl's vendor publishes its xpi there; the build seat fetches it once, by its pinned sha256 (novox/hq ADR 0316 §6)" } }, { "name": "distribution", "kind": "archive", "from": "install/distribution" }, { "name": "defaults", "kind": "archive", "from": "install/defaults-pref" }, { "name": "files", "kind": "archive", "from": "files" } ] } }