# Todo List

Global alSatisfiesDepend (const availableList al, const char *keyType, const char *keyDepend, const char *keyName, const char *keyEVR, int keyFlags)
  Eliminate.

File buildio.h
  Eliminate, merge into rpmlib.

Global checkHardLinks (FileList fl)
  Only lang coloring is checked, doc et al also need doing.

Global checkSize (FD_t fd, int siglen, int pad, int datalen)
  rpmio: use fdSize rather than fstat(2) to get file size.

Global copyEntry (const indexEntry entry, hTYP_t type, hPTR_t *p, hCNT_t c, int minMem)
  Permit retrieval of regions other than HEADER_IMUTABLE.

Global cpio_doio (FD_t fdo, Header h, CSA_t csa, const char *fmodeMacro)
  Create transaction set *much* earlier.

Global dataLength (int_32 type, hPTR_t p, int_32 count, int onDisk)
  Remove sanity check exit's.

Global dbiFindByLabel (dbiIndex dbi, DBC *dbcursor, 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 subdiretories.

Global domd5 (const char *fn, unsigned char *digest, int asAscii)
  Eliminate, use beecrypt instead.

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 expandRegular (FSM_t fsm)
  Legacy: support brokenEndian MD5 checks?

Global FA_SKIPMULTILIB
  state "multilib" ???.

Global fingerPrint
  Convert to pointer and make abstract.

Global freeSpecVec )(Spec spec)
  Eliminate linkage loop into librpmbuild.a

Global genCpioListAndHeader (FileList fl, TFI_t *cpioList, 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 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, char lastc)
  Use popt rather than getopt to parse args.

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.

  Arg "p" should have const.

Global headerFreeData (const void *data, rpmTagType type)

  Remove from API.

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 mdbinfile (const char *fn, unsigned char *bindigest)
  Eliminate, use beecrypt instead.

Global mdfile (const char *fn, unsigned char *digest)
  Eliminate, use beecrypt instead.

Global parseSpecVec )(Spec *specp, const char *specFile, const char *rootdir, const char *buildRoot, int recursing, const char *passPhrase, char *cookie, int anyarch, int force)
  Eliminate linkage loop into librpmbuild.a

Global pgpHashAlgo
  Add SHA256.

Global poptAddAlias (poptContext con, struct poptAlias alias, int flags)
  Pass alias by reference, not value.

Global poptCallbackType )(poptContext con, enum poptCallbackReason reason, const struct poptOption *opt, const char *arg, const void *data)

  Document.

  Document.

Global psmStage (PSM_t psm, pkgStage stage)
  Packages w/o files never get a callback, hence don't get displayed on install with -v.

Global relocateFileList (const rpmTransactionSet ts, TFI_t fi, struct availablePackage *alp, 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_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 rpmdbSetIteratorRelease (rpmdbMatchIterator mi, const char *release)
  Eliminate from API.

Global rpmdbSetIteratorVersion (rpmdbMatchIterator mi, const char *version)
  Eliminate from API.

Global rpmDefineMacro (MacroContext mc, const char *macro, int level)
  Document.

File rpmerr.h
  Eliminate from API.

Global RPMFILE_DONOTUSE
  (unimplemented) from donotuse.

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 rpmGetMachine (const char **arch, const char **os)

  Eliminate from API.

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

Global rpmGetVar (int var)
  Eliminate from API.

Global rpmInstall (const char *rootdir, const char **fileArgv, rpmtransFlags transFlags, rpmInstallInterfaceFlags interfaceFlags, rpmprobFilterFlags probFilter, rpmRelocation *relocations)
  Generalize --freshen policies.

Global rpmInstallInterfaceFlags
  Move to rpmcli.h

Class rpmlead
  Don't use any information from lead.

Global rpmMachineScore (int type, const char *name)

  Rewrite to use RE's against config.guess target platform output.

File rpmmessages.h
  Eliminate from API.

Global rpmPackageGetEntry (void *leadp, Header sigs, Header h, int_32 tag, int_32 *type, void **p, int_32 *c)
  Eliminate from API.

Global rpmprobFilterFlags
  Generalize filter mechanism.

Global rpmQuery (QVA_t qva, rpmQVSources source, const char *arg)
  hack: RPMQV_ALL can pass char ** arglist = NULL, not char * arg. Union?

Global rpmQueryFlags
  Merge rpmQueryFlags, rpmVerifyFlags, and rpmVerifyAttrs?.

Global rpmQVSources
  Move to rpmcli.h

Global rpmReadPackageInfo (FD_t fd, Header *sigp, Header *hdrp)
  Eliminate.

Global rpmReadPackageManifest (FD_t fd, int *argcPtr, const char ***argvPtr)
  Infinite loops through manifest files exist, operator error for now.

Global RPMSENSE_PREREQ
  Legacy.

Global RPMSENSE_SERIAL
  Legacy.

Global RPMSENSE_TRIGGERPREIN
  Implement triggerprein.

Global rpmSetMachine (const char *arch, const char *os)

  Eliminate from API.

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

Global rpmSetVar (int var, const char *val)
  Eliminate from API.

Global RPMTRANS_FLAG_BUILD_PROBS
  Document.

Global RPMTRANS_FLAG_KEEPOBSOLETE
  Document.

Global RPMTRANS_FLAG_MULTILIB
  Document.

Global rpmtransGetKeys (const rpmTransactionSet ts, const void ***ep, int *nep)
  Removed packages have no keys, returned as interleaved NULL pointers.

Global rpmVerifyAttrs
  Move to rpmcli.h.

Global rpmVerifyDigest (Header h)
  Make digest check part of rpmdb iterator.

Global rpmVerifyFile (const char *root, Header h, int filenum, rpmVerifyAttrs *result, rpmVerifyAttrs omitMask)
  gnorpm and python bindings prevent this from being static.

Global rpmVerifyFlags
  Merge rpmQueryFlags, rpmVerifyFlags, and rpmVerifyAttrs values?.

Global rpmVerifyScript (const char *rootDir, Header h, FD_t scriptFd)

  gnorpm/kpackage prevents static, should be using VERIFY_SCRIPT flag.

  gnorpm/kpackage prevents static, should be using VERIFY_SCRIPT flag.

Global showQueryPackage (QVA_t qva, rpmdb db, Header h)
  Devise a meaningful return code.

Global tagMacros []
  Should other macros be added from header when installing a package?

Global transactionSetHeader
  Remove, there's no headerLink refcount on the pointer.

Global unsatisfiedDepend (rpmTransactionSet ts, const char *keyType, const char *keyDepend, const char *keyName, const char *keyEVR, int keyFlags, struct availablePackage ***suggestion)
  Eliminate rpmrc provides.

Global xrealloc (void *ptr, size_t size)
  Annotate ptr with returned/out.

Global XrpmdbNextIterator (rpmdbMatchIterator mi, const char *f, unsigned int l)
  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.