Skip to content

Instantly share code, notes, and snippets.

@vsivanagulu
Created November 27, 2017 13:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vsivanagulu/a61440d5a342c845c9d5042886548e64 to your computer and use it in GitHub Desktop.
Save vsivanagulu/a61440d5a342c845c9d5042886548e64 to your computer and use it in GitHub Desktop.
tzdata.inc support for all countries
# add this to poky/meta/recipes-extended/tzdata.inc
DESCRIPTION = "Timezone data"
HOMEPAGE = "http://www.iana.org/time-zones"
SECTION = "base"
LICENSE = "PD & BSD"
LIC_FILES_CHKSUM = "file://asia;beginline=2;endline=3;md5=996a9811747aa48db91ed239e5b355a1"
DEPENDS = "tzcode-native"
inherit allarch
RCONFLICTS_${PN} = "timezones timezone-africa timezone-america timezone-antarctica \
timezone-arctic timezone-asia timezone-atlantic \
timezone-australia timezone-europe timezone-indian \
timezone-iso3166.tab timezone-pacific timezone-zone.tab"
S = "${WORKDIR}"
DEFAULT_TIMEZONE ?= "Universal"
TZONES= "africa antarctica asia australasia europe northamerica southamerica \
factory etcetera backward systemv \
"
# pacificnew
do_compile () {
for zone in ${TZONES}; do \
${STAGING_BINDIR_NATIVE}/zic -d ${WORKDIR}${datadir}/zoneinfo -L /dev/null \
-y ${S}/yearistype.sh ${S}/${zone} ; \
${STAGING_BINDIR_NATIVE}/zic -d ${WORKDIR}${datadir}/zoneinfo/posix -L /dev/null \
-y ${S}/yearistype.sh ${S}/${zone} ; \
${STAGING_BINDIR_NATIVE}/zic -d ${WORKDIR}${datadir}/zoneinfo/right -L ${S}/leapseconds \
-y ${S}/yearistype.sh ${S}/${zone} ; \
done
}
do_install () {
install -d ${D}/$exec_prefix ${D}${datadir}/zoneinfo
cp -pPR ${S}/$exec_prefix ${D}/
# libc is removing zoneinfo files from package
cp -pP "${S}/zone.tab" ${D}${datadir}/zoneinfo
cp -pP "${S}/iso3166.tab" ${D}${datadir}/zoneinfo
# Install default timezone
if [ -e ${D}${datadir}/zoneinfo/${DEFAULT_TIMEZONE} ]; then
install -d ${D}${sysconfdir}
echo ${DEFAULT_TIMEZONE} > ${D}${sysconfdir}/timezone
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}" ] ; then
exit 0
fi
if [ ! -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 primarily organized by directory with a major city
# in most time zones in the base package
PACKAGES = "tzdata tzdata-misc tzdata-posix tzdata-right tzdata-africa \
tzdata-americas tzdata-antarctica tzdata-arctic tzdata-asia \
tzdata-atlantic tzdata-australia tzdata-europe tzdata-pacific"
FILES_tzdata-africa += "${datadir}/zoneinfo/Africa/*"
RPROVIDES_tzdata-africa = "tzdata-africa"
FILES_tzdata-americas += "${datadir}/zoneinfo/America/* "
RPROVIDES_tzdata-americas = "tzdata-americas"
FILES_tzdata-antarctica += "${datadir}/zoneinfo/Antarctica/*"
RPROVIDES_tzdata-antarctica = "tzdata-antarctica"
FILES_tzdata-arctic += "${datadir}/zoneinfo/Arctic/*"
RPROVIDES_tzdata-arctic = "tzdata-arctic"
FILES_tzdata-asia += "${datadir}/zoneinfo/Asia/* "
RPROVIDES_tzdata-asia = "tzdata-asia"
FILES_tzdata-atlantic += "${datadir}/zoneinfo/Atlantic/*"
RPROVIDES_tzdata-atlantic = "tzdata-atlantic"
FILES_tzdata-australia += "${datadir}/zoneinfo/Australia/*"
RPROVIDES_tzdata-australia = "tzdata-australia"
FILES_tzdata-europe += "${datadir}/zoneinfo/Europe/*"
RPROVIDES_tzdata-europe = "tzdata-europe"
FILES_tzdata-pacific += "${datadir}/zoneinfo/Pacific/*"
RPROVIDES_tzdata-pacific = "tzdata-pacific"
FILES_tzdata-posix += "${datadir}/zoneinfo/posix/*"
RPROVIDES_tzdata-posix = "tzdata-posix"
FILES_tzdata-right += "${datadir}/zoneinfo/right/*"
RPROVIDES_tzdata-right = "tzdata-right"
FILES_tzdata-misc += "${datadir}/zoneinfo/* "
RPROVIDES_tzdata-misc = "tzdata-misc"
FILES_${PN} += "${datadir}/zoneinfo/* "
CONFFILES_${PN} += "${sysconfdir}/timezone ${sysconfdir}/localtime"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment