On Fri, Dec 03, 2021 at 04:23:37PM +0100, Gavin Schenk wrote:
> 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
> ---
> 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)
This should not be removed.
Michael
> +# 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)
Don't for get the '@' at the beginning of the line.
Michael
> +
> @$(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
>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0|
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917- |
___
ptxdist mailing list
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to
ptxdist-requ...@pengutronix.de