версия golang .org / x / sys@hash в go .mod игнорируется - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь использовать github.com/docker/engine в качестве зависимости для dockmoor , однако было прерывание изменений в x/sys/windows, поэтому компиляция для windows больше не работает .

##[error]/home/runner/go/pkg/mod/github.com/docker/engine@v0.0.0-20200204220554-5f6d6f3f2203/pkg/system/filesys_windows.go:111:24:
cannot use uintptr(unsafe.Pointer(&sd[0])) (type uintptr) as type *"golang.org/x/sys/windows".SECURITY_DESCRIPTOR in assignment

Я пытался установить явную версию golang.org/x/sys, используя, например,

go get -u golang.org/x/sys@acfa387b8d69adbeab4af0736737d42b9f2e8254

Я вижу версию, отраженную в моем go.mod все же

GO111MODULE=on GOOS=windows go build ./cmd/dockmoor

приводит к той же ошибке.

Я также пробовал разные ревизии, например 14da1ac737ccc89e3a28bf770cbbd260ce7e190b, который является родителем изменения, но я всегда получите эту ошибку.

Кажется, что версия golang.org/x/sys просто игнорируется.

Для моей последней попытки у меня было:
moby / engine v19.03.6 / v0.0.0- 20200204220554-5f6d6f3f2203
go версия: 1.12.16 (такая же, как в moby / engine v19.03.6)
golang .org / x / sys v0.0.0-20190602015325-4c4f7f33c9ed (такая же, как в moby / engine v19.03.6)

Есть идеи, как это исправить?

1 Ответ

0 голосов
/ 26 апреля 2020

Проблема заключалась в том, что некоторые зависимости извлекались в другой версии golang.org/x/sys

. Решением было добавить явное переопределение в конце go.mod. В моем случае это выглядит так

replace golang.org/x/sys => golang.org/x/sys v0.0.0-20190830141801-acfa387b8d69
...