Alteração de propriedade não permitida no BitBake

Alteração de propriedade não permitida no BitBake

Estou compilando um projeto Yocto com BitBake.

Uma receita do BitBake tenta alterar a permissão de alguns diretórios e arquivos usando chowno comando. O problema é que o comando falha por causa deoperação de mudança de propriedade não permitida.

O comando BitBake é iniciado pelo usuário luca, que também é um sudoers. Se eu digitar ls -lo que vejo na pasta problemática é:

-rw-r--r--  1 luca luca 1875 May 13 17:10 arm-thumb-mutex_db5.patch
-rw-r--r--  1 luca luca   33 May 13 17:10 configure.sstate
drwxr-xr-x 16 luca luca 4096 May 13 17:10 db-6.0.30
-rw-r--r--  1 luca luca  665 May 13 17:10 fix-parallel-build.patch
drwxr-xr-x  3 luca luca 4096 May 13 19:11 image
drwxr-xr-x  2 luca luca 4096 May 13 19:11 temp

Obviamente se eu digitar manualmente, por exemplo, sudo chowwn 777 imagefunciona, mas não consigo alterar o script BitBake que causa o erro.

O que há de errado com minhas permissões e usuário?

Responder1

No final fiz o chmod 777 de toda a pasta de fontes e tudo começou a funcionar. Provavelmente permissões em scripts ou arquivos executivos. Obrigado a todos pelo apoio.

Responder2

Eu estava recebendo erros semelhantes no bitbake. No meu caso, isso ocorreu devido à falha do pseudo-utilitário, mas o Yocto não mostrou claramente os erros e parou. Em vez disso, continuou até não poder mais funcionar chmod -R dircomo usuário normal. O utilitário 'Pseudo' é usado para interceptar chown, chmodchamadas e rastreá-las em um banco de dados sqlite. Eles agem como se estivessem alterando as permissões do arquivo RFS, mas na verdade não exigem root. No meu caso, se você procurou o erro no pacote que falhou:

build/tmp/work/aarch64-fsl-linux/gcc-runtime/linaro-4.9-r2015.03/temp> grep pseudo *
log.do_install:ERROR: ld.so: object 'libpseudo.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

log.do_install.17098:ERROR: ld.so: object 'libpseudo.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

Isso ocorreu porque alguém já havia definido recursos de segurança para atividades de desenvolvimento anteriores com:

setcap cap_net_admin,cap_net_raw+eip /bin/bash or to /usr/bin/python. To fix: setcap -r /bin/bash

Esta postagem difícil de encontrar me deu uma pista sobre isso:http://lists.openembedded.org/pipermail/openembedded-core/2012-February/056779.html

informação relacionada