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

Build broken with go 1.19 #2869

Closed
jech opened this issue Aug 13, 2024 · 10 comments
Closed

Build broken with go 1.19 #2869

jech opened this issue Aug 13, 2024 · 10 comments
Labels
bug Something isn't working difficulty:hard

Comments

@jech
Copy link
Member

jech commented Aug 13, 2024

We depend on golang.org/x/crypto@v0.25.0, which requires Go 1.20:

$ /usr/lib/go-1.19/bin/go build
../../../../pkg/mod/golang.org/x/crypto@v0.25.0/curve25519/curve25519.go:13:8: package crypto/ecdh is not in GOROOT (/usr/lib/go-1.19/src/crypto/ecdh)

This is rather unfortunate, since Debian Stable still uses Go 1.19.

@Sean-Der, your enlightened leadership is required: either we fix the build under 1.19 (which will probably require changes across modules), or else we decide that Debian Stable can go kiss our collective toches and change the go.mod to require 1.20.

@Sean-Der
Copy link
Member

This is a tough one.

I don't want to pin to old versions of golang.org/x we will miss on bug/security fixes.

I want to support as many Go versions as possible. The harder it is to use Pion the worse off everyone is.

Let me figure out if we can drop the dependency/contain this somehow. If that isn't possible we might have to do 1.20

@Sean-Der Sean-Der added bug Something isn't working difficulty:hard labels Aug 13, 2024
@nils-ohlmeier
Copy link

Just as a thought: if the dependencies can be changed to accommodate 1.19 maybe it best/easiest to maintain a patch for the Debian folks.

@jech
Copy link
Member Author

jech commented Aug 13, 2024

Just as a thought: if the dependencies can be changed to accommodate 1.19 maybe it best/easiest to maintain a patch for the Debian folks.

That would unfortunately be of no help for users of Debian. If an application depends on github.com/pion/webrtc/v3, then it cannot easily be built against a patched version of Pion. And if we ask users to manually hack the code, we might as well ask them to manually download a more recent compiler.

@nils-ohlmeier
Copy link

That would unfortunately be of no help for users of Debian. If an application depends on github.com/pion/webrtc/v3, then it cannot easily be built against a patched version of Pion. And if we ask users to manually hack the code, we might as well ask them to manually download a more recent compiler.

Good point. I overlooked that they don't pull Pion packages from Debian repositories.

@danjenkins
Copy link

This is a tough one.

I don't want to pin to old versions of golang.org/x we will miss on bug/security fixes.

I want to support as many Go versions as possible. The harder it is to use Pion the worse off everyone is.

Let me figure out if we can drop the dependency/contain this somehow. If that isn't possible we might have to do 1.20

Personally the first thing I do is install a newer version of go from the website on debian hosts. 1.19 is pretty old in comparison... I'd potentially only put the effort into making it work with 1.19 if people start making issues saying "pion doesnt work"

@jech
Copy link
Member Author

jech commented Aug 14, 2024

Personally the first thing I do is install a newer version of go

So do I.

But this is not about us, it's about our users. In the past, I did receive a number of queries from users who were puzzled about why Galene wouldn't build on our system. I advised them to upgrade their compiler, but I do not know how many simply gave up and went back to Zoom.

@jech
Copy link
Member Author

jech commented Aug 20, 2024

@danjenkins
Copy link

danjenkins commented Aug 20, 2024 via email

@jech
Copy link
Member Author

jech commented Aug 20, 2024

If the docs said 1.20 was required that issue wouldn’t have happened?

Yes, but it still shows that there are people who are attempting to build Galene with 1.19. And even if the docs were up to date, it would have forced the user to enable Debian Backports, and to download a more recent compiler. (I, for one, never enable backports on my servers, since Debian Backports does not necessarily receive the same amount of security care as Debian proper.)

@Sean-Der
Copy link
Member

I opened a PR against Galene that fixes the build on 1.19 here

I am going to update the go.mod in all the Pion repos to 1.20


I am not happy about this breakage, but I think it is 'less bad' then pinning to an old version of the crypto package. If I lock pion/dtls to an old version and expose users to a security problem that would be even worse.

Sean-Der added a commit to pion/.goassets that referenced this issue Aug 26, 2024
Sean-Der added a commit to pion/datachannel that referenced this issue Aug 26, 2024
Sean-Der added a commit to pion/dtls that referenced this issue Aug 26, 2024
Sean-Der added a commit to pion/ice that referenced this issue Aug 26, 2024
Sean-Der added a commit to pion/interceptor that referenced this issue Aug 26, 2024
Sean-Der added a commit to pion/logging that referenced this issue Aug 26, 2024
Sean-Der added a commit to pion/mdns that referenced this issue Aug 26, 2024
Sean-Der added a commit to pion/opus that referenced this issue Aug 26, 2024
Sean-Der added a commit to pion/explainer that referenced this issue Aug 26, 2024
Sean-Der added a commit to pion/randutil that referenced this issue Aug 26, 2024
Sean-Der added a commit to pion/rtcp that referenced this issue Aug 26, 2024
Sean-Der added a commit to pion/rtp that referenced this issue Aug 26, 2024
Sean-Der added a commit to pion/sctp that referenced this issue Aug 26, 2024
Sean-Der added a commit to pion/sdp that referenced this issue Aug 26, 2024
Sean-Der added a commit to pion/srtp that referenced this issue Aug 26, 2024
Sean-Der added a commit to pion/stun that referenced this issue Aug 26, 2024
Sean-Der added a commit to pion/template that referenced this issue Aug 26, 2024
Sean-Der added a commit to pion/transport that referenced this issue Aug 26, 2024
Sean-Der added a commit to pion/turn that referenced this issue Aug 26, 2024
Sean-Der added a commit that referenced this issue Aug 26, 2024
thatsnotright pushed a commit to braams/interceptor that referenced this issue Sep 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working difficulty:hard
Development

No branches or pull requests

4 participants