|
2 | 2 |
|
3 | 3 | All notable changes to this project will be documented in this file. |
4 | 4 |
|
5 | | -## [Unreleased] |
| 5 | +## [1.8.0] - 2026-06-19 |
6 | 6 |
|
7 | 7 | ### Added |
8 | 8 |
|
9 | 9 | - CI cross-compilation jobs for aarch64 and riscv64 |
10 | 10 | - Release workflow now produces `.apg` packages for all three architectures |
| 11 | +- `db_verify()` — checks that every file recorded for each installed package |
| 12 | + exists on disk under a given root; returns a `db_verify_issue` array with |
| 13 | + per-package lists of missing paths |
| 14 | +- `db_verify_free()` — companion free function for `db_verify()` results |
| 15 | + |
| 16 | +### Fixed |
| 17 | + |
| 18 | +- `TRANS_OP_REMOVE` now removes package files from disk before calling |
| 19 | + `db_remove()`; previously only the database record was deleted |
| 20 | +- `db_owner()` replaced O(n×m) full-scan with an O(1) `mdb_get` lookup |
| 21 | + against a new `file_owner` LMDB index (`file_path → pkg_name`); the index |
| 22 | + is maintained automatically by `db_add()` and `db_remove()` |
| 23 | +- `run_script()` now sandboxes the child process with isolated network, mount, |
| 24 | + UTS, and IPC namespaces on Linux via `unshare()`; sandbox failure is |
| 25 | + fail-closed (script is not executed) |
11 | 26 |
|
12 | 27 | ### Changed |
13 | 28 |
|
| 29 | +- Linux namespace sandbox in `run_script()` guarded behind `#ifdef __linux__`; |
| 30 | + on other POSIX platforms scripts run without isolation |
| 31 | +- Hardcoded paths and LMDB map size extracted into Meson build options: |
| 32 | + `keyring_dir`, `keys_dir`, `tmp_dir`, `db_mapsize` |
14 | 33 | - Cross files (`cross-aarch64.txt`, `cross-riscv64.txt`) migrated `c_args` and |
15 | 34 | `c_link_args` to `[built-in options]`; added `pkgconfig` to `[binaries]` |
16 | 35 |
|
|
0 commit comments