Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion pkg/archive.py
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,6 @@ def add_tar(self,
intar = tarfile.open(name=tar, mode=inmode)
for tarinfo in intar:
if name_filter is None or name_filter(tarinfo.name):
tarinfo.mtime = self.default_mtime
if rootuid is not None and tarinfo.uid == rootuid:
tarinfo.uid = 0
tarinfo.uname = 'root'
Expand Down
14 changes: 14 additions & 0 deletions pkg/tests/archive_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,20 @@ def testMergeTarRelocated(self):
f.add_tar(datafile, name_filter=lambda n: n != "./b", root="/foo")
self.assertTarFileContent(self.tempfile, content)

def testPreserveInputTarMtimes(self):
input_tar_path = os.path.join(testenv.TESTDATA_PATH, "tar_test.tar")
with archive.TarFileWriter(self.tempfile) as f:
f.add_tar(input_tar_path)

with tarfile.open(input_tar_path, "r:") as input_tar:
input_mtimes = {}
for input_file in input_tar:
input_mtimes[input_file.name] = input_file.mtime

with tarfile.open(self.tempfile, "r:") as output_tar:
for output_file in output_tar:
self.assertEqual(input_mtimes[output_file.name], output_file.mtime)

def testAddingDirectoriesForFile(self):
with archive.TarFileWriter(self.tempfile) as f:
f.add_file("d/f")
Expand Down