On 3/31/15 12:20 PM, Mario Domenech Goulart wrote: > Hi Ross, > > On Tue, 31 Mar 2015 14:50:06 +0100 "Burton, Ross" <ross.bur...@intel.com> > wrote: > >> On 27 March 2015 at 17:31, Mario Domenech Goulart <ma...@ossystems.com.br> >> wrote: >> >> Note that, although I run "chown -R foo:foo ${D}${libdir}/foo" in >> the recipe, ./usr/lib/foo/ in the package is owned by root. >> However, its content has the right ownership. >> >> Looks like a bug in pseudo to me, can you file a bug for that? > > Sure. Filed #7554.
I'd suggest you look at meta/classes/package.bbclass "fixup_perms" function. The ${D}${libdir} (and above) are "corrected" to be 'root:root' by this function. I don't know why 'foo' would be, but if it's a standard defined variable -- or if 'directory walking' is enabled it could end up doing this as well. The control file for this is in meta/files/fs-perms.txt (unless otherwise defined by a distribution or other configuration file.) Format of the file is: # The format of this file # #<path> <mode> <uid> <gid> <walk> <fmode> <fuid> <fgid> # # or # #<path> link <target> # # <path>: directory path # <mode>: mode for directory # <uid>: uid for directory # <gid>: gid for directory # <walk>: recursively walk the directory? true or false # <fmode>: if walking, new mode for files # <fuid>: if walking, new uid for files # <fgid>: if walking, new gid for files # <target>: turn the directory into a symlink point to target The default is: base_prefix 0755 root root false - - - prefix 0755 root root false - - - exec_prefix 0755 root root false - - - base_bindir 0755 root root false - - - base_sbindir 0755 root root false - - - base_libdir 0755 root root false - - - datadir 0755 root root false - - - sysconfdir 0755 root root false - - - servicedir 0755 root root false - - - sharedstatedir 0755 root root false - - - localstatedir 0755 root root false - - - infodir 0755 root root false - - - mandir 0755 root root false - - - docdir 0755 root root false - - - bindir 0755 root root false - - - sbindir 0755 root root false - - - libexecdir 0755 root root false - - - libdir 0755 root root false - - - includedir 0755 root root false - - - oldincludedir 0755 root root false - - - The easiest way to debug all of this is to edit meta/classes/package.bbclass, find the following lines: # Debug -- list out in-memory table #for dir in fs_perms_table: # bb.note("Fixup Perms: %s: %s" % (dir, str(fs_perms_table[dir]))) remove the '#' from the 'for' and following lines, then inspect the table from the build logs. Similarly, you can trace the actual fixups, by searching for def fix_perms(path, mode, uid, gid, dir):, and removing the comment from the two bb.note entries. This should give you an idea if this code is replacing your value with it's own. (I give this a VERY low probability that it's a bug in pseudo.) --Mark > Best wishes. > Mario > -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core