diff options
author | Julian Andres Klode <jak@debian.org> | 2020-02-26 14:51:05 +0000 |
---|---|---|
committer | Julian Andres Klode <jak@debian.org> | 2020-02-26 14:51:05 +0000 |
commit | a096b580694cb36f29cdbce8f1db797a08e36709 (patch) | |
tree | 8a1bf6106868761042c80e04fdeff1077779ac18 | |
parent | b31040e9c1441a2a7296ce3ff12f5052fc522366 (diff) | |
parent | da01dabb86396a1391f081fa54a806e2d7b62133 (diff) |
Merge branch 'pu/cleanups' into 'master'
Cleanup ABI - make stuff virtual, etc
See merge request apt-team/apt!106
30 files changed, 80 insertions, 217 deletions
diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc index bbbda3bd3..9b13a2483 100644 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@ -290,9 +290,8 @@ public: std::vector<std::string> BadAlternativeSites; std::vector<std::string> PastRedirections; std::unordered_map<std::string, std::string> CustomFields; - unsigned int Retries; - Private() : Retries(_config->FindI("Acquire::Retries", 0)) + Private() { } }; @@ -771,7 +770,7 @@ class APT_HIDDEN CleanupItem : public pkgAcqTransactionItem /*{{{*/ // Acquire::Item::Item - Constructor /*{{{*/ pkgAcquire::Item::Item(pkgAcquire * const owner) : FileSize(0), PartialSize(0), ID(0), Complete(false), Local(false), - QueueCounter(0), ExpectedAdditionalItems(0), Owner(owner), d(new Private()) + QueueCounter(0), ExpectedAdditionalItems(0), Retries(_config->FindI("Acquire::Retries", 0)), Owner(owner), d(new Private()) { Owner->Add(this); Status = StatIdle; @@ -843,11 +842,6 @@ void pkgAcquire::Item::RemoveAlternativeSite(std::string &&OldSite) /*{{{*/ d->BadAlternativeSites.push_back(std::move(OldSite)); } /*}}}*/ -unsigned int &pkgAcquire::Item::ModifyRetries() /*{{{*/ -{ - return d->Retries; -} - /*}}}*/ std::string pkgAcquire::Item::ShortDesc() const /*{{{*/ { return DescURI(); @@ -3935,12 +3929,6 @@ void pkgAcqFile::Done(string const &Message,HashStringList const &CalcHashes, } } /*}}}*/ -void pkgAcqFile::Failed(string const &Message, pkgAcquire::MethodConfig const *const Cnf) /*{{{*/ -{ - // FIXME: Remove this pointless overload on next ABI break - Item::Failed(Message, Cnf); -} - /*}}}*/ string pkgAcqFile::Custom600Headers() const /*{{{*/ { if (IsIndexFile) diff --git a/apt-pkg/acquire-item.h b/apt-pkg/acquire-item.h index c62e44b78..d3f1bddf8 100644 --- a/apt-pkg/acquire-item.h +++ b/apt-pkg/acquire-item.h @@ -152,6 +152,9 @@ class pkgAcquire::Item : public WeakPointable /*{{{*/ */ std::string DestFile; + /** \brief Number of retries */ + unsigned int Retries; + /** \brief Invoked by the acquire worker when the object couldn't * be fetched. * @@ -231,8 +234,6 @@ class pkgAcquire::Item : public WeakPointable /*{{{*/ * no trailing newline. */ virtual std::string Custom600Headers() const; - // Retries should really be a member of the Item, but can't be for ABI reasons - APT_HIDDEN unsigned int &ModifyRetries(); // this is more a hack than a proper external interface, hence hidden APT_HIDDEN std::unordered_map<std::string, std::string> &ModifyCustomFields(); // this isn't the super nicest interface either… @@ -1146,7 +1147,6 @@ class pkgAcqFile : public pkgAcquire::Item virtual bool HashesRequired() const APT_OVERRIDE; // Specialized action members - virtual void Failed(std::string const &Message,pkgAcquire::MethodConfig const * const Cnf) APT_OVERRIDE; virtual void Done(std::string const &Message, HashStringList const &CalcHashes, pkgAcquire::MethodConfig const * const Cnf) APT_OVERRIDE; virtual std::string DescURI() const APT_OVERRIDE {return Desc.URI;}; diff --git a/apt-pkg/acquire-worker.cc b/apt-pkg/acquire-worker.cc index 32fcde181..eff79215d 100644 --- a/apt-pkg/acquire-worker.cc +++ b/apt-pkg/acquire-worker.cc @@ -607,9 +607,9 @@ void pkgAcquire::Worker::HandleFailure(std::vector<pkgAcquire::Item *> const &It for (auto const Owner : ItmOwners) { std::string NewURI; - if (errTransient == true && Config->LocalOnly == false && Owner->ModifyRetries() != 0) + if (errTransient == true && Config->LocalOnly == false && Owner->Retries != 0) { - --Owner->ModifyRetries(); + --Owner->Retries; Owner->FailMessage(Message); auto SavedDesc = Owner->GetItemDesc(); if (Log != nullptr) diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc index 8ebac6d2a..fffe76f46 100644 --- a/apt-pkg/acquire.cc +++ b/apt-pkg/acquire.cc @@ -536,18 +536,12 @@ void pkgAcquire::SetFds(int &Fd,fd_set *RSet,fd_set *WSet) } } /*}}}*/ -// Acquire::RunFds - compatibility remove on next abi/api break /*{{{*/ -void pkgAcquire::RunFds(fd_set *RSet,fd_set *WSet) -{ - RunFdsSane(RSet, WSet); -} - /*}}}*/ -// Acquire::RunFdsSane - Deal with active FDs /*{{{*/ +// Acquire::RunFds - Deal with active FDs /*{{{*/ // --------------------------------------------------------------------- /* Dispatch active FDs over to the proper workers. It is very important that a worker never be erased while this is running! The queue class should never erase a worker except during shutdown processing. */ -bool pkgAcquire::RunFdsSane(fd_set *RSet,fd_set *WSet) +bool pkgAcquire::RunFds(fd_set *RSet,fd_set *WSet) { bool Res = true; @@ -726,7 +720,7 @@ pkgAcquire::RunResult pkgAcquire::Run(int PulseIntervall) break; } - if(RunFdsSane(&RFds,&WFds) == false) + if(RunFds(&RFds,&WFds) == false) break; // Timeout, notify the log class diff --git a/apt-pkg/acquire.h b/apt-pkg/acquire.h index d8fadce66..c71c01e2f 100644 --- a/apt-pkg/acquire.h +++ b/apt-pkg/acquire.h @@ -233,12 +233,7 @@ class pkgAcquire * * \return false if there is an error condition on one of the fds */ - bool RunFdsSane(fd_set *RSet,fd_set *WSet); - - // just here for compatibility, needs to be removed on the next - // ABI/API break. RunFdsSane() is what should be used as it - // returns if there is an error condition on one of the fds - virtual void RunFds(fd_set *RSet,fd_set *WSet); + virtual bool RunFds(fd_set *RSet,fd_set *WSet); /** \brief Check for idle queues with ready-to-fetch items. * diff --git a/apt-pkg/algorithms.cc b/apt-pkg/algorithms.cc index 4d4adde3c..f2977b9af 100644 --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@ -260,7 +260,7 @@ void pkgSimulate::ShortBreaks() cout << ']' << endl; } /*}}}*/ -bool pkgSimulate::Go2(APT::Progress::PackageManager *) /*{{{*/ +bool pkgSimulate::Go(APT::Progress::PackageManager *) /*{{{*/ { if (pkgDPkgPM::ExpandPendingCalls(d->List, Cache) == false) return false; diff --git a/apt-pkg/algorithms.h b/apt-pkg/algorithms.h index 789f304a9..1672231ff 100644 --- a/apt-pkg/algorithms.h +++ b/apt-pkg/algorithms.h @@ -71,9 +71,8 @@ class pkgSimulate : public pkgPackageManager /*{{{*/ virtual bool Configure(PkgIterator Pkg) APT_OVERRIDE; virtual bool Remove(PkgIterator Pkg,bool Purge) APT_OVERRIDE; - // FIXME: trick to avoid ABI break for virtual reimplementation; fix on next ABI break public: - APT_HIDDEN bool Go2(APT::Progress::PackageManager * progress); + bool Go(APT::Progress::PackageManager * progress) override; private: APT_HIDDEN void ShortBreaks(); diff --git a/apt-pkg/cdrom.cc b/apt-pkg/cdrom.cc index 151608b28..5df03a99c 100644 --- a/apt-pkg/cdrom.cc +++ b/apt-pkg/cdrom.cc @@ -923,12 +923,6 @@ pkgUdevCdromDevices::pkgUdevCdromDevices() /*{{{*/ { } /*}}}*/ - -bool pkgUdevCdromDevices::Dlopen() /*{{{*/ -{ - return true; -} - /*}}}*/ // convenience interface, this will just call ScanForRemovable /*{{{*/ vector<CdromDevice> pkgUdevCdromDevices::Scan() { diff --git a/apt-pkg/cdrom.h b/apt-pkg/cdrom.h index 82e12fa4e..74ec9af09 100644 --- a/apt-pkg/cdrom.h +++ b/apt-pkg/cdrom.h @@ -95,31 +95,10 @@ struct CdromDevice /*{{{*/ class pkgUdevCdromDevices /*{{{*/ { void * const d; - - protected: - // old libudev dlopen structure, not used anymore, but can't break ABI - void *_padding; - struct _padding *(*_padding__new)(void); - int (*_padding__enumerate_add_match_property)(struct _padding_enumerate *_padding_enumerate, const char *property, const char *value); - int (*_padding__enumerate_scan_devices)(struct _padding_enumerate *_padding_enumerate); - struct _padding_list_entry *(*_padding__enumerate_get_list_entry)(struct _padding_enumerate *_padding_enumerate); - struct _padding_device *(*_padding__device_new_from_syspath)(struct _padding *_padding, const char *syspath); - struct _padding *(*_padding__enumerate_get__padding)(struct _padding_enumerate *_padding_enumerate); - const char *(*_padding__list_entry_get_name)(struct _padding_list_entry *list_entry); - const char *(*_padding__device_get_devnode)(struct _padding_device *_padding_device); - struct _padding_enumerate *(*_padding__enumerate_new)(struct _padding *_padding); - struct _padding_list_entry *(*_padding__list_entry_get_next)(struct _padding_list_entry *list_entry); - const char *(*_padding__device_get_property_value)(struct _padding_device *_padding_device, const char *key); - int (*_padding__enumerate_add_match_sysattr)(struct _padding_enumerate *_padding_enumerate, const char *property, const char *value); - // end lib_padding dlopen - public: pkgUdevCdromDevices(); virtual ~pkgUdevCdromDevices(); - // try to open - bool Dlopen(); - // convenience interface, this will just call ScanForRemovable // with "APT::cdrom::CdromOnly" std::vector<CdromDevice> Scan(); diff --git a/apt-pkg/contrib/cmndline.cc b/apt-pkg/contrib/cmndline.cc index 3b844edc2..b80543c91 100644 --- a/apt-pkg/contrib/cmndline.cc +++ b/apt-pkg/contrib/cmndline.cc @@ -382,11 +382,6 @@ bool CommandLine::DispatchArg(Dispatch const * const Map,bool NoMatch) return false; } -bool CommandLine::DispatchArg(Dispatch *Map,bool NoMatch) -{ - Dispatch const * const Map2 = Map; - return DispatchArg(Map2, NoMatch); -} /*}}}*/ // CommandLine::SaveInConfig - for output later in a logfile or so /*{{{*/ // --------------------------------------------------------------------- diff --git a/apt-pkg/contrib/cmndline.h b/apt-pkg/contrib/cmndline.h index 66e0e16d8..28ea9119e 100644 --- a/apt-pkg/contrib/cmndline.h +++ b/apt-pkg/contrib/cmndline.h @@ -80,8 +80,6 @@ class CommandLine bool Parse(int argc,const char **argv); void ShowHelp(); unsigned int FileSize() const APT_PURE; - // FIXME: merge on next ABI break - bool DispatchArg(Dispatch *List,bool NoMatch = true); bool DispatchArg(Dispatch const * const List,bool NoMatch = true); static char const * GetCommand(Dispatch const * const Map, diff --git a/apt-pkg/deb/debindexfile.cc b/apt-pkg/deb/debindexfile.cc index e4ceebff2..43317d314 100644 --- a/apt-pkg/deb/debindexfile.cc +++ b/apt-pkg/deb/debindexfile.cc @@ -246,7 +246,7 @@ pkgCache::PkgFileIterator debDebPkgFileIndex::FindInCache(pkgCache &Cache) const return File; } -std::string debDebPkgFileIndex::ArchiveInfo_impl(pkgCache::VerIterator const &Ver) const +std::string debDebPkgFileIndex::ArchiveInfo(pkgCache::VerIterator const &Ver) const { std::string Res = IndexFileName() + " "; Res.append(Ver.ParentPkg().Name()).append(" "); diff --git a/apt-pkg/deb/debindexfile.h b/apt-pkg/deb/debindexfile.h index 222fed229..3ef9f6b0c 100644 --- a/apt-pkg/deb/debindexfile.h +++ b/apt-pkg/deb/debindexfile.h @@ -144,8 +144,7 @@ public: explicit debDebPkgFileIndex(std::string const &DebFile); virtual ~debDebPkgFileIndex(); - //FIXME: use proper virtual-handling on next ABI break - APT_HIDDEN std::string ArchiveInfo_impl(pkgCache::VerIterator const &Ver) const; + std::string ArchiveInfo(pkgCache::VerIterator const &Ver) const override; }; class debDscFileIndex : public pkgDebianIndexRealFile diff --git a/apt-pkg/deb/debmetaindex.cc b/apt-pkg/deb/debmetaindex.cc index 2c0ab1d0d..a72f6d055 100644 --- a/apt-pkg/deb/debmetaindex.cc +++ b/apt-pkg/deb/debmetaindex.cc @@ -447,12 +447,12 @@ bool debReleaseIndex::Load(std::string const &Filename, std::string * const Erro // FIXME: find better tag name SupportsAcquireByHash = Section.FindB("Acquire-By-Hash", false); - SetOrigin(Section.FindS("Origin")); - SetLabel(Section.FindS("Label")); - SetVersion(Section.FindS("Version")); + Origin = Section.FindS("Origin"); + Label = Section.FindS("Label"); + Version = Section.FindS("Version"); Suite = Section.FindS("Suite"); Codename = Section.FindS("Codename"); - SetReleaseNotes(Section.FindS("Release-Notes")); + ReleaseNotes = Section.FindS("Release-Notes"); { std::string const archs = Section.FindS("Architectures"); if (archs.empty() == false) @@ -484,7 +484,7 @@ bool debReleaseIndex::Load(std::string const &Filename, std::string * const Erro else defaultpin = 1; } - SetDefaultPin(defaultpin); + DefaultPin = defaultpin; } bool FoundHashSum = false; diff --git a/apt-pkg/deb/debmetaindex.h b/apt-pkg/deb/debmetaindex.h index 0038f52f9..5576ff809 100644 --- a/apt-pkg/deb/debmetaindex.h +++ b/apt-pkg/deb/debmetaindex.h @@ -55,11 +55,11 @@ class APT_HIDDEN debReleaseIndex : public metaIndex std::map<std::string, std::string> GetReleaseOptions(); virtual bool IsTrusted() const APT_OVERRIDE; - bool IsArchitectureSupported(std::string const &arch) const; - bool IsArchitectureAllSupportedFor(IndexTarget const &target) const; - bool HasSupportForComponent(std::string const &component) const; + bool IsArchitectureSupported(std::string const &arch) const override; + bool IsArchitectureAllSupportedFor(IndexTarget const &target) const override; + bool HasSupportForComponent(std::string const &component) const override; - APT_PURE time_t GetNotBefore() const; + APT_PURE time_t GetNotBefore() const override; void AddComponent(std::string const &sourcesEntry, bool const isSrc, std::string const &Name, diff --git a/apt-pkg/deb/debsystem.cc b/apt-pkg/deb/debsystem.cc index 0c7e9ff39..225761e9d 100644 --- a/apt-pkg/deb/debsystem.cc +++ b/apt-pkg/deb/debsystem.cc @@ -419,7 +419,7 @@ pid_t debSystem::ExecDpkg(std::vector<std::string> const &sArgs, int * const inp return dpkg; } /*}}}*/ -bool debSystem::SupportsMultiArch() /*{{{*/ +bool debSystem::MultiArchSupported() const /*{{{*/ { std::vector<std::string> Args = GetDpkgBaseCommand(); Args.push_back("--assert-multi-arch"); @@ -440,7 +440,7 @@ bool debSystem::SupportsMultiArch() /*{{{*/ return false; } /*}}}*/ -std::vector<std::string> debSystem::SupportedArchitectures() /*{{{*/ +std::vector<std::string> debSystem::ArchitecturesSupported() const /*{{{*/ { std::vector<std::string> archs; { diff --git a/apt-pkg/deb/debsystem.h b/apt-pkg/deb/debsystem.h index 3a308fb1c..a331af351 100644 --- a/apt-pkg/deb/debsystem.h +++ b/apt-pkg/deb/debsystem.h @@ -45,12 +45,12 @@ class debSystem : public pkgSystem APT_HIDDEN static std::vector<std::string> GetDpkgBaseCommand(); APT_HIDDEN static void DpkgChrootDirectory(); APT_HIDDEN static pid_t ExecDpkg(std::vector<std::string> const &sArgs, int * const inputFd, int * const outputFd, bool const DiscardOutput); - APT_HIDDEN static bool SupportsMultiArch(); - APT_HIDDEN static std::vector<std::string> SupportedArchitectures(); + bool MultiArchSupported() const override; + std::vector<std::string> ArchitecturesSupported() const override; - APT_HIDDEN bool LockInner(); - APT_HIDDEN bool UnLockInner(bool NoErrors=false); - APT_HIDDEN bool IsLocked(); + bool LockInner() override; + bool UnLockInner(bool NoErrors=false) override; + bool IsLocked() override; }; extern debSystem debSys; diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index 0b807d668..ef73881c8 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -1711,7 +1711,7 @@ bool pkgDPkgPM::Go(APT::Progress::PackageManager *progress) // create log OpenLog(); - bool dpkgMultiArch = debSystem::SupportsMultiArch(); + bool dpkgMultiArch = _system->MultiArchSupported(); // start pty magic before the loop StartPtyMagic(); @@ -2014,8 +2014,7 @@ bool pkgDPkgPM::Go(APT::Progress::PackageManager *progress) else setenv("DPKG_COLORS", "never", 0); - if (dynamic_cast<debSystem*>(_system) != nullptr - && dynamic_cast<debSystem*>(_system)->IsLocked() == true) { + if (_system->IsLocked() == true) { setenv("DPKG_FRONTEND_LOCKED", "true", 1); } if (_config->Find("DPkg::Path", "").empty() == false) diff --git a/apt-pkg/edsp/edspsystem.h b/apt-pkg/edsp/edspsystem.h index 8f5452dcb..9e34345cd 100644 --- a/apt-pkg/edsp/edspsystem.h +++ b/apt-pkg/edsp/edspsystem.h @@ -11,6 +11,7 @@ #include <apt-pkg/pkgcache.h> #include <apt-pkg/pkgsystem.h> +#include <apt-pkg/error.h> #include <memory> #include <vector> @@ -37,6 +38,13 @@ public: virtual bool FindIndex(pkgCache::PkgFileIterator File, pkgIndexFile *&Found) const APT_OVERRIDE; + bool MultiArchSupported() const override { return true; } + std::vector<std::string> ArchitecturesSupported() const override { return {}; }; + + bool LockInner() override { return _error->Error("LockInner is not implemented"); }; + bool UnLockInner(bool NoErrors=false) override { return _error->Error("UnLockInner is not implemented"); }; + bool IsLocked() override { return true; }; + explicit edspLikeSystem(char const * const Label); virtual ~edspLikeSystem(); }; diff --git a/apt-pkg/indexfile.cc b/apt-pkg/indexfile.cc index a7290c653..ef3486ab8 100644 --- a/apt-pkg/indexfile.cc +++ b/apt-pkg/indexfile.cc @@ -65,11 +65,8 @@ pkgIndexFile::pkgIndexFile(bool const Trusted) : /*{{{*/ } /*}}}*/ // IndexFile::ArchiveInfo - Stub /*{{{*/ -std::string pkgIndexFile::ArchiveInfo(pkgCache::VerIterator const &Ver) const +std::string pkgIndexFile::ArchiveInfo(pkgCache::VerIterator const &) const { - debDebPkgFileIndex const * const debfile = dynamic_cast<debDebPkgFileIndex const*>(this); - if (debfile != nullptr) - return debfile->ArchiveInfo_impl(Ver); return std::string(); } /*}}}*/ diff --git a/apt-pkg/metaindex.cc b/apt-pkg/metaindex.cc index d0b3f5165..06db06f83 100644 --- a/apt-pkg/metaindex.cc +++ b/apt-pkg/metaindex.cc @@ -11,12 +11,6 @@ class metaIndexPrivate /*{{{*/ { - public: - std::string Origin; - std::string Label; - std::string Version; - signed short DefaultPin; - std::string ReleaseNotes; }; /*}}}*/ @@ -63,22 +57,15 @@ APT_PURE std::string metaIndex::GetDist() const { return Dist; } APT_PURE const char* metaIndex::GetType() const { return Type; } APT_PURE metaIndex::TriState metaIndex::GetTrusted() const { return Trusted; } APT_PURE std::string metaIndex::GetSignedBy() const { return SignedBy; } -APT_PURE std::string metaIndex::GetOrigin() const { return d->Origin; } -APT_PURE std::string metaIndex::GetLabel() const { return d->Label; } -APT_PURE std::string metaIndex::GetVersion() const { return d->Version; } +APT_PURE std::string metaIndex::GetOrigin() const { return Origin; } +APT_PURE std::string metaIndex::GetLabel() const { return Label; } +APT_PURE std::string metaIndex::GetVersion() const { return Version; } APT_PURE std::string metaIndex::GetCodename() const { return Codename; } APT_PURE std::string metaIndex::GetSuite() const { return Suite; } -APT_PURE std::string metaIndex::GetReleaseNotes() const { return d->ReleaseNotes; } -APT_PURE signed short metaIndex::GetDefaultPin() const { return d->DefaultPin; } +APT_PURE std::string metaIndex::GetReleaseNotes() const { return ReleaseNotes; } +APT_PURE signed short metaIndex::GetDefaultPin() const { return DefaultPin; } APT_PURE bool metaIndex::GetSupportsAcquireByHash() const { return SupportsAcquireByHash; } APT_PURE time_t metaIndex::GetValidUntil() const { return ValidUntil; } -APT_PURE time_t metaIndex::GetNotBefore() const -{ - debReleaseIndex const *const deb = dynamic_cast<debReleaseIndex const *>(this); - if (deb != nullptr) - return deb->GetNotBefore(); - return 0; -} APT_PURE time_t metaIndex::GetDate() const { return this->Date; } APT_PURE metaIndex::TriState metaIndex::GetLoadedSuccessfully() const { return LoadedSuccessfully; } APT_PURE std::string metaIndex::GetExpectedDist() const { return Dist; } @@ -137,40 +124,25 @@ void metaIndex::swapLoad(metaIndex * const OldMetaIndex) /*{{{*/ std::swap(Entries, OldMetaIndex->Entries); std::swap(LoadedSuccessfully, OldMetaIndex->LoadedSuccessfully); - OldMetaIndex->SetOrigin(d->Origin); - OldMetaIndex->SetLabel(d->Label); - OldMetaIndex->SetVersion(d->Version); - OldMetaIndex->SetDefaultPin(d->DefaultPin); + OldMetaIndex->Origin = Origin; + OldMetaIndex->Label = Label; + OldMetaIndex->Version =Version; + OldMetaIndex->DefaultPin = DefaultPin; } /*}}}*/ bool metaIndex::IsArchitectureSupported(std::string const &arch) const /*{{{*/ { - debReleaseIndex const * const deb = dynamic_cast<debReleaseIndex const *>(this); - if (deb != NULL) - return deb->IsArchitectureSupported(arch); return true; } /*}}}*/ bool metaIndex::IsArchitectureAllSupportedFor(IndexTarget const &target) const/*{{{*/ { - debReleaseIndex const * const deb = dynamic_cast<debReleaseIndex const *>(this); - if (deb != NULL) - return deb->IsArchitectureAllSupportedFor(target); return true; } /*}}}*/ bool metaIndex::HasSupportForComponent(std::string const &component) const/*{{{*/ { - debReleaseIndex const * const deb = dynamic_cast<debReleaseIndex const *>(this); - if (deb != NULL) - return deb->HasSupportForComponent(component); return true; } /*}}}*/ - -void metaIndex::SetOrigin(std::string const &origin) { d->Origin = origin; } -void metaIndex::SetLabel(std::string const &label) { d->Label = label; } -void metaIndex::SetVersion(std::string const &version) { d->Version = version; } -void metaIndex::SetDefaultPin(signed short const defaultpin) { d->DefaultPin = defaultpin; } -void metaIndex::SetReleaseNotes(std::string const ¬es) { d->ReleaseNotes = notes; } diff --git a/apt-pkg/metaindex.h b/apt-pkg/metaindex.h index a44e5c21e..1c1cada0c 100644 --- a/apt-pkg/metaindex.h +++ b/apt-pkg/metaindex.h @@ -44,6 +44,11 @@ protected: // parsed from a file std::string Suite; std::string Codename; + std::string Origin; + std::string Label; + std::string Version; + signed short DefaultPin; + std::string ReleaseNotes; time_t Date; time_t ValidUntil; bool SupportsAcquireByHash; @@ -68,7 +73,7 @@ public: bool GetSupportsAcquireByHash() const; time_t GetValidUntil() const; time_t GetDate() const; - APT_HIDDEN time_t GetNotBefore() const; // FIXME make virtual + virtual time_t GetNotBefore() const = 0; std::string GetExpectedDist() const; bool CheckDist(std::string const &MaybeDist) const; @@ -102,16 +107,9 @@ public: char const * const Type); virtual ~metaIndex(); - // FIXME: make virtual on next abi break - bool IsArchitectureSupported(std::string const &arch) const; - bool IsArchitectureAllSupportedFor(IndexTarget const &target) const; - bool HasSupportForComponent(std::string const &component) const; - // FIXME: should be members of the class on abi break - APT_HIDDEN void SetOrigin(std::string const &origin); - APT_HIDDEN void SetLabel(std::string const &label); - APT_HIDDEN void SetVersion(std::string const &version); - APT_HIDDEN void SetDefaultPin(signed short const defaultpin); - APT_HIDDEN void SetReleaseNotes(std::string const ¬es); + virtual bool IsArchitectureSupported(std::string const &arch) const; + virtual bool IsArchitectureAllSupportedFor(IndexTarget const &target) const; + virtual bool HasSupportForComponent(std::string const &component) const; }; #endif diff --git a/apt-pkg/packagemanager.cc b/apt-pkg/packagemanager.cc index e58589d73..515de972c 100644 --- a/apt-pkg/packagemanager.cc +++ b/apt-pkg/packagemanager.cc @@ -704,10 +704,6 @@ bool pkgPackageManager::SmartRemove(PkgIterator Pkg) // --------------------------------------------------------------------- /* This puts the system in a state where it can Unpack Pkg, if Pkg is already unpacked, or when it has been unpacked, if Immediate==true it configures it. */ -bool pkgPackageManager::SmartUnPack(PkgIterator Pkg) -{ - return SmartUnPack(Pkg, true, 0); -} bool pkgPackageManager::SmartUnPack(PkgIterator Pkg, bool const Immediate, int const Depth) { bool PkgLoop = List->IsFlag(Pkg,pkgOrderList::Loop); @@ -1130,11 +1126,7 @@ pkgPackageManager::OrderResult pkgPackageManager::DoInstallPostFork(APT::Progress::PackageManager *progress) { bool goResult; - auto simulation = dynamic_cast<pkgSimulate*>(this); - if (simulation == nullptr) - goResult = Go(progress); - else - goResult = simulation->Go2(progress); + goResult = Go(progress); if(goResult == false) return Failed; diff --git a/apt-pkg/packagemanager.h b/apt-pkg/packagemanager.h index f777b3dc3..d95a9f663 100644 --- a/apt-pkg/packagemanager.h +++ b/apt-pkg/packagemanager.h @@ -79,9 +79,7 @@ class pkgPackageManager : protected pkgCache::Namespace // Install helpers bool ConfigureAll(); bool SmartConfigure(PkgIterator Pkg, int const Depth) APT_MUSTCHECK; - //FIXME: merge on abi break - bool SmartUnPack(PkgIterator Pkg) APT_MUSTCHECK; - bool SmartUnPack(PkgIterator Pkg, bool const Immediate, int const Depth) APT_MUSTCHECK; + bool SmartUnPack(PkgIterator Pkg, bool const Immediate = true, int const Depth = 0) APT_MUSTCHECK; bool SmartRemove(PkgIterator Pkg) APT_MUSTCHECK; bool EarlyRemove(PkgIterator Pkg, DepIterator const * const Dep) APT_MUSTCHECK; diff --git a/apt-pkg/pkgcache.h b/apt-pkg/pkgcache.h index f68736ddc..54b4319fb 100644 --- a/apt-pkg/pkgcache.h +++ b/apt-pkg/pkgcache.h @@ -386,8 +386,11 @@ struct pkgCache::Header void SetHashTableSize(unsigned int const sz) { HashTableSize = sz; } map_stringitem_t GetArchitectures() const { return Architectures; } void SetArchitectures(map_stringitem_t const idx) { Architectures = idx; } - map_pointer<Package> * PkgHashTableP() const { return (map_pointer<Package>*) (this + 1); } - map_pointer<Group> * GrpHashTableP() const { return reinterpret_cast<map_pointer<Group> *>(PkgHashTableP() + GetHashTableSize()); } + +#ifdef APT_COMPILING_APT + map_pointer<Group> * GrpHashTableP() const { return (map_pointer<Group>*) (this + 1); } + map_pointer<Package> * PkgHashTableP() const { return reinterpret_cast<map_pointer<Package> *>(GrpHashTableP() + GetHashTableSize()); } +#endif /** \brief Hash of the file (TODO: Rename) */ map_filesize_small_t CacheFileSize; diff --git a/apt-pkg/pkgsystem.cc b/apt-pkg/pkgsystem.cc index eaa3f5ab7..7e48a68c7 100644 --- a/apt-pkg/pkgsystem.cc +++ b/apt-pkg/pkgsystem.cc @@ -56,22 +56,6 @@ APT_PURE pkgSystem *pkgSystem::GetSystem(const char *Label) return 0; } /*}}}*/ -bool pkgSystem::MultiArchSupported() const /*{{{*/ -{ - debSystem const * const deb = dynamic_cast<debSystem const *>(this); - if (deb != NULL) - return deb->SupportsMultiArch(); - return true; -} - /*}}}*/ -std::vector<std::string> pkgSystem::ArchitecturesSupported() const /*{{{*/ -{ - debSystem const * const deb = dynamic_cast<debSystem const *>(this); - if (deb != NULL) - return deb->SupportedArchitectures(); - return {}; -} - /*}}}*/ // pkgSystem::Set/GetVersionMapping - for internal/external communication/*{{{*/ void pkgSystem::SetVersionMapping(map_id_t const in, map_id_t const out) { @@ -85,29 +69,4 @@ map_id_t pkgSystem::GetVersionMapping(map_id_t const in) const return (o == d->idmap.end()) ? in : o->second; } /*}}}*/ - -bool pkgSystem::LockInner() /*{{{*/ -{ - debSystem * const deb = dynamic_cast<debSystem *>(this); - if (deb != NULL) - return deb->LockInner(); - return _error->Error("LockInner is not implemented"); -} - /*}}}*/ -bool pkgSystem::UnLockInner(bool NoErrors) /*{{{*/ -{ - debSystem * const deb = dynamic_cast<debSystem *>(this); - if (deb != NULL) - return deb->UnLockInner(NoErrors); - return _error->Error("UnLockInner is not implemented"); -} - /*}}}*/ -bool pkgSystem::IsLocked() /*{{{*/ -{ - debSystem * const deb = dynamic_cast<debSystem *>(this); - if (deb != NULL) - return deb->IsLocked(); - return true; -} - /*}}}*/ pkgSystem::~pkgSystem() {} diff --git a/apt-pkg/pkgsystem.h b/apt-pkg/pkgsystem.h index 051b11ac2..1ccdcd1fb 100644 --- a/apt-pkg/pkgsystem.h +++ b/apt-pkg/pkgsystem.h @@ -100,7 +100,7 @@ class pkgSystem * * @return \b true if the system supports MultiArch, \b false if not. */ - bool MultiArchSupported() const; + virtual bool MultiArchSupported() const = 0; /** architectures supported by this system * * A MultiArch capable system might be configured to use @@ -109,7 +109,7 @@ class pkgSystem * @return a list of all architectures (native + foreign) configured * for on this system (aka: which can be installed without force) */ - std::vector<std::string> ArchitecturesSupported() const; + virtual std::vector<std::string> ArchitecturesSupported() const = 0; APT_HIDDEN void SetVersionMapping(map_id_t const in, map_id_t const out); APT_HIDDEN map_id_t GetVersionMapping(map_id_t const in) const; @@ -124,10 +124,10 @@ class pkgSystem * lock without releasing the overall outer lock, so that dpkg can run * correctly but no other APT instance can acquire the system lock. */ - bool LockInner(); - bool UnLockInner(bool NoErrors = false); + virtual bool LockInner() = 0; + virtual bool UnLockInner(bool NoErrors = false) = 0; /// checks if the system is currently locked - bool IsLocked(); + virtual bool IsLocked() = 0; private: pkgSystemPrivate * const d; }; diff --git a/cmdline/apt-cdrom.cc b/cmdline/apt-cdrom.cc index e9218ae69..94202d9e1 100644 --- a/cmdline/apt-cdrom.cc +++ b/cmdline/apt-cdrom.cc @@ -107,7 +107,7 @@ static bool AddOrIdent(bool const Add) bool oneSuccessful = false; bool AutoDetect = _config->FindB("Acquire::cdrom::AutoDetect", true); - if (AutoDetect == true && UdevCdroms.Dlopen() == true) + if (AutoDetect == true) { bool const Debug = _config->FindB("Debug::Acquire::cdrom", false); std::string const CDMount = _config->Find("Acquire::cdrom::mount"); diff --git a/debian/libapt-pkg6.0.symbols b/debian/libapt-pkg6.0.symbols index 7a293c115..4ae0dca2d 100644 --- a/debian/libapt-pkg6.0.symbols +++ b/debian/libapt-pkg6.0.symbols @@ -104,7 +104,6 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (c++)"pkgAcquire::Remove(pkgAcquire::Item*)@APTPKG_6.0" 0.8.0 (c++)"pkgAcquire::Remove(pkgAcquire::Worker*)@APTPKG_6.0" 0.8.0 (c++)"pkgAcquire::RunFds(fd_set*, fd_set*)@APTPKG_6.0" 0.8.0 - (c++)"pkgAcquire::RunFdsSane(fd_set*, fd_set*)@APTPKG_6.0" 1.1.1 (c++)"pkgAcquire::SetFds(int&, fd_set*, fd_set*)@APTPKG_6.0" 0.8.0 (c++)"pkgAcquire::UriEnd()@APTPKG_6.0" 0.8.0 (c++)"pkgAcquire::Worker::OutFdReady()@APTPKG_6.0" 0.8.0 @@ -138,7 +137,6 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (c++)"pkgRecords::~pkgRecords()@APTPKG_6.0" 0.8.0 (c++)"pkgTagFile::Step(pkgTagSection&)@APTPKG_6.0" 0.8.0 (c++)"pkgTagFile::~pkgTagFile()@APTPKG_6.0" 0.8.0 - (c++)"CommandLine::DispatchArg(CommandLine::Dispatch*, bool)@APTPKG_6.0" 0.8.0 (c++)"CommandLine::SaveInConfig(unsigned int const&, char const* const*)@APTPKG_6.0" 0.8.0 (c++)"CommandLine::Parse(int, char const**)@APTPKG_6.0" 0.8.0 (c++)"CommandLine::HandleOpt(int&, int, char const**, char const*&, CommandLine::Args*, bool)@APTPKG_6.0" 0.8.0 @@ -199,6 +197,7 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (c++)"pkgSimulate::Remove(pkgCache::PkgIterator, bool)@APTPKG_6.0" 0.8.0 (c++)"pkgSimulate::Install(pkgCache::PkgIterator, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 (c++)"pkgSimulate::Configure(pkgCache::PkgIterator)@APTPKG_6.0" 0.8.0 + (c++)"pkgSimulate::Go(APT::Progress::PackageManager*)@APTPKG_6.0" 1.9.10 (c++)"pkgSimulate::pkgSimulate(pkgDepCache*)@APTPKG_6.0" 0.8.0 (c++)"pkgSimulate::~pkgSimulate()@APTPKG_6.0" 0.8.0 (c++)"pkgAcqMethod::FetchResult::TakeHashes(Hashes&)@APTPKG_6.0" 0.8.0 @@ -304,7 +303,6 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (c++)"pkgPackageManager::FixMissing()@APTPKG_6.0" 0.8.0 (c++)"pkgPackageManager::GetArchives(pkgAcquire*, pkgSourceList*, pkgRecords*)@APTPKG_6.0" 0.8.0 (c++)"pkgPackageManager::SmartRemove(pkgCache::PkgIterator)@APTPKG_6.0" 0.8.0 - (c++)"pkgPackageManager::SmartUnPack(pkgCache::PkgIterator)@APTPKG_6.0" 0.8.0 (c++)"pkgPackageManager::ConfigureAll()@APTPKG_6.0" 0.8.0 (c++)"pkgPackageManager::ImmediateAdd(pkgCache::PkgIterator, bool, unsigned int const&)@APTPKG_6.0" 0.8.0 (c++)"pkgPackageManager::OrderInstall()@APTPKG_6.0" 0.8.0 @@ -321,7 +319,6 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (c++)"debVersioningSystem::CheckDep(char const*, int, char const*)@APTPKG_6.0" 0.8.0 (c++)"debVersioningSystem::debVersioningSystem()@APTPKG_6.0" 0.8.0 (c++)"pkgUdevCdromDevices::Scan()@APTPKG_6.0" 0.8.0 - (c++)"pkgUdevCdromDevices::Dlopen()@APTPKG_6.0" 0.8.0 (c++)"pkgUdevCdromDevices::pkgUdevCdromDevices()@APTPKG_6.0" 0.8.0 (c++)"pkgUdevCdromDevices::~pkgUdevCdromDevices()@APTPKG_6.0" 0.8.0 (c++)"pkgVersioningSystem::GlobalList@APTPKG_6.0" 0.8.0 @@ -1037,6 +1034,7 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (c++)"debDebianSourceDirIndex::GetType() const@APTPKG_6.0" 1.1~exp9 (c++)"debDebPkgFileIndex::~debDebPkgFileIndex()@APTPKG_6.0" 1.1~exp9 (c++)"debDebPkgFileIndex::debDebPkgFileIndex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"debDebPkgFileIndex::ArchiveInfo[abi:cxx11](pkgCache::VerIterator const&) const@APTPKG_6.0" 1.1~exp9 (c++)"debDebPkgFileIndex::FindInCache(pkgCache&) const@APTPKG_6.0" 1.1~exp9 (c++)"debDebPkgFileIndex::GetArchitecture[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 (c++)"debDebPkgFileIndex::GetComponent[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 @@ -1126,7 +1124,6 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (c++)"pkgAcqChangelog::URI(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, char const*, char const*)@APTPKG_6.0" 1.1~exp9 (c++)"pkgAcqChangelog::URITemplate[abi:cxx11](pkgCache::RlsFileIterator const&)@APTPKG_6.0" 1.1~exp9 (c++)"pkgAcqFile::Done(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, HashStringList const&, pkgAcquire::MethodConfig const*)@APTPKG_6.0" 1.1~exp9 - (c++)"pkgAcqFile::Failed(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pkgAcquire::MethodConfig const*)@APTPKG_6.0" 1.1~exp9 (c++)"pkgAcqFile::GetExpectedHashes() const@APTPKG_6.0" 1.1~exp9 (c++)"pkgAcqFile::HashesRequired() const@APTPKG_6.0" 1.1~exp9 (c++)"pkgAcqFile::pkgAcqFile(pkgAcquire*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, HashStringList const&, unsigned long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)@APTPKG_6.0" 1.1~exp9 @@ -1318,8 +1315,6 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (c++)"APT::StateChanges::StateChanges(APT::StateChanges&&)@APTPKG_6.0" 1.1~exp15 (c++)"APT::StateChanges::Unhold()@APTPKG_6.0" 1.1~exp15 (c++)"APT::StateChanges::Unhold(pkgCache::VerIterator const&)@APTPKG_6.0" 1.1~exp15 - (c++)"pkgSystem::ArchitecturesSupported[abi:cxx11]() const@APTPKG_6.0" 1.1~exp15 - (c++)"pkgSystem::MultiArchSupported() const@APTPKG_6.0" 1.1~exp15 (c++)"metaIndex::IsArchitectureSupported(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@APTPKG_6.0" 1.1~exp15 ### misc stuff (c++)"RemoveFile(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp15 @@ -1423,9 +1418,11 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (c++)"RemoveFileAt(char const*, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.5~beta2~ (c++|optional=std)"void std::vector<pkgAcquireStatus::ReleaseInfoChange, std::allocator<pkgAcquireStatus::ReleaseInfoChange> >::emplace_back<pkgAcquireStatus::ReleaseInfoChange>(pkgAcquireStatus::ReleaseInfoChange&&)@APTPKG_6.0" 1.5~beta2~ (c++)"pkgAcqMethod::FetchItem::Proxy[abi:cxx11]()@APTPKG_6.0" 1.6~alpha1~ - (c++)"pkgSystem::IsLocked()@APTPKG_6.0" 1.7.0~alpha3~ - (c++)"pkgSystem::LockInner()@APTPKG_6.0" 1.7.0~alpha3~ - (c++)"pkgSystem::UnLockInner(bool)@APTPKG_6.0" 1.7.0~alpha3~ + (c++)"debSystem::ArchitecturesSupported[abi:cxx11]() const@APTPKG_6.0" 1.9.10 + (c++)"debSystem::MultiArchSupported() const@APTPKG_6.0" 1.9.10 + (c++)"debSystem::IsLocked()@APTPKG_6.0" 1.9.10 + (c++)"debSystem::LockInner()@APTPKG_6.0" 1.9.10 + (c++)"debSystem::UnLockInner(bool)@APTPKG_6.0" 1.9.10 # gcc-8 artifacts (c++|optional=std)"std::enable_if<std::__and_<std::__not_<std::__is_tuple_like<IndexTarget> >, std::is_move_constructible<IndexTarget>, std::is_move_assignable<IndexTarget> >::value, void>::type std::swap<IndexTarget>(IndexTarget&, IndexTarget&)@APTPKG_6.0" 1.5~beta2~ (c++|optional=std)"pkgAcqMethod::SendMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&&)@APTPKG_6.0" 1.7.0~alpha3~ diff --git a/methods/cdrom.cc b/methods/cdrom.cc index 4ae64c8d3..d836e1315 100644 --- a/methods/cdrom.cc +++ b/methods/cdrom.cc @@ -62,7 +62,6 @@ CDROMMethod::CDROMMethod() : aptMethod("cdrom", "1.0",SingleInstance | LocalOnly Debug(false), MountedByApt(false) { - UdevCdroms.Dlopen(); } /*}}}*/ // CDROMMethod::Exit - Unmount the disc if necessary /*{{{*/ |