From patchwork Mon Apr 27 08:51:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Vickberg X-Patchwork-Id: 1277457 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com (client-ip=2607:f8b0:4864:20::b3f; helo=mail-yb1-xb3f.google.com; envelope-from=swupdate+bncbd32bl7xsegrbgv2tl2qkgqeskidg6i@googlegroups.com; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.a=rsa-sha256 header.s=20161025 header.b=GthHmevZ; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=IpgsDeZ7; dkim-atps=neutral Received: from mail-yb1-xb3f.google.com (mail-yb1-xb3f.google.com [IPv6:2607:f8b0:4864:20::b3f]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 499dmw3yDVz9sP7 for ; Mon, 27 Apr 2020 18:51:42 +1000 (AEST) Received: by mail-yb1-xb3f.google.com with SMTP id k14sf3002269ybp.23 for ; Mon, 27 Apr 2020 01:51:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=sender:date:from:to:message-id:subject:mime-version :x-original-sender:precedence:mailing-list:list-id:list-post :list-help:list-archive:list-subscribe:list-unsubscribe; bh=z9SCp4Mljpcz7h4mWhab9Aw17z9rjenJolXpfNjn5Es=; b=GthHmevZ7iQQCAdoR9j86ZM0oz4GfsQTVMgJvb6fLDaZ54lVTq2AASffW532B2/SZp 3FDovhf5/XIvlGfqRcHRMM9kcBTppZqtH34V8s2SNY9GflipavRqEZ+GTthqyQw52NqO 17q0w7LxlFLkiU6iLm2u8vzUyxffYJnMkT8eOEVpkELsMvODYR2ZC5XmyA3KV9uQ6lI1 o4l3xqrO9km2vhkLoPKntjcXRU+U7hi2GUkaEE3pTrB+F49fxYEbysLOMebaXzHJTEoT dfT0yku9ao/rYQKaiEf+Q6PDzz7ZqkjqQY/5CDZ/F47pvrL1FNmgiDKTh9b7zrITCwM7 +8iQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:message-id:subject:mime-version:x-original-sender :precedence:mailing-list:list-id:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=z9SCp4Mljpcz7h4mWhab9Aw17z9rjenJolXpfNjn5Es=; b=IpgsDeZ7NC2dGAMMba6vuLt2A0Vk8KDO7w9CseOi8LHvFBlAlq3V4qfrFwvlFDQfTl XBo/fzZW4PyqydYDP+Sca4me9Nzp6IHo928VGvkY58rdpFGjISqwrOgouPxq+8M1qbH8 vr+AdSOeHAA6U8A7mOk0xt/9NcjuqbS5FxghVIauBogyn6d9Uuib2Q5vNNAMgQWmJfgl aQEwqU7KQDEpODC/6BOnIB72Xlgbnz+P4rSADda9av3BnCDfllB65Pw5xJxeBbHwaS8a 7OU1uKTjY/C8DDLoxGtdzMOn468GA7JU3ev3uKRSqSZgw8gZGmPakr2X9LdqmPNPAazQ MNuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=sender:x-gm-message-state:date:from:to:message-id:subject :mime-version:x-original-sender:precedence:mailing-list:list-id :x-spam-checked-in-group:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=z9SCp4Mljpcz7h4mWhab9Aw17z9rjenJolXpfNjn5Es=; b=s5yag4nqCJ/6sySTZHIReMhdE9wZMaahCIY26fu3CeJjUSeqrpfihqMiiu+pVeRjvh /+YvljcooYrmKy6JZykpfl3ffXfFxEqEJYEZoNV9U7bTolx5wjrS1jIvU47ZNqdE8njS 2LXhIPYwks41GtM91FdQwLznfzAm+s+VznakRqlZwEhgV5QbabMWyMS9I/TFvl8pYFwY MJTcy3OqTKFZyt1TJChBWIH5KplKtvboo1GUg9gPF+1X+ALOTjc2H31HygkSYBUrJ3eg J0gmHMnRT6Ng4Vi8kbPFBTF1tc70US6/konyt2pTrQdciizpmC9MJqOKCdQKXGXNavsR 7O2w== Sender: swupdate@googlegroups.com X-Gm-Message-State: AGi0PuZ2TB5TVEl1pdiQlj2fNAk/0Tj4PsW2wpuI3w9jaUTSdaLAGlD2 42c5AcXvXNxWOSPrL6zkGss= X-Google-Smtp-Source: APiQypLiveYPCU4C0Aeh2ZYh6hsEmtk8zduZS28pvaqcJfzTFZgxrk7pDAYNqBOHg0JH3rJ6n1wktg== X-Received: by 2002:a25:3855:: with SMTP id f82mr32457966yba.212.1587977499342; Mon, 27 Apr 2020 01:51:39 -0700 (PDT) X-BeenThere: swupdate@googlegroups.com Received: by 2002:a25:29c1:: with SMTP id p184ls6571709ybp.3.gmail; Mon, 27 Apr 2020 01:51:38 -0700 (PDT) X-Received: by 2002:a25:7c02:: with SMTP id x2mr12413421ybc.216.1587977498564; Mon, 27 Apr 2020 01:51:38 -0700 (PDT) Date: Mon, 27 Apr 2020 01:51:38 -0700 (PDT) From: Alexander Vickberg To: swupdate Message-Id: <754d68ec-f57a-427c-af77-5a4d9bee3207@googlegroups.com> Subject: [swupdate] [meta-swupdate][PATCH][RFC] Fix use of config fragments MIME-Version: 1.0 X-Original-Sender: wickbergster@gmail.com Precedence: list Mailing-list: list swupdate@googlegroups.com; contact swupdate+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: swupdate@googlegroups.com X-Google-Group-Id: 605343134186 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , commit 009a36128ffd4553f47f75c114df4a3662fdf536 Author: Alexander Vickberg Date: Mon Apr 27 10:49:18 2020 +0200 Fix use of config fragments This is a Python port of the regular expressions used by merge_config.sh to parse config fragments. The assembled config is stored temporary in memory. Signed-off-by: Alexander Vickberg + elif 'CONFIG_SSL_IMPL_OPENSSL=y\n' in features or 'CONFIG_ENCRYPTED_IMAGES=y\n' in features or 'CONFIG_MONGOOSESSL=y\n' in features or 'CONFIG_HASH_VERIFY=y\n' in features or 'CONFIG_SURICATTA_SSL=y\n' in features: depends = d.getVar('DEPENDS', False) d.setVar('DEPENDS', depends + ' openssl') Signed-off-by: Alexander Vickberg Signed-off-by: Alexander Vickberg diff --git a/recipes-support/swupdate/swupdate.inc b/recipes-support/swupdate/swupdate.inc index 21de272..941c89a 100644 --- a/recipes-support/swupdate/swupdate.inc +++ b/recipes-support/swupdate/swupdate.inc @@ -79,6 +79,8 @@ def find_cfgs(d): return [s for s in src_patches(d, True) if s.endswith('.cfg')] python () { + import re + try: defconfig = bb.fetch2.localpath('file://defconfig', d) except bb.fetch2.FetchError: @@ -89,14 +91,35 @@ python () { except IOError: return - features = configfile.readlines() + features = configfile.read() configfile.close() + for current_fragment in find_cfgs(d): + try: + fragment_fd = open(current_fragment) + except IOError: + continue + + fragment = fragment_fd.read() + fragment_fd.close() + + fragment_search = re.findall('^(?:# )?(CONFIG_[a-zA-Z0-9_]*)[= ].*\n?', fragment, re.MULTILINE) + + for feature in fragment_search: + features = re.sub("^(?:# )?" + feature + "[= ].*\n?", "", features, flags=re.MULTILINE) + + features = features + fragment + + features = features.splitlines(True) + if 'CONFIG_REMOTE_HANDLER=y\n' in features: depends = d.getVar('DEPENDS', False) d.setVar('DEPENDS', depends + ' zeromq') - if 'CONFIG_ENCRYPTED_IMAGES=y\n' in features or 'CONFIG_MONGOOSESSL=y\n' in features or 'CONFIG_HASH_VERIFY=y\n' in features or 'CONFIG_SURICATTA_SSL=y\n' in features: + if 'CONFIG_SSL_IMPL_MBEDTLS=y\n' in features: + depends = d.getVar('DEPENDS', False) + d.setVar('DEPENDS', depends + ' mbedtls')