Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Also remove abstraction layer between rpmdb.h and the back end
in lib/backend/
|
|
- while the "really public" API of librpmio has only been enhanced,
librpm and librpmbuild use some supposedly internal bits which *have*
changed considerably, so just to prevent anybody thinking they can
combine librpmio from rpm 4.7 and librpm from this...
- librpmbuild hasn't seen much real change but some (unfortunately)
exposed struct members have changed so...
- librpm is mostly compatible but as rpmal has become internal API,
we need to bump (annoyingly, as nothing actually uses rpmal ... sigh)
|
|
|
|
- Execve() failure wasn't returning an error code, causing rpm to
think the password was ok when we couldn't even try verifying
- Stricter return code checking from the password checking child:
the password can only be ok if the child exits with WIFEXITED() *and*
WIFEXITCODE() of 0. Also WIFEXITCODE() should only be called if
WIFEXITED() returns true.
|
|
|
|
- simply make readonly filesystems appear as full, preventing install
early instead of failing with cpio errors in middle of transaction
|
|
- return RPMTAG_EPOCH but convert non-existent epoch to 0, as rpm internals
treat it
|
|
- worst case behavior for uncached dependency lookups can be disastrous,
eg > 35s vs < 1s on my laptop for trying to remove /bin/sh provider
- we only bother caching rpmdb lookups, the other cases plenty fast already
- using in-memory cache avoids nasty in vs out of chroot issues with
temporary db files, which otherwise were about as fast
|
|
|
|
|
|
- we dont require exact int32 etc types, any numeric type works
|
|
- speeds up non-verbose --list queries by some ~50%
|
|
- Only report disk space/inode issues for packages that are affected
instead of piling up all the problems in all filesystems on all remaining
packages
- The messages are still ambiguous at best, need to figure out something
better one of these days...
|
|
- some packages in the wild have rpmlib() requires without the flag set
due to older rpm not always setting it (for one, rpmdeps as external
dependency generator could cause such deps), causing bogus dependency
failures on install
- only fix up dependencies coming from a header, rpmdsSingle() correctness
is up to the caller
|
|
|
|
- add getter for fd digest bundle, uninline the setter
|
|
- only the FSM cares about cpio position, move it there - there's only
ever one fd active inside FSM, no need to track it per-fd
|
|
|
|
|
|
- hack to permit different query formatting based on rpm's verbosity level
|
|
|
|
- trying to remove non-installed header counts as an error
|
|
- trivially implemented in python by iterating over transaction element
keys, we dont need no stinking extra librpm APIs for this
|
|
- not strictly needed as it gets its default from a macro but .. shrug
|
|
- we dont always want the actual contents of the tag to be copied
on iteration, so add an interface that returns the next tag in the
header
- this lets callers to decide what to do with the tag and how to
retrieve it
|
|
|
|
|
|
- broken ages ago somewhere between 4.4.x and 4.6.x by typing changes
presumably
- C99 strtoul() can figure the base on its own, remove unnecessary work
|
|
|
|
- enabling this as-is would be murderous to multilib systems
- getting duplicates in the db would be a bug elsewhere
|
|
- it doesn't speed up things that much, is broken in some chroot
scenarios and is ugly ugly hardwired BDB hackery where it doesn't belong
|
|
- this is a common operation for any backends, avoid duplication
- only try to create it once instead of every index open, and if it
doesn't exist and cant be created, error out instead of trying to continue
in vain
|
|
|
|
|
|
- additionally make the popt struct const since it can...
|
|
|
|
|
|
- it's insecure, used by nobody (its been rather broken for a long
time) and all, but BDB 4.8.x removed RPC support from upstream so we
cant very well support in the future even if we wanted to
|
|
- it's removed from BDB 4.8.x and this has hardly ever done anything anyway
|
|
|
|
|
|
- Only the actual db->open() wants NULL for temporary databases, everywhere
else we want the tag name. Handle the temporary case where it counts
instead of complicating things everywhere for the one special case.
|
|
|
|
|
|
|
|
- This allows the db to move freely wherever (such as across chroots,
RhBug:507309 and pile of related issues) .. and is even recommended
by BDB documentation. Well duh.
|
|
- rfree() prototype doesn't match free() but it doesn't matter in this
case as it's just a convencience wrapper with no extra functionality
and setting NULL is ok according to BDB docs
- db->set_alloc() can't be used if environment is used, fix the condition
|
|
|
|
|