Subject: [bug#31484] [PATCH] gnu: icu4c: Patch zoneinfo directory.

From: Leo Famulari <[email-masked]>
Date: Mon, 21 May 2018 13:15:14 -0400

On Sat, May 19, 2018 at 10:21:42PM +0200, Ludovic Courtès wrote:
> Hello,
> 
> Christopher Baines <[email-masked]> skribis:
> 
> > Replace the hardcoded /usr/share/zoneinfo file with a reference to the tzdata
> > package.
> >
> > * gnu/packages/icu4c.scm (icu4c)[inputs]: Add tzdata.
> > [arguments]: Add a patch-zoneinfo-directory phase.

Thanks for noticing this, Chris.

> I wonder if icu4c should instead depend on ‘tzdata-for-tests’, which is
> changed less frequently to avoid full rebuilds?  Maybe Leo can comment.

tzdata-for-tests is meant to be used by packages that don't need current
time zone info. Thus, "for test suites only". We added tzdata-for-tests
to make it cheaper to update tzdata.

If icu4c needs current time zone info, it should not use
tzdata-for-tests. Chris, can you give more context about how icu4c uses
time zone information?

> I hope icu4c also honors the TZDIR environment variable, which would
> allow users to have it refer to the latest version.  Do you know if
> that’s the case?

Yeah, it would be great if icu4c could just use TZDIR, which would allow
us to continue updating the time zones relatively frequently... if icu4c
actually needs the time zone database.

Already, we have problems keeping them up to date because too many
packages depend on them, and that's a problem for Guix users (clocks
will be wrong in some time zones). If we let icu4c depend on tzdata,
then we will only be able to update the time zones during core-updates,
which is not frequent enough. Currently, we can at least update tzdata
on 'staging' braches.

It indicates two general problems, IMO:

1) the lack of build farm capacity
2) it should be possible to update the time zone database without
rebuilding packages (the packages should use TZDIR)

I wonder what is done in Nixpkgs...