summaryrefslogtreecommitdiffstats
path: root/meta/classes/package_rpm.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes/package_rpm.bbclass')
-rw-r--r--meta/classes/package_rpm.bbclass33
1 files changed, 32 insertions, 1 deletions
diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
index 2c5545c11d..2ace0537ac 100644
--- a/meta/classes/package_rpm.bbclass
+++ b/meta/classes/package_rpm.bbclass
@@ -382,13 +382,39 @@ package_install_internal_rpm () {
382 cat ${target_rootfs}/install/install_solution.manifest > ${target_rootfs}/install/total_solution.manifest 382 cat ${target_rootfs}/install/install_solution.manifest > ${target_rootfs}/install/total_solution.manifest
383 cat ${target_rootfs}/install/install_multilib_solution.manifest >> ${target_rootfs}/install/total_solution.manifest 383 cat ${target_rootfs}/install/install_multilib_solution.manifest >> ${target_rootfs}/install/total_solution.manifest
384 384
385 # Construct install scriptlet wrapper
386 cat << EOF > ${WORKDIR}/scriptlet_wrapper
387#!/bin/bash
388
389export PATH="${PATH}"
390export D="${target_rootfs}"
391export OFFLINE_ROOT="\$D"
392export IPKG_OFFLINE_ROOT="\$D"
393export OPKG_OFFLINE_ROOT="\$D"
394
395\$2 \$1/\$3 \$4
396if [ \$? -ne 0 ]; then
397 mkdir -p \$1/etc/rpm-postinsts
398 num=100
399 while [ -e \$1/etc/rpm-postinsts/\${num} ]; do num=\$((num + 1)); done
400 echo "#!\$2" > \$1/etc/rpm-postinsts/\${num}
401 echo "# Arg: \$4" >> \$1/etc/rpm-postinsts/\${num}
402 cat \$1/\$3 >> \$1/etc/rpm-postinsts/\${num}
403 chmod +x \$1/etc/rpm-postinsts/\${num}
404fi
405EOF
406
407 chmod 0755 ${WORKDIR}/scriptlet_wrapper
408
385 # Attempt install 409 # Attempt install
386 ${RPM} --root ${target_rootfs} \ 410 ${RPM} --root ${target_rootfs} \
387 --predefine "_rpmds_sysinfo_path ${target_rootfs}/etc/rpm/sysinfo" \ 411 --predefine "_rpmds_sysinfo_path ${target_rootfs}/etc/rpm/sysinfo" \
388 --predefine "_rpmrc_platform_path ${target_rootfs}/etc/rpm/platform" \ 412 --predefine "_rpmrc_platform_path ${target_rootfs}/etc/rpm/platform" \
413 -D "_var ${localstatedir}" \
389 -D "_dbpath ${rpmlibdir}" \ 414 -D "_dbpath ${rpmlibdir}" \
390 --noscripts --notriggers --noparentdirs --nolinktos --replacepkgs \ 415 --noparentdirs --nolinktos --replacepkgs \
391 -D "__dbi_txn create nofsync private" \ 416 -D "__dbi_txn create nofsync private" \
417 -D "_cross_scriptlet_wrapper ${WORKDIR}/scriptlet_wrapper" \
392 -Uhv ${target_rootfs}/install/total_solution.manifest 418 -Uhv ${target_rootfs}/install/total_solution.manifest
393} 419}
394 420
@@ -685,6 +711,7 @@ python write_specfile () {
685 elif script == 'postrm': 711 elif script == 'postrm':
686 spec_scriptlets_bottom.append('%%postun -n %s' % splitname) 712 spec_scriptlets_bottom.append('%%postun -n %s' % splitname)
687 scriptvar = wrap_uninstall(scriptvar) 713 scriptvar = wrap_uninstall(scriptvar)
714 spec_scriptlets_bottom.append('# %s - %s' % (splitname, script))
688 spec_scriptlets_bottom.append(scriptvar) 715 spec_scriptlets_bottom.append(scriptvar)
689 spec_scriptlets_bottom.append('') 716 spec_scriptlets_bottom.append('')
690 717
@@ -762,19 +789,23 @@ python write_specfile () {
762 789
763 if srcpreinst: 790 if srcpreinst:
764 spec_scriptlets_top.append('%pre') 791 spec_scriptlets_top.append('%pre')
792 spec_scriptlets_top.append('# %s - preinst' % srcname)
765 spec_scriptlets_top.append(srcpreinst) 793 spec_scriptlets_top.append(srcpreinst)
766 spec_scriptlets_top.append('') 794 spec_scriptlets_top.append('')
767 if srcpostinst: 795 if srcpostinst:
768 spec_scriptlets_top.append('%post') 796 spec_scriptlets_top.append('%post')
797 spec_scriptlets_top.append('# %s - postinst' % srcname)
769 spec_scriptlets_top.append(srcpostinst) 798 spec_scriptlets_top.append(srcpostinst)
770 spec_scriptlets_top.append('') 799 spec_scriptlets_top.append('')
771 if srcprerm: 800 if srcprerm:
772 spec_scriptlets_top.append('%preun') 801 spec_scriptlets_top.append('%preun')
802 spec_scriptlets_top.append('# %s - prerm' % srcname)
773 scriptvar = wrap_uninstall(srcprerm) 803 scriptvar = wrap_uninstall(srcprerm)
774 spec_scriptlets_top.append(scriptvar) 804 spec_scriptlets_top.append(scriptvar)
775 spec_scriptlets_top.append('') 805 spec_scriptlets_top.append('')
776 if srcpostrm: 806 if srcpostrm:
777 spec_scriptlets_top.append('%postun') 807 spec_scriptlets_top.append('%postun')
808 spec_scriptlets_top.append('# %s - postrm' % srcname)
778 scriptvar = wrap_uninstall(srcpostrm) 809 scriptvar = wrap_uninstall(srcpostrm)
779 spec_scriptlets_top.append(scriptvar) 810 spec_scriptlets_top.append(scriptvar)
780 spec_scriptlets_top.append('') 811 spec_scriptlets_top.append('')