Re: pkg_postinst_ontarget not executed


Damien LEFEVRE
 

Thanks Alex,

When I do a factory reset, the system detects as a first boot and the script is executed.

> cat /var/log/postinstall.log
Configuring test-deployment.

One thing which puzzles me: the /etc/ipk-postinsts directory do not exist. Not in the image recipe folder, not in the image file which I mount to check the content before flashing and of course it's deleted at the end of run-postinsts 

rootfs.py:
    def _save_postinsts_common(self, dst_postinst_dir, src_postinst_dir):
        if bb.utils.contains("IMAGE_FEATURES", "package-management",
                         True, False, self.d):
            return
        num = 0
        for p in self._get_delayed_postinsts():
            bb.utils.mkdirhier(dst_postinst_dir)

            if os.path.exists(os.path.join(src_postinst_dir, p + ".postinst")):
                shutil.copy(os.path.join(src_postinst_dir, p + ".postinst"),
                            os.path.join(dst_postinst_dir, "%03d-%s" % (num, p)))

            num += 1


package-management is in my image features so I understand nothing get written.

So who temporarily creates that /etc/ipk-postinsts?

Thanks,
-Damien

On Fri, May 8, 2020 at 6:15 PM Alexander Kanavin <alex.kanavin@...> wrote:
On Fri, 8 May 2020 at 11:32, Damien LEFEVRE <lefevre.da@...> wrote:

If can find the postinst script in /var/lib/opkg/info/test-deployment.postinst and execute it.

Since test-deployment is a new package, I would have expected pkg_postinst_ontarget to be executed

How is the first boot detected on a poky image? Is there a way to detect if .postinst scripts haven't been executed?

The scripts to be executed  are written into /etc/rpm|deb|ipk-postinsts/ and executed by
meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts script (which is started on first boot as a service).
Then they get deleted.

Alex

Join yocto@lists.yoctoproject.org to automatically receive all group messages.