X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/f732cca1a45def35db5f88444b22c1485125bfde..131418cfb2b83fb725fff62b0401252fef5655e2:/apt-pkg/deb/debmetaindex.cc diff --git a/apt-pkg/deb/debmetaindex.cc b/apt-pkg/deb/debmetaindex.cc index ea53a847e..f3ab6960c 100644 --- a/apt-pkg/deb/debmetaindex.cc +++ b/apt-pkg/deb/debmetaindex.cc @@ -1,9 +1,5 @@ // ijones, walters -#ifdef __GNUG__ -#pragma implementation "apt-pkg/debmetaindex.h" -#endif - #include #include #include @@ -119,6 +115,13 @@ debReleaseIndex::debReleaseIndex(string URI,string Dist) this->Type = "deb"; } +debReleaseIndex::~debReleaseIndex() +{ + for (vector::const_iterator I = SectionEntries.begin(); + I != SectionEntries.end(); I++) + delete *I; +} + vector * debReleaseIndex::ComputeIndexTargets() const { vector * IndexTargets = new vector ; @@ -148,9 +151,18 @@ bool debReleaseIndex::GetIndexes(pkgAcquire *Owner, bool GetAll) const vector *targets = ComputeIndexTargets(); for (vector ::const_iterator Target = targets->begin(); Target != targets->end(); Target++) { new pkgAcqIndex(Owner, (*Target)->URI, (*Target)->Description, - (*Target)->ShortDesc, ""); + (*Target)->ShortDesc, HashString()); } + // this is normally created in pkgAcqMetaSig, but if we run + // in --print-uris mode, we add it here + new pkgAcqMetaIndex(Owner, MetaIndexURI("Release"), + MetaIndexInfo("Release"), "Release", + MetaIndexURI("Release.gpg"), + ComputeIndexTargets(), + new indexRecords (Dist)); + } + new pkgAcqMetaSig(Owner, MetaIndexURI("Release.gpg"), MetaIndexInfo("Release.gpg"), "Release.gpg", MetaIndexURI("Release"), MetaIndexInfo("Release"), "Release", @@ -161,6 +173,8 @@ bool debReleaseIndex::GetIndexes(pkgAcquire *Owner, bool GetAll) const for (vector::const_iterator I = SectionEntries.begin(); I != SectionEntries.end(); I++) { + if((*I)->IsSrc) + continue; debTranslationsIndex i = debTranslationsIndex(URI,Dist,(*I)->Section); i.GetIndexes(Owner); } @@ -173,7 +187,7 @@ bool debReleaseIndex::IsTrusted() const string VerifiedSigFile = _config->FindDir("Dir::State::lists") + URItoFileName(MetaIndexURI("Release")) + ".gpg"; - if(_config->FindB("APT::Authentication::Trust-CDROM", false)) + if(_config->FindB("APT::Authentication::TrustCDROM", false)) if(URI.substr(0,strlen("cdrom:")) == "cdrom:") return true; @@ -226,7 +240,7 @@ class debSLTypeDebian : public pkgSourceList::Type // This check insures that there will be only one Release file // queued for all the Packages files and Sources files it // corresponds to. - if ((*I)->GetType() == "deb") + if (strcmp((*I)->GetType(), "deb") == 0) { debReleaseIndex *Deb = (debReleaseIndex *) (*I); // This check insures that there will be only one Release file