rpm  4.5
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.
Global argerror (const char *desc)
(CLI embedding) Use rpmMessage/rpmlog instead of fprintf, remove exit.
Global armorFormat (HE_t he, const char **av)
Permit selectable display formats (i.e. binary).
Global base64Format (HE_t he, const char **av)
Permit selectable display formats (i.e. binary).
File buildio.h
Eliminate, merge into rpmlib.
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, rpmTagType *type, rpmTagData *p, rpmTagCount *c, int minMem)
Permit retrieval of regions other than HEADER_IMUTABLE.
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)
glibc also supports ",ccs="
Global dbiFindByLabel (dbiIndex dbi, DBC *dbcursor, DBT *key, DBT *data, const char *arg, dbiIndexSet *matches)
Name must be an exact match, as name is a db key.
Page Dependencies
per-interpreter dependency generators are not located in subdirectories.
Global doSetupMacro (Spec spec, char *line)
FIXME: Option -q broken when not immediately after setup.
Global expandMacro (MacroBuf mb)
Dynamically reallocate target buffer.
Global expandMacros (void *spec, MacroContext mc, char *sbuf, size_t slen)
Eliminate from API.
Global fingerPrint
Convert to pointer and make abstract.
Global genCpioListAndHeader (FileList fl, rpmfi *fip, Header h, int isSrc)

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

Remove RPMTAG_OLDFILENAMES, add dirname/basename instead.

Global getFilesystemList (void)
determine rdonly for non-linux file systems.
Global getGidS (const char *gname)
Implement using hash.
Global getGname (gid_t gid)
Implement using hash.
Global getGnameS (const char *gname)
Implement using hash.
Global getOutputFrom (const char *dir, ARGV_t argv, const char *writePtr, int writeBytesLeft, int failNonZero)
Use poll(2) rather than select(2), if available.
Global getUidS (const char *uname)
Implement using hash.
Global getUname (uid_t uid)
Implement using hash.
Global getUnameS (const char *uname)
Implement using hash.
Global grabArgs (MacroBuf mb, const MacroEntry me, const char *se, const char *lastc)
Use popt rather than getopt to parse args.
Global handleOneTrigger (const rpmpsm psm, Header sourceH, Header triggeredH, int arg2, unsigned char *triggersAlreadyRun)
Trigger on any provides, not just package NVR.
Global HDRaddorappend )(Header h, int_32 tag, int_32 type, const void *p, int_32 c)
Arg "p" should have const.
Global HDRsort )(Header h)
Eliminate from API.
Global HDRunsort )(Header h)
Eliminate from API.
File header.h
Document version2 headers.
Global headerAddOrAppendEntry (Header h, int_32 tag, int_32 type, const void *p, int_32 c)
Arg "p" should have const.
Global headerFreeData (const void *data, rpmTagType type)
Remove from API.
Global headerMergeLegacySigs (Header h, const Header sigh)
Remove headerSort() through headerInitIterator() modifies sig.
Global headerRegenSigHeader (const Header h, int noArchiveSize)
Remove headerSort() through headerInitIterator() modifies h.
Page Immutable header regions in rpm-4.0.1 and later
Either concatenated/nested regions may be used to implement a metarpm, aka a package of packages, dunno how, when, or even if, yet.
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 Mkfifo (const char *path, mode_t mode)
Implement remotely.
Global Mknod (const char *path, mode_t mode, dev_t dev)
Implement remotely.
Global myTagName (headerTagTableEntry tbl, int val, int *typep)
bsearch on sorted value table.
Global myTagValue (headerTagTableEntry tbl, const char *name)
bsearch on sorted name table.
Global Open (const char *path, int flags, mode_t mode)
Implement remotely.
Global pgpExtractPubkeyFingerprint (const char *b64pkt, byte *keyid)
V3 non-RSA public keys not implemented.
Global pgpHashAlgo
Add SHA256.
Global pgpHashAlgo
Add SHA256.
Global pgpHexStr (const byte *p, unsigned int plen)
Remove static buffer.
Global pgpMpiStr (const byte *p)
Remove static buffer.
Global pgpPubkeyFingerprint (const byte *pkt, unsigned int pktlen, byte *keyid)
V3 non-RSA public keys not implemented.
Global printHash (const unsigned long long amount, const unsigned long long total)
Unsnarl isatty(STDOUT_FILENO) from the control flow.
Global printSize (FD_t fd, int siglen, int pad, size_t datalen)
rpmio: use fdSize rather than fstat(2) to get file size.
Global readFile (FD_t fd, const char *fn, pgpDig dig)
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, fileAction *actions)
multilib file dispositions need to be checked.
Global RPM_BIN_ARRAY_TYPE
Implement, kinda like RPM_STRING_ARRAY_TYPE for known (but variable) length binary data.
Global RPM_XREF_TYPE
Implement, intent is to to carry a (???,tagNum,valNum) cross reference to retrieve data from other tags.
Global rpmalSatisfiesDepend (const rpmal al, const rpmds ds, alKey *keyp)
Eliminate.
Global rpmcliImportPubkey (const rpmts ts, const unsigned char *pkt, ssize_t pktlen)
Implicit –update policy for gpg-pubkey headers.
Global rpmcliImportPubkeys (const rpmts ts, QVA_t qva, const char **argv)
Implicit –update policy for gpg-pubkey headers.
Global rpmcliQuery (rpmts ts, QVA_t qva, const char **argv)
hack: RPMQV_ALL can pass char ** arglist = NULL, not char * arg. Union?
Global rpmcliVerify (rpmts ts, QVA_t qva, const char **argv)
hack: RPMQV_ALL can pass char ** arglist = NULL, not char * arg. Union?
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.
File rpmerr.h
Eliminate from API.
Global rpmfcPrint (const char *msg, rpmfc fc, FILE *fp)
Remove debugging routine.
Global rpmFreeRpmrc (void)
Eliminate from API.
Global rpmGetArchInfo (const char **name, int *num)
Generalize to extract arch component from target_platform macro.
Global rpmGetOsInfo (const char **name, int *num)
Generalize to extract os component from target_platform macro.
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.

