zonetab1970 contains a table where each row stands for a timezone where civil timestamps have agreed since 1970.
zonetab1970 is used by systemd in the timedatectl list-timezones command that was broken without this data. zonetab1970 is intended to be delivered with the complete data set from tzdata package. Since PTXDIST offers the option to deliver timezones only partially, the solution is to correct the file during installation. Deselected timezone entries are removed from the file during INSTALL step. Signed-off-by: Gavin Schenk <g.sch...@eckelmann.de> --- Changes since v1: - Drop menuentry TIMEZONE_ZONETAB_1970 and install file always - Use suggested algorithm that is more compact and forks less processes ( Commented lines are not removed any more ) One idea for removing the commented lines is: @grep "\($$(find TIMEZONE_PKGDIR)/usr/share/zoneinfo -type f -printf '%P\|')34987qiruhqwerkjb43kn5b3j4klrhqwekljrh\)" Maybe not important, if looking on the file size. With Zone Europe enabled zone1970.tab contains 3557 bytes. With all zones enabled it increases to 17593 bytes. I tested this with all timezones enabled and the long expression does not exceed limits of shell. --- rules/host-tz-database.make | 2 +- rules/timezone.make | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/rules/host-tz-database.make b/rules/host-tz-database.make index fe4d36467..006060496 100644 --- a/rules/host-tz-database.make +++ b/rules/host-tz-database.make @@ -67,6 +67,6 @@ HOST_TZ_DATABASE_CONF_TOOL := NO HOST_TZ_DATABASE_MAKE_OPT := \ zic TZDIR=/usr/share/zoneinfo CFLAGS=-DSTD_INSPIRED HOST_TZ_DATABASE_INSTALL_OPT := \ - posix_only TZDIR=/usr/share/zoneinfo + REDO=posix_only TZDIR=/usr/share/zoneinfo install # vim: syntax=make diff --git a/rules/timezone.make b/rules/timezone.make index c1fd3fbc3..68ec669c0 100644 --- a/rules/timezone.make +++ b/rules/timezone.make @@ -87,7 +87,10 @@ $(STATEDIR)/timezone.install: @for target in $(TIMEZONE-y); do \ $(call add_zoneinfo, $$target, $(TIMEZONE_PKGDIR)/usr/share, $(PTXDIST_SYSROOT_HOST)/usr); \ done - @$(call touch) +# Fix entries in zonetab to match the selected PTXCONF_TIMEZONE_* options. + @grep "\($$(find $(TIMEZONE_PKGDIR)/usr/share/zoneinfo -type f -printf '%P\|')#\)" \ + $(PTXDIST_SYSROOT_HOST)/usr/share/zoneinfo/zone1970.tab > \ + $(TIMEZONE_PKGDIR)/usr/share/zoneinfo/zone1970.tab # ---------------------------------------------------------------------------- # Target-Install @@ -116,6 +119,8 @@ ifneq ($(call remove_quotes,$(PTXCONF_TIMEZONE_LOCALTIME)),) /etc/localtime) endif + $(call install_copy, timezone, 0, 0, 0644, -, /usr/share/zoneinfo/zone1970.tab) + @$(call install_finish, timezone) @$(call touch) -- 2.30.2 _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-requ...@pengutronix.de