Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
PolynomialDivision opened this issue May 17, 2023 · 7 comments
Closed

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

PolynomialDivision opened this issue May 17, 2023 · 7 comments

Comments

@PolynomialDivision
Copy link

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
Copy link

@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
Copy link
Contributor

Thank you @PolynomialDivision and @jefferyto!

@bassosimone
Copy link
Contributor

bassosimone commented May 25, 2023

@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 added a commit to ooni/oocrypto that referenced this issue May 29, 2023
This pull request updates oocrypto to use go1.20.4. After this pull request is merged, one must use go1.20.x (preferably go1.20.4) to build oocrypto. The diff between our tree and upstream is provided below.

[golang-1.20.4-vs-oocrypto.patch](https://github.com/ooni/oocrypto/files/11590595/golang-1.20.4-vs-oocrypto.patch)

I have also read each commit that I am about to merge and I think it's safe to merge and go ahead.

Part of ooni/probe#2478 and ooni/probe#2417.
bassosimone added a commit to ooni/oohttp that referenced this issue May 29, 2023
bassosimone added a commit to ooni/oohttp that referenced this issue May 29, 2023
bassosimone added a commit to ooni/probe-cli that referenced this issue May 29, 2023
Part of ooni/probe#2417 and
ooni/probe#2478.

We should try to upgrade to a later version but this
upgrade is the bare minimum to try using go1.20.
bassosimone added a commit to ooni/probe-cli that referenced this issue May 29, 2023
@bassosimone
Copy link
Contributor

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
Copy link

stefanb commented Jun 22, 2023

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

@bassosimone
Copy link
Contributor

@stefanb thanks for he heads up!

@bassosimone
Copy link
Contributor

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

cyBerta pushed a commit to cyBerta/probe-cli that referenced this issue Aug 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants