From patchwork Fri Mar 31 05:45:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?RnLDqWTDqXJpYyBNYXJ0aW5zb25z?= X-Patchwork-Id: 21993 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 73873C77B62 for ; Fri, 31 Mar 2023 05:45:36 +0000 (UTC) Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) by mx.groups.io with SMTP id smtpd.web11.48110.1680241534169424006 for ; Thu, 30 Mar 2023 22:45:34 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=fBRXdHhg; spf=pass (domain: gmail.com, ip: 209.85.128.42, mailfrom: frederic.martinsons@gmail.com) Received: by mail-wm1-f42.google.com with SMTP id bg16-20020a05600c3c9000b003eb34e21bdfso14649832wmb.0 for ; Thu, 30 Mar 2023 22:45:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680241532; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6lzaowPBGNyClSitAu7sVLJ9GXQv0xYa51QvIRhfNm0=; b=fBRXdHhgzqODY+TtcwTeL1pnlBRTq/TUDzHkDyiRfUQQogzuUGoatKAoq/k58blJIc Y1Z9KxR9vA2K4KRenx02VbjxYWMF006fJkZnZgyWLK7y0bKEpwgHcRBpNl9z/ZZyMYCN erEdRU6dZY4c5Z98GhoSYyWWQlqx0ZbSWxUlxT4Bk9ORz/Ta0sbdafNee0dB8L8j/a8y zI0f5kgq0NE80y/kkZ3L5+iIis4FOVXBOEkok38SgSRs2k75OHDyeMKyC+hZI9OYHUn7 c+M1gvl7XjPrC4Y3NF+jmElr9WIrpxPqbSYthapPa6XDApkb41oIYd5CMiWwUzlKOIIB NvVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680241532; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6lzaowPBGNyClSitAu7sVLJ9GXQv0xYa51QvIRhfNm0=; b=3NF1LbdI0K8yCGQQSuY2f0De+iEAaXnxEk4jQ7xaz5MM286w742+pSHJ4B9tLhVnLm hQynkRRurPAH44tun40G6AEXyqb+fL7sA+AlsZOY43RW5n7ZM0RA3NIzd+wZx4LGIo4p 6l7U+Lf6LyfPSSZozYBugKG22665mRtYlxLuliPyUBd0QlmQJbAEMXWxhT1k/o6y9sOW X63VkLods6Ldx+NWQ23Zti+5RCC+FYBw4CvAziWrtVfpOYnHDDq4uj4Cjyj1z+cLHb5Q VARofEy/gP9jEHmv54WzC8qGHtmnw0WhYNomKp35rk/hpZ2BEklxLNelZH+LrdsNMgpF Jd5g== X-Gm-Message-State: AO0yUKVhZp2BWtjdrFhyf7orpH79+Zp95zPyWndSmg+hGfhYdutqSEB0 pM705x788Ef+pR8gFs6lt6Ao6fHUv+w= X-Google-Smtp-Source: AK7set+lBmenT2fVJUgMjs5LGxd4CnlGEfGhrq7hY97xBTIzZfyRGw5PG6SmxFt7Iwv/gM9O0HGcxg== X-Received: by 2002:a1c:6a13:0:b0:3ed:ec34:f1 with SMTP id f19-20020a1c6a13000000b003edec3400f1mr18812416wmc.35.1680241531966; Thu, 30 Mar 2023 22:45:31 -0700 (PDT) Received: from work-pc.core.sigfox.net ([2a01:e0a:8d5:c6c0:72d4:654d:401f:66ef]) by smtp.gmail.com with ESMTPSA id hg13-20020a05600c538d00b003ed793d9de0sm12664307wmb.1.2023.03.30.22.45.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Mar 2023 22:45:31 -0700 (PDT) From: frederic.martinsons@gmail.com To: openembedded-core@lists.openembedded.org Cc: alex.kiernan@gmail.com Subject: [PATCH V6 1/6] cargo_common.bbclass: Support local github repos Date: Fri, 31 Mar 2023 07:45:22 +0200 Message-Id: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 31 Mar 2023 05:45:36 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/179394 From: Alex Kiernan Since disable network was added cargo configurations which reference git repos fail as they attempt to fetch across the network as part of do_compile, even if EXTRA_OECARGO_PATHS to add them as part of `paths` is used, as this is documented as only working for packages which exist in crates.io. Add parsing of the SRC_URIs for git repos and include `[patch]` sections to redirect to the checked out source repos which the bitbake fetcher has already populated. There are still cases which don't work - if you have multiple copies of the same repo with different revisions, there's currently no way to represent that and anything using a repo which has a virtual manifest will fail to build (see https://github.com/rust-lang/cargo/issues/4934). Signed-off-by: Alex Kiernan --- meta/classes-recipe/cargo_common.bbclass | 30 ++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/meta/classes-recipe/cargo_common.bbclass b/meta/classes-recipe/cargo_common.bbclass index f503a001dd..63b1382908 100644 --- a/meta/classes-recipe/cargo_common.bbclass +++ b/meta/classes-recipe/cargo_common.bbclass @@ -116,6 +116,36 @@ cargo_common_do_configure () { EOF } +python cargo_common_do_patch_paths() { + cargo_config = os.path.join(d.getVar("CARGO_HOME"), "config") + if not os.path.exists(cargo_config): + return + + src_uri = (d.getVar('SRC_URI') or "").split() + if len(src_uri) == 0: + return + + patches = dict() + workdir = d.getVar('WORKDIR') + fetcher = bb.fetch2.Fetch(src_uri, d) + for url in fetcher.urls: + ud = fetcher.ud[url] + if ud.type == 'git': + name = ud.parm.get('name') + destsuffix = ud.parm.get('destsuffix') + if name is not None and destsuffix is not None: + repo = '%s://%s%s' % (ud.proto, ud.host, ud.path) + path = '%s = { path = "%s" }' % (name, os.path.join(workdir, destsuffix)) + patches.setdefault(repo, []).append(path) + + with open(cargo_config, "a+") as config: + for k, v in patches.items(): + print('\n[patch."%s"]' % k, file=config) + for name in v: + print(name, file=config) +} +do_configure[postfuncs] += "cargo_common_do_patch_paths" + oe_cargo_fix_env () { export CC="${RUST_TARGET_CC}" export CXX="${RUST_TARGET_CXX}" From patchwork Fri Mar 31 05:45:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?RnLDqWTDqXJpYyBNYXJ0aW5zb25z?= X-Patchwork-Id: 21991 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 60029C77B60 for ; Fri, 31 Mar 2023 05:45:36 +0000 (UTC) Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) by mx.groups.io with SMTP id smtpd.web10.48080.1680241535413671187 for ; Thu, 30 Mar 2023 22:45:35 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=dyjo4i1h; spf=pass (domain: gmail.com, ip: 209.85.128.42, mailfrom: frederic.martinsons@gmail.com) Received: by mail-wm1-f42.google.com with SMTP id v6-20020a05600c470600b003f034269c96so2886000wmo.4 for ; Thu, 30 Mar 2023 22:45:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680241533; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=CKr1j1hZIjN/A0KbFl3IZ5cAZYIF8AY0qU7hY1/3eOs=; b=dyjo4i1hZhy/BYvTzqY3r0rjKS7z3yN6cYhziwL19FFgvJfED5HOTr/Wvg4w2YClw+ FBNYWOl9goX8sYCK0rUbCPrBEI8kESMpB6VFSMPo1+wH10TWTWpI9lJec99qCfCQcZlo /2qMRIxgIA8FEHD2LGBBvdRqJ2EWBtgrlT8OtCAMmJMvHKUxzd9D4uABunafDw2JUvVC zGqRjvX2fDqxb35HN8ozM36ptav6uj8pmDxQl9jHJQNdRd6AVRScySj/hweb+p4f6CdG wMSUydMJDPGezREhDp8OmFDKHWzbTSzKjIGwh56P35wmMC+HhYIcaSckEHFYNmLcI1aF upnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680241533; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CKr1j1hZIjN/A0KbFl3IZ5cAZYIF8AY0qU7hY1/3eOs=; b=CWy+I97kFCpdKKnNhgn69acaSOvqWA28YEalwYUO+NhW1YHK4n5d2WrFQnD7Wtpe8U BVmkwVRaAE4nC0MBGCbDrMCN0w+qfVTQkPv3okqfBvBi0mO30sKmiHwit4y6ZUfy/FNI MV/T7TNNphlMs2doJjgAEuER8HzW/kTx/kxLn7haseOCHlQSOnHpIZLqJx5YaIpMbX5p gL4rc8kSkAyKwwfb+HssRVFX4WNQHHYYLCJMvVjwRzo0IGlNsocg7o3dLqpk5pIZJF75 moRIeFbEvRfEFeZnuLgDQJh1B+b5E79HjI7pqEWkBrbqJhv0j52/jaRqNH39b8/cjuux yeKQ== X-Gm-Message-State: AO0yUKW3rOeAfXWFJkSRm4TOm4G9oL0Y8c5wIG1rJh+0CV4aG5r2VN+C eRgDOiL0tvcMY052660ez0ewtqKleI0= X-Google-Smtp-Source: AK7set9T0Io2nvj4rV1dNutBeN89o0zTPvaibVwMdq7NacnZqkgBaDP+Vv/2ZCuK2c9aorn1/7chdQ== X-Received: by 2002:a7b:c00f:0:b0:3eb:3945:d3fd with SMTP id c15-20020a7bc00f000000b003eb3945d3fdmr19456810wmb.14.1680241533188; Thu, 30 Mar 2023 22:45:33 -0700 (PDT) Received: from work-pc.core.sigfox.net ([2a01:e0a:8d5:c6c0:72d4:654d:401f:66ef]) by smtp.gmail.com with ESMTPSA id hg13-20020a05600c538d00b003ed793d9de0sm12664307wmb.1.2023.03.30.22.45.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Mar 2023 22:45:32 -0700 (PDT) From: frederic.martinsons@gmail.com To: openembedded-core@lists.openembedded.org Cc: alex.kiernan@gmail.com Subject: [PATCH V6 2/6] cargo_common.bbclass: add support of user in url for patch Date: Fri, 31 Mar 2023 07:45:23 +0200 Message-Id: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 31 Mar 2023 05:45:36 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/179396 From: Frederic Martinsons To handle url like git://git@repo/project Signed-off-by: Frederic Martinsons --- meta/classes-recipe/cargo_common.bbclass | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/meta/classes-recipe/cargo_common.bbclass b/meta/classes-recipe/cargo_common.bbclass index 63b1382908..82ab25b59c 100644 --- a/meta/classes-recipe/cargo_common.bbclass +++ b/meta/classes-recipe/cargo_common.bbclass @@ -134,7 +134,10 @@ python cargo_common_do_patch_paths() { name = ud.parm.get('name') destsuffix = ud.parm.get('destsuffix') if name is not None and destsuffix is not None: - repo = '%s://%s%s' % (ud.proto, ud.host, ud.path) + if ud.user: + repo = '%s://%s@%s%s' % (ud.proto, ud.user, ud.host, ud.path) + else: + repo = '%s://%s%s' % (ud.proto, ud.host, ud.path) path = '%s = { path = "%s" }' % (name, os.path.join(workdir, destsuffix)) patches.setdefault(repo, []).append(path) From patchwork Fri Mar 31 05:45:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?RnLDqWTDqXJpYyBNYXJ0aW5zb25z?= X-Patchwork-Id: 21994 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5E121C76196 for ; Fri, 31 Mar 2023 05:45:36 +0000 (UTC) Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) by mx.groups.io with SMTP id smtpd.web11.48109.1680241532941983417 for ; Thu, 30 Mar 2023 22:45:35 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=GPQtY1ZN; spf=pass (domain: gmail.com, ip: 209.85.128.48, mailfrom: frederic.martinsons@gmail.com) Received: by mail-wm1-f48.google.com with SMTP id o24-20020a05600c511800b003ef59905f26so13096143wms.2 for ; Thu, 30 Mar 2023 22:45:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680241534; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ol8FfIAHbEw0jNdubbhfpGHjv/EAyiWShTkIPW2gNVQ=; b=GPQtY1ZNzhUQcqSXxwvv20Pt+kEwGPRICcNT+Xa+3zEzdoK0D3ZjiHfk4sQ26uo6Jg hpt7rzwhPfXJ8aoloEKSTUoMCe8SvzBcOzgGamoG42fkVfbwxnDahzRsPIP8yopXJHEK 6/HPotIQr+RuKCqSKIFzftzcVD3LhlL3bOZ7vWG3QcsTc3jPfSWdje+zj+eOiMLa2aL5 zzbgLEhsuLP11utRC+CyxaHr8rliStwhoiQ7Sa1bTy7quQFn3PGyEXiKsthXNrNW5k9j L/M8Df5c+SKr2Th6qcHHsIhjzR00mUluMIhuQT+mBPI2McT7+AWR8HYSSA8MckpMVxII BB+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680241534; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ol8FfIAHbEw0jNdubbhfpGHjv/EAyiWShTkIPW2gNVQ=; b=6gIluPnXz8pHSAO9+dnwLt1ri22KPkC+H+B9pannLBEKQDNFQDzuAGsA6XCKpSiEtk VKM8kGWoZ0zKpMrR8QVchqvj1gAJiz5rT6Vk2TsZiZRVQPWwjyCw8yOR+8A1/CkqufFI SqC6+SbgLX4xON+rV2ScQEuxuFR0lMgVPXLBT2t2LRIqV64ujolrTZ1o+UDUWggFMbjI PfE6xY1YsYMTeelCE6iYQPUzkDaSdbPYpiPU++d6h6rPCGUaejb6alsQOGE0gsjr4e8M JkxCsLuYFIvfjTb1GAwkfEvtsZkJM+ZjhmapHxu5/tB87C5l0Ku/AkfVnXg1gDIIGV8d nxNQ== X-Gm-Message-State: AO0yUKWxScs562H6L8wYQtJJUEVXFtONKqHc3+c22vxWYsRQAsvq0Lig tY+uH+Aow6fEdaSPGFdOV7juvONS2ss= X-Google-Smtp-Source: AK7set8MXUzyhzlEmqee1/bAVZlVCiaycXK7CL/0LZ+8i3BpMOvAS2Q8M5W2ZDFM8maiAdGHCCP+Qw== X-Received: by 2002:a7b:c409:0:b0:3ee:19b4:a2e6 with SMTP id k9-20020a7bc409000000b003ee19b4a2e6mr19582206wmi.19.1680241533863; Thu, 30 Mar 2023 22:45:33 -0700 (PDT) Received: from work-pc.core.sigfox.net ([2a01:e0a:8d5:c6c0:72d4:654d:401f:66ef]) by smtp.gmail.com with ESMTPSA id hg13-20020a05600c538d00b003ed793d9de0sm12664307wmb.1.2023.03.30.22.45.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Mar 2023 22:45:33 -0700 (PDT) From: frederic.martinsons@gmail.com To: openembedded-core@lists.openembedded.org Cc: alex.kiernan@gmail.com Subject: [PATCH V6 3/6] devtool: add support for multiple git url inside a cargo based recipe Date: Fri, 31 Mar 2023 07:45:24 +0200 Message-Id: <19ff7843ad82c2b3e245ce71d082650b3eed7822.1680238655.git.frederic.martinsons@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 31 Mar 2023 05:45:36 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/179395 From: Frederic Martinsons Without that, the possible git urls that are in SRC_URI of a recipe are removed from SRC_URI during devtool process and so the cargo_common_do_patch_paths in cargo_common.bbclass cannot patch these packages to fetch them locally. I use a generic type name because I foresee this change will be useful for recipe that used a package manager (cargo but also npm) see https://bugzilla.yoctoproject.org/show_bug.cgi?id=11015 Signed-off-by: Frederic Martinsons --- meta/classes/externalsrc.bbclass | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/meta/classes/externalsrc.bbclass b/meta/classes/externalsrc.bbclass index 26c5803ee6..b00fdba8e9 100644 --- a/meta/classes/externalsrc.bbclass +++ b/meta/classes/externalsrc.bbclass @@ -68,9 +68,7 @@ python () { for url in fetch.urls: url_data = fetch.ud[url] parm = url_data.parm - if (url_data.type == 'file' or - url_data.type == 'npmsw' or url_data.type == 'crate' or - 'type' in parm and parm['type'] == 'kmeta'): + if url_data.type in ['file', 'npmsw', 'crate'] or parm.get('type') in ['kmeta', 'git-dependency']: local_srcuri.append(url) d.setVar('SRC_URI', ' '.join(local_srcuri)) From patchwork Fri Mar 31 05:45:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?RnLDqWTDqXJpYyBNYXJ0aW5zb25z?= X-Patchwork-Id: 21996 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 33EC4C76196 for ; Fri, 31 Mar 2023 05:45:46 +0000 (UTC) Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) by mx.groups.io with SMTP id smtpd.web10.48081.1680241536949799799 for ; Thu, 30 Mar 2023 22:45:37 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=Zabld/kj; spf=pass (domain: gmail.com, ip: 209.85.128.46, mailfrom: frederic.martinsons@gmail.com) Received: by mail-wm1-f46.google.com with SMTP id p34so12199382wms.3 for ; Thu, 30 Mar 2023 22:45:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680241535; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=q2b0TPXaHTFMvF4K3YVDuI9TJZiA28rwMBdM4p9jhj0=; b=Zabld/kjSGsWfGJ7FLbQrjopKG6lAUxV7biJdnH5RC4N4PiJB7D8TggzJR1xQJXCHO ah9Zi0COtHX1c2N9611IAnDOXgTEPHQ3YcAa22+ocKtVfa2/fC1gKxkiRuaP6aZZI5IP ZWN8UuoYmZZAryZ3EN1byBQ5l0Jr+nY9N3QM8IK4GVzGngTKEB7tAfBuxzkIKzfpcy9i bfmK9TFMKgTAG/xAWfz+FTZx8uuQasyjChYrYbd/Q3A3mlpaR/nn1Mo2vT3afMCixrry dUaxL5MaC6McNQE49QOwboEXlNv74UMDO0gsbeQYCCyaALA/IS4m5uveZG7Vr6PqsADP eEPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680241535; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=q2b0TPXaHTFMvF4K3YVDuI9TJZiA28rwMBdM4p9jhj0=; b=RV51Wh4nspQhJYfWSqNKlC7qwtqqE6mFkT5RHCKL/ZvNOTKLWSNTVuz+JP9NQxqM+h WZMBurSLqsx889/3OdB8OlYVkqwsJESzaYqS4/mfq1IUQA4LWhclBYAzq2qRSSdkvqpR Tb3IbwSfoib1kGcfevVabZVCCthWHXoDOGX1/3YeSiEd9Ep0FKcwGVV/SHViiPuwc6Ll ewGEE4tppuiG+wBxyxezGMDge8pWGLEuRhXgmghAYv9zl+vAKZW3eoRu2weBReTBAmVZ fxVwZQ4bYQ9bsHdx++uhrQTjzn6tRPuNbUyYMI7Ya+Rqp+/jn4ZNIszTV+rSvV18/WiW dKpQ== X-Gm-Message-State: AO0yUKXwxdka+Kx97ERP8v/ZOaYkLws5EK90+o5zbYlARnKcz0t40iJK BHbkDhk8eRo8p0MdtVIyuq/wcgC/5xQ= X-Google-Smtp-Source: AK7set/bY0GCH/2Y1LB9nZ0oIopGMapqieDZ/huUns8ylGnmui1Ygqtve301s0cy8kaTTijmmK/4Vw== X-Received: by 2002:a05:600c:b42:b0:3ee:6cdf:c357 with SMTP id k2-20020a05600c0b4200b003ee6cdfc357mr17798481wmr.20.1680241535040; Thu, 30 Mar 2023 22:45:35 -0700 (PDT) Received: from work-pc.core.sigfox.net ([2a01:e0a:8d5:c6c0:72d4:654d:401f:66ef]) by smtp.gmail.com with ESMTPSA id hg13-20020a05600c538d00b003ed793d9de0sm12664307wmb.1.2023.03.30.22.45.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Mar 2023 22:45:34 -0700 (PDT) From: frederic.martinsons@gmail.com To: openembedded-core@lists.openembedded.org Cc: alex.kiernan@gmail.com Subject: [PATCH V6 4/6] patch: support of git patches when the source uri contained subpath parameter Date: Fri, 31 Mar 2023 07:45:25 +0200 Message-Id: <6f36bacf8683ca801ee1493233df9f717edf4794.1680238655.git.frederic.martinsons@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 31 Mar 2023 05:45:46 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/179397 From: Frederic Martinsons This is for a specific case where: - A recipe use a subpath on a git repo (e.g. git://repo.git/projects;subpath=subproject) - The recipe contains a patch to apply - a devtool modify is used on this recipe With these conditions, the patch cannot be applied at all. GitApplyTree class is used for handling patch under devtool, but when subpath is present in SRC_URI, the resulting git tree is dirty (every files and directories which was not in subpath are suppressed) and so "git am" refuse to apply patches. That would not be an issue since the GitApplyTree have a fallback to PatchTree in case of error, but during this error management, there is a "git reset --hard HEAD" call which suppress the subpath operation and finally prevents the patch to be applied even with PatchTree. When devtool is not involved, only PatchTree class is used and the above problem is irrelevant. To support git patching during devtool, the presence of subpath and the dirtyness of the repo are checked. If both conditions are met, we directly call PatchTree like it was already done in case of error during git apply. Signed-off-by: Frederic Martinsons --- meta/lib/oe/patch.py | 57 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 44 insertions(+), 13 deletions(-) diff --git a/meta/lib/oe/patch.py b/meta/lib/oe/patch.py index b2dc8d0a90..d047b3b947 100644 --- a/meta/lib/oe/patch.py +++ b/meta/lib/oe/patch.py @@ -499,6 +499,36 @@ class GitApplyTree(PatchTree): finally: shutil.rmtree(tempdir) + def _need_dirty_check(self): + fetch = bb.fetch2.Fetch([], self.d) + check_dirtyness = False + for url in fetch.urls: + url_data = fetch.ud[url] + parm = url_data.parm + # a git url with subpath param will surely be dirty + # since the git tree from which we clone will be emptied + # from all files that are not in the subpath + if url_data.type == 'git' and parm.get('subpath'): + check_dirtyness = True + return check_dirtyness + + def _commitpatch(self, patch, patchfilevar): + output = "" + # Add all files + shellcmd = ["git", "add", "-f", "-A", "."] + output += runcmd(["sh", "-c", " ".join(shellcmd)], self.dir) + # Exclude the patches directory + shellcmd = ["git", "reset", "HEAD", self.patchdir] + output += runcmd(["sh", "-c", " ".join(shellcmd)], self.dir) + # Commit the result + (tmpfile, shellcmd) = self.prepareCommit(patch['file'], self.commituser, self.commitemail) + try: + shellcmd.insert(0, patchfilevar) + output += runcmd(["sh", "-c", " ".join(shellcmd)], self.dir) + finally: + os.remove(tmpfile) + return output + def _applypatch(self, patch, force = False, reverse = False, run = True): import shutil @@ -534,6 +564,19 @@ class GitApplyTree(PatchTree): shutil.copy2(commithook, applyhook) try: patchfilevar = 'PATCHFILE="%s"' % os.path.basename(patch['file']) + if self._need_dirty_check(): + # Check dirtyness of the tree + try: + output = runcmd(["git", "--work-tree=%s" % reporoot, "status", "--short"]) + except CmdError: + pass + else: + if output: + # The tree is dirty, not need to try to apply patches with git anymore + # since they fail, fallback directly to patch + output = PatchTree._applypatch(self, patch, force, reverse, run) + output += self._commitpatch(patch, patchfilevar) + return output try: shellcmd = [patchfilevar, "git", "--work-tree=%s" % reporoot] self.gitCommandUserOptions(shellcmd, self.commituser, self.commitemail) @@ -560,19 +603,7 @@ class GitApplyTree(PatchTree): except CmdError: # Fall back to patch output = PatchTree._applypatch(self, patch, force, reverse, run) - # Add all files - shellcmd = ["git", "add", "-f", "-A", "."] - output += runcmd(["sh", "-c", " ".join(shellcmd)], self.dir) - # Exclude the patches directory - shellcmd = ["git", "reset", "HEAD", self.patchdir] - output += runcmd(["sh", "-c", " ".join(shellcmd)], self.dir) - # Commit the result - (tmpfile, shellcmd) = self.prepareCommit(patch['file'], self.commituser, self.commitemail) - try: - shellcmd.insert(0, patchfilevar) - output += runcmd(["sh", "-c", " ".join(shellcmd)], self.dir) - finally: - os.remove(tmpfile) + output += self._commitpatch(patch, patchfilevar) return output finally: shutil.rmtree(hooks_dir) From patchwork Fri Mar 31 05:45:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?RnLDqWTDqXJpYyBNYXJ0aW5zb25z?= X-Patchwork-Id: 21997 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 54E32C77B6D for ; Fri, 31 Mar 2023 05:45:46 +0000 (UTC) Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) by mx.groups.io with SMTP id smtpd.web10.48083.1680241539859096211 for ; Thu, 30 Mar 2023 22:45:40 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=p3aoFvHV; spf=pass (domain: gmail.com, ip: 209.85.128.54, mailfrom: frederic.martinsons@gmail.com) Received: by mail-wm1-f54.google.com with SMTP id j36-20020a05600c1c2400b003f04057c152so989285wms.5 for ; Thu, 30 Mar 2023 22:45:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680241538; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ocluDIkPvObgIRS4BQlpYIJ/L7bffqXItffL2qyJLV8=; b=p3aoFvHV5gC2k/gpUUPR4zD4UuG6r87M1f6/NuBVvtMeIPElVxzayNtk5el8NO9XHv 78ZYU7FI/AyBhkdVIWcA+TrEppSLH45vy+qYpyoI+oE2NMmo06scrkw1xFvU/hV4w3AG IOmIlvQ2qa1zVOKdzzThQkLaKy/CjTQS44VqAk2hohnOhTTengcwQDI68i7id55dGG4B 7jeHW1aouLHzsmaHjIpiLfZhmiJLiHn8v6UIKuWpe4E3G4FbxROZ9AnlG2fZvQ/B/O6o ueC37uk9xB+vTHITKwAmo222KT3a/WPIcc245BjSRtLXhbkkq/Y852hGcsalwiJBNIsA sqBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680241538; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ocluDIkPvObgIRS4BQlpYIJ/L7bffqXItffL2qyJLV8=; b=1G2YM8f9nYOaZP83RIiaEJYZqM5yysHumTPhjngQNlHXNAGG1Uxgyj8vbLYZr+2Co9 R5vlLbBg/sKqs3/t5wf+2JMvCaFdc9SGoJswKbp2m0xtmxo986jU1RL8h/fbWZfZp5TA Z1t6c79iwT+ohujEWsaCY3ZjDr/qFyJVY/11QzfxPWdYY91pqSwBYFXN2puo/30t9aND eg24KM3m6f1h1/iUUjmCF9lIaUyauiXEUTAL7YCvd0WGf9RtRYQlqdV4s8lvtx1ps2ZT tEwbPaIYA3kG+SFtwbZXtjEaHJ5QJlxAFp28twR0v4C0Y7eUh5HFWlQvgBysGUOBhsL2 KyGg== X-Gm-Message-State: AO0yUKUZuYvCzY20kYiUN0Abw6/jHDqs+cgtoIOM9YIJpRBUkGyGwqD4 KQKZ1cTtLvuAxT07/hX1G3d6jF9PYfY= X-Google-Smtp-Source: AK7set/s+FvqgCqFGFTO3bLlHiekE9HilBhf7Bio5XQ1VDf4fS/i4OeY+BiY3xySEziJXIj23rUePQ== X-Received: by 2002:a05:600c:2289:b0:3df:e468:17dc with SMTP id 9-20020a05600c228900b003dfe46817dcmr18759316wmf.40.1680241536992; Thu, 30 Mar 2023 22:45:36 -0700 (PDT) Received: from work-pc.core.sigfox.net ([2a01:e0a:8d5:c6c0:72d4:654d:401f:66ef]) by smtp.gmail.com with ESMTPSA id hg13-20020a05600c538d00b003ed793d9de0sm12664307wmb.1.2023.03.30.22.45.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Mar 2023 22:45:36 -0700 (PDT) From: frederic.martinsons@gmail.com To: openembedded-core@lists.openembedded.org Cc: alex.kiernan@gmail.com Subject: [PATCH V6 5/6] meta-selftest: provide a recipe for zvariant Date: Fri, 31 Mar 2023 07:45:26 +0200 Message-Id: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 31 Mar 2023 05:45:46 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/179399 From: Frederic Martinsons This recipe is for showing a "real world" example of a crate that depends on some git repositories. Usually, this kind of crate is built within a global workspace (here it is the zbus project) and so doesn't need a Cargo.lock on its own. For the sake of the demonstration, I had to tweak things a little to be able to compile zvariant in standalone (no relative path in dependency, no symlink to LICENSE provide a Cargo.lock) The use case where the crate had some git repository in dependency is very common for "private" crate that are not aimed to be published on crates.io. When the project grow bigger, it is common to have a bin and multiple lib developped in parallel, and these libs are surely on a git repostitory. A test case have been also added to check for: - the previous patch about git subpath parameter and devtool - the correctness of overriding dependencies (first patch of the series) Signed-off-by: Frederic Martinsons --- .../zvariant/zvariant-crates.inc | 258 ++++ .../zvariant/zvariant-git-crates.inc | 14 + .../0001-Tweak-zvariant-crate-config.patch | 1292 +++++++++++++++++ .../zvariant/zvariant_3.12.0.bb | 27 + meta/lib/oeqa/selftest/cases/devtool.py | 93 ++ 5 files changed, 1684 insertions(+) create mode 100644 meta-selftest/recipes-extended/zvariant/zvariant-crates.inc create mode 100644 meta-selftest/recipes-extended/zvariant/zvariant-git-crates.inc create mode 100644 meta-selftest/recipes-extended/zvariant/zvariant/0001-Tweak-zvariant-crate-config.patch create mode 100644 meta-selftest/recipes-extended/zvariant/zvariant_3.12.0.bb diff --git a/meta-selftest/recipes-extended/zvariant/zvariant-crates.inc b/meta-selftest/recipes-extended/zvariant/zvariant-crates.inc new file mode 100644 index 0000000000..3a9759c4a5 --- /dev/null +++ b/meta-selftest/recipes-extended/zvariant/zvariant-crates.inc @@ -0,0 +1,258 @@ +# Autogenerated with 'bitbake -c update_crates zvariant' + +# from Cargo.lock +SRC_URI += " \ + crate://crates.io/anes/0.1.6;name=anes-0.1.6 \ + crate://crates.io/anyhow/1.0.70;name=anyhow-1.0.70 \ + crate://crates.io/arrayvec/0.7.2;name=arrayvec-0.7.2 \ + crate://crates.io/atty/0.2.14;name=atty-0.2.14 \ + crate://crates.io/autocfg/1.1.0;name=autocfg-1.1.0 \ + crate://crates.io/bitflags/1.3.2;name=bitflags-1.3.2 \ + crate://crates.io/bumpalo/3.12.0;name=bumpalo-3.12.0 \ + crate://crates.io/byteorder/1.4.3;name=byteorder-1.4.3 \ + crate://crates.io/cast/0.3.0;name=cast-0.3.0 \ + crate://crates.io/cfg-if/1.0.0;name=cfg-if-1.0.0 \ + crate://crates.io/chrono/0.4.24;name=chrono-0.4.24 \ + crate://crates.io/ciborium/0.2.0;name=ciborium-0.2.0 \ + crate://crates.io/ciborium-io/0.2.0;name=ciborium-io-0.2.0 \ + crate://crates.io/ciborium-ll/0.2.0;name=ciborium-ll-0.2.0 \ + crate://crates.io/clap/3.2.23;name=clap-3.2.23 \ + crate://crates.io/clap_lex/0.2.4;name=clap_lex-0.2.4 \ + crate://crates.io/criterion/0.4.0;name=criterion-0.4.0 \ + crate://crates.io/criterion-plot/0.5.0;name=criterion-plot-0.5.0 \ + crate://crates.io/crossbeam-channel/0.5.7;name=crossbeam-channel-0.5.7 \ + crate://crates.io/crossbeam-deque/0.8.3;name=crossbeam-deque-0.8.3 \ + crate://crates.io/crossbeam-epoch/0.9.14;name=crossbeam-epoch-0.9.14 \ + crate://crates.io/crossbeam-utils/0.8.15;name=crossbeam-utils-0.8.15 \ + crate://crates.io/either/1.8.1;name=either-1.8.1 \ + crate://crates.io/enumflags2/0.7.5;name=enumflags2-0.7.5 \ + crate://crates.io/enumflags2_derive/0.7.4;name=enumflags2_derive-0.7.4 \ + crate://crates.io/form_urlencoded/1.1.0;name=form_urlencoded-1.1.0 \ + crate://crates.io/futures-channel/0.3.27;name=futures-channel-0.3.27 \ + crate://crates.io/futures-core/0.3.27;name=futures-core-0.3.27 \ + crate://crates.io/futures-executor/0.3.27;name=futures-executor-0.3.27 \ + crate://crates.io/futures-macro/0.3.27;name=futures-macro-0.3.27 \ + crate://crates.io/futures-task/0.3.27;name=futures-task-0.3.27 \ + crate://crates.io/futures-util/0.3.27;name=futures-util-0.3.27 \ + crate://crates.io/getrandom/0.2.8;name=getrandom-0.2.8 \ + crate://crates.io/half/1.8.2;name=half-1.8.2 \ + crate://crates.io/hashbrown/0.12.3;name=hashbrown-0.12.3 \ + crate://crates.io/heck/0.3.3;name=heck-0.3.3 \ + crate://crates.io/hermit-abi/0.1.19;name=hermit-abi-0.1.19 \ + crate://crates.io/hermit-abi/0.2.6;name=hermit-abi-0.2.6 \ + crate://crates.io/idna/0.3.0;name=idna-0.3.0 \ + crate://crates.io/indexmap/1.9.2;name=indexmap-1.9.2 \ + crate://crates.io/itertools/0.9.0;name=itertools-0.9.0 \ + crate://crates.io/itertools/0.10.5;name=itertools-0.10.5 \ + crate://crates.io/itoa/1.0.6;name=itoa-1.0.6 \ + crate://crates.io/js-sys/0.3.61;name=js-sys-0.3.61 \ + crate://crates.io/lazy_static/1.4.0;name=lazy_static-1.4.0 \ + crate://crates.io/libc/0.2.140;name=libc-0.2.140 \ + crate://crates.io/log/0.4.17;name=log-0.4.17 \ + crate://crates.io/memchr/2.5.0;name=memchr-2.5.0 \ + crate://crates.io/memoffset/0.8.0;name=memoffset-0.8.0 \ + crate://crates.io/num-integer/0.1.45;name=num-integer-0.1.45 \ + crate://crates.io/num-traits/0.2.15;name=num-traits-0.2.15 \ + crate://crates.io/num_cpus/1.15.0;name=num_cpus-1.15.0 \ + crate://crates.io/once_cell/1.17.1;name=once_cell-1.17.1 \ + crate://crates.io/oorandom/11.1.3;name=oorandom-11.1.3 \ + crate://crates.io/os_str_bytes/6.5.0;name=os_str_bytes-6.5.0 \ + crate://crates.io/percent-encoding/2.2.0;name=percent-encoding-2.2.0 \ + crate://crates.io/pin-project-lite/0.2.9;name=pin-project-lite-0.2.9 \ + crate://crates.io/pin-utils/0.1.0;name=pin-utils-0.1.0 \ + crate://crates.io/pkg-config/0.3.26;name=pkg-config-0.3.26 \ + crate://crates.io/plotters/0.3.4;name=plotters-0.3.4 \ + crate://crates.io/plotters-backend/0.3.4;name=plotters-backend-0.3.4 \ + crate://crates.io/plotters-svg/0.3.3;name=plotters-svg-0.3.3 \ + crate://crates.io/ppv-lite86/0.2.17;name=ppv-lite86-0.2.17 \ + crate://crates.io/proc-macro-crate/0.1.5;name=proc-macro-crate-0.1.5 \ + crate://crates.io/proc-macro-crate/1.3.1;name=proc-macro-crate-1.3.1 \ + crate://crates.io/proc-macro-error/1.0.4;name=proc-macro-error-1.0.4 \ + crate://crates.io/proc-macro-error-attr/1.0.4;name=proc-macro-error-attr-1.0.4 \ + crate://crates.io/proc-macro2/1.0.53;name=proc-macro2-1.0.53 \ + crate://crates.io/quote/1.0.26;name=quote-1.0.26 \ + crate://crates.io/rand/0.8.5;name=rand-0.8.5 \ + crate://crates.io/rand_chacha/0.3.1;name=rand_chacha-0.3.1 \ + crate://crates.io/rand_core/0.6.4;name=rand_core-0.6.4 \ + crate://crates.io/rayon/1.7.0;name=rayon-1.7.0 \ + crate://crates.io/rayon-core/1.11.0;name=rayon-core-1.11.0 \ + crate://crates.io/regex/1.7.2;name=regex-1.7.2 \ + crate://crates.io/regex-syntax/0.6.29;name=regex-syntax-0.6.29 \ + crate://crates.io/ryu/1.0.13;name=ryu-1.0.13 \ + crate://crates.io/same-file/1.0.6;name=same-file-1.0.6 \ + crate://crates.io/scopeguard/1.1.0;name=scopeguard-1.1.0 \ + crate://crates.io/serde/1.0.158;name=serde-1.0.158 \ + crate://crates.io/serde_bytes/0.11.9;name=serde_bytes-0.11.9 \ + crate://crates.io/serde_derive/1.0.158;name=serde_derive-1.0.158 \ + crate://crates.io/serde_json/1.0.94;name=serde_json-1.0.94 \ + crate://crates.io/serde_repr/0.1.12;name=serde_repr-0.1.12 \ + crate://crates.io/slab/0.4.8;name=slab-0.4.8 \ + crate://crates.io/static_assertions/1.1.0;name=static_assertions-1.1.0 \ + crate://crates.io/strum/0.18.0;name=strum-0.18.0 \ + crate://crates.io/strum_macros/0.18.0;name=strum_macros-0.18.0 \ + crate://crates.io/syn/1.0.109;name=syn-1.0.109 \ + crate://crates.io/syn/2.0.8;name=syn-2.0.8 \ + crate://crates.io/system-deps/1.3.2;name=system-deps-1.3.2 \ + crate://crates.io/textwrap/0.16.0;name=textwrap-0.16.0 \ + crate://crates.io/thiserror/1.0.40;name=thiserror-1.0.40 \ + crate://crates.io/thiserror-impl/1.0.40;name=thiserror-impl-1.0.40 \ + crate://crates.io/time/0.3.20;name=time-0.3.20 \ + crate://crates.io/time-core/0.1.0;name=time-core-0.1.0 \ + crate://crates.io/time-macros/0.2.8;name=time-macros-0.2.8 \ + crate://crates.io/tinytemplate/1.2.1;name=tinytemplate-1.2.1 \ + crate://crates.io/tinyvec/1.6.0;name=tinyvec-1.6.0 \ + crate://crates.io/tinyvec_macros/0.1.1;name=tinyvec_macros-0.1.1 \ + crate://crates.io/toml/0.5.11;name=toml-0.5.11 \ + crate://crates.io/toml_datetime/0.6.1;name=toml_datetime-0.6.1 \ + crate://crates.io/toml_edit/0.19.8;name=toml_edit-0.19.8 \ + crate://crates.io/unicode-bidi/0.3.13;name=unicode-bidi-0.3.13 \ + crate://crates.io/unicode-ident/1.0.8;name=unicode-ident-1.0.8 \ + crate://crates.io/unicode-normalization/0.1.22;name=unicode-normalization-0.1.22 \ + crate://crates.io/unicode-segmentation/1.10.1;name=unicode-segmentation-1.10.1 \ + crate://crates.io/url/2.3.1;name=url-2.3.1 \ + crate://crates.io/uuid/1.3.0;name=uuid-1.3.0 \ + crate://crates.io/version-compare/0.0.10;name=version-compare-0.0.10 \ + crate://crates.io/version_check/0.9.4;name=version_check-0.9.4 \ + crate://crates.io/walkdir/2.3.3;name=walkdir-2.3.3 \ + crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1;name=wasi-0.11.0+wasi-snapshot-preview1 \ + crate://crates.io/wasm-bindgen/0.2.84;name=wasm-bindgen-0.2.84 \ + crate://crates.io/wasm-bindgen-backend/0.2.84;name=wasm-bindgen-backend-0.2.84 \ + crate://crates.io/wasm-bindgen-macro/0.2.84;name=wasm-bindgen-macro-0.2.84 \ + crate://crates.io/wasm-bindgen-macro-support/0.2.84;name=wasm-bindgen-macro-support-0.2.84 \ + crate://crates.io/wasm-bindgen-shared/0.2.84;name=wasm-bindgen-shared-0.2.84 \ + crate://crates.io/web-sys/0.3.61;name=web-sys-0.3.61 \ + crate://crates.io/winapi/0.3.9;name=winapi-0.3.9 \ + crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0;name=winapi-i686-pc-windows-gnu-0.4.0 \ + crate://crates.io/winapi-util/0.1.5;name=winapi-util-0.1.5 \ + crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0;name=winapi-x86_64-pc-windows-gnu-0.4.0 \ + crate://crates.io/winnow/0.4.0;name=winnow-0.4.0 \ + crate://crates.io/zvariant_derive/3.12.0;name=zvariant_derive-3.12.0 \ + crate://crates.io/zvariant_utils/1.0.0;name=zvariant_utils-1.0.0 \ +" + +SRC_URI[anes-0.1.6.sha256sum] = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" +SRC_URI[anyhow-1.0.70.sha256sum] = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" +SRC_URI[arrayvec-0.7.2.sha256sum] = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" +SRC_URI[atty-0.2.14.sha256sum] = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +SRC_URI[bumpalo-3.12.0.sha256sum] = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" +SRC_URI[byteorder-1.4.3.sha256sum] = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +SRC_URI[cast-0.3.0.sha256sum] = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" +SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +SRC_URI[chrono-0.4.24.sha256sum] = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" +SRC_URI[ciborium-0.2.0.sha256sum] = "b0c137568cc60b904a7724001b35ce2630fd00d5d84805fbb608ab89509d788f" +SRC_URI[ciborium-io-0.2.0.sha256sum] = "346de753af073cc87b52b2083a506b38ac176a44cfb05497b622e27be899b369" +SRC_URI[ciborium-ll-0.2.0.sha256sum] = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b" +SRC_URI[clap-3.2.23.sha256sum] = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" +SRC_URI[clap_lex-0.2.4.sha256sum] = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +SRC_URI[criterion-0.4.0.sha256sum] = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb" +SRC_URI[criterion-plot-0.5.0.sha256sum] = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +SRC_URI[crossbeam-channel-0.5.7.sha256sum] = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c" +SRC_URI[crossbeam-deque-0.8.3.sha256sum] = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +SRC_URI[crossbeam-epoch-0.9.14.sha256sum] = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" +SRC_URI[crossbeam-utils-0.8.15.sha256sum] = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" +SRC_URI[either-1.8.1.sha256sum] = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" +SRC_URI[enumflags2-0.7.5.sha256sum] = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb" +SRC_URI[enumflags2_derive-0.7.4.sha256sum] = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae" +SRC_URI[form_urlencoded-1.1.0.sha256sum] = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +SRC_URI[futures-channel-0.3.27.sha256sum] = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac" +SRC_URI[futures-core-0.3.27.sha256sum] = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd" +SRC_URI[futures-executor-0.3.27.sha256sum] = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83" +SRC_URI[futures-macro-0.3.27.sha256sum] = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6" +SRC_URI[futures-task-0.3.27.sha256sum] = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879" +SRC_URI[futures-util-0.3.27.sha256sum] = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab" +SRC_URI[getrandom-0.2.8.sha256sum] = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +SRC_URI[half-1.8.2.sha256sum] = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" +SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +SRC_URI[heck-0.3.3.sha256sum] = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +SRC_URI[hermit-abi-0.2.6.sha256sum] = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +SRC_URI[idna-0.3.0.sha256sum] = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +SRC_URI[indexmap-1.9.2.sha256sum] = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" +SRC_URI[itertools-0.9.0.sha256sum] = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" +SRC_URI[itertools-0.10.5.sha256sum] = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +SRC_URI[itoa-1.0.6.sha256sum] = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" +SRC_URI[js-sys-0.3.61.sha256sum] = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" +SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +SRC_URI[libc-0.2.140.sha256sum] = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c" +SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +SRC_URI[memoffset-0.8.0.sha256sum] = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +SRC_URI[num-integer-0.1.45.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +SRC_URI[num_cpus-1.15.0.sha256sum] = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" +SRC_URI[once_cell-1.17.1.sha256sum] = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" +SRC_URI[oorandom-11.1.3.sha256sum] = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" +SRC_URI[os_str_bytes-6.5.0.sha256sum] = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" +SRC_URI[percent-encoding-2.2.0.sha256sum] = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +SRC_URI[pin-project-lite-0.2.9.sha256sum] = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +SRC_URI[pkg-config-0.3.26.sha256sum] = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" +SRC_URI[plotters-0.3.4.sha256sum] = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97" +SRC_URI[plotters-backend-0.3.4.sha256sum] = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142" +SRC_URI[plotters-svg-0.3.3.sha256sum] = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f" +SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +SRC_URI[proc-macro-crate-0.1.5.sha256sum] = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" +SRC_URI[proc-macro-crate-1.3.1.sha256sum] = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +SRC_URI[proc-macro2-1.0.53.sha256sum] = "ba466839c78239c09faf015484e5cc04860f88242cff4d03eb038f04b4699b73" +SRC_URI[quote-1.0.26.sha256sum] = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" +SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +SRC_URI[rayon-1.7.0.sha256sum] = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +SRC_URI[rayon-core-1.11.0.sha256sum] = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +SRC_URI[regex-1.7.2.sha256sum] = "cce168fea28d3e05f158bda4576cf0c844d5045bc2cc3620fa0292ed5bb5814c" +SRC_URI[regex-syntax-0.6.29.sha256sum] = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" +SRC_URI[ryu-1.0.13.sha256sum] = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" +SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +SRC_URI[serde-1.0.158.sha256sum] = "771d4d9c4163ee138805e12c710dd365e4f44be8be0503cb1bb9eb989425d9c9" +SRC_URI[serde_bytes-0.11.9.sha256sum] = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294" +SRC_URI[serde_derive-1.0.158.sha256sum] = "e801c1712f48475582b7696ac71e0ca34ebb30e09338425384269d9717c62cad" +SRC_URI[serde_json-1.0.94.sha256sum] = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea" +SRC_URI[serde_repr-0.1.12.sha256sum] = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab" +SRC_URI[slab-0.4.8.sha256sum] = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +SRC_URI[strum-0.18.0.sha256sum] = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b" +SRC_URI[strum_macros-0.18.0.sha256sum] = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c" +SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +SRC_URI[syn-2.0.8.sha256sum] = "bcc02725fd69ab9f26eab07fad303e2497fad6fb9eba4f96c4d1687bdf704ad9" +SRC_URI[system-deps-1.3.2.sha256sum] = "0f3ecc17269a19353b3558b313bba738b25d82993e30d62a18406a24aba4649b" +SRC_URI[textwrap-0.16.0.sha256sum] = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" +SRC_URI[thiserror-1.0.40.sha256sum] = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" +SRC_URI[thiserror-impl-1.0.40.sha256sum] = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" +SRC_URI[time-0.3.20.sha256sum] = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" +SRC_URI[time-core-0.1.0.sha256sum] = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" +SRC_URI[time-macros-0.2.8.sha256sum] = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36" +SRC_URI[tinytemplate-1.2.1.sha256sum] = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +SRC_URI[tinyvec-1.6.0.sha256sum] = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +SRC_URI[toml-0.5.11.sha256sum] = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +SRC_URI[toml_datetime-0.6.1.sha256sum] = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" +SRC_URI[toml_edit-0.19.8.sha256sum] = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13" +SRC_URI[unicode-bidi-0.3.13.sha256sum] = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +SRC_URI[unicode-ident-1.0.8.sha256sum] = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" +SRC_URI[unicode-normalization-0.1.22.sha256sum] = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +SRC_URI[unicode-segmentation-1.10.1.sha256sum] = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" +SRC_URI[url-2.3.1.sha256sum] = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +SRC_URI[uuid-1.3.0.sha256sum] = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79" +SRC_URI[version-compare-0.0.10.sha256sum] = "d63556a25bae6ea31b52e640d7c41d1ab27faba4ccb600013837a3d0b3994ca1" +SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +SRC_URI[walkdir-2.3.3.sha256sum] = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +SRC_URI[wasm-bindgen-0.2.84.sha256sum] = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" +SRC_URI[wasm-bindgen-backend-0.2.84.sha256sum] = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" +SRC_URI[wasm-bindgen-macro-0.2.84.sha256sum] = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" +SRC_URI[wasm-bindgen-macro-support-0.2.84.sha256sum] = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" +SRC_URI[wasm-bindgen-shared-0.2.84.sha256sum] = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" +SRC_URI[web-sys-0.3.61.sha256sum] = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" +SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +SRC_URI[winnow-0.4.0.sha256sum] = "deac0939bd6e4f24ab5919fbf751c97a8cfc8543bb083a305ed5c0c10bb241d1" +SRC_URI[zvariant_derive-3.12.0.sha256sum] = "34c20260af4b28b3275d6676c7e2a6be0d4332e8e0aba4616d34007fd84e462a" +SRC_URI[zvariant_utils-1.0.0.sha256sum] = "53b22993dbc4d128a17a3b6c92f1c63872dd67198537ee728d8b5d7c40640a8b" diff --git a/meta-selftest/recipes-extended/zvariant/zvariant-git-crates.inc b/meta-selftest/recipes-extended/zvariant/zvariant-git-crates.inc new file mode 100644 index 0000000000..f24cfe8e7c --- /dev/null +++ b/meta-selftest/recipes-extended/zvariant/zvariant-git-crates.inc @@ -0,0 +1,14 @@ +SRC_URI += "\ + git://github.com/gtk-rs/glib;protocol=https;nobranch=1;name=glib;destsuffix=glib;type=git-dependency \ + git://github.com/gtk-rs/sys;protocol=https;nobranch=1;name=glib-sys;destsuffix=glib-sys;subpath=glib-sys;type=git-dependency \ + git://github.com/gtk-rs/sys;protocol=https;nobranch=1;name=gobject-sys;destsuffix=gobject-sys;subpath=gobject-sys;type=git-dependency \ +" + +SRCREV_FORMAT .= "_glib" +SRCREV_glib = "c9ee583cea07830c099cdcccd33eda9ef705ea93" + +SRCREV_FORMAT .= "_glib-sys" +SRCREV_glib-sys = "5f35e26c65d24f8f018f643218de0f5807ba5f01" + +SRCREV_FORMAT .= "_gobject-sys" +SRCREV_gobject-sys = "5f35e26c65d24f8f018f643218de0f5807ba5f01" diff --git a/meta-selftest/recipes-extended/zvariant/zvariant/0001-Tweak-zvariant-crate-config.patch b/meta-selftest/recipes-extended/zvariant/zvariant/0001-Tweak-zvariant-crate-config.patch new file mode 100644 index 0000000000..ac6c5117bb --- /dev/null +++ b/meta-selftest/recipes-extended/zvariant/zvariant/0001-Tweak-zvariant-crate-config.patch @@ -0,0 +1,1292 @@ +From e85ce4136694899f0010d48f47c5e905c3a9d461 Mon Sep 17 00:00:00 2001 +From: Frederic Martinsons +Date: Thu, 23 Mar 2023 07:12:37 +0100 +Subject: [PATCH] Tweak zvariant crate config + +This library crate is a part of zbus project, and is aimed to +be published amongst the whole project. + +Nevertheless, this recipe is for showing example of real +code which uses a local registry via git url inside yocto +environment. + +I didn't find a real example of binary crate that uses git +dependency but it seems to me a very common use case +when we are working on multiple local crates that are not +aimed to be published on public registry. + +Long story short, this patch add a modified Cargo.toml +to use the zvariant_derive dependency from crates.io instead +of zbus local one and a pre generated Cargo.lock in order +to make cargo patch process inside cargo_common.bbclass work + +It also copied the LICENCE file from zbus project instead +of symlink to it. + +Upstream-Status: Inappropriate +Signed-off-by: Frederic Martinsons +--- + zvariant/Cargo.lock | 1198 +++++++++++++++++++++++++++++++++++++++++++ + zvariant/Cargo.toml | 2 +- + zvariant/LICENSE | 24 +- + 3 files changed, 1222 insertions(+), 2 deletions(-) + create mode 100644 zvariant/Cargo.lock + mode change 120000 => 100644 zvariant/LICENSE + +diff --git a/zvariant/Cargo.lock b/zvariant/Cargo.lock +new file mode 100644 +index 00000000..02a83d42 +--- /dev/null ++++ b/zvariant/Cargo.lock +@@ -0,0 +1,1198 @@ ++# This file is automatically @generated by Cargo. ++# It is not intended for manual editing. ++version = 3 ++ ++[[package]] ++name = "anes" ++version = "0.1.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" ++ ++[[package]] ++name = "anyhow" ++version = "1.0.70" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" ++ ++[[package]] ++name = "arrayvec" ++version = "0.7.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" ++dependencies = [ ++ "serde", ++] ++ ++[[package]] ++name = "atty" ++version = "0.2.14" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" ++dependencies = [ ++ "hermit-abi 0.1.19", ++ "libc", ++ "winapi", ++] ++ ++[[package]] ++name = "autocfg" ++version = "1.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" ++ ++[[package]] ++name = "bitflags" ++version = "1.3.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" ++ ++[[package]] ++name = "bumpalo" ++version = "3.12.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" ++ ++[[package]] ++name = "byteorder" ++version = "1.4.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" ++ ++[[package]] ++name = "cast" ++version = "0.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" ++ ++[[package]] ++name = "cfg-if" ++version = "1.0.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" ++ ++[[package]] ++name = "chrono" ++version = "0.4.24" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" ++dependencies = [ ++ "num-integer", ++ "num-traits", ++ "serde", ++] ++ ++[[package]] ++name = "ciborium" ++version = "0.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b0c137568cc60b904a7724001b35ce2630fd00d5d84805fbb608ab89509d788f" ++dependencies = [ ++ "ciborium-io", ++ "ciborium-ll", ++ "serde", ++] ++ ++[[package]] ++name = "ciborium-io" ++version = "0.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "346de753af073cc87b52b2083a506b38ac176a44cfb05497b622e27be899b369" ++ ++[[package]] ++name = "ciborium-ll" ++version = "0.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b" ++dependencies = [ ++ "ciborium-io", ++ "half", ++] ++ ++[[package]] ++name = "clap" ++version = "3.2.23" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" ++dependencies = [ ++ "bitflags", ++ "clap_lex", ++ "indexmap", ++ "textwrap", ++] ++ ++[[package]] ++name = "clap_lex" ++version = "0.2.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" ++dependencies = [ ++ "os_str_bytes", ++] ++ ++[[package]] ++name = "criterion" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb" ++dependencies = [ ++ "anes", ++ "atty", ++ "cast", ++ "ciborium", ++ "clap", ++ "criterion-plot", ++ "itertools 0.10.5", ++ "lazy_static", ++ "num-traits", ++ "oorandom", ++ "plotters", ++ "rayon", ++ "regex", ++ "serde", ++ "serde_derive", ++ "serde_json", ++ "tinytemplate", ++ "walkdir", ++] ++ ++[[package]] ++name = "criterion-plot" ++version = "0.5.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" ++dependencies = [ ++ "cast", ++ "itertools 0.10.5", ++] ++ ++[[package]] ++name = "crossbeam-channel" ++version = "0.5.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c" ++dependencies = [ ++ "cfg-if", ++ "crossbeam-utils", ++] ++ ++[[package]] ++name = "crossbeam-deque" ++version = "0.8.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" ++dependencies = [ ++ "cfg-if", ++ "crossbeam-epoch", ++ "crossbeam-utils", ++] ++ ++[[package]] ++name = "crossbeam-epoch" ++version = "0.9.14" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" ++dependencies = [ ++ "autocfg", ++ "cfg-if", ++ "crossbeam-utils", ++ "memoffset", ++ "scopeguard", ++] ++ ++[[package]] ++name = "crossbeam-utils" ++version = "0.8.15" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" ++dependencies = [ ++ "cfg-if", ++] ++ ++[[package]] ++name = "either" ++version = "1.8.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" ++ ++[[package]] ++name = "enumflags2" ++version = "0.7.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb" ++dependencies = [ ++ "enumflags2_derive", ++ "serde", ++] ++ ++[[package]] ++name = "enumflags2_derive" ++version = "0.7.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn 1.0.109", ++] ++ ++[[package]] ++name = "form_urlencoded" ++version = "1.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" ++dependencies = [ ++ "percent-encoding", ++] ++ ++[[package]] ++name = "futures-channel" ++version = "0.3.27" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac" ++dependencies = [ ++ "futures-core", ++] ++ ++[[package]] ++name = "futures-core" ++version = "0.3.27" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd" ++ ++[[package]] ++name = "futures-executor" ++version = "0.3.27" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83" ++dependencies = [ ++ "futures-core", ++ "futures-task", ++ "futures-util", ++] ++ ++[[package]] ++name = "futures-macro" ++version = "0.3.27" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn 1.0.109", ++] ++ ++[[package]] ++name = "futures-task" ++version = "0.3.27" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879" ++ ++[[package]] ++name = "futures-util" ++version = "0.3.27" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab" ++dependencies = [ ++ "futures-core", ++ "futures-macro", ++ "futures-task", ++ "pin-project-lite", ++ "pin-utils", ++ "slab", ++] ++ ++[[package]] ++name = "getrandom" ++version = "0.2.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" ++dependencies = [ ++ "cfg-if", ++ "libc", ++ "wasi", ++] ++ ++[[package]] ++name = "glib" ++version = "0.10.0" ++source = "git+https://github.com/gtk-rs/glib?rev=c9ee583cea0#c9ee583cea07830c099cdcccd33eda9ef705ea93" ++dependencies = [ ++ "bitflags", ++ "futures-channel", ++ "futures-core", ++ "futures-executor", ++ "futures-task", ++ "futures-util", ++ "glib-macros", ++ "glib-sys", ++ "gobject-sys", ++ "libc", ++ "once_cell", ++] ++ ++[[package]] ++name = "glib-macros" ++version = "0.10.0" ++source = "git+https://github.com/gtk-rs/glib?rev=c9ee583cea0#c9ee583cea07830c099cdcccd33eda9ef705ea93" ++dependencies = [ ++ "anyhow", ++ "heck", ++ "itertools 0.9.0", ++ "proc-macro-crate 0.1.5", ++ "proc-macro-error", ++ "proc-macro2", ++ "quote", ++ "syn 1.0.109", ++] ++ ++[[package]] ++name = "glib-sys" ++version = "0.10.0" ++source = "git+https://github.com/gtk-rs/sys#5f35e26c65d24f8f018f643218de0f5807ba5f01" ++dependencies = [ ++ "libc", ++ "system-deps", ++] ++ ++[[package]] ++name = "gobject-sys" ++version = "0.10.0" ++source = "git+https://github.com/gtk-rs/sys#5f35e26c65d24f8f018f643218de0f5807ba5f01" ++dependencies = [ ++ "glib-sys", ++ "libc", ++ "system-deps", ++] ++ ++[[package]] ++name = "half" ++version = "1.8.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" ++ ++[[package]] ++name = "hashbrown" ++version = "0.12.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" ++ ++[[package]] ++name = "heck" ++version = "0.3.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" ++dependencies = [ ++ "unicode-segmentation", ++] ++ ++[[package]] ++name = "hermit-abi" ++version = "0.1.19" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" ++dependencies = [ ++ "libc", ++] ++ ++[[package]] ++name = "hermit-abi" ++version = "0.2.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" ++dependencies = [ ++ "libc", ++] ++ ++[[package]] ++name = "idna" ++version = "0.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" ++dependencies = [ ++ "unicode-bidi", ++ "unicode-normalization", ++] ++ ++[[package]] ++name = "indexmap" ++version = "1.9.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" ++dependencies = [ ++ "autocfg", ++ "hashbrown", ++] ++ ++[[package]] ++name = "itertools" ++version = "0.9.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" ++dependencies = [ ++ "either", ++] ++ ++[[package]] ++name = "itertools" ++version = "0.10.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" ++dependencies = [ ++ "either", ++] ++ ++[[package]] ++name = "itoa" ++version = "1.0.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" ++ ++[[package]] ++name = "js-sys" ++version = "0.3.61" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" ++dependencies = [ ++ "wasm-bindgen", ++] ++ ++[[package]] ++name = "lazy_static" ++version = "1.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" ++ ++[[package]] ++name = "libc" ++version = "0.2.140" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c" ++ ++[[package]] ++name = "log" ++version = "0.4.17" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" ++dependencies = [ ++ "cfg-if", ++] ++ ++[[package]] ++name = "memchr" ++version = "2.5.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" ++ ++[[package]] ++name = "memoffset" ++version = "0.8.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" ++dependencies = [ ++ "autocfg", ++] ++ ++[[package]] ++name = "num-integer" ++version = "0.1.45" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" ++dependencies = [ ++ "autocfg", ++ "num-traits", ++] ++ ++[[package]] ++name = "num-traits" ++version = "0.2.15" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" ++dependencies = [ ++ "autocfg", ++] ++ ++[[package]] ++name = "num_cpus" ++version = "1.15.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" ++dependencies = [ ++ "hermit-abi 0.2.6", ++ "libc", ++] ++ ++[[package]] ++name = "once_cell" ++version = "1.17.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" ++ ++[[package]] ++name = "oorandom" ++version = "11.1.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" ++ ++[[package]] ++name = "os_str_bytes" ++version = "6.5.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" ++ ++[[package]] ++name = "percent-encoding" ++version = "2.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" ++ ++[[package]] ++name = "pin-project-lite" ++version = "0.2.9" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" ++ ++[[package]] ++name = "pin-utils" ++version = "0.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" ++ ++[[package]] ++name = "pkg-config" ++version = "0.3.26" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" ++ ++[[package]] ++name = "plotters" ++version = "0.3.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97" ++dependencies = [ ++ "num-traits", ++ "plotters-backend", ++ "plotters-svg", ++ "wasm-bindgen", ++ "web-sys", ++] ++ ++[[package]] ++name = "plotters-backend" ++version = "0.3.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142" ++ ++[[package]] ++name = "plotters-svg" ++version = "0.3.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f" ++dependencies = [ ++ "plotters-backend", ++] ++ ++[[package]] ++name = "ppv-lite86" ++version = "0.2.17" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" ++ ++[[package]] ++name = "proc-macro-crate" ++version = "0.1.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" ++dependencies = [ ++ "toml", ++] ++ ++[[package]] ++name = "proc-macro-crate" ++version = "1.3.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" ++dependencies = [ ++ "once_cell", ++ "toml_edit", ++] ++ ++[[package]] ++name = "proc-macro-error" ++version = "1.0.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" ++dependencies = [ ++ "proc-macro-error-attr", ++ "proc-macro2", ++ "quote", ++ "syn 1.0.109", ++ "version_check", ++] ++ ++[[package]] ++name = "proc-macro-error-attr" ++version = "1.0.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "version_check", ++] ++ ++[[package]] ++name = "proc-macro2" ++version = "1.0.53" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ba466839c78239c09faf015484e5cc04860f88242cff4d03eb038f04b4699b73" ++dependencies = [ ++ "unicode-ident", ++] ++ ++[[package]] ++name = "quote" ++version = "1.0.26" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" ++dependencies = [ ++ "proc-macro2", ++] ++ ++[[package]] ++name = "rand" ++version = "0.8.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" ++dependencies = [ ++ "libc", ++ "rand_chacha", ++ "rand_core", ++] ++ ++[[package]] ++name = "rand_chacha" ++version = "0.3.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" ++dependencies = [ ++ "ppv-lite86", ++ "rand_core", ++] ++ ++[[package]] ++name = "rand_core" ++version = "0.6.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" ++dependencies = [ ++ "getrandom", ++] ++ ++[[package]] ++name = "rayon" ++version = "1.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" ++dependencies = [ ++ "either", ++ "rayon-core", ++] ++ ++[[package]] ++name = "rayon-core" ++version = "1.11.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" ++dependencies = [ ++ "crossbeam-channel", ++ "crossbeam-deque", ++ "crossbeam-utils", ++ "num_cpus", ++] ++ ++[[package]] ++name = "regex" ++version = "1.7.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cce168fea28d3e05f158bda4576cf0c844d5045bc2cc3620fa0292ed5bb5814c" ++dependencies = [ ++ "regex-syntax", ++] ++ ++[[package]] ++name = "regex-syntax" ++version = "0.6.29" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" ++ ++[[package]] ++name = "ryu" ++version = "1.0.13" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" ++ ++[[package]] ++name = "same-file" ++version = "1.0.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" ++dependencies = [ ++ "winapi-util", ++] ++ ++[[package]] ++name = "scopeguard" ++version = "1.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" ++ ++[[package]] ++name = "serde" ++version = "1.0.158" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "771d4d9c4163ee138805e12c710dd365e4f44be8be0503cb1bb9eb989425d9c9" ++dependencies = [ ++ "serde_derive", ++] ++ ++[[package]] ++name = "serde_bytes" ++version = "0.11.9" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294" ++dependencies = [ ++ "serde", ++] ++ ++[[package]] ++name = "serde_derive" ++version = "1.0.158" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e801c1712f48475582b7696ac71e0ca34ebb30e09338425384269d9717c62cad" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn 2.0.8", ++] ++ ++[[package]] ++name = "serde_json" ++version = "1.0.94" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea" ++dependencies = [ ++ "itoa", ++ "ryu", ++ "serde", ++] ++ ++[[package]] ++name = "serde_repr" ++version = "0.1.12" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn 2.0.8", ++] ++ ++[[package]] ++name = "slab" ++version = "0.4.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" ++dependencies = [ ++ "autocfg", ++] ++ ++[[package]] ++name = "static_assertions" ++version = "1.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" ++ ++[[package]] ++name = "strum" ++version = "0.18.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b" ++ ++[[package]] ++name = "strum_macros" ++version = "0.18.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c" ++dependencies = [ ++ "heck", ++ "proc-macro2", ++ "quote", ++ "syn 1.0.109", ++] ++ ++[[package]] ++name = "syn" ++version = "1.0.109" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "unicode-ident", ++] ++ ++[[package]] ++name = "syn" ++version = "2.0.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "bcc02725fd69ab9f26eab07fad303e2497fad6fb9eba4f96c4d1687bdf704ad9" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "unicode-ident", ++] ++ ++[[package]] ++name = "system-deps" ++version = "1.3.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0f3ecc17269a19353b3558b313bba738b25d82993e30d62a18406a24aba4649b" ++dependencies = [ ++ "heck", ++ "pkg-config", ++ "strum", ++ "strum_macros", ++ "thiserror", ++ "toml", ++ "version-compare", ++] ++ ++[[package]] ++name = "textwrap" ++version = "0.16.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" ++ ++[[package]] ++name = "thiserror" ++version = "1.0.40" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" ++dependencies = [ ++ "thiserror-impl", ++] ++ ++[[package]] ++name = "thiserror-impl" ++version = "1.0.40" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn 2.0.8", ++] ++ ++[[package]] ++name = "time" ++version = "0.3.20" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" ++dependencies = [ ++ "serde", ++ "time-core", ++ "time-macros", ++] ++ ++[[package]] ++name = "time-core" ++version = "0.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" ++ ++[[package]] ++name = "time-macros" ++version = "0.2.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36" ++dependencies = [ ++ "time-core", ++] ++ ++[[package]] ++name = "tinytemplate" ++version = "1.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" ++dependencies = [ ++ "serde", ++ "serde_json", ++] ++ ++[[package]] ++name = "tinyvec" ++version = "1.6.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" ++dependencies = [ ++ "tinyvec_macros", ++] ++ ++[[package]] ++name = "tinyvec_macros" ++version = "0.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" ++ ++[[package]] ++name = "toml" ++version = "0.5.11" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" ++dependencies = [ ++ "serde", ++] ++ ++[[package]] ++name = "toml_datetime" ++version = "0.6.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" ++ ++[[package]] ++name = "toml_edit" ++version = "0.19.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13" ++dependencies = [ ++ "indexmap", ++ "toml_datetime", ++ "winnow", ++] ++ ++[[package]] ++name = "unicode-bidi" ++version = "0.3.13" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" ++ ++[[package]] ++name = "unicode-ident" ++version = "1.0.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" ++ ++[[package]] ++name = "unicode-normalization" ++version = "0.1.22" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" ++dependencies = [ ++ "tinyvec", ++] ++ ++[[package]] ++name = "unicode-segmentation" ++version = "1.10.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" ++ ++[[package]] ++name = "url" ++version = "2.3.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" ++dependencies = [ ++ "form_urlencoded", ++ "idna", ++ "percent-encoding", ++ "serde", ++] ++ ++[[package]] ++name = "uuid" ++version = "1.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79" ++dependencies = [ ++ "serde", ++] ++ ++[[package]] ++name = "version-compare" ++version = "0.0.10" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d63556a25bae6ea31b52e640d7c41d1ab27faba4ccb600013837a3d0b3994ca1" ++ ++[[package]] ++name = "version_check" ++version = "0.9.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" ++ ++[[package]] ++name = "walkdir" ++version = "2.3.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" ++dependencies = [ ++ "same-file", ++ "winapi-util", ++] ++ ++[[package]] ++name = "wasi" ++version = "0.11.0+wasi-snapshot-preview1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" ++ ++[[package]] ++name = "wasm-bindgen" ++version = "0.2.84" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" ++dependencies = [ ++ "cfg-if", ++ "wasm-bindgen-macro", ++] ++ ++[[package]] ++name = "wasm-bindgen-backend" ++version = "0.2.84" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" ++dependencies = [ ++ "bumpalo", ++ "log", ++ "once_cell", ++ "proc-macro2", ++ "quote", ++ "syn 1.0.109", ++ "wasm-bindgen-shared", ++] ++ ++[[package]] ++name = "wasm-bindgen-macro" ++version = "0.2.84" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" ++dependencies = [ ++ "quote", ++ "wasm-bindgen-macro-support", ++] ++ ++[[package]] ++name = "wasm-bindgen-macro-support" ++version = "0.2.84" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn 1.0.109", ++ "wasm-bindgen-backend", ++ "wasm-bindgen-shared", ++] ++ ++[[package]] ++name = "wasm-bindgen-shared" ++version = "0.2.84" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" ++ ++[[package]] ++name = "web-sys" ++version = "0.3.61" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" ++dependencies = [ ++ "js-sys", ++ "wasm-bindgen", ++] ++ ++[[package]] ++name = "winapi" ++version = "0.3.9" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" ++dependencies = [ ++ "winapi-i686-pc-windows-gnu", ++ "winapi-x86_64-pc-windows-gnu", ++] ++ ++[[package]] ++name = "winapi-i686-pc-windows-gnu" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" ++ ++[[package]] ++name = "winapi-util" ++version = "0.1.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" ++dependencies = [ ++ "winapi", ++] ++ ++[[package]] ++name = "winapi-x86_64-pc-windows-gnu" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" ++ ++[[package]] ++name = "winnow" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "deac0939bd6e4f24ab5919fbf751c97a8cfc8543bb083a305ed5c0c10bb241d1" ++dependencies = [ ++ "memchr", ++] ++ ++[[package]] ++name = "zvariant" ++version = "3.12.0" ++dependencies = [ ++ "arrayvec", ++ "byteorder", ++ "chrono", ++ "criterion", ++ "enumflags2", ++ "glib", ++ "libc", ++ "rand", ++ "serde", ++ "serde_bytes", ++ "serde_json", ++ "serde_repr", ++ "static_assertions", ++ "time", ++ "url", ++ "uuid", ++ "zvariant_derive", ++] ++ ++[[package]] ++name = "zvariant_derive" ++version = "3.12.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "34c20260af4b28b3275d6676c7e2a6be0d4332e8e0aba4616d34007fd84e462a" ++dependencies = [ ++ "proc-macro-crate 1.3.1", ++ "proc-macro2", ++ "quote", ++ "syn 1.0.109", ++ "zvariant_utils", ++] ++ ++[[package]] ++name = "zvariant_utils" ++version = "1.0.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "53b22993dbc4d128a17a3b6c92f1c63872dd67198537ee728d8b5d7c40640a8b" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn 1.0.109", ++] +diff --git a/zvariant/Cargo.toml b/zvariant/Cargo.toml +index 45367729..6981862a 100644 +--- a/zvariant/Cargo.toml ++++ b/zvariant/Cargo.toml +@@ -27,7 +27,7 @@ byteorder = "1.4.3" + serde = { version = "1.0", features = ["derive"] } + arrayvec = { version = "0.7.2", features = ["serde"], optional = true } + enumflags2 = { version = "0.7.5", features = ["serde"], optional = true } +-zvariant_derive = { version = "=3.12.0", path = "../zvariant_derive" } ++zvariant_derive = "3.12.0" + serde_bytes = { version = "0.11", optional = true } + static_assertions = "1.1.0" + libc = "0.2.137" +diff --git a/zvariant/LICENSE b/zvariant/LICENSE +deleted file mode 120000 +index ea5b6064..00000000 +--- a/zvariant/LICENSE ++++ /dev/null +@@ -1 +0,0 @@ +-../LICENSE +\ No newline at end of file +diff --git a/zvariant/LICENSE b/zvariant/LICENSE +new file mode 100644 +index 00000000..31aa7938 +--- /dev/null ++++ b/zvariant/LICENSE +@@ -0,0 +1,23 @@ ++Permission is hereby granted, free of charge, to any ++person obtaining a copy of this software and associated ++documentation files (the "Software"), to deal in the ++Software without restriction, including without ++limitation the rights to use, copy, modify, merge, ++publish, distribute, sublicense, and/or sell copies of ++the Software, and to permit persons to whom the Software ++is furnished to do so, subject to the following ++conditions: ++ ++The above copyright notice and this permission notice ++shall be included in all copies or substantial portions ++of the Software. ++ ++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ++ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED ++TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A ++PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT ++SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY ++CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR ++IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ++DEALINGS IN THE SOFTWARE. +-- +2.34.1 + diff --git a/meta-selftest/recipes-extended/zvariant/zvariant_3.12.0.bb b/meta-selftest/recipes-extended/zvariant/zvariant_3.12.0.bb new file mode 100644 index 0000000000..ae66cea390 --- /dev/null +++ b/meta-selftest/recipes-extended/zvariant/zvariant_3.12.0.bb @@ -0,0 +1,27 @@ +SUMMARY = "Provides API for encoding/decoding of data to/from D-Bus wire format" +DESCRIPTION = "This crate provides API for encoding/decoding of data to/from D-Bus wire format.\ +This binary wire format is simple and very efficient and hence useful outside of D-Bus context as well.\ +A modified form of this format, GVariant is very commonly used for efficient storage of arbitrary \ +data and is also supported by this crate." +HOMEPAGE = "https://gitlab.freedesktop.org/dbus/zbus/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b377b220f43d747efdec40d69fcaa69d" + +SRC_URI = " \ + git://gitlab.freedesktop.org/dbus/zbus;protocol=https;branch=main;subpath=zvariant \ + file://0001-Tweak-zvariant-crate-config.patch;striplevel=2 \ +" + +SRCREV = "07506776fab5f58e029760bb4b288f670c7eecd6" +S = "${WORKDIR}/zvariant" + +python do_clean_lic_file_symlink() { + bb.utils.remove("LICENCE") +} + +addtask clean_lic_file_symlink after do_unpack before do_patch + +inherit cargo cargo-update-recipe-crates + +require ${BPN}-crates.inc +require ${BPN}-git-crates.inc diff --git a/meta/lib/oeqa/selftest/cases/devtool.py b/meta/lib/oeqa/selftest/cases/devtool.py index 81d02017c1..94873fd19f 100644 --- a/meta/lib/oeqa/selftest/cases/devtool.py +++ b/meta/lib/oeqa/selftest/cases/devtool.py @@ -848,6 +848,99 @@ class DevtoolModifyTests(DevtoolBase): # Try building bitbake(testrecipe) + def test_devtool_modify_git_crates_subpath(self): + # This tests two things in devtool context: + # - that we support local git dependencies for cargo based recipe + # - that we support patches in SRC_URI when git url contains subpath parameter + + # Check preconditions: + # recipe inherits cargo + # git:// uri with a subpath as the main package + # some crate:// in SRC_URI + # others git:// in SRC_URI + # cointains a patch + testrecipe = 'zvariant' + bb_vars = get_bb_vars(['SRC_URI', 'FILE', 'WORKDIR', 'CARGO_HOME'], testrecipe) + recipefile = bb_vars['FILE'] + workdir = bb_vars['WORKDIR'] + cargo_home = bb_vars['CARGO_HOME'] + src_uri = bb_vars['SRC_URI'].split() + self.assertTrue(src_uri[0].startswith('git://'), + 'This test expects the %s recipe to have a git repo has its main uri' % testrecipe) + self.assertIn(';subpath=', src_uri[0], + 'This test expects the %s recipe to have a git uri with subpath' % testrecipe) + self.assertTrue(any([uri.startswith('crate://') for uri in src_uri]), + 'This test expects the %s recipe to have some crates in its src uris' % testrecipe) + self.assertGreater(sum(map(lambda x:x.startswith('git://'), src_uri)), 2, + 'This test expects the %s recipe to have several git:// uris' % testrecipe) + self.assertTrue(any([uri.startswith('file://') and '.patch' in uri for uri in src_uri]), + 'This test expects the %s recipe to have a patch in its src uris' % testrecipe) + + self._test_recipe_contents(recipefile, {}, ['cargo']) + + # Clean up anything in the workdir/sysroot/sstate cache + bitbake('%s -c cleansstate' % testrecipe) + # Try modifying a recipe + tempdir = tempfile.mkdtemp(prefix='devtoolqa') + self.track_for_cleanup(tempdir) + self.track_for_cleanup(self.workspacedir) + self.add_command_to_tearDown('bitbake -c clean %s' % testrecipe) + self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') + result = runCmd('devtool modify %s -x %s' % (testrecipe, tempdir)) + self.assertExists(os.path.join(tempdir, 'Cargo.toml'), 'Extracted source could not be found') + self.assertExists(os.path.join(self.workspacedir, 'conf', 'layer.conf'), 'Workspace directory not created. devtool output: %s' % result.output) + matches = glob.glob(os.path.join(self.workspacedir, 'appends', 'zvariant_*.bbappend')) + self.assertTrue(matches, 'bbappend not created') + # Test devtool status + result = runCmd('devtool status') + self.assertIn(testrecipe, result.output) + self.assertIn(tempdir, result.output) + # Check git repo + self._check_src_repo(tempdir) + # Check that the patch is correctly applied + # last commit message in the tree must contain + # %% original patch: + # .. + patchname = None + for uri in src_uri: + if uri.startswith('file://') and '.patch' in uri: + patchname = uri.replace("file://", "").partition('.patch')[0] + '.patch' + self.assertIsNotNone(patchname) + result = runCmd('git -C %s log -1' % tempdir) + self.assertIn("%%%% original patch: %s" % patchname, result.output) + + # Configure the recipe to check that the git dependencies are correctly patched in cargo config + bitbake('-c configure %s' % testrecipe) + + cargo_config_path = os.path.join(cargo_home, 'config') + with open(cargo_config_path, "r") as f: + cargo_config_contents = [line.strip('\n') for line in f.readlines()] + + # Get back git dependencies of the recipe (ignoring the main one) + # and check that they are all correctly patched to be fetched locally + git_deps = [uri for uri in src_uri if uri.startswith("git://")][1:] + for git_dep in git_deps: + raw_url, _, raw_parms = git_dep.partition(";") + parms = {} + for parm in raw_parms.split(";"): + name_parm, _, value_parm = parm.partition('=') + parms[name_parm]=value_parm + self.assertIn('protocol', parms, 'git dependencies uri should contain the "protocol" parameter') + self.assertIn('name', parms, 'git dependencies uri should contain the "name" parameter') + self.assertIn('destsuffix', parms, 'git dependencies uri should contain the "destsuffix" parameter') + self.assertIn('type', parms, 'git dependencies uri should contain the "type" parameter') + self.assertEqual(parms['type'], 'git-dependency', 'git dependencies uri should have "type=git-dependency"') + raw_url = raw_url.replace("git://", '%s://' % parms['protocol']) + patch_line = '[patch."%s"]' % raw_url + path_patched = os.path.join(workdir, parms['destsuffix']) + path_override_line = '%s = { path = "%s" }' % (parms['name'], path_patched) + # Would have been better to use tomllib to read this file :/ + self.assertIn(patch_line, cargo_config_contents) + self.assertIn(path_override_line, cargo_config_contents) + + # Try to package the recipe + bitbake('-c package_qa %s' % testrecipe) + def test_devtool_modify_localfiles(self): # Check preconditions testrecipe = 'lighttpd' From patchwork Fri Mar 31 05:45:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?RnLDqWTDqXJpYyBNYXJ0aW5zb25z?= X-Patchwork-Id: 21995 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 340E2C77B60 for ; Fri, 31 Mar 2023 05:45:46 +0000 (UTC) Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) by mx.groups.io with SMTP id smtpd.web11.48109.1680241532941983417 for ; Thu, 30 Mar 2023 22:45:39 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=Gplt0hVo; spf=pass (domain: gmail.com, ip: 209.85.128.48, mailfrom: frederic.martinsons@gmail.com) Received: by mail-wm1-f48.google.com with SMTP id o24-20020a05600c511800b003ef59905f26so13096197wms.2 for ; Thu, 30 Mar 2023 22:45:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680241538; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=xGH29FceE2dVUctPUs6ZvBTWuC/FcRbNfd59SqGc7T0=; b=Gplt0hVoJzEh6MtoOYy82t0ylMu49Oog8rmUim/DZ/7MkjYoL5QLl3ZbLwmMwt/TLY CzL6CTBqATL3YTchcjqOYINCq/Ut4afRX/rTTTluAlIgb3d/0FvTg5aIPyzBKvauCOpE I0malRy+fX/EAZZgBJyVKD8sak/YAMflmMsBJv+fbwNKwqMYXNhY9uHPUJwccr70Y8at h0K5+fOi1VNE4Wu7DNQkVeehFkyAbCvsGwmQVutsngskx/HM8z/XWOGeZKGIy1YWQg7f XB8ymmg7opApKSyxFsRPZEiGyT7XI7L/NWjB/OCFLAEImE0Tifa3FDYnR+A7bb2qkOnK 0k9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680241538; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xGH29FceE2dVUctPUs6ZvBTWuC/FcRbNfd59SqGc7T0=; b=cz+UEpE+xniHVDPPLQogSU1q5sUOILWFUCPekVBg8ilPkCuuIEH4XNWKytZEhaK6Cn gE7GoDlG7eXQz1jsiBJJo0gVosGM1YaHlxKBBDCv/0apjPRQQPc6lCr9iuiKkNv4SXmB vNrelILKHzvLGOPTv/MgfKljvyKfUMlNj2DcAhxaTkL5TxmwGkfQ8BDpo8jbUCyggZwg fbwFWyluYdWTKxNlsDlZrirPa34AArFhyHHtvyccOrWFJ01crwMePWymIIWmKrSZkipH 37ntcKucBtEiTVjLpCNEQ+G+7i9lhsougTOtu9NaOC6cIk9PCIkY3c2aWDUFq9pQi32c wzMQ== X-Gm-Message-State: AAQBX9fBHc1I560Y1X6se7TvQ0/dkA/20gg24QMyAfsnp98KLElRZr6Q bDb7idipM3gjb6Y1JOIABINSL5UN+H8= X-Google-Smtp-Source: AKy350YCgyNS9NEsrGUOlEDbbcKpggX8hc77OEPYEwcjT4x0mSSn6PrQaK8d8QhHwLTErRlhp94R2Q== X-Received: by 2002:a1c:7714:0:b0:3ed:ea48:cd92 with SMTP id t20-20020a1c7714000000b003edea48cd92mr12790685wmi.15.1680241537802; Thu, 30 Mar 2023 22:45:37 -0700 (PDT) Received: from work-pc.core.sigfox.net ([2a01:e0a:8d5:c6c0:72d4:654d:401f:66ef]) by smtp.gmail.com with ESMTPSA id hg13-20020a05600c538d00b003ed793d9de0sm12664307wmb.1.2023.03.30.22.45.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Mar 2023 22:45:37 -0700 (PDT) From: frederic.martinsons@gmail.com To: openembedded-core@lists.openembedded.org Cc: alex.kiernan@gmail.com Subject: [PATCH V6 6/6] cargo-update-recipe-crates: force name overrides Date: Fri, 31 Mar 2023 07:45:27 +0200 Message-Id: <1db80cb09c1495bf2c7ae98ebc74300efc6949ae.1680238655.git.frederic.martinsons@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 31 Mar 2023 05:45:46 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/179398 From: Frederic Martinsons A project can have multiple Cargo.lock (provides multiple binaries for example) and each one can depends on differenct version of the same crates. Even within the same Cargo.lock file, it is possible to have different version of same crates. To avoid conflicts, override the name with the version for all crates checksum Moreover, when searching for Cargo.lock, we should ignore specific dir like .git (no use to walk down there) and .pc (because it can have a Cargo.lock if this file was patched) Signed-off-by: Frederic Martinsons --- .../cargo-update-recipe-crates.bbclass | 35 +++++++++---------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/meta/classes-recipe/cargo-update-recipe-crates.bbclass b/meta/classes-recipe/cargo-update-recipe-crates.bbclass index daa363b0dd..322b4e4d79 100644 --- a/meta/classes-recipe/cargo-update-recipe-crates.bbclass +++ b/meta/classes-recipe/cargo-update-recipe-crates.bbclass @@ -38,25 +38,12 @@ def get_crates(f): if not crates_candidates: raise ValueError("Unable to find any candidate crates that use crates.io") - # Build a list of crates name that have multiple version - crates_multiple_vers = [] - tmp = [] - for c in crates_candidates: - if c['name'] in tmp: - crates_multiple_vers.append(c['name']) - else: - tmp.append(c['name']) - # Update crates uri and their checksum, to avoid name clashing on the checksum - # we need to rename crates of the same name but different version + # we need to rename crates with name and version to have a unique key cksum_list = '' for c in crates_candidates: - if c['name'] in crates_multiple_vers: - rename = "%s-%s" % (c['name'], c['version']) - c_list += '\n crate://crates.io/%s/%s;name=%s \\\' % (c['name'], c['version'], rename) - else: - rename = c['name'] - c_list += '\n crate://crates.io/%s/%s \\\' % (c['name'], c['version']) + rename = "%s-%s" % (c['name'], c['version']) + c_list += '\n crate://crates.io/%s/%s;name=%s \\\' % (c['name'], c['version'], rename) if 'checksum' in c: cksum_list += '\nSRC_URI[%s.sha256sum] = "%s"' % (rename, c['checksum']) @@ -69,12 +56,22 @@ import os crates = "# Autogenerated with 'bitbake -c update_crates ${PN}'\n\n" found = False for root, dirs, files in os.walk('${CARGO_LOCK_SRC_DIR}'): + # ignore git and patches directories + if root.startswith(os.path.join('${CARGO_LOCK_SRC_DIR}', '.pc')): + continue + if root.startswith(os.path.join('${CARGO_LOCK_SRC_DIR}', '.git')): + continue for file in files: if file == 'Cargo.lock': - crates += get_crates(os.path.join(root, file)) - found = True + try: + cargo_lock_path = os.path.join(root, file) + crates += get_crates(os.path.join(root, file)) + except Exception as e: + raise ValueError("Cannot parse '%s'" % cargo_lock_path) from e + else: + found = True if not found: - raise ValueError("Unable to find Cargo.lock in ${CARGO_LOCK_SRC_DIR}") + raise ValueError("Unable to find any Cargo.lock in ${CARGO_LOCK_SRC_DIR}") open("${TARGET_FILE}", 'w').write(crates) EOF