tzdata.bb 8.9 KB

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