| require timezone.inc |
| |
| DEPENDS = "tzcode-native" |
| |
| inherit allarch |
| |
| DEFAULT_TIMEZONE ?= "Universal" |
| INSTALL_TIMEZONE_FILE ?= "1" |
| |
| TZONES = " \ |
| africa antarctica asia australasia europe northamerica southamerica \ |
| factory etcetera backward \ |
| " |
| |
| # "slim" is the default since 2020b |
| # "fat" is needed by e.g. MariaDB's mysql_tzinfo_to_sql |
| ZIC_FMT ?= "slim" |
| |
| do_configure[cleandirs] = "${B}" |
| B = "${WORKDIR}/build" |
| |
| do_compile() { |
| for zone in ${TZONES}; do |
| ${STAGING_BINDIR_NATIVE}/zic -b ${ZIC_FMT} -d ${B}/zoneinfo -L /dev/null ${S}/${zone} |
| ${STAGING_BINDIR_NATIVE}/zic -b ${ZIC_FMT} -d ${B}/zoneinfo/posix -L /dev/null ${S}/${zone} |
| ${STAGING_BINDIR_NATIVE}/zic -b ${ZIC_FMT} -d ${B}/zoneinfo/right -L ${S}/leapseconds ${S}/${zone} |
| done |
| } |
| |
| do_install() { |
| install -d ${D}${datadir}/zoneinfo |
| cp -pPR ${B}/zoneinfo/* ${D}${datadir}/zoneinfo |
| |
| # libc is removing zoneinfo files from package |
| cp -pP "${S}/zone.tab" ${D}${datadir}/zoneinfo |
| cp -pP "${S}/zone1970.tab" ${D}${datadir}/zoneinfo |
| cp -pP "${S}/iso3166.tab" ${D}${datadir}/zoneinfo |
| cp -pP "${S}/leapseconds" ${D}${datadir}/zoneinfo |
| cp -pP "${S}/leap-seconds.list" ${D}${datadir}/zoneinfo |
| |
| # Install default timezone |
| if [ -e ${D}${datadir}/zoneinfo/${DEFAULT_TIMEZONE} ]; then |
| install -d ${D}${sysconfdir} |
| if [ "${INSTALL_TIMEZONE_FILE}" = "1" ]; then |
| echo ${DEFAULT_TIMEZONE} > ${D}${sysconfdir}/timezone |
| fi |
| ln -s ${datadir}/zoneinfo/${DEFAULT_TIMEZONE} ${D}${sysconfdir}/localtime |
| else |
| bberror "DEFAULT_TIMEZONE is set to an invalid value." |
| exit 1 |
| fi |
| |
| chown -R root:root ${D} |
| } |
| |
| pkg_postinst:${PN}() { |
| etc_lt="$D${sysconfdir}/localtime" |
| src="$D${sysconfdir}/timezone" |
| |
| if [ -e "$src" ]; then |
| tz=$(sed -e 's:#.*::' -e 's:[[:space:]]*::g' -e '/^$/d' "$src") |
| fi |
| |
| if [ ! -z "$tz" -a ! -e "$D${datadir}/zoneinfo/$tz" ]; then |
| echo "You have an invalid TIMEZONE setting in $src" |
| echo "Your $etc_lt has been reset to Universal; enjoy!" |
| tz="Universal" |
| echo "Updating $etc_lt with $D${datadir}/zoneinfo/$tz" |
| if [ -L "$etc_lt" ]; then |
| rm -f "$etc_lt" |
| fi |
| ln -s "${datadir}/zoneinfo/$tz" "$etc_lt" |
| fi |
| } |
| |
| # Packages are primarily organized by directory with a major city in most time |
| # zones in the base package |
| TZ_PACKAGES = " \ |
| tzdata-core tzdata-misc tzdata-posix tzdata-right tzdata-africa \ |
| tzdata-americas tzdata-antarctica tzdata-arctic tzdata-asia \ |
| tzdata-atlantic tzdata-australia tzdata-europe tzdata-pacific \ |
| " |
| PACKAGES = "${TZ_PACKAGES} ${PN}" |
| |
| FILES:tzdata-africa += "${datadir}/zoneinfo/Africa" |
| |
| FILES:tzdata-americas += " \ |
| ${datadir}/zoneinfo/America \ |
| ${datadir}/zoneinfo/US \ |
| ${datadir}/zoneinfo/Brazil \ |
| ${datadir}/zoneinfo/Canada \ |
| ${datadir}/zoneinfo/Mexico \ |
| ${datadir}/zoneinfo/Chile \ |
| " |
| |
| FILES:tzdata-antarctica += "${datadir}/zoneinfo/Antarctica" |
| |
| FILES:tzdata-arctic += "${datadir}/zoneinfo/Arctic" |
| |
| FILES:tzdata-asia += " \ |
| ${datadir}/zoneinfo/Asia \ |
| ${datadir}/zoneinfo/Indian \ |
| ${datadir}/zoneinfo/Mideast \ |
| " |
| |
| FILES:tzdata-atlantic += "${datadir}/zoneinfo/Atlantic" |
| |
| FILES:tzdata-australia += "${datadir}/zoneinfo/Australia" |
| |
| FILES:tzdata-europe += "${datadir}/zoneinfo/Europe" |
| |
| FILES:tzdata-pacific += "${datadir}/zoneinfo/Pacific" |
| |
| FILES:tzdata-posix += "${datadir}/zoneinfo/posix" |
| |
| FILES:tzdata-right += "${datadir}/zoneinfo/right" |
| |
| FILES:tzdata-misc += " \ |
| ${datadir}/zoneinfo/Cuba \ |
| ${datadir}/zoneinfo/Egypt \ |
| ${datadir}/zoneinfo/Eire \ |
| ${datadir}/zoneinfo/Factory \ |
| ${datadir}/zoneinfo/GB-Eire \ |
| ${datadir}/zoneinfo/Hongkong \ |
| ${datadir}/zoneinfo/Iceland \ |
| ${datadir}/zoneinfo/Iran \ |
| ${datadir}/zoneinfo/Israel \ |
| ${datadir}/zoneinfo/Jamaica \ |
| ${datadir}/zoneinfo/Japan \ |
| ${datadir}/zoneinfo/Kwajalein \ |
| ${datadir}/zoneinfo/Libya \ |
| ${datadir}/zoneinfo/Navajo \ |
| ${datadir}/zoneinfo/Poland \ |
| ${datadir}/zoneinfo/Portugal \ |
| ${datadir}/zoneinfo/Singapore \ |
| ${datadir}/zoneinfo/Turkey \ |
| " |
| |
| FILES:tzdata-core += " \ |
| ${sysconfdir}/localtime \ |
| ${sysconfdir}/timezone \ |
| ${datadir}/zoneinfo/leapseconds \ |
| ${datadir}/zoneinfo/leap-seconds.list \ |
| ${datadir}/zoneinfo/Pacific/Honolulu \ |
| ${datadir}/zoneinfo/America/Anchorage \ |
| ${datadir}/zoneinfo/America/Los_Angeles \ |
| ${datadir}/zoneinfo/America/Denver \ |
| ${datadir}/zoneinfo/America/Chicago \ |
| ${datadir}/zoneinfo/America/New_York \ |
| ${datadir}/zoneinfo/America/Caracas \ |
| ${datadir}/zoneinfo/America/Sao_Paulo \ |
| ${datadir}/zoneinfo/Europe/London \ |
| ${datadir}/zoneinfo/Europe/Paris \ |
| ${datadir}/zoneinfo/Africa/Cairo \ |
| ${datadir}/zoneinfo/Europe/Moscow \ |
| ${datadir}/zoneinfo/Asia/Dubai \ |
| ${datadir}/zoneinfo/Asia/Karachi \ |
| ${datadir}/zoneinfo/Asia/Dhaka \ |
| ${datadir}/zoneinfo/Asia/Bangkok \ |
| ${datadir}/zoneinfo/Asia/Hong_Kong \ |
| ${datadir}/zoneinfo/Asia/Tokyo \ |
| ${datadir}/zoneinfo/Australia/Darwin \ |
| ${datadir}/zoneinfo/Australia/Adelaide \ |
| ${datadir}/zoneinfo/Australia/Brisbane \ |
| ${datadir}/zoneinfo/Australia/Sydney \ |
| ${datadir}/zoneinfo/Pacific/Noumea \ |
| ${datadir}/zoneinfo/CET \ |
| ${datadir}/zoneinfo/CST6CDT \ |
| ${datadir}/zoneinfo/EET \ |
| ${datadir}/zoneinfo/EST \ |
| ${datadir}/zoneinfo/EST5EDT \ |
| ${datadir}/zoneinfo/GB \ |
| ${datadir}/zoneinfo/GMT \ |
| ${datadir}/zoneinfo/GMT+0 \ |
| ${datadir}/zoneinfo/GMT-0 \ |
| ${datadir}/zoneinfo/GMT0 \ |
| ${datadir}/zoneinfo/Greenwich \ |
| ${datadir}/zoneinfo/HST \ |
| ${datadir}/zoneinfo/MET \ |
| ${datadir}/zoneinfo/MST \ |
| ${datadir}/zoneinfo/MST7MDT \ |
| ${datadir}/zoneinfo/NZ \ |
| ${datadir}/zoneinfo/NZ-CHAT \ |
| ${datadir}/zoneinfo/PRC \ |
| ${datadir}/zoneinfo/PST8PDT \ |
| ${datadir}/zoneinfo/ROC \ |
| ${datadir}/zoneinfo/ROK \ |
| ${datadir}/zoneinfo/UCT \ |
| ${datadir}/zoneinfo/UTC \ |
| ${datadir}/zoneinfo/Universal \ |
| ${datadir}/zoneinfo/W-SU \ |
| ${datadir}/zoneinfo/WET \ |
| ${datadir}/zoneinfo/Zulu \ |
| ${datadir}/zoneinfo/zone.tab \ |
| ${datadir}/zoneinfo/zone1970.tab \ |
| ${datadir}/zoneinfo/iso3166.tab \ |
| ${datadir}/zoneinfo/Etc \ |
| " |
| |
| CONFFILES:tzdata-core = "${sysconfdir}/localtime ${sysconfdir}/timezone" |
| |
| ALLOW_EMPTY:${PN} = "1" |
| |
| RDEPENDS:${PN} = "${TZ_PACKAGES}" |