From 5fd83771641d15c418f747bd343ba6738d3875f7 Mon Sep 17 00:00:00 2001 From: Cameron Katri Date: Sun, 9 May 2021 14:20:58 -0400 Subject: Import macOS userland adv_cmds-176 basic_cmds-55 bootstrap_cmds-116.100.1 developer_cmds-66 diskdev_cmds-667.40.1 doc_cmds-53.60.1 file_cmds-321.40.3 mail_cmds-35 misc_cmds-34 network_cmds-606.40.1 patch_cmds-17 remote_cmds-63 shell_cmds-216.60.1 system_cmds-880.60.2 text_cmds-106 --- system_cmds/zic.tproj/generate_zoneinfo.sh | 105 +++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100755 system_cmds/zic.tproj/generate_zoneinfo.sh (limited to 'system_cmds/zic.tproj/generate_zoneinfo.sh') diff --git a/system_cmds/zic.tproj/generate_zoneinfo.sh b/system_cmds/zic.tproj/generate_zoneinfo.sh new file mode 100755 index 0000000..2f25d1c --- /dev/null +++ b/system_cmds/zic.tproj/generate_zoneinfo.sh @@ -0,0 +1,105 @@ +#!/bin/sh +set -e +set -x + +printenv | sort + +if [ $# -ne 5 ]; then + echo "Usage: $0 SRCROOT OBJROOT BUILT_PRODUCTS_DIR SDKROOT PLATFORM_NAME" 1>&2 + exit 1 +fi + +SRCROOT="$1" +OBJROOT="$2" +BUILT_PRODUCTS_DIR="$3" +SDKROOT="$4" +PLATFORM_NAME="$5" + +ZICHOST_SYMROOT="${BUILT_PRODUCTS_DIR}/zic_host-sym" +ZICHOST_DSTROOT="${BUILT_PRODUCTS_DIR}/zic_host-dst" +ZICHOST="${ZICHOST_DSTROOT}/zic_host" + +LOCALTIME="US/Pacific" +POSIXRULES="US/Pacific" + +ZONEINFO="${BUILT_PRODUCTS_DIR}/zoneinfo" +DATFILES="${BUILT_PRODUCTS_DIR}/datfiles" +PRIVATEDIR="${BUILT_PRODUCTS_DIR}/private" + +# ftp://elsie.nci.nih.gov/pub/tzdata*.tar.gz +# the tzdata*.tar.gz file is automatically unpacked and a version file created +# /usr/local/share/tz/tzdata*.tar.gz is installed by the TimeZoneData project +TARBALL="${SDKROOT}"/usr/local/share/tz/latest_tzdata.tar.gz +if [ ! -L "$TARBALL" ]; then + echo "error: ${TARBALL} is not a symbolic link" 1>&2 + exit 1 +fi +if [ ! -r "$TARBALL" ]; then + echo "error: ${TARBALL} does not point to a valid file" 1>&2 + exit 1 +fi +DATVERS=`readlink ${TARBALL} | cut -d. -f1 | sed -e 's/^tzdata//'` +VERSIONFILE="${ZONEINFO}/+VERSION" + +mkdir -p "${DATFILES}" +mkdir -p "${ZONEINFO}" +tar zxf "${TARBALL}" -C "${DATFILES}" +ZONE_FILES="$("${SRCROOT}"/zic.tproj/generate_zone_file_list.sh "${DATFILES}")" +for tz in ${ZONE_FILES}; do + if [ ${tz} = "northamerica" ]; then + ARG="-p America/New_York" + else + ARG="" + fi + "${ZICHOST}" ${ARG} -L /dev/null -d "${ZONEINFO}" \ + -y "${DATFILES}/yearistype.sh" "${DATFILES}/${tz}" || exit 1 +done + +if [ $? -ne 0 ]; then + exit 1 +fi + +chmod -R og-w "${ZONEINFO}" +for f in "zone.tab" "iso3166.tab" "leapseconds"; do + install -m 0444 "${DATFILES}/$f" "${ZONEINFO}/$f" || exit 1 +done +if [ $? -ne 0 ]; then + exit 1 +fi + +if [ -n "$RC_BRIDGE" ]; then + ACTUAL_PLATFORM_NAME="bridgeos" +else + ACTUAL_PLATFORM_NAME="${PLATFORM_NAME}" +fi + +case "$ACTUAL_PLATFORM_NAME" in +bridge*) + LOCALTIME="GMT" + ;; +esac + +case "$ACTUAL_PLATFORM_NAME" in +iphone*|appletv*|watch*|bridge*) + mkdir -p "${PRIVATEDIR}/var/db" + mkdir -p -m a+rx "${PRIVATEDIR}/var/db/timezone" + + # This link must precisely start with TZDIR followed by a slash. radar:13532660 + ln -hfs "/var/db/timezone/zoneinfo/${LOCALTIME}" "${PRIVATEDIR}/var/db/timezone/localtime" + ;; +macosx) + mkdir -p "${PRIVATEDIR}/etc" + ln -hfs "/var/db/timezone/zoneinfo/${LOCALTIME}" "${PRIVATEDIR}/etc/localtime" + ;; +*) + echo "Unsupported platform: $ACTUAL_PLATFORM_NAME" + exit 1 + ;; +esac + +rm -f "${VERSIONFILE}" +echo ${DATVERS} > "${VERSIONFILE}" +chmod 444 "${VERSIONFILE}" +touch "${ZONEINFO}" +touch "${PRIVATEDIR}" + -- cgit v1.2.3-56-ge451