From patchwork Mon Sep 23 15:08:28 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Epperson X-Patchwork-Id: 49476 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 14549CF9C6F for ; Mon, 23 Sep 2024 15:08:45 +0000 (UTC) Received: from mail-pj1-f46.google.com (mail-pj1-f46.google.com [209.85.216.46]) by mx.groups.io with SMTP id smtpd.web11.38961.1727104120629880871 for ; Mon, 23 Sep 2024 08:08:40 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20230601 header.b=VUWj5Ns0; spf=pass (domain: gmail.com, ip: 209.85.216.46, mailfrom: thomas.epperson@gmail.com) Received: by mail-pj1-f46.google.com with SMTP id 98e67ed59e1d1-2d8a7c50607so2893181a91.1 for ; Mon, 23 Sep 2024 08:08:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1727104120; x=1727708920; darn=lists.yoctoproject.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=8ZRxXBw0kTZHpeKoYkO72gTMpUNze3hBYwk3cOsY64c=; b=VUWj5Ns0ePjyJghD+BeZecC6KjKdezt1DQ6ZzwAtQntoV5VauLAtzXzqsXIMZPycG0 dqJDhpylXOKvD7WVZs55P4pKvCulEW8QKNMYpiXCMJNn/CYO3nfHmHxp8fR78KUNa7vu o5YwdP2Zu0ZqpdfAuCGew+vuq06n7rJ8XXEdqd3jHqVOv/uXsSTTyhFFyc5M1b+CGLAj bLN4j9prs8tEuNAisYyrKLcPXWQ06/bId1ywXXLuhuQpu4zdLZqAit1CIBVKRH7H/7e4 dPRBrZQxrglJSnkt8+nmXyLbG6Ow52chPfFv2RlR4t+78qmjPT9x9rMZwq3Ui7lAVg+P fSjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727104120; x=1727708920; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=8ZRxXBw0kTZHpeKoYkO72gTMpUNze3hBYwk3cOsY64c=; b=vmrgoa6om1yBMUD6wI9JPArnzlyZXap6JWKCVx2I/PgY0DvZd6kytOoKciyszptAiL H/+B42xbG6Y4CJ+RL5cj8qRuSsMLTpGLhyFEXSdNvVTS8XpW9Ach22zhFzmeTSXVsrnm wn99IkSzaEo30Q/e9+hHdv3o5HhSo7jngg+GStm/YjDjR3Q7pRWlNsEKuZ224DvFD/sG 7AAp5f4mnzDMSdNi96N/V7oZeUjVglaszryYOpBcRs09Zw7VhH5ps4Za/et3UZ3WoGFq Yp+B44tOa11qCQnkohoyDV4mGrZ7lLe3ey7c21JQhduakbENA8Oxp/7jhY7CSX433b3g Mk8Q== X-Gm-Message-State: AOJu0YwMXaTz9Qch5IxltbX1OOuzOeJgF1aXbmIYSnFMmPc6PJw0lsFO bfuGNE/1mppaCrSThtLtT9HtLamnQYDYLe1DkL1qsaPAmLrlXyxPYjwvMPJvSjN1zEWT8qcXxp1 RdUw3P0rFwvr7G1eiJoJWVaD3eoZk+GQw X-Google-Smtp-Source: AGHT+IHPEAwz/Uqt420OjiNPwRTmCyi9zhL/yuBYhbODcrAfmiRzq1FpwC48YYaNcER8leYz/OJ4sQOe1Mt9gB/qaK0= X-Received: by 2002:a17:90b:4a8d:b0:2d3:ce76:4af2 with SMTP id 98e67ed59e1d1-2dd80c4cb43mr13745290a91.18.1727104119703; Mon, 23 Sep 2024 08:08:39 -0700 (PDT) MIME-Version: 1.0 From: Thomas Epperson Date: Mon, 23 Sep 2024 10:08:28 -0500 Message-ID: Subject: cargo patch override To: poky@lists.yoctoproject.org 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 ; Mon, 23 Sep 2024 15:08:45 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/poky/message/13443 Some crates when built from git require additional handling in the cargo_common bbclass because there is more than one crate in the git repository (egui and related crates in my case). I'm open to the special variable being a different name if something else makes more sense. I wanted to get initial thoughts before I added the documentation updates for the class change. From c166035ab08faeab3cee79cddaa4ca59b60aec71 Mon Sep 17 00:00:00 2001 From: Thomas Epperson Date: Mon, 23 Sep 2024 09:58:06 -0500 Subject: [PATCH] cargo: Add ability to override the patch elements --- meta/classes-recipe/cargo_common.bbclass | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/meta/classes-recipe/cargo_common.bbclass b/meta/classes-recipe/cargo_common.bbclass index c528ae7f39..c9d1811d35 100644 --- a/meta/classes-recipe/cargo_common.bbclass +++ b/meta/classes-recipe/cargo_common.bbclass @@ -156,8 +156,15 @@ python cargo_common_do_patch_paths() { 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) + special = d.getVar('RUSTSPECIALCRATES_%s' % k) + if special is not None: + specials = special.split(',') + for s in specials: + ss = s.split(':') + print('%s = { path = "%s" }' % (ss[0], os.path.join(workdir, destsuffix, ss[1])), file=config) + else: + for name in v: + print(name, file=config) if not patches: return -- 2.34.1