From patchwork Tue Feb 11 15:00:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Herbrechtsmeier X-Patchwork-Id: 57111 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 80353C021BD for ; Tue, 11 Feb 2025 15:01:15 +0000 (UTC) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (EUR05-AM6-obe.outbound.protection.outlook.com [40.107.22.137]) by mx.groups.io with SMTP id smtpd.web11.1143.1739286064813401053 for ; Tue, 11 Feb 2025 07:01:05 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@weidmueller.com header.s=selector2 header.b=DTTB8FbC; spf=pass (domain: weidmueller.com, ip: 40.107.22.137, mailfrom: stefan.herbrechtsmeier-oss@weidmueller.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bDTi3KewfLUpAxxUizsi7BQYmZVOvMvcTgeuGy35PJPh48Zzomeg7BYXn0BXq8NEcyrwWxZ8pdrB141LdmPGCZsFcz3HCtip/DmqAHiD77YrfBEtZn61nshZYE2ZFb8X6knmYZlmBGdl5bIX7E3c5jCBha/OTAwkCC2KzKVermjXL3GSfMv5ZLKRjcESVBh5dOW6iFspKEE+u1Z5Cs0+VWGIsVRSu0941H3Fz+lt4TuO15ThE6Ao86vX6oqSCaHOVInViNhhusAbLU4+9VxlnDZ8WI9k+Ve9xTVwM7iASpVVTN+lwXxNL6ZMOgCCYoAbqQxqa5kefUlobFgmKR6Jmw== 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=Gxi3G7sEktc5G6E6X4ZTOicCzTpi14bEYV5mfinI4Co=; b=VNq91e3y0JgJxWK4fvm23Z4Q87MCP8s/kZv+Hdo7eXyEnq1nj8gtqZFSzH7ApJYgFcNwO9DXdJqMKW1A38XiUlf8l9lze3tURcksEVOs7+n2LeL4W7xeZOCTLEjM7PWnrjuOxXJ0N6LU74AvUqXU+q1OEEOBu/WYD/PCeoCTm6OC902tYRDv23SET+JhVoyLgQePo7do8zm9KEG+B4k3jWASfUSqmsfLBL1gJa2q+picm3+hNNypERBRFop3nq9ybbdoRi0L2398QUXPMyYd9Qm/NVrp8QJ8ebPwygDUzcFJopVsv+Beqe+LlLvE4XLQYr3iyZ2ySaLwIykJizwGwQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=weidmueller.com; dmarc=pass action=none header.from=weidmueller.com; dkim=pass header.d=weidmueller.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=weidmueller.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Gxi3G7sEktc5G6E6X4ZTOicCzTpi14bEYV5mfinI4Co=; b=DTTB8FbCTk2xcFiT8t8HMvzL35JqC6djRWfMnXIMCBHZc8GAQlP6coRwVQk28EuDwZBWEn0lKW5WvGLZGOoEh5wGUns/iSv++xFIpVTf1C+ztkF1caIRxjeJsWF8dUhP7YlpFH8EoGRYJCkWXnZE9gIos45G754HWzqyKlsNcVXx3DbI7X9PHGFeP54mDIwsJTulg0BOJp9PtkMLkvwcU12pAfSf7AMW78AdaY7Rb3vcpMpekntQzfrQKLuj7Ouok+4meb1fslTPmE2cBXqFbUbJd/mb+BcPwVC3Hcb5H63IZiySDNCwsYoxHWBwHJfT72M0MVjqC9JXp4xlqza8rg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=weidmueller.com; Received: from GV1PR08MB8426.eurprd08.prod.outlook.com (2603:10a6:150:8a::17) by AM7PR08MB5399.eurprd08.prod.outlook.com (2603:10a6:20b:104::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8422.19; Tue, 11 Feb 2025 15:01:01 +0000 Received: from GV1PR08MB8426.eurprd08.prod.outlook.com ([fe80::f9f5:b4bd:9e01:9013]) by GV1PR08MB8426.eurprd08.prod.outlook.com ([fe80::f9f5:b4bd:9e01:9013%7]) with mapi id 15.20.8422.015; Tue, 11 Feb 2025 15:01:01 +0000 From: Stefan Herbrechtsmeier To: openembedded-core@lists.openembedded.org CC: Stefan Herbrechtsmeier Subject: [RFC PATCH 18/30] classes: add vendor class for go Date: Tue, 11 Feb 2025 16:00:22 +0100 Message-ID: <20250211150034.18696-18-stefan.herbrechtsmeier-oss@weidmueller.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250211150034.18696-1-stefan.herbrechtsmeier-oss@weidmueller.com> References: <20250211150034.18696-1-stefan.herbrechtsmeier-oss@weidmueller.com> X-ClientProxiedBy: FR0P281CA0103.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a9::16) To GV1PR08MB8426.eurprd08.prod.outlook.com (2603:10a6:150:8a::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1PR08MB8426:EE_|AM7PR08MB5399:EE_ X-MS-Office365-Filtering-Correlation-Id: 428ca8ea-5e9f-41be-0e15-08dd4aace234 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: 06qvnxWBg7/MvmnSxCwFEv5aRFT/T/Ckb4KamCQXp/5mYPo1HPYC+c8NG60RhKJcHddyLNbjmrUtC0ATS4hrZVIFRFCWyfwGqrwcKJ4jfKi3qSeK8fPPaopON34ood4CLUoh7jLRoaAikOZKd7++ktltOt9Iz9Dlo6q0pQPVn83QOtSbNqnfUDMCNFW0IyLEhuJQ1YYV/sF1Q+el9oHXsJUzZxTddVdJ8eSJNxESPR1ubRY+eWgCxoVIXcR27maZ/iKoODaVB6tjZquaBwPcupFnHVqdMumaFUSCFst94y0/ac2nhLGQWmVGYLGCS3vDAgxHk3zmmT6xGk3M/zF1dt5XaYX5CDW9MMcfNr6nMl2jZ+4aOClYpLWhGA5XcVmoIWyXptypLP2IDhiG7QN8NVNJV/kQsHd4B0YdT956oyhJibLRWrW536uloWX2FEhijIvyl5r82JIb5pty4/twBoGlcFRUlqKH9jOFBAQwfyE5AmZGKOw6zJPXsLweb4GmMQv0sMx7pgTGqjTs/tqwwwpE04lG1VA9ioFFr1L108eV7oj/enS/8xVdRyFWTueEPgN2ux9jsu/B30m3tlfoZaOA/aSQuZqxe1rkQ3hOCMF+DsvzcEfV9xtVqpxKJ4KdHNSqEKSy/fwIM6uuagmmoRFgg386IAnsMAtWJDXt9AcmHBkGC8svfw5cQ3UGKJmp+yLuVyA8Ph/66FWkVrU1JjebEByHlppyBDPzDZxDk7da9Pn/WeeM5xYjP04TL+LCFuN1o2wVzCgCKipNiKDSYnXonmkmshwmL9bX7osaZiHfKPQUnJS7EFRbiH/icXKNw/5gU/VCd3klr1oUGSbMuDUFIE8RFL+CcXbQAnc+cO6EO8Go19UueL9j7tCaidvDjdvLpYvAuF5+3o5hOaPn1fbsGapOIkEfaUmH+pcwi8uQjUVuL1plv5YPRGurS87nFW1CN8Z2mvsnZGEzBqStCr2SMbCy6THOZcXqRcHZuBNSUbiwnRL0VaoBnyjBlJeklmhY0yWqob4mywNjceUFR+yfNJJA9VlMDRDLHKq+2ZoGzONoZZDEb3NbQppZa4d7M8Td3APXmqc/9Q2pT9LmIuiiOpZdZW5/n1ADtGuBSF4zf4ynRm36UECLCuf5pRXoNC6OFnPwVYHV1BMupPR1Cm0b42tF3QTQ6b1gtOVEf/fcoR3/scId9IMlc+wNFIM5gDu6ehkasbt47jkHP30Crm9w0yCnRT5EyqpPKPYESyouYSgHabjcgEdDwCEngTPLV317wNNF4hOeD56yERsQ0OMh9JuT5oXlq7mVYdaDq6d5RXA+bwC/jK5LHzubUpo46wQP297jur17ocV3ze1Gyfzb9Ys3LENitVsoFHb818hdjM/Nmh5YWS3Z5iimgt8j X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR08MB8426.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(52116014)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 99QXNi/kwP0QtxPSHvsKEJJGPyWSqhcVSEjvFwX/a4h3Nahm9pQ+ZUUV8vcnW+xdh02qiWzhezI3Mx12wu5XpOneWHIruDH3Poi1OVNmfdasUyYSw1UUtES980k3GefQJZJBaLzBmRec/4wPUE64CGSviIK74d3pWRQzu/1it3pmMdgmaJlLFo5pkT95j9XnykL/p/0xiE7OwCz8aO04sTbzahJxAglxy7lUrpvnwVJDwGyvDLfnYl4WdQ+MNVjspXw+txDf0gr2IbNV+XHgBj72EGEi2ixim/uE6VAjRcRbSAqaRS0ayD5c7NndSIpk1cpRNoxft5QrFZfl03hETBLWoNduBLbmjNip30dumrhv/Fm3qbGcbgJ9QfE/9wYQNVE5exNuySZ4euFcPDorMDXZgdmj+gAw/FQoQYz1GcCTtmMhfhBwoWCkW4MhcBn4gOzdUJnSdzmI8FLME6ueN74+H7MHEd4maqplNQV+LF49Hbj79GPOuYnboXgtYqsx65KXekd+Phi3VgigPZH4LlmuyIZmUbZ0y0TwvDXlceHbeeF85GwaUMhP7VYvqy4aN2LnlDHsyQWfnN2hDrgW8AAzno+rZWfVzEmvmtAbEjP2VmZTE5QDAup7ngxgZDBuh8ABDca2UWZftproOFi8x0vGDtL6otkTfiAgJE1g3Ry27fv5mkKmkwqTKj5in8F5S6IOHDXVHSjdoJh5NHvO38fTz6ZVpa1uEH6gi6+tzxv8mRPRBxzOipV5w6Zsy03+1pzKuFRZa5dTUENzHGZqUPWePCaDlzvzL5rC7E6VGXFG2Jpzkb861on/YTlAh3MHUdVYihr1Je6H82+nI+MYuvFlx2lxAYnNWi17onBwl13Y7i6MnEiziFQR3GPZABoV8L7TL0j9DL+c6+QPVSWbzcZO8DbPRZbkBs7FSyID2a+d9aVbYPGYHPPh5pbreVCVh1YsSdFLr9xAN/w3D730vehVfOPd6su/4iyW/n/MPSJo3wcjk1+7BjyAvn03z3krcsZuLSe9g5AW5t6rC1HOmVKwi6YWDFLjbWkqbg8+q12/tHXEF2FbRIIo5qDHSA55D2qUAeQtAYxZbpewmO+F1yvNpCxs5Q94vaLtn9OhW4UFwi2MHIsVJ26Ho8Syn4WZP2SwyOgQeoFwSgx/dH1MMDw+2xAzxgcU1F3fYChjGe1NmjzMui/zb02pgGlJRf8gEWzYYmzGNYGmABQl1ZGgPeblfPw75mW+VkGwEplMJrQfhCvvl99FsALvstn3nQB0cKiLA37b8qwDak2wrPiz7pzkqcTNwm0h1uQaPY0ZJiFGv32hLEJ26NfT21UtRaw6Pd7sOK/mi7xinynGvtbmqXCGMF3eW+kJH8GPrM2kdbhBgIQ7jw+rQT/aSAiP+igAFfCuUhR6eQD5UvBTHUWEKYLb+3Sj1w6aDFdJgeC+7o2hg63MKr5/2HbacBQ+wL6ZfJoS5T7SKgRhPUfd4687iEdg8GXioP1J9ppfWxtHMlfMxztKhubrrz4+8R/qU+bXWW8XDi2q8PR9ocm/lelvADl5/Gz/iqWcjvSjceeW/5gaID508HQkoiHAxHDeyW8/RYzpSgL8ReYI0R6luT3Efg== X-OriginatorOrg: weidmueller.com X-MS-Exchange-CrossTenant-Network-Message-Id: 428ca8ea-5e9f-41be-0e15-08dd4aace234 X-MS-Exchange-CrossTenant-AuthSource: GV1PR08MB8426.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2025 15:00:54.7687 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: e4289438-1c5f-4c95-a51a-ee553b8b18ec X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: zy5606IH8bIeozSxdRMbXKskDFhk9mkGtPwpG7gDD8npoiqUFlaKti1GjVmZq8DYqiT5M+6wDfmxHfCU30l8+w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5399 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, 11 Feb 2025 15:01:15 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/211143 From: Stefan Herbrechtsmeier Add a vendor class for go to resolve the dependency SRC_URIs from a go.sum file and run populate the go mod vendor folder. Signed-off-by: Stefan Herbrechtsmeier --- meta/classes-recipe/vendor_go.bbclass | 59 +++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 meta/classes-recipe/vendor_go.bbclass diff --git a/meta/classes-recipe/vendor_go.bbclass b/meta/classes-recipe/vendor_go.bbclass new file mode 100644 index 0000000000..dc5f8d1d8d --- /dev/null +++ b/meta/classes-recipe/vendor_go.bbclass @@ -0,0 +1,59 @@ +# Copyright (C) 2025 Weidmueller Interface GmbH & Co. KG +# Stefan Herbrechtsmeier +# +# SPDX-License-Identifier: MIT +# + +# The directory of the go.mod file relative to the root directory, per default +# assume there's a file directly in the root directory +GO_SRC_DIR ?= "" + +# The path to the go.mod file +GO_MANIFEST_DIR ?= "${GO_SRC_PATH}/go.mod" + +# The path to go.sum file +GO_LOCK_DIR ?= "${@os.path.join(os.path.dirname(d.getVar('GO_MANIFEST_DIR')), 'go.sum')}" + +# The URL of the go proxy +GO_PROXY ?= "https://proxy.golang.org" + +GO_SRC_PATH = "${S}/${GO_SRC_DIR}" +GO_SRC_SUBDIR = "${@os.path.relpath(d.getVar('CARGO_SRC_PATH'), d.getVar('WORKDIR'))}" +GO_SRC_URI_FILE = "${VENDOR_DIR}/go-source-uris.txt" +SRC_URI_FILES:append = " ${GO_SRC_URI_FILE}" + +inherit go-mod vendor + +GO_INSTALL_PREFIX = "." +GO_SRC_PATH = "${S}" +GO_SRCURI_DESTSUFFIX = "" + +GOMODCACHE = "invalid" +GO_MOD_CACHE_DIR = "go/pkg/mod" +GO_WORKPATH = "${GO_SRC_PATH}" +GO_MOD_RECRDEPTASK = "" + +GOBUILDFLAGS:append = " -mod=vendor" + +python vendor_go_do_vendor_resolve() { + import oe.vendor + import oe.vendor.go + + lock_file_dir = d.getVar("GO_LOCK_DIR") + lock_file_subdir = get_early_source_dir(d, lock_file_dir) + proxy = d.getVar("GO_PROXY") + cache_subdir = d.getVar("GO_MOD_CACHE_DIR") + src_uris = oe.vendor.go.resolve_src_uris(lock_file_subdir, proxy, cache_subdir) + with open(d.getVar("GO_SRC_URI_FILE"), "w") as f: + oe.vendor.dump(f, src_uris) +} + +run_go_mod_vendor() { + cd ${GO_SRC_PATH} + export GOMODCACHE="${UNPACKDIR}/${GO_MOD_CACHE_DIR}" + ${GO} mod vendor +} +do_unpack[postfuncs] += "run_go_mod_vendor" +do_unpack[depends] += "${@oe.utils.build_depends_string(d.getVar('DEPENDS_GOLANG'), 'do_populate_sysroot')}" + +EXPORT_FUNCTIONS do_vendor_resolve