Record FHS path test

This commit is contained in:
Mario Fetka
2026-07-21 12:13:38 +02:00
parent 58d2e897bd
commit 41e14856b2
2 changed files with 60 additions and 1 deletions
+1 -1
View File
@@ -56,7 +56,7 @@ only in the pass evidence directory, which must not be committed.
| BLD-13 | CPack source archive has no `-linux`, VCS, build, or private files | [PASS](test-evidence/0.7-r1.md#bld-13) | | |
| BLD-14 | Gentoo live ebuild builds, tests, installs, and passes package QA | [PASS](test-evidence/0.7-r1.md#bld-14) | | |
| BLD-15 | Debian package builds and installs on the target Debian release | [PASS](test-evidence/0.7-r1.md#bld-15) | | |
| BLD-16 | `/usr`, `/usr/local`, lib/lib64, sysconf, state, and runtime paths follow FHS | | | |
| BLD-16 | `/usr`, `/usr/local`, lib/lib64, sysconf, state, and runtime paths follow FHS | [PASS](test-evidence/0.7-r1.md#bld-16) | | |
| BLD-17 | Install, upgrade, reinstall, and uninstall preserve/remove documented state | | | |
| BLD-18 | Installed shared libraries have complete dependencies and valid SONAMEs | | | |
| BLD-19 | Man pages, translations, Web assets, docs, units, and examples are installed | | | |
+59
View File
@@ -555,3 +555,62 @@ dpkg-source -x sources/bongo/bongo_0.7.0-1.dsc bongo
Runtime configuration: the workflow used only its disposable Trixie
container and did not install or alter the live test host.
## BLD-16
Result: **PASS**
Two clean GCC 15.3.0 debug builds exercised crossed prefix/library layouts:
a distribution `/usr` install using `lib64`, and a self-contained
`/usr/local` install using `lib`. Both were installed below empty `DESTDIR`
roots and their compiled defaults, generated units, tmpfiles declaration,
ELF runpaths, directory trees, and symbolic links were audited.
```sh
cmake -S . -B /tmp/bongo-bld16-usr -G Ninja \
-DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=ON \
-DCMAKE_INSTALL_PREFIX=/usr -DLIB_DIR_NAME=lib64
cmake --build /tmp/bongo-bld16-usr --parallel 12
ctest --test-dir /tmp/bongo-bld16-usr --output-on-failure --parallel 12
DESTDIR=/tmp/bongo-bld16-usr-root \
cmake --install /tmp/bongo-bld16-usr --prefix /usr
cmake -S . -B /tmp/bongo-bld16-local -G Ninja \
-DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=OFF \
-DCMAKE_INSTALL_PREFIX=/usr/local -DLIB_DIR_NAME=lib
cmake --build /tmp/bongo-bld16-local --parallel 12
DESTDIR=/tmp/bongo-bld16-local-root \
cmake --install /tmp/bongo-bld16-local --prefix /usr/local
systemd-tmpfiles --create --dry-run \
--root=/tmp/bongo-bld16-tmpfiles-root \
/tmp/bongo-bld16-usr/init/bongo.conf
```
- Source: commit `58d2e89` (`Move volatile PID files under run`).
- Full CTest result: 72 passed, 0 failed in 3.40 seconds.
- `/usr` cache SHA-256:
`f56949bfc8fa2a0963c3460a96db3e61bb9f4a274ddfc4370f2d9e7c56025e48`.
- `/usr/local` cache SHA-256:
`5f86eafad069052a4fd7e04b523f6bf56f1f38becab410598cc0df7f8197637d`.
- Both staged trees contain 1,064 regular files or symbolic links. The first
uses `/usr/lib64`, `/etc/bongo`, and `/var/lib/bongo`; the second uses
`/usr/local/lib`, `/usr/local/etc/bongo`, and the same FHS state path.
- No staged directory appeared below `/usr/etc`, `/usr/var`,
`/usr/local/var`, `/var/run`, or `/run`. Runtime and persistent directories
are declarations created after installation, not package payload.
- Generated tmpfiles data passed `systemd-tmpfiles` parsing and declares
`/run/bongo` separately from `/var/lib/bongo`. The manager, agent recovery
flags, administration status, and managed LDAP PID paths all compile to the
volatile directory.
- All installed ELF runpaths match the selected `lib64` or `lib` directory;
no build-directory runpath was present. All 26 library symlinks in either
staged tree are relative and resolve within their selected library root.
The initial audit failed because PID and agent recovery files still used the
persistent `/var/lib/bongo/work` directory. The repair adds the configurable
`BONGO_RUNTIME_DIR` (default `/run/bongo`) while keeping diagnostic traces and
ring logs in persistent state.
Runtime configuration: isolated staging roots and a dry-run tmpfiles root;
the live Bongo installation and service were not modified.