From: Bruno Haible <bruno@clisp.org>
To: bug-gnulib@gnu.org, Paul Eggert <eggert@cs.ucla.edu>
Subject: Re: localtime on native Windows
Date: Sun, 18 Feb 2024 03:38:28 +0100 [thread overview]
Message-ID: <4341474.0S5aU1g85B@nimes> (raw)
In-Reply-To: <62badb92-dc1a-4935-89fc-5bf1ba32b811@cs.ucla.edu>
Paul Eggert wrote:
> > The first question is how to include tzdata in gnulib.
> > - AFAICS, the main data file (without comments) is tzdata.zi and is about
> > 100 KB large. It can be upgraded simply by copying the newest tzdata.zi
> > from a newer tzdata distribution. Including such a file in gnulib would
> > be OK (re copyright, number of files, total size), right?
>
> No problem with copyright; the file is in the public domain.
>
> > - Whereas including all files from /usr/share/zoneinfo is probably not
> > acceptable (> 1300 files, ca. 6 MB total size).
>
> That can be automatically generated from tzdata.zi, by using zic, the
> source code of which is also in the public domain.
Thanks for the confirmation.
My current plan, in order to cover the two goals
- localtime_r on native Windows,
- nstrftime, c_nstrftime, parse-datetime, which all take a timezone_t
argument,
is to write four pieces of code:
1) code that represents the data for a single time zone in memory,
(based on glibc's tzfile.c),
2) code that reads a binary time zone file, for use on Unix,
(based on glibc's tzfile.c), returning it in the format 1).
3) code that reads a tzdata.zi, for use on Windows,
(based on glibc's zic.c and tzfile.c), returning it in the format 1).
4) an implementation of localtime_r for a given time zone
(based on glibc's tzfile.c:__tzfile_compute, tzset.c:__tz_convert, and
localtime_r).
This should fulfil Gnulib's needs (code under LGPLv2+, small number
of source files, small number and size of data files to include).
Note that this will have to wait for a few weeks. I have more urgent work on
gettext to do first.
Note also: The above approach will need locking, in order to protect caches
(in 1) the data for a single time zone, in 3) the contents of tzdata.zi).
Bruno
next prev parent reply other threads:[~2024-02-18 2:38 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-09 17:43 MT-unsafe time modules Bruno Haible
2024-02-09 20:22 ` Bruno Haible
2024-02-10 11:10 ` Bruno Haible
2024-02-11 12:46 ` localtime on native Windows Bruno Haible
2024-02-13 2:02 ` Paul Eggert
2024-02-18 2:38 ` Bruno Haible [this message]
2024-02-18 4:50 ` Paul Eggert
2024-02-18 14:38 ` Bruno Haible
2024-02-18 19:05 ` Paul Eggert
2024-02-11 10:43 ` MT-unsafe time modules Bruno Haible
-- strict thread matches above, loose matches on Subject: below --
2024-02-13 18:25 localtime on native Windows Brian Inglis
2024-02-18 2:14 ` Bruno Haible
2024-02-18 5:32 ` Brian.Inglis
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
List information: https://lists.gnu.org/mailman/listinfo/bug-gnulib
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4341474.0S5aU1g85B@nimes \
--to=bruno@clisp.org \
--cc=bug-gnulib@gnu.org \
--cc=eggert@cs.ucla.edu \
/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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).