Просмотр исходного кода

apt-pkg/cdrom.cc: Accept .bz2, .xz files in addition to .gz files (Closes: #649451)

Julian Andres Klode лет назад: 14
Родитель
Сommit
baf685fd1d
2 измененных файлов с 18 добавлено и 4 удалено
  1. 11 4
      apt-pkg/cdrom.cc
  2. 7 0
      debian/changelog

+ 11 - 4
apt-pkg/cdrom.cc

@@ -81,7 +81,8 @@ bool pkgCdrom::FindPackages(string CD,
    /* Aha! We found some package files. We assume that everything under 
    /* Aha! We found some package files. We assume that everything under 
       this dir is controlled by those package files so we don't look down
       this dir is controlled by those package files so we don't look down
       anymore */
       anymore */
-   if (stat("Packages",&Buf) == 0 || stat("Packages.gz",&Buf) == 0)
+   if (stat("Packages",&Buf) == 0 || stat("Packages.gz",&Buf) == 0 ||
+       stat("Packages.bz2",&Buf) == 0 || stat("Packages.xz",&Buf) == 0)
    {
    {
       List.push_back(CD);
       List.push_back(CD);
       
       
@@ -89,7 +90,8 @@ bool pkgCdrom::FindPackages(string CD,
       if (_config->FindB("APT::CDROM::Thorough",false) == false)
       if (_config->FindB("APT::CDROM::Thorough",false) == false)
 	 return true;
 	 return true;
    }
    }
-   if (stat("Sources.gz",&Buf) == 0 || stat("Sources",&Buf) == 0)
+   if (stat("Sources.xz",&Buf) == 0 || stat("Sources.bz2",&Buf) == 0 ||
+       stat("Sources.gz",&Buf) == 0 || stat("Sources",&Buf) == 0)
    {
    {
       SList.push_back(CD);
       SList.push_back(CD);
       
       
@@ -109,8 +111,11 @@ bool pkgCdrom::FindPackages(string CD,
 	    if (_config->FindB("Debug::aptcdrom",false) == true)
 	    if (_config->FindB("Debug::aptcdrom",false) == true)
 	       std::clog << "found translations: " << Dir->d_name << "\n";
 	       std::clog << "found translations: " << Dir->d_name << "\n";
 	    string file = Dir->d_name;
 	    string file = Dir->d_name;
-	    if(file.substr(file.size()-3,file.size()) == ".gz")
+	    if(file.substr(file.size()-3,file.size()) == ".gz" ||
+	       file.substr(file.size()-3,file.size()) == ".xz")
 	       file = file.substr(0,file.size()-3);
 	       file = file.substr(0,file.size()-3);
+	    if(file.substr(file.size()-4,file.size()) == ".bz2")
+	       file = file.substr(0,file.size()-4);
 	    TransList.push_back(CD+"i18n/"+ file);
 	    TransList.push_back(CD+"i18n/"+ file);
 	 }
 	 }
       }
       }
@@ -258,7 +263,9 @@ bool pkgCdrom::DropRepeats(vector<string> &List,const char *Name)
    {
    {
       struct stat Buf;
       struct stat Buf;
       if (stat((List[I] + Name).c_str(),&Buf) != 0 &&
       if (stat((List[I] + Name).c_str(),&Buf) != 0 &&
-	  stat((List[I] + Name + ".gz").c_str(),&Buf) != 0)
+	  stat((List[I] + Name + ".gz").c_str(),&Buf) != 0 && 
+	  stat((List[I] + Name + ".bz2").c_str(),&Buf) != 0 && 
+	  stat((List[I] + Name + ".xz").c_str(),&Buf) != 0)
 	 _error->Errno("stat","Failed to stat %s%s",List[I].c_str(),
 	 _error->Errno("stat","Failed to stat %s%s",List[I].c_str(),
 		       Name);
 		       Name);
       Inodes[I] = Buf.st_ino;
       Inodes[I] = Buf.st_ino;

+ 7 - 0
debian/changelog

@@ -1,3 +1,10 @@
+apt (0.8.16~exp9) UNRELEASED; urgency=low
+
+  * apt-pkg/cdrom.cc:
+    - Accept .bz2, .xz files in addition to .gz files (Closes: #649451)
+
+ -- Julian Andres Klode <jak@debian.org>  Mon, 21 Nov 2011 18:46:36 +0100
+
 apt (0.8.16~exp8) experimental; urgency=low
 apt (0.8.16~exp8) experimental; urgency=low
 
 
   [ David Kalnischkies ]
   [ David Kalnischkies ]