summaryrefslogtreecommitdiff
path: root/meta/classes/rootfs_rpm.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:33:23 +0000
commit575ba3c9e153a1d8ac228a99a03ca2df5fbca151 (patch)
tree69ba69c964056889e0866f686de801293bb4fcf6 /meta/classes/rootfs_rpm.bbclass
parent9b944ae2f0e4dbac5a8f1f235f60730e56b26516 (diff)
downloadopenembedded-core-575ba3c9e153a1d8ac228a99a03ca2df5fbca151.tar.gz
openembedded-core-575ba3c9e153a1d8ac228a99a03ca2df5fbca151.tar.bz2
openembedded-core-575ba3c9e153a1d8ac228a99a03ca2df5fbca151.tar.xz
openembedded-core-575ba3c9e153a1d8ac228a99a03ca2df5fbca151.zip
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] Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Diffstat (limited to 'meta/classes/rootfs_rpm.bbclass')
-rw-r--r--meta/classes/rootfs_rpm.bbclass6
1 files changed, 5 insertions, 1 deletions
diff --git a/meta/classes/rootfs_rpm.bbclass b/meta/classes/rootfs_rpm.bbclass
index 999b8a6c8..48133f080 100644
--- a/meta/classes/rootfs_rpm.bbclass
+++ b/meta/classes/rootfs_rpm.bbclass
@@ -201,11 +201,15 @@ rootfs_check_package_exists() {
}
rootfs_install_packages() {
+ # The pkg to be installed here is not controlled by the
+ # package_install_internal_rpm, so it may have already been
+ # installed(e.g, installed in the first time when generate the
+ # rootfs), use '--replacepkgs' to always install them
for pkg in $@; do
${RPM} --root ${IMAGE_ROOTFS} -D "_dbpath ${rpmlibdir}" \
-D "__dbi_txn create nofsync private" \
--noscripts --notriggers --noparentdirs --nolinktos \
- -Uhv $pkg || true
+ --replacepkgs -Uhv $pkg || true
done
}