rpm  5.4.15
Todo List
Global Access (const char *path, int amode)
Implement remotely.
Global addChangelogEntry (Header h, time_t time, const char *name, const char *text)
addChangelogEntry should be static.
Parameters
hheader
timetime of change
nameperson who made the change
textdescription of change
Global argerror (const char *desc) __attribute__((__noreturn__))
(CLI embedding) Use rpmlog/rpmlog instead of fprintf, remove exit.
Parameters
descmessage
Global armorFormat (HE_t he, const char **av)
Permit selectable display formats (i.e. binary).
Parameters
hetag container
avparameter list (or NULL)
Returns
formatted string
Global base64Format (HE_t he, const char **av)
Permit selectable display formats (i.e. binary).
Parameters
hetag container
avparameter list (or NULL)
Returns
formatted string
File buildio.h
Eliminate, merge into rpmlib.
Global Chflags (const char *path, unsigned int flags)
Implement remotely.
Global Chmod (const char *path, mode_t mode)
Implement remotely.
Global Chown (const char *path, uid_t owner, gid_t group)
Implement remotely.
Global Chroot (const char *path)
Implement remotely.
Global copyEntry (const indexEntry entry, HE_t he, int minMem)
Permit retrieval of regions other than HEADER_IMUTABLE.
Parameters
entryheader entry
Return values
*hetag container
Parameters
minMemstring pointers refer to header memory?
Returns
1 on success, otherwise error.
Global cpio_doio (FD_t fdo, Header h, CSA_t csa, const char *payload_format, const char *fmodeMacro)
Create transaction set much earlier.
Global cvtfmode (const char *m, char *stdio, size_t nstdio, char *other, size_t nother, const char **end, int *f, mode_t *mode)
glibc also supports ",ccs="
Global dbiMireKeys (rpmdb db, rpmTag tag, rpmMireMode mode, const char *pat, dbiIndexSet *matches, const char ***argvp)
Move to Berkeley DB db3.c when dbiIndexSet is eliminated.
Parameters
dbrpm database
tagrpm tag
modetype of pattern match
patpattern to match (NULL iterates all keys).
Return values
*matchesarray or primary keys that match (or NULL)
*argvparray of secondary keys that match (or NULL)
Global deptypeFormat (HE_t he, const char **av)
There's more sense bits, and the bits are attributes, not exclusive.
Parameters
hetag container
avparameter list (or NULL)
Returns
formatted string
Global doSetupMacro (Spec spec, const char *line)
FIXME: Option -q broken when not immediately after setup.
Parameters
specbuild info
linecurrent line from spec file
Returns
0 on success
Global expandMacro (MacroBuf mb)
Dynamically reallocate target buffer.
Parameters
mbmacro expansion state
Returns
0 on success, 1 on failure
Global expandMacros (void *spec, MacroContext mc, char *sbuf, size_t slen)
Eliminate from API.
Parameters
speccookie (unused)
mcmacro context (NULL uses global context).
Return values
sbufinput macro to expand, output expansion
Parameters
slensize of buffer
Returns
0 on success
Global Fchflags (FD_t fd, unsigned int flags)
Implement remotely.
Global Fchmod (FD_t fd, mode_t mode)
Implement remotely.
Global Fchown (FD_t fd, uid_t owner, gid_t group)
Implement remotely.
Global fingerPrint
Convert to pointer and make abstract.
Global freePackage (Package pkg)
Rename to pkgFree.
Parameters
pkgpackage control structure
Returns
NULL on last dereference
Global freeSpec (Spec spec)
Rename to specFree.
Parameters
specspec file control structure
Returns
NULL on last dereference
Global genCpioListAndHeader (FileList fl, rpmfi *fip, Header h, int isSrc)

