> -----Original Message-----
> From: [email protected] <openembedded-
> [email protected]> On Behalf Of Lukas Funke
> Sent: den 17 oktober 2023 15:27
> To: [email protected]
> Cc: Bruce Ashfield <[email protected]>; Vyacheslav Yurkov
> <[email protected]>; Martin Jansa <[email protected]>; Lukas Funke
> <[email protected]>
> Subject: [OE-Core][PATCH v2 0/4] recipetool: Add handler to create go
> recipes
>
> From: Lukas Funke <[email protected]>
>
> This patch series adds a recipetool handler in order to create 'go' recipes.
> Each recipe contains a list of dependencies in their SRC_URI
> variable which are derived from the projects `go.mod` file. For each
> dependency the corresponding license file uri/hash is added.
>
> The recipe may not work ad-hoc, but is a good starting point to create
> a working recipe and have a working offline-build.
>
> Lukas Funke (4):
> classes: go-vendor: Add go-vendor class
> selftest: recipetool: Add test for go recipe handler
> recipetool: Ignore *.go files while scanning for licenses
> recipetool: Add handler to create go recipes
>
> meta/classes/go-vendor.bbclass | 135 ++++
> meta/lib/oeqa/selftest/cases/recipetool.py | 163 +++++
> scripts/lib/recipetool/create.py | 2 +-
> scripts/lib/recipetool/create_go.py | 730 +++++++++++++++++++++
> 4 files changed, 1029 insertions(+), 1 deletion(-)
> create mode 100644 meta/classes/go-vendor.bbclass
> create mode 100644 scripts/lib/recipetool/create_go.py
>
> --
> 2.30.2
I do not know much (anything) about Go modules, but we have a couple of
recipes that use Go modules, and I would like to offer some suggestions.
I would recommend to separate the recipe and the main Go module from
the dependencies similar to how it is done for Rust by the
cargo-update-recipe-crates bbclass, which puts the dependencies in a
separate include file.
In our recipes we use the following pattern:
LICENSE = "... & ${GO_MOD_LICENSES}"
LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=..."
require ${BPN}-licenses.inc
...
SRC_URI = "..."
require ${BPN}-go-mods.inc
and then in the ${BPN}-licenses.inc file we have something like:
GO_MOD_LICENSES = "Apache-2.0 & BSD-2-Clause & BSD-3-Clause & MIT"
LIC_FILES_CHKSUM += "\
...
"
and in the ${BPN}-go-mods.inc file:
SRC_URI += "\
...
"
Separating the three files like the above keeps the automatically
generated parts out of the main recipe, which I believe is a good
thing.
And yes, we have some bbclass and some tool to help with the above,
similar to what you are adding in this series.
//Peter
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#189753):
https://lists.openembedded.org/g/openembedded-core/message/189753
Mute This Topic: https://lists.openembedded.org/mt/102017388/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-