mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00

Currently its hard to run a devshell complete with fakeroot context. This patch allows the fakeroot flag on the task to do this, as with any other task. Since we may need to start X terminal applications, we need to only start the fakeroot session on the final command, hence the hoops this code jumps through. As always with fakeroot, you can break out and run a command without the fake permissions with syntax like "PSEUDO_UNLOAD=1 <command>" [YOCTO #3374] (From OE-Core rev: 0a2662a48eaf0487db043c348e2834bb9cdd0466) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
28 lines
833 B
Plaintext
28 lines
833 B
Plaintext
inherit terminal
|
|
|
|
DEVSHELL = "${SHELL}"
|
|
|
|
python do_devshell () {
|
|
oe_terminal(d.getVar('DEVSHELL', True), 'OpenEmbedded Developer Shell', d)
|
|
}
|
|
|
|
addtask devshell after do_patch
|
|
|
|
do_devshell[dirs] = "${S}"
|
|
do_devshell[nostamp] = "1"
|
|
|
|
# devshell and fakeroot/pseudo need careful handling since only the final
|
|
# command should run under fakeroot emulation, any X connection should
|
|
# be done as the normal user. We therfore carefully construct the envionment
|
|
# manually
|
|
python () {
|
|
if d.getVarFlag("do_devshell", "fakeroot"):
|
|
d.prependVar("DEVSHELL", "pseudo ")
|
|
fakeenv = d.getVar("FAKEROOTENV", True).split()
|
|
for f in fakeenv:
|
|
k = f.split("=")
|
|
d.setVar(k[0], k[1])
|
|
d.appendVar("OE_TERMINAL_EXPORTS", " " + k[0])
|
|
d.delVarFlag("do_devshell", "fakeroot")
|
|
}
|