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

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 
       this dir is controlled by those package files so we don't look down
       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);
       
@@ -89,7 +90,8 @@ bool pkgCdrom::FindPackages(string CD,
       if (_config->FindB("APT::CDROM::Thorough",false) == false)
 	 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);
       
@@ -109,8 +111,11 @@ bool pkgCdrom::FindPackages(string CD,
 	    if (_config->FindB("Debug::aptcdrom",false) == true)
 	       std::clog << "found translations: " << Dir->d_name << "\n";
 	    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);
+	    if(file.substr(file.size()-4,file.size()) == ".bz2")
+	       file = file.substr(0,file.size()-4);
 	    TransList.push_back(CD+"i18n/"+ file);
 	 }
       }
@@ -258,7 +263,9 @@ bool pkgCdrom::DropRepeats(vector<string> &List,const char *Name)
    {
       struct stat Buf;
       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(),
 		       Name);
       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
 
   [ David Kalnischkies ]