]> git.saurik.com Git - apt.git/commitdiff
add #ifdefed ABI break & cleaner solution once the abi break is in place
authorMichael Vogt <mvo@debian.org>
Wed, 4 Dec 2013 16:58:36 +0000 (17:58 +0100)
committerMichael Vogt <mvo@debian.org>
Wed, 4 Dec 2013 16:58:36 +0000 (17:58 +0100)
apt-pkg/deb/debmetaindex.cc
apt-pkg/deb/debmetaindex.h
apt-pkg/makefile
apt-pkg/metaindex.cc [new file with mode: 0644]
apt-pkg/metaindex.h
cmdline/apt-get.cc

index b597b6f3c281898e990fb6ead38d1530f61e0592..345b1ec118cbec2ab8c4d632546f5da84d3dfc5b 100644 (file)
@@ -1,4 +1,3 @@
-// ijones, walters
 #include <config.h>
 
 #include <apt-pkg/debmetaindex.h>
@@ -36,6 +35,7 @@ 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 +71,7 @@ string debReleaseIndex::MetaIndexURI(const char *Type) const
    Res += Type;
    return Res;
 }
+#endif
 
 string debReleaseIndex::IndexURISuffix(const char *Type, string const &Section, string const &Arch) const
 {
index b9ecab97cda0dd5abbe57b36286870346576c6aa..fc0b7f948f005e342aa92f554bff992f843597c3 100644 (file)
@@ -3,6 +3,7 @@
 #define PKGLIB_DEBMETAINDEX_H
 
 #include <apt-pkg/metaindex.h>
+#include <apt-pkg/init.h>
 
 #include <map>
 #include <string>
@@ -39,9 +40,13 @@ class debReleaseIndex : public metaIndex {
    virtual bool GetIndexes(pkgAcquire *Owner, bool const &GetAll=false) const;
    std::vector <struct IndexTarget *>* ComputeIndexTargets() const;
    std::string Info(const char *Type, std::string const &Section, std::string const &Arch="") const;
+
+#if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR < 13)
    std::string MetaIndexInfo(const char *Type) const;
    std::string MetaIndexFile(const char *Types) const;
    std::string MetaIndexURI(const char *Type) const;
+#endif
+
    std::string IndexURI(const char *Type, std::string const &Section, std::string const &Arch="native") const;
    std::string IndexURISuffix(const char *Type, std::string const &Section, std::string const &Arch="native") const;
    std::string SourceIndexURI(const char *Type, const std::string &Section) const;
index a90131f80f58ce14f35640177be6cb7a7eddf3b7..108632695fb89ac5d4bbdfba0dbfb7db66c3eb93 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 pkgcachegen.cc acquire-item.cc \
+        pkgsystem.cc indexfile.cc metaindex.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
new file mode 100644 (file)
index 0000000..2292ac3
--- /dev/null
@@ -0,0 +1,44 @@
+
+#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 0c2600c3af9da6091416de551cf7c0e9dfff0ac5..6503f7dc86d3a44e83204661d801b31fb58264bb 100644 (file)
@@ -5,6 +5,7 @@
 #include <string>
 #include <apt-pkg/pkgcache.h>
 #include <apt-pkg/indexfile.h>
+#include <apt-pkg/init.h>
 
 #ifndef APT_8_CLEANER_HEADERS
 #include <apt-pkg/srcrecords.h>
@@ -28,24 +29,32 @@ class metaIndex
 
    public:
 
-   
    // Various accessors
    virtual std::string GetURI() const {return URI;}
    virtual std::string GetDist() const {return Dist;}
    virtual const char* GetType() const {return Type;}
 
    // Interface for acquire
-   virtual std::string ArchiveURI(std::string const& /*File*/) const = 0;
+   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;
 
-   metaIndex(std::string const &URI, std::string const &Dist, char const * const Type) :
-               Indexes(NULL), Type(Type), URI(URI), Dist(Dist) {
+#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)
+   {
+      /* nothing */
    }
 
-   virtual ~metaIndex() {
+   virtual ~metaIndex() 
+   {
       if (Indexes == 0)
         return;
       for (std::vector<pkgIndexFile *>::iterator I = (*Indexes).begin();
index f0405e75c62e5b1acba78d6b5a91fa49b8738e0b..5f04135d267b1511d34b89ce9d69e1766bd45e3d 100644 (file)
@@ -136,10 +136,15 @@ bool TryToInstallBuildDep(pkgCache::PkgIterator Pkg,pkgCacheFile &Cache,
                                                                        /*}}}*/
 
 // FIXME: move into more generic code (metaindex ?)
+#if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR < 13)
 std::string MetaIndexFileName(metaIndex *metaindex)
 {
    // FIXME: this cast is the horror, the horror
    debReleaseIndex *r = (debReleaseIndex*)metaindex;
+#else
+std::string MetaIndexFileName(metaIndex *r)
+{
+#endif
 
    // see if we have a InRelease file
    std::string PathInRelease =  r->MetaIndexFile("InRelease");