Version 2022f doesn't build on Darwin because its detection of whether
getrandom is available doesn't work. This has been fixed upstream, and
we can pull in the patches.
* Additional make flags are needed since some functions do not exist
or have different names or parameters on Windows.
* When compiling for Windows, GCC implicitly adds a `.exe` suffix to
the output file name. A patch is needed for the `install` target
to locate and install the correct files.
* The tzdata Makefile contains `zic` and `ZIC` variables. The former
refers to the path of the program to execute, while the latter
invokes the former with additional arguments (it is defined as
`ZIC=$(zic) $(ZFLAGS)`, `ZFLAGS` is normally empty).
Previously, `ZIC` was overridden, potentially loosing `ZFLAGS`
arguments. This commit changes it to override `zic` instead.
* The `zic` program is built and installed as part of the package and
also executed during the build to translate time-related files. When
cross-compiling it means that two executables need to be compiled:
one to get installed and run on the host platform, and another to
run on the build platform. Instead of renaming files and building a
temporary executable for the build platform, this commit references
the build platform's `tzdata.bin` package and runs its `zic`
program.
The timezone dumps have switched to a "slim" format since 2020b.
This has broken various packages, including
- go 1.4 (used for bootstrapping)
- haskellPackages.tz
- libical
The "fat" format can still be generated, as this commit shows.
It seems to create files that are *mostly* the slim versions with
some more data attached.
I made a mistake merge. Reverting it in c778945806 undid the state
on master, but now I realize it crippled the git merge mechanism.
As the merge contained a mix of commits from `master..staging-next`
and other commits from `staging-next..staging`, it got the
`staging-next` branch into a state that was difficult to recover.
I reconstructed the "desired" state of staging-next tree by:
- checking out the last commit of the problematic range: 4effe769e2
- `git rebase -i --preserve-merges a8a018ddc0` - dropping the mistaken
merge commit and its revert from that range (while keeping
reapplication from 4effe769e2)
- merging the last unaffected staging-next commit (803ca85c20)
- fortunately no other commits have been pushed to staging-next yet
- applying a diff on staging-next to get it into that state
Notable changes:
- Morocco switched to permanent +01 on 2018-10-27
- Volgograd moved from +03 to +04 on 2018-10-28
- Fiji ends DST 2019-01-13, not 2019-01-20
- Most of Chile changes DST dates, effective 2019-04-06
tzdata: fetch over https
Notable recent changes:
- Northern Cyprus resumed EU rules starting 2017-10-29.
- Namibia will switch from +01 with DST to +02 all year, affecting
UT offsets starting 2018-04-01.
- Sudan will switch from +03 to +02 on 2017-11-01.
- Tonga will not observe DST on 2017-11-05.
- Turks & Caicos will switch from -04 all year to -05 with US DST,
affecting UT offset starting 2018-11-04.