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