Skip to content

non-standard vendor/ approach breaks building with Buildroot #44618

@paralin

Description

@paralin

Description

#44615 (comment)
#44614

The old releases pre-v23.x worked correctly with GO111MODULE=on.

The new releases which use a custom approach to managing vendor/ do not:

$ go build -mod=vendor github.com/docker/docker/cmd/dockerd

go: inconsistent vendoring in docker-engine-:
  cloud.google.com/[email protected]: is marked as explicit in vendor/modules.txt, but not explicitly required in go.mod
  cloud.google.com/go/[email protected]: is marked as explicit in vendor/modules.txt, but not explicitly required in go.mod
  cloud.google.com/go/[email protected]: is marked as explicit in vendor/modules.txt, but not explicitly required in go.mod
  code.cloudfoundry.org/[email protected]: is marked as explicit in vendor/modules.txt, but not explicitly required in go.mod
  [snip]

  To ignore the vendor directory, use -mod=readonly or -mod=mod.
  To sync the vendor directory, run:
  go mod vendor

Disabling go modules with GO111MODULE=off doesn't fix it either:

After applying the following changes to buildroot:

  • Set GO111MODULE=off
  • Remove -modcacherw flag
  • Change path passed to go build from the module path to ./cmd/dockerd.

It still doesn't work, since Go doesn't recognize vendor/ anymore:

$ cd ./path/to/docker-engine
$ GO111MODULE=off go build -v ./cmd/dockerd
cmd/dockerd/daemon_unix.go:22:2: cannot find package "golang.org/x/sys/unix" in any of:
        /lib/go/src/golang.org/x/sys/unix (from $GOROOT)
        /host/share/go-path/src/golang.org/x/sys/unix (from $GOPATH)

The buildroot build infrastructure is here:

My request is to please play nice with the Go modules system and either go back to the way this worked before (which worked perfectly) or provide some solution for us which doesn't involve completely changing the Go package infrastructure in Buildroot for a single package.

Reproduce

  1. Try to build with GO111MODULE=off

Expected behavior

No response

docker version

N/A

docker info

N/A

Additional Info

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions