summaryrefslogtreecommitdiff
path: root/apt-pkg/cdrom.cc
diff options
context:
space:
mode:
authorJulian Andres Klode <jak@debian.org>2011-11-21 18:53:29 +0100
committerJulian Andres Klode <jak@debian.org>2011-11-21 18:53:29 +0100
commitbaf685fd1dda8e154aed454544d838ed93ef5be4 (patch)
treef53de6b9afb850d1a676ad63b9401759b3cbafa8 /apt-pkg/cdrom.cc
parent37adedc9d0b66eeae7efb88aebd08dfbc6e06f77 (diff)
apt-pkg/cdrom.cc: Accept .bz2, .xz files in addition to .gz files (Closes: #649451)
Diffstat (limited to 'apt-pkg/cdrom.cc')
-rw-r--r--apt-pkg/cdrom.cc15
1 files changed, 11 insertions, 4 deletions
diff --git a/apt-pkg/cdrom.cc b/apt-pkg/cdrom.cc
index a9c63fd21..d1bc1f3ba 100644
--- a/apt-pkg/cdrom.cc
+++ b/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;