Files

48 lines
1.9 KiB
Markdown
Raw Permalink Normal View History

# Proposal: fpagent-installer-multiarch
## Why
The hosted installer only ever picks the x86_64 bundle. fingerprint-agent
v1.5.0 publishes a 32-bit `-linux-i386` bundle and its own installer accepts
i386 hosts, so a 32-bit field laptop running the public one-liner fails with
"no compatible bundle" and installs nothing, even though a matching release
asset exists.
## What Changes
- The installer detects the host architecture (`uname -m` → `x86_64` or
`i386`) and selects the matching bundle: the distro-codename bundle when one
exists for that architecture, else the generic `-linux-<arch>` bundle.
- An unsupported architecture fails with a message that names the host machine,
and installs nothing.
- The version parsed from the asset name accepts the `-linux-i386` suffix, so a
32-bit install records and reports its version the same way x86_64 does.
- The installer's help text matches the bundle installer: the systemd service
and the self-update timer are on by default, so `--no-service`,
`--no-updates` and `--update-base` are documented instead of
`--enable-service` being described as required to get a service.
## Capabilities
### New Capabilities
(none)
### Modified Capabilities
- `fpagent-installer`: bundle selection becomes architecture-aware (not just
distro-codename aware), the no-compatible-bundle failure names the host
architecture, and the version is derived for every published architecture.
## Impact
- `tools/public/fpagent/install.sh`: architecture detection, bundle pick,
version regex, help text.
- `tools/test/fpagent-install.test.js`: architecture selection and version
parsing tests.
- `README.md`: the installer section (flags and architectures).
- Depends on the `fingerprint-agent` bundle naming
`fpagent-<version>-linux-<arch>.tar.gz`, where `<arch>` is `x86_64` or
`i386` (v1.5.0 and newer). No change to `tools/server.js`: the server proxies
whatever assets the release lists.