if self.size:
items.append((_("Size"), util.format_size(self.size)))
+ if self.inst_size:
+ items.append(
+ (_("Installed size"),
+ util.format_size(self.inst_size))
+ )
+
# filter dummy repository
if not self.repo == self.pakfire.repos.dummy:
items.append((_("Repo"), self.repo.name))
log.debug("Saving capabilities for %s: %s" % (name, caps))
tarinfo.pax_headers["PAKFIRE.capabilities"] = caps
- # Append the tar header and data to the archive.
+ # Append the tar header and data to the archive.
f = tarfile.bltn_open(name, "rb")
self.addfile(tarinfo, f)
f.close()
else:
self.addfile(tarinfo)
+ # Return the tar information about the file
+ return tarinfo
+
def extract(self, member, path=""):
target = os.path.join(path, member.name)
def run(self):
raise NotImplementedError
- def getsize(self, filename):
- if tarfile.is_tarfile(filename):
- return os.path.getsize(filename)
-
+ def getsize(self, datafile):
size = 0
- f = lzma.LZMAFile(filename)
+
+ if self.payload_compression == "xz":
+ tar = InnerTarFileXz.open(datafile)
+ else:
+ tar = InnerTarFile.open(datafile)
while True:
- buf = f.read(BUFFER_SIZE)
- if not buf:
+ m = tar.next()
+ if not m:
break
- size += len(buf)
- f.close()
+ size += m.size
+ tar.close()
return size
def size(self):
return self.solvable.get_downloadsize()
+ @property
+ def inst_size(self):
+ return self.solvable.get_installsize()
+
@property
def vendor(self):
vendor = self.solvable.get_vendor()