Package workstation tools, reuse emulator sessions, and derive build versions
This commit is contained in:
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user