diff options
-rw-r--r-- | apt-pkg/clean.cc | 19 | ||||
-rw-r--r-- | apt-pkg/clean.h | 16 | ||||
-rw-r--r-- | apt-private/private-download.cc | 2 | ||||
-rw-r--r-- | debian/libapt-pkg6.0.symbols | 2 |
4 files changed, 6 insertions, 33 deletions
diff --git a/apt-pkg/clean.cc b/apt-pkg/clean.cc index f335554a3..9dd56e609 100644 --- a/apt-pkg/clean.cc +++ b/apt-pkg/clean.cc @@ -43,17 +43,9 @@ bool pkgArchiveCleaner::Go(std::string Dir,pkgCache &Cache) if (FileExists(Dir) == false) return true; - auto const withoutChangingDir = dynamic_cast<pkgArchiveCleaner2*>(this); int const dirfd = open(Dir.c_str(), O_RDONLY | O_DIRECTORY | O_CLOEXEC); if (dirfd == -1) return _error->Errno("open",_("Unable to read %s"),Dir.c_str()); - std::string CWD; - if (withoutChangingDir == nullptr) - { - CWD = SafeGetCWD(); - if (fchdir(dirfd) != 0) - return _error->Errno("fchdir",_("Unable to change to %s"),Dir.c_str()); - } DIR * const D = fdopendir(dirfd); if (D == nullptr) return _error->Errno("opendir",_("Unable to read %s"),Dir.c_str()); @@ -131,18 +123,9 @@ bool pkgArchiveCleaner::Go(std::string Dir,pkgCache &Cache) continue; } - if (withoutChangingDir == nullptr) - { - APT_IGNORE_DEPRECATED_PUSH - Erase(Dir->d_name, Pkg, Ver, St); - APT_IGNORE_DEPRECATED_POP - } - else - withoutChangingDir->Erase(dirfd, Dir->d_name, Pkg, Ver, St); + Erase(dirfd, Dir->d_name, Pkg, Ver, St); } closedir(D); - if (withoutChangingDir == nullptr && chdir(CWD.c_str()) != 0) - return _error->Errno("chdir", _("Unable to change to %s"),Dir.c_str()); return true; } /*}}}*/ diff --git a/apt-pkg/clean.h b/apt-pkg/clean.h index d6490a0c5..a64e6a935 100644 --- a/apt-pkg/clean.h +++ b/apt-pkg/clean.h @@ -25,8 +25,9 @@ class pkgArchiveCleaner void * const d; protected: - - APT_DEPRECATED_MSG("Use pkgArchiveCleaner2 to avoid CWD expectations and chdir") virtual void Erase(const char * /*File*/,std::string /*Pkg*/,std::string /*Ver*/,struct stat & /*St*/) {}; + virtual void Erase(int const dirfd, char const * const File, + std::string const &Pkg,std::string const &Ver, + struct stat const &St) = 0; public: @@ -35,15 +36,6 @@ class pkgArchiveCleaner pkgArchiveCleaner(); virtual ~pkgArchiveCleaner(); }; -// TODO: merge classes and "erase" the old way -class pkgArchiveCleaner2: public pkgArchiveCleaner -{ - friend class pkgArchiveCleaner; -protected: - using pkgArchiveCleaner::Erase; - virtual void Erase(int const dirfd, char const * const File, - std::string const &Pkg,std::string const &Ver, - struct stat const &St) = 0; -}; + #endif diff --git a/apt-private/private-download.cc b/apt-private/private-download.cc index 2c12676ea..16d11255b 100644 --- a/apt-private/private-download.cc +++ b/apt-private/private-download.cc @@ -339,7 +339,7 @@ bool DoClean(CommandLine &) // --------------------------------------------------------------------- /* This is similar to clean but it only purges things that cannot be downloaded, that is old versions of cached packages. */ - class LogCleaner : public pkgArchiveCleaner2 + class LogCleaner : public pkgArchiveCleaner { protected: virtual void Erase(int const dirfd, char const * const File, std::string const &Pkg, std::string const &Ver,struct stat const &St) APT_OVERRIDE diff --git a/debian/libapt-pkg6.0.symbols b/debian/libapt-pkg6.0.symbols index ee7bd1401..dcb29981b 100644 --- a/debian/libapt-pkg6.0.symbols +++ b/debian/libapt-pkg6.0.symbols @@ -1498,9 +1498,7 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (c++)"pkgAcquireStatus::ReleaseInfoChanges(metaIndex const*, metaIndex const*, std::vector<pkgAcquireStatus::ReleaseInfoChange, std::allocator<pkgAcquireStatus::ReleaseInfoChange> >&&)@APTPKG_6.0" 1.5~beta2~ (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++)"typeinfo for pkgAcquireStatus2@APTPKG_6.0" 1.5~beta2~ - (c++)"typeinfo for pkgArchiveCleaner2@APTPKG_6.0" 1.5~beta2~ (c++)"typeinfo name for pkgAcquireStatus2@APTPKG_6.0" 1.5~beta2~ - (c++)"typeinfo name for pkgArchiveCleaner2@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++)"vtable for pkgAcquireStatus2@APTPKG_6.0" 1.5~beta2~ (c++)"pkgAcqMethod::FetchItem::Proxy[abi:cxx11]()@APTPKG_6.0" 1.6~alpha1~ |