test-dont-use-too-old-dep.py: fix tarfile timestamps
authorBrian Warner <warner@lothar.com>
Sun, 13 May 2012 06:33:11 +0000 (23:33 -0700)
committerBrian Warner <warner@lothar.com>
Sun, 13 May 2012 06:34:03 +0000 (23:34 -0700)
It turns out that TarFile.addfile() doesn't provide a reasonable default
timestamp, resulting in files dated to 1970 (they're probably wearing
bell-bottoms and listening to disco too). Then, when the bdist_egg command
tries to create a *zip*file with those files, it explodes because zipfiles
cannot handle timestamps before 1980 (it prefers boomboxes and jackets with
straps on the shoulders, thank you very much).

This puts a modern time.time() on the members of the tarfile, allowing future
cryptocoderarchaeologists the opportunity to make fun of fashion trends from
the user's chosen era, rather than an artificially older one.

refs #1342

misc/build_helpers/test-dont-use-too-old-dep.py

index 4c5e394e77ab88a5619aebe8e2f5c6d170a18f2f..cbe695693ea79d4b584c2566f1efea5a0e740b4c 100644 (file)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 
-import StringIO, os, platform, shutil, subprocess, sys, tarfile, zipfile
+import StringIO, os, platform, shutil, subprocess, sys, tarfile, zipfile, time
 import pkg_resources
 
 def test():
@@ -52,10 +52,12 @@ def test():
         sdist.errorlevel = 2
         tarinfo = tarfile.TarInfo('setup.py')
         tarinfo.errorlevel = 2
+        tarinfo.mtime = time.time()
         tarinfo.size = len(sdist_setup)
         sdist.addfile(tarinfo, StringIO.StringIO(sdist_setup))
         tarinfo = tarfile.TarInfo('fakedependency/__init__.py')
         tarinfo.errorlevel = 2
+        tarinfo.mtime = time.time()
         tarinfo.size = len(sdist_init)
         sdist.addfile(tarinfo, StringIO.StringIO(sdist_init))
         sdist.close()