apt 3.0.3
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?
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
Struct pkgAcquire

Why all the protected data items and methods?

Why so many protected values?

Like everything else in the Acquire system, this has way too many protected items.

Member pkgAcquire::Access
Doesn't this duplicate Config->Access?
Member pkgAcquire::Bump ()
Why both this and Cycle()? Are they expected to be different someday?
Member pkgAcquire::Configs
why a hand-managed config dictionary instead of std::map?
Member pkgAcquire::InReady
Is this right? It's a guess.
Member pkgAcquire::Items
why a by-hand list instead of an STL structure?
Member pkgAcquire::ItemStart (QItem *Itm, unsigned long long Size)
Unimplemented. Implement it or remove?
Member pkgAcquire::Next
Why not an STL container?
Member pkgAcquire::NextQueue
This is always NULL; is it just for future use?
Member pkgAcquire::OutQueue
Wouldn't a std::dequeue be more appropriate?
Member pkgAcquire::OutReady
Is this right?
Member pkgAcquire::Queues
why a hand-managed list of queues instead of std::list or std::set?
Member pkgAcquire::RunMessages ()
Several message types lack separate handlers.
Member pkgAcquire::Workers

Why not just use a std::set?

why a hand-managed list of workers instead of std::list or std::set?

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.

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< Str, Itr >::Description::FileList
document pkgCache::Description::FileList
Member pkgCache< Str, Itr >::PackageFile::Flags
document PackageFile::Flags
Member pkgCache< Str, Itr >::PackageFile::IndexType
enumerate at least the possible indexes
Member pkgCache< Str, Itr >::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)

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

Unify messaging with Protected below.

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

use DoUpgrade(Pkg) instead?

we should undo the complete MarkInstall process here

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