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
+