From: Michael Tremer Date: Sun, 6 Mar 2011 16:37:40 +0000 (+0100) Subject: Disable support for xattrs in packages. X-Git-Tag: 0.9.3~88 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5d6f119fccc1df5f0b81d75e7cbee22684d7df6e;p=pakfire.git Disable support for xattrs in packages. I need to reimplement this in an other way because python 2.6 does not support tarfile.add with filter argument. --- diff --git a/pakfire/packages/packager.py b/pakfire/packages/packager.py index 8fe64524d..153a5b627 100644 --- a/pakfire/packages/packager.py +++ b/pakfire/packages/packager.py @@ -149,39 +149,49 @@ class Extractor(object): term_width=80, ) +# XXX disable because python 2.6 does not support tarfile with filter +# +#class InnerTarFile(tarfile.TarFile): +# def __init__(self, *args, **kwargs): +# # Force the pax format +# kwargs["format"] = tarfile.PAX_FORMAT +# +# if kwargs.has_key("env"): +# self.env = kwargs.pop("env") +# +# tarfile.TarFile.__init__(self, *args, **kwargs) +# +# def __filter_xattrs(self, tarinfo): +# logging.debug("Adding file: %s" % tarinfo.name) +# +# filename = self.env.chrootPath(self.env.buildroot, tarinfo.name) +# +# # xattrs do only exists for regular files. If we don't have one, +# # simply skip. +# if os.path.isfile(filename): +# for attr, value in xattr.get_all(filename): +# tarinfo.pax_headers[attr] = value +# +# logging.debug(" xattr: %s=%s" % (attr, value)) +# +# return tarinfo +# +# def add(self, *args, **kwargs): +# # Add filter for xattrs if no other filter is set. +# if not kwargs.has_key("filter") and len(args) < 5: +# kwargs["filter"] = self.__filter_xattrs +# +# tarfile.TarFile.add(self, *args, **kwargs) class InnerTarFile(tarfile.TarFile): def __init__(self, *args, **kwargs): - # Force the pax format kwargs["format"] = tarfile.PAX_FORMAT if kwargs.has_key("env"): - self.env = kwargs.pop("env") + del kwargs["env"] tarfile.TarFile.__init__(self, *args, **kwargs) - def __filter_xattrs(self, tarinfo): - logging.debug("Adding file: %s" % tarinfo.name) - - filename = self.env.chrootPath(self.env.buildroot, tarinfo.name) - - # xattrs do only exists for regular files. If we don't have one, - # simply skip. - if os.path.isfile(filename): - for attr, value in xattr.get_all(filename): - tarinfo.pax_headers[attr] = value - - logging.debug(" xattr: %s=%s" % (attr, value)) - - return tarinfo - - def add(self, *args, **kwargs): - # Add filter for xattrs if no other filter is set. - if not kwargs.has_key("filter") and len(args) < 5: - kwargs["filter"] = self.__filter_xattrs - - tarfile.TarFile.add(self, *args, **kwargs) - # XXX this is totally ugly and needs to be done right! @@ -198,6 +208,7 @@ class Packager(object): # Store meta information self.info = { "package_format" : PACKAGE_FORMAT, + "package_type" : "binary", "package_uuid" : uuid.uuid4(), "payload_comp" : None, }