[OE-core] [PATCH v2 0/7] run-postinsts refactoring

2013-06-06 Thread Laurentiu Palcu
(cover letter only)

Changes in v2:
 * addressed an RPM issue that happened on AB. Interestingly, it happened only 
on
   certain distros. Our internal AB (running on Ubuntu server 12.04), didn't 
show
   any issues. So, what was the problem? We use a scriptlet wrapper to run the
   pre/post install scriptlets. What I missed in the previous patchset was that 
I
   didn't use the scriptlet wrapper when running the pre/post remove scriptlets
   and the context in which they ran was not correct. Hence, the update-rc.d 
used
   was the host's...
 * addresses Ross's request to move run-postinsts recipe out of dpkg directory,
   since it's generic now;

Paul, Mark would you please review the RPM changes please?

Thanks,
Laurentiu

Changes in v1:
Hi all,

My work at #4484 revealed that the package managers deb/ipk/rpm handle removal
of PM meta-data (when the PM is not deployed) and the delayed postinstalls
execution in their own way. Currently we have:
 * run-postinsts (for deb/ipk) and rpm-postinsts (for rpm) for running the 
delayed
   postinstalls on target when the PM is not part of the image;
 * opkg removes the meta-data and some uneeded packages whilst deb/rpm remove
   only the meta-data;
 * both opkg and deb have no way of running the delayed postinstalls on target,
   if package-management is not part of IMAGE_FEATURES, because the meta-data
   was deleted (and it would have been useless anyway since the PM is not 
installed);

That being said, this patchset tries to create a more unified solution for all
PM backends.

rpm-postinsts recipe is replaced by run-postinsts but I'll keep it in oe-core
for a while (a couple of weeks maybe), just in case the current solution does 
not
satisfy the RPM users (I doubt it though).

I did tests with core-image-minimal using sysvinit/systemd and with/without 
delayed
postinstalls. The results are as expected.

Thanks,
Laurentiu

The following changes since commit a62aed41f2d8f874f7ae24d0e5be5dbc66ea2199:

  lrzsz: check locale.h in configure (2013-06-04 15:55:46 +0100)

are available in the git repository at:

  git://git.yoctoproject.org/poky-contrib lpalcu/run_postinsts_refactor_v2
  
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=lpalcu/run_postinsts_refactor_v2

Laurentiu Palcu (7):
  rootfs_*.bbclass: add some helper functions
  image.bbclass: remove unneeded files from the image
  core-image-minimal: do not remove packaging files in the rootfs
postprocess
  run-postinsts: make it generic
  rootfs_rpm.bbclass: switch to using run-postinsts
  package_rpm.bbclass: handle pre/post remove scriptlets
  rpm: replace rpm-postinsts dependency with run-postinsts

 meta/classes/image.bbclass |   33 ++
 meta/classes/package_rpm.bbclass   |   16 ---
 meta/classes/rootfs_deb.bbclass|   23 +-
 meta/classes/rootfs_ipk.bbclass|   39 
 meta/classes/rootfs_rpm.bbclass|   29 ++--
 meta/recipes-core/images/core-image-minimal.bb |2 -
 .../dpkg/run-postinsts/run-postinsts   |   36 ---
 .../dpkg/run-postinsts/run-postinsts.awk   |   30 -
 meta/recipes-devtools/rpm/rpm_5.4.9.bb |2 +-
 .../run-postinsts/run-postinsts/run-postinsts  |   47 
 .../{dpkg = run-postinsts}/run-postinsts_1.0.bb   |7 ++-
 11 files changed, 159 insertions(+), 105 deletions(-)
 delete mode 100755 meta/recipes-devtools/dpkg/run-postinsts/run-postinsts
 delete mode 100644 meta/recipes-devtools/dpkg/run-postinsts/run-postinsts.awk
 create mode 100755 
meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts
 rename meta/recipes-devtools/{dpkg = run-postinsts}/run-postinsts_1.0.bb (68%)

-- 
1.7.9.5

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


Re: [OE-core] [PATCH v2 0/7] run-postinsts refactoring

2013-06-06 Thread Mark Hatle

Comments below

On 6/6/13 2:41 AM, Laurentiu Palcu wrote:

(cover letter only)

Changes in v2:
  * addressed an RPM issue that happened on AB. Interestingly, it happened only 
on
certain distros. Our internal AB (running on Ubuntu server 12.04), didn't 
show
any issues. So, what was the problem? We use a scriptlet wrapper to run the
pre/post install scriptlets. What I missed in the previous patchset was 
that I
didn't use the scriptlet wrapper when running the pre/post remove scriptlets
and the context in which they ran was not correct. Hence, the update-rc.d 
used
was the host's...
  * addresses Ross's request to move run-postinsts recipe out of dpkg directory,
