feat: packages, services and updates #2

Merged
christianmanivong merged 1 commits from feat/packages-services-updates into main 2026-10-08 08:02:26 +00:00
Owner

Packages, services and updates for both drivers (NetOrk/netork#799).

  • Packages: get_packages, install_package, uninstall_package, all actions as root and names validated first.
  • Updates: get_available_updates.
    • FreeBSD: pkg upgrade -n, with security from VuXML (pkg audit).
    • OpenBSD: pkg_add -u -n -v.
    • Base-system patches are one base-system entry (decided in #799): syspatch -c, or what freebsd-update has fetched on a classic FreeBSD. On pkgbase the base system is ordinary packages.
  • Services: get_services (the enabled services; FreeBSD reads their status as root, OpenBSD uses rcctl check) and manage_service (start, stop, restart, enable, disable as root).

Fixtures come from VMs with genuinely outdated packages. Checked live on FreeBSD 15.1 and OpenBSD 7.9: VuXML flags expat and python312; OpenBSD reports pcre2 and py3-tzdata plus base-system (34 patches). A service restart and installing and removing a package work on both. 102 tests.

Not verifiable here: the classic-FreeBSD freebsd-update updatesready path (the hand-installed test host has no sudo).

Packages, services and updates for both drivers (NetOrk/netork#799). - **Packages:** `get_packages`, `install_package`, `uninstall_package`, all actions as root and names validated first. - **Updates:** `get_available_updates`. - FreeBSD: `pkg upgrade -n`, with `security` from VuXML (`pkg audit`). - OpenBSD: `pkg_add -u -n -v`. - Base-system patches are one `base-system` entry (decided in #799): `syspatch -c`, or what `freebsd-update` has fetched on a classic FreeBSD. On pkgbase the base system is ordinary packages. - **Services:** `get_services` (the enabled services; FreeBSD reads their status as root, OpenBSD uses `rcctl check`) and `manage_service` (start, stop, restart, enable, disable as root). Fixtures come from VMs with genuinely outdated packages. Checked live on FreeBSD 15.1 and OpenBSD 7.9: VuXML flags `expat` and `python312`; OpenBSD reports `pcre2` and `py3-tzdata` plus `base-system` (34 patches). A service restart and installing and removing a package work on both. 102 tests. Not verifiable here: the classic-FreeBSD `freebsd-update updatesready` path (the hand-installed test host has no sudo).
christianmanivong added 1 commit 2026-10-08 07:59:17 +00:00
feat: packages, services and updates
CI / test (3.10) (push) Successful in 26s
CI / test (3.11) (push) Successful in 24s
CI / test (3.12) (push) Successful in 26s
CI / test (3.10) (pull_request) Successful in 25s
CI / test (3.11) (pull_request) Successful in 24s
CI / test (3.12) (pull_request) Successful in 25s
e8468a292a
The write side NetOrk/netork#799 needs, on both drivers.

- Packages: get_packages (FreeBSD `pkg query` with the repository as
  source, nothing on a classic system without pkg; OpenBSD `pkg_info`),
  install_package / uninstall_package as root (`pkg install`/`pkg
  delete`, `pkg_add -I`/`pkg_delete`), names checked before anything is
  sent, a failure raised with what the tool printed.
- Updates: get_available_updates. FreeBSD `pkg upgrade -n`, with
  `security` from VuXML (`pkg audit`: True for a listed package, False for
  any other, None when the audit could not run); OpenBSD `pkg_add -u -n
  -v` (no security verdict). Base-system patches are one `base-system`
  entry, as decided in #799: OpenBSD's `syspatch -c`, and on a classic
  FreeBSD what `freebsd-update` has fetched; on pkgbase the base system is
  packages from FreeBSD-base.
- Services: get_services lists the enabled ones (FreeBSD `service ...
  status` as root, as root-only pidfiles hide daemons otherwise, without
  root when sudo refuses; OpenBSD `rcctl check`), manage_service runs
  start/stop/restart/enable/disable as root and returns success and
  output.

Fixtures recorded on the FreeBSD 15.1 and OpenBSD 7.9 VMs with genuinely
outdated packages (FreeBSD pointed at the latest branch, an OpenBSD
package taken back to its release build). Checked live on both, including
a service restart and installing and removing a package.
christianmanivong merged commit 7bf028ef4d into main 2026-10-08 08:02:26 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: NAPALM/napalm-bsd#2