From fd1517e2b51a170f2427122c6b95396db251d827 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 10 Aug 2022 14:35:29 +0100 Subject: classes: Update classes to match new bitbake class scope functionality Move classes to classes-global or classes-recipe as appropriate to take advantage of new bitbake functionality to check class scope/usage. (From OE-Core rev: f5c128008365e141082c129417eb72d2751e8045) Signed-off-by: Richard Purdie --- meta/classes/devshell.bbclass | 166 ------------------------------------------ 1 file changed, 166 deletions(-) delete mode 100644 meta/classes/devshell.bbclass (limited to 'meta/classes/devshell.bbclass') diff --git a/meta/classes/devshell.bbclass b/meta/classes/devshell.bbclass deleted file mode 100644 index 03af56b7a2..0000000000 --- a/meta/classes/devshell.bbclass +++ /dev/null @@ -1,166 +0,0 @@ -# -# Copyright OpenEmbedded Contributors -# -# SPDX-License-Identifier: MIT -# - -inherit terminal - -DEVSHELL = "${SHELL}" - -PATH:prepend:task-devshell = "${COREBASE}/scripts/git-intercept:" - -python do_devshell () { - if d.getVarFlag("do_devshell", "manualfakeroot"): - d.prependVar("DEVSHELL", "pseudo ") - fakeenv = d.getVar("FAKEROOTENV").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") - - oe_terminal(d.getVar('DEVSHELL'), 'OpenEmbedded Developer Shell', d) -} - -addtask devshell after do_patch do_prepare_recipe_sysroot - -# The directory that the terminal starts in -DEVSHELL_STARTDIR ?= "${S}" -do_devshell[dirs] = "${DEVSHELL_STARTDIR}" -do_devshell[nostamp] = "1" -do_devshell[network] = "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"): - # We need to signal our code that we want fakeroot however we - # can't manipulate the environment and variables here yet (see YOCTO #4795) - d.setVarFlag("do_devshell", "manualfakeroot", "1") - d.delVarFlag("do_devshell", "fakeroot") -} - -def pydevshell(d): - - import code - import select - import signal - import termios - - m, s = os.openpty() - sname = os.ttyname(s) - - def noechoicanon(fd): - old = termios.tcgetattr(fd) - old[3] = old[3] &~ termios.ECHO &~ termios.ICANON - # &~ termios.ISIG - termios.tcsetattr(fd, termios.TCSADRAIN, old) - - # No echo or buffering over the pty - noechoicanon(s) - - pid = os.fork() - if pid: - os.close(m) - oe_terminal("oepydevshell-internal.py %s %d" % (sname, pid), 'OpenEmbedded Developer PyShell', d) - os._exit(0) - else: - os.close(s) - - os.dup2(m, sys.stdin.fileno()) - os.dup2(m, sys.stdout.fileno()) - os.dup2(m, sys.stderr.fileno()) - - bb.utils.nonblockingfd(sys.stdout) - bb.utils.nonblockingfd(sys.stderr) - bb.utils.nonblockingfd(sys.stdin) - - _context = { - "os": os, - "bb": bb, - "time": time, - "d": d, - } - - ps1 = "pydevshell> " - ps2 = "... " - buf = [] - more = False - - i = code.InteractiveInterpreter(locals=_context) - print("OE PyShell (PN = %s)\n" % d.getVar("PN")) - - def prompt(more): - if more: - prompt = ps2 - else: - prompt = ps1 - sys.stdout.write(prompt) - sys.stdout.flush() - - # Restore Ctrl+C since bitbake masks this - def signal_handler(signal, frame): - raise KeyboardInterrupt - signal.signal(signal.SIGINT, signal_handler) - - child = None - - prompt(more) - while True: - try: - try: - (r, _, _) = select.select([sys.stdin], [], [], 1) - if not r: - continue - line = sys.stdin.readline().strip() - if not line: - prompt(more) - continue - except EOFError as e: - sys.stdout.write("\n") - sys.stdout.flush() - except (OSError, IOError) as e: - if e.errno == 11: - continue - if e.errno == 5: - return - raise - else: - if not child: - child = int(line) - continue - buf.append(line) - source = "\n".join(buf) - more = i.runsource(source, "") - if not more: - buf = [] - sys.stderr.flush() - prompt(more) - except KeyboardInterrupt: - i.write("\nKeyboardInterrupt\n") - buf = [] - more = False - prompt(more) - except SystemExit: - # Easiest way to ensure everything exits - os.kill(child, signal.SIGTERM) - break - -python do_pydevshell() { - import signal - - try: - pydevshell(d) - except SystemExit: - # Stop the SIGTERM above causing an error exit code - return - finally: - return -} -addtask pydevshell after do_patch - -do_pydevshell[nostamp] = "1" -do_pydevshell[network] = "1" -- cgit v1.2.3-54-g00ecf