Skip to content

Latest commit

 

History

History
83 lines (70 loc) · 5.79 KB

backends.md

File metadata and controls

83 lines (70 loc) · 5.79 KB

Backend capabilities and identity

Implementation, local native validation and hosted CI evidence are distinct. The Distroproof matrix records the measured Linux coverage. CLI adapter creation requires a recognizable native version at or above these implementation targets: APT 1.6, Pacman 6.0, DNF 4.0 (including DNF5 for RPM consultation), Flatpak 1.14, Homebrew 4.0, apk-tools 2.12 (3.x included), Portage 3.0. Older or unrecognized versions are refused. These are policy targets, not claims that every newer release has been tested. Provider diagnostics expose the parsed version, minimum-target check and certified: false.

Provider Inventory Info / why Repository search Plan Execute Orphan preview
APT dpkg + APT marks Native records / reverse dependencies POSIX regex, cached metadata Native simulation Experimental, confirmed Native simulation with hold/critical checks
Pacman C-locale -Qi records Installed records / native reason POSIX regex, existing sync database --print estimate + HoldPkg/IgnorePkg policy Experimental, confirmed (ADR 007) -Qdtq with native dependency marks
DNF RPM installed database Installed records / reason unknown Unsupported dnf5 --store resolved transaction; DNF4's own resolver through its Python module Experimental, confirmed (ADR 010, DNF4 ADR 016) Unsupported
Flatpak Default user and system installations Installed records / reason unknown Unsupported Single-remote ref/commit/runtime preview (uncertain) Experimental, confirmed, apps-only removal (ADR 011) Unsupported
Homebrew JSON v2, installed kegs/casks Installed records / receipt reason when available Unsupported Formula --dry-run (uncertain) Experimental, confirmed, formulae only (ADR 012) Dependency leaves with native mark checks
apk apk list --installed + WORLD constraints Installed records / WORLD mark Unsupported --simulate against local indexes (uncertain) Experimental, confirmed, versions verified after (ADR 014) Unsupported
Portage Installed database (/var/db/pkg) + world set Installed records / world selection Unsupported emerge --pretend (uncertain); removal --depclean Experimental, confirmed, pinned =cat/name-version (ADR 015) Unsupported

Examples of fully qualified identities:

apt:curl:amd64
pacman:curl:x86_64
dnf:curl:x86_64
flatpak:app/org.example.App/x86_64/stable:user
flatpak:runtime/org.example.Platform/x86_64/stable:system
brew:curl:formula
brew:homebrew/cask/firefox:cask
apk:strace:x86_64
portage:dev-lang/python:3.12

APT, Pacman, RPM and apk permit scope-free lookup when installed matching is unambiguous; a Portage identity's scope is its slot, needed only when several slots are installed. Flatpak requires kind, full ID, architecture, branch and scope. Named custom system Flatpak installations are not queried; only default user/system are covered. Localized or malformed native output fails instead of returning a misleading empty inventory. Flatpak's native active-commit prefix is preserved; when the app-data version is absent, that abbreviated commit is reported with an explicit version-source metadata field. It is not a complete commit digest or reproducibility guarantee. --all includes runtime extensions.

Homebrew formula/cask identity is explicit. Multiple installed kegs and RPM installonly versions remain separate observed entries. A name/scope-only manifest requires their presence without pinning versions. why refuses ambiguous multiple versions because it cannot identify a unique installation event.

DNF uses read-only RPM queries instead of running DNF with possible cache/log writes. RPM metadata alone does not establish DNF installation reason or orphan status. Homebrew queries disable automatic updates, analytics and install cleanup. No provider refreshes repositories during inspection. No adapter edits native databases.

Pacman --print lists targets/dependencies, not the complete transaction including replacements, conflicts and hooks. Its plans remain uncertain; the experimental confirmed executor revalidates the preview, pins the repository and verifies installed versions afterwards (ADR 007). A missing capability returns an explicit unsupported error; providers are never substituted.

Primary native references:

APT audit additionally reports dpkg config-files records as review-only findings. Concrete architecture is required for every executable native action. APT plans include explicit manual-mark transitions; native execution verifies untouched inventory as well as the intended actions.

search --installed --provider ... performs literal case-insensitive filtering over a single installed-inventory snapshot for every consultation adapter. It requires neither repository search nor a solver and never refreshes repositories. The TUI uses the same filtering service. Default search keeps its native-provider semantics.

deps exposes installed dependency expressions for APT (dpkg control fields), Pacman (native dependency/optional/reverse relationship fields), RPM (--requires) and unambiguous Homebrew formulae. It rejects absent or ambiguous installed versions. RPM requirements include rich expressions, file and virtual capabilities. Homebrew formula metadata may differ from an installed keg's historical dependency versions; cask dependency queries remain unsupported. Flatpak dependency queries remain unsupported. No report fabricates resolved edges from names or alternatives.