summaryrefslogtreecommitdiff
path: root/apt-pkg
diff options
context:
space:
mode:
Diffstat (limited to 'apt-pkg')
-rw-r--r--apt-pkg/deb/debmetaindex.cc3
-rw-r--r--apt-pkg/deb/debmetaindex.h5
-rw-r--r--apt-pkg/makefile2
-rw-r--r--apt-pkg/metaindex.cc44
-rw-r--r--apt-pkg/metaindex.h21
5 files changed, 67 insertions, 8 deletions
diff --git a/apt-pkg/deb/debmetaindex.cc b/apt-pkg/deb/debmetaindex.cc
index b597b6f3c..345b1ec11 100644
--- a/apt-pkg/deb/debmetaindex.cc
+++ b/apt-pkg/deb/debmetaindex.cc
@@ -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
{
diff --git a/apt-pkg/deb/debmetaindex.h b/apt-pkg/deb/debmetaindex.h
index b9ecab97c..fc0b7f948 100644
--- a/apt-pkg/deb/debmetaindex.h
+++ b/apt-pkg/deb/debmetaindex.h
@@ -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;
diff --git a/apt-pkg/makefile b/apt-pkg/makefile
index a90131f80..108632695 100644
--- a/apt-pkg/makefile
+++ b/apt-pkg/makefile
@@ -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
index 000000000..2292ac388
--- /dev/null
+++ b/apt-pkg/metaindex.cc
@@ -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
diff --git a/apt-pkg/metaindex.h b/apt-pkg/metaindex.h
index 0c2600c3a..6503f7dc8 100644
--- a/apt-pkg/metaindex.h
+++ b/apt-pkg/metaindex.h
@@ -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();