tzdata.bb by default pulls in all possible timezone data packages which increases size of the final root filesystem considerably. The customer would like to have extra timezones configurable so that only tzdata-core is chosen by default and rest of the zones are optional. This change would make the fs size a lot smaller.
Comparison of customized package volume before and after: When TZ_PACKAGES contains all tzdata packets, the image size of tzdata is 7.4MB. The difference in mirror size between the two is 7MB. When TZ_PACKAGES only retains one tzdata-core, the image size generated by tzdata is 320KB. Signed-off-by: Lizhi Xu <[email protected]> --- meta/recipes-extended/timezone/README.txt | 8 ++ meta/recipes-extended/timezone/tzd.inc | 3 + meta/recipes-extended/timezone/tzdata-cus.inc | 114 ++++++++++++++++++ meta/recipes-extended/timezone/tzdata.bb | 1 + 4 files changed, 126 insertions(+) create mode 100644 meta/recipes-extended/timezone/README.txt create mode 100644 meta/recipes-extended/timezone/tzd.inc create mode 100644 meta/recipes-extended/timezone/tzdata-cus.inc diff --git a/meta/recipes-extended/timezone/README.txt b/meta/recipes-extended/timezone/README.txt new file mode 100644 index 0000000000..e0c6bfdc2e --- /dev/null +++ b/meta/recipes-extended/timezone/README.txt @@ -0,0 +1,8 @@ +# Timezones Config +Set the parameter "OP_TZ" in the file "tzd.inc" to increase or +decrease the time zone in rootfs, as shown in the following example: + +1. Add time zone Asia and Americas, set OP_TZ=" tzdata-asia tzdata-americas" + +2. Delete time zone Americas, set OP_TZ=" tzdata-asia" + diff --git a/meta/recipes-extended/timezone/tzd.inc b/meta/recipes-extended/timezone/tzd.inc new file mode 100644 index 0000000000..fd59531063 --- /dev/null +++ b/meta/recipes-extended/timezone/tzd.inc @@ -0,0 +1,3 @@ +OP_TZ=" tzdata-americas \ + tzdata-asia \ +" diff --git a/meta/recipes-extended/timezone/tzdata-cus.inc b/meta/recipes-extended/timezone/tzdata-cus.inc new file mode 100644 index 0000000000..db97ac7a02 --- /dev/null +++ b/meta/recipes-extended/timezone/tzdata-cus.inc @@ -0,0 +1,114 @@ +require tzd.inc +# Packages are primarily organized by directory with a major city in most time +# zones in the base package +TZ_PACKAGES = " \ + tzdata-core \ + ${OP_TZ} \ +" + +# delete posix +do_install:append() { + if ! echo "${TZ_PACKAGES}" | grep -c "tzdata-posix" 2>&1; then + rm -rf ${D}${datadir}/zoneinfo/posix + fi +} + +# delete right +do_install:append() { + if ! echo "${TZ_PACKAGES}" | grep -c "tzdata-right" 2>&1; then + rm -rf ${D}${datadir}/zoneinfo/right + fi +} + +# delete america +do_install:append() { + if ! echo "${TZ_PACKAGES}" | grep -c "tzdata-americas" 2>&1; then + rm -rf ${D}${datadir}/zoneinfo/America + rm -rf ${D}${datadir}/zoneinfo/US + rm -rf ${D}${datadir}/zoneinfo/Brazil + rm -rf ${D}${datadir}/zoneinfo/Canada + rm -rf ${D}${datadir}/zoneinfo/Mexico + rm -rf ${D}${datadir}/zoneinfo/Chile + fi +} + +# delete europe +do_install:append() { + if ! echo "${TZ_PACKAGES}" | grep -c "tzdata-europe" 2>&1; then + rm -rf ${D}${datadir}/zoneinfo/Europe + fi +} + +# delete africa +do_install:append() { + if ! echo "${TZ_PACKAGES}" | grep -c "tzdata-africa" 2>&1; then + rm -rf ${D}${datadir}/zoneinfo/Africa + fi +} + +# delete atlantic +do_install:append() { + if ! echo "${TZ_PACKAGES}" | grep -c "tzdata-atlantic" 2>&1; then + rm -rf ${D}${datadir}/zoneinfo/Atlantic + fi +} + +# delete pacific +do_install:append() { + if ! echo "${TZ_PACKAGES}" | grep -c "tzdata-pacific" 2>&1; then + rm -rf ${D}${datadir}/zoneinfo/Pacific + fi +} + +# delete antarctica +do_install:append() { + if ! echo "${TZ_PACKAGES}" | grep -c "tzdata-antarctica" 2>&1; then + rm -rf ${D}${datadir}/zoneinfo/Antarctica + fi +} + +# delete australia +do_install:append() { + if ! echo "${TZ_PACKAGES}" | grep -c "tzdata-australia" 2>&1; then + rm -rf ${D}${datadir}/zoneinfo/Australia + fi +} + +# delete arctic +do_install:append() { + if ! echo "${TZ_PACKAGES}" | grep -c "tzdata-arctic" 2>&1; then + rm -rf ${D}${datadir}/zoneinfo/Arctic + fi +} + +# delete misc +do_install:append() { + if ! echo "${TZ_PACKAGES}" | grep -c "tzdata-misc" 2>&1; then + rm ${D}${datadir}/zoneinfo/Cuba + rm ${D}${datadir}/zoneinfo/Egypt + rm ${D}${datadir}/zoneinfo/Eire + rm ${D}${datadir}/zoneinfo/Factory + rm ${D}${datadir}/zoneinfo/GB-Eire + rm ${D}${datadir}/zoneinfo/Hongkong + rm ${D}${datadir}/zoneinfo/Iceland + rm ${D}${datadir}/zoneinfo/Iran + rm ${D}${datadir}/zoneinfo/Israel + rm ${D}${datadir}/zoneinfo/Jamaica + rm ${D}${datadir}/zoneinfo/Japan + rm ${D}${datadir}/zoneinfo/Kwajalein + rm ${D}${datadir}/zoneinfo/Libya + rm ${D}${datadir}/zoneinfo/Navajo + rm ${D}${datadir}/zoneinfo/Poland + rm ${D}${datadir}/zoneinfo/Portugal + rm ${D}${datadir}/zoneinfo/Singapore + rm ${D}${datadir}/zoneinfo/Turkey + fi +} + +# delete asia +do_install:append() { + if ! echo "${TZ_PACKAGES}" | grep -c "tzdata-asia" 2>&1; then + rm -rf ${D}${datadir}/zoneinfo/Asia + rm -rf ${D}${datadir}/zoneinfo/Indian + fi +} diff --git a/meta/recipes-extended/timezone/tzdata.bb b/meta/recipes-extended/timezone/tzdata.bb index dd1960ffa7..e2180cfda4 100644 --- a/meta/recipes-extended/timezone/tzdata.bb +++ b/meta/recipes-extended/timezone/tzdata.bb @@ -202,3 +202,4 @@ CONFFILES:tzdata-core = "${sysconfdir}/localtime ${sysconfdir}/timezone" ALLOW_EMPTY:${PN} = "1" RDEPENDS:${PN} = "${TZ_PACKAGES}" +require tzdata-cus.inc -- 2.25.1
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#191176): https://lists.openembedded.org/g/openembedded-core/message/191176 Mute This Topic: https://lists.openembedded.org/mt/102777104/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