Should directories have doc/config attributes? (#14531)

Remove RPMTAG_OLDFILENAMES, add dirname/basename instead.

Parameters
flpackage file tree walk data
Return values
*fipfile info for package
Parameters
h
isSrc
Global getFilesystemList (void)
determine rdonly for non-linux file systems.
Returns
0 on success, 1 on error
Global getGidS (const char *gname)
Implement using hash.
Parameters
gnamegroup name
Returns
cached gid
Global getGname (gid_t gid)
Implement using hash.
Parameters
gidgroup id
Returns
cached group name
Global getGnameS (const char *gname)
Implement using hash.
Parameters
gnamegroup name
Returns
cached group name
Global getOutputFrom (const char *dir, ARGV_t argv, const char *writePtr, size_t writeBytesLeft, int failNonZero)
Use poll(2) rather than select(2), if available.
Parameters
dirdirectory to run in (or NULL)
argvprogram and arguments to run
writePtrbytes to feed to script on stdin (or NULL)
writeBytesLeftno. of bytes to feed to script on stdin
failNonZerois script failure an error?
Returns
buffered stdout from script, NULL on error
Global getUidS (const char *uname)
Implement using hash.
Parameters
unameuser name
Returns
cached uid
Global getUname (uid_t uid)
Implement using hash.
Parameters
uiduser id
Returns
cached user name
Global getUnameS (const char *uname)
Implement using hash.
Parameters
unameuser name
Returns
cached user name
Global grabArgs (MacroBuf mb, const MacroEntry me, const char *se, const char *lastc)
Use popt rather than getopt to parse args.
Parameters
mbmacro expansion state
memacro entry slot
searguments to parse
lastcstop parsing at lastc
Returns
address to continue parsing
Global headerMergeLegacySigs (Header h, const Header sigh)
Remove headerSort() through headerInitIterator() modifies sig.
Parameters
hheader
sighsignature header
Global headerRegenSigHeader (const Header h, int noArchiveSize)
Remove headerSort() through headerInitIterator() modifies h.
Parameters
hheader
noArchiveSizedon't copy archive size tag (pre rpm-4.1)
Returns
regenerated signature header
Class iosmIterator_s
rpmts and rpmsx need to be moved elsewhere.
Global Lchflags (const char *path, unsigned int flags)
Implement remotely.
Global Lchmod (const char *path, mode_t mode)
Implement remotely.
Global Lchown (const char *path, uid_t owner, gid_t group)
Implement remotely.
Global Lseek (int fdno, off_t offset, int whence)
Implement SEEK_HOLE/SEEK_DATA.
Global Lutimes (const char *path, const struct timeval *times)
Implement remotely.
Global Mkfifo (const char *path, mode_t mode)
Implement remotely.
Global Mknod (const char *path, mode_t mode, dev_t dev)
Implement remotely.
Global Open (const char *path, int flags, mode_t mode)
Implement remotely.
Global pgpExtractPubkeyFingerprint (const char *b64pkt, rpmuint8_t *keyid)
V3 non-RSA public keys not implemented.
Parameters
b64pktbase64 encoded openpgp packet
Return values
keyid[8]public key fingerprint
Returns
8 (no. of bytes) on success, < 0 on error
Global pgpHashAlgo
Add SHA256.
Global pgpHashAlgo
Add SHA256.
Global pgpHexStr (const rpmuint8_t *p, size_t plen)
Remove static buffer.
Parameters
pbytes
plenno. of bytes
Returns
hex formatted string
Global pgpMpiStr (const rpmuint8_t *p)
Remove static buffer.
Parameters
pbytes
Returns
hex formatted string
Global pgpPubkeyFingerprint (const rpmuint8_t *pkt, size_t pktlen, rpmuint8_t *keyid)
V3 non-RSA public keys not implemented.
Parameters
pktOpenPGP packet (i.e. PGPTAG_PUBLIC_KEY)
pktlenOpenPGP packet length (no. of bytes)
Return values
keyidpublick key fingerprint
Returns
0 on success, else -1
Global printHash (const rpmuint64_t amount, const rpmuint64_t total)
Unsnarl isatty(STDOUT_FILENO) from the control flow.
Parameters
amountcurrent
totalfinal
Global readFile (FD_t fd, const char *fn)
If the GPG key was known available, the md5 digest could be skipped.
Global Readlink (const char *path, char *buf, size_t bufsiz)
Implement remotely.
Global relocateFileList (const rpmts ts, rpmfi fi, Header origH, iosmFileAction *actions)
multilib file dispositions need to be checked.
Parameters
tstransaction set
fitransaction element file info
origHpackage header
actionsfile dispositions
Returns
header with relocated files
Global rpm_machtable_e
Eliminate in rpm-5.1.
Global rpmalSatisfiesDepend (const rpmal al, const rpmds ds, alKey *keyp)
Eliminate.
Parameters
alavailable list
dsdependency set
Return values
keypadded package key pointer (or NULL)
Returns
associated package key, NULL if none
Global rpmaugNew (const char *root, const char *loadpath, unsigned int flags)
Change to common RPM embedded interpreter API.
Parameters
rootaugeas filesystem root
loadpathaugeas load path (colon separated)
flagsaugeas flags
Returns
new augeas wrapper
Global rpmbfDel (rpmbf bf, const void *_s, size_t ns)
Counting bloom filter needed?
Parameters
bfBloom filter
*_sbytes
nsno. bytes (0 will do strlen)
Returns
0 on success, -1 on NULL pointer
Global rpmcliImportPubkey (const rpmts ts, const unsigned char *pkt, ssize_t pktlen)
Implicit –update policy for gpg-pubkey headers.
Parameters
tstransaction set
pktpgp pubkey packet(s)
pktlenpgp pubkey length
Returns
RPMRC_OK/RPMRC_FAIL
Global rpmcliImportPubkeys (const rpmts ts, QVA_t qva, const char **argv)
Implicit –update policy for gpg-pubkey headers.
Parameters
tstransaction set
qvamode flags and parameters
argvarray of pubkey file names (NULL terminated)
Returns
0 on success
Global rpmcliInstall (rpmts ts, QVA_t ia, const char **argv)
Use rpmdsCompare rather than rpmVersionCompare.
Parameters
tstransaction set
iamode flags and parameters
argvarray of package file names (NULL terminated)
Returns
0 on success
Generalize –freshen policies.
Global rpmcliQuery (rpmts ts, QVA_t qva, const char **argv)
hack: RPMQV_ALL can pass char ** arglist = NULL, not char * arg. Union?
Parameters
tstransaction set
qvaparsed query/verify options
argvquery argument(s) (or NULL)
Returns
0 on success, else no. of failures
Global rpmcliVerify (rpmts ts, QVA_t qva, const char **argv)
hack: RPMQV_ALL can pass char ** arglist = NULL, not char * arg. Union?
Parameters
tstransaction set
qvaparsed query/verify options
argvverify argument(s) (or NULL)
Returns
0 on success, else no. of failures
Global rpmdbNew (const char *root, const char *home, int mode, mode_t perms, int flags)
document rpmdbNew
Global rpmDefineMacro (MacroContext mc, const char *macro, int level)
Document.
Global rpmdepFlags
Move to rpmts.h.
Global rpmdepFlags
Move to rpmts.h.
Global rpmdsLdconfig (rpmPRCO PRCO, const char *fn)
Add dependency colors, and attach to file.
Return values
*PRCOprovides/requires/conflicts/obsoletes depedency set(s)
Parameters
fncache file name (NULL uses /etc/ld.so.cache)
Returns
0 on success
Global rpmfcPrint (const char *msg, rpmfc fc, FILE *fp)
Remove debugging routine.
Parameters
msgmessage prefix (NULL for none)
fcfile classifier
fpoutput file handle (NULL for stderr)
Global rpmFreeRpmrc (void)

Eliminate in rpm-5.1. Destroy rpmrc arch/os compatibility tables.

Eliminate from API.

Global rpmgiLoadReadHeader (rpmgi gi)

An empty file read as manifest truncates argv returning RPMRC_NOTFOUND.

Errors, e.g. non-existent path in manifest, will terminate iteration.

Chained manifests lose an arg someplace.

Parameters
gigeneralized iterator
Returns
RPMRC_OK on success
Global rpmgiOpen (const char *path, const char *fmode)
There are two error messages printed on header, then manifest failures.
Parameters
pathfile path
fmodeopen mode
Returns
file handle
Global rpmInstallSourcePackage (rpmts ts, void *_fd, const char **specFilePtr, const char **cookie)
Eliminate in rpm-5.1, insturment rpmtsRun() state machine instead.
Parameters
tstransaction set
_fdfile handle
Return values
specFilePtraddress of spec file name (or NULL)
cookieaddress of cookie pointer (or NULL)
Returns
rpmRC return code
Class rpmlead
Don't use any information from lead.
Global rpmlogClose (void)
Implement.
Global rpmlogOpen (const char *ident, int option, int facility)
Implement.
Global rpmprobFilterFlags
Generalize filter mechanism.
Global rpmprobFilterFlags
Generalize filter mechanism.
Global rpmProblemGetStr (rpmProblem prob)
needs a better name
Global rpmpsmStage (rpmpsm psm, pkgStage stage)
Packages w/o files never get a callback, hence don't get displayed on install with -v.
Global rpmQueryFlags
Merge rpmQueryFlags, rpmVerifyFlags, and rpmVerifyAttrs?.
Global rpmQueryFlags
Merge rpmQueryFlags, rpmVerifyFlags, and rpmVerifyAttrs?.
Global rpmQVSources
Reassign to tag values.
Global rpmQVSources
Reassign to tag values.
Global rpmReadPackageFile (rpmts ts, FD_t fd, const char *fn, Header *hdrp)

Implement disable/enable/warn/error/anal policy.

The rpmts either needs to become void *, or changed to -lrpmdb scope.

Parameters
tstransaction set
fdfile handle
fnfile name
Return values
hdrpaddress of header (or NULL)
Returns
RPMRC_OK on success
Global rpmReadPackageManifest (FD_t fd, int *argcPtr, const char ***argvPtr)
Infinite loops through manifest files exist, operator error for now.
Global rpmRollback (rpmts ts, QVA_t ia, const char **argv)
Transaction handling, more, needs work.
Global rpmSetTables (int archTable, int osTable)

Eliminate in rpm-5.1.

Only used by build code.

Parameters
archTable
osTable
Global rpmSetVerbosity (_lvl)
These convenience macros belong somewhere else.
Global rpmShowProgress (const void *arg, const rpmCallbackType what, const rpmuint64_t amount, const rpmuint64_t total, fnpyKey key, void *data)
Remove headerSprintf() from the progress callback.
Warning
This function's args have changed, so the function cannot be used portably
Global rpmsqWaitUnregister (rpmsq sq)
Rewrite to use waitpid on helper thread.
Parameters
sqscriptlet queue element
Returns
0 on success
Global rpmtePkgFileSize (rpmte te)
Signature header is estimated at 256b.
Parameters
tetransaction element
Returns
size in bytes of package file.
Global rpmtransFlags
Move to rpmts.h.
Global rpmtransFlags
Move to rpmts.h.
Global rpmts_AddErase (rpmtsObject *s, PyObject *args, PyObject *kwds)
Permit finer control (i.e. not just –allmatches) of deleted elments.
Global rpmts_iternext (rpmtsObject *s)
Add TR_ADDED filter to iterator.
Global rpmts_Next (rpmtsObject *s)
Add TR_ADDED filter to iterator.
Global rpmtsiFi (const rpmtsi tsi)
Take a rpmfi refcount here.
Parameters
tsitransaction element iterator
Returns
transaction element file info
Global rpmUndefineMacro (MacroContext mc, const char *macro)
Document.
Global rpmVerifyFlags
Merge rpmQueryFlags, rpmVerifyFlags, and rpmVerifyAttrs values?.
Global rpmVerifyFlags
Merge rpmQueryFlags, rpmVerifyFlags, and rpmVerifyAttrs values?.
Global rpmVerifyScript (QVA_t qva, rpmts ts, rpmfi fi, FD_t scriptFd)
malloc/free/refcount handling is fishy here.
Parameters
qvaparsed query/verify options
tstransaction set
fifile info set
scriptFdfile handle to use for stderr (or NULL)
Returns
0 on success
Global showQueryPackage (QVA_t qva, rpmts ts, Header h)
Devise a meaningful return code.
Parameters
qvaparsed query/verify options
tstransaction set
hheader to use for query
Returns
0 always
Global Symlink (const char *oldpath, const char *newpath)
Implement remotely.
Global tagMacros []
Should other macros be added from header when installing a package?
Global tagMacros []
Should other macros be added from header when installing a package?
Global tagType (rpmTag tag)
Return rpmTagType-like, not unsigned int. There's no clear typedef yet.
Parameters
tagtag value
Returns
tag data type, 0 on not found.
Global Utimes (const char *path, const struct timeval *times)
Implement remotely.
Global xrealloc (void *ptr, size_t size)
Annotate ptr with returned/out.
Global XurlNew (const char *msg, const char *fn, unsigned ln)
Remove debugging entry from the ABI.