diff options
Diffstat (limited to 'meta/classes/package_rpm.bbclass')
-rw-r--r-- | meta/classes/package_rpm.bbclass | 14 |
1 files changed, 10 insertions, 4 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 | |||
391 | fi | 391 | fi |
392 | 392 | ||
393 | # Construct install scriptlet wrapper | 393 | # Construct install scriptlet wrapper |
394 | # Scripts need to be ordered when executed, this ensures numeric order | ||
395 | # If we ever run into needing more the 899 scripts, we'll have to | ||
396 | # change num to start with 1000. | ||
397 | # | ||
394 | cat << EOF > ${WORKDIR}/scriptlet_wrapper | 398 | cat << EOF > ${WORKDIR}/scriptlet_wrapper |
395 | #!/bin/bash | 399 | #!/bin/bash |
396 | 400 | ||
@@ -406,11 +410,13 @@ export NATIVE_ROOT=${STAGING_DIR_NATIVE} | |||
406 | if [ \$? -ne 0 ]; then | 410 | if [ \$? -ne 0 ]; then |
407 | if [ \$4 -eq 1 ]; then | 411 | if [ \$4 -eq 1 ]; then |
408 | mkdir -p \$1/etc/rpm-postinsts | 412 | mkdir -p \$1/etc/rpm-postinsts |
413 | num=100 | ||
414 | while [ -e \$1/etc/rpm-postinsts/\${num}-* ]; do num=\$((num + 1)); done | ||
409 | name=\`head -1 \$1/\$3 | cut -d' ' -f 2\` | 415 | name=\`head -1 \$1/\$3 | cut -d' ' -f 2\` |
410 | echo "#!\$2" > \$1/etc/rpm-postinsts/\${name} | 416 | echo "#!\$2" > \$1/etc/rpm-postinsts/\${num}-\${name} |
411 | echo "# Arg: \$4" >> \$1/etc/rpm-postinsts/\${name} | 417 | echo "# Arg: \$4" >> \$1/etc/rpm-postinsts/\${num}-\${name} |
412 | cat \$1/\$3 >> \$1/etc/rpm-postinsts/\${name} | 418 | cat \$1/\$3 >> \$1/etc/rpm-postinsts/\${num}-\${name} |
413 | chmod +x \$1/etc/rpm-postinsts/\${name} | 419 | chmod +x \$1/etc/rpm-postinsts/\${num}-\${name} |
414 | else | 420 | else |
415 | echo "Error: pre/post remove scriptlet failed" | 421 | echo "Error: pre/post remove scriptlet failed" |
416 | fi | 422 | fi |