]> git.saurik.com Git - apt.git/commitdiff
add new LocalFileName() method to metaindex
authorMichael Vogt <mvo@debian.org>
Thu, 5 Dec 2013 06:53:53 +0000 (07:53 +0100)
committerMichael Vogt <mvo@debian.org>
Thu, 5 Dec 2013 06:53:53 +0000 (07:53 +0100)
apt-pkg/deb/debmetaindex.cc
apt-pkg/deb/debmetaindex.h
apt-pkg/indexfile.h
apt-pkg/makefile
apt-pkg/metaindex.cc [deleted file]
apt-pkg/metaindex.h
cmdline/apt-get.cc

index 345b1ec118cbec2ab8c4d632546f5da84d3dfc5b..504877558c5d82670c04f0ad8c39999b7531fd5a 100644 (file)
@@ -35,7 +35,6 @@ string debReleaseIndex::Info(const char *Type, string const &Section, string con
    return Info;
 }
 
-#if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR < 13)
 string debReleaseIndex::MetaIndexInfo(const char *Type) const
 {
    string Info = ::URI::SiteOnly(URI) + ' ';
@@ -71,6 +70,21 @@ string debReleaseIndex::MetaIndexURI(const char *Type) const
    Res += Type;
    return Res;
 }
+
+#if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR >= 13)
+std::string debReleaseIndex::LocalFileName() const
+{
+   // see if we have a InRelease file
+   std::string PathInRelease =  MetaIndexFile("InRelease");
+   if (FileExists(PathInRelease))
+      return PathInRelease;
+
+   // and if not return the normal one
+   if (FileExists(PathInRelease))
+      return MetaIndexFile("Release");
+
+   return "";
+}
 #endif
 
 string debReleaseIndex::IndexURISuffix(const char *Type, string const &Section, string const &Arch) const
