From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7016230395466219520 X-Received: by 2002:a05:651c:1686:: with SMTP id bd6mr3379846ljb.480.1635252505282; Tue, 26 Oct 2021 05:48:25 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6512:1314:: with SMTP id x20ls212331lfu.1.gmail; Tue, 26 Oct 2021 05:48:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwhv2sEmdO5aPkVAF9VgZ9kvXY1D2tm64No20ABF1ahho7vvKFx4SHHBbtolSsdv0g5CsLC X-Received: by 2002:a05:6512:987:: with SMTP id w7mr20909581lft.556.1635252504368; Tue, 26 Oct 2021 05:48:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635252504; cv=none; d=google.com; s=arc-20160816; b=TlmbfIDMl3Y9TkDyiHmpgk3MsmUPkFKZW/RdB1mQ1foF/7rM1G8ThTtl184FzXlv8R ti3lI+4ydrwx1ZvqWfck2R4rW9J7XUUhglDUI/R7YXN3bY79xu/EPtCoIi8zmds7SBci tfLGQ7o+fmnbPrChr5I731RhCjSAjkJbB9TpvS79XyJcXN8evB/c7Rl/qStpx1dZpbBs 4PCRRWzwn4EjYKmYI4wB8sQSaQ3mhGebrsWW53AriiExTOxqMtPk8g+icQsOMIMpOQkI J3lGRlcvII/3b0JGwV44w7L1A28c//w26VRipfwwb2DJAY5jOdgCZzQfNQdQ8Q/Y2CHS lrbA== 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:subject:cc:to:from:date; bh=P3kFRvD3MSnYxNQFR6dcRv7dcMfB5gfOixN4yawDIf0=; b=mpNjfp3C/cxd/QwX6Z7UKigbc4RUet3bTnpBI7Up6F2Mhc3T4T4+AOiReXzhlPmd7a lxVapuHU5w+6tncf/qEFIrUMHnkfZTz1AdD0Lxpejk3IP7HUnoVj76OfUjBCTFlkoQPo 7z9ptzf//E7moa6fbf8FlplkuiUs6W5OVw07O2k5iRGJajzSRVdFAJ0I5bf0KGCfP/C1 QiqXzlHElNUy7S6QqooMZu1fbMly8FW3svfpW/Sv045rmQCKny86NVo/gSf03IQqSkI7 YZzZRmyioMJnOqvJogJr9zk1T0iLmn1akm6j6B5pfv+1OmZPq7OYa+KMoMHHHsmkd1BG 0RxQ== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.2 as permitted sender) smtp.mailfrom=henning.schild@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from thoth.sbs.de (thoth.sbs.de. [192.35.17.2]) by gmr-mx.google.com with ESMTPS id b27si1019065ljf.3.2021.10.26.05.48.24 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Oct 2021 05:48:24 -0700 (PDT) Received-SPF: pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.2 as permitted sender) client-ip=192.35.17.2; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.2 as permitted sender) smtp.mailfrom=henning.schild@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 thoth.sbs.de (8.15.2/8.15.2) with ESMTPS id 19QCmNf0008568 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 26 Oct 2021 14:48:23 +0200 Received: from md1za8fc.ad001.siemens.net ([139.22.32.154]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 19QCmNAZ010319; Tue, 26 Oct 2021 14:48:23 +0200 Date: Tue, 26 Oct 2021 14:48:19 +0200 From: Henning Schild To: Adriaan Schmidt Cc: isar-users@googlegroups.com Subject: Re: [PATCH v4 01/10] oe imports in central location Message-ID: <20211026144819.7392ce2a@md1za8fc.ad001.siemens.net> In-Reply-To: <20211026122811.2654125-2-adriaan.schmidt@siemens.com> References: <20211026122811.2654125-1-adriaan.schmidt@siemens.com> <20211026122811.2654125-2-adriaan.schmidt@siemens.com> X-Mailer: Claws Mail 3.18.0 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-TUID: k3m//UHD+swA Nice addition, not just for sstate. Because it gets our forked code closer to its originals. Henning Am Tue, 26 Oct 2021 14:28:02 +0200 schrieb Adriaan Schmidt : > 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 = {