Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH] packages: add tzdata
Date: Fri, 4 Jan 2013 12:54:47 +0100	[thread overview]
Message-ID: <20130104125447.04031e67@skate> (raw)
In-Reply-To: <1357300124-7011-1-git-send-email-rbraun@sceen.net>

Dear Richard Braun,

On Fri,  4 Jan 2013 12:48:44 +0100, Richard Braun wrote:
> The time zone database can be used by glibc (and potentially other
> applications) to offset UTC time and translate it according to
> additional rules, such as zone boundaries and daylight-saving time.
> 
> Signed-off-by: Richard Braun <rbraun@sceen.net>
> ---
>  package/Config.in                      |    1 +
>  package/tzdata/Config.in               |    8 +++++++
>  package/tzdata/tzdata.mk               |   37 ++++++++++++++++++++++++++++++++
>  package/zic/zic-fix-dependencies.patch |   25 +++++++++++++++++++++
>  package/zic/zic.mk                     |   26 ++++++++++++++++++++++

Please split in two patches. One for zic, one for tzdata.

>  5 files changed, 97 insertions(+), 0 deletions(-)
>  create mode 100644 package/tzdata/Config.in
>  create mode 100644 package/tzdata/tzdata.mk
>  create mode 100644 package/zic/zic-fix-dependencies.patch
>  create mode 100644 package/zic/zic.mk
> 
> diff --git a/package/Config.in b/package/Config.in
> index 2cbadf4..99bb724 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -540,6 +540,7 @@ source "package/protobuf/Config.in"
>  source "package/schifra/Config.in"
>  source "package/startup-notification/Config.in"
>  source "package/liblog4c-localtime/Config.in"
> +source "package/tzdata/Config.in"
>  endmenu
>  
>  menu "Text and terminal handling"
> diff --git a/package/tzdata/Config.in b/package/tzdata/Config.in
> new file mode 100644
> index 0000000..cd4f818
> --- /dev/null
> +++ b/package/tzdata/Config.in
> @@ -0,0 +1,8 @@
> +config BR2_PACKAGE_TZDATA
> +	bool "tzdata"

depends on BR2_TOOLCHAIN_EXTERNAL_GLIBC || BR2_TOOLCHAIN_CTNG_eglibc || BR2_TOOLCHAIN_CTNG_glibc

> +	help
> +	  Time zone database
> +
> +	  http://www.iana.org/time-zones/repository/tz-link.html
> +
> +	  Note that uClibc doesn't support this database.
> diff --git a/package/tzdata/tzdata.mk b/package/tzdata/tzdata.mk
> new file mode 100644
> index 0000000..5995c24
> --- /dev/null
> +++ b/package/tzdata/tzdata.mk
> @@ -0,0 +1,37 @@
> +#############################################################
> +#
> +# tzdata
> +#
> +#############################################################
> +
> +TZDATA_VERSION = 2012j
> +TZDATA_SOURCE = tzdata$(TZDATA_VERSION).tar.gz
> +TZDATA_SITE = http://www.iana.org/time-zones/repository/releases
> +TZDATA_DEPENDENCIES = host-zic
> +TZDATA_LICENSE = Public domain
> +
> +TZDATA_ZIC = $(HOST_DIR)/usr/sbin/zic
> +TZDATA_ZONELIST = africa antarctica asia australasia backward etcetera \
> +			europe factory northamerica pacificnew southamerica

How about making it possible to configure which time zone data gets
installed? From what I remember, the entire size of the tzdata database
was quite large. Could be something like:

choice
	prompt "Time zone selection"

config BR2_PACKAGE_TZDATA_ALL
	bool "all"

config BR2_PACKAGE_TZDATA_LIST
	bool "List"

config BR2_PACKAGE_TZDATA_FILELIST
	bool "List in file"

endchoice

> +define TZDATA_EXTRACT_CMDS
> +	gzip -d -c $(DL_DIR)/$(TZDATA_SOURCE) \
> +		| $(TAR) --strip-components=0 -C $(@D) -xf -
> +endef

A short comment above to explain that the need to override the extract
step is the strip-components=0 would be useful.

