mirror of
https://git.yoctoproject.org/poky
synced 2026-02-14 20:53:03 +01:00
package_rpm.bbclass: Fix an issue where complementary installs fail
Also ensure that we always cleanup the temporary install manifest files, some of them will cause problems if they exist in multiple install attempts. Finally verify that the lists remain uniquely sorted otherwise the complementary install may install the same files numerous times, triggering a failure. (From OE-Core rev: 4f2a290cbcc6c21afbb2a6e6148efdef4d135b41) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
99dabeb2e9
commit
fdabda6345
@@ -324,11 +324,15 @@ package_install_internal_rpm () {
|
||||
rm -f $m
|
||||
fi
|
||||
done
|
||||
sort -u ${target_rootfs}/install/original_solution.manifest -o ${target_rootfs}/install/original_solution.manifest.new
|
||||
mv ${target_rootfs}/install/original_solution.manifest.new ${target_rootfs}/install/original_solution.manifest
|
||||
fi
|
||||
|
||||
# Setup manifest of packages to install...
|
||||
mkdir -p ${target_rootfs}/install
|
||||
rm -f ${target_rootfs}/install/install.manifest
|
||||
rm -f ${target_rootfs}/install/install_multilib.manifest
|
||||
rm -f ${target_rootfs}/install/install_attemptonly.manifest
|
||||
|
||||
# Uclibc builds don't provide this stuff...
|
||||
if [ x${TARGET_OS} = "xlinux" ] || [ x${TARGET_OS} = "xlinux-gnueabi" ] ; then
|
||||
@@ -428,7 +432,7 @@ package_install_internal_rpm () {
|
||||
fi
|
||||
|
||||
# Now that we have a solution, pull out a list of what to install...
|
||||
echo "Manifest: ${target_rootfs}/install/install.manifest"
|
||||
echo "Manifest: ${target_rootfs}/install/install_solution.manifest"
|
||||
${RPM} -D "_dbpath ${target_rootfs}/install" -qa --qf "%{packageorigin}\n" \
|
||||
--root "${target_rootfs}/install" \
|
||||
-D "__dbi_txn create nofsync private" \
|
||||
@@ -459,8 +463,8 @@ package_install_internal_rpm () {
|
||||
|
||||
fi
|
||||
|
||||
cat ${target_rootfs}/install/install_solution.manifest > ${target_rootfs}/install/total_solution.manifest
|
||||
cat ${target_rootfs}/install/install_multilib_solution.manifest >> ${target_rootfs}/install/total_solution.manifest
|
||||
cat ${target_rootfs}/install/install_solution.manifest \
|
||||
${target_rootfs}/install/install_multilib_solution.manifest | sort -u > ${target_rootfs}/install/total_solution.manifest
|
||||
|
||||
# Construct install scriptlet wrapper
|
||||
cat << EOF > ${WORKDIR}/scriptlet_wrapper
|
||||
@@ -521,8 +525,8 @@ EOF
|
||||
if [ "${INSTALL_COMPLEMENTARY_RPM}" = "1" ] ; then
|
||||
# Only install packages not already installed (dependency calculation will
|
||||
# almost certainly have added some that have been)
|
||||
sort ${target_rootfs}/install/original_solution.manifest > ${target_rootfs}/install/original_solution_sorted.manifest
|
||||
sort ${target_rootfs}/install/total_solution.manifest > ${target_rootfs}/install/total_solution_sorted.manifest
|
||||
sort -u ${target_rootfs}/install/original_solution.manifest > ${target_rootfs}/install/original_solution_sorted.manifest
|
||||
sort -u ${target_rootfs}/install/total_solution.manifest > ${target_rootfs}/install/total_solution_sorted.manifest
|
||||
comm -2 -3 ${target_rootfs}/install/total_solution_sorted.manifest \
|
||||
${target_rootfs}/install/original_solution_sorted.manifest > \
|
||||
${target_rootfs}/install/diff.manifest
|
||||
|
||||
Reference in New Issue
Block a user