A number of recipe steps may require a spawned terminal instance, e.g. patch resolution. In some cases, this is handled via the configuration variables TERMCMD and TERMCMDRUN. However, for other cases, in particular 'devshell' and 'menuconfig', it is now handled by the terminal class (oe_terminal). The choice of what terminal type (GNOME, XTERM, ...) is inconsistent between these two methods. One way specifies them directly, the other relies on the *undocumented* variable OE_TERMINAL. A worrisome case is 'bitbake virtual/kernel -c menuconfig'. This used to use the TERMCMD style and was easily controlled. It now uses terminal.bbclass and fails, at least in the default, because of the undocumented setup above. As is, I can no longer run this step on a separate machine connected via SSH tunnels (GNOME terminal and bitbake don't play well in this environment, as previously reported) This change was introduced in commit 04c66de8abfd820380fcfc2882b84650ac0220d5 I think things should only be done one way; either put it back or make it consistent and fully documented, please.
Can you try adding the couple of patches I've posted on the list in the last few hours (patch: Convert to use oe_terminal and bitbake.conf: Drop remaining TERMCMD pieces and document OE_TERMINAL usage instead) and see where things stand? The intention is just to have OE_TERMINAL controlling everything. menuconfig is working quite nicely for me so if there are problems with that I'd like to know about them.
Fixed in http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=426ad821065c50fc008a140e5b2334d2c97511c3