* Re: [Buildroot] [PATCH v1 1/1] package/balena-engine: bump to version 20.10.26
2023-02-02 13:26 [Buildroot] [PATCH v1 1/1] package/balena-engine: bump to version 20.10.26 Christian Stewart via buildroot
@ 2023-02-05 15:35 ` Yann E. MORIN
2023-02-06 5:11 ` Christian Stewart via buildroot
0 siblings, 1 reply; 3+ messages in thread
From: Yann E. MORIN @ 2023-02-05 15:35 UTC (permalink / raw)
To: Christian Stewart; +Cc: Thomas Petazzoni, buildroot
Christian, All,
On 2023-02-02 05:26 -0800, Christian Stewart via buildroot spake thusly:
> This update requires a workaround for the non-standard vendor/ structure in the
> balena-engine repository, which has an invalid vendor/modules.txt file.
>
> Removing the vendor/modules.txt file fixes the build error.
>
> Reference: https://github.com/moby/moby/issues/44618#issuecomment-1343565705
>
> The go download post-process script uses go mod init to create the go.mod file
That's not correct. The download go-post-process script does not run
that command at all.
Furthermore, in the case of the balena-engine package, the
go-post-process script actually does absolutely nothing at all. Indeed,
it will notice that the vendor/ directory already exists, and thus will
exit early:
17 # Already vendored tarball, nothing to do
18 if tar tf "${output}" | grep -q "^[^/]*/vendor" ; then
19 exit 0
20 fi
21
22 post_process_unpack "${base_name}" "${output}"
23
24 # Do the Go vendoring
25 pushd "${base_name}" > /dev/null
26
27 if [ ! -f go.mod ]; then
28 echo "ERROR: no vendor/ folder and no go.mod, aborting"
29 exit 1
30 fi
31
32 go mod vendor -v -modcacherw
33 popd > /dev/null
34
35 post_process_repack $(pwd) "${base_name}" "${output}"
Furthermore, for balena-engine, this all works because it is not using
the go-mod infra, and despite this uses a populated vendor/ directory.
So, we're not running the vendoring as it is already done, and we can
thus delete the problematic file.
So, you'll have to reword/rework the explanations.
Note that this also applies to your other patches touching the
docker-related packages, notably "package/docker-engine: bump version to
v23.0.0", so I'll mark the rest of that series as changes requested too.
Regards,
Yann E. MORIN.
> which specifies a language version of go1.16 on default. Use go mod edit to
> adjust the go.mod file to the required minimum version go1.19 for generic types
> used by docker-engine. (Fixes a build error).
>
> Remove the vendor/archive sub-tree (fixes a build error) because Go no longer
> allows having duplicate packages in GOPATH and GOROOT. vendor/archive/tar cannot
> be in vendor/ because it exists in the standard library. Remove it from vendor/.
>
> https://github.com/balena-os/balena-engine/releases/tag/v20.10.26
>
> Signed-off-by: Christian Stewart <christian@paral.in>
> ---
> package/balena-engine/balena-engine.hash | 2 +-
> package/balena-engine/balena-engine.mk | 14 +++++++++++++-
> 2 files changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/package/balena-engine/balena-engine.hash b/package/balena-engine/balena-engine.hash
> index 4adb8ce561..6a92a40cc8 100644
> --- a/package/balena-engine/balena-engine.hash
> +++ b/package/balena-engine/balena-engine.hash
> @@ -1,3 +1,3 @@
> # Locally computed
> -sha256 4fb38109d133d499de366466a612fb6f523ea99d56fcd69b45dc494a75fbce0f balena-engine-20.10.21.tar.gz
> +sha256 1482b64e35d5406be719e362647ed7d0599cf4eead7770247ebd972c4c85ede5 balena-engine-20.10.26.tar.gz
> sha256 7c87873291f289713ac5df48b1f2010eb6963752bbd6b530416ab99fc37914a8 LICENSE
> diff --git a/package/balena-engine/balena-engine.mk b/package/balena-engine/balena-engine.mk
> index ecfb62bfbf..3b8b2f9ac6 100644
> --- a/package/balena-engine/balena-engine.mk
> +++ b/package/balena-engine/balena-engine.mk
> @@ -4,7 +4,7 @@
> #
> ################################################################################
>
> -BALENA_ENGINE_VERSION = 20.10.21
> +BALENA_ENGINE_VERSION = 20.10.26
> BALENA_ENGINE_SITE = $(call github,balena-os,balena-engine,v$(BALENA_ENGINE_VERSION))
>
> BALENA_ENGINE_LICENSE = Apache-2.0
> @@ -34,6 +34,18 @@ BALENA_ENGINE_TAGS = \
>
> BALENA_ENGINE_BUILD_TARGETS = cmd/balena-engine
>
> +# remove the conflicting vendor/modules.txt
> +# remove the conflicting vendor/archive (not allowed in go1.20)
> +# https://github.com/moby/moby/issues/44618#issuecomment-1343565705
> +define BALENA_ENGINE_CONFIGURE_CMDS
> + if [ -f $(@D)/vendor/modules.txt ]; then \
> + rm $(@D)/vendor/modules.txt; \
No need to test if a file exists before removing it; just
unconditionally delete it:
rm -f $(@D)/vendor/modules.txt
> + fi
> + if [ -d $(@D)/vendor/archive ]; then \
> + rm -rf $(@D)/vendor/archive; \
Ditto, just delete the directory without checking whether it exists.
Regards,
Yann E. MORIN.
> + fi
> +endef
> +
> ifeq ($(BR2_INIT_SYSTEMD),y)
> BALENA_ENGINE_DEPENDENCIES += systemd
> BALENA_ENGINE_TAGS += journald
> --
> 2.39.1
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 3+ messages in thread