summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
Diffstat (limited to 'meta')
-rw-r--r--meta/classes/package_rpm.bbclass59
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)"