1require timezone.inc
2
3DEPENDS = "tzcode-native"
4
5inherit allarch
6
7RCONFLICTS_${PN} = "timezones timezone-africa timezone-america timezone-antarctica \
8             timezone-arctic timezone-asia timezone-atlantic \
9             timezone-australia timezone-europe timezone-indian \
10             timezone-iso3166.tab timezone-pacific timezone-zone.tab"
11
12S = "${WORKDIR}"
13
14DEFAULT_TIMEZONE ?= "Universal"
15INSTALL_TIMEZONE_FILE ?= "1"
16
17TZONES= "africa antarctica asia australasia europe northamerica southamerica  \
18         factory etcetera backward \
19        "
20# pacificnew
21
22do_compile () {
23        for zone in ${TZONES}; do \
24            ${STAGING_BINDIR_NATIVE}/zic -d ${WORKDIR}${datadir}/zoneinfo -L /dev/null \
25                ${S}/${zone} ; \
26            ${STAGING_BINDIR_NATIVE}/zic -d ${WORKDIR}${datadir}/zoneinfo/posix -L /dev/null \
27                ${S}/${zone} ; \
28            ${STAGING_BINDIR_NATIVE}/zic -d ${WORKDIR}${datadir}/zoneinfo/right -L ${S}/leapseconds \
29                ${S}/${zone} ; \
30        done
31}
32
33do_install () {
34        install -d ${D}/$exec_prefix ${D}${datadir}/zoneinfo
35        cp -pPR ${S}/$exec_prefix ${D}/
36        # libc is removing zoneinfo files from package
37        cp -pP "${S}/zone.tab" ${D}${datadir}/zoneinfo
38        cp -pP "${S}/zone1970.tab" ${D}${datadir}/zoneinfo
39        cp -pP "${S}/iso3166.tab" ${D}${datadir}/zoneinfo
40        cp -pP "${S}/leapseconds" ${D}${datadir}/zoneinfo
41        cp -pP "${S}/leap-seconds.list" ${D}${datadir}/zoneinfo
42
43        # Install default timezone
44        if [ -e ${D}${datadir}/zoneinfo/${DEFAULT_TIMEZONE} ]; then
45            install -d ${D}${sysconfdir}
46            if [ "${INSTALL_TIMEZONE_FILE}" = "1" ]; then
47                echo ${DEFAULT_TIMEZONE} > ${D}${sysconfdir}/timezone
48            fi
49            ln -s ${datadir}/zoneinfo/${DEFAULT_TIMEZONE} ${D}${sysconfdir}/localtime
50        else
51            bberror "DEFAULT_TIMEZONE is set to an invalid value."
52            exit 1
53        fi
54
55        chown -R root:root ${D}
56}
57
58pkg_postinst_${PN} () {
59	etc_lt="$D${sysconfdir}/localtime"
60	src="$D${sysconfdir}/timezone"
61
62	if [ -e ${src} ] ; then
63		tz=$(sed -e 's:#.*::' -e 's:[[:space:]]*::g' -e '/^$/d' "${src}")
64	fi
65
66	if [ ! -z "${tz}" -a ! -e "$D${datadir}/zoneinfo/${tz}" ] ; then
67		echo "You have an invalid TIMEZONE setting in ${src}"
68		echo "Your ${etc_lt} has been reset to Universal; enjoy!"
69		tz="Universal"
70		echo "Updating ${etc_lt} with $D${datadir}/zoneinfo/${tz}"
71		if [ -L ${etc_lt} ] ; then
72			rm -f "${etc_lt}"
73		fi
74		ln -s "${datadir}/zoneinfo/${tz}" "${etc_lt}"
75	fi
76}
77
78# Packages primarily organized by directory with a major city
79# in most time zones in the base package
80
81TZ_PACKAGES = " \
82    tzdata-core tzdata-misc tzdata-posix tzdata-right tzdata-africa \
83    tzdata-americas tzdata-antarctica tzdata-arctic tzdata-asia \
84    tzdata-atlantic tzdata-australia tzdata-europe tzdata-pacific"
85PACKAGES = "${TZ_PACKAGES} ${PN}"
86
87FILES_tzdata-africa += "${datadir}/zoneinfo/Africa/*"
88RPROVIDES_tzdata-africa = "tzdata-africa"
89
90FILES_tzdata-americas += "${datadir}/zoneinfo/America/*  \
91                ${datadir}/zoneinfo/US/*                \
92                ${datadir}/zoneinfo/Brazil/*            \
93                ${datadir}/zoneinfo/Canada/*            \
94                ${datadir}/zoneinfo/Mexico/*            \
95                ${datadir}/zoneinfo/Chile/*"
96RPROVIDES_tzdata-americas = "tzdata-americas"
97
98FILES_tzdata-antarctica += "${datadir}/zoneinfo/Antarctica/*"
99RPROVIDES_tzdata-antarctica = "tzdata-antarctica"
100
101FILES_tzdata-arctic += "${datadir}/zoneinfo/Arctic/*"
102RPROVIDES_tzdata-arctic = "tzdata-arctic"
103
104FILES_tzdata-asia += "${datadir}/zoneinfo/Asia/*        \
105                ${datadir}/zoneinfo/Indian/*            \
106                ${datadir}/zoneinfo/Mideast/*"
107RPROVIDES_tzdata-asia = "tzdata-asia"
108
109FILES_tzdata-atlantic += "${datadir}/zoneinfo/Atlantic/*"
110RPROVIDES_tzdata-atlantic = "tzdata-atlantic"
111
112FILES_tzdata-australia += "${datadir}/zoneinfo/Australia/*"
113RPROVIDES_tzdata-australia = "tzdata-australia"
114
115FILES_tzdata-europe += "${datadir}/zoneinfo/Europe/*"
116RPROVIDES_tzdata-europe = "tzdata-europe"
117
118FILES_tzdata-pacific += "${datadir}/zoneinfo/Pacific/*"
119RPROVIDES_tzdata-pacific = "tzdata-pacific"
120
121FILES_tzdata-posix += "${datadir}/zoneinfo/posix/*"
122RPROVIDES_tzdata-posix = "tzdata-posix"
123
124FILES_tzdata-right += "${datadir}/zoneinfo/right/*"
125RPROVIDES_tzdata-right = "tzdata-right"
126
127FILES_tzdata-misc += "${datadir}/zoneinfo/Cuba           \
128                ${datadir}/zoneinfo/Egypt                \
129                ${datadir}/zoneinfo/Eire                 \
130                ${datadir}/zoneinfo/Factory              \
131                ${datadir}/zoneinfo/GB-Eire              \
132                ${datadir}/zoneinfo/Hongkong             \
133                ${datadir}/zoneinfo/Iceland              \
134                ${datadir}/zoneinfo/Iran                 \
135                ${datadir}/zoneinfo/Israel               \
136                ${datadir}/zoneinfo/Jamaica              \
137                ${datadir}/zoneinfo/Japan                \
138                ${datadir}/zoneinfo/Kwajalein            \
139                ${datadir}/zoneinfo/Libya                \
140                ${datadir}/zoneinfo/Navajo               \
141                ${datadir}/zoneinfo/Poland               \
142                ${datadir}/zoneinfo/Portugal             \
143                ${datadir}/zoneinfo/Singapore            \
144                ${datadir}/zoneinfo/Turkey"
145RPROVIDES_tzdata-misc = "tzdata-misc"
146
147FILES_tzdata-core += " \
148                ${sysconfdir}/localtime                  \
149                ${sysconfdir}/timezone                   \
150                ${datadir}/zoneinfo/leapseconds          \
151                ${datadir}/zoneinfo/leap-seconds.list    \
152                ${datadir}/zoneinfo/Pacific/Honolulu     \
153                ${datadir}/zoneinfo/America/Anchorage    \
154                ${datadir}/zoneinfo/America/Los_Angeles  \
155                ${datadir}/zoneinfo/America/Denver       \
156                ${datadir}/zoneinfo/America/Chicago      \
157                ${datadir}/zoneinfo/America/New_York     \
158                ${datadir}/zoneinfo/America/Caracas      \
159                ${datadir}/zoneinfo/America/Sao_Paulo    \
160                ${datadir}/zoneinfo/Europe/London        \
161                ${datadir}/zoneinfo/Europe/Paris         \
162                ${datadir}/zoneinfo/Africa/Cairo         \
163                ${datadir}/zoneinfo/Europe/Moscow        \
164                ${datadir}/zoneinfo/Asia/Dubai           \
165                ${datadir}/zoneinfo/Asia/Karachi         \
166                ${datadir}/zoneinfo/Asia/Dhaka           \
167                ${datadir}/zoneinfo/Asia/Bangkok         \
168                ${datadir}/zoneinfo/Asia/Hong_Kong       \
169                ${datadir}/zoneinfo/Asia/Tokyo           \
170                ${datadir}/zoneinfo/Australia/Darwin     \
171                ${datadir}/zoneinfo/Australia/Adelaide   \
172                ${datadir}/zoneinfo/Australia/Brisbane   \
173                ${datadir}/zoneinfo/Australia/Sydney     \
174                ${datadir}/zoneinfo/Pacific/Noumea       \
175                ${datadir}/zoneinfo/CET                  \
176                ${datadir}/zoneinfo/CST6CDT              \
177                ${datadir}/zoneinfo/EET                  \
178                ${datadir}/zoneinfo/EST                  \
179                ${datadir}/zoneinfo/EST5EDT              \
180                ${datadir}/zoneinfo/GB                   \
181                ${datadir}/zoneinfo/GMT                  \
182                ${datadir}/zoneinfo/GMT+0                \
183                ${datadir}/zoneinfo/GMT-0                \
184                ${datadir}/zoneinfo/GMT0                 \
185                ${datadir}/zoneinfo/Greenwich            \
186                ${datadir}/zoneinfo/HST                  \
187                ${datadir}/zoneinfo/MET                  \
188                ${datadir}/zoneinfo/MST                  \
189                ${datadir}/zoneinfo/MST7MDT              \
190                ${datadir}/zoneinfo/NZ                   \
191                ${datadir}/zoneinfo/NZ-CHAT              \
192                ${datadir}/zoneinfo/PRC                  \
193                ${datadir}/zoneinfo/PST8PDT              \
194                ${datadir}/zoneinfo/ROC                  \
195                ${datadir}/zoneinfo/ROK                  \
196                ${datadir}/zoneinfo/UCT                  \
197                ${datadir}/zoneinfo/UTC                  \
198                ${datadir}/zoneinfo/Universal            \
199                ${datadir}/zoneinfo/W-SU                 \
200                ${datadir}/zoneinfo/WET                  \
201                ${datadir}/zoneinfo/Zulu                 \
202                ${datadir}/zoneinfo/zone.tab             \
203                ${datadir}/zoneinfo/zone1970.tab         \
204                ${datadir}/zoneinfo/iso3166.tab          \
205                ${datadir}/zoneinfo/Etc/*"
206
207CONFFILES_tzdata-core = "${sysconfdir}/localtime ${sysconfdir}/timezone"
208
209ALLOW_EMPTY_${PN} = "1"
210RDEPENDS_${PN} = "${TZ_PACKAGES}"
211