apt 3.1.11 commandline package manager

Todo List

Module acquire
  Acquire supports inserting an object into several queues at once, but it is not clear what its behavior in this case is, and no subclass of pkgAcquire::Item seems to actually use this capability.
Member CacheSetHelper::PackageFromString (PackageContainerInterface *const pci, pkgCacheFile &Cache, std::string const &pattern)
  hm, hm, regexp/fnmatch incompatible?
Member CommandLine::GetCommand (Dispatch const *const Map, unsigned int const argc, char const *const *const argv) APT_PURE
  How like is it that an option parameter will be also a valid Match ?
Member debReleaseIndex::Load (std::string const &Filename, std::string *ErrorText) override
  find better tag name
Member edspListParser::ParseStatus (pkgCache::PkgIterator &Pkg, pkgCache::VerIterator &Ver) override
  Using an overriding pin is wrong.
Member MMap::Map (FileFd &Fd)
  Writing to compressed fd's ?
Member OpTextProgress::Done () override
  apt-cdrom relies on this end of line being printed
Member PackageManagerFancy::GetTerminalSize ()
  get from "child_pty" instead?
Member PackageManagerProgressDeb822Fd::StartDpkg () override
  use SetCloseExec here once it taught about throwing
Member PackageManagerProgressFd::StartDpkg () override
  use SetCloseExec here once it taught about throwing
Member pkgAcqDiffIndex::ParseDiffIndex (std::string const &IndexDiffFile)
  all of pdiff supports only .gz compressed patches
Member pkgAcqDiffIndex::pkgAcqDiffIndex (pkgAcquire *const Owner, pkgAcqMetaClearSig *const TransactionManager, IndexTarget const &Target) APT_NONNULL(2
  Magic number as an upper bound on pdiffs we will reasonably acquire
Class pkgAcqIndex
  Why does pkgAcqIndex have protected members?
Member pkgAcqIndexDiffs::available_patches
  These are indexed by sha1sum; why not use some sort of dictionary instead of relying on ordering and stripping them off the front?
Member pkgAcqMetaClearSig::QueueIndexes (bool const verify)
  We should support Standalone-Architecture-Variants field here
Class pkgAcqMetaSig
  Why protected members?
Member pkgAcqMetaSig::Failed (std::string const &Message, pkgAcquire::MethodConfig const *Cnf) override
  this is used often (e.g. in pkgAcqIndexTrans) so refactor
Class pkgAcquire
  Why all the protected data items and methods?
Member pkgAcquire::Configs
  why a hand-managed config dictionary instead of std::map?
Member pkgAcquire::MethodConfig::Next
  Why not an STL container?
Class pkgAcquire::Queue
  Why so many protected values?
Member pkgAcquire::Queue::Bump ()
  Why both this and Cycle()? Are they expected to be different someday?
Member pkgAcquire::Queue::Items
  why a by-hand list instead of an STL structure?
Member pkgAcquire::Queue::ItemStart (QItem *Itm, unsigned long long Size)
  Unimplemented. Implement it or remove?
Member pkgAcquire::Queue::Workers

  This is plural because support exists in Queue for multiple workers. However, it does not appear that there is any way to actually associate more than one worker with a queue.

  Why not just use a std::set?

Member pkgAcquire::Queues
  why a hand-managed list of queues instead of std::list or std::set?
Class pkgAcquire::Worker
  Like everything else in the Acquire system, this has way too many protected items.
Member pkgAcquire::Worker::Access
  Doesn't this duplicate Config->Access?
Member pkgAcquire::Worker::InReady
  Is this right? It's a guess.
Member pkgAcquire::Worker::NextQueue
  This is always NULL; is it just for future use?
Member pkgAcquire::Worker::OutQueue
  Wouldn't a std::dequeue be more appropriate?
Member pkgAcquire::Worker::OutReady
  Is this right?
Member pkgAcquire::Worker::RunMessages ()
  Several message types lack separate handlers.
Member pkgAcquire::Workers
  why a hand-managed list of workers instead of std::list or std::set?
Class pkgAcquireStatus
  Why protected members?
Member pkgAcquireStatus::MediaChange (std::string Media, std::string Drive)=0
  This is a horrible blocking monster; it should be CPSed with prejudice.
Member pkgCache::Description::FileList
  document pkgCache::Description::FileList
Member pkgCache::PackageFile::Flags
  document PackageFile::Flags
Member pkgCache::PackageFile::IndexType
  enumerate at least the possible indexes
Member pkgCache::ReleaseFile::Flags
  document PackageFile::Flags
Member pkgCacheGenerator::MakeStatusCache (pkgSourceList &List, OpProgress *Progress, MMap **OutMap, pkgCache **OutCache, bool AllowMem=false)
  deprecate the ignored AllowMem parameter
Member pkgCdrom::Add (pkgCdromStatus *log)
  We ignore stat() errors here as we usually have only one of those in use
Member pkgDepCache::GetRootSetFunc ()
  Is this the best place for this function? Perhaps the settings for mark-and-sweep should be stored in a single external class?
Member pkgDepCache::Policy::IsImportantDep (DepIterator const &Dep) const
  this is a meant as a temporary solution until the
Member pkgDPkgPM::Go (APT::Progress::PackageManager *progress) override
  workaround for dpkg bug, see our ./test-bug-740843-versioned-up-down-breaks test
Member pkgDPkgPM::OpenLog ()
  use a better string after freeze
Member pkgDPkgPM::ProcessDpkgStatusLine (char *line)

  this needs a muliarch testcase

  2: is "pkgname" here reliable with dpkg only sending us

Member pkgPackageManager::EarlyRemove (PkgIterator Pkg, DepIterator const *Dep)

  Unify messaging with Protected below.

  Message should talk about Protected, not Essential, and unified.

Member pkgProblemResolver::ResolveInternal (bool const BrokenFix=false)

  we should undo the complete MarkInstall process here

  use DoUpgrade(Pkg) instead?

Member pkgRecords::pkgRecords (pkgCache &Cache)
  CreatePkgParser shall return unique_ptr
Member pkgSrcRecords::Parser::BuildDepends (std::vector< BuildDepRec > &BuildDeps, bool const &ArchOnly, bool const &StripMultiArch=true)=0
  Add a parameter to specify which architecture to use for [wildcard] matching
Member pkgSystem::MultiArchSupported () const =0
  these methods should be virtual
Member SigVerify::CopyAndVerify (std::string CDROM, std::string Name, std::vector< std::string > &SigList, std::vector< std::string > PkgList, std::vector< std::string > SrcList)

  delete any existing gpg file?

  delete any existing gpg file?

Struct Solver::CompareProviders3
  Helpers stolen from DepCache, please give them back.
Member Solver::Pop ()

  We should just mark the entries as erased and only do a compaction

  There should be a reason!

Member Solver::Solver (pkgCache &Cache, pkgDepCache::Policy &Policy, EDSP::Request::Flags requestFlags)
  DEDUP with pkgDepCache.
Member Solver::UndoOne ()
  Add the undo handling here once we have watchers.
Member StateChanges::Save (bool const DiscardOutput=false)
  supported only since 1.17.7 in dpkg