Todo List

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

    spec | cookie (unused)
    mc | macro context (NULL uses global context).

  Return values

    sbuf | input macro to expand, output expansion

  Parameters

    slen | size of buffer

  Returns
    0 on success
Global headerPutString (Header h, rpmTagVal tag, const char *val)
  Make doxygen group these meaningfully.
Global pgpExtractPubkeyFingerprint (const char *b64pkt, pgpKeyID_t keyid)
  V3 non-RSA public keys not implemented.
  Parameters

    b64pkt | base64 encoded openpgp packet

  Return values

    keyid | public key fingerprint

  Returns
    8 (no. of bytes) on success, < 0 on error
Global pgpHashAlgo
  Add SHA256.
Global pgpHashAlgo
  Add SHA256.
Global pgpPubkeyFingerprint (const uint8_t *pkt, size_t pktlen, pgpKeyID_t keyid)
  V3 non-RSA public keys not implemented.
  Parameters

    pkt | OpenPGP packet (i.e. PGPTAG_PUBLIC_KEY)
    pktlen | OpenPGP packet length (no. of bytes)

  Return values

    keyid | public key fingerprint

  Returns
    0 on success, else -1
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?
  Parameters

    ts | transaction set
    qva | parsed query/verify options
    argv | query argument(s) (or NULL)

  Returns
    0 on success, else no. of failures
Global rpmcliVerify (rpmts ts, QVA_t qva, ARGV_const_t argv)
  hack: RPMQV_ALL can pass char ** arglist = NULL, not char * arg. Union?
  Parameters

    ts | transaction set
    qva | parsed query/verify options
    argv | verify argument(s) (or NULL)

  Returns
    0 on success, else no. of failures
Global rpmfcPrint (const char *msg, rpmfc fc, FILE *fp)
  Remove debugging routine.
  Parameters

    msg | message prefix (NULL for none)
    fc | file classifier
    fp | output file handle (NULL for stderr)

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.
  Return values

    name | address of arch name (or NULL)
    num | address of arch number (or NULL)

Global rpmGetOsInfo (const char **name, int *num)
  Generalize to extract os component from target_platform macro.
  Return values

    name | address of os name (or NULL)
    num | address of os number (or NULL)

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 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
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.
  Parameters

    te | transaction element

  Returns
    size in bytes of package file.
Global rpmtsImportPubkey (rpmts ts, const unsigned char *pkt, size_t pktlen)
  Implicit –update policy for gpg-pubkey headers.
  Parameters

    ts | transaction set
    pkt | pgp pubkey packet(s)
    pktlen | pgp pubkey length

  Returns
    RPMRC_OK/RPMRC_FAIL
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.
  Parameters

    ts | transaction set
    fi | file info (with linked header and current file index)

  Return values

    *res | bit(s) returned to indicate failure

  Parameters

    omitMask | bit(s) to disable verify checks

  Returns
    0 on success (or not installed), 1 on error
File rpmvf.h
  Add a more complete API...
Global showQueryPackage (QVA_t qva, rpmts ts, Header h)
  Devise a meaningful return code.
  Parameters

    qva | parsed query/verify options
    ts | transaction set
    h | header to use for query

  Returns
    0 always