# verneed-closure — transcript # date(UTC): 2026-09-18T15:51:31Z # host: Ubuntu 24.04.4 LTS kernel 6.18.33.2-microsoft-standard-WSL2 # readelf: GNU readelf (GNU Binutils for Ubuntu) 2.42 # script sha256: 0c57013e43107848d84716e1c5bca393e2df96903d8b321cf81c068e185d2390 ## RUN A — real bundle: cradicle-gui-x86_64.AppImage (92 195 320 B) $ python3 verneed-closure.py cradicle-gui-x86_64.AppImage bundle: /home/choka/w26/squashfs-root elf objects: 133 sonames bundled: 27 version requirements checked: 1236 host-satisfied (diagnostic, non-blocking): 1042 HARD failures: 0 ## RUN B — synthetic drift case, control first (bundle ships FOO_1.0, app needs FOO_1.0) # source: int foo(void); version script FOO_1.0 { global: foo; }; app linked with -lfoo $ python3 verneed-closure.py vt bundle: /home/choka/w26/vt elf objects: 3 sonames bundled: 1 version requirements checked: 3 host-satisfied (diagnostic, non-blocking): 2 HARD failures: 0 # expected: 0 hard failures (bundle matches what the binary was linked against) ## RUN C — same bundle, library rebuilt as FOO_2.0 (ABI drift, soname unchanged) $ python3 verneed-closure.py vt bundle: /home/choka/w26/vt elf objects: 3 sonames bundled: 1 version requirements checked: 3 host-satisfied (diagnostic, non-blocking): 2 HARD failures: 1 FAIL usr/bin/app needs libfoo.so.1(FOO_1.0) - bundled but version missing # expected: 1 hard failure naming the exact (soname, version) the bundle no longer provides