Global rpmgiOpen (const char *path, const char *fmode)
There are two error messages printed on header, then manifest failures.
Global rpmInstall (rpmts ts, QVA_t ia, const char **fileArgv)
Use rpmdsCompare rather than rpmVersionCompare.
Class rpmlead
Don't use any information from lead.
Global rpmlogCallback )(void)
Add argument(s), integrate with other types of callbacks.
Global rpmlogClose (void)
Implement.
Global rpmlogOpen (const char *ident, int option, int facility)
Implement.
File rpmmessages.h
Eliminate from API.
Global rpmprobFilterFlags
Generalize filter mechanism.
Global rpmprobFilterFlags
Generalize filter mechanism.
Global rpmProblemGetLong (rpmProblem prob)
needs a better name
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.
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 rpmSetMachine (const char *arch, const char *os)
Eliminate from API.
Global rpmSetTables (int archTable, int osTable)
Eliminate from API. #
Global rpmShowProgress (const void *arg, const rpmCallbackType what, const unsigned long long amount, const unsigned long long total, fnpyKey key, void *data)
Remove headerSprintf() from the progress callback.
Global rpmsqWaitUnregister (rpmsq sq)
Rewrite to use waitpid on helper thread.
Global rpmTag
: Somehow supply type
Global rpmTag
: Somehow supply type
Global rpmtePkgFileSize (rpmte te)
Signature header is estimated at 256b.
Global RPMTRANS_FLAG_KEEPOBSOLETE
Document.
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.
Global rpmVerifyFile (const rpmts ts, rpmfi fi, rpmVerifyAttrs *res, rpmVerifyAttrs omitMask)
gnorpm and python bindings prevent this from being static.
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.
Global showQueryPackage (QVA_t qva, rpmts ts, Header h)
Devise a meaningful return code.
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 Utime (const char *path, const struct utimbuf *buf)
Implement remotely.
Global Utimes (const char *path, const struct timeval *times)
Implement remotely.
Global xrealloc (void *ptr, size_t size)
Annotate ptr with returned/out.
Global XrpmdbLink (rpmdb db, const char *msg, const char *fn, unsigned ln)
Remove debugging entry from the ABI.
Global XrpmdbUnlink (rpmdb db, const char *msg, const char *fn, unsigned ln)
Remove debugging entry from the ABI.
Global XrpmdsLink (rpmds ds, const char *msg, const char *fn, unsigned ln)
Remove debugging entry from the ABI.
Global XrpmdsUnlink (rpmds ds, const char *msg, const char *fn, unsigned ln)
Remove debugging entry from the ABI.
Global XrpmfiLink (rpmfi fi, const char *msg, const char *fn, unsigned ln)
Remove debugging entry from the ABI.
Global XrpmfiUnlink (rpmfi fi, const char *msg, const char *fn, unsigned ln)
Remove debugging entry from the ABI.
Global XrpmgiLink (rpmgi gi, const char *msg, const char *fn, unsigned ln)
Remove debugging entry from the ABI.
Global XrpmgiUnlink (rpmgi gi, const char *msg, const char *fn, unsigned ln)
Remove debugging entry from the ABI.
Global XrpmpsLink (rpmps ps, const char *msg, const char *fn, unsigned ln)
Remove debugging entry from the ABI.
Global XrpmpsmLink (rpmpsm psm, const char *msg, const char *fn, unsigned ln)
Remove debugging entry from the ABI.
Global XrpmpsmUnlink (rpmpsm psm, const char *msg, const char *fn, unsigned ln)
Remove debugging entry from the ABI.
Global XrpmpsUnlink (rpmps ps, const char *msg, const char *fn, unsigned ln)
Remove debugging entry from the ABI.
Global XrpmsxLink (rpmsx sx, const char *msg, const char *fn, unsigned ln)
Remove debugging entry from the ABI.
Global XrpmsxUnlink (rpmsx sx, const char *msg, const char *fn, unsigned ln)
Remove debugging entry from the ABI.
Global XrpmtsLink (rpmts ts, const char *msg, const char *fn, unsigned ln)
Remove debugging entry from the ABI.
Global XrpmtsUnlink (rpmts ts, const char *msg, const char *fn, unsigned ln)
Remove debugging entry from the ABI.
Global XurlFree (urlinfo u, const char *msg, const char *file, unsigned line)
Remove debugging entry from the ABI.
Global XurlLink (urlinfo u, const char *msg, const char *file, unsigned line)
Remove debugging entry from the ABI.
Global XurlNew (const char *msg, const char *file, unsigned line)
Remove debugging entry from the ABI.