index fc0b7f948f005e342aa92f554bff992f843597c3..9f488898db1b82117549cc6e0ac7de2a2c3e26b4 100644 (file)
@@ -45,6 +45,12 @@ class debReleaseIndex : public metaIndex {
    std::string MetaIndexInfo(const char *Type) const;
    std::string MetaIndexFile(const char *Types) const;
    std::string MetaIndexURI(const char *Type) const;
+#else
+   virtual std::string MetaIndexInfo(const char *Type) const;
+   virtual std::string MetaIndexFile(const char *Types) const;
+   virtual std::string MetaIndexURI(const char *Type) const;
+
+   virtual std::string LocalFileName() const;
 #endif
 
    std::string IndexURI(const char *Type, std::string const &Section, std::string const &Arch="native") const;
index 1d34dc773bb3123cfef7681d76dc45b96568e93b..2d433b60a4f92b29e3424ffd3941ca7c3ce2c776 100644 (file)
@@ -78,10 +78,10 @@ class pkgIndexFile
    virtual bool Exists() const = 0;
    virtual bool HasPackages() const = 0;
    virtual unsigned long Size() const = 0;
-   virtual bool Merge(pkgCacheGenerator &/*Gen*/,OpProgress* /*Prog*/) const { return false; };
+   virtual bool Merge(pkgCacheGenerator &Gen, OpProgress* Prog) const { return false; };
    __deprecated virtual bool Merge(pkgCacheGenerator &Gen, OpProgress &Prog) const
       { return Merge(Gen, &Prog); };
-   virtual bool MergeFileProvides(pkgCacheGenerator &/*Gen*/,OpProgress* /*Prog*/) const {return true;};
+   virtual bool MergeFileProvides(pkgCacheGenerator &Gen,OpProgress* Prog) const {return true;};
    __deprecated virtual bool MergeFileProvides(pkgCacheGenerator &Gen, OpProgress &Prog) const
       {return MergeFileProvides(Gen, &Prog);};
    virtual pkgCache::PkgFileIterator FindInCache(pkgCache &Cache) const;
index 108632695fb89ac5d4bbdfba0dbfb7db66c3eb93..a90131f80f58ce14f35640177be6cb7a7eddf3b7 100644 (file)
@@ -41,7 +41,7 @@ SOURCE+= pkgcache.cc version.cc depcache.cc \
         pkgrecords.cc algorithms.cc acquire.cc\
         acquire-worker.cc acquire-method.cc init.cc clean.cc \
         srcrecords.cc cachefile.cc versionmatch.cc policy.cc \
-        pkgsystem.cc indexfile.cc metaindex.cc pkgcachegen.cc acquire-item.cc \
+        pkgsystem.cc indexfile.cc pkgcachegen.cc acquire-item.cc \
         indexrecords.cc vendor.cc vendorlist.cc cdrom.cc indexcopy.cc \
         aptconfiguration.cc cachefilter.cc cacheset.cc edsp.cc \
         install-progress.cc upgrade.cc update.cc
diff --git a/apt-pkg/metaindex.cc b/apt-pkg/metaindex.cc
deleted file mode 100644 (file)
index 2292ac3..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-
-#include <apt-pkg/strutl.h>
-
-#include "init.h"
-#include "metaindex.h"
-
-
-#if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR >= 13)
-string metaIndex::MetaIndexInfo(const char *Type) const
-{
-   string Info = ::URI::SiteOnly(URI) + ' ';
-   if (Dist[Dist.size() - 1] == '/')
-   {
-      if (Dist != "/")
-        Info += Dist;
-   }
-   else
-      Info += Dist;
-   Info += " ";
-   Info += Type;
-   return Info;
-}
-
-string metaIndex::MetaIndexFile(const char *Type) const
-{
-   return _config->FindDir("Dir::State::lists") +
-      URItoFileName(MetaIndexURI(Type));
-}
-
-string metaIndex::MetaIndexURI(const char *Type) const
-{
-   string Res;
-
-   if (Dist == "/")
-      Res = URI;
-   else if (Dist[Dist.size()-1] == '/')
-      Res = URI + Dist;
-   else
-      Res = URI + "dists/" + Dist + "/";
-   
-   Res += Type;
-   return Res;
-}
-#endif
index 6503f7dc86d3a44e83204661d801b31fb58264bb..14715422778f09c398ed5947a5f798b8dc5712ae 100644 (file)
@@ -34,18 +34,22 @@ class metaIndex
    virtual std::string GetDist() const {return Dist;}
    virtual const char* GetType() const {return Type;}
 
+   // interface to to query it
+#if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR >= 13)
+   virtual std::string MetaIndexInfo(const char *Type) const {return "";};
+   virtual std::string MetaIndexFile(const char *Types) const {return "";};
+   virtual std::string MetaIndexURI(const char *Type) const {return "";};
+
+   // returns the path of the local file (or "" if its not available)
+   virtual std::string LocalFileName() const {return "";};
+#endif
+
    // Interface for acquire
    virtual std::string ArchiveURI(std::string const& File) const = 0;
    virtual bool GetIndexes(pkgAcquire *Owner, bool const &GetAll=false) const = 0;
    virtual std::vector<pkgIndexFile *> *GetIndexFiles() = 0; 
    virtual bool IsTrusted() const = 0;
 
-#if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR >= 13)
-   virtual std::string MetaIndexInfo(const char *Type) const;
-   virtual std::string MetaIndexFile(const char *Types) const;
-   virtual std::string MetaIndexURI(const char *Type) const;
-#endif
-
    metaIndex(std::string const &URI, std::string const &Dist, 
              char const * const Type) 
       : Indexes(NULL), Type(Type), URI(URI), Dist(Dist)
index c38fd2d314604a4feb22d4b56283f0f0883dd997..7e59f3d6792c6a6dd7c2a34dcb65c6e8e759b7ff 100644 (file)
@@ -136,16 +136,12 @@ bool TryToInstallBuildDep(pkgCache::PkgIterator Pkg,pkgCacheFile &Cache,
                                                                        /*}}}*/
 
 
-// FIXME: move into more generic code (metaindex ?)
+// helper that can go wit hthe next ABI break
 #if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR < 13)
 std::string MetaIndexFileNameOnDisk(metaIndex *metaindex)
 {
    // FIXME: this cast is the horror, the horror
    debReleaseIndex *r = (debReleaseIndex*)metaindex;
-#else
-std::string MetaIndexFileNameOnDisk(metaIndex *r)
-{
-#endif
 
    // see if we have a InRelease file
    std::string PathInRelease =  r->MetaIndexFile("InRelease");
@@ -158,7 +154,7 @@ std::string MetaIndexFileNameOnDisk(metaIndex *r)
 
    return "";
 }
-
+#endif
 
 // GetReleaseForSourceRecord - Return Suite for the given srcrecord    /*{{{*/
 // ---------------------------------------------------------------------
@@ -178,7 +174,11 @@ std::string GetReleaseForSourceRecord(pkgSourceList *SrcList,
       {
          if (&CurrentIndexFile == (*IF))
          {
+#if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR < 13)
             std::string path = MetaIndexFileNameOnDisk(*S);
+#else
+            std::string path = (*S)->LocalFileName();
+#endif
             if (path != "") 
             {
                indexRecords records;