diff options
| author | Elliott Hughes <enh@google.com> | 2012-10-17 15:52:09 -0700 |
|---|---|---|
| committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2012-10-17 15:52:09 -0700 |
| commit | 32ea9fe5783e3cc9756205c0ac46482afc700a3d (patch) | |
| tree | bda7af38b1903d353df62adbf184641f1c6a9cde | |
| parent | a2f596b65075db7916ffffa2f5059e7953719578 (diff) | |
| parent | fb018a2ddea0513756b4e097d59c3df91a8e5946 (diff) | |
| download | bionic-32ea9fe5783e3cc9756205c0ac46482afc700a3d.zip bionic-32ea9fe5783e3cc9756205c0ac46482afc700a3d.tar.gz bionic-32ea9fe5783e3cc9756205c0ac46482afc700a3d.tar.bz2 | |
Merge "Put all the tzdata in one file."
| -rwxr-xr-x | libc/tools/zoneinfo/generate-single-file | 77 | ||||
| -rw-r--r-- | libc/zoneinfo/Android.mk | 21 | ||||
| -rw-r--r-- | libc/zoneinfo/tzdata | bin | 0 -> 521426 bytes |
3 files changed, 98 insertions, 0 deletions
diff --git a/libc/tools/zoneinfo/generate-single-file b/libc/tools/zoneinfo/generate-single-file new file mode 100755 index 0000000..a67713c --- /dev/null +++ b/libc/tools/zoneinfo/generate-single-file @@ -0,0 +1,77 @@ +#!/usr/bin/python +# Run with no arguments from any directory, with no special setup required. + +import ftplib +import hashlib +import os +import re +import shutil +import string +import struct +import subprocess +import sys +import tarfile +import tempfile + +# Find the bionic directory, searching upward from this script. +bionic_libc_tools_zoneinfo_dir = os.path.realpath(os.path.dirname(sys.argv[0])) +bionic_libc_tools_dir = os.path.dirname(bionic_libc_tools_zoneinfo_dir) +bionic_libc_dir = os.path.dirname(bionic_libc_tools_dir) +bionic_dir = os.path.dirname(bionic_libc_dir) +bionic_libc_zoneinfo_dir = '%s/libc/zoneinfo' % bionic_dir +if not os.path.isdir(bionic_libc_tools_zoneinfo_dir) or not os.path.isdir(bionic_libc_zoneinfo_dir): + print "Couldn't find bionic/libc/tools/zoneinfo!" + sys.exit(1) + + + + +def current_tzdata_version(): + return open('%s/zoneinfo.version' % bionic_libc_zoneinfo_dir).readline().rstrip('\n') + + +# TODO: make the regular "generate" script just output this format directly. + +# Open the output file. +f = open('%s/tzdata' % bionic_libc_zoneinfo_dir, 'wb+') + +# -- header +# char[12] tzdata_version -- 'tzdata2012f\0' +# u32 file_format_version -- probably won't need this, but just in case +# u32 index_offset -- likewise +# u32 data_offset +# u32 zonetab_offset +header_format = "! 12s i i i i" +header_size = struct.calcsize(header_format) + +index_offset = header_size +index_bytes = open('%s/zoneinfo.idx' % bionic_libc_zoneinfo_dir, "rb").read() +index_size = len(index_bytes) + +data_offset = index_offset + index_size +data_bytes = open('%s/zoneinfo.dat' % bionic_libc_zoneinfo_dir).read() +data_size = len(data_bytes) + +zonetab_offset = 0 # TODO: data_offset + data_size + +tzdata_version = current_tzdata_version() +file_format_version = 1 + +header = struct.pack(header_format, 'tzdata%s' % tzdata_version, file_format_version, index_offset, data_offset, zonetab_offset) +f.write(header) + +# -- index (@index_offset) +# u8* index_bytes +f.write(index_bytes) + +# -- data (@data_offset) +# u8* data_bytes +f.write(data_bytes) + +# TODO: zonetab +# -- zonetab (@zonetab_offset) +# u8* zonetab_bytes + +f.close() + +sys.exit(0) diff --git a/libc/zoneinfo/Android.mk b/libc/zoneinfo/Android.mk index 7cd9139..e3bc8ea 100644 --- a/libc/zoneinfo/Android.mk +++ b/libc/zoneinfo/Android.mk @@ -30,6 +30,15 @@ LOCAL_MODULE_TAGS := optional LOCAL_MODULE_PATH := $(TARGET_OUT)/usr/share/zoneinfo include $(BUILD_PREBUILT) +############################################ +include $(CLEAR_VARS) +LOCAL_MODULE := tzdata +LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk +LOCAL_SRC_FILES := $(LOCAL_MODULE) +LOCAL_MODULE_CLASS := ETC +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_PATH := $(TARGET_OUT)/usr/share/zoneinfo +include $(BUILD_PREBUILT) # The host build doesn't use bionic, but it does use bionic's zoneinfo data ifeq ($(WITH_HOST_DALVIK),true) @@ -70,4 +79,16 @@ LOCAL_MODULE_STEM := $(LOCAL_SRC_FILES) LOCAL_MODULE_PATH := $(HOST_OUT)/usr/share/zoneinfo include $(BUILD_PREBUILT) +############################################ +include $(CLEAR_VARS) +LOCAL_MODULE := tzdata-host +LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk +LOCAL_IS_HOST_MODULE := true +LOCAL_SRC_FILES := tzdata +LOCAL_MODULE_CLASS := ETC +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_STEM := $(LOCAL_SRC_FILES) +LOCAL_MODULE_PATH := $(HOST_OUT)/usr/share/zoneinfo +include $(BUILD_PREBUILT) + endif diff --git a/libc/zoneinfo/tzdata b/libc/zoneinfo/tzdata Binary files differnew file mode 100644 index 0000000..3529c8b --- /dev/null +++ b/libc/zoneinfo/tzdata |
