# Todo List

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

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 getUidS (const char *uname)
  Implement using hash.

Global getUname (uid_t uid)
  Implement using hash.

Global getUnameS (const char *uname)
  Implement using hash.

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

Global headerPutString (Header h, rpmTag 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
  Generalize filter mechanism.

Global rpmProblemGetStr (const rpmProblem prob)
  needs a better name

Global rpmQueryFlags
  Merge rpmQueryFlags, rpmVerifyFlags, and rpmVerifyAttrs?.

Global rpmQVSources
  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 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 RPMTRANS_FLAG_KEEPOBSOLETE
  Document.

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.