]> git.saurik.com Git - apt.git/commitdiff
support every compression we have a compressor configured
authorDavid Kalnischkies <kalnischkies@gmail.com>
Sun, 27 Feb 2011 22:31:25 +0000 (23:31 +0100)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Sun, 27 Feb 2011 22:31:25 +0000 (23:31 +0100)
apt-pkg/aptconfiguration.cc
apt-pkg/aptconfiguration.h
apt-pkg/deb/debsrcrecords.cc
debian/changelog

index 2a441fce7bf6140c10e0649e711fc963551c90f0..b23e12acb42e78175f4e78bc3d920cd5d5640652 100644 (file)
@@ -388,6 +388,19 @@ const Configuration::getCompressors(bool const Cached) {
        return compressors;
 }
                                                                        /*}}}*/
+// getCompressorExtensions - supported data.tar extensions             /*{{{*/
+// ---------------------------------------------------------------------
+/* */
+std::vector<std::string> const Configuration::getCompressorExtensions() {
+       std::vector<APT::Configuration::Compressor> const compressors = getCompressors();
+       std::vector<std::string> ext;
+       for (std::vector<APT::Configuration::Compressor>::const_iterator c = compressors.begin();
+            c != compressors.end(); ++c)
+               if (c->Extension.empty() == false && c->Extension != ".")
+                       ext.push_back(c->Extension);
+       return ext;
+}
+                                                                       /*}}}*/
 // Compressor constructor                                              /*{{{*/
 // ---------------------------------------------------------------------
 /* */
index e4bc5e68319a4bc1bf8f964ec978cb28f74b1024..815db6caee0fb4929cc5a9f7f1bedef8ff7ab465 100644 (file)
@@ -105,6 +105,9 @@ public:                                                                     /*{{{*/
         *  \return a vector of Compressors
         */
        std::vector<Compressor> static const getCompressors(bool const Cached = true);
+
+       /** \brief Return a vector of extensions supported for data.tar's */
+       std::vector<std::string> static const getCompressorExtensions();
                                                                        /*}}}*/
        private:                                                        /*{{{*/
        void static setDefaultConfigurationForCompressors();
index 3809ee74f6982dc532cacbdee0af117cb06cb5bc..749305005f46730ccdfbb110312a4890e585ce69 100644 (file)
@@ -14,6 +14,7 @@
 #include <apt-pkg/error.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/configuration.h>
+#include <apt-pkg/aptconfiguration.h>
 
 using std::max;
                                                                        /*}}}*/
@@ -111,7 +112,9 @@ bool debSrcRecordParser::Files(vector<pkgSrcRecords::File> &List)
    string Base = Sect.FindS("Directory");
    if (Base.empty() == false && Base[Base.length()-1] != '/')
       Base += '/';
-   
+
+   std::vector<std::string> const compExts = APT::Configuration::getCompressorExtensions();
+
    // Iterate over the entire list grabbing each triplet
    const char *C = Files.c_str();
    while (*C != 0)
@@ -144,8 +147,8 @@ bool debSrcRecordParser::Files(vector<pkgSrcRecords::File> &List)
         }
         F.Type = string(F.Path,Tmp+1,Pos-Tmp);
         
-        if (F.Type == "gz" || F.Type == "bz2" || F.Type == "lzma" ||
-            F.Type == "xz" || F.Type == "tar")
+        if (std::find(compExts.begin(), compExts.end(), std::string(".").append(F.Type)) != compExts.end() ||
+            F.Type == "tar")
         {
            Pos = Tmp-1;
            continue;
index 499150d529c4ae5990e57760ead7f56653be26ab..58a1a365fbccbb1eccca590b8660596fe64d00c6 100644 (file)
@@ -19,10 +19,11 @@ apt (0.8.11.6) UNRELEASED; urgency=low
     - support adding new compressors by configuration
   * apt-pkg/deb/debsrcrecords.cc:
     - support xz-compressed source v3 debian.tar files
+    - support every compression we have a compressor configured
   * ftparchive/contents.cc:
     - remove ExtractArchive codecopy from apt-inst/deb/debfile.cc
 
- -- David Kalnischkies <kalnischkies@gmail.com>  Sun, 27 Feb 2011 23:00:07 +0100
+ -- David Kalnischkies <kalnischkies@gmail.com>  Sun, 27 Feb 2011 23:30:36 +0100
 
 apt (0.8.11.5) unstable; urgency=low