public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
From: Brian Inglis <Brian.Inglis@SystematicSW.ab.ca>
To: cygwin-apps@cygwin.com
Subject: Re: [tz] Ubuntu drops old-style links - tzdata split test package
Date: Thu, 28 Mar 2024 12:35:28 -0600	[thread overview]
Message-ID: <0ac120b6-b4f5-4ee1-bdd5-ab7735e67b13@SystematicSW.ab.ca> (raw)
In-Reply-To: <ZgVC1CML-EcORnvs@calimero.vinschen.de>

On 2024-03-28 04:13, Corinna Vinschen via Cygwin-apps wrote:
> On Mar 28 02:25, Brian Inglis via Cygwin-apps wrote:
>> I have released and announced a test package of tzdata 2024a-2 split into
>> three install packages: base tzdata, optional tzdata-right, and redundant
>> tzdata-posix, each containing all the legacy zones so that tzset continues
>> to work as before.
>>
>> I could not reduce the base installed zones by many, because most were used
>> by tzset, but I did drop a couple of large zone source files, produced by
>> the build, that were previously included to allow users to see the source
>> zones, rules, and links in effect, saving ~1MB, and dropping the overall
>> default base installed file sizes by ~80% to ~20% of current, and download
>> tar size by ~60% to ~40%; for all zones aggregate total installed file sizes
>> are dropped by ~35% to ~65%, and download tar sizes by ~30% to ~70% of
>> current:
>>
>> install   tar   tzdata
>>   721KB  172KB   base
>>   984KB   78KB   right
>>   669KB   74KB   posix
>>  1367KB  444KB   source
>>  3667KB  452KB   current
>>
>> Please check out the announcement, cygwin list echo, source and install
>> package summary web pages, cygport changes, setup entries, scallywag builds,
>> and let me know if there is anything you see that could benefit from
>> improvement.
> 
> Fedora Rawhide is not following this scheme.  For F40 and F41 it still
> prepares single tzdata packages.  FWIW, OpenSuSE also only comes with a
> single timezone package in Tumbleweed.
> 
> Comparing the Cygwin and the Fedora package, the only differences are:
> 
>   Cygwin comes with two files not in the Fedora package:
> 
>     /usr/share/zoneinfo/rearguard.zi

Source tzdata zones, rules, links,
- driven by tzdata make symbol settings,
- in legacy tzdata format supported by newlib-cygwin libc,
- generated as base zic input source to provide all the legacy zones used by 
tzset, and
- allows users to view the tzdata rules in effect for their zone(s) of interest; 
- dropped in the test package,
- along with tzdata.zi, which is the abbreviated generated source file used by 
zic to build the zoneinfo subtrees,
- driven also by zic parameters for each subtree, almost identical to Fedora:

	https://src.fedoraproject.org/rpms/tzdata/blob/rawhide/f/tzdata.spec

- except they still use the deprecated obsolete yearistype shell script with 
zic, supporting deprecated obsolete US presidential and odd/even year rules.

Once we know that the libc code is updated to support the new zic output data 
ranges, we could transition to main or vanguard source formats and slim output 
formats, as long as the required tzset zone files are still generated in those 
formats.

This is the same as provided in RHEL, see notes on tzdata-2018e in:

	https://access.redhat.com/articles/1187353

and Fedora

	https://src.fedoraproject.org/rpms/tzdata/blob/rawhide/f/tzdata.spec

>     /usr/share/zoneinfo/zonenow.tab

Compare the RH notes, Fedora tzdata.spec embedded changelog, cygport git log, 
and cygwin-announce upstream release notes, for similar information.

New minimal tzdata zone selection which builds *only* the minimal zones required 
to provide current time around the world, but may require selection of a 
different zone; supported by make and in /bin/tzselect by undocumented -t 
zonetabtype option.

>   Fedora comes with two files not in the Cygwin package:
> 
>     /usr/share/zoneinfo/leap-seconds.list

IERS/NIST upstream NTP leap-seconds.list PD distribution file: we provide only 
the tzdata format leapseconds file in /usr/share/zoneinfo/, generated from the 
NTP list, instead; that way we do not need to specify another licence, which 
appears not to be stated in:

	https://src.fedoraproject.org/rpms/tzdata/blob/rawhide/f/tzdata.spec

>     /usr/share/zoneinfo/posixrules

Deprecated obsolete legacy rules: see tzdata-2020b notes discussing patch to 
provide this in:

	https://access.redhat.com/articles/1187353

and 2020d-3 notes in:

	https://src.fedoraproject.org/rpms/tzdata/blob/rawhide/f/tzdata.spec

> That's all.  And given that space is not one of the major limiting
> factors anymore...
> 
>    cyg$ du -sh /usr/share/zoneinfo
>    6.6M    /usr/share/zoneinfo
> 
>    fed$ du -sh /usr/share/zoneinfo
>    4.6M	/usr/share/zoneinfo
> 
> ...I do wonder a bit if this split is really necessary after all.

It cuts the base install (--apparent) size by ~3MB to 721KB, time and load for 
this by a factor of 5, for mirrors, CI, and other repetitive container and 
packaged build server installs like ansible, docker, scallywag, etc.

Few users are likely to use any of the right or redundant posix subtrees, unless 
they have astrophysics or time/frequency physics interests.

Astronomers and astrologers, CLDR, ICU, and Cygwin Windows tzmap are better 
served by providing all the legacy zones.

FYI:

The primary maintainer of tzcode/tzdata is an Ubuntu user, and keen to drop as 
much of the legacy and what he considers as questionable history as possible, 
despite a project data fork to maintain that, which we may have to look at in 
the future for legacy tzmap compatibility, so looking at what we are doing is 
useful in any case!

What CLDR provides seems to be less than great, from what I have seen and read, 
so I *might* decide to take a look sometime at better mappings of Windows zones 
to the different zone{,1970,now}.tab tables, perhaps starting from PostGres 
efforts mentioned earlier.

-- 
Take care. Thanks, Brian Inglis              Calgary, Alberta, Canada

La perfection est atteinte                   Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter  not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer     but when there is no more to cut
                                 -- Antoine de Saint-Exupéry

      reply	other threads:[~2024-03-28 18:35 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAKxAwDomYU4=EOyMXTUcgDQJp0k7jQncRSChGB86xHT+9+hucA@mail.gmail.com>
     [not found] ` <86ff5be5-ccae-4bc0-81af-46abc54e549d@systematicsw.ab.ca>
2024-03-20 20:59   ` Fwd: [tz] Ubuntu drops old-style links Brian Inglis
2024-03-21  9:36     ` Corinna Vinschen
2024-03-22 16:02       ` Brian Inglis
2024-03-22 20:02         ` Brian Inglis
2024-03-22 20:10         ` Brian Inglis
2024-03-23  9:54         ` Corinna Vinschen
2024-03-23 16:38           ` Brian Inglis
2024-03-23 18:54             ` Brian Inglis
2024-03-23 21:11             ` Corinna Vinschen
2024-03-28  8:25               ` [tz] Ubuntu drops old-style links - tzdata split test package Brian Inglis
2024-03-28 10:13                 ` Corinna Vinschen
2024-03-28 18:35                   ` Brian Inglis [this message]

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=0ac120b6-b4f5-4ee1-bdd5-ab7735e67b13@SystematicSW.ab.ca \
    --to=brian.inglis@systematicsw.ab.ca \
    --cc=cygwin-apps@cygwin.com \
    /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).