################################################################################
#
# tzdata
#
################################################################################

TZDATA_VERSION = 2022a
TZDATA_DIR = tzdata$(TZDATA_VERSION)
TZDATA_SOURCE = tzdata$(TZDATA_VERSION).tar.gz
TZDATA_SITE = https://data.iana.org/time-zones/releases

TZDATA_DEPENDENCIES = host-zic

TZDATA_ZONELIST = \
	africa antarctica asia australasia europe northamerica \
	southamerica etcetera backward factory

TZDATA_LOCALTIME = CET

ETC_LOCALTIME = $(if $(filter $(PERSISTENT_VAR_PARTITION),yes),/var/etc/localtime,/etc/localtime)

define TZDATA_INSTALL_ETC_LOCALTIME
	ln -sf $(datadir)/zoneinfo/$(TZDATA_LOCALTIME) $(TARGET_DIR)$(ETC_LOCALTIME)
endef
TZDATA_TARGET_FINALIZE_HOOKS += TZDATA_INSTALL_ETC_LOCALTIME

ifeq ($(PERSISTENT_VAR_PARTITION),yes)
define TZDATA_INSTALL_ETC_LOCALTIME_LINK
	ln -sf $(ETC_LOCALTIME) $(TARGET_sysconfdir)/localtime
endef
TZDATA_TARGET_FINALIZE_HOOKS += TZDATA_INSTALL_ETC_LOCALTIME_LINK
endif

define TZDATA_INSTALL_TIMEZONE_FILES
	$(INSTALL_DATA) -D $(PKG_FILES_DIR)/timezone.xml $(TARGET_sysconfdir)/timezone.xml
	echo "$(TZDATA_LOCALTIME)" > $(TARGET_sysconfdir)/timezone
endef
TZDATA_TARGET_FINALIZE_HOOKS += TZDATA_INSTALL_TIMEZONE_FILES

define TZDATA_INSTALL_PROFILE_D_SCRIPT
	$(INSTALL) -d $(TARGET_sysconfdir)/profile.d
	echo "export TZ=\$$(cat $(sysconfdir)/timezone)" > $(TARGET_sysconfdir)/profile.d/tz.sh
endef
TZDATA_TARGET_FINALIZE_HOOKS += TZDATA_INSTALL_PROFILE_D_SCRIPT

tzdata: | $(TARGET_DIR)
	$(call STARTUP)
	$(call DEPENDENCIES)
	$(call DOWNLOAD,$($(PKG)_SOURCE))
	$(MKDIR)/$($(PKG)_DIR)
	$(call EXTRACT,$(PKG_BUILD_DIR))
	$(call APPLY_PATCHES,$(PKG_PATCHES_DIR))
	$(CHDIR)/$($(PKG)_DIR); \
		unset ${!LC_*}; LANG=POSIX; LC_ALL=POSIX; export LANG LC_ALL; \
		$(HOST_ZIC) -b fat -d zoneinfo.tmp $(TZDATA_ZONELIST); \
		sed -n '/zone=/{s/.*zone="\(.*\)".*$$/\1/; p}' $(PKG_FILES_DIR)/timezone.xml | sort -u | \
		while read x; do \
			find zoneinfo.tmp -type f -name $$x | sort | \
			while read y; do \
				test -e $$y && $(INSTALL_DATA) -D $$y $(TARGET_datadir)/zoneinfo/$$x; \
			done; \
		done
	$(call TARGET_FOLLOWUP)