X-Git-Url: https://git.saurik.com/apple/system_cmds.git/blobdiff_plain/cf37c2996a8b83ccbcb7e2e413f749f6e60a3845..919ea02de2cd26d0ba3aa0eab27ff79e7d9d3e66:/zic.tproj/install_zoneinfo.sh diff --git a/zic.tproj/install_zoneinfo.sh b/zic.tproj/install_zoneinfo.sh index 9bb9af9..50a9deb 100755 --- a/zic.tproj/install_zoneinfo.sh +++ b/zic.tproj/install_zoneinfo.sh @@ -3,21 +3,45 @@ set -e set -x if [ -n "$RC_BRIDGE" ]; then - ACTUAL_PLATFORM_NAME="bridge${PLATFORM_NAME#watch}" + ACTUAL_PLATFORM_NAME="bridgeos" else ACTUAL_PLATFORM_NAME="${PLATFORM_NAME}" fi +# This sets up the paths for the default set of zoneinfo files +# On iOS, watchOS, and tvOS, this is handled by tzd in coordination with +# launchd on first boot. +# On macOS, the directory needs to be setup # during mastering for SIP +# protection, and the symlink for the BaseSystem. +# On bridgeOS tzd doesn't exist, so needs this all setup statically. +default_zoneinfo_setup() +{ + mkdir -p "${DSTROOT}/private/var/db/timezone" + chmod 555 "${DSTROOT}/private/var/db/timezone" + ln -hfs "/usr/share/zoneinfo.default" "${DSTROOT}/private/var/db/timezone/zoneinfo" +} + case "$ACTUAL_PLATFORM_NAME" in -iphone*|appletv*|watch*) +iphone*|appletv*|watch*|macosx) ditto "${BUILT_PRODUCTS_DIR}/zoneinfo" "${DSTROOT}/usr/share/zoneinfo.default" ln -hfs "/var/db/timezone/zoneinfo" "${DSTROOT}/usr/share/zoneinfo" + case "$ACTUAL_PLATFORM_NAME" in + macosx) + default_zoneinfo_setup + ;; + esac ;; -macosx|bridge*) - ditto "${BUILT_PRODUCTS_DIR}/zoneinfo" "${DSTROOT}/usr/share/zoneinfo" +bridge*) + # Since bridgeOS lacks any mechanism to change timezones (currently), + # and in the interest of saving space, only GMT is installed. + mkdir -p "${DSTROOT}/usr/share/zoneinfo.default" + chmod 555 "${DSTROOT}/usr/share/zoneinfo.default" + ditto "${BUILT_PRODUCTS_DIR}/zoneinfo/GMT" "${DSTROOT}/usr/share/zoneinfo.default/GMT" + default_zoneinfo_setup ;; *) echo "Unsupported platform: $ACTUAL_PLATFORM_NAME" exit 1 ;; esac +