diff --git a/installsystems/image.py b/installsystems/image.py index 38c2cee529e7c0c8c40802fcf5e2384370f7fcd0..502f24c4827602d38a4b23bd7bba661f80e8ec3f 100644 --- a/installsystems/image.py +++ b/installsystems/image.py @@ -225,11 +225,21 @@ class SourceImage(Image): try: # Tarballing tarball = Tarball.open(tar_path, "w:gz", dereference=False) - tarball.add(data_path, arcname="/", recursive=True) + tarball.add(data_path, arcname="/", recursive=True, + filter=self._create_payload_tarball_filter) tarball.close() except Exception as e: raise Exception("Unable to create payload tarball %s: %s" % (tar_path, e)) + def _create_payload_tarball_filter(self, tarinfo): + ''' + Have the same behaviour as --numeric-owner on gnu tar + Remove string name and group to escape weird translation + ''' + tarinfo.uname = "" + tarinfo.gname = "" + return tarinfo + def _create_payload_file(self, dest, source): ''' Create a payload file