summaryrefslogtreecommitdiff
path: root/apt-inst/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'apt-inst/contrib')
-rw-r--r--apt-inst/contrib/arfile.h5
-rw-r--r--apt-inst/contrib/extracttar.cc18
-rw-r--r--apt-inst/contrib/extracttar.h11
3 files changed, 26 insertions, 8 deletions
diff --git a/apt-inst/contrib/arfile.h b/apt-inst/contrib/arfile.h
index 0f62a34a0..f53356847 100644
--- a/apt-inst/contrib/arfile.h
+++ b/apt-inst/contrib/arfile.h
@@ -17,6 +17,7 @@
#include <string>
+#include <apt-pkg/macros.h>
#ifndef APT_8_CLEANER_HEADERS
#include <apt-pkg/fileutl.h>
#endif
@@ -61,7 +62,11 @@ struct ARArchive::Member
unsigned long long Size;
// Location of the data.
+#if APT_PKG_ABI >= 413
+ unsigned long long Start;
+#else
unsigned long Start;
+#endif
Member *Next;
Member() : Start(0), Next(0) {};
diff --git a/apt-inst/contrib/extracttar.cc b/apt-inst/contrib/extracttar.cc
index 0ba3f0521..be0b69d96 100644
--- a/apt-inst/contrib/extracttar.cc
+++ b/apt-inst/contrib/extracttar.cc
@@ -60,9 +60,13 @@ struct ExtractTar::TarHeader
// ExtractTar::ExtractTar - Constructor /*{{{*/
// ---------------------------------------------------------------------
/* */
-ExtractTar::ExtractTar(FileFd &Fd,unsigned long Max,string DecompressionProgram) : File(Fd),
- MaxInSize(Max), DecompressProg(DecompressionProgram)
-
+#if APT_PKG_ABI >= 413
+ExtractTar::ExtractTar(FileFd &Fd,unsigned long long Max,string DecompressionProgram)
+ : File(Fd), MaxInSize(Max), DecompressProg(DecompressionProgram)
+#else
+ExtractTar::ExtractTar(FileFd &Fd,unsigned long Max,string DecompressionProgram)
+ : File(Fd), MaxInSize(Max), DecompressProg(DecompressionProgram)
+#endif
{
GZPid = -1;
Eof = false;
@@ -267,7 +271,7 @@ bool ExtractTar::Go(pkgDirStream &Stream)
case GNU_LongLink:
{
- unsigned long Length = Itm.Size;
+ unsigned long long Length = Itm.Size;
unsigned char Block[512];
while (Length > 0)
{
@@ -286,7 +290,7 @@ bool ExtractTar::Go(pkgDirStream &Stream)
case GNU_LongName:
{
- unsigned long Length = Itm.Size;
+ unsigned long long Length = Itm.Size;
unsigned char Block[512];
while (Length > 0)
{
@@ -315,11 +319,11 @@ bool ExtractTar::Go(pkgDirStream &Stream)
return false;
// Copy the file over the FD
- unsigned long Size = Itm.Size;
+ unsigned long long Size = Itm.Size;
while (Size != 0)
{
unsigned char Junk[32*1024];
- unsigned long Read = min(Size,(unsigned long)sizeof(Junk));
+ unsigned long Read = min(Size, (unsigned long long)sizeof(Junk));
if (InFd.Read(Junk,((Read+511)/512)*512) == false)
return false;
diff --git a/apt-inst/contrib/extracttar.h b/apt-inst/contrib/extracttar.h
index 4b29df314..57be956bd 100644
--- a/apt-inst/contrib/extracttar.h
+++ b/apt-inst/contrib/extracttar.h
@@ -15,6 +15,7 @@
#define PKGLIB_EXTRACTTAR_H
#include <apt-pkg/fileutl.h>
+#include <apt-pkg/macros.h>
#include <string>
@@ -39,7 +40,11 @@ class ExtractTar
GNU_LongLink = 'K',GNU_LongName = 'L'};
FileFd &File;
+#if APT_PKG_ABI >= 413
+ unsigned long long MaxInSize;
+#else
unsigned long MaxInSize;
+#endif
int GZPid;
FileFd InFd;
bool Eof;
@@ -52,8 +57,12 @@ class ExtractTar
public:
bool Go(pkgDirStream &Stream);
-
+
+#if APT_PKG_ABI >= 413
+ ExtractTar(FileFd &Fd,unsigned long long Max,std::string DecompressionProgram);
+#else
ExtractTar(FileFd &Fd,unsigned long Max,std::string DecompressionProgram);
+#endif
virtual ~ExtractTar();
};