# RPM Legacy BDB Packages Database Fallback ## Module Scanner ## Status IMPLEMENTED ## Description Adds fallback support for legacy Berkeley DB (BDB) format RPM package databases alongside the modern SQLite format, enabling package discovery on older RHEL/CentOS images. ## Implementation Details - **Berkeley DB Reader**: - `src/Scanner/__Libraries/StellaOps.Scanner.Analyzers.OS.Rpm/Internal/BerkeleyDbReader.cs` - `BerkeleyDbReader` parses legacy BDB format RPM package databases for older RHEL/CentOS images - **RPM Database Reader**: - `src/Scanner/__Libraries/StellaOps.Scanner.Analyzers.OS.Rpm/RpmDatabaseReader.cs` - `RpmDatabaseReader` with fallback logic: tries modern SQLite format first, falls back to BDB format for legacy images ## E2E Test Plan - [ ] Scan an older RHEL/CentOS image (pre-RHEL 8) using BDB format RPM database and verify packages are discovered - [ ] Scan a modern RHEL/CentOS image using SQLite format RPM database and verify it uses the primary path - [ ] Verify the fallback logic correctly detects the database format and chooses the appropriate reader - [ ] Verify BDB-parsed packages include correct name, version, release, and architecture metadata - [ ] Verify both BDB and SQLite paths produce consistent package lists for the same set of installed packages