86 lines
2.7 KiB
Nix
86 lines
2.7 KiB
Nix
|
{ lib, stdenv, fetchurl, buildPackages }:
|
||
|
|
||
|
stdenv.mkDerivation (finalAttrs: {
|
||
|
pname = "tzdata";
|
||
|
version = "2024a";
|
||
|
|
||
|
srcs = [
|
||
|
(fetchurl {
|
||
|
url = "https://data.iana.org/time-zones/releases/tzdata${finalAttrs.version}.tar.gz";
|
||
|
hash = "sha256-DQQ0RZrL0gWaeo2h8zBKhKhlkfbtacYkj/+lArbt/+M=";
|
||
|
})
|
||
|
(fetchurl {
|
||
|
url = "https://data.iana.org/time-zones/releases/tzcode${finalAttrs.version}.tar.gz";
|
||
|
hash = "sha256-gAcolK3/WkWPHRQ+FuTKHYsqEiycU5naSCy2jLpqH/g=";
|
||
|
})
|
||
|
];
|
||
|
|
||
|
sourceRoot = ".";
|
||
|
|
||
|
patches = lib.optionals stdenv.hostPlatform.isWindows [
|
||
|
./0001-Add-exe-extension-for-MS-Windows-binaries.patch
|
||
|
];
|
||
|
|
||
|
outputs = [ "out" "bin" "man" "dev" ];
|
||
|
propagatedBuildOutputs = [ ];
|
||
|
|
||
|
makeFlags = [
|
||
|
"TOPDIR=${placeholder "out"}"
|
||
|
"TZDIR=${placeholder "out"}/share/zoneinfo"
|
||
|
"BINDIR=${placeholder "bin"}/bin"
|
||
|
"ZICDIR=${placeholder "bin"}/bin"
|
||
|
"ETCDIR=$(TMPDIR)/etc"
|
||
|
"TZDEFAULT=tzdefault-to-remove"
|
||
|
"LIBDIR=${placeholder "dev"}/lib"
|
||
|
"MANDIR=${placeholder "man"}/share/man"
|
||
|
"AWK=awk"
|
||
|
"CFLAGS=-DHAVE_LINK=0"
|
||
|
"CFLAGS+=-DZIC_BLOAT_DEFAULT=\\\"fat\\\""
|
||
|
"cc=${stdenv.cc.targetPrefix}cc"
|
||
|
"AR=${stdenv.cc.targetPrefix}ar"
|
||
|
] ++ lib.optionals stdenv.hostPlatform.isWindows [
|
||
|
"CFLAGS+=-DHAVE_DIRECT_H"
|
||
|
"CFLAGS+=-DHAVE_SETENV=0"
|
||
|
"CFLAGS+=-DHAVE_SYMLINK=0"
|
||
|
"CFLAGS+=-DRESERVE_STD_EXT_IDS"
|
||
|
];
|
||
|
|
||
|
doCheck = true;
|
||
|
# everything except for:
|
||
|
# - check_web, because that needs curl and wants to talk to https://validator.w3.org
|
||
|
# - check_now, because that depends on the current time
|
||
|
checkTarget = "check_back check_character_set check_white_space check_links check_name_lengths check_slashed_abbrs check_sorted check_tables check_ziguard check_zishrink check_tzs";
|
||
|
|
||
|
installFlags = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
|
||
|
"zic=${buildPackages.tzdata.bin}/bin/zic"
|
||
|
];
|
||
|
|
||
|
postInstall =
|
||
|
''
|
||
|
rm $out/share/zoneinfo-posix
|
||
|
rm $out/share/zoneinfo/tzdefault-to-remove
|
||
|
mkdir $out/share/zoneinfo/posix
|
||
|
( cd $out/share/zoneinfo/posix; ln -s ../* .; rm posix )
|
||
|
mv $out/share/zoneinfo-leaps $out/share/zoneinfo/right
|
||
|
|
||
|
cp leap-seconds.list $out/share/zoneinfo
|
||
|
|
||
|
mkdir -p "$dev/include"
|
||
|
cp tzfile.h "$dev/include/tzfile.h"
|
||
|
'';
|
||
|
|
||
|
setupHook = ./tzdata-setup-hook.sh;
|
||
|
|
||
|
meta = with lib; {
|
||
|
homepage = "http://www.iana.org/time-zones";
|
||
|
description = "Database of current and historical time zones";
|
||
|
changelog = "https://github.com/eggert/tz/blob/${finalAttrs.version}/NEWS";
|
||
|
license = with licenses; [
|
||
|
bsd3 # tzcode
|
||
|
publicDomain # tzdata
|
||
|
];
|
||
|
platforms = platforms.all;
|
||
|
maintainers = with maintainers; [ ajs124 fpletz ];
|
||
|
};
|
||
|
})
|