[yocto] Build/install question

Gary Thomas gary at mlbassoc.com
Fri Jul 26 13:27:45 PDT 2013


On 2013-07-26 10:15, Gary Thomas wrote:
> One final tidy-up for my Amanda recipe.  In do_install() I have:
>      install -d -m 0777 -o amandabackup -g amandabackup ${D}/amanda
>      install -d -m 0777 -o amandabackup -g amandabackup ${D}/amanda/vtapes/slot{1,2,3,4}
>      install -d -m 0777 -o amandabackup -g amandabackup ${D}/amanda/holding
>      install -d -m 0777 -o amandabackup -g amandabackup ${D}/amanda/state/{curinfo,log,index}
>
> The problem I have is that /amanda and /amanda/holding end up with
> the correct file owner/group, but the others (anything that has
> multiple names) end up being owned by 'root'. When I install my package,
> I get this on the target:
>     # ls -lR /amanda/
>     /amanda/:
>     total 3
>     drwxr-xr-x 2 amandabackup amandabackup 1024 Jul 26  2013 holding
>     drwxr-xr-x 5 root         root         1024 Jul 26 15:44 state
>     drwxr-xr-x 6 root         root         1024 Jul 26 15:44 vtapes
>
>     /amanda/holding:
>     total 0
>
>     /amanda/state:
>     total 3
>     drwxr-xr-x 2 amandabackup amandabackup 1024 Jul 26  2013 curinfo
>     drwxr-xr-x 2 amandabackup amandabackup 1024 Jul 26  2013 index
>     drwxr-xr-x 2 amandabackup amandabackup 1024 Jul 26  2013 log
>
>     /amanda/state/curinfo:
>     total 0
>
>     /amanda/state/index:
>     total 0
>
>     /amanda/state/log:
>     total 0
>
>     /amanda/vtapes:
>     total 4
>     drwxr-xr-x 2 amandabackup amandabackup 1024 Jul 26  2013 slot1
>     drwxr-xr-x 2 amandabackup amandabackup 1024 Jul 26  2013 slot2
>     drwxr-xr-x 2 amandabackup amandabackup 1024 Jul 26  2013 slot3
>     drwxr-xr-x 2 amandabackup amandabackup 1024 Jul 26  2013 slot4
>
>     /amanda/vtapes/slot1:
>     total 0
>
>     /amanda/vtapes/slot2:
>     total 0
>
>     /amanda/vtapes/slot3:
>     total 0
>
>     /amanda/vtapes/slot4:
>     total 0
>
> Is this to be expected, or is it a bug?  If so, where do I look
> and/or report it?
>

A little experiment shows that the problem is only with the directories
that are implicitly created, e.g. /amanda/state/

Indeed, this seems to be how install works and bitbake is using the
native host version:

   root at zeus:/tmp# install -d -m 0755 -o gthomas -g gthomas /tmp/this/is/a/long/dir/tree
   root at zeus:/tmp# ls -lR /tmp/this
   /tmp/this:
   total 4
   drwxr-xr-x 3 root root 4096 Jul 26 14:24 is

   /tmp/this/is:
   total 4
   drwxr-xr-x 3 root root 4096 Jul 26 14:24 a

   /tmp/this/is/a:
   total 4
   drwxr-xr-x 3 root root 4096 Jul 26 14:24 long

   /tmp/this/is/a/long:
   total 4
   drwxr-xr-x 3 root root 4096 Jul 26 14:24 dir

   /tmp/this/is/a/long/dir:
   total 4
   drwxr-xr-x 2 gthomas gthomas 4096 Jul 26 14:24 tree

   /tmp/this/is/a/long/dir/tree:
   total 0

All of the intermediate directories are owned by 'root', not
the designated owner.

Looks like I'll just work around this one...

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------



More information about the yocto mailing list