]> git.saurik.com Git - apt.git/commitdiff
* ftparchive/writer.cc:
authorDavid Kalnischkies <kalnischkies@gmail.com>
Thu, 20 Jan 2011 15:01:40 +0000 (16:01 +0100)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Thu, 20 Jan 2011 15:01:40 +0000 (16:01 +0100)
  - add config option to search for more patterns in release command

debian/changelog
doc/apt-ftparchive.1.xml
ftparchive/writer.cc
ftparchive/writer.h

index 59f51675131ce18b790997d519539fb32ffba399..ca88901a151cc4a0ed708216600686ebf4c26bce 100644 (file)
@@ -59,8 +59,10 @@ apt (0.8.11+wheezy) unstable; urgency=low
       can be used without being root (Closes: #393005, #592107)
   * apt-pkg/deb/deblistparser.cc:
     - rewrite LoadReleaseInfo to cope with clearsigned Releasefiles
       can be used without being root (Closes: #393005, #592107)
   * apt-pkg/deb/deblistparser.cc:
     - rewrite LoadReleaseInfo to cope with clearsigned Releasefiles
+  * ftparchive/writer.cc:
+    - add config option to search for more patterns in release command
 
 
- -- David Kalnischkies <kalnischkies@gmail.com>  Thu, 20 Jan 2011 14:52:32 +0100
+ -- David Kalnischkies <kalnischkies@gmail.com>  Thu, 20 Jan 2011 16:00:54 +0100
 
 apt (0.8.10) unstable; urgency=low
 
 
 apt (0.8.10) unstable; urgency=low
 
index 852da8ad1f5180dc042f1742a82dd8894349bfa7..0090d21d9397aa9e6fe472a0e4a99d9f74b94419 100644 (file)
      <varlistentry><term>release</term>
      <listitem><para>
      The <literal>release</literal> command generates a Release file from a
      <varlistentry><term>release</term>
      <listitem><para>
      The <literal>release</literal> command generates a Release file from a
-     directory tree. It recursively searches the given directory for
-     Packages, Packages.gz, Packages.bz2, Sources, Sources.gz,
-     Sources.bz2, Release and md5sum.txt files.  It then writes to
-     stdout a Release file containing an MD5 digest and SHA1 digest
+     directory tree. It recursively searches the given directory for uncompressed
+     <filename>Packages</filename> and <filename>Sources</filename> files and the ones
+     compressed with <command>gzip</command>, <command>bzip2</command> or <command>lzma</command>
+     as well as <filename>Release</filename> and <filename>md5sum.txt</filename> files by default
+     (<literal>APT::FTPArchive::Release::Default-Patterns</literal>). Additional filename patterns
+     can be added by listing them in <literal>APT::FTPArchive::Release::Patterns</literal>.
+     It then writes to stdout a Release file containing a MD5, SHA1 and SHA256 digest
      for each file.</para>
      <para>
      Values for the additional metadata fields in the Release file are
      for each file.</para>
      <para>
      Values for the additional metadata fields in the Release file are
index d7d699ddc8a0e63bc7948b8da278e7fa66862e50..55fac89bd63676ea943287c8b7760b7074af83bb 100644 (file)
@@ -306,7 +306,7 @@ PackagesWriter::PackagesWriter(string const &DB,string const &Overrides,string c
    Output = stdout;
    SetExts(".deb .udeb");
    DeLinkLimit = 0;
    Output = stdout;
    SetExts(".deb .udeb");
    DeLinkLimit = 0;
-   
+
    // Process the command line options
    DoMD5 = _config->FindB("APT::FTPArchive::MD5",true);
    DoSHA1 = _config->FindB("APT::FTPArchive::SHA1",true);
    // Process the command line options
    DoMD5 = _config->FindB("APT::FTPArchive::MD5",true);
    DoSHA1 = _config->FindB("APT::FTPArchive::SHA1",true);
@@ -907,16 +907,20 @@ bool ContentsWriter::ReadFromPkgs(string const &PkgFile,string const &PkgCompres
 /* */
 ReleaseWriter::ReleaseWriter(string const &DB)
 {
 /* */
 ReleaseWriter::ReleaseWriter(string const &DB)
 {
-   AddPattern("Packages");
-   AddPattern("Packages.gz");
-   AddPattern("Packages.bz2");
-   AddPattern("Packages.lzma");
-   AddPattern("Sources");
-   AddPattern("Sources.gz");
-   AddPattern("Sources.bz2");
-   AddPattern("Sources.lzma");
-   AddPattern("Release");
-   AddPattern("md5sum.txt");
+   if (_config->FindB("APT::FTPArchive::Release::Default-Patterns", true) == true)
+   {
+      AddPattern("Packages");
+      AddPattern("Packages.gz");
+      AddPattern("Packages.bz2");
+      AddPattern("Packages.lzma");
+      AddPattern("Sources");
+      AddPattern("Sources.gz");
+      AddPattern("Sources.bz2");
+      AddPattern("Sources.lzma");
+      AddPattern("Release");
+      AddPattern("md5sum.txt");
+   }
+   AddPatterns(_config->FindVector("APT::FTPArchive::Release::Patterns"));
 
    Output = stdout;
    time_t const now = time(NULL);
 
    Output = stdout;
    time_t const now = time(NULL);
index 49d430c474d0e632f2c833f909752539dd10556e..3796f79f6de18b9f8ed8da3d9ef88ed984c7b29d 100644 (file)
@@ -69,6 +69,8 @@ class FTWScanner
    bool LoadFileList(string const &BaseDir,string const &File);
    void ClearPatterns() { Patterns.clear(); };
    void AddPattern(string const &Pattern) { Patterns.push_back(Pattern); };
    bool LoadFileList(string const &BaseDir,string const &File);
    void ClearPatterns() { Patterns.clear(); };
    void AddPattern(string const &Pattern) { Patterns.push_back(Pattern); };
+   void AddPattern(char const *Pattern) { Patterns.push_back(Pattern); };
+   void AddPatterns(std::vector<std::string> const &patterns) { Patterns.insert(Patterns.end(), patterns.begin(), patterns.end()); };
    bool SetExts(string const &Vals);
       
    FTWScanner(string const &Arch = string());
    bool SetExts(string const &Vals);
       
    FTWScanner(string const &Arch = string());