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