From patchwork Tue Jun 21 23:27:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Sakoman X-Patchwork-Id: 9458 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 69113CCA473 for ; Tue, 21 Jun 2022 23:28:28 +0000 (UTC) Received: from mail-pj1-f43.google.com (mail-pj1-f43.google.com [209.85.216.43]) by mx.groups.io with SMTP id smtpd.web09.1301.1655854098258775971 for ; Tue, 21 Jun 2022 16:28:18 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@sakoman-com.20210112.gappssmtp.com header.s=20210112 header.b=dBl+Vj+z; spf=softfail (domain: sakoman.com, ip: 209.85.216.43, mailfrom: steve@sakoman.com) Received: by mail-pj1-f43.google.com with SMTP id cv13so11713177pjb.4 for ; Tue, 21 Jun 2022 16:28:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sakoman-com.20210112.gappssmtp.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=gnN3h3zHwYtuqiKZN1HLUllZ4+/BKMwjU0os/Rp2Ph0=; b=dBl+Vj+zNnW+ZUJxcORmxcu0HB4oMrbF0TmLRFRrDd6pM2HgE9+XHQrLt5SIGXDsAp fGh1t2TNJ0GHiW55W01JedbzvjEd1tTxatwEufGsbEgRC+91mn695MRpJPULOHE95prR o+F8XdyZQd+iNTHvwRgi8SUtabzNFLE+QRfRSkdtAULiE+0Rt/cUgMr+2NuNwqK0nbYP HXt1J3alff1XrfNI86jzVrccrrTTFlgIznFcw6rNBSoSM948rWTQ5M+tcn0vOfgc9dxO 8nydcoiCQCkaXU0fGG9Qj9T1GrFwaFS/ebrB6cSX9KUNOWb52TS4UzdzfeMvffcq7rl4 Z1vQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=gnN3h3zHwYtuqiKZN1HLUllZ4+/BKMwjU0os/Rp2Ph0=; b=JJQvbF7d/1r9aPN8EMswz08llKBmArUSWjHUPVtak5+vY9fg5Yq6OlRpL66glEf95T BBT7Zv1vQukE5ZrcJEwbnTpkXnAX+hWXfjwy8JjnTGxdRD+49h9zmENyHcBCXu8FN/Xe xkxQmMexpPeLCnu2Jpc5e1jyBV7G7DX6WPjnP104VdF4lkCBczmJFl2+xPx2NzwqIEtz LTZBcFvWRxqfDR1mL14AmKP443aWlwFJIBvbePy+MAURWqv1Lyg4uiUpCswCl2gtmH8O fwlhdpsAv2HxMafLtKEZf0u4nBp4UzB7FlBFgpNHzl8wcSph8J9YMrZk1GnmRXLhCl9o BlHA== X-Gm-Message-State: AJIora+xkCxsrO1SPpf7PqpGFWra4hWM9nvPQrnncDYe6fD/2+FNQbWI sIOhHvBj9NWKSSHjlaTwv1U32D+9U3D3Yv0m X-Google-Smtp-Source: AGRyM1tPBnNvHviPXKmcKbsKCqeUp5ejKvxYqztyXlptYMAqGKa+GKRDYc/CGH1BwloiBILVnNUMzQ== X-Received: by 2002:a17:902:b081:b0:16a:4266:b467 with SMTP id p1-20020a170902b08100b0016a4266b467mr2220441plr.172.1655854097103; Tue, 21 Jun 2022 16:28:17 -0700 (PDT) Received: from hexa.router0800d9.com (dhcp-72-253-6-214.hawaiiantel.net. [72.253.6.214]) by smtp.gmail.com with ESMTPSA id z9-20020a1709027e8900b0015e8d4eb209sm11323565pla.83.2022.06.21.16.28.15 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jun 2022 16:28:16 -0700 (PDT) From: Steve Sakoman To: openembedded-core@lists.openembedded.org Subject: [OE-core][kirkstone 01/13] cve-check: add support for Ignored CVEs Date: Tue, 21 Jun 2022 13:27:47 -1000 Message-Id: X-Mailer: git-send-email 2.25.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 ; Tue, 21 Jun 2022 23:28:28 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/167191 From: Marta Rybczynska Ignored CVEs aren't patched, but do not apply in our configuration for some reason. Up till now they were only partially supported and reported as "Patched". This patch adds separate reporting of Ignored CVEs. The variable CVE_CHECK_REPORT_PATCHED now manages reporting of both patched and ignored CVEs. Signed-off-by: Marta Rybczynska Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie (cherry picked from commit c773102d4828fc4ddd1024f6115d577e23f1afe4) Signed-off-by: Steve Sakoman --- meta/classes/cve-check.bbclass | 43 ++++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/meta/classes/cve-check.bbclass b/meta/classes/cve-check.bbclass index 1b4910f737..50b9247f46 100644 --- a/meta/classes/cve-check.bbclass +++ b/meta/classes/cve-check.bbclass @@ -47,7 +47,9 @@ CVE_CHECK_MANIFEST_JSON ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX CVE_CHECK_COPY_FILES ??= "1" CVE_CHECK_CREATE_MANIFEST ??= "1" +# Report Patched or Ignored CVEs CVE_CHECK_REPORT_PATCHED ??= "1" + CVE_CHECK_SHOW_WARNINGS ??= "1" # Provide text output @@ -144,7 +146,7 @@ python do_cve_check () { bb.fatal("Failure in searching patches") ignored, patched, unpatched, status = check_cves(d, patched_cves) if patched or unpatched or (d.getVar("CVE_CHECK_COVERAGE") == "1" and status): - cve_data = get_cve_info(d, patched + unpatched) + cve_data = get_cve_info(d, patched + unpatched + ignored) cve_write_data(d, patched, unpatched, ignored, cve_data, status) else: bb.note("No CVE database found, skipping CVE check") @@ -258,6 +260,7 @@ def check_cves(d, patched_cves): suffix = d.getVar("CVE_VERSION_SUFFIX") cves_unpatched = [] + cves_ignored = [] cves_status = [] cves_in_recipe = False # CVE_PRODUCT can contain more than one product (eg. curl/libcurl) @@ -291,9 +294,8 @@ def check_cves(d, patched_cves): cve = cverow[0] if cve in cve_ignore: - bb.note("%s-%s has been ignored for %s" % (product, pv, cve)) - # TODO: this should be in the report as 'ignored' - patched_cves.add(cve) + bb.note("%s-%s ignores %s" % (product, pv, cve)) + cves_ignored.append(cve) continue elif cve in patched_cves: bb.note("%s has been patched" % (cve)) @@ -305,9 +307,13 @@ def check_cves(d, patched_cves): cves_in_recipe = True vulnerable = False + ignored = False + for row in conn.execute("SELECT * FROM PRODUCTS WHERE ID IS ? AND PRODUCT IS ? AND VENDOR LIKE ?", (cve, product, vendor)): (_, _, _, version_start, operator_start, version_end, operator_end) = row #bb.debug(2, "Evaluating row " + str(row)) + if cve in cve_ignore: + ignored = True if (operator_start == '=' and pv == version_start) or version_start == '-': vulnerable = True @@ -340,13 +346,16 @@ def check_cves(d, patched_cves): vulnerable = vulnerable_start or vulnerable_end if vulnerable: - bb.note("%s-%s is vulnerable to %s" % (pn, real_pv, cve)) - cves_unpatched.append(cve) + if ignored: + bb.note("%s is ignored in %s-%s" % (cve, pn, real_pv)) + cves_ignored.append(cve) + else: + bb.note("%s-%s is vulnerable to %s" % (pn, real_pv, cve)) + cves_unpatched.append(cve) break if not vulnerable: bb.note("%s-%s is not vulnerable to %s" % (pn, real_pv, cve)) - # TODO: not patched but not vulnerable patched_cves.add(cve) if not cves_in_product: @@ -358,7 +367,7 @@ def check_cves(d, patched_cves): if not cves_in_recipe: bb.note("No CVE records for products in recipe %s" % (pn)) - return (list(cve_ignore), list(patched_cves), cves_unpatched, cves_status) + return (list(cves_ignored), list(patched_cves), cves_unpatched, cves_status) def get_cve_info(d, cves): """ @@ -396,6 +405,8 @@ def cve_write_data_text(d, patched, unpatched, ignored, cve_data): include_layers = d.getVar("CVE_CHECK_LAYER_INCLUDELIST").split() exclude_layers = d.getVar("CVE_CHECK_LAYER_EXCLUDELIST").split() + report_all = d.getVar("CVE_CHECK_REPORT_PATCHED") == "1" + if exclude_layers and layer in exclude_layers: return @@ -403,7 +414,7 @@ def cve_write_data_text(d, patched, unpatched, ignored, cve_data): return # Early exit, the text format does not report packages without CVEs - if not patched+unpatched: + if not patched+unpatched+ignored: return nvd_link = "https://nvd.nist.gov/vuln/detail/" @@ -413,13 +424,16 @@ def cve_write_data_text(d, patched, unpatched, ignored, cve_data): for cve in sorted(cve_data): is_patched = cve in patched - if is_patched and (d.getVar("CVE_CHECK_REPORT_PATCHED") != "1"): + is_ignored = cve in ignored + + if (is_patched or is_ignored) and not report_all: continue + write_string += "LAYER: %s\n" % layer write_string += "PACKAGE NAME: %s\n" % d.getVar("PN") write_string += "PACKAGE VERSION: %s%s\n" % (d.getVar("EXTENDPE"), d.getVar("PV")) write_string += "CVE: %s\n" % cve - if cve in ignored: + if is_ignored: write_string += "CVE STATUS: Ignored\n" elif is_patched: write_string += "CVE STATUS: Patched\n" @@ -496,6 +510,8 @@ def cve_write_data_json(d, patched, unpatched, ignored, cve_data, cve_status): include_layers = d.getVar("CVE_CHECK_LAYER_INCLUDELIST").split() exclude_layers = d.getVar("CVE_CHECK_LAYER_EXCLUDELIST").split() + report_all = d.getVar("CVE_CHECK_REPORT_PATCHED") == "1" + if exclude_layers and layer in exclude_layers: return @@ -522,10 +538,11 @@ def cve_write_data_json(d, patched, unpatched, ignored, cve_data, cve_status): for cve in sorted(cve_data): is_patched = cve in patched + is_ignored = cve in ignored status = "Unpatched" - if is_patched and (d.getVar("CVE_CHECK_REPORT_PATCHED") != "1"): + if (is_patched or is_ignored) and not report_all: continue - if cve in ignored: + if is_ignored: status = "Ignored" elif is_patched: status = "Patched" From patchwork Tue Jun 21 23:27:48 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Sakoman X-Patchwork-Id: 9457 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 748BDCCA481 for ; Tue, 21 Jun 2022 23:28:28 +0000 (UTC) Received: from mail-pj1-f49.google.com (mail-pj1-f49.google.com [209.85.216.49]) by mx.groups.io with SMTP id smtpd.web12.1267.1655854101064638960 for ; Tue, 21 Jun 2022 16:28:21 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@sakoman-com.20210112.gappssmtp.com header.s=20210112 header.b=p3VODvYf; spf=softfail (domain: sakoman.com, ip: 209.85.216.49, mailfrom: steve@sakoman.com) Received: by mail-pj1-f49.google.com with SMTP id d14so10918778pjs.3 for ; Tue, 21 Jun 2022 16:28:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sakoman-com.20210112.gappssmtp.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=wYWfLwibhHJafoHxjI+zr8gb50lowFkjwWfm93UeMRU=; b=p3VODvYf5xU9rmMTPNIv2CnGqx/BoN9cvjt4SlBX7+GU/QT4qTwHqTK/XcgRItM2lK w4qYmS1/K/Zl2oaaga+YGIRgt7gTjlNRo78kuwgDbGW6YZ3hexiv31cfT7pWCdieK0M4 VxnVTTeX2ZkcW2/rwKX1Ry1okuZF7e44WTTtmuHKOBVNcKPhJ0AWNk2M/FOeTKXhZyzJ K81IZdloWGBl2eePBtUKr433UoE08fJaIBcTNNDomFXU49k2OZN0e/526VGtDKnwylAu KCX9OEkSKZ4FAdcUpjeCcsyaveG3xg+zZaeYw6yUe8U8qC8VfVgWUEt26CxubngLZNvi EI5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wYWfLwibhHJafoHxjI+zr8gb50lowFkjwWfm93UeMRU=; b=CbmyBFm8H1/NdhM0KLI0VSlv5eXPDlgzvWdPJScf1LKnYZTGEu3eOaZipzwO/ju76P hlX27qEoSNgmppdExFYEOfFJs91HD2IOtl0Y9K5g8pd+q+9xNqy2xC8caW4ttzvOJbLk +qW5hso/vIgecSxJiipJZn+1iZMEjczr5pRjYn5QGlgUGF7xiVjimTs0NF9DiNgNK5TB hladz/2dSfrTI4tNc5Xviw3EF1th/PGvoqOJcg7i5gYgqkPOJpAtp+2sis9lEajosuUV Y6gSZr8VtTGxGjphbQ3FaPIEtFCk4L+9w6LoB4+BDseUBQZNfjk9tgh66ddGwFiwpEzK C/Zg== X-Gm-Message-State: AJIora+9HEJ8JQ3UIHiK3lpzIXYEqAEoFGAAfAC8Yzf3xVImf3y0D/l7 N5tW9FXZPZjQQ6UsO/7oNqEMPcSdeLlO4nT6 X-Google-Smtp-Source: AGRyM1vLsHK28WmDxiwBjmWN5unKvKNnN8VnwHyNBAA1cLtv6Ke/Z4JCh/kWMAHToHHkcEZpjlsLeg== X-Received: by 2002:a17:902:a60a:b0:168:b5f7:4148 with SMTP id u10-20020a170902a60a00b00168b5f74148mr31683718plq.47.1655854100010; Tue, 21 Jun 2022 16:28:20 -0700 (PDT) Received: from hexa.router0800d9.com (dhcp-72-253-6-214.hawaiiantel.net. [72.253.6.214]) by smtp.gmail.com with ESMTPSA id z9-20020a1709027e8900b0015e8d4eb209sm11323565pla.83.2022.06.21.16.28.18 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jun 2022 16:28:19 -0700 (PDT) From: Steve Sakoman To: openembedded-core@lists.openembedded.org Subject: [OE-core][kirkstone 02/13] oeqa/selftest/cve_check: add tests for Ignored and partial reports Date: Tue, 21 Jun 2022 13:27:48 -1000 Message-Id: X-Mailer: git-send-email 2.25.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 ; Tue, 21 Jun 2022 23:28:28 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/167192 From: Marta Rybczynska Add testcases for partial reports with CVE_CHECK_REPORT_PATCHED and Ignored CVEs. Signed-off-by: Marta Rybczynska Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie (cherry picked from commit 3f7639b90004973782a2e74925fd2e9a764c1090) Signed-off-by: Steve Sakoman --- meta/lib/oeqa/selftest/cases/cve_check.py | 82 +++++++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/meta/lib/oeqa/selftest/cases/cve_check.py b/meta/lib/oeqa/selftest/cases/cve_check.py index 2f26f606d7..d0b2213703 100644 --- a/meta/lib/oeqa/selftest/cases/cve_check.py +++ b/meta/lib/oeqa/selftest/cases/cve_check.py @@ -117,3 +117,85 @@ CVE_CHECK_FORMAT_JSON = "1" self.assertEqual(report["version"], "1") self.assertEqual(len(report["package"]), 1) self.assertEqual(report["package"][0]["name"], recipename) + + + def test_recipe_report_json_unpatched(self): + config = """ +INHERIT += "cve-check" +CVE_CHECK_FORMAT_JSON = "1" +CVE_CHECK_REPORT_PATCHED = "0" +""" + self.write_config(config) + + vars = get_bb_vars(["CVE_CHECK_SUMMARY_DIR", "CVE_CHECK_SUMMARY_FILE_NAME_JSON"]) + summary_json = os.path.join(vars["CVE_CHECK_SUMMARY_DIR"], vars["CVE_CHECK_SUMMARY_FILE_NAME_JSON"]) + recipe_json = os.path.join(vars["CVE_CHECK_SUMMARY_DIR"], "m4-native_cve.json") + + try: + os.remove(summary_json) + os.remove(recipe_json) + except FileNotFoundError: + pass + + bitbake("m4-native -c cve_check") + + def check_m4_json(filename): + with open(filename) as f: + report = json.load(f) + self.assertEqual(report["version"], "1") + self.assertEqual(len(report["package"]), 1) + package = report["package"][0] + self.assertEqual(package["name"], "m4-native") + #m4 had only Patched CVEs, so the issues array will be empty + self.assertEqual(package["issue"], []) + + self.assertExists(summary_json) + check_m4_json(summary_json) + self.assertExists(recipe_json) + check_m4_json(recipe_json) + + + def test_recipe_report_json_ignored(self): + config = """ +INHERIT += "cve-check" +CVE_CHECK_FORMAT_JSON = "1" +CVE_CHECK_REPORT_PATCHED = "1" +""" + self.write_config(config) + + vars = get_bb_vars(["CVE_CHECK_SUMMARY_DIR", "CVE_CHECK_SUMMARY_FILE_NAME_JSON"]) + summary_json = os.path.join(vars["CVE_CHECK_SUMMARY_DIR"], vars["CVE_CHECK_SUMMARY_FILE_NAME_JSON"]) + recipe_json = os.path.join(vars["CVE_CHECK_SUMMARY_DIR"], "logrotate_cve.json") + + try: + os.remove(summary_json) + os.remove(recipe_json) + except FileNotFoundError: + pass + + bitbake("logrotate -c cve_check") + + def check_m4_json(filename): + with open(filename) as f: + report = json.load(f) + self.assertEqual(report["version"], "1") + self.assertEqual(len(report["package"]), 1) + package = report["package"][0] + self.assertEqual(package["name"], "logrotate") + found_cves = { issue["id"]: issue["status"] for issue in package["issue"]} + # m4 CVE should not be in logrotate + self.assertNotIn("CVE-2008-1687", found_cves) + # logrotate has both Patched and Ignored CVEs + self.assertIn("CVE-2011-1098", found_cves) + self.assertEqual(found_cves["CVE-2011-1098"], "Patched") + self.assertIn("CVE-2011-1548", found_cves) + self.assertEqual(found_cves["CVE-2011-1548"], "Ignored") + self.assertIn("CVE-2011-1549", found_cves) + self.assertEqual(found_cves["CVE-2011-1549"], "Ignored") + self.assertIn("CVE-2011-1550", found_cves) + self.assertEqual(found_cves["CVE-2011-1550"], "Ignored") + + self.assertExists(summary_json) + check_m4_json(summary_json) + self.assertExists(recipe_json) + check_m4_json(recipe_json) From patchwork Tue Jun 21 23:27:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Sakoman X-Patchwork-Id: 9455 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 64962C43334 for ; Tue, 21 Jun 2022 23:28:28 +0000 (UTC) Received: from mail-pg1-f178.google.com (mail-pg1-f178.google.com [209.85.215.178]) by mx.groups.io with SMTP id smtpd.web08.1207.1655854103533426943 for ; Tue, 21 Jun 2022 16:28:23 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@sakoman-com.20210112.gappssmtp.com header.s=20210112 header.b=gvUzzp3M; spf=softfail (domain: sakoman.com, ip: 209.85.215.178, mailfrom: steve@sakoman.com) Received: by mail-pg1-f178.google.com with SMTP id g186so14507805pgc.1 for ; Tue, 21 Jun 2022 16:28:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sakoman-com.20210112.gappssmtp.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=NQBHSQNuEXtkeJomQZTJwvyTa5n+mtqQd83cH4EUZrU=; b=gvUzzp3MxTGSMHVReBg3tBpsLpZdYbObGcVG7thVLEqgg669qA76GYLy+i+gRjMihb Q+sugoYcvNcSPaM1CwPf+oYXd2NUCDb7AKoew0Doo8Z2AoPozca/lNyHC4w5ER+CyPDV f463uhUa0kj3h9nP80+cxMw8Qlxx3xT3ciXR1Zwame3G4ARphCRka5jDu8fYNrpUKSKa 3lzTbdMJh7RBHKDsN9SLfq5x9JOB2Pts2p6blYsNUmDwjQTPGgYDRr7X21yTdHE6ILjH ub6P7kBB7RSadtYLQdTCErKp9pL5wkq086y0bf6I5P25sSzxp896BSOPr41gz00GArCH 2BEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=NQBHSQNuEXtkeJomQZTJwvyTa5n+mtqQd83cH4EUZrU=; b=babLXbkuD8eefVPRvIm9MQ6hITeM1MGH4HI/X43Fg92MNTUy4eur6GaKp8Eqja7a+7 WDXokfPOKlORlMpyaCaNXxGzTT1UM1h+racd9xMFp3Pz9zzzkBhPM3NRgjA1uwSOwunt EBsSdDhWSZBs51kJRaXjYonxAu/SfhuMZM4g5TjGQOalqqM/SxAEsNjEaVaPoL5CJymo +IHW/UpynC2hUP1s+UYzXIx8oDI/YIqTjpZxlVlM5FF5rqps6FNNg+7UMceJOJmfuuKW Hg7hCAnBVrw306kLoOSGw9/I9R5PHQsNf94XLls62Nm5JLwyjEhkLv8x9PNpMV3/tI2P F1Bw== X-Gm-Message-State: AJIora9WFcPufWqizBYnQIoGyti1A/ZZ1SMWXsHJkdq7HUjURq05I8zh FtFn7RBC24rWMt2Nd6O18P+2EHqojb42BRdf X-Google-Smtp-Source: AGRyM1ugS5D97Koeq3g4mA/LHUq07nUfxi91tWz6JBTFp1iFnFWnxQ49arjo2BEgFjCa0s+SjxPnIw== X-Received: by 2002:a63:145e:0:b0:405:70e2:1d04 with SMTP id 30-20020a63145e000000b0040570e21d04mr336954pgu.487.1655854102426; Tue, 21 Jun 2022 16:28:22 -0700 (PDT) Received: from hexa.router0800d9.com (dhcp-72-253-6-214.hawaiiantel.net. [72.253.6.214]) by smtp.gmail.com with ESMTPSA id z9-20020a1709027e8900b0015e8d4eb209sm11323565pla.83.2022.06.21.16.28.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jun 2022 16:28:21 -0700 (PDT) From: Steve Sakoman To: openembedded-core@lists.openembedded.org Subject: [OE-core][kirkstone 03/13] linux-firmware: add support for building snapshots Date: Tue, 21 Jun 2022 13:27:49 -1000 Message-Id: <96cd37cff9caaf3e92cbf63660e9b6bc73fa9744.1655848177.git.steve@sakoman.com> X-Mailer: git-send-email 2.25.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 ; Tue, 21 Jun 2022 23:28:28 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/167193 From: Dmitry Baryshkov In some cases it is useful to be able to test the snapshot of linux-firmware (e.g. to test if the updated firmware works on the particular hardware). Allow building the linux-firmware snapshots. To switch to the most recent branch, add the following lines to the local.conf file: PREFERRED_VERSION_linux-firmware = "1:20220509+git%" SRCREV:class-devupstream = "${AUTOREV}" WHENCE_CHKSUM:class-devupstream:pn-linux-firmware = "4288aad55d189fa225d492526b8406d5" Signed-off-by: Dmitry Baryshkov Signed-off-by: Luca Ceresoli Signed-off-by: Richard Purdie (cherry picked from commit b023570ae1d239de14b50a0e827582d0e84ddf81) Signed-off-by: Steve Sakoman --- .../linux-firmware/linux-firmware_20220509.bb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_20220509.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_20220509.bb index 6e328e5726..10a7036a19 100644 --- a/meta/recipes-kernel/linux-firmware/linux-firmware_20220509.bb +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_20220509.bb @@ -69,6 +69,7 @@ LICENSE = "\ & WHENCE \ " +WHENCE_CHKSUM = "d3eb82686904888f8bbbe8d865371404" LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \ file://LICENCE.adsp_sst;md5=615c45b91a5a4a9fe046d6ab9a2df728 \ file://LICENCE.agere;md5=af0133de6b4a9b2522defd5f188afd31 \ @@ -132,7 +133,7 @@ LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \ file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \ file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \ file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \ - file://WHENCE;md5=d3eb82686904888f8bbbe8d865371404 \ + file://WHENCE;md5=${WHENCE_CHKSUM} \ " # These are not common licenses, set NO_GENERIC_LICENSE for them @@ -208,6 +209,11 @@ SRC_URI = "\ file://0001-Makefile-replace-mkdir-by-install.patch \ " +BBCLASSEXTEND = "devupstream:target" +SRC_URI:class-devupstream = "git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git;protocol=https;branch=main" +# Pin this to the 20220509 release, override this in local.conf +SRCREV:class-devupstream ?= "b19cbdca78ab2adfd210c91be15a22568e8b8cae" + SRC_URI[sha256sum] = "376e0b3d7b4f8aaa2abf7f5ab74803dcf14b06b94e3d841b1467cd9a2848255e" inherit allarch From patchwork Tue Jun 21 23:27:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Sakoman X-Patchwork-Id: 9456 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 6311CC433EF for ; Tue, 21 Jun 2022 23:28:28 +0000 (UTC) Received: from mail-pg1-f174.google.com (mail-pg1-f174.google.com [209.85.215.174]) by mx.groups.io with SMTP id smtpd.web11.1185.1655854105991423279 for ; Tue, 21 Jun 2022 16:28:26 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@sakoman-com.20210112.gappssmtp.com header.s=20210112 header.b=dRq0n8xI; spf=softfail (domain: sakoman.com, ip: 209.85.215.174, mailfrom: steve@sakoman.com) Received: by mail-pg1-f174.google.com with SMTP id 68so9059441pgb.10 for ; Tue, 21 Jun 2022 16:28:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sakoman-com.20210112.gappssmtp.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=hzPNjiAn5AYj97du5o94yUNEy9sr3b7fMWgdmJPxu/0=; b=dRq0n8xIZ22MyauBpctzJRdrCZE9JyZhVeXoVb1ngghz/ZHtkCEBHzlNZx62P9dnK5 dQrBX4AfpWdUUZzq5Wtjvx03oVPTTPE3bkiHRvt5pG7BnTP/zEm+bYWvPDLy2Q9MpTA9 FNZwJ+XUr6yw6UjFtNY0p1M3PCNR1rOtMTn/A/y/5OUkoyOJkqFHB3If9M94imLLEDe/ W09nF5Cwe9bq792dDIP1Ywus2C1Wa+7pv1X002Q6+9HhLY8MfB6QI6/QroG0E8miiXjx NumrHh56mSu8q5LbXRjh/7Ym3CJGzXBw5YY4JYtVPL+xgg1CX1dgS2RgC3DXbCPZuFKs w/UQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=hzPNjiAn5AYj97du5o94yUNEy9sr3b7fMWgdmJPxu/0=; b=cDve6TuJDMbKvp4BsvwopJTraxjBP4YKUuGVkInB8xv+CRORG+os8wZxKmsROKnMMT W81wmss3L9fYDh7N36P0RrF7q3cJljrRoc2vGnLBa6sw8Z25XSNeW19GXWAAm4UbL42M J+jcudKM9OsjBahPlXb8t+S9f650PVDA66CdYyKmv/7MwS01JLTZ5TB6l1yaoo9u4teh rv1TMpLsIKYBKYVJL7nQpIIoz/pYY4z4k0GkMLenKpaGsidaY6LcBDumeL/NfgiEUMH8 FC+UpC3H4y5rAg5p8ImXNPix4YVUjo2cyjc+BlRnBQ3PofOKz4HBF+9pjfg8/YctPfoT TlUQ== X-Gm-Message-State: AJIora9oK5EivnqA0K8udcNpSLupSHcKMQPLkL+L2UWLMho+vfYdoV85 1IluunE697CKSVzHNLaKzIArFiH9ytguoHHN X-Google-Smtp-Source: AGRyM1uDlwTGAyh6FbThTPzefMwvhC08CkBe02q8MRqrenNpM746US6jlOcsAwxkofllV5WBOlifdg== X-Received: by 2002:a05:6a00:84d:b0:525:3ce6:9c33 with SMTP id q13-20020a056a00084d00b005253ce69c33mr3540767pfk.47.1655854104828; Tue, 21 Jun 2022 16:28:24 -0700 (PDT) Received: from hexa.router0800d9.com (dhcp-72-253-6-214.hawaiiantel.net. [72.253.6.214]) by smtp.gmail.com with ESMTPSA id z9-20020a1709027e8900b0015e8d4eb209sm11323565pla.83.2022.06.21.16.28.23 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jun 2022 16:28:24 -0700 (PDT) From: Steve Sakoman To: openembedded-core@lists.openembedded.org Subject: [OE-core][kirkstone 04/13] linux-firmware: upgrade 20220509 -> 20220610 Date: Tue, 21 Jun 2022 13:27:50 -1000 Message-Id: X-Mailer: git-send-email 2.25.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 ; Tue, 21 Jun 2022 23:28:28 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/167194 From: Dmitry Baryshkov Drop 0001-Makefile-replace-mkdir-by-install.patch merged upstream. License-Update: additional files Signed-off-by: Dmitry Baryshkov Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie (cherry picked from commit 91cd99267157e860a108282aee13e162e8c10572) Signed-off-by: Steve Sakoman --- ...01-Makefile-replace-mkdir-by-install.patch | 84 ------------------- ...20220509.bb => linux-firmware_20220610.bb} | 5 +- 2 files changed, 2 insertions(+), 87 deletions(-) delete mode 100644 meta/recipes-kernel/linux-firmware/files/0001-Makefile-replace-mkdir-by-install.patch rename meta/recipes-kernel/linux-firmware/{linux-firmware_20220509.bb => linux-firmware_20220610.bb} (99%) diff --git a/meta/recipes-kernel/linux-firmware/files/0001-Makefile-replace-mkdir-by-install.patch b/meta/recipes-kernel/linux-firmware/files/0001-Makefile-replace-mkdir-by-install.patch deleted file mode 100644 index b1ac5a16ab..0000000000 --- a/meta/recipes-kernel/linux-firmware/files/0001-Makefile-replace-mkdir-by-install.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 71514e74f35f2b51ca24062573d6d913525b30db Mon Sep 17 00:00:00 2001 -From: Konrad Weihmann -Date: Mon, 9 May 2022 12:57:57 +0200 -Subject: [PATCH] Makefile: replace mkdir by install - -mkdir -p creates paths that are bound to user's settings and therefore -can lead to different file mode bits of the base paths accross different -machines. -Use install instead, as this tool is not prone to such behavior. - -Signed-off-by: Konrad Weihmann -Upstream-Status: Submitted [https://lore.kernel.org/linux-firmware/PR2PR09MB310088EA719E6D7CA5C268F1A8C69@PR2PR09MB3100.eurprd09.prod.outlook.com/] ---- - Makefile | 2 +- - carl9170fw/toolchain/Makefile | 4 ++-- - copy-firmware.sh | 6 +++--- - 3 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/Makefile b/Makefile -index e1c362f..83a0ec6 100644 ---- a/Makefile -+++ b/Makefile -@@ -9,5 +9,5 @@ check: - @./check_whence.py - - install: -- mkdir -p $(DESTDIR)$(FIRMWAREDIR) -+ install -d $(DESTDIR)$(FIRMWAREDIR) - ./copy-firmware.sh $(DESTDIR)$(FIRMWAREDIR) -diff --git a/carl9170fw/toolchain/Makefile b/carl9170fw/toolchain/Makefile -index 2b25ffe..aaea8e8 100644 ---- a/carl9170fw/toolchain/Makefile -+++ b/carl9170fw/toolchain/Makefile -@@ -46,14 +46,14 @@ src/gcc-$(GCC_VER): src/$(GCC_TAR) src/newlib-$(NEWLIB_VER) - ln -s $(BASEDIR)/src/newlib-$(NEWLIB_VER)/libgloss $@ - - binutils: src/binutils-$(BINUTILS_VER) -- mkdir -p build/binutils -+ install -d build/binutils - cd build/binutils; \ - $(BASEDIR)/$ //g' | while read f d; d - if test -L "$f"; then - test -f "$destdir/$f" && continue - $verbose "copying link $f" -- mkdir -p $destdir/$(dirname "$f") -+ install -d $destdir/$(dirname "$f") - cp -d "$f" $destdir/"$f" - - if test "x$d" != "x"; then -@@ -63,7 +63,7 @@ grep -E '^Link:' WHENCE | sed -e's/^Link: *//g' -e's/-> //g' | while read f d; d - fi - else - $verbose "creating link $f -> $d" -- mkdir -p $destdir/$(dirname "$f") -+ install -d $destdir/$(dirname "$f") - ln -sf "$d" "$destdir/$f" - fi - done --- -2.25.1 - diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_20220509.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_20220610.bb similarity index 99% rename from meta/recipes-kernel/linux-firmware/linux-firmware_20220509.bb rename to meta/recipes-kernel/linux-firmware/linux-firmware_20220610.bb index 10a7036a19..78b38df461 100644 --- a/meta/recipes-kernel/linux-firmware/linux-firmware_20220509.bb +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_20220610.bb @@ -69,7 +69,7 @@ LICENSE = "\ & WHENCE \ " -WHENCE_CHKSUM = "d3eb82686904888f8bbbe8d865371404" +WHENCE_CHKSUM = "385947b278a6646ae4c3d39ba8c9b1bb" LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \ file://LICENCE.adsp_sst;md5=615c45b91a5a4a9fe046d6ab9a2df728 \ file://LICENCE.agere;md5=af0133de6b4a9b2522defd5f188afd31 \ @@ -206,7 +206,6 @@ PE = "1" SRC_URI = "\ ${KERNELORG_MIRROR}/linux/kernel/firmware/${BPN}-${PV}.tar.xz \ - file://0001-Makefile-replace-mkdir-by-install.patch \ " BBCLASSEXTEND = "devupstream:target" @@ -214,7 +213,7 @@ SRC_URI:class-devupstream = "git://git.kernel.org/pub/scm/linux/kernel/git/firmw # Pin this to the 20220509 release, override this in local.conf SRCREV:class-devupstream ?= "b19cbdca78ab2adfd210c91be15a22568e8b8cae" -SRC_URI[sha256sum] = "376e0b3d7b4f8aaa2abf7f5ab74803dcf14b06b94e3d841b1467cd9a2848255e" +SRC_URI[sha256sum] = "faf3aedf89530e61f4fa1e8c7303dead9127cc24416945647797d079feb12837" inherit allarch From patchwork Tue Jun 21 23:27:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Sakoman X-Patchwork-Id: 9463 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 72070CCA481 for ; Tue, 21 Jun 2022 23:28:38 +0000 (UTC) Received: from mail-pg1-f175.google.com (mail-pg1-f175.google.com [209.85.215.175]) by mx.groups.io with SMTP id smtpd.web09.1304.1655854108202225547 for ; Tue, 21 Jun 2022 16:28:28 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@sakoman-com.20210112.gappssmtp.com header.s=20210112 header.b=gfS8sqXO; spf=softfail (domain: sakoman.com, ip: 209.85.215.175, mailfrom: steve@sakoman.com) Received: by mail-pg1-f175.google.com with SMTP id 23so8332639pgc.8 for ; Tue, 21 Jun 2022 16:28:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sakoman-com.20210112.gappssmtp.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=uSmz3vUNXq/SNce6yotvje53ueWC0jxGVMrcFDQLNs0=; b=gfS8sqXOzfHUfiXnw7p6y8KEvQQuHqWu7NaiEagOL9xZwDlqkvaswr3zygtoDq5EQi kUYLJBOEgLuOpaTS+K1lLlNxJNaUXWlsxCfe1nfqQk3wRe2A5yiPOSN32zVXy2GTzpgH /WYJawreDV4oxB1rYpfRZV/5gRWbfWjN0YoTm0sWG9qTnzN1sG5bCOFBzg6mYhke2dDx l4PRHT1qlpQGHdyjmUOHRBOkWCq1ZxR9M/izmgN1QDwS5Gvnx35YYCmr/Lo5+eJ2Pj9Q 0y/bGYF9hLY40ife6FZbqw+/V2DRWTMqND5OeP3hG4AOwgMnrlrEATolPOoiMuYqc37p VXYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=uSmz3vUNXq/SNce6yotvje53ueWC0jxGVMrcFDQLNs0=; b=40ZEb/Q+SK3ikiLXdpblgXbsz6fIs9284QXPTiDNpa8WNcRQjpz8p4LJCb1YR6Af0g bEhuzMe8IulLBYjenzOK1gNzvfdeSGn0N7fib+S3OMVkGZeY+saqcWQ7LXoAfX45cJfx DBfEl1L0AVXrkkD+0mKjd1fXaVGOdL2JKHPTlomTjNsXIY5hsQbRUPMx2ZnPiZtjONOJ mJyEWeLwK6YS1ftGjGywmK5B4SjjGUkVwYb5d5DBbcFZh291QcutI8Z6hymrAZk+O6dq 4L7OkKW819NQM8OTTYMkxaKWupmEgroLE9zuK3qGXy0Gh5pdhpuyU94LOxkeK7e/PVhn QDmg== X-Gm-Message-State: AJIora8gyrN7Z5342yvW8duLtDrAxnsbiC8UG0M5jBKXl7TKJlgpZOAq kpfluCOjeN1Zql9B1W7AzPC7Dp8QzwJM5CRU X-Google-Smtp-Source: AGRyM1uA4HP8qosccBauseSVxv7fRLmSfx1JT8rUx+jYIjsg5I6K/nNhS00r1i95uQx2JN/9FbOdtQ== X-Received: by 2002:aa7:8091:0:b0:525:27cb:19ef with SMTP id v17-20020aa78091000000b0052527cb19efmr10921360pff.37.1655854107274; Tue, 21 Jun 2022 16:28:27 -0700 (PDT) Received: from hexa.router0800d9.com (dhcp-72-253-6-214.hawaiiantel.net. [72.253.6.214]) by smtp.gmail.com with ESMTPSA id z9-20020a1709027e8900b0015e8d4eb209sm11323565pla.83.2022.06.21.16.28.25 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jun 2022 16:28:26 -0700 (PDT) From: Steve Sakoman To: openembedded-core@lists.openembedded.org Subject: [OE-core][kirkstone 05/13] python3: use built-in distutils for ptest, rather than setuptools' 'fork' Date: Tue, 21 Jun 2022 13:27:51 -1000 Message-Id: <8e34686911269e461dc646068f7a4d7c0e5da53f.1655848177.git.steve@sakoman.com> X-Mailer: git-send-email 2.25.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 ; Tue, 21 Jun 2022 23:28:38 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/167195 From: Alexander Kanavin The setuptools version is now used by default when setuptools is installed, but it is incompatible with some of python's own tests. Signed-off-by: Alexander Kanavin Signed-off-by: Luca Ceresoli Signed-off-by: Richard Purdie (cherry picked from commit c0c1ee33781733d712cd983be460001cd7938014) Signed-off-by: Steve Sakoman --- meta/recipes-devtools/python/python3/run-ptest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/recipes-devtools/python/python3/run-ptest b/meta/recipes-devtools/python/python3/run-ptest index 405b07f495..05396e91ab 100644 --- a/meta/recipes-devtools/python/python3/run-ptest +++ b/meta/recipes-devtools/python/python3/run-ptest @@ -1,3 +1,3 @@ #!/bin/sh -python3 -m test -v | sed -u -e '/\.\.\. ok/ s/^/PASS: /g' -r -e '/\.\.\. (ERROR|FAIL)/ s/^/FAIL: /g' -e '/\.\.\. skipped/ s/^/SKIP: /g' -e 's/ \.\.\. ok//g' -e 's/ \.\.\. ERROR//g' -e 's/ \.\.\. FAIL//g' -e 's/ \.\.\. skipped//g' +SETUPTOOLS_USE_DISTUTILS=nonlocal python3 -m test -v | sed -u -e '/\.\.\. ok/ s/^/PASS: /g' -r -e '/\.\.\. (ERROR|FAIL)/ s/^/FAIL: /g' -e '/\.\.\. skipped/ s/^/SKIP: /g' -e 's/ \.\.\. ok//g' -e 's/ \.\.\. ERROR//g' -e 's/ \.\.\. FAIL//g' -e 's/ \.\.\. skipped//g' From patchwork Tue Jun 21 23:27:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Sakoman X-Patchwork-Id: 9461 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 736AECCA483 for ; Tue, 21 Jun 2022 23:28:38 +0000 (UTC) Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) by mx.groups.io with SMTP id smtpd.web08.1210.1655854110626249194 for ; Tue, 21 Jun 2022 16:28:30 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@sakoman-com.20210112.gappssmtp.com header.s=20210112 header.b=MmbBnSQn; spf=softfail (domain: sakoman.com, ip: 209.85.214.177, mailfrom: steve@sakoman.com) Received: by mail-pl1-f177.google.com with SMTP id q18so2415180pld.13 for ; Tue, 21 Jun 2022 16:28:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sakoman-com.20210112.gappssmtp.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=cUJ324res8IpM4cLZbHy+jss+getqOU8GYtvtcdktMs=; b=MmbBnSQnn/DOItm9xNAhjiCpJcBuCnrwMiJ9d9g1Roli5r2f3TJQKo+2ZgEHe51YdG s/LagZGKh/vRM7N8ND3qf++xT079FmtzFMAQYkFGBchCdngdtYKB3ajZ7mkw5NQFWp8k nF3LrT0Meh70TBq3Fv+AHsDvtX9F3nbMKP2IvBLKQbPmhLC7DY7xXxQYxPi/WQZEtP8V unH2iqpr4GWmo2Wms3aLdrtkp0FieDENyJsozlU3JMd+IdXzrMWX7XzsdxU6K4rHvFwN +v9uS+ucJ5D9bXIXL0WALcfx1VuW9X1abD/bGPKa2vIdTCKz83ZVnKXX9ivfZxh1G9Cm m4Tw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=cUJ324res8IpM4cLZbHy+jss+getqOU8GYtvtcdktMs=; b=yM2Dh4ZMyOfSh3FkaMmuk1MxF1hOEd+YocBJYQ22q9zlxhWJOlT3yGAoln5ccBejh6 1D3QUMuHg3wmuF1/cT7d5bT+o5+fp8uY0ER36omRIHoDgdXemYil4LDD7aPp95dksiUd J2qD392eCYlxCiL82xpKMfmJ1NG61GovYX6ebDndF6f9lOsNzL8Uc8vJ5cBzPBm2fYWZ XxhMlRR0XP4VmewGBBxeGewWKLetOINNAEKOLgHYYIzPy5osreaskcFMGBghDEqoGNQ2 mpMF9en6Aw/puhVutrh1I0A6CbSttoSGPzVq0v1DjmmNH7YHbomlYJjIesnlVFP8Q774 jvqA== X-Gm-Message-State: AJIora/cUDlK895iu8o3m6u3Z0K38vJazakkFnaU2LvcJMUUdeB8nTAl qmpVZ1XZyrjecRmJgSz11N58LvNKlH5tL2Pi X-Google-Smtp-Source: AGRyM1vu5JgONKhzsJLyvKwkuArY+EZFWEL3MgHC/OPA9E2LzAm/7vxLBwzxlM8iZBVRxqqy8MYpxg== X-Received: by 2002:a17:903:32c6:b0:16a:124c:9df with SMTP id i6-20020a17090332c600b0016a124c09dfmr18293926plr.126.1655854109529; Tue, 21 Jun 2022 16:28:29 -0700 (PDT) Received: from hexa.router0800d9.com (dhcp-72-253-6-214.hawaiiantel.net. [72.253.6.214]) by smtp.gmail.com with ESMTPSA id z9-20020a1709027e8900b0015e8d4eb209sm11323565pla.83.2022.06.21.16.28.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jun 2022 16:28:28 -0700 (PDT) From: Steve Sakoman To: openembedded-core@lists.openembedded.org Subject: [OE-core][kirkstone 06/13] python3: Remove problematic paths from sysroot files Date: Tue, 21 Jun 2022 13:27:52 -1000 Message-Id: <2f93d30fee0698e3cf13be17f1691e85d2122b0e.1655848177.git.steve@sakoman.com> X-Mailer: git-send-email 2.25.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 ; Tue, 21 Jun 2022 23:28:38 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/167196 From: Richard Purdie In the native sysroot we should never have paths to the python3-native build directory. These may or may not exist at the time some dependency is building and nothing should rely upon them. I suspect nothing is relying on this at the moment but clean up just to be sure. The various config copies are adjusted to be modified consistently as some copies were and some were not. The Makefile has the "bad" ${B} paths replaced with a dummy placeholder too. Signed-off-by: Richard Purdie (cherry picked from commit ae9e6249ded8fc063d6333231c391cfa2d594567) Signed-off-by: Steve Sakoman --- meta/recipes-devtools/python/python3_3.10.4.bb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/meta/recipes-devtools/python/python3_3.10.4.bb b/meta/recipes-devtools/python/python3_3.10.4.bb index 2ef320350e..9f1b96b519 100644 --- a/meta/recipes-devtools/python/python3_3.10.4.bb +++ b/meta/recipes-devtools/python/python3_3.10.4.bb @@ -165,6 +165,9 @@ do_install:append:class-native() { # tarballs and sysroot creation. find ${D} -name *.pyc -delete + # Nothing should be looking into ${B} for python3-native + sed -i -e 's:${B}:/build/path/unavailable/:g' \ + ${D}/${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}${PYTHON_ABI}*/Makefile } do_install:append() { @@ -175,15 +178,16 @@ do_install:append() { mkdir -p ${D}${libdir}/python-sysconfigdata sysconfigfile=`find ${D} -name _sysconfig*.py` - cp $sysconfigfile ${D}${libdir}/python-sysconfigdata/_sysconfigdata.py - sed -i \ -e "s,^ 'LIBDIR'.*, 'LIBDIR': '${STAGING_LIBDIR}'\,,g" \ -e "s,^ 'INCLUDEDIR'.*, 'INCLUDEDIR': '${STAGING_INCDIR}'\,,g" \ -e "s,^ 'CONFINCLUDEDIR'.*, 'CONFINCLUDEDIR': '${STAGING_INCDIR}'\,,g" \ -e "/^ 'INCLDIRSTOMAKE'/{N; s,/usr/include,${STAGING_INCDIR},g}" \ -e "/^ 'INCLUDEPY'/s,/usr/include,${STAGING_INCDIR},g" \ - ${D}${libdir}/python-sysconfigdata/_sysconfigdata.py + -e "s,${B},/build/path/unavailable/,g" \ + $sysconfigfile + cp $sysconfigfile ${D}${libdir}/python-sysconfigdata/_sysconfigdata.py + # Unfortunately the following pyc files are non-deterministc due to 'frozenset' # being written without strict ordering, even with PYTHONHASHSEED = 0 From patchwork Tue Jun 21 23:27:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Sakoman X-Patchwork-Id: 9462 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 74B8DC3F2D4 for ; Tue, 21 Jun 2022 23:28:38 +0000 (UTC) Received: from mail-pj1-f47.google.com (mail-pj1-f47.google.com [209.85.216.47]) by mx.groups.io with SMTP id smtpd.web09.1306.1655854112728814108 for ; Tue, 21 Jun 2022 16:28:32 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@sakoman-com.20210112.gappssmtp.com header.s=20210112 header.b=X39+EDhL; spf=softfail (domain: sakoman.com, ip: 209.85.216.47, mailfrom: steve@sakoman.com) Received: by mail-pj1-f47.google.com with SMTP id w19-20020a17090a8a1300b001ec79064d8dso11770436pjn.2 for ; Tue, 21 Jun 2022 16:28:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sakoman-com.20210112.gappssmtp.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=5DpVyx/YkI1etFof0aCw7TMCBlffk2rpjk4Ou15OpfQ=; b=X39+EDhLXT6M4yHMxJXcWvCInf4C0k8hVSUJ8Wjj/uwwJ1ML3L2so7lQUCK2yHJLAR 0HMASXRvItEcvvLjx6A4DzBsCU2uMMUjVQ2Qlu05G9WvysXAXZYxjCV9SDjGjBtfBPkj 3sryyd/ZnJ1ycRjphfEY3WBeIOgit80csA66mT/XAQ/qu590m7J1tKYh5fzutCFXwSLO /pPFWb7oYgd8oADVKfZp7dF8W9pgX6nbznAe//LqpJp4wdloh86zCKaPVaclZLymnZBs aVAOBQ2nIk/qwSkOCzTS1vvujpQCQOryICqUIAkT6cZ2PcNyzUNW+7A/n/cUZtceo+Jj ZePQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5DpVyx/YkI1etFof0aCw7TMCBlffk2rpjk4Ou15OpfQ=; b=dFwNM/IgUwbmgUzI6kqre3TGp23PJsYKDRmAueX3t1qQGhqt/FucrBApDeq02od5wS sjqQQqS0kBiNHGRUq/xHFry+akRnibuWf7dIBT3mwc6H8BZhGbjrBYTMxT3BnOyYxjV9 VhqTD3BmLn/GzhOZ7ViLylib8XWJNPw1cAln6sLKDtFoLnFW6n81bf2uygT9/L5eoeMf bzauwGa7i1OIoS8Kg6dWYrgrDC3pUvKxAmfiNZaWlyNW0A5f99Ich/QUok+HS8u3m+zm OqnItca2ZCRSV5FfnsozlHazJXY822n0dApHkBRc3lu40FF1EoAmpXXfsScgOlB7M8pM jBnw== X-Gm-Message-State: AJIora8AILUbmKrzlhFC9rzmz7AfhXGVJTbKiVT5bO0nLED2Rb5jf05I l8sUeX6yGdqwDJtCSEnFo/zi5zJw2QH9ub3z X-Google-Smtp-Source: AGRyM1tlGSVFHc6bRXdfa1g+z76sW5xGoNbgXlp/SOo1BxQVsE6x3Hl+tdUnLEnKDAb3MsArj4jpsQ== X-Received: by 2002:a17:90b:3907:b0:1ec:9225:6a81 with SMTP id ob7-20020a17090b390700b001ec92256a81mr20471789pjb.0.1655854111731; Tue, 21 Jun 2022 16:28:31 -0700 (PDT) Received: from hexa.router0800d9.com (dhcp-72-253-6-214.hawaiiantel.net. [72.253.6.214]) by smtp.gmail.com with ESMTPSA id z9-20020a1709027e8900b0015e8d4eb209sm11323565pla.83.2022.06.21.16.28.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jun 2022 16:28:31 -0700 (PDT) From: Steve Sakoman To: openembedded-core@lists.openembedded.org Subject: [OE-core][kirkstone 07/13] python3: Ensure stale empty python module directories don't break the build Date: Tue, 21 Jun 2022 13:27:53 -1000 Message-Id: X-Mailer: git-send-email 2.25.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 ; Tue, 21 Jun 2022 23:28:38 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/167197 From: Richard Purdie There are two issues inside importlib. Firstly, the modules are accessed in on disk order. This means behaviour seen on one system might not reproduce on another and is a real headache. Secondly, empty directories left behind by previous modules might be looked at. This has caused a long string of different issues for us. As a result, patch this to a behaviour which works for us. Upstream discussion can follow later, this is breaking builds for too many people to leave unpatched. [YOCTO #14816] Signed-off-by: Richard Purdie (cherry picked from commit e5944a38db513e033c3a3e9313267055f7254be7) Signed-off-by: Steve Sakoman --- .../python3/deterministic_imports.patch | 32 +++++++++++++++++++ .../recipes-devtools/python/python3_3.10.4.bb | 1 + 2 files changed, 33 insertions(+) create mode 100644 meta/recipes-devtools/python/python3/deterministic_imports.patch diff --git a/meta/recipes-devtools/python/python3/deterministic_imports.patch b/meta/recipes-devtools/python/python3/deterministic_imports.patch new file mode 100644 index 0000000000..296b413cab --- /dev/null +++ b/meta/recipes-devtools/python/python3/deterministic_imports.patch @@ -0,0 +1,32 @@ +There are two issues here. Firstly, the modules are accessed in on disk order. This +means behaviour seen on one system might not reproduce on another and is a real headache. + +Secondly, empty directories left behind by previous modules might be looked at. This +has caused a long string of different issues for us. + +As a result, patch this to a behaviour which works for us. + +Upstream-Status: Pending [need to talk to upstream to see if they'll take one or both fixes] +Signed-off-by: Richard Purdie + + +Index: Python-3.10.4/Lib/importlib/metadata/__init__.py +=================================================================== +--- Python-3.10.4.orig/Lib/importlib/metadata/__init__.py ++++ Python-3.10.4/Lib/importlib/metadata/__init__.py +@@ -819,7 +819,14 @@ class Lookup: + self.infos = FreezableDefaultDict(list) + self.eggs = FreezableDefaultDict(list) + +- for child in path.children(): ++ for child in sorted(path.children()): ++ childpath = pathlib.Path(path.root, child) ++ try: ++ if childpath.is_dir() and not any(childpath.iterdir()): ++ # Empty directories aren't interesting ++ continue ++ except PermissionError: ++ continue + low = child.lower() + if low.endswith((".dist-info", ".egg-info")): + # rpartition is faster than splitext and suitable for this purpose. diff --git a/meta/recipes-devtools/python/python3_3.10.4.bb b/meta/recipes-devtools/python/python3_3.10.4.bb index 9f1b96b519..6bd3a6aba8 100644 --- a/meta/recipes-devtools/python/python3_3.10.4.bb +++ b/meta/recipes-devtools/python/python3_3.10.4.bb @@ -33,6 +33,7 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \ file://0001-sysconfig.py-use-platlibdir-also-for-purelib.patch \ file://0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch \ file://0001-setup.py-Do-not-detect-multiarch-paths-when-cross-co.patch \ + file://deterministic_imports.patch \ " SRC_URI:append:class-native = " \ From patchwork Tue Jun 21 23:27:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Sakoman X-Patchwork-Id: 9459 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 671C8C433EF for ; Tue, 21 Jun 2022 23:28:38 +0000 (UTC) Received: from mail-pj1-f43.google.com (mail-pj1-f43.google.com [209.85.216.43]) by mx.groups.io with SMTP id smtpd.web09.1301.1655854098258775971 for ; Tue, 21 Jun 2022 16:28:34 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@sakoman-com.20210112.gappssmtp.com header.s=20210112 header.b=WDUzohhB; spf=softfail (domain: sakoman.com, ip: 209.85.216.43, mailfrom: steve@sakoman.com) Received: by mail-pj1-f43.google.com with SMTP id cv13so11713177pjb.4 for ; Tue, 21 Jun 2022 16:28:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sakoman-com.20210112.gappssmtp.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=4Z/svyoZtlDVFBezuFjTP5BG1srNt6FlE64zsMs1QdU=; b=WDUzohhBV5dYW7WRZIUR/LvuBYmo3EgfLIaMJPvZlJmX7hXnU+5QyHLU2d34b2eqV2 3I9uu+oj1zPxy6Gtm9RVPi7P+qiOXrGxuAd/iM6Pd8HidrDAmtQ0hNWZUqSADDB+JS4A STtkjmQGKEmaFpD9voi0WhkT2Anx9rMLqGBhQSqKHyKzKBza9JHWmlbKzHzpVLMZor2e GQTVKvfopq+nEJLBJXR7/FyenSkvsn2QTtY1QvJ93gwB+jSFOzyPLu42fV6oJ33Ps3xM X1XB6BAKHk4DrlEwczJ0SZ7N7qQgLCHUYZG0kK4sEeFTQl7v/N1d6Lva+zTggq7KrMj5 kEaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4Z/svyoZtlDVFBezuFjTP5BG1srNt6FlE64zsMs1QdU=; b=ab5IQ3hmO9BxB0KQwPC9xqmo+KCRY3qW8zZxKSiB613Ur6YQaZMECSOHIQPm2ptkxw /hrRAbhDHL9MqyMOwgUOA0OURJp4DWkRc7klu6zQ9GrTtlFkTkwoG+EF0TJ2ZVKp+8mD g8XCvZxexUKAOhMqIOEypZaoOvq4TfDXdQFRUDNjK7kxy24EK8QPobP/mFjd+JkMdc0h vuut9VJw58VXHP5c/pPa1gIFwjtAIJtweRgk0eDug1tEoB1aYXmIW/MjlysxXAdoThi+ 05b2l++6sU9wwo0Qr8EVZJw80jjEwcGiiUlvASkAplyo7KkwTUcGBms63vWEKE1RGkx1 Hskg== X-Gm-Message-State: AJIora/8bOXMpInAlJvb7e868X69WHIbZ6Rn5SGMZR35zzPgyLw1gxiy /k6WHA7eZPpmsj7OiaXaTAJr/gK8Co8UUFTB X-Google-Smtp-Source: AGRyM1sFVJ2vP2KZvVCn+WF/vkua1zGURWZ2EM21ZJhfqS2XKvwwP3tzoKdf3tr2Y1kUf2XpYDN4oA== X-Received: by 2002:a17:90b:1986:b0:1ec:71f6:5fd9 with SMTP id mv6-20020a17090b198600b001ec71f65fd9mr29107221pjb.188.1655854113878; Tue, 21 Jun 2022 16:28:33 -0700 (PDT) Received: from hexa.router0800d9.com (dhcp-72-253-6-214.hawaiiantel.net. [72.253.6.214]) by smtp.gmail.com with ESMTPSA id z9-20020a1709027e8900b0015e8d4eb209sm11323565pla.83.2022.06.21.16.28.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jun 2022 16:28:33 -0700 (PDT) From: Steve Sakoman To: openembedded-core@lists.openembedded.org Subject: [OE-core][kirkstone 08/13] python: Avoid shebang overflow on python-config.py Date: Tue, 21 Jun 2022 13:27:54 -1000 Message-Id: <8a86bd88f0b46b0f413b98df20891cb9aa84c271.1655848177.git.steve@sakoman.com> X-Mailer: git-send-email 2.25.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 ; Tue, 21 Jun 2022 23:28:38 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/167198 From: Paulo Neves The native path may be too big, leading to shebang overflow. Just use the #!/usr/bin/env python3. Signed-off-by: Paulo Neves Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie (cherry picked from commit 84783dee09e48cb930c7cd27944eaf3f03997237) Signed-off-by: Steve Sakoman --- ...shebang-overflow-on-python-config.py.patch | 33 +++++++++++++++++++ .../recipes-devtools/python/python3_3.10.4.bb | 1 + 2 files changed, 34 insertions(+) create mode 100644 meta/recipes-devtools/python/python3/0001-Avoid-shebang-overflow-on-python-config.py.patch diff --git a/meta/recipes-devtools/python/python3/0001-Avoid-shebang-overflow-on-python-config.py.patch b/meta/recipes-devtools/python/python3/0001-Avoid-shebang-overflow-on-python-config.py.patch new file mode 100644 index 0000000000..921da8de7c --- /dev/null +++ b/meta/recipes-devtools/python/python3/0001-Avoid-shebang-overflow-on-python-config.py.patch @@ -0,0 +1,33 @@ +From f0c9dec63d452a7cd1e15ea653f4aced281f021c Mon Sep 17 00:00:00 2001 +From: Paulo Neves +Date: Tue, 7 Jun 2022 16:16:41 +0200 +Subject: [PATCH 1/1] Avoid shebang overflow on python-config.py + +The whole native path may be too big, leading to shebang +overflow. Let's just use the env shebang. + +Denial reason: [1] + +Upstream-Status: Denied [distribution] + +[1] https://github.com/python/cpython/pull/93760#pullrequestreview-1005365737 +--- + Makefile.pre.in | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/Makefile.pre.in b/Makefile.pre.in +index f0aedb76cb58999427804255da56fa53284d7032..dd88e43114730f7681715777cc76dabb31113176 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1638,6 +1638,8 @@ python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh + @ # Substitution happens here, as the completely-expanded BINDIR + @ # is not available in configure + sed -e "s,@EXENAME@,$(BINDIR)/python$(LDVERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config.py ++ @ # Otherwise we might get huge shebangs with native paths ++ sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' python-config.py + @ # Replace makefile compat. variable references with shell script compat. ones; $(VAR) -> ${VAR} + LC_ALL=C sed -e 's,\$$(\([A-Za-z0-9_]*\)),\$$\{\1\},g' < Misc/python-config.sh >python-config + @ # In OpenEmbedded, always use the python version of the script, the shell +-- +2.25.1 + diff --git a/meta/recipes-devtools/python/python3_3.10.4.bb b/meta/recipes-devtools/python/python3_3.10.4.bb index 6bd3a6aba8..357025f856 100644 --- a/meta/recipes-devtools/python/python3_3.10.4.bb +++ b/meta/recipes-devtools/python/python3_3.10.4.bb @@ -34,6 +34,7 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \ file://0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch \ file://0001-setup.py-Do-not-detect-multiarch-paths-when-cross-co.patch \ file://deterministic_imports.patch \ + file://0001-Avoid-shebang-overflow-on-python-config.py.patch \ " SRC_URI:append:class-native = " \ From patchwork Tue Jun 21 23:27:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Sakoman X-Patchwork-Id: 9460 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 65C73CCA473 for ; Tue, 21 Jun 2022 23:28:38 +0000 (UTC) Received: from mail-pj1-f47.google.com (mail-pj1-f47.google.com [209.85.216.47]) by mx.groups.io with SMTP id smtpd.web09.1306.1655854112728814108 for ; Tue, 21 Jun 2022 16:28:37 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@sakoman-com.20210112.gappssmtp.com header.s=20210112 header.b=0b3D8v2h; spf=softfail (domain: sakoman.com, ip: 209.85.216.47, mailfrom: steve@sakoman.com) Received: by mail-pj1-f47.google.com with SMTP id w19-20020a17090a8a1300b001ec79064d8dso11770436pjn.2 for ; Tue, 21 Jun 2022 16:28:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sakoman-com.20210112.gappssmtp.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=mtDnVDwHNSdjB+XDKHdbttBKdux61mziK/znkv4UmUE=; b=0b3D8v2h3ziWTmDjaf6Da8nKlNTGPswDdcyytS61P0hJrJVrfoZD6HzRgQ8oAdiuO9 DKxNzoXuPnGOnBXQPA3HWdO6eegFwPGCI2t1S2EEEMBHfMQvoUqp3K0a4DfKIIsg6XJU SkUkNqK9t9FbflPcIaoJBAdMtu877RZRW72TAYR4Y5POenBYQHHCrj4ly/fYy9K+7HGB 58L8PJ+l48wcRMOTA4lBfWGEomJyLouKxgELIKyz7I/ELpBYwoCRZznVoBNWCmW+CxLy ZqTkrI5u9C/kPpcYvAYH/FaKkAVtRun/4xmQB3MwC8vk05YDH2yVykuFBKD5PW49unao XiaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=mtDnVDwHNSdjB+XDKHdbttBKdux61mziK/znkv4UmUE=; b=JGhuMAM0YDAXm3uxj9mPIFac+M7aNyFtEWf/ioix64yd4KjO8OUulMZ5+TuA6s9vBL Ljlq1NvX6xTMXVG6Vl+nS4nhyAUZSjHaZCEWlO+LRuCfCRQUwyV+MS4L277XoTHw9cBx lKMHWZcBBGeVTXoBG5WbKbDZTYCC6YknakzoJaw/1p4TZub5x5PGpaA559D3MOyun4AW SxN/igKOKULbyIhrAQQmz3yfiCz9WcqTwIqW0IOTWCJI+5ffK5VPgZ2Bq7SXevoFGaNZ 035jlaO320u5GiPdvm9sECroJYYWvzxwtpPc6aassMgltJ5VDFNUySHlAezarvF4D1O2 nqMg== X-Gm-Message-State: AJIora9aNKM7CPD+K0J2hlz6ER3W5vwoO3+SQ3am2fP6ySX0NapEGfk8 M8Fn1SwxNr0oHtRoPLEzd4Ho4DoEnHB16EMk X-Google-Smtp-Source: AGRyM1sJxBneMfLLKXQZx6UmtgYyTqHdxLgcSYv1a55NZOjS0GWj1nODn7bSaYTAvPDYCGTgzfGuig== X-Received: by 2002:a17:902:bf04:b0:168:f244:1f37 with SMTP id bi4-20020a170902bf0400b00168f2441f37mr31716282plb.106.1655854116068; Tue, 21 Jun 2022 16:28:36 -0700 (PDT) Received: from hexa.router0800d9.com (dhcp-72-253-6-214.hawaiiantel.net. [72.253.6.214]) by smtp.gmail.com with ESMTPSA id z9-20020a1709027e8900b0015e8d4eb209sm11323565pla.83.2022.06.21.16.28.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jun 2022 16:28:35 -0700 (PDT) From: Steve Sakoman To: openembedded-core@lists.openembedded.org Subject: [OE-core][kirkstone 09/13] efivar: add musl libc compatibility Date: Tue, 21 Jun 2022 13:27:55 -1000 Message-Id: X-Mailer: git-send-email 2.25.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 ; Tue, 21 Jun 2022 23:28:38 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/167199 From: Davide Gardenal Backport patch to get efivar working with musl. Upstream issue: https://github.com/rhboot/efivar/issues/202 After commit meta-oe/1582f81805ee3114bc1a44bd5cf52d21f96702ca fwupd gives an error when trying to build with musl because efivar is not compatible. This fixes the issue. Signed-off-by: Davide Gardenal Signed-off-by: Luca Ceresoli Signed-off-by: Richard Purdie (cherry picked from commit 005b6aba89eaf1b79fdd7565dd028fdd9bbfcc7d) Signed-off-by: Steve Sakoman --- .../efisecdb-fix-build-with-musl-libc.patch | 184 ++++++++++++++++++ meta/recipes-bsp/efivar/efivar_38.bb | 3 +- 2 files changed, 185 insertions(+), 2 deletions(-) create mode 100644 meta/recipes-bsp/efivar/efivar/efisecdb-fix-build-with-musl-libc.patch diff --git a/meta/recipes-bsp/efivar/efivar/efisecdb-fix-build-with-musl-libc.patch b/meta/recipes-bsp/efivar/efivar/efisecdb-fix-build-with-musl-libc.patch new file mode 100644 index 0000000000..ec5b285a06 --- /dev/null +++ b/meta/recipes-bsp/efivar/efivar/efisecdb-fix-build-with-musl-libc.patch @@ -0,0 +1,184 @@ +From cece3ffd5be2f8641eb694513f2b73e5eb97ffd3 Mon Sep 17 00:00:00 2001 +From: Natanael Copa +Date: Fri, 28 Jan 2022 12:13:30 +0100 +Subject: [PATCH] efisecdb: fix build with musl libc + +Refactor code to use POSIX atexit(3) instead of the GNU specific +on_exit(3). + +Resolves: #197 +Resolves: #202 +Signed-off-by: Natanael Copa + +Upstream-Status: Backport +https://github.com/rhboot/efivar/commit/cece3ffd5be2f8641eb694513f2b73e5eb97ffd3 + +Signed-off-by: Davide Gardenal +--- + src/compiler.h | 2 -- + src/efisecdb.c | 68 +++++++++++++++++++------------------------------- + 2 files changed, 26 insertions(+), 44 deletions(-) + +diff --git a/src/compiler.h b/src/compiler.h +index e2f18f0b..d95fb014 100644 +--- a/src/compiler.h ++++ b/src/compiler.h +@@ -7,8 +7,6 @@ + #ifndef COMPILER_H_ + #define COMPILER_H_ + +-#include +- + /* GCC version checking borrowed from glibc. */ + #if defined(__GNUC__) && defined(__GNUC_MINOR__) + # define GNUC_PREREQ(maj,min) \ +diff --git a/src/efisecdb.c b/src/efisecdb.c +index f8823737..6bd5ad90 100644 +--- a/src/efisecdb.c ++++ b/src/efisecdb.c +@@ -25,6 +25,10 @@ + extern char *optarg; + extern int optind, opterr, optopt; + ++static efi_secdb_t *secdb = NULL; ++static list_t infiles; ++static list_t actions; ++ + struct hash_param { + char *name; + efi_secdb_type_t algorithm; +@@ -187,12 +191,11 @@ add_action(list_t *list, action_type_t action_type, const efi_guid_t *owner, + } + + static void +-free_actions(int status UNUSED, void *actionsp) ++free_actions(void) + { +- list_t *actions = (list_t *)actionsp; + list_t *pos, *tmp; + +- for_each_action_safe(pos, tmp, actions) { ++ for_each_action_safe(pos, tmp, &actions) { + action_t *action = list_entry(pos, action_t, list); + + list_del(&action->list); +@@ -202,12 +205,11 @@ free_actions(int status UNUSED, void *actionsp) + } + + static void +-free_infiles(int status UNUSED, void *infilesp) ++free_infiles(void) + { +- list_t *infiles = (list_t *)infilesp; + list_t *pos, *tmp; + +- for_each_ptr_safe(pos, tmp, infiles) { ++ for_each_ptr_safe(pos, tmp, &infiles) { + ptrlist_t *entry = list_entry(pos, ptrlist_t, list); + + list_del(&entry->list); +@@ -216,27 +218,12 @@ free_infiles(int status UNUSED, void *infilesp) + } + + static void +-maybe_free_secdb(int status UNUSED, void *voidp) ++maybe_free_secdb(void) + { +- efi_secdb_t **secdbp = (efi_secdb_t **)voidp; +- +- if (secdbp == NULL || *secdbp == NULL) ++ if (secdb == NULL) + return; + +- efi_secdb_free(*secdbp); +-} +- +-static void +-maybe_do_unlink(int status, void *filep) +-{ +- char **file = (char **)filep; +- +- if (status == 0) +- return; +- if (file == NULL || *file == NULL) +- return; +- +- unlink(*file); ++ efi_secdb_free(secdb); + } + + static void +@@ -323,15 +310,6 @@ parse_input_files(list_t *infiles, char **outfile, efi_secdb_t **secdb, + return status; + } + +-/* +- * These need to be static globals so that they're not on main's stack when +- * on_exit() fires. +- */ +-static efi_secdb_t *secdb = NULL; +-static list_t infiles; +-static list_t actions; +-static char *outfile = NULL; +- + int + main(int argc, char *argv[]) + { +@@ -351,6 +329,7 @@ main(int argc, char *argv[]) + bool do_sort_data = false; + bool sort_descending = false; + int status = 0; ++ char *outfile = NULL; + + const char sopts[] = ":aAc:dfg:h:i:Lo:rs:t:v?"; + const struct option lopts[] = { +@@ -376,10 +355,9 @@ main(int argc, char *argv[]) + INIT_LIST_HEAD(&infiles); + INIT_LIST_HEAD(&actions); + +- on_exit(free_actions, &actions); +- on_exit(free_infiles, &infiles); +- on_exit(maybe_free_secdb, &secdb); +- on_exit(maybe_do_unlink, &outfile); ++ atexit(free_actions); ++ atexit(free_infiles); ++ atexit(maybe_free_secdb); + + /* + * parse the command line. +@@ -587,24 +565,30 @@ main(int argc, char *argv[]) + outfd = open(outfile, flags, 0600); + if (outfd < 0) { + char *tmpoutfile = outfile; +- if (errno == EEXIST) +- outfile = NULL; ++ if (errno != EEXIST) ++ unlink(outfile); + err(1, "could not open \"%s\"", tmpoutfile); + } + + rc = ftruncate(outfd, 0); +- if (rc < 0) ++ if (rc < 0) { ++ unlink(outfile); + err(1, "could not truncate output file \"%s\"", outfile); ++ } + + void *output; + size_t size = 0; + rc = efi_secdb_realize(secdb, &output, &size); +- if (rc < 0) ++ if (rc < 0) { ++ unlink(outfile); + secdb_err(1, "could not realize signature list"); ++ } + + rc = write(outfd, output, size); +- if (rc < 0) ++ if (rc < 0) { ++ unlink(outfile); + err(1, "could not write signature list"); ++ } + + close(outfd); + xfree(output); diff --git a/meta/recipes-bsp/efivar/efivar_38.bb b/meta/recipes-bsp/efivar/efivar_38.bb index 68c4b4b914..53fe20a95b 100644 --- a/meta/recipes-bsp/efivar/efivar_38.bb +++ b/meta/recipes-bsp/efivar/efivar_38.bb @@ -10,6 +10,7 @@ COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux" SRC_URI = "git://github.com/rhinstaller/efivar.git;branch=main;protocol=https \ file://0001-docs-do-not-build-efisecdb-manpage.patch \ file://0001-src-Makefile-build-util.c-separately-for-makeguids.patch \ + file://efisecdb-fix-build-with-musl-libc.patch \ " SRCREV = "1753149d4176ebfb2b135ac0aaf79340bf0e7a93" @@ -36,5 +37,3 @@ BBCLASSEXTEND = "native" RRECOMMENDS:${PN}:class-target = "kernel-module-efivarfs" CLEANBROKEN = "1" -# https://github.com/rhboot/efivar/issues/202 -COMPATIBLE_HOST:libc-musl = 'null' From patchwork Tue Jun 21 23:27:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Sakoman X-Patchwork-Id: 9465 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 6910BC433EF for ; Tue, 21 Jun 2022 23:28:48 +0000 (UTC) Received: from mail-pj1-f48.google.com (mail-pj1-f48.google.com [209.85.216.48]) by mx.groups.io with SMTP id smtpd.web08.1211.1655854119233588770 for ; Tue, 21 Jun 2022 16:28:39 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@sakoman-com.20210112.gappssmtp.com header.s=20210112 header.b=NkSqf+Wh; spf=softfail (domain: sakoman.com, ip: 209.85.216.48, mailfrom: steve@sakoman.com) Received: by mail-pj1-f48.google.com with SMTP id go6so9594001pjb.0 for ; Tue, 21 Jun 2022 16:28:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sakoman-com.20210112.gappssmtp.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=47e460xym5rFRxZjwuijiM++clPlKFSXUvMWSw8UkHU=; b=NkSqf+WhpggxaDtEmUbJXZPVgeaKuYTxQKBShjOjid0/on8iA1NDbPZ1F1gzmzntOa x+EOM6LMHfDJHXCGs2hlifR5zOo11JI1PdfM6W2s0Iy0Ct5XiSf+vj6urXUauyK8Hage n8F3Ogr3EloyUsJMwzzqbtiDkGtWW4a92lP681X23kG3ZHsL1bVMe7ZsEfI5UL4CHBoq bSfMR/7FizYvSbsLQI22Kl637fHOpzZGaQpIu4tdTpc0761CjiLPTy9n26ehI2jK8f/5 gO1KkzAvcqyZae5o9gLhl6PtlYegzhMk8XV1yI0FBLYHlLAJIVuM1UkpD3OXylhzFdYP MpsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=47e460xym5rFRxZjwuijiM++clPlKFSXUvMWSw8UkHU=; b=doy5rnUn5tcy1/khuswReXYy0uJb7ZBO21pSk6n7KKmlyyFC3lGaoq4nZMmEJmUbTJ YQI6ELg1hr6wcRIXtMJK/Otyw38TPHAkIAzgOyuJFrbnz3BTBpZwAuhMYgF0aPk2NhVJ Wt27xso/rlljJR+ldOeYTqK4XMKoZC9MJYVNYscg9T+fNDvC8vOyJW6+2nhPUSAWao2z ChQ+vooFWJOdjfc1takMz3eGqeCjjStIXYHK4eSd8YUrlFFY0w/fAdFgaHt37jpklkBM Q+TDenzsI2BJtRQXN0CzlNxPyYMSgwQR6i7RtsSFnR52qtHV5BsofYiKg8R0KJmfmPn3 9adg== X-Gm-Message-State: AJIora/NF0b7RamYVrczp+1vICnCW+l/lp7Zu8sS/RHAM1hv/DDXKPmU rF8gKPmUuxWfI8RNElgk8FpvVokysCuln9gG X-Google-Smtp-Source: AGRyM1vsn+6S5oTA1B7T8ELSeziDboKTElGd1sCKG4NxA4yF/yr4LRHGbo9GMHO79q98ZcZDc6T6VQ== X-Received: by 2002:a17:902:f60d:b0:16a:1a7f:a22f with SMTP id n13-20020a170902f60d00b0016a1a7fa22fmr15593289plg.13.1655854118225; Tue, 21 Jun 2022 16:28:38 -0700 (PDT) Received: from hexa.router0800d9.com (dhcp-72-253-6-214.hawaiiantel.net. [72.253.6.214]) by smtp.gmail.com with ESMTPSA id z9-20020a1709027e8900b0015e8d4eb209sm11323565pla.83.2022.06.21.16.28.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jun 2022 16:28:37 -0700 (PDT) From: Steve Sakoman To: openembedded-core@lists.openembedded.org Subject: [OE-core][kirkstone 10/13] systemd: systemd-systemctl: Support instance conf files during enable Date: Tue, 21 Jun 2022 13:27:56 -1000 Message-Id: <8d646cc4eec154e051f315de8736356c870a5ad5.1655848177.git.steve@sakoman.com> X-Mailer: git-send-email 2.25.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 ; Tue, 21 Jun 2022 23:28:48 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/167200 From: Nick Potenski Add ability to parse instance-specific conf files when enabling an instance of a templated unit during postinstall. Signed-off-by: Nick Potenski Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie (cherry picked from commit baa0ecf3271008cf60cd830c54a71f191aebb81c) Signed-off-by: Steve Sakoman --- .../systemd/systemd-systemctl/systemctl | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/meta/recipes-core/systemd/systemd-systemctl/systemctl b/meta/recipes-core/systemd/systemd-systemctl/systemctl index 6324319a45..6d19666d82 100755 --- a/meta/recipes-core/systemd/systemd-systemctl/systemctl +++ b/meta/recipes-core/systemd/systemd-systemctl/systemctl @@ -11,6 +11,7 @@ import re import sys from collections import namedtuple +from itertools import chain from pathlib import Path version = 1.0 @@ -25,12 +26,16 @@ locations = list() class SystemdFile(): """Class representing a single systemd configuration file""" - def __init__(self, root, path): + def __init__(self, root, path, instance_unit_name): self.sections = dict() self._parse(root, path) dirname = os.path.basename(path.name) + ".d" for location in locations: - for path2 in sorted((root / location / "system" / dirname).glob("*.conf")): + files = (root / location / "system" / dirname).glob("*.conf") + if instance_unit_name: + inst_dirname = instance_unit_name + ".d" + files = chain(files, (root / location / "system" / inst_dirname).glob("*.conf")) + for path2 in sorted(files): self._parse(root, path2) def _parse(self, root, path): @@ -195,8 +200,11 @@ class SystemdUnit(): # if we're enabling an instance, first extract the actual instance # then figure out what the template unit is template = re.match(r"[^@]+@(?P[^\.]*)\.", self.unit) + instance_unit_name = None if template: instance = template.group('instance') + if instance != "": + instance_unit_name = self.unit unit = re.sub(r"@[^\.]*\.", "@.", self.unit, 1) else: instance = None @@ -208,7 +216,7 @@ class SystemdUnit(): # ignore aliases return - config = SystemdFile(self.root, path) + config = SystemdFile(self.root, path, instance_unit_name) if instance == "": try: default_instance = config.get('Install', 'DefaultInstance')[0] From patchwork Tue Jun 21 23:27:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Sakoman X-Patchwork-Id: 9466 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 6E371CCA482 for ; Tue, 21 Jun 2022 23:28:48 +0000 (UTC) Received: from mail-pj1-f45.google.com (mail-pj1-f45.google.com [209.85.216.45]) by mx.groups.io with SMTP id smtpd.web11.1187.1655854121611000700 for ; Tue, 21 Jun 2022 16:28:41 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@sakoman-com.20210112.gappssmtp.com header.s=20210112 header.b=A5kozp4P; spf=softfail (domain: sakoman.com, ip: 209.85.216.45, mailfrom: steve@sakoman.com) Received: by mail-pj1-f45.google.com with SMTP id h34-20020a17090a29a500b001eb01527d9eso14170497pjd.3 for ; Tue, 21 Jun 2022 16:28:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sakoman-com.20210112.gappssmtp.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=dNigL2JlWZ1EMq7HGDDyozn41ypvWtZQ5bXZCHvYiys=; b=A5kozp4PNeQpfDpenGEUwZwiI7wVpv2/BWMO+Kpqk43kNE6Z8ytqgiWEmvxohVCfR8 BLuGzgAavxh/7tZPi9bYYBE7YWHhoD7tQzoo6o5xQRairauBoX4mEK9NeOKolABCW2Z2 GJEQeL6I4bkovUSyfMLxiAW+FueSktHad1jUNBb7IJ9ZfvSMSJ+L/UHkNMS6uGYd0Tvs VNRNh1beyhQunLteptdSPiPXkw9eaPSIpX4umfq8HmLcWUOv/nyvy4zkBnxZGiKpZcfe ODGTWJl8ic22lVDpENuDvwTCUg6WPmElI0HaXbznbu4Q7SFELfBw2vRWqZXyDJENzf6M xUcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=dNigL2JlWZ1EMq7HGDDyozn41ypvWtZQ5bXZCHvYiys=; b=vylXamB0fPEeCLExUcJvzThif656tP4jhK/74XIX+UDOQkvLUUHu2/0rBHHFjTEV5v 6ASmpcRg0KZLDrBA+H0/6RvI7phxIfysZbza3XgnVYF8yam5ZD4XcrwwHndG+HBMxpy7 fxbGd4O+6F/97gPolW6RV4l/cax8+EkCWQ0+9LExlV/3fuWZ+V0hgtmNWwzaqEkTUEg4 W7VFR0Dr8FDGkaqR4i+QO9fF6MF1fNEtnoPRtwB9KcuhfLbbxXr0jN6vCkTtUJyGxdqh ewjy3qO4tO44kTZEJoee54BYiVFj9P4fJFh0RzTer34uxwv36HnfE33rQazcXdK9Gs6G Bc2g== X-Gm-Message-State: AJIora/c3SkWh8om8ubc9I7YltXXK6VJaF743yhwFa+v5QLGbG20ij5H EupqQQKaN/1iaaYJW4EHkGKEg9JcGM3eqMw8 X-Google-Smtp-Source: AGRyM1umuiMpcTi+qA9yMtoFN0jNU9tAJOYoP2su71c2SWSRfiACfdk9m+4XglcqXs4TYUqv7eAEiw== X-Received: by 2002:a17:90b:1b49:b0:1ec:a756:edc with SMTP id nv9-20020a17090b1b4900b001eca7560edcmr425064pjb.200.1655854120631; Tue, 21 Jun 2022 16:28:40 -0700 (PDT) Received: from hexa.router0800d9.com (dhcp-72-253-6-214.hawaiiantel.net. [72.253.6.214]) by smtp.gmail.com with ESMTPSA id z9-20020a1709027e8900b0015e8d4eb209sm11323565pla.83.2022.06.21.16.28.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jun 2022 16:28:39 -0700 (PDT) From: Steve Sakoman To: openembedded-core@lists.openembedded.org Subject: [OE-core][kirkstone 11/13] gtk-doc: Fix potential shebang overflow on gtkdoc-mkhtml2 Date: Tue, 21 Jun 2022 13:27:57 -1000 Message-Id: X-Mailer: git-send-email 2.25.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 ; Tue, 21 Jun 2022 23:28:48 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/167201 From: Paulo Neves A native path can cause a shebang overflow on gtkdoc-mkhtml. Replace it with /usr/bin/env. Signed-off-by: Paulo Neves Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie (cherry picked from commit f018d3f77f27b73206a26c78228fed563950bd9d) Signed-off-by: Steve Sakoman --- meta/recipes-gnome/gtk-doc/gtk-doc_1.33.2.bb | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/recipes-gnome/gtk-doc/gtk-doc_1.33.2.bb b/meta/recipes-gnome/gtk-doc/gtk-doc_1.33.2.bb index 150d2c0b23..392913fcc6 100644 --- a/meta/recipes-gnome/gtk-doc/gtk-doc_1.33.2.bb +++ b/meta/recipes-gnome/gtk-doc/gtk-doc_1.33.2.bb @@ -43,6 +43,7 @@ do_install:append () { ${datadir}/gtk-doc/python/gtkdoc/config.py; do sed -e 's,${RECIPE_SYSROOT_NATIVE}/usr/bin/pkg-config,${bindir}/pkg-config,' \ -e 's,${HOSTTOOLS_DIR}/python3,${bindir}/python3,' \ + -e '1s|^#!.*|#!/usr/bin/env python3|' \ -i ${D}$fn done } From patchwork Tue Jun 21 23:27:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Sakoman X-Patchwork-Id: 9464 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 624FAC43334 for ; Tue, 21 Jun 2022 23:28:48 +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.web12.1269.1655854124253355156 for ; Tue, 21 Jun 2022 16:28:44 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@sakoman-com.20210112.gappssmtp.com header.s=20210112 header.b=1EFkxR9h; spf=softfail (domain: sakoman.com, ip: 209.85.216.46, mailfrom: steve@sakoman.com) Received: by mail-pj1-f46.google.com with SMTP id f16so13032054pjj.1 for ; Tue, 21 Jun 2022 16:28:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sakoman-com.20210112.gappssmtp.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=DrMBoXEX5yJgSOQqZBWPACho6rDIkpO4t7ZyCw8KKnA=; b=1EFkxR9h1gxorLcYEEyQ2Hvu8fu5UTq7ABziCm3MuoFYUzQBTbslBM1GoAvJ8V2bFh UVA2coJ4cJEOl6RSsL0MXfSFv9Z2dL9O09oikTiLA63kyNItF1oXYtdyBxZunyx/Kot4 5K5BosrR5BLodIQdeC1cPMP5o5j/RnGoj9V3UaWds9uLkSJFC8WXVKLv056113UDBHyj MM8mN/+/1F5QFIhLZMFBLNom8CMW4Pe4yz2Qw42pLY7ACHJD23R0ndV4V0ky42IcqNFP xPpaO3/F4Nya+fTa+32QrOauNqE6wsVNipy6ZY2+En3oDipOzh4VobcN8aQ0nehSBwZ0 Bx/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=DrMBoXEX5yJgSOQqZBWPACho6rDIkpO4t7ZyCw8KKnA=; b=r9DNU6tHcsDkdeU0bqLpiadh1HKnSRZR5R0wdqQ3cCsP3SrIOs3Ml2dTCagfQh5bWs B8cMKKx/vrDEn0IZrIgAqU5GjCYNe3VX6eHGugdWlZtNCFeWPuUCEn+5Yn6ndfiNbkqB WMQve3v1UpfySuL5JOFdyHUTea0RStN4uXTtKOGBbi9JzB3bJ5N3BtnAwb4OqevrfwqO sC8P3ZJ3ZamxOKy+IYz9tjoPX7WJq0zvtC0WdGnP1lS3wYlMZvHJag8UFQmtACp8TBDE TXzeq/1NuM6MWF9TIwUV2fourDrvRWJcpxG6PvuoPQNztQAUrWmYyK+X9Qo2LSHI4jVG h1pQ== X-Gm-Message-State: AJIora9I9ZmFU07CDQx+KSqgbWnQQYflBnu1l0byXmQ74exGpIRQIPtc EZskNAm28fGNRJGZmxvDjtTajYzeUvxTfOJA X-Google-Smtp-Source: AGRyM1vSAfL7HJm1LlYXB9WRpv5j0VnKXD5o0Nhyn+srn7HwZ0oPHCzaoRB7CZsY4FC3gPHj6TxDlw== X-Received: by 2002:a17:902:b7cc:b0:16a:3f8:98c3 with SMTP id v12-20020a170902b7cc00b0016a03f898c3mr25119451plz.73.1655854123232; Tue, 21 Jun 2022 16:28:43 -0700 (PDT) Received: from hexa.router0800d9.com (dhcp-72-253-6-214.hawaiiantel.net. [72.253.6.214]) by smtp.gmail.com with ESMTPSA id z9-20020a1709027e8900b0015e8d4eb209sm11323565pla.83.2022.06.21.16.28.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jun 2022 16:28:42 -0700 (PDT) From: Steve Sakoman To: openembedded-core@lists.openembedded.org Subject: [OE-core][kirkstone 12/13] rootfs-postcommands.bbclass: correct comments Date: Tue, 21 Jun 2022 13:27:58 -1000 Message-Id: X-Mailer: git-send-email 2.25.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 ; Tue, 21 Jun 2022 23:28:48 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/167202 From: Michael Opdenacker Signed-off-by: Michael Opdenacker Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie (cherry picked from commit 41ade8e9a14c867e146a545be8d2d9c151b6855f) Signed-off-by: Steve Sakoman --- meta/classes/rootfs-postcommands.bbclass | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/meta/classes/rootfs-postcommands.bbclass b/meta/classes/rootfs-postcommands.bbclass index d302c23cf4..fc179613fb 100644 --- a/meta/classes/rootfs-postcommands.bbclass +++ b/meta/classes/rootfs-postcommands.bbclass @@ -1,5 +1,5 @@ -# Zap the root password if debug-tweaks feature is not enabled +# Zap the root password if debug-tweaks and empty-root-password features are not enabled ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains_any("IMAGE_FEATURES", [ 'debug-tweaks', 'empty-root-password' ], "", "zap_empty_root_password; ",d)}' # Allow dropbear/openssh to accept logins from accounts with an empty password string if debug-tweaks or allow-empty-password is enabled @@ -8,7 +8,7 @@ ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains_any("IMAGE_FEATURES", [ 'deb # Allow dropbear/openssh to accept root logins if debug-tweaks or allow-root-login is enabled ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains_any("IMAGE_FEATURES", [ 'debug-tweaks', 'allow-root-login' ], "ssh_allow_root_login; ", "",d)}' -# Enable postinst logging if debug-tweaks is enabled +# Enable postinst logging if debug-tweaks or post-install-logging is enabled ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains_any("IMAGE_FEATURES", [ 'debug-tweaks', 'post-install-logging' ], "postinst_enable_logging; ", "",d)}' # Create /etc/timestamp during image construction to give a reasonably sane default time setting @@ -140,7 +140,7 @@ read_only_rootfs_hook () { } # -# This function is intended to disallow empty root password if 'debug-tweaks' is not in IMAGE_FEATURES. +# This function disallows empty root passwords # zap_empty_root_password () { if [ -e ${IMAGE_ROOTFS}/etc/shadow ]; then @@ -202,7 +202,7 @@ python sort_passwd () { } # -# Enable postinst logging if debug-tweaks is enabled +# Enable postinst logging # postinst_enable_logging () { mkdir -p ${IMAGE_ROOTFS}${sysconfdir}/default From patchwork Tue Jun 21 23:27:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Sakoman X-Patchwork-Id: 9467 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 6252BCCA473 for ; Tue, 21 Jun 2022 23:28:48 +0000 (UTC) Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) by mx.groups.io with SMTP id smtpd.web10.1189.1655854126944601112 for ; Tue, 21 Jun 2022 16:28:47 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@sakoman-com.20210112.gappssmtp.com header.s=20210112 header.b=nVunmBc1; spf=softfail (domain: sakoman.com, ip: 209.85.216.42, mailfrom: steve@sakoman.com) Received: by mail-pj1-f42.google.com with SMTP id p3-20020a17090a428300b001ec865eb4a2so9978925pjg.3 for ; Tue, 21 Jun 2022 16:28:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sakoman-com.20210112.gappssmtp.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=a0Y5GR6MtA0aVGeyPRNIMc08CO/uL0TtjJax8rE2uIw=; b=nVunmBc1Zvp2ohJS0TVVGrG5KmUF6x6Tyf828ZM+6Pp7iVPOO1+IaFwUI14PJPl5md qbhIibixEnDybz92a+iv9jGsHfK4dVHFVDyeAu9VAuUK8eJ0Ly+vHvLxZO0iH4j27g5r J/8wOUgh5y0jTVaY8VGf86YUDTkvrs8dXuowB5LOIbeiIe0tj84l2BTLeCMxSmzzPxbB xNw7ZQaDl2a3JYVWB7XxNhNPPaP9Yf/VOljtkum4k8A48N9FLRf5gjdQraqADHL7n6y5 kfqjWr+qtd9T5qCWUAnAmBbyKeMV6Y1bFEMmlBGnKPbeQv7lFVfObnYzkpqfBD/WhF2P tr4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=a0Y5GR6MtA0aVGeyPRNIMc08CO/uL0TtjJax8rE2uIw=; b=LbisqwkGOConi6+rLX8rYdQK5MzNhP5TFZDFfco4cDtlLz6AGvD1uBqGLpsNmkRi3U 6thyQI/h3zOItxcCk2a8ykmppFS3V9TlFyA6qv7L6rYhqGxF5tewuF9zBb8qo4cP5hHw lGv/dG2BByy9axac1AtKis6MHguZuDYpVTAxqrORBFi3OV60SI37stte2JpL7s4QdnTS tf442dtxKlPJPUzK946KOBi5EByIEbRW3HSFHF1+pCpq3IS2YD80XT6BeW3ai3ytUQvj OIeMIsWM6ybIE++mmEIzUmqUobaPk7W+Qy7nNUC1cfxLU4eh5qTa078SZmLJyX3OS8EW 8nCQ== X-Gm-Message-State: AJIora9U4xC4yqt1ZtaIvb39bFe5lL1TEOnGq5mzc6zCdeLnyxFYzKsW kQgaJgXoB2XdKq4N/VyikEAHh71YBsgGoKKB X-Google-Smtp-Source: AGRyM1tjFc8KmI3b/a0Q1+E8yMKdNUc39aQsmqdPzk+buQGN3lf/gHB9LMYOxiJwhhEwNtqHNNYRKw== X-Received: by 2002:a17:902:b70d:b0:16a:39e6:13fc with SMTP id d13-20020a170902b70d00b0016a39e613fcmr5364173pls.125.1655854125868; Tue, 21 Jun 2022 16:28:45 -0700 (PDT) Received: from hexa.router0800d9.com (dhcp-72-253-6-214.hawaiiantel.net. [72.253.6.214]) by smtp.gmail.com with ESMTPSA id z9-20020a1709027e8900b0015e8d4eb209sm11323565pla.83.2022.06.21.16.28.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jun 2022 16:28:45 -0700 (PDT) From: Steve Sakoman To: openembedded-core@lists.openembedded.org Subject: [OE-core][kirkstone 13/13] mesa: backport a patch to support compositors without zwp_linux_dmabuf_v1 again Date: Tue, 21 Jun 2022 13:27:59 -1000 Message-Id: X-Mailer: git-send-email 2.25.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 ; Tue, 21 Jun 2022 23:28:48 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/167203 From: Martin Jansa * the same will be needed for kirkstone Signed-off-by: Martin Jansa Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie (cherry picked from commit 3857066550d77c2c8134326f7e9b28d0f4d78b7a) Signed-off-by: Steve Sakoman --- ...nd-deprecate-drm_handle_format-and-d.patch | 158 ++++++++++++++++++ meta/recipes-graphics/mesa/mesa.inc | 1 + 2 files changed, 159 insertions(+) create mode 100644 meta/recipes-graphics/mesa/files/0001-Revert-egl-wayland-deprecate-drm_handle_format-and-d.patch diff --git a/meta/recipes-graphics/mesa/files/0001-Revert-egl-wayland-deprecate-drm_handle_format-and-d.patch b/meta/recipes-graphics/mesa/files/0001-Revert-egl-wayland-deprecate-drm_handle_format-and-d.patch new file mode 100644 index 0000000000..dac2de4e62 --- /dev/null +++ b/meta/recipes-graphics/mesa/files/0001-Revert-egl-wayland-deprecate-drm_handle_format-and-d.patch @@ -0,0 +1,158 @@ +From 7796c2c56c960ac55e49246f0349ac52539ada55 Mon Sep 17 00:00:00 2001 +From: Leandro Ribeiro +Date: Sun, 10 Apr 2022 22:54:36 -0300 +Subject: [PATCH] Revert "egl/wayland: deprecate drm_handle_format() and + drm_handle_capabilities()" + +Commit af1ee8e010441f8f2ed8c77065b159652a4ac9fe dropped support to +wl_drm, as we thought that most compositors from active projects were +already supporting zwp_linux_dmabuf_v1. + +But that's not true, so revert this commit in order to give these +projects a longer transition period. + +Note that we didn't add back the support to GEM name API, and that was +on purpose. + +Signed-off-by: Leandro Ribeiro +Reviewed-by: Simon Ser +Part-of: + +Signed-off-by: Martin Jansa +Upstream-Status: Backport [https://gitlab.freedesktop.org/mesa/mesa/-/commit/c60fea8c228ae3f32e20d6b65c473d9f04871d20] +--- + src/egl/drivers/dri2/egl_dri2.h | 1 + + src/egl/drivers/dri2/platform_wayland.c | 59 +++++++++++++++++++------ + 2 files changed, 47 insertions(+), 13 deletions(-) + +diff --git a/src/egl/drivers/dri2/egl_dri2.h b/src/egl/drivers/dri2/egl_dri2.h +index c466ff83c53..eecb32a53fd 100644 +--- a/src/egl/drivers/dri2/egl_dri2.h ++++ b/src/egl/drivers/dri2/egl_dri2.h +@@ -283,6 +283,7 @@ struct dri2_egl_display + struct zwp_linux_dmabuf_feedback_v1 *wl_dmabuf_feedback; + struct dmabuf_feedback_format_table format_table; + bool authenticated; ++ uint32_t capabilities; + char *device_name; + #endif + +diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c +index 5ff83cce08a..843434376a7 100644 +--- a/src/egl/drivers/dri2/platform_wayland.c ++++ b/src/egl/drivers/dri2/platform_wayland.c +@@ -1343,7 +1343,7 @@ create_wl_buffer(struct dri2_egl_display *dri2_dpy, + struct dri2_egl_surface *dri2_surf, + __DRIimage *image) + { +- struct wl_buffer *ret; ++ struct wl_buffer *ret = NULL; + EGLBoolean query; + int width, height, fourcc, num_planes; + uint64_t modifier = DRM_FORMAT_MOD_INVALID; +@@ -1447,11 +1447,28 @@ create_wl_buffer(struct dri2_egl_display *dri2_dpy, + ret = zwp_linux_buffer_params_v1_create_immed(params, width, height, + fourcc, 0); + zwp_linux_buffer_params_v1_destroy(params); ++ } else { ++ struct wl_drm *wl_drm = ++ dri2_surf ? dri2_surf->wl_drm_wrapper : dri2_dpy->wl_drm; ++ int fd = -1, stride; ++ ++ if (num_planes > 1) ++ return NULL; ++ ++ query = dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_FD, &fd); ++ query &= dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_STRIDE, &stride); ++ if (!query) { ++ if (fd >= 0) ++ close(fd); ++ return NULL; ++ } + +- return ret; ++ ret = wl_drm_create_prime_buffer(wl_drm, fd, width, height, fourcc, 0, ++ stride, 0, 0, 0, 0); ++ close(fd); + } + +- return NULL; ++ return ret; + } + + static EGLBoolean +@@ -1698,16 +1715,21 @@ drm_handle_device(void *data, struct wl_drm *drm, const char *device) + static void + drm_handle_format(void *data, struct wl_drm *drm, uint32_t format) + { +- /* deprecated, as compositors already support the dma-buf protocol extension +- * and so we can rely on dmabuf_handle_modifier() to receive formats and +- * modifiers */ ++ struct dri2_egl_display *dri2_dpy = data; ++ int visual_idx = dri2_wl_visual_idx_from_fourcc(format); ++ ++ if (visual_idx == -1) ++ return; ++ ++ BITSET_SET(dri2_dpy->formats.formats_bitmap, visual_idx); + } + + static void + drm_handle_capabilities(void *data, struct wl_drm *drm, uint32_t value) + { +- /* deprecated, as compositors already support the dma-buf protocol extension +- * and so we can rely on it to create wl_buffer's */ ++ struct dri2_egl_display *dri2_dpy = data; ++ ++ dri2_dpy->capabilities = value; + } + + static void +@@ -2075,13 +2097,12 @@ dri2_initialize_wayland_drm(_EGLDisplay *disp) + wl_registry_add_listener(dri2_dpy->wl_registry, + ®istry_listener_drm, dri2_dpy); + +- /* The compositor must expose the dma-buf interface. */ +- if (roundtrip(dri2_dpy) < 0 || dri2_dpy->wl_dmabuf == NULL) ++ if (roundtrip(dri2_dpy) < 0) + goto cleanup; + + /* Get default dma-buf feedback */ +- if (zwp_linux_dmabuf_v1_get_version(dri2_dpy->wl_dmabuf) >= +- ZWP_LINUX_DMABUF_V1_GET_DEFAULT_FEEDBACK_SINCE_VERSION) { ++ if (dri2_dpy->wl_dmabuf && zwp_linux_dmabuf_v1_get_version(dri2_dpy->wl_dmabuf) >= ++ ZWP_LINUX_DMABUF_V1_GET_DEFAULT_FEEDBACK_SINCE_VERSION) { + dmabuf_feedback_format_table_init(&dri2_dpy->format_table); + dri2_dpy->wl_dmabuf_feedback = + zwp_linux_dmabuf_v1_get_default_feedback(dri2_dpy->wl_dmabuf); +@@ -2089,7 +2110,6 @@ dri2_initialize_wayland_drm(_EGLDisplay *disp) + &dmabuf_feedback_listener, dri2_dpy); + } + +- /* Receive events from the interfaces */ + if (roundtrip(dri2_dpy) < 0) + goto cleanup; + +@@ -2176,6 +2196,19 @@ dri2_initialize_wayland_drm(_EGLDisplay *disp) + + dri2_wl_setup_swap_interval(disp); + ++ if (dri2_dpy->wl_drm) { ++ /* To use Prime, we must have _DRI_IMAGE v7 at least. createImageFromFds ++ * support indicates that Prime export/import is supported by the driver. ++ * We deprecated the support to GEM names API, so we bail out if the ++ * driver does not suport Prime. */ ++ if (!(dri2_dpy->capabilities & WL_DRM_CAPABILITY_PRIME) || ++ (dri2_dpy->image->base.version < 7) || ++ (dri2_dpy->image->createImageFromFds == NULL)) { ++ _eglLog(_EGL_WARNING, "wayland-egl: display does not support prime"); ++ goto cleanup; ++ } ++ } ++ + if (dri2_dpy->is_different_gpu && + (dri2_dpy->image->base.version < 9 || + dri2_dpy->image->blitImage == NULL)) { +-- +2.35.1 + diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index 0628151e96..afac8014fe 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -20,6 +20,7 @@ SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \ file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \ file://0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch \ file://0001-util-format-Check-for-NEON-before-using-it.patch \ + file://0001-Revert-egl-wayland-deprecate-drm_handle_format-and-d.patch \ " SRC_URI[sha256sum] = "9f2b30f5276a9abaf71aafc6979685e2636189de1a87aea2c9e69744a6d0ebb9"