base-system: tzdata construye — zoneinfo (598 zonas) desde eggert/tz git pineado

b3:6b4f0397. Raíz del fallo: el tarball IANA tzcode NO trae los datos de zona (y el combinado
es .tar.lz sin lzip acá). Cambié [source] a git github.com/eggert/tz @ tag 2026b (código+datos
juntos, commit fijo ADR 0006), quité los patches de posixtz (no lo construimos), fases = zic →
DESTDIR posix_only. Habilita la zona horaria real del instalador interactivo.
This commit is contained in:
2026-07-10 22:44:18 -04:00
parent e3d6e7e2cb
commit f5d65beeb7
+20 -35
View File
@@ -1,15 +1,20 @@
# Importada de Alpine aports por `hammer import-alpine` (Etapa G). PUNTO DE PARTIDA — pero
# YA trae los parches de musl de Alpine (lo que un import de nix pierde). Pendiente: el
# sha256 del tarball (el wrapper lo calcula), y adaptar build/install del shell de abuild.
# Base de zonas horarias (IANA tz).
#
# El tarball `tzcode2026b.tar.gz` de IANA trae SÓLO el código (zic.c, Makefile) y el
# `tzdata2026b.tar.gz` SÓLO los datos (africa, asia, ...). Como hammer fija una única
# fuente por receta y el tarball combinado de IANA es `.tar.lz` (lzip no disponible),
# usamos el árbol git de eggert/tz —que contiene código + datos juntos— pineado al tag
# 2026b (ADR 0006: commit fijo, nunca HEAD).
#
# Objetivo: poblar /usr/share/zoneinfo/* con `zic`. NO empaquetamos el binario
# zic/zdump/posixtz, sólo las zonas compiladas. Por eso quitamos los parches de Alpine
# de `posixtz` (no lo construimos).
name = "tzdata"
version = "2026b"
[source]
tarball = "https://www.iana.org/time-zones/repository/releases/tzcode2026b.tar.gz"
# FIXME sha256: el wrapper lo calcula (Alpine publica sha512). sha512 de Alpine:
# sha512 = "55b44d52a83c9db151be32c3d78376ea7f9d4311ef15ed6fe34b855b08fc546531e51309d178d9c175a6d5d7d0b058440e45a55d200ca8925e3798dac9bc739f"
sha256 = "37e9ed8427f5d3521c22fc58e293cbfb043d70eedf1003870b33f363f61ca344"
patches = ["0001-posixtz-ensure-the-file-offset-we-pass-to-lseek-is-o.patch", "0002-fix-implicit-declaration-warnings-by-including-strin.patch"]
repo = "https://github.com/eggert/tz"
commit = "48c25a1ba86cb602990c0573aba7795417931bb4" # tag 2026b (annotated → commit)
[build]
compiler = "zig-cc"
@@ -18,34 +23,14 @@ link = "static"
flags = []
[build.phases]
# de build() de Alpine (traducido; el lab provee $CBUILD/$CHOST — Etapa G Fase 3; revisá --shared para estático):
# El Makefile de tz compila `zic` (C estándar, sin deps externas). VERSION lo pasamos a
# mano porque el árbol se materializa vía `git archive` (sin .git para `git describe`).
compile = '''
_abuild_phase() {
make cc="${CC:-gcc}" CFLAGS="$CFLAGS -DHAVE_STDINT_H=1" \
TZDIR="/usr/share/zoneinfo"
make -C "$builddir"/posixtz-$_ptzver posixtz
}
_abuild_phase
make CC="$CC" LDFLAGS="$LDFLAGS" VERSION=2026b zic
'''
# de package() de Alpine (traducido $pkgdir→/out):
# `posix_only` genera tzdata.zi + leapseconds (vía awk, que busybox awk resuelve) y corre
# `zic -d $DESTDIR$TZDIR tzdata.zi` → deja las zonas en /out/usr/share/zoneinfo.
install = '''
_abuild_phase() {
./zic -b fat -y ./yearistype -d "/out"/usr/share/zoneinfo $_timezones
./zic -b fat -y ./yearistype -d "/out"/usr/share/zoneinfo/right -L leapseconds $_timezones
#./zic -b fat -y ./yearistype -d "/out"/usr/share/zoneinfo/posix $_timezones
./zic -b fat -y ./yearistype -d "/out"/usr/share/zoneinfo -p America/New_York
install -m444 -t "/out"/usr/share/zoneinfo iso3166.tab zone1970.tab zone.tab
install -Dm755 -t "/out"/usr/sbin zic zdump
install -Dm644 -t "/out"/usr/share/man/man8 zic.8 zdump.8
rm -f "/out"/usr/share/zoneinfo/localtime
install -Dm755 -t "/out"/usr/bin "$srcdir"/posixtz-$_ptzver/posixtz
install -Dm644 -t "/out"/usr/share/zoneinfo "$srcdir"/leap-seconds.list
}
_abuild_phase
make CC="$CC" LDFLAGS="$LDFLAGS" VERSION=2026b \
DESTDIR=/out TZDIR=/usr/share/zoneinfo posix_only
'''