> +define TZDATA_BUILD_CMDS
> +	(cd $(@D); \
> +		for zone in $(TZDATA_ZONELIST); do \
> +			$(TZDATA_ZIC) -d _output -y yearistype.sh $$zone; \
> +			$(TZDATA_ZIC) -d _output/posix -y yearistype.sh $$zone; \
> +			$(TZDATA_ZIC) -d _output/right -L leapseconds -y yearistype.sh $$zone; \
> +		done; \
> +	)
> +endef
> +
> +define TZDATA_INSTALL_TARGET_CMDS
> +	mkdir -p $(TARGET_DIR)/usr/share/zoneinfo
> +	cp -a $(@D)/_output/* $(TARGET_DIR)/usr/share/zoneinfo
> +endef
> +
> +$(eval $(generic-package))
> diff --git a/package/zic/zic-fix-dependencies.patch b/package/zic/zic-fix-dependencies.patch
> new file mode 100644
> index 0000000..e67c5eb
> --- /dev/null
> +++ b/package/zic/zic-fix-dependencies.patch
> @@ -0,0 +1,25 @@
> +From 087046dc38cfa4fa429317cc5db4c9bfaaaedc64 Mon Sep 17 00:00:00 2001
> +From: Richard Braun <rbraun@sceen.net>
> +Date: Fri, 4 Jan 2013 10:57:24 +0100
> +Subject: [PATCH] fix zic dependencies
> +
> +---

A better patch description is needed.

> + Makefile |    2 +-
> + 1 files changed, 1 insertions(+), 1 deletions(-)
> +
> +diff --git a/Makefile b/Makefile
> +index d76a81e..30df7dc 100644
> +--- a/Makefile
> ++++ b/Makefile
> +@@ -349,7 +349,7 @@ version.h:
> + zdump:		$(TZDOBJS)
> + 		$(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZDOBJS) $(LDLIBS)
> + 
> +-zic:		$(TZCOBJS) yearistype
> ++zic:		$(TZCOBJS)
> + 		$(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZCOBJS) $(LDLIBS)
> + 
> + yearistype:	yearistype.sh
> +-- 
> +1.7.2.5
> +
> diff --git a/package/zic/zic.mk b/package/zic/zic.mk
> new file mode 100644
> index 0000000..d2d5c7d
> --- /dev/null
> +++ b/package/zic/zic.mk
> @@ -0,0 +1,26 @@
> +#############################################################
> +#
> +# zic
> +#
> +#############################################################
> +
> +ZIC_VERSION = 2012j
> +ZIC_SOURCE = tzcode$(ZIC_VERSION).tar.gz
> +ZIC_SITE = http://www.iana.org/time-zones/repository/releases
> +ZIC_LICENSE = Public domain
> +
> +define HOST_ZIC_EXTRACT_CMDS
> +	gzip -d -c $(DL_DIR)/$(ZIC_SOURCE) \
> +		| $(TAR) --strip-components=0 -C $(@D) -xf -
> +endef
> +
> +define HOST_ZIC_BUILD_CMDS
> +	$(HOST_MAKE_ENV) $(MAKE) -C $(@D) zic
> +endef
> +
> +define HOST_ZIC_INSTALL_CMDS
> +	mkdir -p $(HOST_DIR)/usr/sbin
> +	install -D -m 755 $(@D)/zic $(HOST_DIR)/usr/sbin/zic
> +endef
> +
> +$(eval $(host-generic-package))

Thanks!

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

  reply	other threads:[~2013-01-04 11:54 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-04 11:48 [Buildroot] [PATCH] packages: add tzdata Richard Braun
2013-01-04 11:54 ` Thomas Petazzoni [this message]
2013-01-04 12:07   ` Richard Braun
2013-01-04 12:41     ` Thomas Petazzoni
2013-01-04 13:06       ` [Buildroot] [PATCH 1/2] package/zic: new host package Richard Braun
2013-01-04 13:06       ` [Buildroot] [PATCH 2/2] package/tzdata: new package Richard Braun
2013-01-04 13:41         ` Thomas Petazzoni
2013-01-04 13:45           ` Richard Braun
2013-01-04 13:48             ` Thomas Petazzoni
2013-01-04 13:57               ` Richard Braun
2013-01-04 21:15       ` [Buildroot] [PATCH] packages: add tzdata Peter Korsgaard
2013-01-07  9:20         ` [Buildroot] [PATCH v2 2/2] package/tzdata: new package Richard Braun

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130104125447.04031e67@skate \
    --to=thomas.petazzoni@free-electrons.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox