From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7016230395466219520 X-Received: by 2002:a1c:f713:: with SMTP id v19mr4485691wmh.188.1634632164246; Tue, 19 Oct 2021 01:29:24 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a5d:508a:: with SMTP id a10ls407918wrt.1.gmail; Tue, 19 Oct 2021 01:29:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyQmxN7P6fNhvocFlcr+3REq0rB+gZTiqHjU68l2y9DrREI2z5OyUYZfm2NqDwYbqonExIe X-Received: by 2002:adf:fd4d:: with SMTP id h13mr41170251wrs.391.1634632163208; Tue, 19 Oct 2021 01:29:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1634632163; cv=none; d=google.com; s=arc-20160816; b=Zgsyux2geuhrWzeXRbXmlNlWXr+YnLBtykYcpLiphjedJv8YGV2VMxVqWj/BF5NI04 YQaTHEK2BRgVi9eiUO4FNtqT+R3mdmfN+v1KmugxRwZ5GCmvrKAuiN6ON8mqJn7pOuBd 1xLUwCyseJHoyLWfqJVtyx9JbpodnnExnV09Q8Ht2YSYTp+aBFZCP4CxVMhf+CI3In8c rKKolB0TZ1eAogcBdElmQHtbUIalT8nEMDMRuBP6K+70P9kZfNgR40ANQC7NEo1ufW6x vjwL0yrLlh/kuS30RPBQladCl81QBPjbMTUHqKOWiL5+taFSi9ab0J5yW6JsW736rpXH ecRA== 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=biyDQ/3oZL2d/Gsa8HAPfUUZ+ZyVjwZUrZZxSHi6ymScNBSd5pz1Y5kyBwlV7/yoCd Lt1VcHsADZqP1SaO+SU1GAogod2E+hkd1MEzZMyXupak4YuUtWLOuo3pWT13B5Xn4OSa TnmObPTaFYisYy6z8ekyLosNAyuEZ+iUu99zd5wctl9iXcKgHtqijJbYKOpCd5Y69BKD owUIiLXO/3RwyUQRi3/QyF4wXAPuUtZ2SUV/JnOnLljdq5+pp2uWLoWoydkOmE9S9CPF l+fymcCoU3PU2AJXelm45UsjbL2eXkMPr0NKbc5TYrKz+9rxPrMC0CVsHd0DeG4zO3HH x2Dg== 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 b72si107588wmd.1.2021.10.19.01.29.23 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Oct 2021 01:29:23 -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 mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by goliath.siemens.de (8.15.2/8.15.2) with ESMTPS id 19J8TMS9028087 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 19 Oct 2021 10:29:22 +0200 Received: from random.ppmd.siemens.net (random.ppmd.siemens.net [139.25.68.25]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 19J8TMY8002966; Tue, 19 Oct 2021 10:29:22 +0200 From: Adriaan Schmidt To: isar-users@googlegroups.com Cc: Adriaan Schmidt Subject: [PATCH v3 01/10] oe imports in central location Date: Tue, 19 Oct 2021 10:29:04 +0200 Message-Id: <20211019082913.199818-2-adriaan.schmidt@siemens.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211019082913.199818-1-adriaan.schmidt@siemens.com> References: <20211019082913.199818-1-adriaan.schmidt@siemens.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUID: LOf2s1oiyjiY 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