summaryrefslogtreecommitdiff
path: root/ftparchive
diff options
context:
space:
mode:
authorDavid Kalnischkies <kalnischkies@gmail.com>2009-11-26 23:46:49 +0100
committerDavid Kalnischkies <kalnischkies@gmail.com>2009-11-26 23:46:49 +0100
commit9c24493fabefe1a2549eaab81770dbe6f24916d9 (patch)
tree040799c1ee9e240a2652f1e87aa53975c29865cc /ftparchive
parente4a30974d7b3fa092d962682e22c5a8171cf3407 (diff)
Add APT::FTPArchive::LongDescription to disable the inclusion of the
LongDescriptions in the generated Packages file.
Diffstat (limited to 'ftparchive')
-rw-r--r--ftparchive/writer.cc21
-rw-r--r--ftparchive/writer.h1
2 files changed, 20 insertions, 2 deletions
diff --git a/ftparchive/writer.cc b/ftparchive/writer.cc
index 293e851f5..b2ebdca8a 100644
--- a/ftparchive/writer.cc
+++ b/ftparchive/writer.cc
@@ -308,6 +308,7 @@ PackagesWriter::PackagesWriter(string DB,string Overrides,string ExtOverrides,
DoSHA256 = _config->FindB("APT::FTPArchive::SHA256",true);
DoContents = _config->FindB("APT::FTPArchive::Contents",true);
NoOverride = _config->FindB("APT::FTPArchive::NoOverrideMsg",false);
+ LongDescription = _config->FindB("APT::FTPArchive::LongDescription",true);
if (Db.Loaded() == false)
DoContents = false;
@@ -414,10 +415,18 @@ bool PackagesWriter::DoPackage(string FileName)
NewFileName = FileName;
if (PathPrefix.empty() == false)
NewFileName = flCombine(PathPrefix,NewFileName);
-
+
+ /* Configuration says we don't want to include the long Description
+ in the package file - instead we want to ship a separated file */
+ string desc;
+ if (LongDescription == false) {
+ desc = Tags.FindS("Description").append("\n");
+ OverItem->FieldOverride["Description"] = desc.substr(0, desc.find('\n')).c_str();
+ }
+
// This lists all the changes to the fields we are going to make.
// (7 hardcoded + maintainer + suggests + end marker)
- TFRewriteData Changes[6+2+OverItem->FieldOverride.size()+1];
+ TFRewriteData Changes[6+2+OverItem->FieldOverride.size()+1+1];
unsigned int End = 0;
SetTFRewriteData(Changes[End++], "Size", Size);
@@ -429,6 +438,14 @@ bool PackagesWriter::DoPackage(string FileName)
SetTFRewriteData(Changes[End++], "Status", 0);
SetTFRewriteData(Changes[End++], "Optional", 0);
+ string DescriptionMd5;
+ if (LongDescription == false) {
+ MD5Summation descmd5;
+ descmd5.Add(desc.c_str());
+ DescriptionMd5 = descmd5.Result().Value();
+ SetTFRewriteData(Changes[End++], "Description-md5", DescriptionMd5.c_str());
+ }
+
// Rewrite the maintainer field if necessary
bool MaintFailed;
string NewMaint = OverItem->SwapMaint(Tags.FindS("Maintainer"),MaintFailed);
diff --git a/ftparchive/writer.h b/ftparchive/writer.h
index 6e161c752..e76438900 100644
--- a/ftparchive/writer.h
+++ b/ftparchive/writer.h
@@ -86,6 +86,7 @@ class PackagesWriter : public FTWScanner
bool DoSHA256;
bool NoOverride;
bool DoContents;
+ bool LongDescription;
// General options
string PathPrefix;