ooni / probe

OONI Probe network measurement tool for detecting internet censorship
https://ooni.org/install
BSD 3-Clause "New" or "Revised" License
751 stars 142 forks source link

probe-cli: does not build with go 1.20 #2478

Closed PolynomialDivision closed 1 year ago

PolynomialDivision commented 1 year ago

It gives following warnings. Please update quic-go version.

/builder/dl/go-mod-cache/github.com/lucas-clemente/quic-go@v0.31.1/internal/qtls/go120.go:5:13: cannot use "The version of quic-go you're using can't be built on Go 1.20 yet. For more details, please see https://github.com/lucas-clemente/quic-go/wiki/quic-go-and-Go-versions." (untyped string constant "The version of quic-go you're using can't be built on Go 1.20 yet. F...) as int value in variable declaration

Please update

jefferyto commented 1 year ago

@bassosimone it appears Psiphon-Labs/quic-go has been updated to support 1.20 but Psiphon-Labs/psiphon-tunnel-core hasn't been updated yet - perhaps you can ask the Psiphon devs?

bassosimone commented 1 year ago

Thank you @PolynomialDivision and @jefferyto!

bassosimone commented 1 year ago

@jefferyto we could update Psiphon but there is one extra issue. We vendor modified crypto (https://github.com/ooni/oocrypto) and net/http (https://github.com/ooni/oohttp) to improve resilience and allow using nonstandard TLS libraries respectively. However, the standard library is not designed to be modular, so there may be implicit coupling between our vendored libraries and the standard library you're linking against. Because of this reason, the safest choice in terms of compiling ooniprobe is using the same standard library and Go compiler from which we forked our vendored libraries. Currently, this version of Go is 1.19.6. This is why, even if we update Psiphon, I would not recommend compiling ooniprobe using Go 1.20.x and would recommend sticking to Go 1.19.6, if possible. (That said, we're going to need to update to Go 1.20 ~soon anyway because we're approaching the EOL for the 1.19.x series.)

bassosimone commented 1 year ago

We're making progress on this issue. There's an alpha release out with go1.20 support: https://github.com/ooni/probe-cli/releases/tag/v3.18.0-alpha. Thanks again for prodding me to address this issue!

stefanb commented 1 year ago

FYI, Go 1.21 will be released soon (see rc2 announcement), making the Go 1.19 not maintained anymore.

bassosimone commented 1 year ago

@stefanb thanks for he heads up!

bassosimone commented 1 year ago

I am going to close this issue, given that https://github.com/ooni/probe-cli/releases/tag/v3.18.0 supports go1.20 🥳