X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/b2e465d6d32d2dc884f58b94acb7e35f671a87fe..9a9665f96e006602950e0e32ce80cb5ee14f5e5f:/apt-pkg/deb/debindexfile.cc diff --git a/apt-pkg/deb/debindexfile.cc b/apt-pkg/deb/debindexfile.cc index 67afc89e6..ff8bce85d 100644 --- a/apt-pkg/deb/debindexfile.cc +++ b/apt-pkg/deb/debindexfile.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: debindexfile.cc,v 1.2 2001/02/20 07:03:17 jgg Exp $ +// $Id: debindexfile.cc,v 1.5.2.3 2004/01/04 19:11:00 mdz Exp $ /* ###################################################################### Debian Specific sources.list types and the three sorts of Debian @@ -23,15 +23,16 @@ #include #include #include - +#include + #include /*}}}*/ // SourcesIndex::debSourcesIndex - Constructor /*{{{*/ // --------------------------------------------------------------------- /* */ -debSourcesIndex::debSourcesIndex(string URI,string Dist,string Section) : - URI(URI), Dist(Dist), Section(Section) +debSourcesIndex::debSourcesIndex(string URI,string Dist,string Section,bool Trusted) : + pkgIndexFile(Trusted), URI(URI), Dist(Dist), Section(Section) { } /*}}}*/ @@ -66,15 +67,7 @@ string debSourcesIndex::SourceInfo(pkgSrcRecords::Parser const &Record, /* */ pkgSrcRecords::Parser *debSourcesIndex::CreateSrcParser() const { - string SourcesURI; - if (Dist[Dist.size() - 1] == '/') - SourcesURI = URI + Dist; - else - SourcesURI = URI + "dists/" + Dist + '/' + Section + - "/source/"; - - SourcesURI += "Sources"; - SourcesURI = URItoFileName(SourcesURI); + string SourcesURI = URItoFileName(IndexURI("Sources")); return new debSrcRecordParser(_config->FindDir("Dir::State::lists") + SourcesURI,this); } @@ -82,11 +75,15 @@ pkgSrcRecords::Parser *debSourcesIndex::CreateSrcParser() const // SourcesIndex::Describe - Give a descriptive path to the index /*{{{*/ // --------------------------------------------------------------------- /* */ -string debSourcesIndex::Describe() const +string debSourcesIndex::Describe(bool Short) const { char S[300]; - snprintf(S,sizeof(S),"%s (%s)",Info("Packages").c_str(), - IndexFile("Sources").c_str()); + if (Short == true) + snprintf(S,sizeof(S),"%s",Info("Sources").c_str()); + else + snprintf(S,sizeof(S),"%s (%s)",Info("Sources").c_str(), + IndexFile("Sources").c_str()); + return S; } /*}}}*/ @@ -133,16 +130,6 @@ string debSourcesIndex::IndexURI(const char *Type) const return Res; } /*}}}*/ -// SourcesIndex::GetIndexes - Fetch the index files /*{{{*/ -// --------------------------------------------------------------------- -/* */ -bool debSourcesIndex::GetIndexes(pkgAcquire *Owner) const -{ - new pkgAcqIndex(Owner,IndexURI("Sources"),Info("Sources"),"Sources"); - new pkgAcqIndexRel(Owner,IndexURI("Release"),Info("Release"),"Release"); - return true; -} - /*}}}*/ // SourcesIndex::Exists - Check if the index is available /*{{{*/ // --------------------------------------------------------------------- /* */ @@ -166,8 +153,8 @@ unsigned long debSourcesIndex::Size() const // PackagesIndex::debPackagesIndex - Contructor /*{{{*/ // --------------------------------------------------------------------- /* */ -debPackagesIndex::debPackagesIndex(string URI,string Dist,string Section) : - URI(URI), Dist(Dist), Section(Section) +debPackagesIndex::debPackagesIndex(string URI,string Dist,string Section,bool Trusted) : + pkgIndexFile(Trusted), URI(URI), Dist(Dist), Section(Section) { } /*}}}*/ @@ -196,11 +183,14 @@ string debPackagesIndex::ArchiveInfo(pkgCache::VerIterator Ver) const // --------------------------------------------------------------------- /* This should help the user find the index in the sources.list and in the filesystem for problem solving */ -string debPackagesIndex::Describe() const +string debPackagesIndex::Describe(bool Short) const { char S[300]; - snprintf(S,sizeof(S),"%s (%s)",Info("Packages").c_str(), - IndexFile("Packages").c_str()); + if (Short == true) + snprintf(S,sizeof(S),"%s",Info("Packages").c_str()); + else + snprintf(S,sizeof(S),"%s (%s)",Info("Packages").c_str(), + IndexFile("Packages").c_str()); return S; } /*}}}*/ @@ -247,16 +237,6 @@ string debPackagesIndex::IndexURI(const char *Type) const return Res; } /*}}}*/ -// PackagesIndex::GetIndexes - Fetch the index files /*{{{*/ -// --------------------------------------------------------------------- -/* */ -bool debPackagesIndex::GetIndexes(pkgAcquire *Owner) const -{ - new pkgAcqIndex(Owner,IndexURI("Packages"),Info("Packages"),"Packages"); - new pkgAcqIndexRel(Owner,IndexURI("Release"),Info("Release"),"Release"); - return true; -} - /*}}}*/ // PackagesIndex::Exists - Check if the index is available /*{{{*/ // --------------------------------------------------------------------- /* */ @@ -304,13 +284,13 @@ bool debPackagesIndex::Merge(pkgCacheGenerator &Gen,OpProgress &Prog) const return _error->Error("Problem with MergeList %s",PackageFile.c_str()); // Check the release file - string ReleaseFile = IndexFile("Release"); + string ReleaseFile = debReleaseIndex(URI,Dist).MetaIndexFile("Release"); if (FileExists(ReleaseFile) == true) { FileFd Rel(ReleaseFile,FileFd::ReadOnly); if (_error->PendingError() == true) return false; - Parser.LoadReleaseInfo(File,Rel); + Parser.LoadReleaseInfo(File,Rel,Section); } return true; @@ -343,7 +323,7 @@ pkgCache::PkgFileIterator debPackagesIndex::FindInCache(pkgCache &Cache) const // StatusIndex::debStatusIndex - Constructor /*{{{*/ // --------------------------------------------------------------------- /* */ -debStatusIndex::debStatusIndex(string File) : File(File) +debStatusIndex::debStatusIndex(string File) : pkgIndexFile(true), File(File) { } /*}}}*/ @@ -419,46 +399,6 @@ bool debStatusIndex::Exists() const } /*}}}*/ -// Source List types for Debian /*{{{*/ -class debSLTypeDeb : public pkgSourceList::Type -{ - public: - - bool CreateItem(vector &List,string URI, - string Dist,string Section) const - { - List.push_back(new debPackagesIndex(URI,Dist,Section)); - return true; - }; - - debSLTypeDeb() - { - Name = "deb"; - Label = "Standard Debian binary tree"; - } -}; - -class debSLTypeDebSrc : public pkgSourceList::Type -{ - public: - - bool CreateItem(vector &List,string URI, - string Dist,string Section) const - { - List.push_back(new debSourcesIndex(URI,Dist,Section)); - return true; - }; - - debSLTypeDebSrc() - { - Name = "deb-src"; - Label = "Standard Debian source tree"; - } -}; - -debSLTypeDeb _apt_DebType; -debSLTypeDebSrc _apt_DebSrcType; - /*}}}*/ // Index File types for Debian /*{{{*/ class debIFTypeSrc : public pkgIndexFile::Type {