48 lines
1.9 KiB
Markdown
48 lines
1.9 KiB
Markdown
# 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.
|