All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Patrick <kpa_info@yahoo.fr>
Cc: poky@yoctoproject.org
Subject: Re: Running script after installation (postinst)
Date: Wed, 13 Jun 2012 09:08:00 +0100	[thread overview]
Message-ID: <1339574880.8065.20.camel@ted> (raw)
In-Reply-To: <4FD83EC0.7050605@yahoo.fr>

On Wed, 2012-06-13 at 09:18 +0200, Patrick wrote:
> On 06/12/2012 04:47 PM, Richard Purdie wrote:
> > On Tue, 2012-06-12 at 16:35 +0200, Patrick wrote:
> >> Dear all,
> >>
> >> In one of our recipes we need to execute a small script after the
> >> installation of the package. Following yocto dev manual point 4.3.6 we
> >> have added a pkg_postinst function.
> >>
> >> This doesn’t work properly as the script is executed at first start-up
> >> and not after installation. Below are an example of this recipe.
> >>
> >> Do you have any idea why this script is started as first boot time and
> >> not after installation ?
> >>
> >> Thanks in advance for any help !
> >
> > We try and run postinstalls "offline" at image creation time. If they
> > fail, they run at first boot.
> >
> > You can tell which context you're in by the contents of the $D variable
> > (note, $D, not ${D}). For example, you could therefore do:
> >
> >
> > pkg_postinst_task-system-tweaks () {
> >     #!/bin/sh -e
> >
> >     #Mount tmprecovery at startup
> >     mkdir -p $D/tmprecovery
> >     mkdir -p $D/data
> >     echo "/dev/mtdblock6        /tmprecovery        yaffs2      0 0">>  $D/etc/fstab
> >     echo "/dev/mtdblock7        /data               yaffs2   noauto  0 0">>  $D/etc/fstab
> >

> The problems when using $D is that the script is executed against the 
> files of the package not against the whole rootfs. For example in the 
> dummy recipes above we change the file $D/etc/fstab that is not in the 
> package of the recipes.

If you reference $D as part of a postinst script, it will run against
the files of the rootfs, not just the package. There are some problems
ensuring dependencies are present when this happens though, some
backends like rpm don't like ensuring that dependencies are present.

> We have also tried to add (R)DEPENDS to the package that contains fstab 
> with no change.
> 
> Any idea why ?

You would need to add the dependency in and then it sounds like you're
probably using rpm and it doesn't want to honour the dependency for some
reason. You could add a rootfs post process command to add in what you
need which would guarantee all the files are present first...

Cheers,

Richard



  reply	other threads:[~2012-06-13  8:08 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-12 14:35 Running script after installation (postinst) Patrick
2012-06-12 14:47 ` Richard Purdie
2012-06-13  7:18   ` Patrick
2012-06-13  8:08     ` Richard Purdie [this message]
     [not found]       ` <4FD8A5F5.4080001@yahoo.fr>
2012-06-13 15:22         ` Patrick
2012-06-14 13:30           ` Patrick
2012-06-14 14:24             ` Patrick
2012-06-14 14:40             ` Richard Purdie
2012-06-12 14:49 ` Tomas Frydrych

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1339574880.8065.20.camel@ted \
    --to=richard.purdie@linuxfoundation.org \
    --cc=kpa_info@yahoo.fr \
    --cc=poky@yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.