[Buildroot] [PATCH 3/5] package/tzdata: install a default localtime

Arnout Vandecappelle arnout at mind.be
Thu Jan 9 17:13:23 UTC 2014


On 07/01/14 23:46, Yann E. MORIN wrote:
> From: "Yann E. MORIN" <yann.morin.1998 at free.fr>
>
> Add an option to install a default localtime.
>
> since tzdata only makes sense for (e)glibc, we don't care
> that we install timezone files that uClibc can't understand.
>
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
> ---
>   package/tzdata/Config.in | 10 ++++++++++
>   package/tzdata/tzdata.mk |  8 +++++++-
>   2 files changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/package/tzdata/Config.in b/package/tzdata/Config.in
> index 1be6814..c0ede1f 100644
> --- a/package/tzdata/Config.in
> +++ b/package/tzdata/Config.in
> @@ -23,4 +23,14 @@ config BR2_PACKAGE_TZDATA_ZONELIST
>   	  The full list is the list of files in the time zone database source,
>   	  not including the build and .tab files.
>
> +config BR2_PACKAGE_TZDATA_LOCALTIME
> +	string "default local time"
> +	help
> +	  The time zone to install as the default local time, expressed as a
> +	  tzdata location, such as:
> +	    GMT, Europe/Paris, America/New_York, Pacific/Wallis...

  I hope this will not confuse users to think that they can specify 
multiple values separated by a comma...

> +
> +	  If empty, no local time will be set, and the dates will be
> +	  expressed in UTC.
> +
>   endif
> diff --git a/package/tzdata/tzdata.mk b/package/tzdata/tzdata.mk
> index 1cb5b3f..74263e1 100644
> --- a/package/tzdata/tzdata.mk
> +++ b/package/tzdata/tzdata.mk
> @@ -39,8 +39,14 @@ define TZDATA_INSTALL_TARGET_CMDS
>   	cp -a $(@D)/_output/* $(TARGET_DIR)/usr/share/zoneinfo
>   	cd $(TARGET_DIR)/usr/share/zoneinfo;    \
>   	for zone in posix/*; do                 \
> -	    ln -sfn "$${zone}" "$${zone##*/}";    \
> +	    ln -sfn "$${zone}" "$${zone##*/}";  \
>   	done
> +	if [ -n "$(BR2_PACKAGE_TZDATA_LOCALTIME)" ]; then                   \

  Ick, this looks ugly... If it is unset, make will evaluate it to

	if [ -n """" ]; then ...

which is indeed an empty string, but not so nice... IOW, it's missing a 
qstrip.

  Also, instead of a shell condition I'd prefer a make condition, but 
that's probably a matter of taste.

> +	    cd $(TARGET_DIR)/etc;                                           \
> +	    ln -sf ../usr/share/zoneinfo/$(BR2_PACKAGE_TZDATA_LOCALTIME)    \

  Same here. But also quotes should be added in case the user put 
something stupid there.

> +	           localtime;                                               \
> +	    echo "$(BR2_PACKAGE_TZDATA_LOCALTIME)" >timezone;               \

  Same here. The quotes are not actually quoting anything now...


  Regards,
  Arnout

> +	fi
>   endef
>
>   $(eval $(generic-package))
>


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F



More information about the buildroot mailing list