diff options
| -rw-r--r-- | meta/classes/package_rpm.bbclass | 59 |
1 files changed, 34 insertions, 25 deletions
diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass index b84c0441b4..d5406c21a8 100644 --- a/meta/classes/package_rpm.bbclass +++ b/meta/classes/package_rpm.bbclass | |||
| @@ -182,6 +182,7 @@ rpm_update_pkg () { | |||
| 182 | # been run by now, so don't have to run them(preun, postun, etc.) when | 182 | # been run by now, so don't have to run them(preun, postun, etc.) when |
| 183 | # erase the pkg | 183 | # erase the pkg |
| 184 | if [ -s ${target_rootfs}/install/remove.manifest ]; then | 184 | if [ -s ${target_rootfs}/install/remove.manifest ]; then |
| 185 | echo "# Remove manifest padding...." >> ${target_rootfs}/install/remove.manifest | ||
| 185 | rpm_common_comand --noscripts --nodeps \ | 186 | rpm_common_comand --noscripts --nodeps \ |
| 186 | -e `cat ${target_rootfs}/install/remove.manifest` | 187 | -e `cat ${target_rootfs}/install/remove.manifest` |
| 187 | fi | 188 | fi |
| @@ -249,7 +250,7 @@ package_install_internal_rpm () { | |||
| 249 | 250 | ||
| 250 | # Setup manifest of packages to install... | 251 | # Setup manifest of packages to install... |
| 251 | mkdir -p ${target_rootfs}/install | 252 | mkdir -p ${target_rootfs}/install |
| 252 | echo "# Install manifest" > ${target_rootfs}/install/install.manifest | 253 | rm -f ${target_rootfs}/install/install.manifest |
| 253 | 254 | ||
| 254 | # Uclibc builds don't provide this stuff... | 255 | # Uclibc builds don't provide this stuff... |
| 255 | if [ x${TARGET_OS} = "xlinux" ] || [ x${TARGET_OS} = "xlinux-gnueabi" ] ; then | 256 | if [ x${TARGET_OS} = "xlinux" ] || [ x${TARGET_OS} = "xlinux-gnueabi" ] ; then |
| @@ -309,12 +310,15 @@ package_install_internal_rpm () { | |||
| 309 | 310 | ||
| 310 | # Generate an install solution by doing a --justdb install, then recreate it with | 311 | # Generate an install solution by doing a --justdb install, then recreate it with |
| 311 | # an actual package install! | 312 | # an actual package install! |
| 312 | ${RPM} --predefine "_rpmds_sysinfo_path ${target_rootfs}/etc/rpm/sysinfo" \ | 313 | if [ -s ${target_rootfs}/install/install.manifest ]; then |
| 313 | --predefine "_rpmrc_platform_path ${target_rootfs}/etc/rpm/platform" \ | 314 | echo "# Install manifest padding" >> ${target_rootfs}/install/install.manifest |
| 314 | -D "_dbpath ${target_rootfs}/install" -D "`cat ${confbase}-base_archs.macro`" \ | 315 | ${RPM} --predefine "_rpmds_sysinfo_path ${target_rootfs}/etc/rpm/sysinfo" \ |
| 315 | -D "__dbi_txn create nofsync" \ | 316 | --predefine "_rpmrc_platform_path ${target_rootfs}/etc/rpm/platform" \ |
| 316 | -U --justdb --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \ | 317 | -D "_dbpath ${target_rootfs}/install" -D "`cat ${confbase}-base_archs.macro`" \ |
| 317 | ${target_rootfs}/install/install.manifest | 318 | -D "__dbi_txn create nofsync" \ |
| 319 | -U --justdb --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \ | ||
| 320 | ${target_rootfs}/install/install.manifest | ||
| 321 | fi | ||
| 318 | 322 | ||
| 319 | if [ ! -z "${package_attemptonly}" ]; then | 323 | if [ ! -z "${package_attemptonly}" ]; then |
| 320 | echo "Adding attempt only packages..." | 324 | echo "Adding attempt only packages..." |
| @@ -407,8 +411,9 @@ package_install_internal_rpm () { | |||
| 407 | 411 | ||
| 408 | touch ${target_rootfs}/install/install_multilib_solution.manifest | 412 | touch ${target_rootfs}/install/install_multilib_solution.manifest |
| 409 | 413 | ||
| 410 | if [ -e "${target_rootfs}/install/install_multilib.manifest" ]; then | 414 | if [ -s "${target_rootfs}/install/install_multilib.manifest" ]; then |
| 411 | # multilib package installation | 415 | # multilib package installation |
| 416 | echo "# Install multilib manifest padding" >> ${target_rootfs}/install/install_multilib.manifest | ||
| 412 | 417 | ||
| 413 | # Generate an install solution by doing a --justdb install, then recreate it with | 418 | # Generate an install solution by doing a --justdb install, then recreate it with |
| 414 | # an actual package install! | 419 | # an actual package install! |
| @@ -493,33 +498,37 @@ EOF | |||
| 493 | if [ "${INC_RPM_IMAGE_GEN}" = "1" -a -f "$pre_btmanifest" ]; then | 498 | if [ "${INC_RPM_IMAGE_GEN}" = "1" -a -f "$pre_btmanifest" ]; then |
| 494 | echo "Skipping pre install due to exisitng image" | 499 | echo "Skipping pre install due to exisitng image" |
| 495 | else | 500 | else |
| 496 | echo "# Initial Install manifest" > ${target_rootfs}/install/initial_install.manifest | 501 | rm -f ${target_rootfs}/install/initial_install.manifest |
| 497 | echo "Installing base dependencies first (base-passwd, base-files and shadow) since rpm is special" | 502 | echo "Installing base dependencies first (base-passwd, base-files and shadow) since rpm is special" |
| 498 | grep /base-passwd-[0-9] ${target_rootfs}/install/total_solution.manifest >> ${target_rootfs}/install/initial_install.manifest || true | 503 | grep /base-passwd-[0-9] ${target_rootfs}/install/total_solution.manifest >> ${target_rootfs}/install/initial_install.manifest || true |
| 499 | grep /base-files-[0-9] ${target_rootfs}/install/total_solution.manifest >> ${target_rootfs}/install/initial_install.manifest || true | 504 | grep /base-files-[0-9] ${target_rootfs}/install/total_solution.manifest >> ${target_rootfs}/install/initial_install.manifest || true |
| 500 | grep /shadow-[0-9] ${target_rootfs}/install/total_solution.manifest >> ${target_rootfs}/install/initial_install.manifest || true | 505 | grep /shadow-[0-9] ${target_rootfs}/install/total_solution.manifest >> ${target_rootfs}/install/initial_install.manifest || true |
| 501 | 506 | ||
| 502 | # Generate an install solution by doing a --justdb install, then recreate it with | 507 | if [ -s ${target_rootfs}/install/initial_install.manifest ]; then |
| 503 | # an actual package install! | 508 | echo "# Initial Install manifest padding..." >> ${target_rootfs}/install/initial_install.manifest |
| 504 | mkdir -p ${target_rootfs}/initial | ||
| 505 | 509 | ||
| 506 | ${RPM} --predefine "_rpmds_sysinfo_path ${target_rootfs}/etc/rpm/sysinfo" \ | 510 | # Generate an install solution by doing a --justdb install, then recreate it with |
| 507 | --predefine "_rpmrc_platform_path ${target_rootfs}/etc/rpm/platform" \ | 511 | # an actual package install! |
| 508 | -D "_dbpath ${target_rootfs}/initial" -D "`cat ${confbase}.macro`" \ | 512 | mkdir -p ${target_rootfs}/initial |
| 509 | -D "__dbi_txn create nofsync" \ | ||
| 510 | -U --justdb --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \ | ||
| 511 | ${target_rootfs}/install/initial_install.manifest | ||
| 512 | 513 | ||
| 513 | ${RPM} -D "_dbpath ${target_rootfs}/initial" -qa --qf "%{packageorigin}\n" \ | 514 | ${RPM} --predefine "_rpmds_sysinfo_path ${target_rootfs}/etc/rpm/sysinfo" \ |
| 514 | -D "__dbi_txn create nofsync private" \ | 515 | --predefine "_rpmrc_platform_path ${target_rootfs}/etc/rpm/platform" \ |
| 515 | > ${target_rootfs}/install/initial_solution.manifest | 516 | -D "_dbpath ${target_rootfs}/initial" -D "`cat ${confbase}.macro`" \ |
| 517 | -D "__dbi_txn create nofsync" \ | ||
| 518 | -U --justdb --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \ | ||
| 519 | ${target_rootfs}/install/initial_install.manifest | ||
| 520 | |||
| 521 | ${RPM} -D "_dbpath ${target_rootfs}/initial" -qa --qf "%{packageorigin}\n" \ | ||
| 522 | -D "__dbi_txn create nofsync private" \ | ||
| 523 | > ${target_rootfs}/install/initial_solution.manifest | ||
| 516 | 524 | ||
| 517 | rpm_update_pkg ${target_rootfs}/install/initial_solution.manifest | 525 | rpm_update_pkg ${target_rootfs}/install/initial_solution.manifest |
| 518 | 526 | ||
| 519 | grep -Fv -f ${target_rootfs}/install/initial_solution.manifest ${target_rootfs}/install/total_solution.manifest > ${target_rootfs}/install/total_solution.manifest.new | 527 | grep -Fv -f ${target_rootfs}/install/initial_solution.manifest ${target_rootfs}/install/total_solution.manifest > ${target_rootfs}/install/total_solution.manifest.new |
| 520 | mv ${target_rootfs}/install/total_solution.manifest.new ${target_rootfs}/install/total_solution.manifest | 528 | mv ${target_rootfs}/install/total_solution.manifest.new ${target_rootfs}/install/total_solution.manifest |
| 521 | 529 | ||
| 522 | rm -rf ${target_rootfs}/initial | 530 | rm -rf ${target_rootfs}/initial |
| 531 | fi | ||
| 523 | fi | 532 | fi |
| 524 | 533 | ||
| 525 | echo "Installing main solution manifest (${target_rootfs}/install/total_solution.manifest)" | 534 | echo "Installing main solution manifest (${target_rootfs}/install/total_solution.manifest)" |
