mesh/merge-gate head a641ed7d15c7 merged into trunk b12c4b82e820 — pass: builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step; every …
mesh/repo-check head a641ed7d15c7 merged into trunk b12c4b82e820 — pass: its merge-check.sh passed
mesh/delivery delivered
mesh/delivery-group group fix/121-genesis-package-registry delivered: every member is delivered
With npm-package-registry optional, the binding file the agent's environment names may be absent, and mesh-builder failed every build on reading it. It now reads the genesis document the installer seals at genesis's packages step when no binding is present, prefers the binding when both are, and each build's log says which it resolved from (§4). A build that needs the registry - a package, an image naming .npmrc, TypeScript with an @novox/ dependency - on an agent with neither is refused before anything is built or published, naming the machine, the unbound requirement and gitea (§6); it never falls back to the public registry. The captured catalogue moves to the mesh-catalog change it is judged with.
198 lines
7.2 KiB
Plaintext
198 lines
7.2 KiB
Plaintext
{
|
|
"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"
|
|
],
|
|
"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-settings": [
|
|
"prefs"
|
|
],
|
|
"content": "{\n \"prefs\": {}\n}\n",
|
|
"trusted": true
|
|
},
|
|
{
|
|
"id": "accounts",
|
|
"type": "file",
|
|
"path": "${machine:account-home}/.config/betterbird/accounts.json",
|
|
"owner": "${machine:account}",
|
|
"mode": "0600",
|
|
"merge": "json",
|
|
"takes-settings": [
|
|
"accounts"
|
|
],
|
|
"content": "{\n \"accounts\": {}\n}\n",
|
|
"trusted": true
|
|
},
|
|
{
|
|
"id": "configuration",
|
|
"type": "file",
|
|
"path": "${machine:account-home}/.config/betterbird/configuration.json",
|
|
"owner": "${machine:account}",
|
|
"mode": "0600",
|
|
"merge": "json",
|
|
"takes-settings": [
|
|
"identities",
|
|
"calendars",
|
|
"address-books",
|
|
"filters"
|
|
],
|
|
"content": "{\n \"identities\": {},\n \"calendars\": {},\n \"address-books\": {},\n \"filters\": {}\n}\n",
|
|
"trusted": true
|
|
},
|
|
{
|
|
"id": "tags",
|
|
"type": "file",
|
|
"path": "${machine:account-home}/.config/betterbird/tags.json",
|
|
"owner": "${machine:account}",
|
|
"mode": "0644",
|
|
"merge": "json",
|
|
"takes-settings": [
|
|
"tags"
|
|
],
|
|
"content": "{\n \"tags\": {}\n}\n",
|
|
"trusted": false
|
|
},
|
|
{
|
|
"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",
|
|
"content": "#!/bin/sh\n# Betterbird's start, written by the mesh (module betterbird, novox/hq ADR 0316). Replaced at every push.\n#\n# Before Betterbird starts, the module's tools place its user.js in the profile (the settings prefs, accounts, identities, calendars,\n# address-books and tags) and write what Betterbird rewrites itself: the account lists and each declared account's filters. They do\n# it only while no Betterbird of this account runs, because Betterbird rewrites its saved preferences when it quits; a\n# second start while one runs only hands over to it. What the preparation could not do it says here, and\n# betterbird_check says it too. Betterbird starts either way: its configuration never holds the mail back.\n/usr/local/lib/mesh-betterbird/betterbird-tools prepare || echo \"betterbird: the mesh's preparation did not complete; betterbird_check says why\" >&2\nexec /opt/betterbird/betterbird \"$@\"\n"
|
|
},
|
|
{
|
|
"id": "launcher",
|
|
"type": "file",
|
|
"path": "/usr/local/share/applications/eu.betterbird.Betterbird.desktop",
|
|
"mode": "0644",
|
|
"content": "[Desktop Entry]\nVersion=1.0\nType=Application\nName=Betterbird\nGenericName=Mail Client\nComment=Send and receive mail with Betterbird\nExec=/usr/local/bin/betterbird %u\nIcon=/opt/betterbird/chrome/icons/default/default128.png\nTerminal=false\nCategories=Network;Email;\nMimeType=message/rfc822;x-scheme-handler/mailto;application/x-xpinstall;application/x-extension-ics;text/calendar;text/vcard;text/x-vcard;x-scheme-handler/webcal;x-scheme-handler/webcals;x-scheme-handler/mid;\nStartupNotify=true\nStartupWMClass=eu.betterbird.Betterbird\nKeywords=Email;E-mail;Calendar;Thunderbird;\nActions=ComposeMessage;OpenAddressBook;\n# Written by the mesh (module betterbird, novox/hq ADR 0316 §3), in place of the community package's entry:\n# it starts Betterbird through the module's start, and names the icon in the installation, with no link.\n\n[Desktop Action ComposeMessage]\nName=Write new message\nExec=/usr/local/bin/betterbird -compose\n\n[Desktop Action OpenAddressBook]\nName=Open address book\nExec=/usr/local/bin/betterbird -addressbook\n"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
]
|
|
}
|
|
}
|