Skip to content

Fails to build with quic-go version 0.54 (with potential patch)

Hi,

quic-go had some API changes in 0.53 as listed at https://seemann.io/posts/2025-06-25---quic-go-api-revamp/

Debian (at this time only unstable) has this package updated to 0.54 and as a result obfsvpn (which is a dependency of riseup-vpn) fails, and overall build chokes with:

# 0xacab.org/leap/bitmask-vpn/vendor/0xacab.org/leap/obfsvpn/obfsvpn
vendor/0xacab.org/leap/obfsvpn/obfsvpn/quic.go:18:12: undefined: quic.Connection
vendor/0xacab.org/leap/obfsvpn/obfsvpn/quic.go:49:19: cannot use str (variable of type *quic.Stream) as quic.Stream value in struct literal
vendor/0xacab.org/leap/obfsvpn/obfsvpn/quic.go:90:20: cannot use str (variable of type *quic.Stream) as quic.Stream value in struct literal

The below patch gets things going past this point for me but I am not sure about the quic APIs used here and not sure about the fix.

Please consider to apply if it makes sense to you.

--- a/vendor/0xacab.org/leap/obfsvpn/obfsvpn/quic.go
+++ b/vendor/0xacab.org/leap/obfsvpn/obfsvpn/quic.go
@@ -15,7 +15,7 @@
 
 type QUICConn struct {
        quic.Stream
-       conn quic.Connection
+       conn quic.Conn
 }
 
 func (q *QUICConn) Close() error {
@@ -46,7 +46,7 @@
                return nil, err
        }
 
-       return &QUICConn{str, conn}, nil
+       return &QUICConn{*str, *conn}, nil
 }
 
 func (q *QUICListener) Close() error {
@@ -87,6 +87,6 @@
                        return nil, err
                }
 
-               return &QUICConn{str, conn}, nil
+               return &QUICConn{*str, *conn}, nil
        }
 }

/cc: @cyberta @sgk

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information