projects
/
apt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
merged from lp:~donkult/apt/debian-experimental
[apt.git]
/
ftparchive
/
writer.cc
diff --git
a/ftparchive/writer.cc
b/ftparchive/writer.cc
index 60db8b9907a949541e2edc08efe78da93bd9b495..6a24fb8aabc323b8ca609382617abdaae56a134c 100644
(file)
--- a/
ftparchive/writer.cc
+++ b/
ftparchive/writer.cc
@@
-11,9
+11,8
@@
##################################################################### */
/*}}}*/
// Include Files /*{{{*/
##################################################################### */
/*}}}*/
// Include Files /*{{{*/
-#include "writer.h"
-
-#include <apti18n.h>
+#include <config.h>
+
#include <apt-pkg/strutl.h>
#include <apt-pkg/error.h>
#include <apt-pkg/configuration.h>
#include <apt-pkg/strutl.h>
#include <apt-pkg/error.h>
#include <apt-pkg/configuration.h>
@@
-30,10
+29,13
@@
#include <iostream>
#include <sstream>
#include <memory>
#include <iostream>
#include <sstream>
#include <memory>
-
+
+#include "writer.h"
#include "cachedb.h"
#include "apt-ftparchive.h"
#include "multicompress.h"
#include "cachedb.h"
#include "apt-ftparchive.h"
#include "multicompress.h"
+
+#include <apti18n.h>
/*}}}*/
using namespace std;
FTWScanner *FTWScanner::Owner;
/*}}}*/
using namespace std;
FTWScanner *FTWScanner::Owner;
@@
-246,8
+248,8
@@
bool FTWScanner::LoadFileList(string const &Dir, string const &File)
// ---------------------------------------------------------------------
/* */
bool FTWScanner::Delink(string &FileName,const char *OriginalPath,
// ---------------------------------------------------------------------
/* */
bool FTWScanner::Delink(string &FileName,const char *OriginalPath,
- unsigned long &DeLinkBytes,
-
off_t
const &FileSize)
+ unsigned long
long
&DeLinkBytes,
+
unsigned long long
const &FileSize)
{
// See if this isn't an internaly prefix'd file name.
if (InternalPrefix.empty() == false &&
{
// See if this isn't an internaly prefix'd file name.
if (InternalPrefix.empty() == false &&
@@
-377,7
+379,7
@@
bool PackagesWriter::DoPackage(string FileName)
return false;
}
return false;
}
-
off_t
FileSize = Db.GetFileSize();
+
unsigned long long
FileSize = Db.GetFileSize();
if (Delink(FileName,OriginalPath,Stats.DeLinkBytes,FileSize) == false)
return false;
if (Delink(FileName,OriginalPath,Stats.DeLinkBytes,FileSize) == false)
return false;
@@
-413,7
+415,7
@@
bool PackagesWriter::DoPackage(string FileName)
}
char Size[40];
}
char Size[40];
- sprintf(Size,"%l
u", (unsigned
long) FileSize);
+ sprintf(Size,"%l
lu", (unsigned long
long) FileSize);
// Strip the DirStrip prefix from the FileName and add the PathPrefix
string NewFileName;
// Strip the DirStrip prefix from the FileName and add the PathPrefix
string NewFileName;
@@
-494,7
+496,7
@@
bool PackagesWriter::DoPackage(string FileName)
}
for (map<string,string>::const_iterator I = OverItem->FieldOverride.begin();
}
for (map<string,string>::const_iterator I = OverItem->FieldOverride.begin();
- I != OverItem->FieldOverride.end();
I++)
+ I != OverItem->FieldOverride.end();
++I)
SetTFRewriteData(Changes[End++],I->first.c_str(),I->second.c_str());
SetTFRewriteData(Changes[End++], 0, 0);
SetTFRewriteData(Changes[End++],I->first.c_str(),I->second.c_str());
SetTFRewriteData(Changes[End++], 0, 0);
@@
-610,7
+612,7
@@
bool SourcesWriter::DoPackage(string FileName)
if (St.st_size > 128*1024)
return _error->Error("DSC file '%s' is too large!",FileName.c_str());
if (St.st_size > 128*1024)
return _error->Error("DSC file '%s' is too large!",FileName.c_str());
- if (BufSize < (unsigned)St.st_size+1)
+ if (BufSize < (unsigned
long long
)St.st_size+1)
{
BufSize = St.st_size+1;
Buffer = (char *)realloc(Buffer,St.st_size+1);
{
BufSize = St.st_size+1;
Buffer = (char *)realloc(Buffer,St.st_size+1);
@@
-830,7
+832,7
@@
bool SourcesWriter::DoPackage(string FileName)
SetTFRewriteData(Changes[End++], "Maintainer", NewMaint.c_str());
for (map<string,string>::const_iterator I = SOverItem->FieldOverride.begin();
SetTFRewriteData(Changes[End++], "Maintainer", NewMaint.c_str());
for (map<string,string>::const_iterator I = SOverItem->FieldOverride.begin();
- I != SOverItem->FieldOverride.end();
I++)
+ I != SOverItem->FieldOverride.end();
++I)
SetTFRewriteData(Changes[End++],I->first.c_str(),I->second.c_str());
SetTFRewriteData(Changes[End++], 0, 0);
SetTFRewriteData(Changes[End++],I->first.c_str(),I->second.c_str());
SetTFRewriteData(Changes[End++], 0, 0);
@@
-887,22
+889,16
@@
bool ContentsWriter::ReadFromPkgs(string const &PkgFile,string const &PkgCompres
MultiCompress Pkgs(PkgFile,PkgCompress,0,false);
if (_error->PendingError() == true)
return false;
MultiCompress Pkgs(PkgFile,PkgCompress,0,false);
if (_error->PendingError() == true)
return false;
-
+
// Open the package file
// Open the package file
- int CompFd = -1;
- pid_t Proc = -1;
- if (Pkgs.OpenOld(CompFd,Proc) == false)
+ FileFd Fd;
+ if (Pkgs.OpenOld(Fd) == false)
return false;
return false;
-
- // No auto-close FD
- FileFd Fd(CompFd,false);
+
pkgTagFile Tags(&Fd);
if (_error->PendingError() == true)
pkgTagFile Tags(&Fd);
if (_error->PendingError() == true)
- {
- Pkgs.CloseOld(CompFd,Proc);
return false;
return false;
- }
-
+
// Parse.
pkgTagSection Section;
while (Tags.Step(Section) == true)
// Parse.
pkgTagSection Section;
while (Tags.Step(Section) == true)
@@
-924,11
+920,10
@@
bool ContentsWriter::ReadFromPkgs(string const &PkgFile,string const &PkgCompres
_error->DumpErrors();
}
}
_error->DumpErrors();
}
}
-
+
// Tidy the compressor
// Tidy the compressor
- if (Pkgs.CloseOld(CompFd,Proc) == false)
- return false;
-
+ Fd.Close();
+
return true;
}
return true;
}
@@
-946,12
+941,14
@@
ReleaseWriter::ReleaseWriter(string const &DB)
AddPattern("Packages.bz2");
AddPattern("Packages.lzma");
AddPattern("Packages.xz");
AddPattern("Packages.bz2");
AddPattern("Packages.lzma");
AddPattern("Packages.xz");
+ AddPattern("Translation-*");
AddPattern("Sources");
AddPattern("Sources.gz");
AddPattern("Sources.bz2");
AddPattern("Sources.lzma");
AddPattern("Sources.xz");
AddPattern("Release");
AddPattern("Sources");
AddPattern("Sources.gz");
AddPattern("Sources.bz2");
AddPattern("Sources.lzma");
AddPattern("Sources.xz");
AddPattern("Release");
+ AddPattern("Contents-*");
AddPattern("Index");
AddPattern("md5sum.txt");
}
AddPattern("Index");
AddPattern("md5sum.txt");
}
@@
-1040,7
+1037,7
@@
bool ReleaseWriter::DoPackage(string FileName)
CheckSums[NewFileName].size = fd.Size();
Hashes hs;
CheckSums[NewFileName].size = fd.Size();
Hashes hs;
- hs.AddFD(fd
.Fd()
, 0, DoMD5, DoSHA1, DoSHA256, DoSHA512);
+ hs.AddFD(fd, 0, DoMD5, DoSHA1, DoSHA256, DoSHA512);
if (DoMD5 == true)
CheckSums[NewFileName].MD5 = hs.MD5.Result();
if (DoSHA1 == true)
if (DoMD5 == true)
CheckSums[NewFileName].MD5 = hs.MD5.Result();
if (DoSHA1 == true)
@@
-1065,7
+1062,7
@@
void ReleaseWriter::Finish()
for(map<string,struct CheckSum>::const_iterator I = CheckSums.begin();
I != CheckSums.end(); ++I)
{
for(map<string,struct CheckSum>::const_iterator I = CheckSums.begin();
I != CheckSums.end(); ++I)
{
- fprintf(Output, " %s %16l
d
%s\n",
+ fprintf(Output, " %s %16l
lu
%s\n",
(*I).second.MD5.c_str(),
(*I).second.size,
(*I).first.c_str());
(*I).second.MD5.c_str(),
(*I).second.size,
(*I).first.c_str());
@@
-1077,7
+1074,7
@@
void ReleaseWriter::Finish()
for(map<string,struct CheckSum>::const_iterator I = CheckSums.begin();
I != CheckSums.end(); ++I)
{
for(map<string,struct CheckSum>::const_iterator I = CheckSums.begin();
I != CheckSums.end(); ++I)
{
- fprintf(Output, " %s %16l
d
%s\n",
+ fprintf(Output, " %s %16l
lu
%s\n",
(*I).second.SHA1.c_str(),
(*I).second.size,
(*I).first.c_str());
(*I).second.SHA1.c_str(),
(*I).second.size,
(*I).first.c_str());
@@
-1089,7
+1086,7
@@
void ReleaseWriter::Finish()
for(map<string,struct CheckSum>::const_iterator I = CheckSums.begin();
I != CheckSums.end(); ++I)
{
for(map<string,struct CheckSum>::const_iterator I = CheckSums.begin();
I != CheckSums.end(); ++I)
{
- fprintf(Output, " %s %16l
d
%s\n",
+ fprintf(Output, " %s %16l
lu
%s\n",
(*I).second.SHA256.c_str(),
(*I).second.size,
(*I).first.c_str());
(*I).second.SHA256.c_str(),
(*I).second.size,
(*I).first.c_str());
@@
-1101,7
+1098,7
@@
void ReleaseWriter::Finish()
I != CheckSums.end();
++I)
{
I != CheckSums.end();
++I)
{
- fprintf(Output, " %s %
32ld
%s\n",
+ fprintf(Output, " %s %
16llu
%s\n",
(*I).second.SHA512.c_str(),
(*I).second.size,
(*I).first.c_str());
(*I).second.SHA512.c_str(),
(*I).second.size,
(*I).first.c_str());