summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meta/classes/package_rpm.bbclass14
-rw-r--r--meta/classes/rootfs_deb.bbclass7
-rw-r--r--meta/classes/rootfs_ipk.bbclass7
3 files changed, 22 insertions, 6 deletions
diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
index 98aa98b03b..36bad09ea1 100644
--- a/meta/classes/package_rpm.bbclass
+++ b/meta/classes/package_rpm.bbclass
@@ -391,6 +391,10 @@ EOF
fi
# Construct install scriptlet wrapper
+ # Scripts need to be ordered when executed, this ensures numeric order
+ # If we ever run into needing more the 899 scripts, we'll have to
+ # change num to start with 1000.
+ #
cat << EOF > ${WORKDIR}/scriptlet_wrapper
#!/bin/bash
@@ -406,11 +410,13 @@ export NATIVE_ROOT=${STAGING_DIR_NATIVE}
if [ \$? -ne 0 ]; then
if [ \$4 -eq 1 ]; then
mkdir -p \$1/etc/rpm-postinsts
+ num=100
+ while [ -e \$1/etc/rpm-postinsts/\${num}-* ]; do num=\$((num + 1)); done
name=\`head -1 \$1/\$3 | cut -d' ' -f 2\`
- echo "#!\$2" > \$1/etc/rpm-postinsts/\${name}
- echo "# Arg: \$4" >> \$1/etc/rpm-postinsts/\${name}
- cat \$1/\$3 >> \$1/etc/rpm-postinsts/\${name}
- chmod +x \$1/etc/rpm-postinsts/\${name}
+ echo "#!\$2" > \$1/etc/rpm-postinsts/\${num}-\${name}
+ echo "# Arg: \$4" >> \$1/etc/rpm-postinsts/\${num}-\${name}
+ cat \$1/\$3 >> \$1/etc/rpm-postinsts/\${num}-\${name}
+ chmod +x \$1/etc/rpm-postinsts/\${num}-\${name}
else
echo "Error: pre/post remove scriptlet failed"
fi
diff --git a/meta/classes/rootfs_deb.bbclass b/meta/classes/rootfs_deb.bbclass
index 0161f7a718..b1c52f9dd6 100644
--- a/meta/classes/rootfs_deb.bbclass
+++ b/meta/classes/rootfs_deb.bbclass
@@ -107,9 +107,14 @@ delayed_postinsts () {
}
save_postinsts () {
+ # Scripts need to be ordered when executed, this ensures numeric order
+ # If we ever run into needing more the 899 scripts, we'll have to
+ # change num to start with 1000.
+ num=100
for p in $(delayed_postinsts); do
install -d ${IMAGE_ROOTFS}${sysconfdir}/deb-postinsts
- cp ${IMAGE_ROOTFS}/var/lib/dpkg/info/$p.postinst ${IMAGE_ROOTFS}${sysconfdir}/deb-postinsts/$p
+ cp ${IMAGE_ROOTFS}/var/lib/dpkg/info/$p.postinst ${IMAGE_ROOTFS}${sysconfdir}/deb-postinsts/$num-$p
+ num=`echo \$((num+1))`
done
}
diff --git a/meta/classes/rootfs_ipk.bbclass b/meta/classes/rootfs_ipk.bbclass
index a37ab14df7..b0805dc329 100644
--- a/meta/classes/rootfs_ipk.bbclass
+++ b/meta/classes/rootfs_ipk.bbclass
@@ -106,9 +106,14 @@ delayed_postinsts () {
}
save_postinsts () {
+ # Scripts need to be ordered when executed, this ensures numeric order
+ # If we ever run into needing more the 899 scripts, we'll have to
+ # change num to start with 1000.
+ num=100
for p in $(delayed_postinsts); do
install -d ${IMAGE_ROOTFS}${sysconfdir}/ipk-postinsts
- cp ${IMAGE_ROOTFS}${OPKGLIBDIR}/opkg/info/$p.postinst ${IMAGE_ROOTFS}${sysconfdir}/ipk-postinsts/$p
+ cp ${IMAGE_ROOTFS}${OPKGLIBDIR}/opkg/info/$p.postinst ${IMAGE_ROOTFS}${sysconfdir}/ipk-postinsts/$num-$p
+ num=`echo \$((num+1))`
done
}