From patchwork Wed Jul 15 15:20:07 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Ripple X-Patchwork-Id: 92547 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 86FA2C4450F for ; Wed, 15 Jul 2026 15:20:37 +0000 (UTC) Received: from mx0a-003cac01.pphosted.com (mx0a-003cac01.pphosted.com [205.220.161.93]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.8022.1784128827701556105 for ; Wed, 15 Jul 2026 08:20:27 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@keysight.com header.s=ppfeb2020 header.b=SLDUXB3S; dkim=pass header.i=@keysight.com header.s=selector1 header.b=n6vkgyIA; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: keysight.com, ip: 205.220.161.93, mailfrom: john.ripple@keysight.com) Received: from pps.filterd (m0187212.ppops.net [127.0.0.1]) by mx0b-003cac01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66FBYbNo4080073 for ; Wed, 15 Jul 2026 08:20:27 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=keysight.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=ppfeb2020; bh= X8WnHZ2THrBU1OUp64yid8GTRqDyzwEJufA4gW9kyJ4=; b=SLDUXB3SlNtcSxn+ YSyp0+ukXZXWeQAQM+NmmbEvK5IqCMf3ete6EIb4m3tx0I20rVsXJknK1nMoePnW etr14tByxMmzd+irxlf27D1rhT3aHk63p/zzQw7e2iJazuQvYwopguSNwlaBgrVd XhQu+jy3szMbb/cnU8In2RuC2ZlgxZgW3Iwv+n3Z/WVMpk0qVrhjN41jyYLXCucZ sp9nZCNGePvpQcmFwVYKIr7RyTeVz20x/OzumVPM7qG7dNqSZsnfe85D2ta5Ox0q jAnUceMLBND4i3CD6H9YYZrcIbHu376XhjcCFO7ts5hw2rgVnpzmwtVHRTWDKIL0 I4HiDA== Received: from dm1pr04cu001.outbound.protection.outlook.com (mail-centralusazon11010067.outbound.protection.outlook.com [52.101.61.67]) by mx0b-003cac01.pphosted.com (PPS) with ESMTPS id 4fe9f08mbq-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT) for ; Wed, 15 Jul 2026 08:20:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wpUo6smJUyehERtTsadYNw1ZxNhMCVrTnv5EVjztPYc52y6mTQXlSeslQpT4Q0c8oMOJcscDZ7yj0W6wUwYDbogp6RMY8JMmfYVZlNbOupsA74KieG7B2exFbS2xparCHnh1um4xYd9gYncPfGqVaD0GuRPVZC3d/aj7JkYlg/a5Mh5jpn2SzFLouaHrhBxqNUMEEZSL+cvxv5V2MQsU+bC2EFCZ3TqkZ5/j79S+TnRiOm05/eqXA6OaZ19qBM5EUDioTmhErNNTmPZeCIpxjT97BFuGOxQmT/h4UbiAjJ13FLIqq/7nzUHuCsN9Nx+Y8spl00giE0G6XGHjyE9adQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=X8WnHZ2THrBU1OUp64yid8GTRqDyzwEJufA4gW9kyJ4=; b=pSl9LpZQpDAYu3o1avehxgBIc3ZSwAEVM8qdi0b+HrWYIsbLwtS5G+fIwZN5MwIOfz6xm8AKEn9rwvzwl4yFlkRvYF8GU6ZGZl4IUzZk2BDJXs3xH6mQ2SvU814Mi5bsqRqaJBiIwraQbBEXQgSb2dBti/F5vBNQx0I+gx0cacvM5lADtXflhBAO5Zhfn6vIVQ8euvSetM9v93aUQcuE0b71D0NqXo7zQdQcuv09KpPyyFuCC0mH/J78LrEmVYrMQgVVewGJ7EjR68Q/Pdb9tOxwQnPMwJm3igA8SIcuq3CV3ZioTRytMO9yN+3oq5WpH8XMBpWoAHAwue8VvZOYAg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=keysight.com; dmarc=pass action=none header.from=keysight.com; dkim=pass header.d=keysight.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=keysight.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=X8WnHZ2THrBU1OUp64yid8GTRqDyzwEJufA4gW9kyJ4=; b=n6vkgyIA8VvU+cH3/1JuG5OkHbJukvm/Xs4ZroSzIvvd9pi7C0wNIzoGQWVZU97nt4FBZFIBU4V0Lc+hjWgHkCBaF3Z1l1PQayJuXpVFrm4o0OQW/fu55jcg0Al9h5kOBPflNIb+8miEYBHuu1DSGxYJCk5j52gvMfqwLIUeToM= Received: from PH7PR17MB6130.namprd17.prod.outlook.com (2603:10b6:510:1f5::17) by SA1PR17MB5717.namprd17.prod.outlook.com (2603:10b6:806:1cc::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.11; Wed, 15 Jul 2026 15:20:24 +0000 Received: from PH7PR17MB6130.namprd17.prod.outlook.com ([fe80::7052:ef05:ccc9:d9c2]) by PH7PR17MB6130.namprd17.prod.outlook.com ([fe80::7052:ef05:ccc9:d9c2%3]) with mapi id 15.21.0202.014; Wed, 15 Jul 2026 15:20:24 +0000 From: John Ripple To: openembedded-core@lists.openembedded.org Cc: John Ripple Subject: [meta][PATCH v2 1/3] go-vendor.bbclass: Fix test file exclusion and license propagation Date: Wed, 15 Jul 2026 09:20:07 -0600 Message-ID: <20260715152011.3542412-2-john.ripple@keysight.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260715152011.3542412-1-john.ripple@keysight.com> References: <20260715152011.3542412-1-john.ripple@keysight.com> X-ClientProxiedBy: CY5PR22CA0077.namprd22.prod.outlook.com (2603:10b6:930:80::29) To PH7PR17MB6130.namprd17.prod.outlook.com (2603:10b6:510:1f5::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR17MB6130:EE_|SA1PR17MB5717:EE_ X-MS-Office365-Filtering-Correlation-Id: e7cba583-e512-4faa-be60-08dee28497b5 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|376014|1800799024|366016|55112099003|22082099003|18002099003|11063799006|56012099006|10067099003|6133799003; X-Microsoft-Antispam-Message-Info: QZcK2d9gnbiXiY8zwd3l/eBgnTfm7+SWZGwUUAMEK5lI+c3NsBUy65elSwxfu6+OtBEaFl/xyFNZWIcbwgbF3BL4k3j5y7yATxdGkdvp8WPz+Pi/N0sPxxoKZqZjL22Rgah+4W2Z31eG+LCndvqjYsT9mY48MoLnT5CFz0sXiNxpOEzLevEI8YCZPW30IKcXYnGz498WQyemqRFfC3VTTFZyEcfJUNXiAYZaDTCm4wtRFC8X34y6PkFXVNMQVLBzrhJrxDUeBh+VLxqrnCLw3v7+avV43Qv6cxmQo6Wu77ljYKd1IpqXaUhGV6qTiVpCDzLNpG+2labBYCdsBqqgrwoPHEoTbNvGWGWDGCHfC/JE05PqGzGx6+TLx5fO4mXMId9P8BqQ8VKE1VDpcyfI4fr1hpBoBE9O/x/rHUuxkHjtMkbJcar4y/T2t2TTrSOZuUIaCUuwb4GHgH+goEBxHM5DnmKvJvYLfb+ew8Pw0G/aCU73Cd1gKdFbDYfZLFOg6ii7rb6BAlzxmQPoEdCFTDcUF+5tDi1g2LNvK3ArVnlhhMYYv+7KEG+X6Vl+5xEJjrqtDmWyM0cHwu0PNKQYWtL5xKVRF+BM7rY37ckGYVkH5s8fUxyTTV5ov51oM1uv X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR17MB6130.namprd17.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(376014)(1800799024)(366016)(55112099003)(22082099003)(18002099003)(11063799006)(56012099006)(10067099003)(6133799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: E1d5/VUolkLbq/3jvSKq4aLMv5KRmzLauctezA5emTzYWRNGmHdNkX+i+hCAqNV9IsGcdCvDOwUrVj9IxSd5YLwymLI8lhdqFML9P2eQMPkJZQ7b88cYqj46CchVoeMjziB59lMXsWtAPN7C4adfBgWpXYORzYHDHs7zaUfSclLfndwhEAUSqYVKRsxcw0IBzpb8v0aXU6rjivMncWKs+P5pfqh2FgEUohprwwDcmVIeEo0Vx9yEIWw+7MYFWdehn/eAovzNkjlVHeBhL2VsxISyUyRbrZ2z7ubUcjT0zGIUvwARvXBIijxCkd3eACusi6/4/PHIZFYcZ/Xas2wBdf2cnIkxYKTGlD1OXmy/xri96XNO8K4YE0ImNUMKEmarL9Dffx2O2nsx9GciHzvrw3DiLeRHHakP4rYdn99mAWYoH3qB9tGLiltfiLvtrMIi9V4R6qPFFeElSXTy9pymvbNPJctgaI4c8Ktw2hs823Q5/sShfp6j96U9+VcohihhZu190z4M75CMoajOfykW4bqGLr6GSKL8ArjJCfwzcBbPFwC0uUdpIDIgCcz2NcMo8llYChbq1hCeIxnOL6naOPRDf7cAz20q+YCKwX/AlW9yoqeMJoguR7upp1dzmX8xqKboxyNtYfW1JVVXLd21+oHALSxk47gi3WVdxO/9GbQSiDd/qQAxOB8BZl8AaGiFJftRWI+eDNl5ZZjbOrmOyT/yhFInYggD4WG8jITU9eOiDhVR8I5XeTW3Z9L4BuZUb/obyuyOr6emhdJ4imWqnpckOLfRbNchYm8IRjp134l7dyQ56P1kGZDFJKvUkgWpNrFpRMcQe9vB5HpAmsHJt4u7nYV11qBj+ACZMFhFCU0cJXpcZHN2ymsrW34sfw5041gDQG6bLvumXY8oKzjnX2XYThUbLAH6qu6RVfgE95d7vN2TK70AxXscaskoQtYOzZbFsgizZl0N4X3GhsAkGHBtKOswzmpzEL3/9msi2xK7xI/kkUJCffEX3uFlpu+eCduVqbtrHSVYq1imfR/3gtDAoZpnGNnm4xj1ewLsH9zDQtWiiQl9hLh9GrNyoHLSFgtVtgkuNnmMh9TaDdzGxdU8n3lzfTylCtwaRlWDuKq/6tA1IEMm4mhOgDMORqYmWOXt+CXZyzYkshoD3HuTegZqjqkPaKkm6V/GodR+OY48xrh4kxvnQXUsVeqVI44K9EymIoknHKov/m0oBQgLVELZLuM6auDY4fZu1ZbjoNS+dUar+yOvL13JRUBhZtA5BfBisdcn/eyNBJsUsROPxVd1P+bLgvXBXdwL7ImeaSW0OoiC71vdHqip/x/DeHKWASrH3FGGCnHxt4vXguua3ZHwgaD2B4AOZOQhQq8/z4JfZ4uiAfSXhI9AF4ADrpNBDhIorc0HMS4lRca1Eh2ILIS2oOeZWF63zKn+KKhdYgfrPNYaSbfmhXxapxEgpi5IxO7yinzntIlELPVE6dSSyK49i3fwtl71mRCYx9pe6jAYkzylgQaRupauHqN4B/irBnj3Ig8wgx7rqzUEodAXuYFdVbGnSlu+Df5JyNF7qZhI/TWA/7c+nlYN6gOh3tp0A0+12zNKt7Y9OF2CJssOi85HuYJe5XeVNNWhyvAAUDabNc+1jPq8lxQxZkGAJVuxIHwyiWVSPFpYudWwKPMa/L9cMyc7xsinUsLLiX7y/9SeCo1Yws/pQiCwTSt8uZKxPXdj+SjSqgIvwMDQs7F8zA== X-Exchange-RoutingPolicyChecked: CzEE8ixWgck+ppnf9iYE+aoHO9wSNz2eCA3FpM6r+9CZQA0Tz5u+xuVsV8HLCNMMvNPRLEhGuJsp9y96yKzRdFm9JtvnGs1zarnD553A4vlTD6mMK+QnFN0CY/AvXVsjdkocGfN77VCSqeBypLyeFucfh8w4/YC+nEIuOaAFwwjpCZOg25AIxKzDaObUJVESvb3gI2QEj0HiDKb9S1MLbQLVuokqN2HK2az3/oglnOkCDtK1DX3RW0Opo8RI0ED60Mus7edQNbcRMbXoo78j9Cks05fIfAYG7+AATFOr+rwBPIkn3c4BFrerPIdBtD51oxdqZdvdfMs6TxyllPhlyQ== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: o9Fix+Ajyxi0a6NQZHCTr0y3ShLUxWMxfpTnvUOKC/sAkLAkGsQvXO2HhpAsoT+bCcXaajAGh69ucvWWDGay0x/k5zYvgxcsAHe57EkYMYMaLT9FdyAo8w1GniWgq4sKQ5FvQnoy2yI3o7DzDfV9hzIzUmdnniunnOqKCYGi5vIkO9gi9rxZN6VyORseqsJfyNikHLecy5KBwrb1PJp9+FTP247qFkBZ/ewC6xRoZaY2xdYayJLmmnwXL0wak8g2eBNppZDoYqizPUFUdE2w9sjlIHzT+egRzSg6OckEp3bxYTGCMf7Jmo6yfndJnOgIxI++ybgGQqmyG54bwJgO8qKtfEXIuQ9jXOQ30pV+rE0FhauCgWI6HV0w24ltHV4n18cryJi8redBiMGJkXOqjingnb2aBL5bnEapE+PgS/pbsT/dyfIbum+/RLeuCa6cNrVIiv8Cs3GdUWoxb5cefa2uX6xshBpjrQf+8sQtekD/mJppNII6I+pV1eSTAIkUD1wj2T3GugxUqJ4JeDuF0piXl8qfLNcBvvEp4RmTEsn+T0jQz95VyOkI6MU4oE/rTOUc/MgrQpAZ9WeqcZwinh5loBh7Nl76AKqCJd0y4MeSawN4GvnuyRnXGnLtgMGM X-OriginatorOrg: keysight.com X-MS-Exchange-CrossTenant-Network-Message-Id: e7cba583-e512-4faa-be60-08dee28497b5 X-MS-Exchange-CrossTenant-AuthSource: PH7PR17MB6130.namprd17.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2026 15:20:24.4492 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 63545f27-3232-4d74-a44d-cdd457063402 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 7hRQC9Po9HKoMSOmJUWTukQtLFh1HXSvTMeRxIgpuQ7ZEjuiVgLy6NQfw4SXSx+ionARadSlrwE/YqZTCDPpOVRnLCzxAJlpyGM/rjeSCQg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR17MB5717 X-Proofpoint-ORIG-GUID: OZC4k9rV6IlfSFKTAKhVM4HruAvplJj- X-Proofpoint-GUID: OZC4k9rV6IlfSFKTAKhVM4HruAvplJj- X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE1MDE1MiBTYWx0ZWRfXzi3ec8NcjvuE WKOrO30OvrEuY84MWyMCRVWJVwBHUUq5/++QfQNv5x/V2aQH3JGp9yomjzOqvaQuB0+GqGnI5dy k3yF/wyrU9+FHv5/Hwh1RXA+fWOn4kdqi/hNnE+o3sMsaxXc4Lf3 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE1MDE1MiBTYWx0ZWRfX+FU03KvNVq0Q 7psDBJkWPrm/OrfYxVGWKhdYckkr1vQf9Z3EUQksq+//1mavvIj08Bp/YOCqQ9fXN6PrnCJlfuZ PuQshZH/9iYWV+s5XOTZuDJvhMcxFulXIxR39Su60Ic+7wLNbvBo9JuhYlmxp42tXVdepUF7T6J TCex7dcet7ljyBxX4VTWJv/MuoyBw21tKMFdbRCIdan/L/PxRq5P5d/x5BvQWvg5JKUMMc7DmK9 WtG6+BUxK4D4K1LqyAj9kXNsJZmBekZ7e1Jsu4cLCKe6npAn8TyTdjWfdANCMJhczrbQOfeV6wH 3VZPkyMXZ4UzlytVkQ0n9lFQRh7JXb1pVa3dom2TXgoB7mpknArCG+HUEMlOe5W/yWz/Dv2pBZl 2zjSXzg8EiSNVVr/4aIf/A8Vv+fQHALpNI/esLFX1hBnza73pZxOqhNCRiR4aj3kGZy0Bw6tdC7 ogYBxhwrszI8t5G+jZA== X-Authority-Analysis: v=2.4 cv=a7EAM0SF c=1 sm=1 tr=0 ts=6a57a53a cx=c_pps a=5QB7A90Jg1Mn+JdiV6um6w==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=vu2TTH8h0NUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=FLoIbiw2ZNY34kqd41oa:22 a=at2XMroQgvxonBsO-bql:22 a=plf8rDjJAAAA:8 a=F6MVbVVLAAAA:8 a=CKkP6PFZCmJgk5SHP5AA:9 a=JWTSs7K9Rhv-lrTctFka:22 a=6mxfPxaA-CAxv1z-Kq-J:22 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11847 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 suspectscore=0 clxscore=1015 priorityscore=1501 spamscore=0 impostorscore=0 adultscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607150152 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 15 Jul 2026 15:20:37 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/240976 Two bugs in do_go_vendor: 1. The shutil.ignore_patterns glob was "*._test.go" (with an extra dot), which never matches standard Go test files (*_test.go). Remove the extra dot. 2. The license-propagation block used os.path.join(src, "LICENSE") as the copy destination, writing into the already-processed vendor.fetch source tree rather than into the vendor destination directory. Switch to os.path.join(dst, "LICENSE") so the LICENSE lands in vendor/ where go tools and licence scanners expect it. Also fix the guard condition from not os.path.exists(subdir) (checking an unrelated relative name) to not os.path.exists(subdirLicense) (checking the actual target). Signed-off-by: John Ripple --- meta/classes/go-vendor.bbclass | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/meta/classes/go-vendor.bbclass b/meta/classes/go-vendor.bbclass index e879d629a8..85a3c1b586 100644 --- a/meta/classes/go-vendor.bbclass +++ b/meta/classes/go-vendor.bbclass @@ -141,7 +141,7 @@ python do_go_vendor() { shutil.copytree(src, dst, symlinks=True, dirs_exist_ok=True, \ ignore=shutil.ignore_patterns(".git", \ "vendor", \ - "*._test.go")) + "*_test.go")) # If the root directory has a LICENSE file but not the subdir # we copy the root license to the sub module since the license @@ -149,9 +149,9 @@ python do_go_vendor() { # see https://go.dev/ref/mod#vcs-license if subdir: rootdirLicese = os.path.join(rootdir, "LICENSE") - subdirLicense = os.path.join(src, "LICENSE") + subdirLicense = os.path.join(dst, "LICENSE") - if not os.path.exists(subdir) and \ + if not os.path.exists(subdirLicense) and \ os.path.exists(rootdirLicese): shutil.copy2(rootdirLicese, subdirLicense) From patchwork Wed Jul 15 15:20:08 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: John Ripple X-Patchwork-Id: 92548 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 516C5C44508 for ; Wed, 15 Jul 2026 15:20:37 +0000 (UTC) Received: from mx0a-003cac01.pphosted.com (mx0a-003cac01.pphosted.com [205.220.161.93]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.8122.1784128832013874307 for ; Wed, 15 Jul 2026 08:20:32 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@keysight.com header.s=ppfeb2020 header.b=kk0ZsZ2g; dkim=fail reason="dkim: body hash did not verify" header.i=@keysight.com header.s=selector1 header.b=QQqqfdHX; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: keysight.com, ip: 205.220.161.93, mailfrom: john.ripple@keysight.com) Received: from pps.filterd (m0187214.ppops.net [127.0.0.1]) by mx0b-003cac01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66FDeQYX136804 for ; Wed, 15 Jul 2026 08:20:31 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=keysight.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=ppfeb2020; bh= J9WaUIXSPln7eM+eQLtN/sJrnBxOpnsYSIHSoTBCcRI=; b=kk0ZsZ2gEXmYoBp/ 0lQCo50QAzFhTkykRC7TFhYlIsrH2YHK2DK5qj6XJKhvFqeA3qH1NhdXW8aQE56N hygpJiIW1I7e8h//KUXQ6PR+McP9dX2WvzU2cIrmVdNWHUBy9eenJXvSslG9nK3f F6JO/dkgfmjoB3t+aiXNDxlw5nFZQRATgT9MuGkWU0y5jmLGO6GhL2QwoANMulcf WSKEnUG8qLm86C0PtZvYELah3B4XWDgoGa7c4OfuVG2xqInz+cmgwgwTAW3R1GBr Mf66Sjr5BDiQZ8wNi+bAQC5WXdZRupPXDfO6Ut6ZGGUSSq+3ZyHHvdRHsVXQfP61 04cAng== Received: from ph7pr06cu001.outbound.protection.outlook.com (mail-westus3azon11010039.outbound.protection.outlook.com [52.101.201.39]) by mx0b-003cac01.pphosted.com (PPS) with ESMTPS id 4fe11ha1qe-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT) for ; Wed, 15 Jul 2026 08:20:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xg6CZ0q4H7Uc9yIT+Y8TGk7wtTyDJxksDFfBsr0emIXmF8Hlp5eTSxt44I7MdiCuxLh/RT9ueF1jsZZdA0gNZWOgVfOzfNyKiI6xZllxnmJRdQwACglKeyQOqVhH4a1LqENydYYl2o8fzlFhkMAXZufz9AVS+kMT4MW9ChrXqXx5q3qtM6fzDoP5WT6o5hQ2+9LRAobgNx9RBIMZLASKRBc+CgGAe7NC9w+LQYxTSrqRnmYPMD4mg8vus4H9T15OLRCCvM7nD6Y0QQhYr0v5yBzKL0urh90khlCMqlrqX18mp5BKXHTL0vVf8hCZGnnJipQ4FCYxn6onXO0PLjV8Tg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=J9WaUIXSPln7eM+eQLtN/sJrnBxOpnsYSIHSoTBCcRI=; b=PXN4dFqqoxqDpprBWOv2DsYEVjvbO/HEsLJeIGIRgj4RfGd56z6jD5N3EtjPvS4ih4HiyBeq3GhjIrWZ/5t2aWhHk5DJWStZNUrNHQHKr0EPefmwbaE2f1dKH6W1w/7pXa8D0qJ3W1RziyoWNQMY75zFQPlWEycqOqoCA9vREudXtjWYKxHd0auG0zLzGhwYmP5KFBedyqxalrAiC4E6IjWajsHVKD3+lIwYR4+Fl2n2FyWORihGcB8K1On9FuT13IDmE7x6otMhZHxlwIIDsdbDyFL8UL1T8xuo3Rt5erF0yiYHWwl69gO3OPYRwsZr6RXaT17KJs+q5oJcTSb2qQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=keysight.com; dmarc=pass action=none header.from=keysight.com; dkim=pass header.d=keysight.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=keysight.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=J9WaUIXSPln7eM+eQLtN/sJrnBxOpnsYSIHSoTBCcRI=; b=QQqqfdHXgR4M35M75BNN4iqYtENQVa9JfbdidbyhwJZ3EU1RRmd9tjHY1QpPC2OgdcP8wOgCWFAdjBPDQm5yOjXDLg5VRk8B7z1rCJF0nmuR+ebET6h5C0ornoAi7ahNeLZMjyonEEXoKZqRnDAxXFU2JntTO0KLBRro9JkehVw= Received: from PH7PR17MB6130.namprd17.prod.outlook.com (2603:10b6:510:1f5::17) by SA1PR17MB5717.namprd17.prod.outlook.com (2603:10b6:806:1cc::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.11; Wed, 15 Jul 2026 15:20:25 +0000 Received: from PH7PR17MB6130.namprd17.prod.outlook.com ([fe80::7052:ef05:ccc9:d9c2]) by PH7PR17MB6130.namprd17.prod.outlook.com ([fe80::7052:ef05:ccc9:d9c2%3]) with mapi id 15.21.0202.014; Wed, 15 Jul 2026 15:20:25 +0000 From: John Ripple To: openembedded-core@lists.openembedded.org Cc: John Ripple Subject: [meta][meta-selftest][PATCH v2 2/3] oeqa/selftest: Add go-vendor.bbclass selftest suite Date: Wed, 15 Jul 2026 09:20:08 -0600 Message-ID: <20260715152011.3542412-3-john.ripple@keysight.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260715152011.3542412-1-john.ripple@keysight.com> References: <20260715152011.3542412-1-john.ripple@keysight.com> X-ClientProxiedBy: CY5PR22CA0077.namprd22.prod.outlook.com (2603:10b6:930:80::29) To PH7PR17MB6130.namprd17.prod.outlook.com (2603:10b6:510:1f5::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR17MB6130:EE_|SA1PR17MB5717:EE_ X-MS-Office365-Filtering-Correlation-Id: f736bd8b-ffe5-4aa5-3bd4-08dee284984f X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|376014|1800799024|366016|13003099007|55112099003|22082099003|18002099003|3023799007|11063799006|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: USVpiTLq6oYZkP9GeX9KWPIbUrpCyrfKV1RMyXQv1BMS04nttY3qMJtHfM48tuC4t7H/glP71b+2tdiAJLbdclZPD7+88u621uJmqbnZcABbLHKyuALMkBAXJTkE93iV3ld6Ahh1cdtbrvt4xyYxoclU01eqhTuEc/++7yEofcU01mtCDQ3P4QCWABtL6ihwkLpDglpmMWj5nsRWykr/AztQHbGaVitoxql0J2Ur5TNAacogzOPfzQvKrc0PIbD8iaKXtlRCBFcBZkdJfX7eva0GH1JgNp/9VU3g7YG5Ien8zVpqTxxGFAZe6atOurkHF0XMzNixjIvfAjsWB1esMFW5mfglGQAc5a4KIFACG6rnZGSKqEE+XQLRyHu7+5G/jPgOiLm9Fg/f7uEKYHRXSp0rYEG8Vh87GVXAIGRiOyyS1DV7FxtXyu0Qu4v4gQAQXpap4NG5O/r/zSzlRb0QB/QvebmKcIs5KK5QlDz+fvsko9Eoec0Idw4x2Lniw6BdH5kJVdTrE5l0YkZAJlOxfsv8GkSp7mgeQLh3V+KjRWLe8c1Kf8+unMzfFnODm3kTR/fZnQ40Y/XgkYczdqQrqutuxrIr97xBf5olNG2dssjytNgOl6Y+CSdo0+4LAFSZ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR17MB6130.namprd17.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(376014)(1800799024)(366016)(13003099007)(55112099003)(22082099003)(18002099003)(3023799007)(11063799006)(56012099006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?eA8nCyutxL5BNO54lxnjbzieASuY?= =?utf-8?q?/FuOlYianqvqiVOddTzL6UcqB1QEF6MRtVzD7fnf+i+xP4XESo0Pgp7tBGG9/thx+?= =?utf-8?q?b4o/LaEx6aeMvaGGBStlLpzMQPHXEcfyxCcg/mGtoD1uwyREDJrzhqNe7r5mXeDOg?= =?utf-8?q?8+xkxyjm7rIisPhmaWh1WaxHs38Bd8iTWHBr3DsjxQ10aouwOtycYQfSu4lLZZgYb?= =?utf-8?q?WULc+LYMtm4un4Np8KeUL5JSKE06j3yaT6v7Ek7ipbveVYTzAkd4FEtjx48Wgw3yM?= =?utf-8?q?xsYDXPuQ0YjNXXlbjuRKbeWOWnxMRJ5ejuzTZ9X4Eiy3rEPB6NzzCkQrglWzNVsxg?= =?utf-8?q?ulMMs9AWcUinIqHehlRkeKO/XSCypxxiU66I7mctWvuyNnRTBteIkacLP57F3hjpy?= =?utf-8?q?oOWrmA7K1JKNsCvYHTVw3mZSq3g6LNQ9BBeZKOPhsbudXlWr53Gjo2F1G2fZ/CNCv?= =?utf-8?q?zWwfpWLyNa1C13meibh0BrvUJs1SsH9US9K0FRvD4Vv2M2KZsgakkwB0khkoxdJ6Q?= =?utf-8?q?klajOTItZhhzvPjfCtFKbcPllrtGYHAT2DFgbwaQ0vqURomMmm8WCgyQlOg8RUOE3?= =?utf-8?q?yuqIfKKgrpKM2mVOKHHs2U9dst7bCyGAaRF0xUXOTx4Xu9KNCarxRgrjwDQGHqkPR?= =?utf-8?q?Cbao28Id77iI1LO68vJSBEWDOxa/NHXw5cbTyoZYMkY2mKb93GSOqugFkz3X5YshJ?= =?utf-8?q?oLicj6ym1Unt6Bwa66/5BFWgg1revY2kFTHwvlxAxJZFLz3EHpf3P8B1fLiIl6w55?= =?utf-8?q?gaItbMK0C410V8t4FaH+Bukl9Njg3Hh763isYcBk5KQfJisfDVammeW7N8S8q1FPj?= =?utf-8?q?lkIuBMvLrls0+eHWABvjBf8IE9HNo+/QMSJxNYGEqbnO0NNzWgC+bwk7BPAYi/FSQ?= =?utf-8?q?saHwFyDUvf7JqzyiApFRY1s72IFq4B6VkHzDekMxImRxgDvU03y35bUM9l8d/N0C8?= =?utf-8?q?eLDmEQ7vq3jUqhfhtVRlHolMIV8T/BxyoD2MorqmI+23aaPtMMT/ihny3yUeLW3ED?= =?utf-8?q?sTIwh1feo0wgAYgngxOJxoz3Mlq8/4xbIxnTKrNjAcox/QRxehe8ukAMOW1TBh8Mh?= =?utf-8?q?r0fBneibrvZ+M106rVtiBQknQEKOBjAyh85v+REGBJ7/5woxkdnv7/DHD6NNZRR90?= =?utf-8?q?EkrrDrMGu4GmUfdPFneRbQBkmfkknkQuSq3US0BtnQGSaESiwhlTFoE5PF5nUQ5T/?= =?utf-8?q?k9RFXXRDyfI02BIn6PguUyjYk+qR8qEty0CITzGRb8c/F47U2vxfZtvegcides+zY?= =?utf-8?q?SE5xyHQ79wEcq45MpnLhMsMp0vRPAQSPLwDKDKveMtZe+EYeXsUfDQ6yCyklCXv/m?= =?utf-8?q?0Hx7AAlWFhdDEkM2mYwadz3nWlIIuxdEE+Yepc5qLFMXOx+egiq84Sz/UVkT9OFCW?= =?utf-8?q?xjINuxQ4FMRme9YscrDENze5l8SNGPbMhdnQWFi8hgNiT6krwnXIoo8HV7Xnqs9xY?= =?utf-8?q?fHzQ56H7tZLQIzKVpLsHDR/MX6ibIVv2MXZOPCTG+8FOZluYvD2nKiZG2CDOpy/1V?= =?utf-8?q?u3srkueAHmt+OyxS93aqcImBG7cvskTjq4U38fOEIux98szkpPCi8caCibzsaXpNm?= =?utf-8?q?L18jVwubLS0zALmCVMfkgcZ//pITcA9Mr8L61nnIj/fjBmdq31i+0vJNI/8ckDt8e?= =?utf-8?q?oh3L8BHgOLh7R8ZTj6YPpPlvGimq5VDA=3D=3D?= X-Exchange-RoutingPolicyChecked: do+Y3plRxCqpLUrANmdvK7IiNH71bw6Rw9ZPkHSIhHIVjPN1cYiQouD0EvT4xK2e+rq2XyV6vrIfcOPA9REkMIudHb6DX982FBe2VcksPyLqTnBxvD2+2CLwiCg9yHpTggsep+bLsReOoXThKrQDNaKGqMlsZ3f1cUkqp89oft9mAcCW0VH5cWh7MMIgG9DDl0dSN5mq01SZhIMCgkSlCmxeYLeY4hX01ScaClMiv1DD09ThfWj8KeBKCuOcT/g9QHiHfnQ7qsHlgLLbSeUhu/YcjX+FWRVLVNHLydnaP4T/M18DpL2Nla20ya0m8opvR2Ssp0OB5zQPeht5gOVeBw== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: NlJRjcejTPUvMqBoiUZ9mduoQFQTJniXFp6glRnQPpkEb71Bfo+zjdqrDCghiVUeguxA01oCdC0GulmxijOY8nbvOAERTgNWEeYk6fSJfSAsANP+o+P+pgsnja9yW307dd0aeBtuak7UFIgGPE2PTf3yaKlRfqXpE1iRLsUNauIUlqWS2ASwuZzT5fq2pbUyw5UU3bFhwpQaiHOQpDwT2dadmps2p7EjDjtKxAEsonSvRU9dFPoeZNACl/nubCAP6cJv1Nez2vnUkbdrrcJ0J3gjGOlPewLpVEWnqBqu7xjab5wXdVpfbUm9XSl0iTOlLlO0xgQObWo3bV1HRsh++cHnpkVo3pfMDvsSwjrRMZVC3QjQY1ccCXpY1fY9WWjU2a/ZAOjgntnsaInk0LT0kKQtMe3Wgx9VEDtU+yl4mHcX2gDHGNacsW+6iM/mfglSa7Kurki0h723cIzKD4Oi0+21cBIZ/BCPq1PKVfOXLT7zNHek2+55TczCtYJDkauKphhbMtzZPc9/rk6Jxob8jd8hRsyVEApc5xWpUFnOb80WM4VggnTCDpLbgfFQJEZI5Kg99VyCne92oBApZ9g+PvSp0XYW/XOOnQTes7mU/PMvB5etEyuLdcBvAzOQxyuP X-OriginatorOrg: keysight.com X-MS-Exchange-CrossTenant-Network-Message-Id: f736bd8b-ffe5-4aa5-3bd4-08dee284984f X-MS-Exchange-CrossTenant-AuthSource: PH7PR17MB6130.namprd17.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2026 15:20:25.4053 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 63545f27-3232-4d74-a44d-cdd457063402 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: JsT3G7bKjSYGOplgS3Jp+m83LiDLUFx4IwS8wazc/DIWP+bQ0qo8nmk3711XBmp2ar5gfu+C73CJqG++dYjdpE9dBE8cz+Er2n9YxLTec0A= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR17MB5717 X-Proofpoint-ORIG-GUID: fwFtTlQ94mtSRgknl4vsKs3nefI1vYss X-Proofpoint-GUID: fwFtTlQ94mtSRgknl4vsKs3nefI1vYss X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE1MDE1MiBTYWx0ZWRfX2ab1hGMsWKvz iosxYLD8Xg9P/NlGC1qpmVDSLtdWZWhb7Uo0Dx4VDUV7fxcSHYLV9eL2LY+j78RiMta5fT3jeyg BIzsFifb/h2OcO3jMAW57cl7XyRbhb8ZYxLOvKdi3ywdQLsEoGrA1JbKDupBsSdiDxr6qigN5nR 83DeWn/udQSznCVZ2MMY2Ul705JAn3iNdb6R9//1L+V5avD4zxTPJ73vc0X/YRfCVd+cykqCARZ ua3WW9fXuJT2guPfzQIi9q9tWcj+HHKEyo2VCXiMX4MK6l4PG8G0L5tpXTXQZXo70CFq+GLoh+B 8vK58oAXE6v8kkRSV0D6zaSrnGKMMUssn381hjHRaF5bS9A9LYJXgx/gmcSP41YTNHBa8YP43/5 tSGYS04kTS5fKymN1TR+qBiwBEa5/PilpHsZ+KYtyxLvcBAxpx/m2VmHsAhjlOEJin1NMbmCiUR iha6f7RK2UuYypPwPug== X-Authority-Analysis: v=2.4 cv=DKa/JSNb c=1 sm=1 tr=0 ts=6a57a53f cx=c_pps a=air8cPz1/yJpzemNVwtxUg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=vu2TTH8h0NUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=FLoIbiw2ZNY34kqd41oa:22 a=mOSSRekXLlsqcmK058qe:22 a=F6MVbVVLAAAA:8 a=NEAV23lmAAAA:8 a=A1X0JdhQAAAA:8 a=iGHA9ds3AAAA:8 a=eREoye4mD_A32vJ-KFYA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=6mxfPxaA-CAxv1z-Kq-J:22 a=nM-MV4yxpKKO9kiQg6Ot:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE1MDE1MiBTYWx0ZWRfX1KJ+E9FgfjT5 V0GqOICso3HYhNkWVlPDpihZzpcFH/+6Liuk3s0jk5EOvdC/dVqVWaK4/+8NiIH7LdgTn+9UomS 5XmPNmiN7SdT4egvU0F0+1cOS/PDTPQYbkEpSiBjBpBZjMJLRXIV X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11847 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 suspectscore=0 lowpriorityscore=0 impostorscore=0 bulkscore=0 spamscore=0 phishscore=0 malwarescore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607150152 X-MIME-Autoconverted: from 8bit to quoted-printable by mx0b-003cac01.pphosted.com id 66FDeQYX136804 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 15 Jul 2026 15:20:37 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/240978 Add govendor.py with two test classes that cover the behaviors fixed and defined in go-vendor.bbclass: GoVendorSrcUriTests (offline, ~10 s): unit tests for go_src_uri() parsed via bb.tinfoil; verifies the basic URI shape, path/pathmajor/subdir/replaces encoding, and that non-git VCS omits the git-specific nobranch/protocol flags. GoVendorTaskTests: runs do_go_vendor once against the real recipetool-go-test project and checks that external deps land in vendor/, *_test.go files are excluded, pathmajor=/v5 falls back to the repo root when no v5/ subdir exists, modules.txt is reproduced in vendor/, a local replacement (./is) appears as a symlink, and the S/src/GO_IMPORT/vendor -> S/src/import/vendor symlink is created. Signed-off-by: John Ripple --- .../recipes-test/govendor/files/modules.txt | 6 + .../govendor/go-vendor-src-uri_1.0.bb | 13 ++ .../govendor/govendor-real-test_1.0.bb | 20 +++ meta/lib/oeqa/selftest/cases/govendor.py | 169 ++++++++++++++++++ 4 files changed, 208 insertions(+) create mode 100644 meta-selftest/recipes-test/govendor/files/modules.txt create mode 100644 meta-selftest/recipes-test/govendor/go-vendor-src-uri_1.0.bb create mode 100644 meta-selftest/recipes-test/govendor/govendor-real-test_1.0.bb create mode 100644 meta/lib/oeqa/selftest/cases/govendor.py diff --git a/meta-selftest/recipes-test/govendor/files/modules.txt b/meta-selftest/recipes-test/govendor/files/modules.txt new file mode 100644 index 0000000000..f958aa80af --- /dev/null +++ b/meta-selftest/recipes-test/govendor/files/modules.txt @@ -0,0 +1,6 @@ +# github.com/godbus/dbus/v5 v5.1.0 +## explicit; go 1.18 +github.com/godbus/dbus/v5 +# github.com/matryer/is v1.4.1 => ./is +## explicit; go 1.14 +github.com/matryer/is diff --git a/meta-selftest/recipes-test/govendor/go-vendor-src-uri_1.0.bb b/meta-selftest/recipes-test/govendor/go-vendor-src-uri_1.0.bb new file mode 100644 index 0000000000..9623989f83 --- /dev/null +++ b/meta-selftest/recipes-test/govendor/go-vendor-src-uri_1.0.bb @@ -0,0 +1,13 @@ +SUMMARY = "Selftest fixture: go_src_uri parameter variants" +LICENSE = "CLOSED" + +inherit go-vendor + +GO_IMPORT = "example.com/testpkg" + +GO_SRC_URI_BASIC = "${@go_src_uri('github.com/foo/bar', 'v1.0.0')}" +GO_SRC_URI_PATH = "${@go_src_uri('github.com/foo/bar', 'v2.1.0', path='github.com/foo/bar/v2')}" +GO_SRC_URI_PATHMAJOR = "${@go_src_uri('github.com/foo/bar', 'v2.0.0', pathmajor='/v2')}" +GO_SRC_URI_SUBDIR = "${@go_src_uri('github.com/foo/bar', 'v1.0.0', subdir='sub/pkg')}" +GO_SRC_URI_REPLACES = "${@go_src_uri('github.com/baz/qux', 'v1.0.0', replaces='../local/baz')}" +GO_SRC_URI_SVN = "${@go_src_uri('example.com/svnmod', 'r42', vcs='svn')}" diff --git a/meta-selftest/recipes-test/govendor/govendor-real-test_1.0.bb b/meta-selftest/recipes-test/govendor/govendor-real-test_1.0.bb new file mode 100644 index 0000000000..a8741a872f --- /dev/null +++ b/meta-selftest/recipes-test/govendor/govendor-real-test_1.0.bb @@ -0,0 +1,20 @@ +SUMMARY = "go-vendor integration test: recipetool-go-test" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=4e3933dd47afbf115e484d11385fb3bd" + +inherit go-vendor + +GO_IMPORT = "git.yoctoproject.org/recipetool-go-test" + +# modules.txt for recipetool-go-test at SRCREV: +# - github.com/godbus/dbus/v5 v5.1.0 (external, fetched via go_src_uri) +# - github.com/matryer/is v1.4.1 (local replacement => ./is) +SRC_URI = "\ + git://${GO_IMPORT};name=recipetool-go-test;branch=main;protocol=https;nobranch=1;destsuffix=${GO_SRCURI_DESTSUFFIX} \ + ${@go_src_uri('github.com/godbus/dbus', 'v5.1.0', path='github.com/godbus/dbus/v5', pathmajor='/v5')} \ + file://modules.txt \ + " +SRCREV_FORMAT = "recipetool-go-test" +# git.yoctoproject.org/recipetool-go-test main branch HEAD +SRCREV_recipetool-go-test = "c3e213c01b6c1406b430df03ef0d1ae77de5d2f7" +SRCREV_github.com.godbus.dbus.v5 = "e523abc905595cf17fb0001a7d77eaaddfaa216d" diff --git a/meta/lib/oeqa/selftest/cases/govendor.py b/meta/lib/oeqa/selftest/cases/govendor.py new file mode 100644 index 0000000000..65ca8a1145 --- /dev/null +++ b/meta/lib/oeqa/selftest/cases/govendor.py @@ -0,0 +1,169 @@ +# +# Copyright OpenEmbedded Contributors +# +# SPDX-License-Identifier: MIT +# +# Comprehensive tests for go-vendor.bbclass: +# GoVendorSrcUriTests -- unit tests for the go_src_uri() helper (offline, ~10 s) +# GoVendorTaskTests -- integration tests using the real recipetool-go-test project +# (network fetch of git.yoctoproject.org + github.com/godbus/dbus) + +import os + +from oeqa.selftest.case import OESelftestTestCase +from oeqa.utils.commands import bitbake, get_bb_var + +# --------------------------------------------------------------------------- +# Class 1: go_src_uri() helper function +# --------------------------------------------------------------------------- + +class GoVendorSrcUriTests(OESelftestTestCase): + """Tests for the go_src_uri() Python helper in go-vendor.bbclass. + + Parses the go-vendor-src-uri fixture recipe (meta-selftest/recipes-test/ + govendor/go-vendor-src-uri_1.0.bb) via bb.tinfoil (config_only=True) once + per class so the function runs inside the real BitBake class-loading + machinery. All tests are offline and complete in ~10 s total. + """ + + @classmethod + def setUpClass(cls): + import bb.tinfoil + super().setUpClass() + + recipe_path = os.path.join(cls.testlayer_path, 'recipes-test', + 'govendor', 'go-vendor-src-uri_1.0.bb') + + with bb.tinfoil.Tinfoil() as tinfoil: + tinfoil.prepare(config_only=True, quiet=2) + rd = tinfoil.parse_recipe_file(recipe_path) + cls.bp = rd.getVar('BP') + cls.uris = {k: rd.getVar('GO_SRC_URI_' + k) + for k in ('BASIC', 'PATH', 'PATHMAJOR', 'SUBDIR', + 'REPLACES', 'SVN')} + + # --- individual test methods ------------------------------------------- + + def test_basic(self): + """destsuffix uses expanded BP""" + uri = self.uris['BASIC'] + expected_ds = 'destsuffix=%s/src/import/vendor.fetch/github.com/foo/bar@v1.0.0' % self.bp + self.assertIn(expected_ds, uri) + self.assertIn('go_module_path=github.com/foo/bar', uri) + self.assertIn('nobranch=1', uri) + self.assertIn('protocol=https', uri) + self.assertIn('is_go_dependency=1', uri) + + def test_path_override(self): + """Explicit path= sets go_module_path independently of the repo URL.""" + uri = self.uris['PATH'] + self.assertIn('go_module_path=github.com/foo/bar/v2', uri) + expected_ds = 'destsuffix=%s/src/import/vendor.fetch/github.com/foo/bar@v2.1.0' % self.bp + self.assertIn(expected_ds, uri) + + def test_pathmajor(self): + """pathmajor is encoded as go_pathmajor in the URI.""" + self.assertIn('go_pathmajor=/v2', self.uris['PATHMAJOR']) + + def test_subdir(self): + """subdir is encoded as go_subdir in the URI.""" + self.assertIn('go_subdir=sub/pkg', self.uris['SUBDIR']) + + def test_replaces(self): + """replaces is encoded as go_module_replacement in the URI.""" + self.assertIn('go_module_replacement=../local/baz', self.uris['REPLACES']) + + def test_non_git_vcs(self): + """Non-git VCS omits the git-specific nobranch and protocol=https flags.""" + uri = self.uris['SVN'] + self.assertIn('svn://example.com/svnmod', uri) + self.assertNotIn('nobranch', uri) + self.assertNotIn('protocol=https', uri) + self.assertIn('is_go_dependency=1', uri) + + +# --------------------------------------------------------------------------- +# Class 2: do_go_vendor task integration — real project +# --------------------------------------------------------------------------- + +class GoVendorTaskTests(OESelftestTestCase): + """Integration tests for do_go_vendor using the real recipetool-go-test project. + + The govendor-real-test recipe (meta-selftest/recipes-test/govendor/ + govendor-real-test_1.0.bb) fetches git.yoctoproject.org/recipetool-go-test + (commit c3e213c) as its main source and github.com/godbus/dbus/v5 v5.1.0 + as an external vendor dependency. The project also has a local module + replacement (github.com/matryer/is => ./is) that lives inside the main + source tree. + + do_go_vendor runs ONCE in setUpClass; individual test methods inspect the + resulting vendor directory without re-running bitbake. + + Verified behaviors: + - External dependency files are copied to vendor/ + - *_test.go files are excluded from the vendor copy + - pathmajor fallback: when the /v5 subdir is absent, repo root is used + - modules.txt is reproduced inside vendor/ + - Local module replacement creates a relative symlink in vendor/ + - S/src/GO_IMPORT/vendor symlink is created pointing at S/src/import/vendor + """ + + GO_IMPORT = 'git.yoctoproject.org/recipetool-go-test' + RECIPE_NAME = 'govendor-real-test' + + @classmethod + def setUpClass(cls): + super().setUpClass() + + bitbake('%s -c go_vendor' % cls.RECIPE_NAME) + cls.s_dir = get_bb_var('S', cls.RECIPE_NAME) + cls.vendor_dir = os.path.join(cls.s_dir, 'src', 'import', 'vendor') + + # --- test methods (all inspect cls.vendor_dir, no bitbake) --------------- + + def test_external_dep_copied_to_vendor(self): + """godbus/dbus/v5 source files are copied into vendor/.""" + dbus_dir = os.path.join(self.vendor_dir, 'github.com', 'godbus', 'dbus', 'v5') + self.assertTrue(os.path.isdir(dbus_dir), + 'vendor/github.com/godbus/dbus/v5/ not created') + self.assertTrue(os.path.isfile(os.path.join(dbus_dir, 'conn.go')), + 'conn.go not found in vendor/github.com/godbus/dbus/v5/') + + def test_test_files_excluded_from_vendor(self): + """*_test.go files from godbus/dbus are not copied into vendor/.""" + dbus_dir = os.path.join(self.vendor_dir, 'github.com', 'godbus', 'dbus', 'v5') + self.assertFalse( + os.path.isfile(os.path.join(dbus_dir, 'conn_test.go')), + 'conn_test.go should have been excluded from vendor by *_test.go pattern') + + def test_pathmajor_falls_back_to_root(self): + """godbus/dbus v5.1.0 has no v5/ subdir; pathmajor=/v5 falls back to root.""" + dbus_dir = os.path.join(self.vendor_dir, 'github.com', 'godbus', 'dbus', 'v5') + # auth.go is at the repo root of godbus/dbus, not inside a v5/ subdir. + self.assertTrue(os.path.isfile(os.path.join(dbus_dir, 'auth.go')), + 'auth.go not found; pathmajor=/v5 fallback to repo root did not work') + + def test_modules_txt_in_vendor(self): + """modules.txt is reproduced inside vendor/ and lists the external dep.""" + modules_txt = os.path.join(self.vendor_dir, 'modules.txt') + self.assertTrue(os.path.isfile(modules_txt)) + with open(modules_txt) as fh: + content = fh.read() + self.assertIn('github.com/godbus/dbus/v5 v5.1.0', content) + + def test_local_replacement_symlink(self): + """go.mod local replacement (./is) creates a symlink in vendor/ to S/src/GO_IMPORT/is.""" + symlink = os.path.join(self.vendor_dir, 'github.com', 'matryer', 'is') + self.assertTrue(os.path.islink(symlink), + 'vendor/github.com/matryer/is should be a symlink for the ./is local replacement') + expected_target = os.path.join(self.s_dir, 'src', self.GO_IMPORT, 'is') + self.assertEqual(os.path.realpath(symlink), os.path.realpath(expected_target), + 'Local replacement symlink does not point to S/src/GO_IMPORT/is') + + def test_go_import_vendor_symlink(self): + """do_go_vendor creates S/src/GO_IMPORT/vendor -> S/src/import/vendor.""" + link = os.path.join(self.s_dir, 'src', self.GO_IMPORT, 'vendor') + self.assertTrue(os.path.islink(link), + 'S/src/GO_IMPORT/vendor symlink not created') + self.assertEqual(os.path.realpath(link), os.path.realpath(self.vendor_dir), + 'S/src/GO_IMPORT/vendor does not point to S/src/import/vendor') From patchwork Wed Jul 15 15:20:09 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Ripple X-Patchwork-Id: 92546 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 35BA4C4450E for ; Wed, 15 Jul 2026 15:20:37 +0000 (UTC) Received: from mx0a-003cac01.pphosted.com (mx0a-003cac01.pphosted.com [205.220.161.93]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.8025.1784128832593602004 for ; Wed, 15 Jul 2026 08:20:32 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@keysight.com header.s=ppfeb2020 header.b=Jrj4LvdW; dkim=pass header.i=@keysight.com header.s=selector1 header.b=WBw7HCTr; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: keysight.com, ip: 205.220.161.93, mailfrom: john.ripple@keysight.com) Received: from pps.filterd (m0187214.ppops.net [127.0.0.1]) by mx0b-003cac01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66FDeQYY136804 for ; Wed, 15 Jul 2026 08:20:32 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=keysight.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=ppfeb2020; bh= BWWsER/kwfPrEcsGmnNyqFw6OymwiyPT60cmW0uoOMc=; b=Jrj4LvdWvT/9H3wJ eFMrbSj1H8fTaFrD7x8pvyenPus92TNuGbTs0A5BW6zCKgLq8iUW+lLP40r7WeSI RieqQRTwAou5etwm28qM33HYfmgg3dE38iRZBCiL25B3lGlQodEXNBeS0HzEU0U8 QAlVsAmbehP8VynYUcUqh+F8O1tuRb+/2rswyxv1PWlgX1NGo8fn4sR4Ob+g+uZN mv4D5yDsq8NdUzud4he9brqLyzvYrkU5yppirJ4Dgku/heYvQhUPfmYwIRTsNCc1 Q7UOmKibtkDdzc2GP9HJqPRXMroPlgzOXa0IQ35BdOkTfKnR2KklnT6JSF7wQDAR fi2kyQ== Received: from ph7pr06cu001.outbound.protection.outlook.com (mail-westus3azon11010039.outbound.protection.outlook.com [52.101.201.39]) by mx0b-003cac01.pphosted.com (PPS) with ESMTPS id 4fe11ha1qe-2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT) for ; Wed, 15 Jul 2026 08:20:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qLZTwWaEUIwFBeNaTLEGfFjjFjcd5CgQYVm3lYaI2hOH1CqIa1KOv1BJymW1tkffeLbT9yTI6PsdiAAWDMLlXVC8C7eibL9vlQpxVcpI/F5fqxoTWHjgeugNlkifwGh4WzusM0PsGizVGosJuml2LLoBrNE5Lhd3rfb2b3pZC+lmVvK478d7n3zB/dLDaTB/knBO9FlcxholinfzI3yzeDhiDrW/2wb9ZYrXlcWkmnsW4hD5/Iz7jQPxsIp9DimwisgJLrEXELtr+Sf6aG5oytUKPaLfGIXQPLOPVo+Nmq+Vs0acflmgGzNTh4pp2UGkX6IKxaT4Vou4GXInSiRkxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=BWWsER/kwfPrEcsGmnNyqFw6OymwiyPT60cmW0uoOMc=; b=qdfPiEgyIMKjxxLaxuvLgFndHMbAUxciUR3VNYt8PYXdLPjkgeu0JtVyNsd5h8oPjzH9Eu8gVJUsAhpEj05mLGbRw/iRLr/oa94F9QsthLqvABHHVCM2EtS03u1HqAKC6vW3zzqLIS576L9mJfTxK6XXzW2E2PIBpYX80VWnLURQ9nh/dDBcj9efqeMpcUaObJ61rW53YYYpw8JdEtqf/aheda3/W+kzrrFRxcnzcEG/ywDah/bnT1XTqLdNgN7/aIO23F57G5lrdhDPy+BxKRsh+ZPOEv74bGqhyayIj6NuuC1kSx1jF5ctbScKQiVztgcShydGznq39kCGOCTDNQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=keysight.com; dmarc=pass action=none header.from=keysight.com; dkim=pass header.d=keysight.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=keysight.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BWWsER/kwfPrEcsGmnNyqFw6OymwiyPT60cmW0uoOMc=; b=WBw7HCTr2f1ZzIjB9OygGgL1Auj5QvNUjyeLj0qKnLDZLJTHy3ipTwdDYlqssm+CZh2+Z8pPVfXwdZ47jnIlLbnKTU7wMHZ7LziSGO3NDweDJ3UGnI1ZyTjkPY8rtvIA3sG0/+H0FqBpK7ZCGSNlXtR5Wb1nZNmWMDIHFUwdRIA= Received: from PH7PR17MB6130.namprd17.prod.outlook.com (2603:10b6:510:1f5::17) by SA1PR17MB5717.namprd17.prod.outlook.com (2603:10b6:806:1cc::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.11; Wed, 15 Jul 2026 15:20:29 +0000 Received: from PH7PR17MB6130.namprd17.prod.outlook.com ([fe80::7052:ef05:ccc9:d9c2]) by PH7PR17MB6130.namprd17.prod.outlook.com ([fe80::7052:ef05:ccc9:d9c2%3]) with mapi id 15.21.0202.014; Wed, 15 Jul 2026 15:20:29 +0000 From: John Ripple To: openembedded-core@lists.openembedded.org Cc: John Ripple Subject: [meta][PATCH v2 3/3] go-vendor.bbclass: Run vendor_unlink task under fakeroot Date: Wed, 15 Jul 2026 09:20:09 -0600 Message-ID: <20260715152011.3542412-4-john.ripple@keysight.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260715152011.3542412-1-john.ripple@keysight.com> References: <20260715152011.3542412-1-john.ripple@keysight.com> X-ClientProxiedBy: CY5PR22CA0077.namprd22.prod.outlook.com (2603:10b6:930:80::29) To PH7PR17MB6130.namprd17.prod.outlook.com (2603:10b6:510:1f5::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR17MB6130:EE_|SA1PR17MB5717:EE_ X-MS-Office365-Filtering-Correlation-Id: fcaa0953-f9ce-4c8d-9379-08dee28498bc X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|376014|1800799024|366016|55112099003|22082099003|18002099003|11063799006|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: oanJFMZ8Z7jaQowlkTw+UnImiXFU1Q4KpXFtgNF7FqVkHt0rx+hUAKRWpdi8sFoLNi0mAsaTCH4VJ1nJbvgjcmRRs/ICB+BJ41yhm1dUQkHurmKFFFjZG7uiLcAGmm+ml+n+2stRIZF8BxZibjnmK626ilLgiwVDyUTuhouXKDfmZoq2Hg0sloCzrAI9vnsnvOXI6At4bGDYyCShAoylnVJiL0KFeHo5Nt2+6F/ktdEbUY8mG7WrObJSUpdEIAgaEmn1rKH0IyvycTJt1I3YNB2Gc4zlsABYcjkFYepE0i5dtRXlybbZLorkr9J6jEAOi4JmFIyZBG2X5TtF3AYHODNd0wADSG+PpxHTEgazO7EOgyvv7DRNmAN9wrXays4kmDd3cUwPh1rJsNs+HwqNXmUCvbrMCiIjLsE5JFTvrJAAhFWYwgOnsRDKM/2HsX/UwyGQ4lIyTzEaUX7b5MctYmN1b4n7Dbql/yA3fvwK4epEkw6KNTofv+9MtNFShiZXtueoQ1nBC0gPXrpFLYdzHFv8HmZwf1M8ZJwqWI0mJz/c94a4meqS6r6S307B0zkg9U4riWAIYT1TOyil6PZi3xRTJ0LEKfQ6pZoVVOVcScctNYwpasJd5K5gMxKxHptVI9kxoZovSYo5MhDisUBd6RoSaiN36X63m8XPFTHxzo0= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR17MB6130.namprd17.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(376014)(1800799024)(366016)(55112099003)(22082099003)(18002099003)(11063799006)(56012099006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: +aXsGMQol+Ql6Iqs4k2hXNwVo6BprxDdr+1fNFEdtJHFdSfs1feKI90QloXcOsIEyY2TFvQEhc27UkFJJCBn/AKSoNtuARHGiycBBDc+NWOTl0hOBO13AUE4QPLxfZF90uLx3k08NiC9MawoTLbuGMtQJKxzRlJRUZ+K445iVEUb4qsSfl5U7GMro8a1eacOe5H8Yw25mMu1WCU9avwJWZszdn+bAC/+BHH7/9g+7FoeZU4U7WqYCF9z1n3TQI8GM9e63juYoyoONmXAg1JQS4yUS9pqawwL2y7S8O5dtWf1y/9I9HsA7AZ0tGnYxwpkOqn0+luzZ941qhLgSTn6h4Cs94OS/YG0P3lVy/LSmGG5ccV/Tkbq05uXvdi70FSVKprdql/Gh3AaEv79gR8g0Hsj8yZaHWleCbFCCmd/MEmFE/GMw1cMnl6ARENE1lFibDZBye6asR4k7PaUS+PeiMLnWz5//d9sKkokMbiDMy6HZ0K3/gAkheP3VVXsHVvqPrtiakEDKP2F2xXL9erJ+HD7Q8YG2HWMyFaqpFv5lTWxiqNtzn1wqM0jL2jO7mYCtw3UQMxdAtcwfnKbMkj2z9mBgbLzAagDC+S4rfqmiXVGxu5Wsg2nvH+LD/UCF4M+M2AJl/0gyQ2wL6Y2f4NITrKtftRfjkbhqwfo4pPQoMDuRivjVbcFBhoEEEtO1wZpvR6SxPdxt1dUprUxJFg7UD/wgRlX+17gfaCbCpSTFV2XcNzPeIyl6uY66vDJ4Y527lkeDnR6O8pH+Uxkc7wi4PGVI6jlT4ZKkB+nFnhyQ5lfsv5zv/deckaASur3pm+vRLgIUH3Ppms2Bs747s7eU39hGNKhqHMY4i6sVP20BNoQEVH9BYVz0H4lR0hwxWIw92M2bUzTbvpbL6/nL85Va1IU5uRzrv0bHeDEkK1/ZKBFyxOrkcudtB7vQfAgI9obBcn3uOTf1xa76SYxRYV5MI86DNmM/X6LYyq6wsAI5PR+qIgVDpNbGmwXdBGtj3YYSJL2iZsAGYYQ1mrq1poH8DCfdwahcWSnlNhgtv0HhhB2TMNCgULBOC3IFTAX7MWeT2SfH0xu/vCJKILwxJ1NOdEo0Y+4HLiL2tGdJcVL0M7fSG93AXQ1Viw2kAUIY77unp43oLIL6LvhgZS2jGXTkeSyHPn5ryvhaj/5leW77XwBMMjgoHBTJHWWKEX8+AT8faMoFhVM3gMQSaJUcf11RbiJutL5dEmx+9JCfsLvKSBZtySvnsN75xDiqY9OYbdaTkPRkktshyclX/8v/Z/H94UMjjt9JViwO5b6kfHrO2pNkFdiaz+xATtXgAVd9ZL52HlSRtvQ2o5Exhag9HTySBKBzRzY/lcdlKAWufzu1qLw78PIHUk21Q4Tq3cP0yHWH1THfW29cFpWcCSWro/QSteCQFhrlQQgGbjGKjBgMQTlEZthER46894+eC5jujVbwTAxCAjQdquIVW2EJwXT/e3fQXXIyPa84aBYTtyvcaZ/K1IYkMgBiVf8f2FZ+x3ReH3KkaE6EUHwUOFhdYgQXF+LlmjUmuAaTl8mXDkMWNS47yDga5XuXTM7i7PxMMpITQH0xBN7xSrnyVvpzP6ddFBBr8iP1LSLMZ27hOhwvqq2gf7Q/NqJ3pX/YDTRub5bDpPtmt0sMaWvINxf25/S77KC9wWzQvCYmeFv5ZNnkojO34egIsjQcRt7kJqXnoff3zNmbG+secUzqIgD8+mr6Q== X-Exchange-RoutingPolicyChecked: JB33/0zvJhI04hVWFwITHlWhTQnqkqTeHqXUiSbdioMBX09Zep4ByHYvC5baAJGMG730g5v+7P09MnyiEp/XlgqY2HEjfLxfTI/1N/xcrSvrwTQzUv6JzVW/UhlxDmz0zi61gwDqES49qDNAVp+TEkhraGWX0OG3w19Bekeufjlc0VHZg4Sr0kebl5/RkdWquv+yoq6gT2nZ/8UTsYhagOzk0in8yVKmAZ7W1CZUB98oXUhyl2/L3HZTxxXoQqF2dBcsav0H4bmBj2qwuYavdrM7oMTJUi1kSIeXYeTQMtsEuZzQc6zfdxhX8RFm/JYDZIPV5SbP0t0Li3jRm+BYRg== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Kt27unHn4wIawJcv2jV4FaoJRTAhn79jrlLzU2N74XhuRLvqFXNJkpbnVC98aA/mEWsoUPVI9Cgd8Sojk94CtwCodsp/qyo78VX3j78LQdwtwczddELDfgZEk0XYqyyiJm6zcvlMiSYFdZASmKz+YXapXpHOI+L8NrHEPtNCSxATcESrVLGSJ+JV1yGbfBiuf5YgacVjMr3mY7fzc4KGupY8rmMs8MgUCKDW2d7wm61ReqZww6ABufGhEEbufclQLTvkKaOa75KB7Al5w9aL9dIqjDUZb6teJFAcvO+dmu4sQyvmQ+G5aSk8sNVICQIgMMMjj+WA/OmvL46OhDft7ekpqEqU1/Jw3fKt+GWf621M4Su+lmlKIQg2aPPSS+OadOtH0qMo6qOSAiisT7HLw3Fx0izikPJbtdqvXbUCpvcec/bca0IDD7Wkx9PKRb3WdaunMiiSEfifo30wdEJGiMAbXcjdLxuvSXDNurZOJIwlorxndlfJfUGVM5Kitkoga4qiaW322r9lATO2+G6k7qzSfi+NRJ261U5zcloW2lQ7DQSmek/IJ2cZu7EQuYTnzryrGb4dhqHabhsfFGQaoBY8qDjf5E1CUuInGbOFShTCsGTnh7zxwh2wFNPtMek6 X-OriginatorOrg: keysight.com X-MS-Exchange-CrossTenant-Network-Message-Id: fcaa0953-f9ce-4c8d-9379-08dee28498bc X-MS-Exchange-CrossTenant-AuthSource: PH7PR17MB6130.namprd17.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2026 15:20:26.0884 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 63545f27-3232-4d74-a44d-cdd457063402 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 2M6AppCI0IlAJvg7m9XQGTMlmy7whiM1+utCN2Xv8YpuwrX8mHpsOJTkxE39DT0boBrUD6nwGRsb6LYTMdritz9Jp8Ym0DRnSuQsG521NX4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR17MB5717 X-Proofpoint-ORIG-GUID: fdrxZjvsXFWxq386E8tMpSzexfLcub-J X-Proofpoint-GUID: fdrxZjvsXFWxq386E8tMpSzexfLcub-J X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE1MDE1MiBTYWx0ZWRfXxkpUaf352oB0 0J5KGbuPWpwGiv8Y8YmNY1BSiCBgrhlMcahB6A5CiBltJhTGW76bfwKGDfOT0DsFb0EyGwXVjfc z5OcQE7fPTTmCB+9yxg0D7+bGfunOQSbKPg411SM4eLb6y5/IT3NM2WRYCYWvgc0+gE8EnNWaaV /7l6XACdTgUT/06uOSBZrqZqpGofs74C2+EfMW48oHbCQM+FRWnlgkybV9nZ+vPVPSIf6o2evjZ 4+KZC2KJgIz494/SsHXf9hzi9z4gHceUVFpWXyyimW3bV74WDcz5Oj9/oCs9bun2ez1RH87ndZ9 IBtpIAA5dUADiSfXOZ56qgciwxbO3R6Fd3sK0QlN2gmw91197pAASiAjItOqpTDsTotxD/ibYus T9d1sE/XGgBUsg3PKARs2wetAsiQWUik1jg29zu5CkOrxvlhmGfZG2R0gGtKKsOSbWhS4OQvpwt YsLoqocVHks/cJKRcDA== X-Authority-Analysis: v=2.4 cv=DKa/JSNb c=1 sm=1 tr=0 ts=6a57a540 cx=c_pps a=air8cPz1/yJpzemNVwtxUg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=vu2TTH8h0NUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=FLoIbiw2ZNY34kqd41oa:22 a=mOSSRekXLlsqcmK058qe:22 a=F6MVbVVLAAAA:8 a=Yyp9YMqRlRMKTZWmAgcA:9 a=6mxfPxaA-CAxv1z-Kq-J:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE1MDE1MiBTYWx0ZWRfX4Qgggnce5ydJ rP7DQOxM0Cb5xVde2H8HE8LQBDvMb9ZkihS86W9KsZCR6tBW5saeq/KIjElMuKJxPbztRskOWc0 6WbB6j11QwLLzMi5+Gp1/h478R6rxxK08p4OKTzcu2HJ3vxlUYAr X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11847 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 suspectscore=0 lowpriorityscore=0 impostorscore=0 bulkscore=0 spamscore=0 phishscore=0 malwarescore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607150152 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 15 Jul 2026 15:20:37 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/240979 do_install and do_package both run under fakeroot (pseudo), which keeps pseudo's ownership/inode database in sync with what is actually on disk under D. do_vendor_unlink runs between them but was never marked fakeroot, so its os.unlink() of the vendor symlink happened outside of pseudo's view: the file disappeared from disk but pseudo's database still held a stale record for that path/inode. The next fakeroot task to touch that path (do_package) then finds the on-disk state and pseudo's database disagreeing, and pseudo aborts with "path mismatch" / "inode mismatch" errors, failing do_package. Mark do_vendor_unlink fakeroot, matching do_install and do_package, so its filesystem operations are tracked by pseudo consistently. Signed-off-by: John Ripple --- meta/classes/go-vendor.bbclass | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meta/classes/go-vendor.bbclass b/meta/classes/go-vendor.bbclass index 85a3c1b586..5bb4e8e876 100644 --- a/meta/classes/go-vendor.bbclass +++ b/meta/classes/go-vendor.bbclass @@ -40,13 +40,14 @@ def go_src_uri(repo, version, path=None, subdir=None, \ return src_uri -python do_vendor_unlink() { +fakeroot python do_vendor_unlink() { go_import = d.getVar('GO_IMPORT') linkname = os.path.join(d.getVar('D') + d.getVar('libdir'), 'go', 'src', go_import, 'vendor') if os.path.islink(linkname): os.unlink(linkname) } +do_vendor_unlink[depends] += "virtual/fakeroot-native:do_populate_sysroot" addtask vendor_unlink before do_package after do_install python do_go_vendor() {