From patchwork Sat Apr 1 09:30:46 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: 22074 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 8352AC76196 for ; Sat, 1 Apr 2023 09:31:07 +0000 (UTC) Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) by mx.groups.io with SMTP id smtpd.web11.17483.1680341457001012790 for ; Sat, 01 Apr 2023 02:30:57 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=POzg8OKg; spf=pass (domain: gmail.com, ip: 209.85.221.44, mailfrom: frederic.martinsons@gmail.com) Received: by mail-wr1-f44.google.com with SMTP id e18so24688964wra.9 for ; Sat, 01 Apr 2023 02:30:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680341455; 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=POzg8OKgIPgqybNWLw2sQJvd/lrkZPYCmmPfcHlj8l3unXKCt3tX1+BBib+Ac9DY0V 2EMoxixoEIr0sV4LT8QCW0JabDmUK9vEw2mmoZ81UGXoiKSWbJzxhj4f7rZueASQfn1U IeJTg5juvse9RR7Tq8HsPvspeSHjjNujMUXShrkwDgBrnu757EJHayMVIlg6vntH11Y+ GBYbNGVA34PHOho7EW2Y7pcsgSDXxBCIUUrR6kNysMEhHKLinvFCXD91WNVMGl7fbsMS PJT/NrKTUrjYYU4jispudfPG/4FXwZmCtHSR65Qks0QU5c73jaWtcXi3m2QEUglsDOs5 xOEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680341455; 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=o5AHd8hbgoVvjEXnc2qQZCy2ql+9Volsxrf/D43gvsLglDa+tGvvfg26/SFdIHXkXm TJr/dQLGIW+C4cd//NNrcwRt/UZH31vC1GVaDvzqISghUwd3XC2QSsxFOFtxaImmtauf xOwScWCKbYkP8NWBZI1XGOG3vD/vk2+gFMNx+KNrBFXOcp5P7lRa5EHM3L/boGPXbKJe uTDGIXdvTI1P32s53B/FzllYOwzokvQJ0fDUv6BjWE7RXadT05HeF4qAzNdJC1oyYGa3 Szuf8+8wcb/jy9Vq9SyZzkkGzxfjQiPnViwxJf7pQ9NFz4f1UxHdaRZzI98vMm7k+gxb nTwA== X-Gm-Message-State: AAQBX9cNq8pOA/ZIQK7iAaU7qNTvPzNDa26kLAVcc9aDF1BpzBtfmnqr LblKdRp4rDroZM4Q/NOLZPVlfYkqpwA= X-Google-Smtp-Source: AKy350ZCD1EDwq+fFrEtLmFrq1ktzUmADD9V1ovsMA4+MVW5Q6WGwya6LDNEYEX85Lm1UH4z97jxYw== X-Received: by 2002:adf:e748:0:b0:2e5:8874:d883 with SMTP id c8-20020adfe748000000b002e58874d883mr4415842wrn.8.1680341455139; Sat, 01 Apr 2023 02:30:55 -0700 (PDT) Received: from work-pc.. ([2a01:e0a:8d5:c6c0:eb6d:89c5:4fce:e824]) by smtp.gmail.com with ESMTPSA id p11-20020a5d4e0b000000b002e71156b0fcsm1522232wrt.6.2023.04.01.02.30.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Apr 2023 02:30:54 -0700 (PDT) From: frederic.martinsons@gmail.com To: openembedded-core@lists.openembedded.org Cc: martin.jansa@gmail.com Subject: [PATCH V7 1/6] cargo_common.bbclass: Support local github repos Date: Sat, 1 Apr 2023 11:30:46 +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 ; Sat, 01 Apr 2023 09:31:07 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/179460 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 Sat Apr 1 09:30:47 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: 22073 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 60462C77B6E for ; Sat, 1 Apr 2023 09:31:07 +0000 (UTC) Received: from mail-wr1-f52.google.com (mail-wr1-f52.google.com [209.85.221.52]) by mx.groups.io with SMTP id smtpd.web10.17507.1680341458158683426 for ; Sat, 01 Apr 2023 02:30:58 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=ovv7L2yj; spf=pass (domain: gmail.com, ip: 209.85.221.52, mailfrom: frederic.martinsons@gmail.com) Received: by mail-wr1-f52.google.com with SMTP id d17so24673623wrb.11 for ; Sat, 01 Apr 2023 02:30:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680341456; 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=ovv7L2yjBYvFAGzSW3Q8lmazL68u9CiJRiUzvibh8zdB03kfrsn93GBcvahQpwLIVj mz0BrinxaE/qL2csx87DLZaJyzJ8sPBz00urwXidt2nfvvD+i56HDd4EVYwQ5Xu3F1LP b3+kX+KR4TLGaDtQhXe7zohYg8t4Nn18Pe0RbxzziZkT/IbLJdX8NULl6JtvbybAoiGM LOQ05iBPm9lgrOkJkb89NHodAzd3eXF1pJD1x7ELzPaJ5N64zGjswlxfS/BhYDJB5NFf cLUkaA7EmYSBwMcaNYPfB7rjNklUnSVQujv6JBLAZaI/AKCeAf0zR0EsqHGWirbukaUN Ldkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680341456; 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=4Hg/jkKx2I9+ntF8PJqcC0ngASQn2AArhNd/ngc3SBU4D9zIPEoFfsdHYIZrtDA7At leFiEFOzDwqK+xK3IO4t3NzM57WYI6OOP1jvtsBwe1nXTZ9I0REOLWAftnQ0/sUzemPT b9epwLLi9epKPY6Y+xbSnLbfh4sLTPDU7PkmqqDmKvFsC8Qf57KkIO5BdezBK37ZBnq6 sEz5nn3tY9C6lQzNSAL0UhVeImw1tG+C1yyh1UW5mgKtgvlE5obJss7WCyCfQcaA1dRA 8B1dKmMN7+R9mLpZucFFW3WdO/oHlMIlxQiDhARhsO/HS2YtvbjGiAy1NU1wZxXjKcgJ dOKA== X-Gm-Message-State: AAQBX9cHIRE+vNIifcoBx/YDRtldxBSpREB6yZYLUErkfRHNHeZz9fZg 0TZjLrOJcs5i5yuiQZ1Vk7Xvtqpxn/Q= X-Google-Smtp-Source: AKy350baw0xEUy2NkSE1uloNq7uxV4Z0YSFQH5py6o8KJbSLp5OY+qxXHS8UjqyzpFqzYJklfyLfRA== X-Received: by 2002:a05:6000:1083:b0:2c7:fc61:12d4 with SMTP id y3-20020a056000108300b002c7fc6112d4mr22247488wrw.47.1680341456004; Sat, 01 Apr 2023 02:30:56 -0700 (PDT) Received: from work-pc.. ([2a01:e0a:8d5:c6c0:eb6d:89c5:4fce:e824]) by smtp.gmail.com with ESMTPSA id p11-20020a5d4e0b000000b002e71156b0fcsm1522232wrt.6.2023.04.01.02.30.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Apr 2023 02:30:55 -0700 (PDT) From: frederic.martinsons@gmail.com To: openembedded-core@lists.openembedded.org Cc: martin.jansa@gmail.com Subject: [PATCH V7 2/6] cargo_common.bbclass: add support of user in url for patch Date: Sat, 1 Apr 2023 11:30:47 +0200 Message-Id: <7f4f5b6895ea211ba23ea609ad2e8c8e18e6809f.1680340685.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 ; Sat, 01 Apr 2023 09:31:07 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/179461 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 Sat Apr 1 09:30:48 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: 22072 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 613ECC77B70 for ; Sat, 1 Apr 2023 09:31:07 +0000 (UTC) Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) by mx.groups.io with SMTP id smtpd.web11.17484.1680341458605425294 for ; Sat, 01 Apr 2023 02:30:58 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=Zsb64fO0; spf=pass (domain: gmail.com, ip: 209.85.221.45, mailfrom: frederic.martinsons@gmail.com) Received: by mail-wr1-f45.google.com with SMTP id l12so24678888wrm.10 for ; Sat, 01 Apr 2023 02:30:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680341457; 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=Zsb64fO0PH35cRyEKtWLiXt3OlT4N7xOTH5/LK1838VqNwcy4JhLa9Gxg1cHuBSnQO D2z1xXudKQ/1Yr1bx6FI0vsvG0D870E9SE0jSO2NsYF1fnzV4jpu5f/rPuJ1Yp6MIIfH /pENdY5QPBZ/fKrTPB7KJs2fBIhJexBOKMA6R4Ag76Ybm33nNC6qMyRBFCrN7PPDSmKh 5u0n5Wfxyx7KoZ765G7lqDHF6k2dcBQpQjvc0AOsPpMu92Ttfi9EhLCg5OQtmRFVtnOD uExgYYhVrs4VNTPjlDfWMRIelLS73V+GoynqRxKMTPSF6rOpIWoYvRmSZfTniMUVhmXI qwfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680341457; 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=1G99pUQNAVlvzKpF0WAZb6b0ZAwSjoco5mvw8PpS01rrHKYZlBeOpMyd1EF0JZV6FR nGhkLCD94SLDXTdPn/sIclnBxHGjK3KaP6e5UujaM8oeplsGfHemlRmYidraUcyvQ1nG oUm092sqwpRDfQMjISz4WwIRAgnZXpLYqZj5q2fj1+6VoOI5e27JRWpTC2iXXztCkNsR 4VEW6GKj1eKzENKnYVse/HiRaC7RQyWoez/UtC1YUzKqByMVmvB4SJ5/MIvwxffVHEwy csJv4feaFdPYhYCxsMEn8WjsM5Z2L30IoEEcB3yAGeW6wHyEy3ywJiIO7B7SJ4bAyjuZ vmcQ== X-Gm-Message-State: AAQBX9e5JhVjVoeDqLUhGP5zRB1bklai3e3msrT95xcMfKrwjNTMxULN CuFjEp5HdmcFW1HYnpX9MPKD13zxiC0= X-Google-Smtp-Source: AKy350bDdnkEIFu5Ttc9XVrcNaUK3R9uhJJ02sMzE/hzGVaLWohGZdprdKImBso4yan7ij78FRBgsg== X-Received: by 2002:adf:e712:0:b0:2e2:730a:c7d6 with SMTP id c18-20020adfe712000000b002e2730ac7d6mr12362694wrm.25.1680341456664; Sat, 01 Apr 2023 02:30:56 -0700 (PDT) Received: from work-pc.. ([2a01:e0a:8d5:c6c0:eb6d:89c5:4fce:e824]) by smtp.gmail.com with ESMTPSA id p11-20020a5d4e0b000000b002e71156b0fcsm1522232wrt.6.2023.04.01.02.30.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Apr 2023 02:30:56 -0700 (PDT) From: frederic.martinsons@gmail.com To: openembedded-core@lists.openembedded.org Cc: martin.jansa@gmail.com Subject: [PATCH V7 3/6] devtool: add support for multiple git url inside a cargo based recipe Date: Sat, 1 Apr 2023 11:30:48 +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 ; Sat, 01 Apr 2023 09:31:07 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/179462 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 Sat Apr 1 09:30:49 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: 22075 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 6069EC77B6F for ; Sat, 1 Apr 2023 09:31:07 +0000 (UTC) Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.54]) by mx.groups.io with SMTP id smtpd.web11.17485.1680341459670201935 for ; Sat, 01 Apr 2023 02:31:00 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=OLEM5ogS; spf=pass (domain: gmail.com, ip: 209.85.221.54, mailfrom: frederic.martinsons@gmail.com) Received: by mail-wr1-f54.google.com with SMTP id q19so21627111wrc.5 for ; Sat, 01 Apr 2023 02:30:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680341458; 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=OLEM5ogSf3wroX1sSJAi6hD5hwPCOXhdWLLh2lJFkNzI2tvAY9+IFkpsLn9fa7M6S/ avgbr0WjAbkXvCUaMOYX/fn0lF0tB1v0bh5lPCO805fa4rzbGKj0gwz2LJY6ngY4cvss IGX9g3HrOlXB1SyvbYit3AT66fPfUk+zm1bOLBGFZ+AlnRVgbzEZFdS/6EljnZkEqWt5 1M/68In4/nSERRD5ChX51MjuDRGQCbUMvALHvdynEI0IZxNU/mMZnetNJdy//3EQK9Uv pg0H7pB2CoQrJ1BvApOeewf+ANMqqO5I8ZXbs1YxHQCnuEbyM7Xu/xn43JkFv4/3myIF 8N5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680341458; 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=Bq8QAzxRHOnnf/v5tiueF7QrH4OA2YJ5x+pmaRg+Hu5C5w3b8cuC5QU+UZI8+Za3xX tphk35NqFirjpm89hO/+t/Csmw4Xl40GTgzXDPqrDQGb8php5yDvZBPE7IX+HPfu1lB+ 6YZzsojF03wlNa08tp95c+eTbK7TaJLK1LireDzZRDapYnPkQjG0YwOM/dm0winaoXMS ElNXt8MZR0k+8kp5I4xT1m8fFlIXzXu6ABRCFSznToR6cHo4hm9yoBBsm6DSaQnNX3nm 7Ef8faRPi5Ryy9paLcfH94NZxt8cYr8lVdTF2wlxXGW8+iyPRxwqjMonNZ14uXQMo8I1 Y6Ug== X-Gm-Message-State: AAQBX9dlLnoHJru7YcpBdaKKoeHXKcR/G4R1B3Ale9p1wvGRdWpk/6ZE GieY0HdIPciPpEpfX1PPCQ+gOwIRjuk= X-Google-Smtp-Source: AKy350blVphZZCY3TXDj2FFrs/lhxIWOnAhcXDKsyhLIUs/sA2L+00+xdXzWvl24RwmwcuWEXXehXg== X-Received: by 2002:adf:e405:0:b0:2cc:1935:1ae8 with SMTP id g5-20020adfe405000000b002cc19351ae8mr22304871wrm.47.1680341457617; Sat, 01 Apr 2023 02:30:57 -0700 (PDT) Received: from work-pc.. ([2a01:e0a:8d5:c6c0:eb6d:89c5:4fce:e824]) by smtp.gmail.com with ESMTPSA id p11-20020a5d4e0b000000b002e71156b0fcsm1522232wrt.6.2023.04.01.02.30.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Apr 2023 02:30:57 -0700 (PDT) From: frederic.martinsons@gmail.com To: openembedded-core@lists.openembedded.org Cc: martin.jansa@gmail.com Subject: [PATCH V7 4/6] patch: support of git patches when the source uri contained subpath parameter Date: Sat, 1 Apr 2023 11:30:49 +0200 Message-Id: <948e193f5bc70bba830ddf410256dd13e8a234fb.1680340685.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 ; Sat, 01 Apr 2023 09:31:07 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/179463 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 Sat Apr 1 09:30:50 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: 22076 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 45677C77B6D for ; Sat, 1 Apr 2023 09:31:07 +0000 (UTC) Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) by mx.groups.io with SMTP id smtpd.web11.17486.1680341461715554686 for ; Sat, 01 Apr 2023 02:31:02 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=otWU/0Vj; spf=pass (domain: gmail.com, ip: 209.85.221.41, mailfrom: frederic.martinsons@gmail.com) Received: by mail-wr1-f41.google.com with SMTP id j24so24743895wrd.0 for ; Sat, 01 Apr 2023 02:31:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680341460; 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=vLaKjgMQHLgcfAcVHJ/MV5p6v7dIjNoKxAKDo7SyFAU=; b=otWU/0VjMqkSfigoeSz6amuAQWXB5Bjju4qnZibP5Eiq5Ud1ZN+GLPkYZwB1ooEkET +4XxZrd1dlbzOds8fhEchNLL/54B0Q/VL6IE4Tbjf/s8huHTxXkd7JgjyAD/yZYZvzO5 dyQ9WkolqD+f948cqq5GEpirnFI1c/BEbZa0KsRFEfQ9gXTgWznwgnTOcuv5iGm+ibAs DHfhw9L+e22lycAXmKan0j5GKRUPVEBvg5Q8C17ww1nM0kro43PdzhsTIlxg2VHLhpE1 0veQJd6aCu6HoO6k/nZpOEkGSloLx+glpaEKvcywJoyfeQXrKw4kZlg7/+yp/e3xlcnq epVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680341460; 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=vLaKjgMQHLgcfAcVHJ/MV5p6v7dIjNoKxAKDo7SyFAU=; b=3DYsZebYfBVUuBzkAIHDs0H2gH5ayAAv09bDONF25f+UCGo35fGzs9TB+bT4DbaYmz J3G9TdABOMJoSIYRAjFRQv8U7riZ8n+29fF5ZjNrxwHN6g5y3N3DKP1t5W4y88zzhvt6 EI2bQzwX9Z0qvD/11eZ1jWm83kwSO+x1ikIVGAZ7zrRg6YXB8FFBkyEpba9uNOHM9j+1 M9JfOkXvX7uWqagoHVi9M3+0RsEAAh3uOy6IGLLsZ0RzKZrsHAEVC8LClcEn06+iEVBI 7meFa2w5OeWBd9go35sjKhWbpvJvTsInSulZ38dKAmzbA+wO2KshQ8etvazPvS+nr8Xh HfwQ== X-Gm-Message-State: AAQBX9cQTAAqnJZAgs35hrHG5L4x42NLR4XplvFnV9BNOP9tafpjfCnQ t2cpF0lEFjbN7YzNvrQc6UYzsvWn16Q= X-Google-Smtp-Source: AKy350ZlVj+r435/xks8hI5PSEat6lEo9xOWvBU0sB2PO7MD+6pmalLiorJqWJmwPzaxjHnorYaRfQ== X-Received: by 2002:a5d:66d1:0:b0:2cf:e8f4:d1ea with SMTP id k17-20020a5d66d1000000b002cfe8f4d1eamr21420502wrw.29.1680341459119; Sat, 01 Apr 2023 02:30:59 -0700 (PDT) Received: from work-pc.. ([2a01:e0a:8d5:c6c0:eb6d:89c5:4fce:e824]) by smtp.gmail.com with ESMTPSA id p11-20020a5d4e0b000000b002e71156b0fcsm1522232wrt.6.2023.04.01.02.30.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Apr 2023 02:30:58 -0700 (PDT) From: frederic.martinsons@gmail.com To: openembedded-core@lists.openembedded.org Cc: martin.jansa@gmail.com Subject: [PATCH V7 5/6] meta-selftest: provide a recipe for zvariant Date: Sat, 1 Apr 2023 11:30:50 +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 ; Sat, 01 Apr 2023 09:31:07 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/179465 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) Moreover, EXCLUDE_FROM_WORLD have been set on this recipe because of reproductability issue (YOCTO #15090) 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 | 29 + meta/lib/oeqa/selftest/cases/devtool.py | 93 ++ 5 files changed, 1686 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..041a300fff --- /dev/null +++ b/meta-selftest/recipes-extended/zvariant/zvariant_3.12.0.bb @@ -0,0 +1,29 @@ +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 + +EXCLUDE_FROM_WORLD = "1" 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 Sat Apr 1 09:30:51 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: 22070 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 42043C6FD1D for ; Sat, 1 Apr 2023 09:31:07 +0000 (UTC) Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) by mx.groups.io with SMTP id smtpd.web11.17483.1680341457001012790 for ; Sat, 01 Apr 2023 02:31:01 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=L9qRJWxM; spf=pass (domain: gmail.com, ip: 209.85.221.44, mailfrom: frederic.martinsons@gmail.com) Received: by mail-wr1-f44.google.com with SMTP id e18so24689085wra.9 for ; Sat, 01 Apr 2023 02:31:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680341460; 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=L9qRJWxM3ZX62sBKsKF6Ky4xy8S5Y2xeHHmkW8fu2reEaqKnINtOKblMnSNtROOsQE bG9BWqU9FU3hF07eBZe4ViNgJ6Eu2kwyZdzC4yFUn/MvQ3vbW9vSPEteOv3cZJgd1+JU Y4uh2EdFfgeFV7fFDyswvvmjztZ1wzdRQGnRn7wER63SCyYxOSRLZ97PpF3KflFoSGpi WN9VSm0M278TJru3scOwII4puFMbjS5MgWjqN3FoErMgnKz7CPuPgLOt0CIa/zXdDQXe 3zFu4FouPQW4DRvh+VvrFg08Ru9sIKskSa1vv5Hyd2CeHMXzZ6BEdSc9YZBX06h0VlKY qbcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680341460; 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=mCAfLa5C+0iVWPAtuPik8A+FEMwvo8oNhVsqcTaF2HNuPepor4cD/kfzqQd/3zHebi TSOnFL8Lq9ZHIaESCwYyd9WzoI+O/qc0V5iwR+oUZl6A6dc10JZ/Hvxc8G+VYIHJxsD/ GeRjdYzhWendbWzwzJn8FltDwhVrCkNcaVP+OW3qkJKB57cn4U2qeYsgOB3dMJRT192g Kf2mwFusXN/AZpwK4arPY0nVuhTHObtM9Wa3rPubrVbyI2dgaQCLzeOoSgIB8bE9BkiJ 060JsFRIc/LGIt5ZtETYnsihANscc8Xz0yqq+FTMNWwPBJCS1Z0avmMdLpPV39Wg1lh2 TO5w== X-Gm-Message-State: AAQBX9dIH8IEHZwzvvRGMcnDtLuMEMDg1+DfTNGupFoOqYhMWs2zqwnq QqgIWuUlFQTWIs7QvMON9dlQ1sspISU= X-Google-Smtp-Source: AKy350bFq8o+6oMjIMJRwss8eD4Xkfbc90tMgTyCwFnYN9sSP7CkECTCFnC18lJaOamB2EiN1kejhA== X-Received: by 2002:a5d:4884:0:b0:2e4:aa42:7880 with SMTP id g4-20020a5d4884000000b002e4aa427880mr6494828wrq.50.1680341460044; Sat, 01 Apr 2023 02:31:00 -0700 (PDT) Received: from work-pc.. ([2a01:e0a:8d5:c6c0:eb6d:89c5:4fce:e824]) by smtp.gmail.com with ESMTPSA id p11-20020a5d4e0b000000b002e71156b0fcsm1522232wrt.6.2023.04.01.02.30.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Apr 2023 02:30:59 -0700 (PDT) From: frederic.martinsons@gmail.com To: openembedded-core@lists.openembedded.org Cc: martin.jansa@gmail.com Subject: [PATCH V7 6/6] cargo-update-recipe-crates: force name overrides Date: Sat, 1 Apr 2023 11:30:51 +0200 Message-Id: <43f57a5a0a0c142132040398a875f6755eccbc93.1680340685.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 ; Sat, 01 Apr 2023 09:31:07 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/179464 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