since it's generic now;

Paul, Mark would you please review the RPM changes please?

Thanks,
Laurentiu

Changes in v1:
Hi all,

My work at #4484 revealed that the package managers deb/ipk/rpm handle removal
of PM meta-data (when the PM is not deployed) and the delayed postinstalls
execution in their own way. Currently we have:
  * run-postinsts (for deb/ipk) and rpm-postinsts (for rpm) for running the 
delayed
postinstalls on target when the PM is not part of the image;
  * opkg removes the meta-data and some uneeded packages whilst deb/rpm remove
only the meta-data;
  * both opkg and deb have no way of running the delayed postinstalls on target,
if package-management is not part of IMAGE_FEATURES, because the meta-data
was deleted (and it would have been useless anyway since the PM is not 
installed);

That being said, this patchset tries to create a more unified solution for all
PM backends.

rpm-postinsts recipe is replaced by run-postinsts but I'll keep it in oe-core
for a while (a couple of weeks maybe), just in case the current solution does 
not
satisfy the RPM users (I doubt it though).

I did tests with core-image-minimal using sysvinit/systemd and with/without 
delayed
postinstalls. The results are as expected.

Thanks,
Laurentiu

The following changes since commit a62aed41f2d8f874f7ae24d0e5be5dbc66ea2199:

   lrzsz: check locale.h in configure (2013-06-04 15:55:46 +0100)

are available in the git repository at:

   git://git.yoctoproject.org/poky-contrib lpalcu/run_postinsts_refactor_v2
   
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=lpalcu/run_postinsts_refactor_v2

Laurentiu Palcu (7):
   rootfs_*.bbclass: add some helper functions
   image.bbclass: remove unneeded files from the image
   core-image-minimal: do not remove packaging files in the rootfs
 postprocess
   run-postinsts: make it generic
   rootfs_rpm.bbclass: switch to using run-postinsts
   package_rpm.bbclass: handle pre/post remove scriptlets
   rpm: replace rpm-postinsts dependency with run-postinsts

  meta/classes/image.bbclass |   33 ++
  meta/classes/package_rpm.bbclass   |   16 ---
  meta/classes/rootfs_deb.bbclass|   23 +-
  meta/classes/rootfs_ipk.bbclass|   39 
  meta/classes/rootfs_rpm.bbclass|   29 ++--
  meta/recipes-core/images/core-image-minimal.bb |2 -
  .../dpkg/run-postinsts/run-postinsts   |   36 ---
  .../dpkg/run-postinsts/run-postinsts.awk   |   30 -
  meta/recipes-devtools/rpm/rpm_5.4.9.bb |2 +-
  .../run-postinsts/run-postinsts/run-postinsts  |   47 
  .../{dpkg = run-postinsts}/run-postinsts_1.0.bb   |7 ++-
  11 files changed, 159 insertions(+), 105 deletions(-)
  delete mode 100755 meta/recipes-devtools/dpkg/run-postinsts/run-postinsts
  delete mode 100644 meta/recipes-devtools/dpkg/run-postinsts/run-postinsts.awk
  create mode 100755 
meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts
  rename meta/recipes-devtools/{dpkg = run-postinsts}/run-postinsts_1.0.bb 
(68%)




