rpm 4.9.1.3
Todo List

Global expandMacros (void *spec, rpmMacroContext mc, char *sbuf, size_t slen)
Eliminate from API.

Global headerMergeLegacySigs (Header h, const Header sigh)
Remove headerSort() through headerInitIterator() modifies sig.

Global headerPutString (Header h, rpmTagVal tag, const char *val)
Make doxygen group these meaningfully.

Global headerRegenSigHeader (const Header h, int noArchiveSize)
Remove headerSort() through headerInitIterator() modifies h.

Global pgpExtractPubkeyFingerprint (const char *b64pkt, pgpKeyID_t keyid)
V3 non-RSA public keys not implemented.

Global pgpHashAlgo
Add SHA256.

Global pgpPubkeyFingerprint (const uint8_t *pkt, size_t pktlen, pgpKeyID_t keyid)
V3 non-RSA public keys not implemented.

Global RPM_BIN_ARRAY_TYPE
Implement, kinda like RPM_STRING_ARRAY_TYPE for known (but variable) length binary data.

Global rpm_machtable_e
Eliminate from API.

Global RPM_XREF_TYPE
Implement, intent is to to carry a (???,tagNum,valNum) cross reference to retrieve data from other tags.

Global rpmcliQuery (rpmts ts, QVA_t qva, ARGV_const_t argv)
hack: RPMQV_ALL can pass char ** arglist = NULL, not char * arg. Union?

Global rpmcliVerify (rpmts ts, QVA_t qva, ARGV_const_t argv)
hack: RPMQV_ALL can pass char ** arglist = NULL, not char * arg. Union?

Global rpmfcPrint (const char *msg, rpmfc fc, FILE *fp)
Remove debugging routine.

Global RPMFILE_SPECFILE
(unnecessary) marks 1st file in srpm.

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 rpmInstall (rpmts ts, struct rpmInstallArguments_s *ia, ARGV_t fileArgv)
fileArgv is modified on errors, should be ARGV_const_t

Global rpmlogClose (void)
Implement.

Global rpmlogOpen (const char *ident, int option, int facility)
Implement.

Global rpmMachineScore (int type, const char *name)
Rewrite to use RE's against config.guess target platform output.

Global rpmprobFilterFlags_e
Generalize filter mechanism.

Global rpmProblemGetStr (rpmProblem prob)
needs a better name

Global rpmQueryFlags_e
Merge rpmQueryFlags, rpmVerifyFlags, and rpmVerifyAttrs?.

Global rpmQVSources_e
Reassign to tag values.

Global rpmSetTables (int archTable, int osTable)
Eliminate from API. #

Global rpmShowProgress (const void *arg, const rpmCallbackType what, const rpm_loff_t amount, const rpm_loff_t total, fnpyKey key, void *data)
Remove headerFormat() from the progress callback.

Global rpmSpecParse (const char *specFile, rpmSpecFlags flags, const char *buildRoot)
Eliminate buildRoot from here, its a build, not spec property

Global rpmTag
: Somehow supply type

Class rpmtd_s
Make this opaque (at least outside rpm itself)

Global rpmtePkgFileSize (rpmte te)
Signature header is estimated at 256b.

Global rpmtsImportPubkey (rpmts ts, const unsigned char *pkt, size_t pktlen)
Implicit --update policy for gpg-pubkey headers.

File rpmtypes.h
The grouping needs love to look sane...

Global rpmVerifyFile (const rpmts ts, rpmfi fi, rpmVerifyAttrs *res, rpmVerifyAttrs omitMask)
gnorpm and python bindings prevent this from being static.

File rpmvf.h
Add a more complete API...

Global showQueryPackage (QVA_t qva, rpmts ts, Header h)
Devise a meaningful return code.