I fully agree with this patchset. The old way of defining seems a bit hacky. 
Also even if you follow the documented way to create postinstallation scripts 
[1] you still get noisy warnings which seem like a problem.

Thanks for the effort!

[1] 
http://www.yoctoproject.org/docs/2.4/mega-manual/mega-manual.html#new-recipe-post-installation-scripts
 

-----Original Message-----
From: openembedded-core-boun...@lists.openembedded.org 
[mailto:openembedded-core-boun...@lists.openembedded.org] On Behalf Of 
Alexander Kanavin
Sent: Monday, January 29, 2018 1:01 PM
To: openembedded-core@lists.openembedded.org
Subject: [OE-core] [PATCH 0/7] Fix first boot deferral and postinst error 
reporting

This patchset is aiming to fix long-standing problems with package 
post-installation
scriptlets:

1) The way to defer them to first boot is to issue 'exit 1'. On the other hand, 
'exit 1' is also the way to indicate an error in the script. The patches 
decouple these two things.

2) Scriptlets should be executed using '-e', otherwise failing commands in the 
middle of the scriptlet will not be reported as such.

3) The patchset also adds a convenient shortcut for deferring scriptlets to 
first boot execution:

pkg_postinst_ontarget_PACKAGENAME() {
      # Actions to carry out on the device go here
      ....
}

The following changes since commit 0c537554fc2cf58a9cbfeaf39ed918c607483dce:

  testimage: enable gi test suite (2018-01-29 10:31:58 +0000)

are available in the Git repository at:

  git://git.yoctoproject.org/poky-contrib akanavin/dnf-rpm4-postinst-fix
  
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=akanavin/dnf-rpm4-postinst-fix

Alexander Kanavin (7):
  postinst_intercepts: add a delay_to_first_boot hook
  meta/lib/oe/rootfs.py: separate first boot deferral logic into a
    separate function
  meta/lib/oe/rootfs.py: do not execute defer_to_first_boot when
    processing postinst_intercept hooks
  package.bbclass: add support for pkg_postinst_ontarget()
  meta/lib/oe/package_manager.py: deprecate 'exit 1' as a way to defer
    to first boot
  package_rpm.bbclass: run pre/post installation scriptlets using sh -e
  rootfs.py: change the notice about deferring scripts to first boot
    from warning to a note

 .../recipes-test/postinst/postinst_1.0.bb          | 14 ++------
 meta/classes/package.bbclass                       | 20 +++++++++++
 meta/classes/package_rpm.bbclass                   |  8 ++---
 meta/lib/oe/package_manager.py                     |  3 ++
 meta/lib/oe/rootfs.py                              | 39 +++++++++++++---------
 scripts/postinst-intercepts/delay_to_first_boot    |  2 ++
 6 files changed, 54 insertions(+), 32 deletions(-)  create mode 100644 
scripts/postinst-intercepts/delay_to_first_boot

--
2.15.1

--
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to