How to reproduce it:
- A-1.0_1 provides liba.so.1
- B-1.0_1 provides libb.so.1
- C-1.0_1 requires liba.so.1 and libb.so.1
- A-2.0_1 provides liba.so.2
- C-2.0_1 required liba.so.2
This test case failed because it was checking the required shared libraries
from current installed package, rather than the updated pkg in transaction.
This effectively checks that all pkgs in a transaction to be installed
or updated, have not unmatched shared libraries, which might happen with
pkgs that had major soname bumps.
This implementation slow downs xbps_transaction_prepare() 2x, due to
the use of xbps_pkgdb_get_pkg_metadata(). A new pkgdb format is required
that adds the pkg shlib-provides objects to pkgdb, avoiding the need
to use xbps_pkgdb_get_pkg_metadata().