+rootfs_remove_unneeded () {
+   if ${@base_contains(IMAGE_FEATURES, package-management, false, 
true, d)}; then
+   if [ -z $(delayed_postinsts) ]; then
+   # All packages were successfully configured.
+   # update-rc.d, base-passwd, run-postinsts are no 
further use, remove them now
+   remove_run_postinsts=false
+   if [ -e 
${IMAGE_ROOTFS}${sysconfdir}/init.d/run-postinsts ]; then
+   remove_run_postinsts=true
+   fi
+   rootfs_remove_packages update-rc.d base-passwd 
${ROOTFS_BOOTSTRAP_INSTALL}
+
+   # Need to remove rc.d files for run-postinsts by hand 
since opkg won't
+   # call postrm scripts in offline root mode.
+   if $remove_run_postinsts; then
+   update-rc.d -f -r ${IMAGE_ROOTFS} run-postinsts 
remove
+   fi


The above runs unconditionally for all package types.  Will this cause an 

Re: [OE-core] [PATCH v2 0/7] run-postinsts refactoring

2013-06-06 Thread Laurentiu Palcu


On 06/06/2013 07:43 PM, Mark Hatle wrote:
 Comments below
 
 On 6/6/13 2:41 AM, Laurentiu Palcu wrote:
 (cover letter only)

 Changes in v2:
   * addressed an RPM issue that happened on AB. Interestingly, it happened 
 only on
 certain distros. Our internal AB (running on Ubuntu server 12.04), 
 didn't show
 any issues. So, what was the problem? We use a scriptlet wrapper to run 
 the
 pre/post install scriptlets. What I missed in the previous patchset was 
 that I
 didn't use the scriptlet wrapper when running the pre/post remove 
 scriptlets
 and the context in which they ran was not correct. Hence, the 
 update-rc.d used
 was the host's...
   * addresses Ross's request to move run-postinsts recipe out of dpkg 
 directory,
 since it's generic now;

 Paul, Mark would you please review the RPM changes please?

 Thanks,
 Laurentiu

 Changes in v1:
 Hi all,

 My work at #4484 revealed that the package managers deb/ipk/rpm handle 
 removal
 of PM meta-data (when the PM is not deployed) and the delayed postinstalls
 execution in their own way. Currently we have:
   * run-postinsts (for deb/ipk) and rpm-postinsts (for rpm) for running the 
 delayed
 postinstalls on target when the PM is not part of the image;
   * opkg removes the meta-data and some uneeded packages whilst deb/rpm 
 remove
 only the meta-data;
   * both opkg and deb have no way of running the delayed postinstalls on 
 target,
 if package-management is not part of IMAGE_FEATURES, because the 
 meta-data
 was deleted (and it would have been useless anyway since the PM is not 
 installed);

 That being said, this patchset tries to create a more unified solution for 
 all
 PM backends.

 rpm-postinsts recipe is replaced by run-postinsts but I'll keep it in oe-core
 for a while (a couple of weeks maybe), just in case the current solution 
 does not
 satisfy the RPM users (I doubt it though).

 I did tests with core-image-minimal using sysvinit/systemd and with/without 
 delayed
 postinstalls. The results are as expected.

 Thanks,
 Laurentiu

 The following changes since commit a62aed41f2d8f874f7ae24d0e5be5dbc66ea2199:

lrzsz: check locale.h in configure (2013-06-04 15:55:46 +0100)

 are available in the git repository at:

git://git.yoctoproject.org/poky-contrib lpalcu/run_postinsts_refactor_v2

 http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=lpalcu/run_postinsts_refactor_v2

 Laurentiu Palcu (7):
rootfs_*.bbclass: add some helper functions
image.bbclass: remove unneeded files from the image
core-image-minimal: do not remove packaging files in the rootfs
  postprocess
run-postinsts: make it generic
rootfs_rpm.bbclass: switch to using run-postinsts
package_rpm.bbclass: handle pre/post remove scriptlets
rpm: replace rpm-postinsts dependency with run-postinsts

   meta/classes/image.bbclass |   33 ++
   meta/classes/package_rpm.bbclass   |   16 ---
   meta/classes/rootfs_deb.bbclass|   23 +-
   meta/classes/rootfs_ipk.bbclass|   39 
   meta/classes/rootfs_rpm.bbclass|   29 ++--
   meta/recipes-core/images/core-image-minimal.bb |2 -
   .../dpkg/run-postinsts/run-postinsts   |   36 ---
   .../dpkg/run-postinsts/run-postinsts.awk   |   30 -
   meta/recipes-devtools/rpm/rpm_5.4.9.bb |2 +-
   .../run-postinsts/run-postinsts/run-postinsts  |   47 
 
   .../{dpkg = run-postinsts}/run-postinsts_1.0.bb   |7 ++-
   11 files changed, 159 insertions(+), 105 deletions(-)
   delete mode 100755 meta/recipes-devtools/dpkg/run-postinsts/run-postinsts
   delete mode 100644 
 meta/recipes-devtools/dpkg/run-postinsts/run-postinsts.awk
   create mode 100755 
 meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts
   rename meta/recipes-devtools/{dpkg = run-postinsts}/run-postinsts_1.0.bb 
 (68%)

 
 +rootfs_remove_unneeded () {
 +if ${@base_contains(IMAGE_FEATURES, package-management, false, 
 true, d)}; then
 +if [ -z $(delayed_postinsts) ]; then
 +# All packages were successfully configured.
 +# update-rc.d, base-passwd, run-postinsts are no 
 further use, remove them now
 +remove_run_postinsts=false
 +if [ -e 
 ${IMAGE_ROOTFS}${sysconfdir}/init.d/run-postinsts ]; then
 +remove_run_postinsts=true
 +fi
 +rootfs_remove_packages update-rc.d base-passwd 
 ${ROOTFS_BOOTSTRAP_INSTALL}
 +
 +# Need to remove rc.d files for run-postinsts by hand 
 since opkg won't
 +# call postrm scripts in offline root mode.
 +if $remove_run_postinsts; then
 +update-rc.d -f -r ${IMAGE_ROOTFS} 

Re: [OE-core] [PATCH v2 0/7] run-postinsts refactoring

2013-06-06 Thread Mark Hatle

On 6/6/13 1:09 PM, Laurentiu Palcu wrote:



On 06/06/2013 07:43 PM, Mark Hatle wrote:

Comments below

On 6/6/13 2:41 AM, Laurentiu Palcu wrote:

(cover letter only)

Changes in v2:
   * addressed an RPM issue that happened on AB. Interestingly, it happened 
only on
 certain distros. Our internal AB (running on Ubuntu server 12.04), didn't 
show
 any issues. So, what was the problem? We use a scriptlet wrapper to run the
 pre/post install scriptlets. What I missed in the previous patchset was 
that I
 didn't use the scriptlet wrapper when running the pre/post remove 
scriptlets
 and the context in which they ran was not correct. Hence, the update-rc.d 
used
 was the host's...
   * addresses Ross's request to move run-postinsts recipe out of dpkg 
directory,
 since it's generic now;

Paul, Mark would you please review the RPM changes please?

Thanks,
Laurentiu

Changes in v1:
Hi all,

My work at #4484 revealed that the package managers deb/ipk/rpm handle removal
of PM meta-data (when the PM is not deployed) and the delayed postinstalls
execution in their own way. Currently we have:
   * run-postinsts (for deb/ipk) and rpm-postinsts (for rpm) for running the 
delayed
 postinstalls on target when the PM is not part of the image;
   * opkg removes the meta-data and some uneeded packages whilst deb/rpm remove
 only the meta-data;
   * both opkg and deb have no way of running the delayed postinstalls on 
target,
 if package-management is not part of IMAGE_FEATURES, because the meta-data
 was deleted (and it would have been useless anyway since the PM is not 
installed);

That being said, this patchset tries to create a more unified solution for all
PM backends.

rpm-postinsts recipe is replaced by run-postinsts but I'll keep it in oe-core
for a while (a couple of weeks maybe), just in case the current solution does 
not
satisfy the RPM users (I doubt it though).

I did tests with core-image-minimal using sysvinit/systemd and with/without 
delayed
postinstalls. The results are as expected.

Thanks,
Laurentiu

The following changes since commit a62aed41f2d8f874f7ae24d0e5be5dbc66ea2199:

lrzsz: check locale.h in configure (2013-06-04 15:55:46 +0100)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib lpalcu/run_postinsts_refactor_v2

http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=lpalcu/run_postinsts_refactor_v2

Laurentiu Palcu (7):
rootfs_*.bbclass: add some helper functions
image.bbclass: remove unneeded files from the image
core-image-minimal: do not remove packaging files in the rootfs
  postprocess
run-postinsts: make it generic
rootfs_rpm.bbclass: switch to using run-postinsts
package_rpm.bbclass: handle pre/post remove scriptlets
rpm: replace rpm-postinsts dependency with run-postinsts

   meta/classes/image.bbclass |   33 ++
   meta/classes/package_rpm.bbclass   |   16 ---
   meta/classes/rootfs_deb.bbclass|   23 +-
   meta/classes/rootfs_ipk.bbclass|   39 
   meta/classes/rootfs_rpm.bbclass|   29 ++--
   meta/recipes-core/images/core-image-minimal.bb |2 -
   .../dpkg/run-postinsts/run-postinsts   |   36 ---
   .../dpkg/run-postinsts/run-postinsts.awk   |   30 -
   meta/recipes-devtools/rpm/rpm_5.4.9.bb |2 +-
   .../run-postinsts/run-postinsts/run-postinsts  |   47 

   .../{dpkg = run-postinsts}/run-postinsts_1.0.bb   |7 ++-
   11 files changed, 159 insertions(+), 105 deletions(-)
   delete mode 100755 meta/recipes-devtools/dpkg/run-postinsts/run-postinsts
   delete mode 100644 meta/recipes-devtools/dpkg/run-postinsts/run-postinsts.awk
   create mode 100755 
meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts
   rename meta/recipes-devtools/{dpkg = run-postinsts}/run-postinsts_1.0.bb 
(68%)




+rootfs_remove_unneeded () {
+   if ${@base_contains(IMAGE_FEATURES, package-management, false, 
true, d)}; then
+   if [ -z $(delayed_postinsts) ]; then
+   # All packages were successfully configured.
+   # update-rc.d, base-passwd, run-postinsts are no 
further use, remove them now
+   remove_run_postinsts=false
+   if [ -e 
${IMAGE_ROOTFS}${sysconfdir}/init.d/run-postinsts ]; then
+   remove_run_postinsts=true
+   fi
+   rootfs_remove_packages update-rc.d base-passwd 
${ROOTFS_BOOTSTRAP_INSTALL}
+
+   # Need to remove rc.d files for run-postinsts by hand 
since opkg won't
+   # call postrm scripts in offline root mode.
+   if $remove_run_postinsts; then
+   update-rc.d -f -r