prelink: Change the behavior to avoid checking USER_CLASSES

The behavior before this change was to check USER_CLASSES and adjust
the install script to return either exit 0 (don't do anything) or
exit 1 (run on first boot).  This enabled a user to include the prelink
package without enablign the image-prelink bbclass and get a first boot
prelink.

Checking USER_CLASSES is not desired, as an image should be able to simply
inherit the image-prelink and get the same type of behavior.  Modifying
the recipe based on the inclusion of a class is a bad idea as it makes
this style work more difficult.  So we move to a more defined strategy
based on exist uses.  (That we know of...)

If we ae doing a cross install, we want to avoid prelinking.
Prelinking during a cross install should be handled by the image-prelink
bbclass.  If the user desires this to run on the target at first boot
they will need to create a custom boot script.

[YOCTO #11169]

(From OE-Core rev: e31c9d32072b9cf62c0e9e55b4d421849d3d489b)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Mark Hatle
2017-08-18 14:12:33 -05:00
committed by Richard Purdie
parent f6857d9832
commit 05a6710467

View File

@@ -150,13 +150,15 @@ do_install_append () {
install -m 0644 ${WORKDIR}/macros.prelink ${D}${sysconfdir}/rpm/macros.prelink
}
# If we're using image-prelink, we want to skip this on the host side
# but still do it if the package is installed on the target...
# If we ae doing a cross install, we want to avoid prelinking.
# Prelinking during a cross install should be handled by the image-prelink
# bbclass. If the user desires this to run on the target at first boot
# they will need to create a custom boot script.
pkg_postinst_prelink() {
#!/bin/sh
if [ "x$D" != "x" ]; then
${@bb.utils.contains('USER_CLASSES', 'image-prelink', 'exit 0', 'exit 1', d)}
exit 0
fi
prelink -a