From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7016230395466219520 X-Received: by 2002:a05:6512:2255:: with SMTP id i21mr15132347lfu.643.1636026687005; Thu, 04 Nov 2021 04:51:27 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:7606:: with SMTP id r6ls929332ljc.6.gmail; Thu, 04 Nov 2021 04:51:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyZmuqW+O5oLSOn4o1U5Aiz7HHGkNrL3v7lxjHZuW75bbx74cRxlj0wB20A0egzeZBFOMNN X-Received: by 2002:a05:651c:b29:: with SMTP id b41mr10400889ljr.38.1636026686121; Thu, 04 Nov 2021 04:51:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1636026686; cv=none; d=google.com; s=arc-20160816; b=AMQb/4F+s6lP+ZQLe3TaqbBft+6laI0KSzHisDd1fjAQlb5u5g1gPkhteqyxg+lwBh trOk0E+Tp647EDjJdHpeyOGj8TCFO7Mw7q6ENqlxaFzfjq0uxcUfktKKpKaIK2XE+Uky YhpVt1RTUjGapYDVWvQbRyZ374JRolCGQSrANtwHFiD2FgyyLzHkdLfrezJm+B3n+VrE B5aydH/ru0FU2M1HhaWdpYhoV9FZP//kBk5+XaXyJyF6RjlUoT+SG/pxhVdb5MoubdZu zUbus+p8B7e375xL/XdOWqsvfrBjgeA2rOV+xP10kwGW8vFEtaamVTiDrODTYVmEZrAK Iuug== 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=Bdf9PWz6JN8A1s9S46uGWSbR2D2MeOtBYBdWWjkx3K2f6tWzqD7h1zAy3ppTwfRNet MbdA63LAj6Spnmf49B6Fj/bnb67P0TPPCC4uu/+FS1gumrwL+DvOaF3636xXMHr3OMIN l9hZcFSYxz5uGIsvNrDx8/rGFNuaAWF2PbVer1ZFIlnwl8kCGhCepZb+P9+493ECC6Gl 60mgSDZr6EAJM8LOOPf2oCqDa8GYwIgfpGn5ns81t8w5Va0Kv59a6muurArz6VHhH6iz E6Krbuhl8SmXy3PnMhiLnTeSR9jMLGuaoW1Z0bihRVU5DGLCpHIPotuoS67dQ6ZiCRG9 sC3A== 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 o25si320139lfo.9.2021.11.04.04.51.25 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 04 Nov 2021 04:51:26 -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 1A4BpPlN007202 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 4 Nov 2021 12:51:25 +0100 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 1A4BpPbF026036; Thu, 4 Nov 2021 12:51:25 +0100 From: Adriaan Schmidt To: isar-users@googlegroups.com Cc: Adriaan Schmidt Subject: [PATCH v5 01/13] oe imports in central location Date: Thu, 4 Nov 2021 12:51:11 +0100 Message-Id: <20211104115123.2519356-2-adriaan.schmidt@siemens.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211104115123.2519356-1-adriaan.schmidt@siemens.com> References: <20211104115123.2519356-1-adriaan.schmidt@siemens.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUID: feQ9wmuDFgea 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