mirror of
https://git.yoctoproject.org/poky
synced 2026-04-21 12:32:15 +02:00
package_rpm.bbclass: Fix incremental rpm image generation
Fix the incremental rpm image generation, it didn't work since the code
has been changed.
The btmanifest should have a ".manifest" suffix, so that it can be moved
to ${T} by rootfs_rpm.bbclass:
mv ${IMAGE_ROOTFS}/install/*.manifest ${T}/
Note: The locale pkgs would always be re-installed.
[YOCTO #2690]
(From OE-Core rev: 5149630746626c6d416f26ab9dd1c7213fcd8c50)
(From OE-Core rev: 1f5113ae91ed639cf06fcbb9431b460d7a06bbbc)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
970d279774
commit
75997b4565
@@ -168,28 +168,24 @@ rpm_common_comand () {
|
||||
rpm_update_pkg () {
|
||||
|
||||
manifest=$1
|
||||
btmanifest=$manifest.bt
|
||||
btmanifest=$manifest.bt.manifest
|
||||
pre_btmanifest=${T}/${btmanifest##/*/}
|
||||
local target_rootfs="${INSTALL_ROOTFS_RPM}"
|
||||
|
||||
# Save the rpm's build time for incremental image generation, and the file
|
||||
# would be moved to ${T}
|
||||
rm -f $btmanifest
|
||||
for i in `cat $manifest`; do
|
||||
# Use "rpm" rather than "${RPM}" here, since we don't need the
|
||||
# '--dbpath' option
|
||||
echo "$i `rpm -qp --qf '%{BUILDTIME}\n' $i`" >> $btmanifest
|
||||
done
|
||||
echo "$i `rpm -qp --qf '%{BUILDTIME}\n' $i`"
|
||||
done | sort -u > $btmanifest
|
||||
|
||||
# Only install the different pkgs if incremental image generation is set
|
||||
if [ "${INC_RPM_IMAGE_GEN}" = "1" -a -f ${T}/total_solution_bt.manifest -a \
|
||||
if [ "${INC_RPM_IMAGE_GEN}" = "1" -a -f "$pre_btmanifest" -a \
|
||||
"${IMAGE_PKGTYPE}" = "rpm" ]; then
|
||||
cur_list="$btmanifest"
|
||||
pre_list="${T}/total_solution_bt.manifest"
|
||||
sort -u $cur_list -o $cur_list
|
||||
sort -u $pre_list -o $pre_list
|
||||
comm -1 -3 $cur_list $pre_list | sed 's#.*/\(.*\)\.rpm .*#\1#' > \
|
||||
comm -1 -3 $btmanifest $pre_btmanifest | sed 's#.*/\(.*\)\.rpm .*#\1#' > \
|
||||
${target_rootfs}/install/remove.manifest
|
||||
comm -2 -3 $cur_list $pre_list | awk '{print $1}' > \
|
||||
comm -2 -3 $btmanifest $pre_btmanifest | awk '{print $1}' > \
|
||||
${target_rootfs}/install/incremental.manifest
|
||||
|
||||
# Attempt to remove unwanted pkgs, the scripts(pre, post, etc.) has not
|
||||
@@ -472,7 +468,7 @@ EOF
|
||||
# probably a feature. The only way to convince rpm to actually run the preinstall scripts
|
||||
# for base-passwd and shadow first before installing packages that depend on these packages
|
||||
# is to do two image installs, installing one set of packages, then the other.
|
||||
if [ "${INC_RPM_IMAGE_GEN}" = "1" -a -f ${T}/total_solution_bt.manifest ]; then
|
||||
if [ "${INC_RPM_IMAGE_GEN}" = "1" -a -f "$pre_btmanifest" ]; then
|
||||
echo "Skipping pre install due to exisitng image"
|
||||
else
|
||||
echo "# Initial Install manifest" > ${target_rootfs}/install/initial_install.manifest
|
||||
|
||||
Reference in New Issue
Block a user