Wind River Support Network

HomeDefectsLIN7-4310
Fixed

LIN7-4310 : oe-core: wrong files ownership in packages

Created: Jul 16, 2015    Updated: Sep 8, 2018
Resolved Date: Nov 8, 2015
Found In Version: 7.0.0.5
Fix Version: 7.0.0.8
Severity: Standard
Applicable for: Wind River Linux 7
Component/s: Build & Config

Description

If in function do_install(), is "install" is invoked to install an executable file with different ownership then root:root then the ownership of this file is not reserved in the target.  For example with the following simple example:

do_install() {
   install -m 0744 -o daemon -g daemon hello ${D}${bindir}/hello
}

after untar rootfs tar ball into target we would expect "hello" to have user as "daemon" and group as "daemon" but "hello" will have "root" and "root" instead.   This causes applications which require strict ownership can not start.

Workaround

The fix is already in upstream 1a50cc5aeafff0d8ee6c4a41dd2770ecd31455f0 from https://github.com/openembedded/oe-core.git

Steps to Reproduce

* Config a simple project.
* Modify do_install() in file "<build folder>/layers/local/recipes-sample/hello/hello_1.0.bb" to become:

do_install() {
  install -d ${D}${bindir}
  install -m 0755 hello ${D}${bindir}
  install -m 0744 -o daemon -g daemon hello ${D}${bindir}/hello.1
}

* Build project to finish
* cd <build folder>/build/hello/
* rpm -qvpil deploy-rpms/core2_64/hello-1.0-r1.16.core2_64.rpm
...
-rwxr--r--    1 root    root                     4344 Jul 16 14:00 /usr/bin/hello.1

(we expect "hello.1" should have daemon:daemon ownership)
* untar the tarball into target (please pass --numeric-owner to tar command as well)
* ls /usr/bin/hello.1 doesn't show daemon:daemon ownership

Other Downloads


Live chat
Online