From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Wed, 12 Feb 2025 08:49:28 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-wr1-f58.google.com (mail-wr1-f58.google.com [209.85.221.58]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 51C7nREs020553 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 12 Feb 2025 08:49:27 +0100 Received: by mail-wr1-f58.google.com with SMTP id ffacd0b85a97d-38dd8d11139sf647976f8f.1 for ; Tue, 11 Feb 2025 23:49:27 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1739346561; cv=pass; d=google.com; s=arc-20240605; b=aKc6f5beLy4AE6Xkbqc0QWulF4PzUr/+QUfLxD61c+fJ3putmKYTye8W85+bEmaIYK M5JKeYeLEWwR0x9LrDieKbu5gnk4gOhOOWT0TyPIMCbQTsz+Ax7389xJvAO+CV+xi/+w 2Vnzi1cYVKwRUBHT8jjR2nWoqcjll5i/qLg0KlmGpo1fUhjOX69gvxiGx3pfkcribuEm SihouA1J4QjEdwoToxEc8h8kZEvXVBKS6ZIXlmN2v8FO4iECNIDKkGKXvYGtw5Aq7QJd RaR/iXRkaTjubqdBlf/+uwi1AEV+IgiIX8Cimtfx3gCMbrmy4bF/HU3i72nGGMNrAH19 RTig== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:user-agent :content-transfer-encoding:autocrypt:references:in-reply-to:date:to :from:subject:message-id:sender:dkim-signature; bh=n6v0oeAxD6Z50DWT2ajwsP7pSy7+QF8nG0LS8u7E6G8=; fh=3UDKN4YfVti81Ft0m8TGmPYrWi/XWsrdL1FxPnOAYAI=; b=UIQsNalyJq1fMX7urDwVra4qn1RFO0DrRYlxS6RZla9wUweoueose1bjqM5+HVCrBP FHOYW3GrelKrjpRw97jWsBIf/BKIFY2Cyyfy1n4SLoiDGjtVPzCJHWNVtN2MWlGVlx9+ DpXqZSOyesELPHG6DaGkzWUNErUBcpQUSKQlP+x31cd+iPZVqhJAXdyTaGc5YpaTGaNm 8PIoUGaY4lvVHxg44IDqKx3XbahCQALxM6a9qpKT9jkhi05cATRJyA9Q7H4VawHI6RwM N0ueNzWjj6sCpRYjvVzXHdbXZnJXcp1fPpWT5KLu0uDK9Z8V1eOvRiKfrQoesbMRdGrG 4KVg==; darn=ilbers.de ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=ubely@ilbers.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1739346561; x=1739951361; darn=ilbers.de; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:user-agent:content-transfer-encoding :autocrypt:references:in-reply-to:date:to:from:subject:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=n6v0oeAxD6Z50DWT2ajwsP7pSy7+QF8nG0LS8u7E6G8=; b=qM2M0Z3UJ6n8QTtUMwJRqxRWLU0Md6QPs115AUKpql/UU6XTNTneJJJKyNkUh1DWK8 g8j2zxXaAoQEyAT+URKqDEymLfRR/+ZmBIbXWhq6zBcVDZApaXEOAhGDAUeaxbHqQRTi 8UET7aWVijooS624lVhoEaNYE/dUdFwRH5KWwXsxMyDkR6uA728JBW5sJU5IqKkw6jUA J+s9WXzrreAxE7wpfbe28UlOpe1BtX79mGtNsh2ZMhRkhmSHcTAfq5bBCdbNcTKJitb7 J8we7IuuOaSkOxNmt46o1hVs2tx+HoqPFDcQQeUwhVSd8njQUrKkAyW/RY0cD2XYNPx3 SW1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739346561; x=1739951361; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :user-agent:content-transfer-encoding:autocrypt:references :in-reply-to:date:to:from:subject:message-id:x-beenthere :x-gm-message-state:sender:from:to:cc:subject:date:message-id :reply-to; bh=n6v0oeAxD6Z50DWT2ajwsP7pSy7+QF8nG0LS8u7E6G8=; b=hwPSuDIdJzjZqyjif4FrNXVjCBH0tE4OUUT0g27l+6D9Z3Htlx0mGniC69B/BmmQzz YUViq7dHU4o8lO6Y/LPqPKSphS3Vou2xQ2HPmmO/SXO6gZrRfUiiQU4V1dhVRjPL1rA9 mA2NmAlho/EAN80t7VbQCzVMqcYDF3CtsGtkz3Kb6I5At4Dsz+qtPHeflFxTwm6WqKN6 WuPjR61midK7Ue5z4wZUCNMMGvDIsFwLbn5Mka24c53atQTwkpmlvTaMmjtP9NrFG1Z/ NwlStsG5Ety63Tulq3GxUptAg1+OaPWSFDtzxIv1ITVjcrfBLTJLQuu67SYTbaiwQDyV 6Bdw== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AJvYcCU+CMw1BGaA8kNk+gvbqSD+NuneuTVtvDutCO7jQrju+Z/XTgdQT8E2Z9gbAzr9i7LHRYWg@ilbers.de X-Gm-Message-State: AOJu0Yxa3dU+83dIm5jkA7s91Ib7aZEa/27h5qocOHY4b1M8+LzxNS46 Fu17uqVbnPDIKgLNqJlFp1fyQTsE4nYAUEuOsQcTQGqjCVz36Ebe X-Google-Smtp-Source: AGHT+IE9Qs1SWeplXvoqXP6XswJLxMCGK33sXisDuCpSJ9Sh/YcsLLshUSsfSMXswzHzqRZ3jUBLDg== X-Received: by 2002:a05:6000:2a8:b0:38d:e02d:5f4e with SMTP id ffacd0b85a97d-38dea25b6d8mr1509856f8f.5.1739346560658; Tue, 11 Feb 2025 23:49:20 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:adf:a407:0:b0:38d:c0d2:1328 with SMTP id ffacd0b85a97d-38de9d05f58ls213653f8f.1.-pod-prod-09-eu; Tue, 11 Feb 2025 23:49:16 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXUqCk3lyPqv8jLF25KAumvZJko4cgV4izbNGRn140v3uAwUiX63Q6GFs0reJC8SqvEOzD090JwLYFa@googlegroups.com X-Received: by 2002:a5d:64e4:0:b0:38a:8ace:85e8 with SMTP id ffacd0b85a97d-38dea2ea994mr1732911f8f.44.1739346556592; Tue, 11 Feb 2025 23:49:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739346556; cv=none; d=google.com; s=arc-20240605; b=i0Un8zX5BK2NhwEw0+IPo5uaeRT9uWB3CK4LYC7eLq68OLXI9+83xFIhQfLQ63i67Q uXi5v0mj0anlw8qR/iecRVHtQHu01TNQPPlZGNgJJteLtPDh9YCkVdkcB6kNkIPNcW6z LwrgD7lOoacu51HG8q3shdRJe/bmY6Od/6sK8mLdDS5+VWZHJcb+58ArYt1o8wvWZsvw dMQ02zICi3P24di9fF4FPd/HIfy6QcSldBZQZe1FoH7z5h2sPZuTTM2Zs+srWafpPBri RP3MyAgyRfi/vKuKZYGiNSG58nLaIx3pWuWvRanA+RKRECNlN23iXMXjTIl3LRLPEa66 Rpaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=mime-version:user-agent:content-transfer-encoding:autocrypt :references:in-reply-to:date:to:from:subject:message-id; bh=e8jL/Y+iCgn/k/QwvbFaDtDvVZo5Op6BK9OqTjrQ7rA=; fh=jbYBnisNYSJvRlbHg/ujTMhygJ4x63rwn8SYi3Sx8Qw=; b=aEXhFSISmPRp3rgTHkqxjFdOtE5ID55t/P28wV48Lp857D6HZFX1aWbhHazTJhscHU l/krTUsEdqZntfiZ+Kv2EhYmChkbcHeMaWtQ145Mz6CgkxFSbFAhoOq4DVxg+LPmgkk8 vbxRoMrfRqWagCGwYzOtrhzSMqp3rRHY//FcFCVFodf1tSnbbvF9+KkTobBe3vYoSaSr WcCEfJtEbwrGoI9g8cuKHwj11KzIDgWymPg9Cgig0trX/C5ho5potAB9EpMdgRfiGm60 DpvrVYtU/tEVTprkUUwWMw6e91KRUo2ZB9ZKWKMWovW4+w42YcHQv7dubZxBQoia3BGK 0pEQ==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=ubely@ilbers.de Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id 5b1f17b1804b1-4394dc4289asi957315e9.0.2025.02.11.23.49.16 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 11 Feb 2025 23:49:16 -0800 (PST) Received-SPF: pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Received: from [IPv6:::1] (host-80-81-17-52.static.customer.m-online.net [80.81.17.52]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 51C7nEcp020539 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 12 Feb 2025 08:49:15 +0100 Message-ID: <5379abc35772153fe1f09c64ce7a49c862f52a14.camel@ilbers.de> Subject: Re: [PATCHv3 1/3] lists.bbclass: add class From: Uladzimir Bely To: chris.larson@siemens.com, isar-users@googlegroups.com Date: Wed, 12 Feb 2025 10:49:14 +0300 In-Reply-To: <20250124212040.473-1-chris.larson@siemens.com> References: <20241216201602.619-1-chris.larson@siemens.com> <20250124212040.473-1-chris.larson@siemens.com> Autocrypt: addr=ubely@ilbers.de; prefer-encrypt=mutual; keydata=mQENBGO2eUkBCACtT+T3OrPVSExBmqfgXT3lp9XcdxRzjYp26wezkgYjjBXaf36bxtaAf S471VoQtpar0RVeFfW7WDDdfX9ZclSj36zBQe+RVSJzoNoNQfjOXWuSHb5Z+cpAFtqBY4muxK4+ia IlLJd6CN3ejOsLHATtCeHHq8wi0z2T+KdLQO+wQRgo2hjj0Lp9pGTrKJry50HP/o7Vbdu14dOx2xq r8+wPc6SQbBIrcqaa4MqCQC00vQG7eXvo+k2MOw59FDdpMH0KR9mHgp3u/s4I+4YRBArukt9G9xz/ rsEFmxAIBC6N/a6Hzwg4puc91n7ABDsPg8Vp+X3MDraujN0dvR6OKVNtABEBAAG0IFVsYWR6aW1pc iBCZWx5IDx1YmVseUBpbGJlcnMuZGU+iQFOBBMBCAA4FiEEJqPNVhVGyk12Eh+PAUQYBM/2FkoFAm O2eUkCGwMFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQAUQYBM/2FkprlAgAmuna8Hm9EyoEtTl DBGDg6Zm4ZLp5ffvZBE946h92jepDrteoxsJ7pSzJVC2HmDLa4iZUao7lLLbDsUj5x45/iLJcqBZK k3YnAxP2r6a+kI+1VVQY1pxdG1nlJAbdNzoojm/qmezNPSrqni61KVMQKsXBCWhIjSXDSM9CsBj21 a+9qaVqfxovJGTn9lgrZO+xzKQNMKZeOouJlscVuFj21P0ww3/YENiU/nMeTSuYypO76mDtAd08Jo nc3yuHa9MJGei5ixN3wT+IrGR2aL2hdw2M6NgH7sYbL2Zi4ugD6RXHJai1Bh2yvFSVqSQ+M6QOInT 4ud7wslm1XRB065dXtA== Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.54.3 (by Flathub.org) MIME-Version: 1.0 X-Spam-Status: No, score=-4.6 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2, RCVD_IN_RP_CERTIFIED,RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-Original-Sender: ubely@ilbers.de X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=ubely@ilbers.de Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-TUID: jFZYoAalZxcE On Fri, 2025-01-24 at 14:20 -0700, chris.larson via isar-users wrote: > From: Christopher Larson >=20 > This class provides functions to improve the functionality of bitbake > list variables. >=20 > - Add the ability to remove items from a list variable without using > :remove. > - Add the ability for a list item to imply the addition of other list > items. >=20 > Usage requires either adding the variable name to LIST_VARIABLES, or > manually > adding a :remove and a :prepend to each fully supported list > variable. >=20 > To remove items from a configured list, simply append the item to be > removed > to the variable with a '-' or '~' prefix. For example, to remove > 'alpha' from > a configured variable, append '-alpha' to it. >=20 > To support implied list items, create a mapping of items to be > appended to > the variable when a specific item is present. For example, to append > 'beta' > to ROOTFS_FEATURES when 'alpha' is present, configure ROOTFS_FEATURES > as such, > then set IMPLIED_ROOTFS_FEATURES[alpha] =3D "beta". >=20 > Signed-off-by: Christopher Larson > --- > =C2=A0meta/classes/lists.bbclass | 105 > +++++++++++++++++++++++++++++++++++++ > =C2=A01 file changed, 105 insertions(+) > =C2=A0create mode 100644 meta/classes/lists.bbclass >=20 > diff --git a/meta/classes/lists.bbclass b/meta/classes/lists.bbclass > new file mode 100644 > index 00000000..db8f5837 > --- /dev/null > +++ b/meta/classes/lists.bbclass > @@ -0,0 +1,105 @@ > +# Functions to improve the functionality of bitbake list variables. > +# > +# - Add the ability to remove items from a list variable without > using :remove. > +# - Add the ability for a list item to imply the addition of other > list items. > +# > + > +# Usage requires either adding the variable name to LIST_VARIABLES, > or manually > +# adding a :remove and a :prepend to each fully supported list > variable. > +# > +# To remove items from a configured list, simply append the item to > be removed > +# to the variable with a '-' or '~' prefix. For example, to remove > 'alpha' from > +# ROOTFS_FEATURES, add '-alpha' to ROOTFS_FEATURES. > +# > +# To support implied list items, create a mapping of items to be > appended to > +# the variable when a specific item is present. For example, to > append 'beta' > +# to ROOTFS_FEATURES when 'alpha' is present, configure > ROOTFS_FEATURES as such, > +# then set IMPLIED_ROOTFS_FEATURES[alpha] =3D "beta". > +# > +# Boilerplate example: > +# > +#=C2=A0=C2=A0 # Either this: > +#=C2=A0=C2=A0 LIST_VARIABLES +=3D "ROOTFS_FEATURES" > +# > +#=C2=A0=C2=A0 # Or this: > +#=C2=A0=C2=A0 ROOTFS_FEATURES:remove =3D > "${@remove_prefixed_items('ROOTFS_FEATURES', d)}" > +#=C2=A0=C2=A0 ROOTFS_FEATURES:prepend =3D > "${@add_implied_items('ROOTFS_FEATURES', 'IMPLIED_ROOTFS_FEATURES', > d)} " > +# > +# Usage example: > +# > +#=C2=A0=C2=A0 # ROOTFS_FEATURES will be "beta alpha" if the following > configuration is used: > +#=C2=A0=C2=A0 IMPLIED_ROOTFS_FEATURES[alpha] =3D "beta" > +#=C2=A0=C2=A0 ROOTFS_FEATURES +=3D "alpha" > +# > +#=C2=A0=C2=A0 # ROOTFS_FEATURES will be "first" if the following configu= ration > is used: > +#=C2=A0=C2=A0 ROOTFS_FEATURES =3D "first second" > +#=C2=A0=C2=A0 ROOTFS_FEATURES +=3D "-second" > + > +python enable_list_variables() { > +=C2=A0=C2=A0=C2=A0 """Enable list variable functionality.""" > +=C2=A0=C2=A0=C2=A0 for variable in d.getVar("LIST_VARIABLES").split(): > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 d.setVar(variable + ':remove'= , ' > ${@remove_prefixed_items("%s", d)}' % variable) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 d.setVar(variable + ':prepend= ', '${@add_implied_items("%s", > "IMPLIED_%s", d)} ' % (variable, variable)) > +} > +enable_list_variables[eventmask] =3D "bb.event.ConfigParsed" > +addhandler enable_list_variables > + > +def remove_prefixed_items(var, d): > +=C2=A0=C2=A0=C2=A0 """Return the items to be removed from var with :remo= ve. > + > +=C2=A0=C2=A0=C2=A0 This function is intended to be used in a :remove han= dler to > remove > +=C2=A0=C2=A0=C2=A0 items from a variable. It will interpret items prefix= ed with a > '-' > +=C2=A0=C2=A0=C2=A0 or '~' as items to be removed. > +=C2=A0=C2=A0=C2=A0 """ > +=C2=A0=C2=A0=C2=A0 # Use a flag to avoid infinite recursion. > +=C2=A0=C2=A0=C2=A0 if d.getVarFlag(var, 'remove_prefixed_items_internal'= ) =3D=3D '1': > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return '' > + > +=C2=A0=C2=A0=C2=A0 from collections import Counter > + > +=C2=A0=C2=A0=C2=A0 d.setVarFlag(var, 'remove_prefixed_items_internal', '= 1') > +=C2=A0=C2=A0=C2=A0 try: > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 value =3D d.getVar(var) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 counter =3D Counter() > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 for v in value.split(): > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if v.= startswith('-') or v.startswith('~'): > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0 counter[v[1:]] -=3D 1 > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0 counter[v] -=3D 1 > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 else: > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0 counter[v] +=3D 1 > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return ' '.join(v for v, c in= counter.items() if c < 1) > +=C2=A0=C2=A0=C2=A0 finally: > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 d.delVarFlag(var, 'remove_pre= fixed_items_internal') > + > + > +def add_implied_items(var, implied_var, d): > +=C2=A0=C2=A0=C2=A0 """Return the items to be appended due to the presenc= e of other > items in var. > + > +=C2=A0=C2=A0=C2=A0 This function is intended to be used in a :append han= dler to > append > +=C2=A0=C2=A0=C2=A0 items from a variable. It will rely on the supplied m= apping of > implied items > +=C2=A0=C2=A0=C2=A0 to append the corresponding items. > +=C2=A0=C2=A0=C2=A0 """ > +=C2=A0=C2=A0=C2=A0 # Use a flag to avoid infinite recursion. > +=C2=A0=C2=A0=C2=A0 if d.getVarFlag(var, 'add_implied_items_internal') = =3D=3D '1': > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return '' > + > +=C2=A0=C2=A0=C2=A0 def implied_items(item, implied_mapping, d, seen=3DNo= ne): > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 """Return the implied items f= or a given item.""" > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if seen is None: > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 seen = =3D set() > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if item in seen: > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 retur= n '' > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 seen.add(item) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 implied =3D implied_mapping.g= et(item, '').split() > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return ' '.join(implied + [im= plied_items(f, implied_mapping, > d, seen) for f in implied]) > + > +=C2=A0=C2=A0=C2=A0 d.setVarFlag(var, 'add_implied_items_internal', '1') > +=C2=A0=C2=A0=C2=A0 try: > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 value =3D d.getVar(var) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 implied_mapping =3D d.getVarF= lags(implied_var) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if implied_mapping is None: > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 retur= n '' > + > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return ' '.join(implied_items= (f, implied_mapping, d) for f > in value.split()) > +=C2=A0=C2=A0=C2=A0 finally: > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 d.delVarFlag(var, 'add_implie= d_items_internal') > --=20 > 2.47.1 >=20 Hello, Chris. Could this be resend ones more as one series (v4) of patches? V3 for some reasons was sent as two different series: - https://patchwork.isar-build.org/project/isar/list/?series=3D1476 - this includes only 1st patch - https://patchwork.isar-build.org/project/isar/list/?series=3D1440 - this includes two other patches. The problem is that both series, if taken as "series" from patchwork (i.e.=C2=A0https://patchwork.isar-build.org/series/1476/mbox/ and https://patchwork.isar-build.org/series/1440/mbox/ , conflict with each other. I'm currently testing in CI all three latest (v3) patches picked separately, but I'm not sure that they are exactly what should be meant for merge. --=20 Best regards, Uladzimir. --=20 You received this message because you are subscribed to the Google Groups "= isar-users" group. To unsubscribe from this group and stop receiving emails from it, send an e= mail to isar-users+unsubscribe@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/isar-users/= 5379abc35772153fe1f09c64ce7a49c862f52a14.camel%40ilbers.de.