summaryrefslogtreecommitdiff
path: root/classes/image.bbclass
diff options
context:
space:
mode:
authorSergey Lapin <slapin@ossfans.org>2009-06-26 22:32:52 +0400
committerSergey Lapin <slapin@ossfans.org>2009-06-26 22:32:52 +0400
commitc91a54aef8a39e7cbb2571574f56f2cf12104ff1 (patch)
treee68102d093c111affd9208b78df9c18aa837c3b8 /classes/image.bbclass
parent323edc5ef4c3d8572ee0b4fd185ca6e3166d6b45 (diff)
parent84efca2e2ad21d3d7cea68c0327f91aaf773eb67 (diff)
Merge branch 'org.openembedded.dev' of git@git.openembedded.net:openembedded into org.openembedded.dev
Conflicts: recipes/musicpd/mpd_0.14.2.bb
Diffstat (limited to 'classes/image.bbclass')
-rw-r--r--classes/image.bbclass42
1 files changed, 41 insertions, 1 deletions
diff --git a/classes/image.bbclass b/classes/image.bbclass
index 89d27120c1..864230bc91 100644
--- a/classes/image.bbclass
+++ b/classes/image.bbclass
@@ -17,6 +17,9 @@ IMAGE_INITSCRIPTS ?= "initscripts"
#
IMAGE_LOGIN_MANAGER ?= "tinylogin"
+IMAGE_KEEPROOTFS ?= ""
+IMAGE_KEEPROOTFS[doc] = "Set to non-empty to keep ${IMAGE_ROOTFS} around after image creation."
+
IMAGE_BOOT ?= "${IMAGE_INITSCRIPTS} \
${IMAGE_DEV_MANAGER} \
${IMAGE_INIT_MANAGER} \
@@ -133,6 +136,7 @@ fakeroot do_rootfs () {
${IMAGE_POSTPROCESS_COMMAND}
${MACHINE_POSTPROCESS_COMMAND}
+ ${@['rm -rf ${IMAGE_ROOTFS}', ''][bool(d.getVar("IMAGE_KEEPROOTFS", 1))]}
}
do_deploy_to[nostamp] = "1"
@@ -231,8 +235,44 @@ rootfs_update_timestamp () {
date "+%m%d%H%M%Y" >${IMAGE_ROOTFS}/etc/timestamp
}
+# Install locales into image for every entry in IMAGE_LINGUAS
+install_linguas() {
+if [ -e ${IMAGE_ROOTFS}/usr/bin/opkg-cl ] ; then
+ OPKG="opkg-cl ${IPKG_ARGS}"
+
+ ${OPKG} update
+ ${OPKG} list_installed | awk '{print $1}' |sort | uniq > /tmp/installed-packages
+
+ for i in $(cat /tmp/installed-packages | grep -v locale) ; do
+ for translation in ${IMAGE_LINGUAS} $(echo ${IMAGE_LINGUAS} | awk -F_ '{print $1}'); do
+ echo ${i}-locale-${translation}
+ done
+ done | sort | uniq > /tmp/wanted-locale-packages
+
+ ${OPKG} list | awk '{print $1}' |grep locale |sort | uniq > /tmp/available-locale-packages
+
+ cat /tmp/wanted-locale-packages /tmp/available-locale-packages | sort | uniq -d > /tmp/pending-locale-packages
+
+ cat /tmp/pending-locale-packages | xargs ${OPKG} -nodeps install
+ rm -f ${IMAGE_ROOTFS}${libdir}/opkg/lists/*
+
+ for i in ${IMAGE_ROOTFS}${libdir}/opkg/info/*.preinst; do
+ if [ -f $i ] && ! sh $i; then
+ opkg-cl ${IPKG_ARGS} flag unpacked `basename $i .preinst`
+ fi
+ done
+
+ for i in ${IMAGE_ROOTFS}${libdir}/opkg/info/*.postinst; do
+ if [ -f $i ] && ! sh $i configure; then
+ opkg-cl ${IPKG_ARGS} flag unpacked `basename $i .postinst`
+ fi
+ done
+
+fi
+}
+
# export the zap_root_password, create_etc_timestamp and remote_init_link
-EXPORT_FUNCTIONS zap_root_password create_etc_timestamp remove_init_link do_rootfs make_zimage_symlink_relative set_image_autologin rootfs_update_timestamp
+EXPORT_FUNCTIONS zap_root_password create_etc_timestamp remove_init_link do_rootfs make_zimage_symlink_relative set_image_autologin rootfs_update_timestamp install_linguas
addtask rootfs after do_compile before do_install
addtask deploy_to after do_rootfs