Patchwork [2/2] prelink_git.bb: Only block the postinst script when no image-prelink (v2)

login
register
mail settings
Submitter Mark Hatle
Date June 29, 2011, 1:46 a.m.
Message ID <d0bbe06e703f6f9b7d0f38ffc372f3bb1425483a.1309311935.git.mark.hatle@windriver.com>
Download mbox | patch
Permalink /patch/6643/
State New, archived
Headers show

Comments

Mark Hatle - June 29, 2011, 1:46 a.m.
[V2 - fix a small typo in the comment]

If image-prelink is being used, the system will automatically prelink
the target image.  This avoids the need to run the postinst prelink
script at first boot.  However, if the user has not enabled image
prelinking -- then we do enable the script to run on first boot.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
---
 meta/recipes-devtools/prelink/prelink_git.bb |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)
Dexuan Cui - June 29, 2011, 2:39 p.m.
Mark Hatle wrote:
> [V2 - fix a small typo in the comment]
> 
> If image-prelink is being used, the system will automatically prelink
> the target image.  This avoids the need to run the postinst prelink
> script at first boot.  However, if the user has not enabled image
> prelinking -- then we do enable the script to run on first boot.
> 
>  # The cron script attempts to re-prelink the system daily -- on
> @@ -58,11 +58,13 @@ 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...
>  pkg_postinst_prelink() {
>  #!/bin/sh
> 
>  if [ "x$D" != "x" ]; then
> -  exit 1
> +  ${@base_contains('USER_CLASSES', 'image-prelink', 'exit 0', 'exit
>  1', d)} fi
> 
>  prelink -a

Even if without the patch, we still skip this on the host side -- previously we skipped with "exit 1", and with the patch now we skip with "exit 1" or "exit 0".
So IMHO looks the patch doesn't actually help? :-)

Thanks,
-- Dexuan
Phil Blundell - June 29, 2011, 2:42 p.m.
On Wed, 2011-06-29 at 22:39 +0800, Cui, Dexuan wrote:
> Even if without the patch, we still skip this on the host side -- previously we skipped with "exit 1", and with the patch now we skip with "exit 1" or "exit 0".
> So IMHO looks the patch doesn't actually help? :-)

If the script exits with 0 in offline mode then it won't get rerun at
first boot on the target.  If it exits with 1 then it will.

p.
Mark Hatle - June 29, 2011, 2:44 p.m.
On 6/29/11 9:42 AM, Phil Blundell wrote:
> On Wed, 2011-06-29 at 22:39 +0800, Cui, Dexuan wrote:
>> Even if without the patch, we still skip this on the host side -- previously we skipped with "exit 1", and with the patch now we skip with "exit 1" or "exit 0".
>> So IMHO looks the patch doesn't actually help? :-)
> 
> If the script exits with 0 in offline mode then it won't get rerun at
> first boot on the target.  If it exits with 1 then it will.

Yes.  Since we've already run the equivalent of the script in the image-prelink,
we can safely exit with a '0' telling the "image" preinst code that this was
successfully run and to ignore it at first boot.

--Mark

> p.
> 
> 
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Dexuan Cui - June 29, 2011, 2:47 p.m.
Mark Hatle wrote:
> On 6/29/11 9:42 AM, Phil Blundell wrote:
>> On Wed, 2011-06-29 at 22:39 +0800, Cui, Dexuan wrote:
>>> Even if without the patch, we still skip this on the host side --
>>> previously we skipped with "exit 1", and with the patch now we skip
>>> with "exit 1" or "exit 0". So IMHO looks the patch doesn't actually
>>> help? :-)  
>> 
>> If the script exits with 0 in offline mode then it won't get rerun at
>> first boot on the target.  If it exits with 1 then it will.
> 
> Yes.  Since we've already run the equivalent of the script in the
> image-prelink, we can safely exit with a '0' telling the "image"
> preinst code that this was successfully run and to ignore it at first
> boot. 
> 
Ok, got it!

Thanks very much for the explanation!

Thanks,
-- Dexuan

Patch

diff --git a/meta/recipes-devtools/prelink/prelink_git.bb b/meta/recipes-devtools/prelink/prelink_git.bb
index b57c145..c653d4d 100644
--- a/meta/recipes-devtools/prelink/prelink_git.bb
+++ b/meta/recipes-devtools/prelink/prelink_git.bb
@@ -10,7 +10,7 @@  LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
 SRCREV = "ac461e73b17253a4da25c5aafeac7193b553156c"
 PV = "1.0+git${SRCPV}"
-PR = "r3"
+PR = "r4"
 
 #
 # The cron script attempts to re-prelink the system daily -- on
@@ -58,11 +58,13 @@  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...
 pkg_postinst_prelink() {
 #!/bin/sh
 
 if [ "x$D" != "x" ]; then
-  exit 1
+  ${@base_contains('USER_CLASSES', 'image-prelink', 'exit 0', 'exit 1', d)}
 fi
 
 prelink -a