1#!/bin/sh 2set -e 3set -x 4 5printenv | sort 6 7if [ $# -ne 5 ]; then 8 echo "Usage: $0 SRCROOT OBJROOT BUILT_PRODUCTS_DIR SDKROOT PLATFORM_NAME" 1>&2 9 exit 1 10fi 11 12SRCROOT="$1" 13OBJROOT="$2" 14BUILT_PRODUCTS_DIR="$3" 15SDKROOT="$4" 16PLATFORM_NAME="$5" 17 18ZICHOST_SYMROOT="${BUILT_PRODUCTS_DIR}/zic_host-sym" 19ZICHOST_DSTROOT="${BUILT_PRODUCTS_DIR}/zic_host-dst" 20ZICHOST="${ZICHOST_DSTROOT}/zic_host" 21 22LOCALTIME="US/Pacific" 23POSIXRULES="US/Pacific" 24 25ZONEINFO="${BUILT_PRODUCTS_DIR}/zoneinfo" 26DATFILES="${BUILT_PRODUCTS_DIR}/datfiles" 27PRIVATEDIR="${BUILT_PRODUCTS_DIR}/private" 28 29# ftp://elsie.nci.nih.gov/pub/tzdata*.tar.gz 30# the tzdata*.tar.gz file is automatically unpacked and a version file created 31# /usr/local/share/tz/tzdata*.tar.gz is installed by the TimeZoneData project 32TARBALL="${SDKROOT}"/usr/local/share/tz/latest_tzdata.tar.gz 33if [ ! -L "$TARBALL" ]; then 34 echo "error: ${TARBALL} is not a symbolic link" 1>&2 35 exit 1 36fi 37if [ ! -r "$TARBALL" ]; then 38 echo "error: ${TARBALL} does not point to a valid file" 1>&2 39 exit 1 40fi 41DATVERS=`readlink ${TARBALL} | cut -d. -f1 | sed -e 's/^tzdata//'` 42VERSIONFILE="${ZONEINFO}/+VERSION" 43 44mkdir -p "${DATFILES}" 45mkdir -p "${ZONEINFO}" 46tar zxf "${TARBALL}" -C "${DATFILES}" 47ZONE_FILES="$(${SRCROOT}/zic.tproj/generate_zone_file_list.sh ${DATFILES})" 48for tz in ${ZONE_FILES}; do 49 if [ ${tz} = "northamerica" ]; then 50 ARG="-p America/New_York" 51 else 52 ARG="" 53 fi 54 ${ZICHOST} ${ARG} -L /dev/null -d "${ZONEINFO}" \ 55 -y "${DATFILES}/yearistype.sh" "${DATFILES}/${tz}" || exit 1 56done 57 58if [ $? -ne 0 ]; then 59 exit 1 60fi 61 62chmod -R og-w "${ZONEINFO}" 63for f in "zone.tab" "iso3166.tab"; do 64 install -m 0444 "${DATFILES}/$f" "${ZONEINFO}/$f" || exit 1 65done 66if [ $? -ne 0 ]; then 67 exit 1 68fi 69 70if [[ "${PLATFORM_NAME}" == "iphoneos"* ]]; then 71 mkdir -p "${PRIVATEDIR}/var/db" 72 mkdir -p -m a+rx "${PRIVATEDIR}/var/db/timezone" 73 74 # This link must precisely start with TZDIR followed by a slash. radar:13532660 75 ln -hfs "/var/db/timezone/zoneinfo/${LOCALTIME}" "${PRIVATEDIR}/var/db/timezone/localtime" 76else 77 mkdir -p "${PRIVATEDIR}/etc" 78 ln -hfs "/usr/share/zoneinfo/${LOCALTIME}" "${PRIVATEDIR}/etc/localtime" 79fi 80 81rm -f "${VERSIONFILE}" 82echo ${DATVERS} > "${VERSIONFILE}" 83chmod 444 "${VERSIONFILE}" 84touch "${ZONEINFO}" 85touch "${PRIVATEDIR}" 86 87