Package workstation tools, reuse emulator sessions, and derive build versions

This commit is contained in:
2026-09-23 03:45:48 +08:00
parent 6bfcce8070
commit f5d9f96409
79 changed files with 878 additions and 132 deletions
+8
View File
@@ -6,6 +6,8 @@ import pathlib
import stat
import struct
import sys
import shlex
from fds_version import validate
from rootfs_lib import package_db, rooted
@@ -29,6 +31,12 @@ def audit(root, configured=True):
assert path.is_dir() and not path.is_symlink(), f"Missing directory: {name}"
assert stat.S_IMODE(path.stat().st_mode) == int(mode, 8), f"Wrong directory mode: {name}"
assert 'ID=fds\n' in (root / "usr/lib/os-release").read_text(), "Wrong OS identity"
identity = dict(line.split('=', 1) for line in shlex.split((root / 'usr/lib/os-release').read_text(), comments=True))
version = validate(identity['VERSION_ID'])
assert identity['VERSION'] == version and identity['PRETTY_NAME'] == f'FDS/OS {version}', 'Inconsistent OS version'
assert (root / 'etc/issue').read_text() == f'FDS/OS {version}\n', 'Inconsistent login version'
for package in ('fds-base', 'fds-base-files', 'fds-init', 'fds-cli', 'fds-cartridged', 'fds-dasungd', 'fds-eink'):
assert db[package]['pkgver'] == f'{package}-{version}_1', f'OS/package version mismatch: {package}'
release = (root / "usr/share/fds/kernel-release").read_text().strip()
assert (root / "usr/lib/modules" / release / "modules.dep").is_file(), "Missing matching kernel module index"
assert (root / "etc/shadow").stat().st_mode & 0o777 == 0o600, "Shadow file is exposed"