summaryrefslogtreecommitdiffstats
path: root/meta/classes/image.bbclass
diff options
context:
space:
mode:
authorRobert Yang <liezhi.yang@windriver.com>2011-12-28 17:16:11 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-01-11 10:36:22 +0000
commit9d1823b2a0193b3c20fa30f0a118b4ee80a20027 (patch)
tree9121080b49eabb7cb29db155de82f2e6a1e45445 /meta/classes/image.bbclass
parent489cde8eb0e19ef6fe8078148199eaf5b52631ae (diff)
downloadpoky-9d1823b2a0193b3c20fa30f0a118b4ee80a20027.tar.gz
Incremental rpm image generation
Incremental rpm image generation, the rootfs would be totally removed and re-created in the second generation by default, but with INC_RPM_IMAGE_GEN = "1", the rpm based rootfs would be kept, and will do update(remove/add some pkgs) on it. NOTE: This is not suggested when you want to create a productive rootfs For example: 1) Add the follow config option to a conf file: INC_RPM_IMAGE_GEN = "1" 2) bitbake core-image-sato modify a package bitbake core-image-sato The rootfs would not be totally removed and re-created in the second generation, it would be simply updated based on the "package". Implatation: 1) Figure out the pkg which need to be removed or re-installed, then use 'rpm -e to remove the old one. Use the rpm's BUILDTIME to determine which pkg has been rebuilt. 2) Figure out the pkg which is newly added, and use 'rpm -U' to install it. This only for the rpm based rootfs, the deb and ipk based rootfs would be done later. [YOCTO #1651] (From OE-Core rev: 575ba3c9e153a1d8ac228a99a03ca2df5fbca151) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/image.bbclass')
-rw-r--r--meta/classes/image.bbclass11
1 files changed, 9 insertions, 2 deletions
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 295b653c97..3034725ac2 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -134,15 +134,22 @@ do_rootfs[umask] = 022
134 134
135fakeroot do_rootfs () { 135fakeroot do_rootfs () {
136 #set -x 136 #set -x
137 rm -rf ${IMAGE_ROOTFS} 137 # When use the rpm incremental image generation, don't remove the rootfs
138 if [ "${INC_RPM_IMAGE_GEN}" != "1" -o "${IMAGE_PKGTYPE}" != "rpm" ]; then
139 rm -rf ${IMAGE_ROOTFS}
140 fi
138 rm -rf ${MULTILIB_TEMP_ROOTFS} 141 rm -rf ${MULTILIB_TEMP_ROOTFS}
139 mkdir -p ${IMAGE_ROOTFS} 142 mkdir -p ${IMAGE_ROOTFS}
140 mkdir -p ${DEPLOY_DIR_IMAGE} 143 mkdir -p ${DEPLOY_DIR_IMAGE}
141 144
142 cp ${COREBASE}/meta/files/deploydir_readme.txt ${DEPLOY_DIR_IMAGE}/README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt 145 cp ${COREBASE}/meta/files/deploydir_readme.txt ${DEPLOY_DIR_IMAGE}/README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt
143 146
144 if [ "${USE_DEVFS}" != "1" ]; then 147 # If "${IMAGE_ROOTFS}/dev" exists, then the device had been made by
148 # the previous build
149 if [ "${USE_DEVFS}" != "1" -a ! -r "${IMAGE_ROOTFS}/dev" ]; then
145 for devtable in ${@get_devtable_list(d)}; do 150 for devtable in ${@get_devtable_list(d)}; do
151 # Always return ture since there maybe already one when use the
152 # incremental image generation
146 makedevs -r ${IMAGE_ROOTFS} -D $devtable 153 makedevs -r ${IMAGE_ROOTFS} -D $devtable
147 done 154 done
148 fi 155 fi