Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Unified Diff: native_client_sdk/src/tools/oshelpers.py

Issue 11428111: [NaCl SDK] Fix zip_test failure on mac buildbots. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: added correct ZipInfo Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | native_client_sdk/src/tools/zip_test.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: native_client_sdk/src/tools/oshelpers.py
diff --git a/native_client_sdk/src/tools/oshelpers.py b/native_client_sdk/src/tools/oshelpers.py
index 041e9aa400867b088b22d4ada625e32fd3e57d3b..66fef14e0307854b09caaeb49bff3967365dd2a9 100755
--- a/native_client_sdk/src/tools/oshelpers.py
+++ b/native_client_sdk/src/tools/oshelpers.py
@@ -9,6 +9,7 @@ import optparse
import os
import posixpath
import shutil
+import stat
import sys
import time
import zipfile
@@ -425,7 +426,24 @@ def Zip(args):
zip_path = file_info_or_zip_path
if os_path:
- zip_stream.write(os_path, zip_path)
+ st = os.stat(os_path)
+ if stat.S_ISDIR(st.st_mode):
+ # Python 2.6 on the buildbots doesn't support writing directories to
+ # zip files. This was resolved in a later version of Python 2.6.
+ # We'll work around it by writing an empty file with the correct
+ # path. (This is basically what later versions do anyway.)
+ zip_info = zipfile.ZipInfo()
+ zip_info.filename = zip_path
+ zip_info.date_time = time.localtime(st.st_mtime)[0:6]
+ zip_info.compress_type = zip_stream.compression
+ zip_info.flag_bits = 0x00
+ zip_info.external_attr = (st[0] & 0xFFFF) << 16L
+ zip_info.CRC = 0
+ zip_info.compress_size = 0
+ zip_info.file_size = 0
+ zip_stream.writestr(zip_info, '')
+ else:
+ zip_stream.write(os_path, zip_path)
else:
zip_stream.writestr(file_info_or_zip_path, file_bytes)
« no previous file with comments | « no previous file | native_client_sdk/src/tools/zip_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698