Re: [tz] Ubuntu drops old-style links - tzdata split test package
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
Re: [tz] Ubuntu drops old-style links - tzdata split test package
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 /usr/share/zoneinfo/zonenow.tab Fedora comes with two files not in the Cygwin package: /usr/share/zoneinfo/leap-seconds.list /usr/share/zoneinfo/posixrules 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. Corinna
Re: [tz] Ubuntu drops old-style links - tzdata split test package
On 2024-03-23 15:11, Corinna Vinschen via Cygwin-apps wrote: On Mar 23 10:38, Brian Inglis via Cygwin-apps wrote: It looks to me that tzset.c prioritizes the Windows label over the country, and it may be a better match prioritizing the country over the label, if the country is not 001/"", nor ZZ, which are the generic entries. The Windows timezone is the relevant setting in the first place becasue that's what indicvates the actual local time *as the user chose*. The territory should only be a secondary hint to choose the right POSIX entry. For instance, I know people always using UTC, independently of their territory setting. If the territory rules, this user choice would be broken in Cygwin. It also is not clear what tzset should do when tzmap has a list of zones to choose from, for example: { L"Mountain Standard Time", L"CA", L"America/Edmonton America/Cambridge_Bay America/Inuvik" }, { L"Mountain Standard Time", L"US", L"America/Denver America/Boise" }, { L"US Mountain Standard Time", L"CA", L"America/Creston America/Dawson_Creek America/Fort_Nelson" }, it currently just prints the first, but perhaps it should print all relevant entries and the caller should handle the alternatives? tzset is called from the shell default profile. It has to use exactly one, valid entry, so time works as desired without forcing interactivity. If the user doesn't like it, the user can always override tzset's choice in her own profile. 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. -- 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