Skip to content

fettle 1.0.0

Choose a tag to compare

@github-actions github-actions released this 10 Aug 14:35
· 49 commits to main since this release

[1.0.0] — the first official release

fettle keeps a Linux machine updated and clean, audits where its software came from and
whether it has been tampered with, and scans the firmware and boot chain — from one
command surface, on four distro families.

Supported: Arch and Manjaro, Debian and Ubuntu, RHEL / Rocky / AlmaLinux, and
Fedora. Pure standard library: it needs python 3.11 or newer and nothing else, which
is what lets it ship itself to a remote host as a single file and run there under
whatever interpreter it finds.

What 1.0.0 rests on. Every action was specified, run against seven live systems, and
fixed where it misbehaved or explained itself badly. That pass is written down, feature
by feature, in docs/qa/ — roughly ninety findings, including actions that
reported success while doing nothing at all, a preview that deleted run history, and an
unattended flag that would have purged a list fettle had guessed at.

One rule came out of it and now governs the output everywhere: a check that could not
look must never render identically to a clean result.
"Not installed", "could not
read", "does not apply" and "nothing found" are four different answers, and fettle says
which one it means.

Installing. Attached to this release: .deb, .rpm, .pkg.tar.zst, a zipapp that
runs anywhere there is a python 3.11+, and a prebuilt x86_64 binary that needs no python
at all. Every package is built and then installed and run in a clean container of its
own distro before it is published. SHA256SUMS covers everything.

Still experimental: fettle web, the browser UI. It is the one feature the QA pass
did not reach — it both serves a page and runs privileged actions from a password typed
into a browser, and it has not been swept. Localhost-only by default; keep it that way.
fettle report, the static HTML dashboard, is not experimental and is included.

Known limit: the prebuilt binary needs glibc 2.38 or newer, so it does not run on
Ubuntu 22.04, Debian 12 or RHEL 9. Those have their own packages here, and the zipapp
works everywhere.


What to download

file for
fettle_<version>_all.deb Debian, Ubuntu, and derivatives
fettle-<version>-1.noarch.rpm RHEL, Rocky, AlmaLinux, Fedora
fettle-<version>-1-any.pkg.tar.zst Arch, Manjaro, EndeavourOS
fettle-<version>-zipapp.tar.gz / .zip anything else — runs on any Linux with python 3.11+
fettle.pyz the zipapp on its own, if you do not want the archive

fettle is pure standard library: it needs python 3.11 or newer and nothing else.
On RHEL/Rocky/Alma 9 and Ubuntu 22.04 the system python3 is older than that, so the
packages pull in a suitable interpreter and the launcher finds it for you.

Verifying what you downloaded

sha256sum -c SHA256SUMS --ignore-missing