- at the time relocation problems are added, ts problem set is NULL
and rpmtsCheck() wipes it out anyway so the problems from relocation
are never seen anywhere
- The header isn't available at transaction prepare stage where most
problems are checked for, so we can't validate the prefixes at that
point. Add a per-element problem set to carry the problem data and
merge it to ts problem set when checking for other problem types.
- pretty much everything else in rpm returns NULL from unreference functions,
make be more consistent here...
- also tolerate NULL in both reference and unreference
- disable dependency caching on chrooted verify to avoid ugly spew
from paths containing outside paths while we're actually inside the
root during verification
- correct fix would be to fix the temporary db path calculation
- RPMTAG_POLICIES is a string array but there's no guarantee that
something marked %policy is a plaintext file that can be represented
as \0-terminated string, base64-encoding them fixes that. Baby steps
towards making %policy remotely usable, related to RhBug:505066.
- Also remove unnecessary failure code setting, processMetadataFile()
assumes failure already, and dont try to insert NULL strings in case
b64encode() or pgpArmorWrap() fails
- precalculate the message length, relying on C99 vsnprintf() semantics
- generate the log message and rest of the record in rpmlog() already,
and just pass the record to lower level to do actual logging
- also something was wrong in the old version as valgrind complained
about illegal reads, that is also cured here
- requiring every caller to handle this separately, violating header type
opaqueness in the process, doesn't seem that bright an idea
- also fix a memleak on signature header read in case of failure
- use Temp perl module to provide temp dir
- re-enable deps solving in Require-Bundle, Import-Package, Export-Package
OSGI properties
- remove uses bundle of Export-Package OSGI property
- use RPM '>=' as version operator to match OSGI '='
- remove all .0 at the end of the version string
- typo fixes
- if it doesn't crash, it can cause rpmdb provided file not seen in chroot,
the other half of RhBug:506323
- streamline exit points to enable freeing allocated resources sanely
- avoids useless string churning on rpmdsNext() when most paths dont
actually use the DNEVR string for anything
- make sure DNEVR is freed whenever iterator index changes
- other src.rpm dependencies are only relevant for building, but rpmlib
features can affect src.rpm "install" too, such as unsupported file
digests, payload compressors etc
- Instead of blindly picking the first match, try to pick the best provider
for the dependency: for colored dependencies, try to find a provider of
matching color. For non-colored dependencies, prefer providers of
transaction preferred color.
- This avoids creating bogus and loopy relations between 32- and 64-bit packages
where they dont exist, and makes behavior with things like /sbin/ldconfig
consistent by returning the preferred colored element.