From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7016230395466219520 X-Received: by 2002:a2e:8041:: with SMTP id p1mr26180967ljg.158.1635251300520; Tue, 26 Oct 2021 05:28:20 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a19:c74d:: with SMTP id x74ls173589lff.3.gmail; Tue, 26 Oct 2021 05:28:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwwhxDQ+14n9PFkU7AYt3z1DxARlD+Ur6Ag6UoY557uLUCRQDrlNr2Et8/jSGKkqMwjqGL9 X-Received: by 2002:a05:6512:3092:: with SMTP id z18mr562951lfd.396.1635251299508; Tue, 26 Oct 2021 05:28:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635251299; cv=none; d=google.com; s=arc-20160816; b=eiIOZnqsz/ypE5OGRFvriTVjWei6FdfS6axD8CBpmuXrPkRy/FVhnPuJDEbPzUWRY5 dkgt1NpJvhJJ0WEtBobKBwAyTGhCwAyosIS6CvhId5bJgWQflSjlVSsn/H+HXvxijkHM swgMD3XDb5CuEBQ68TssZJ3RALp8Fb+A+U9e8+Mt1w+ozqu7OErCK7r8zd3wdEgKLvdU Z02tsXP41jD130yCr/8s0O78NR80CDYKa/EZoRSt2x7WmHDxm2czv16tMBrNFcdFP7ul o1fUqq136OX25F/TIQCMxxVZPjGZDoHjUQEZX3fQo9hlG5/GoAxOdRNnLZFpxU+OoMxQ dsSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=ZuLOdxa5z6roIXiyVHQbttKzpAHX19KxRDbLZfyueLw=; b=1E7onImKXRBtNrNnUpvu50MwhvA52DlI14c+s6Cho1vPJA0Qf0AwN/8C1370+Yquwy /SQJvRlrUUJtFCgChZefELq+UzCG6JdosxSyz77YN8YkXzzi/OMdK1NpZRqVTw4C/1aP 9LhXPdm85U4MoNFW/Ue5LAzet36IjdkpQhvqwPax4T8q0ofUpB6ONqzS5UWg/jHWkojV Tdc78MugFGwoZs00G3/VkG56vKW8aZR9NDLOuvARcf8OS6UfHY2V35dm4th7f836hUi8 V59r4Z+LKMWgjAzg+xL1wSgXwjm5Yf2Mn0AfPSp/UAVKF2VgMzgmEncbir+vIFBQ+7GE AOUA== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of adriaan.schmidt@siemens.com designates 192.35.17.28 as permitted sender) smtp.mailfrom=adriaan.schmidt@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from goliath.siemens.de (goliath.siemens.de. [192.35.17.28]) by gmr-mx.google.com with ESMTPS id f20si1017883ljn.4.2021.10.26.05.28.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Oct 2021 05:28:19 -0700 (PDT) Received-SPF: pass (google.com: domain of adriaan.schmidt@siemens.com designates 192.35.17.28 as permitted sender) client-ip=192.35.17.28; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of adriaan.schmidt@siemens.com designates 192.35.17.28 as permitted sender) smtp.mailfrom=adriaan.schmidt@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from mail1.sbs.de (mail1.sbs.de [192.129.41.35]) by goliath.siemens.de (8.15.2/8.15.2) with ESMTPS id 19QCSIrA014390 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 26 Oct 2021 14:28:18 +0200 Received: from random.ppmd.siemens.net (random.ppmd.siemens.net [139.25.68.25]) by mail1.sbs.de (8.15.2/8.15.2) with ESMTP id 19QCSIPJ013081; Tue, 26 Oct 2021 14:28:18 +0200 From: Adriaan Schmidt To: isar-users@googlegroups.com Cc: Adriaan Schmidt Subject: [PATCH v4 01/10] oe imports in central location Date: Tue, 26 Oct 2021 14:28:02 +0200 Message-Id: <20211026122811.2654125-2-adriaan.schmidt@siemens.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211026122811.2654125-1-adriaan.schmidt@siemens.com> References: <20211026122811.2654125-1-adriaan.schmidt@siemens.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUID: vAQLZnYua0cg Code taken from OE. Allows to import OE modules without first setting python paths manually. The reason is that we'd like to take sstate code unmodified from OE, and here it's expected that imports of oe and bb modules "just works". Signed-off-by: Adriaan Schmidt --- meta/classes/base.bbclass | 28 ++++++++++++++++++++++++++++ meta/classes/dpkg-base.bbclass | 5 ----- meta/classes/patch.bbclass | 5 ----- 3 files changed, 28 insertions(+), 10 deletions(-) diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 72d4cc0..13134ff 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -21,6 +21,34 @@ THISDIR = "${@os.path.dirname(d.getVar('FILE', True))}" FILESPATH = "${@base_set_filespath(["${FILE_DIRNAME}/${PF}", "${FILE_DIRNAME}/${P}", "${FILE_DIRNAME}/${PN}", "${FILE_DIRNAME}/files", "${FILE_DIRNAME}"], d)}" +OE_IMPORTS += "os sys time oe.path oe.patch" +OE_IMPORTS[type] = "list" + +def oe_import(d): + import sys + + bbpath = d.getVar("BBPATH").split(":") + sys.path[0:0] = [os.path.join(dir, "lib") for dir in bbpath] + + def inject(name, value): + """Make a python object accessible from the metadata""" + if hasattr(bb.utils, "_context"): + bb.utils._context[name] = value + else: + __builtins__[name] = value + + import oe.data + for toimport in oe.data.typed_value("OE_IMPORTS", d): + try: + imported = __import__(toimport) + inject(toimport.split(".", 1)[0], imported) + except AttributeError as e: + bb.error("Error importing OE modules: %s" % str(e)) + return "" + +# We need the oe module name space early (before INHERITs get added) +OE_IMPORTED := "${@oe_import(d)}" + def get_deb_host_arch(): import subprocess host_arch = subprocess.check_output( diff --git a/meta/classes/dpkg-base.bbclass b/meta/classes/dpkg-base.bbclass index 83500da..8a39a6d 100644 --- a/meta/classes/dpkg-base.bbclass +++ b/meta/classes/dpkg-base.bbclass @@ -248,11 +248,6 @@ do_deploy_deb[lockfiles] = "${REPO_ISAR_DIR}/isar.lock" do_deploy_deb[dirs] = "${S}" python do_devshell() { - import sys - - oe_lib_path = os.path.join(d.getVar('LAYERDIR_core'), 'lib') - sys.path.insert(0, oe_lib_path) - bb.build.exec_func('dpkg_do_mounts', d) isar_export_proxies(d) diff --git a/meta/classes/patch.bbclass b/meta/classes/patch.bbclass index 3060755..2337693 100644 --- a/meta/classes/patch.bbclass +++ b/meta/classes/patch.bbclass @@ -92,11 +92,6 @@ def should_apply(parm, d): should_apply[vardepsexclude] = "DATE SRCDATE" python patch_do_patch() { - import sys - - oe_lib_path = os.path.join(d.getVar('LAYERDIR_core'), 'lib') - sys.path.insert(0, oe_lib_path) - import oe.patch patchsetmap = { -- 2.30.2