From b1d7abc7ad5d6ba5f2c1384e018aa86ced83c9f1 Mon Sep 17 00:00:00 2001 From: Patrick McDermott Date: Wed, 05 Jun 2019 19:08:50 -0400 Subject: build: Add tzdata target commands --- diff --git a/build b/build index 1aa0ac3..2343dbd 100755 --- a/build +++ b/build @@ -1,10 +1,26 @@ #!/usr/bin/make -f +tables = \ + africa \ + antarctica \ + asia \ + australasia \ + europe \ + northamerica \ + southamerica \ + etcetera \ + factory + nop: @: build: oh-autobuild -- KSHELL=/bin/sh TZDIR=/usr/share/zoneinfo + for t in $(tables); do \ + /usr/sbin/zic -d tzdata-$${t}.data/usr/share/zoneinfo \ + -L /dev/null -y yearistype.sh \ + src/$${t} || exit $?; \ + done touch $@ install: build @@ -15,3 +31,59 @@ install: build oh-fixperms oh-strip oh-installfiles + # Install tzdata files. + mkdir -p tzdata.data/usr/share/zoneinfo/Etc + mv tzdata-etcetera.data/usr/share/zoneinfo/Etc/UTC \ + tzdata.data/usr/share/zoneinfo/Etc + cp src/iso3166.tab src/zone.tab tzdata.data/usr/share/zoneinfo + ln -sf Universal tzdata.data/usr/share/zoneinfo/posixrules + mkdir -p tzdata.data/etc + ln -sf /usr/share/zoneinfo/Universal tzdata.data/etc/localtime + ln -sf . tzdata.data/usr/share/zoneinfo/posix + # Install time zones. + for t in $(tables); do \ + grep '^Link' src/$${t} | while read type dest src etc; do \ + rm -f "tzdata-$${t}.data/usr/share/zoneinfo/$${src}"; \ + if [ x"$${dest}" = x'Etc/UTC' ]; then \ + p='tzdata'; \ + else \ + p="tzdata-$${t}"; \ + fi; \ + link="$${src}" up=''; \ + while [ x"$${link#*/}" != x"$${link}" ] && \ + [ x"$${link%%/*}" = x"$${dest%%/*}" ]; do \ + link="$${link#*/}"; \ + dest="$${dest#*/}"; \ + done; \ + while [ x"$${link#*/}" != x"$${link}" ]; do \ + link="$${link#*/}"; \ + up="../$${up}"; \ + done; \ + src="$${p}.data/usr/share/zoneinfo/$${src}"; \ + ln -sf "$${up}$${dest}" "$${src}"; \ + done; \ + done + # Install links listed in the "backward" table into the relevant time + # zone data package. + grep '^Link' src/backward | while read type dest src etc; do \ + if [ x"$${dest}" = x'Etc/UTC' ]; then \ + p='tzdata'; \ + else \ + p="tzdata-$$(cd src && grep -l \ + "^Zone[ ][ ]*$${dest}[ ].*$$" \ + $(tables))"; \ + fi; \ + link="$${src}" up=''; \ + while [ x"$${link#*/}" != x"$${link}" ] && \ + [ x"$${link%%/*}" = x"$${dest%%/*}" ]; do \ + link="$${link#*/}"; \ + dest="$${dest#*/}"; \ + done; \ + while [ x"$${link#*/}" != x"$${link}" ]; do \ + link="$${link#*/}"; \ + up="../$${up}"; \ + done; \ + src="$${p}.data/usr/share/zoneinfo/$${src}"; \ + mkdir -p "$${src%/*}"; \ + ln -sf "$${up}$${dest}" "$${src}"; \ + done -- cgit v0.9.1