Build from Source and Use Custom Modules

1. The problem I’m having:

Hi, i am trying to replace the original quic-go module with my forked one.
I am kinda new to go and caddy and i don’t know if i am missing something.

What i did :

  • git clone "https://github.com/caddyserver/caddy.git"

Modify go.mod and go.sum repo

  • Change github.com/quic-go/quic-go v0.43.1 with github.com/GiovanniMenon/quic-go v0.0.0 (my fork)

  • go mod download github.com/GiovanniMenon/quic-go

Then i tried to build again

  • cd cmd/caddy/ and go build

2. Error messages and/or full log output:

This is the output of the go build after the changes.

go: downloading github.com/caddyserver/certmagic v0.21.0
go: downloading github.com/smallstep/certificates v0.25.3-rc5
go: downloading github.com/smallstep/truststore v0.13.0
go: downloading github.com/spf13/cobra v1.8.0
go: downloading go.step.sm/crypto v0.42.1
go: downloading go.uber.org/zap v1.27.0
go: downloading github.com/google/uuid v1.6.0
go: downloading github.com/aryann/difflib v0.0.0-20210328193216-ff5ff6dc229b
go: downloading github.com/spf13/pflag v1.0.5
go: downloading github.com/go-chi/chi/v5 v5.0.12
go: downloading go.uber.org/automaxprocs v1.5.3
go: downloading golang.org/x/crypto/x509roots/fallback v0.0.0-20240416174822-0da2a6a1bbc8
go: downloading golang.org/x/crypto v0.23.0
go: downloading github.com/smallstep/nosql v0.6.0
go: downloading github.com/prometheus/client_golang v1.19.0
go: downloading golang.org/x/sync v0.7.0
go: downloading golang.org/x/term v0.20.0
go: downloading github.com/dustin/go-humanize v1.0.1
go: downloading gopkg.in/natefinch/lumberjack.v2 v2.2.1
go: downloading github.com/caddyserver/zerossl v0.1.2
go: downloading github.com/klauspost/cpuid/v2 v2.2.7
go: downloading github.com/mholt/acmez/v2 v2.0.1
go: downloading github.com/tailscale/tscert v0.0.0-20230806124524-28a91b69a046
go: downloading github.com/klauspost/compress v1.17.0
go: downloading github.com/pires/go-proxyproto v0.7.0
go: downloading github.com/google/cel-go v0.20.0
go: downloading golang.org/x/net v0.25.0
go: downloading github.com/BurntSushi/toml v1.3.2
go: downloading github.com/Masterminds/sprig/v3 v3.2.3
go: downloading github.com/alecthomas/chroma/v2 v2.13.0
go: downloading github.com/yuin/goldmark v1.7.1
go: downloading github.com/yuin/goldmark-highlighting/v2 v2.0.0-20230729083705-37449abec8cc
go: downloading github.com/cespare/xxhash/v2 v2.2.0
go: downloading github.com/cespare/xxhash v1.1.0
go: downloading gopkg.in/yaml.v3 v3.0.1
go: downloading go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1
go: downloading go.opentelemetry.io/contrib/propagators/autoprop v0.42.0
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0
go: downloading go.opentelemetry.io/otel v1.21.0
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0
go: downloading go.opentelemetry.io/otel/sdk v1.21.0
go: downloading go.opentelemetry.io/otel/trace v1.21.0
go: downloading go.uber.org/zap/exp v0.2.0
go: downloading golang.org/x/sys v0.20.0
go: downloading golang.org/x/time v0.5.0
go: downloading github.com/libdns/libdns v0.2.2
go: downloading github.com/miekg/dns v1.1.59
go: downloading github.com/zeebo/blake3 v0.2.3
go: downloading github.com/cpuguy83/go-md2man/v2 v2.0.3
go: downloading github.com/pkg/errors v0.9.1
go: downloading go.uber.org/multierr v1.11.0
go: downloading go.step.sm/cli-utils v0.8.0
go: downloading go.step.sm/linkedca v0.20.1
go: downloading google.golang.org/grpc v1.62.1
go: downloading google.golang.org/protobuf v1.33.0
go: downloading github.com/fxamacker/cbor/v2 v2.6.0
go: downloading github.com/google/go-tpm v0.9.0
go: downloading github.com/smallstep/go-attestation v0.4.4-0.20240109183208-413678f90935
go: downloading golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8
go: downloading github.com/slackhq/nebula v1.6.1
go: downloading github.com/beorn7/perks v1.0.1
go: downloading github.com/prometheus/client_model v0.5.0
go: downloading github.com/prometheus/common v0.48.0
go: downloading github.com/prometheus/procfs v0.12.0
go: downloading google.golang.org/genproto/googleapis/api v0.0.0-20240311132316-a219d84964c2
go: downloading github.com/stoewer/go-strcase v1.2.0
go: downloading golang.org/x/text v0.15.0
go: downloading github.com/antlr4-go/antlr/v4 v4.13.0
go: downloading github.com/Masterminds/goutils v1.1.1
go: downloading github.com/Masterminds/semver/v3 v3.2.0
go: downloading github.com/huandu/xstrings v1.3.3
go: downloading github.com/imdario/mergo v0.3.12
go: downloading github.com/mitchellh/copystructure v1.2.0
go: downloading github.com/shopspring/decimal v1.2.0
go: downloading github.com/spf13/cast v1.4.1
go: downloading github.com/felixge/httpsnoop v1.0.4
go: downloading go.opentelemetry.io/otel/metric v1.21.0
go: downloading go.opentelemetry.io/contrib/propagators/aws v1.17.0
go: downloading go.opentelemetry.io/contrib/propagators/b3 v1.17.0
go: downloading go.opentelemetry.io/contrib/propagators/jaeger v1.17.0
go: downloading go.opentelemetry.io/contrib/propagators/ot v1.17.0
go: downloading go.opentelemetry.io/proto/otlp v1.0.0
go: downloading google.golang.org/genproto/googleapis/rpc v0.0.0-20240314234333-6e1732d8331c
go: downloading github.com/russross/blackfriday/v2 v2.1.0
go: downloading filippo.io/edwards25519 v1.1.0
go: downloading github.com/smallstep/pkcs7 v0.0.0-20231024181729-3b98ecc1ca81
go: downloading github.com/smallstep/scep v0.0.0-20231024192529-aee96d7ad34d
go: downloading github.com/urfave/cli v1.22.14
go: downloading github.com/chzyer/readline v1.5.1
go: downloading github.com/manifoldco/promptui v0.9.0
go: downloading github.com/go-jose/go-jose/v3 v3.0.3
go: downloading github.com/golang/protobuf v1.5.4
go: downloading github.com/x448/float16 v0.8.4
go: downloading github.com/rs/xid v1.5.0
go: downloading github.com/sirupsen/logrus v1.9.3
go: downloading github.com/dgraph-io/badger v1.6.2
go: downloading github.com/dgraph-io/badger/v2 v2.2007.4
go: downloading go.etcd.io/bbolt v1.3.8
go: downloading github.com/go-sql-driver/mysql v1.7.1
go: downloading github.com/jackc/pgx/v4 v4.18.3
go: downloading github.com/google/go-tspi v0.3.0
go: downloading github.com/mitchellh/go-ps v1.0.0
go: downloading github.com/mitchellh/reflectwalk v1.0.2
go: downloading github.com/dlclark/regexp2 v1.11.0
go: downloading github.com/go-logr/logr v1.4.1
go: downloading github.com/cenkalti/backoff/v4 v4.2.1
go: downloading github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0
go: downloading github.com/go-logr/stdr v1.2.2
go: downloading github.com/go-kit/kit v0.13.0
go: downloading github.com/dgraph-io/ristretto v0.1.0
go: downloading github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13
go: downloading github.com/google/certificate-transparency-go v1.1.8-0.20240110162603-74a5dd331745
go: downloading github.com/jackc/pgconn v1.14.3
go: downloading github.com/jackc/pgio v1.0.0
go: downloading github.com/jackc/pgproto3/v2 v2.3.3
go: downloading github.com/jackc/pgtype v1.14.0
go: downloading github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96
go: downloading github.com/go-kit/log v0.2.1
go: downloading github.com/golang/snappy v0.0.4
go: downloading github.com/golang/glog v1.2.0
go: downloading github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d
go: downloading github.com/jackc/chunkreader/v2 v2.0.1
go: downloading github.com/jackc/pgpassfile v1.0.0
go: downloading github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a
go: downloading github.com/go-logfmt/logfmt v0.6.0
go: downloading github.com/shurcooL/sanitized_anchor_name v1.0.0
go: downloading github.com/mattn/go-colorable v0.1.13
go: downloading github.com/mattn/go-isatty v0.0.20
../../listeners.go:32:2: github.com/GiovanniMenon/quic-go@v0.0.0: parsing go.mod:
	module declares its path as: github.com/quic-go/quic-go
	        but was required as: github.com/GiovanniMenon/quic-go
../../listeners.go:33:2: github.com/GiovanniMenon/quic-go@v0.0.0: parsing go.mod:
	module declares its path as: github.com/quic-go/quic-go
	        but was required as: github.com/GiovanniMenon/quic-go

3. Caddy version:

4. How I installed and ran Caddy:

git clone "https://github.com/caddyserver/caddy.git"
cd caddy/cmd/caddy/
go build

a. System environment:

Ubuntu 22.04 Lts

5. Links to relevant resources:

Golang packages are tightly associated with their public URL, so simply forking isn’t enough because the code will still reference github.com/quic-go/quic-go everywhere.

You want to do a module replacement. Use go mod replace to do so.

Or if you want to just build Caddy, you can do the replacement with xcaddy build, like this:

xcaddy build --with github.com/quic-go/quic-go=github.com/GiovanniMenon/quic-go

The = makes xcaddy perform the module replacement before building.

1 Like

Hello , thanks for your feedback and advices.

I tried with this

xcaddy build --with github.com/quic-go/quic-go=github.com/GiovanniMenon/quic-go@v0.0.0

But return this error

2024/05/09 10:36:09 [INFO] absolute output file path: /home/menny/Documents/caddy
2024/05/09 10:36:09 [INFO] Temporary folder: /tmp/buildenv_2024-05-09-1036.3633393687
2024/05/09 10:36:09 [INFO] Writing main module: /tmp/buildenv_2024-05-09-1036.3633393687/main.go
package main

import (
	caddycmd "github.com/caddyserver/caddy/v2/cmd"

	// plug in Caddy modules here
	_ "github.com/caddyserver/caddy/v2/modules/standard"
	_ "github.com/quic-go/quic-go"
)

func main() {
	caddycmd.Main()
}
2024/05/09 10:36:09 [INFO] Initializing Go module
2024/05/09 10:36:09 [INFO] exec (timeout=0s): /snap/bin/go mod init caddy 
go: creating new go.mod: module caddy
go: to add module requirements and sums:
	go mod tidy
2024/05/09 10:36:09 [INFO] Replace github.com/quic-go/quic-go => github.com/GiovanniMenon/quic-go@v0.0.0
2024/05/09 10:36:09 [INFO] exec (timeout=0s): /snap/bin/go mod edit -replace github.com/quic-go/quic-go=github.com/GiovanniMenon/quic-go@v0.0.0 
2024/05/09 10:36:09 [INFO] Pinning versions
2024/05/09 10:36:09 [INFO] exec (timeout=0s): /snap/bin/go get -d -v github.com/caddyserver/caddy/v2 
go: downloading github.com/caddyserver/caddy/v2 v2.7.6
go: downloading github.com/caddyserver/caddy v1.0.5
go: downloading github.com/caddyserver/certmagic v0.20.0
go: downloading github.com/prometheus/client_golang v1.15.1
go: downloading github.com/google/uuid v1.3.1
go: downloading github.com/GiovanniMenon/quic-go v0.0.0
go: downloading go.uber.org/zap v1.25.0
go: downloading golang.org/x/sys v0.14.0
go: downloading golang.org/x/term v0.13.0
go: downloading github.com/libdns/libdns v0.2.1
go: downloading github.com/klauspost/cpuid/v2 v2.2.5
go: downloading github.com/mholt/acmez v1.2.0
go: downloading github.com/miekg/dns v1.1.55
go: downloading golang.org/x/crypto v0.14.0
go: downloading golang.org/x/net v0.17.0
go: downloading github.com/prometheus/client_model v0.4.0
go: downloading github.com/prometheus/common v0.42.0
go: downloading github.com/prometheus/procfs v0.9.0
go: downloading google.golang.org/protobuf v1.31.0
go: downloading go.uber.org/mock v0.3.0
go: downloading github.com/onsi/ginkgo/v2 v2.9.5
go: downloading golang.org/x/exp v0.0.0-20230310171629-522b1b587ee0
go: downloading github.com/quic-go/qpack v0.4.0
go: downloading golang.org/x/tools v0.10.0
go: downloading github.com/golang/protobuf v1.5.3
go: downloading github.com/matttproud/golang_protobuf_extensions v1.0.4
go: downloading golang.org/x/text v0.13.0
go: downloading golang.org/x/mod v0.11.0
go: downloading github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572
go: downloading github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1
go: downloading go.uber.org/mock v0.4.0
go: added github.com/beorn7/perks v1.0.1
go: added github.com/caddyserver/caddy/v2 v2.7.6
go: added github.com/caddyserver/certmagic v0.20.0
go: added github.com/cespare/xxhash/v2 v2.2.0
go: added github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572
go: added github.com/golang/protobuf v1.5.3
go: added github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1
go: added github.com/google/uuid v1.3.1
go: added github.com/klauspost/cpuid/v2 v2.2.5
go: added github.com/libdns/libdns v0.2.1
go: added github.com/matttproud/golang_protobuf_extensions v1.0.4
go: added github.com/mholt/acmez v1.2.0
go: added github.com/miekg/dns v1.1.55
go: added github.com/onsi/ginkgo/v2 v2.9.5
go: added github.com/prometheus/client_golang v1.15.1
go: added github.com/prometheus/client_model v0.4.0
go: added github.com/prometheus/common v0.42.0
go: added github.com/prometheus/procfs v0.9.0
go: added github.com/quic-go/qpack v0.4.0
go: added github.com/quic-go/quic-go v0.40.0
go: added github.com/zeebo/blake3 v0.2.3
go: added go.uber.org/mock v0.4.0
go: added go.uber.org/multierr v1.11.0
go: added go.uber.org/zap v1.25.0
go: added golang.org/x/crypto v0.14.0
go: added golang.org/x/exp v0.0.0-20230310171629-522b1b587ee0
go: added golang.org/x/mod v0.11.0
go: added golang.org/x/net v0.17.0
go: added golang.org/x/sys v0.14.0
go: added golang.org/x/term v0.13.0
go: added golang.org/x/text v0.13.0
go: added golang.org/x/tools v0.10.0
go: added google.golang.org/protobuf v1.31.0
2024/05/09 10:36:14 [INFO] exec (timeout=0s): /snap/bin/go get -d -v  
go: downloading github.com/spf13/cobra v1.7.0
go: downloading github.com/smallstep/certificates v0.25.0
go: downloading github.com/smallstep/truststore v0.12.1
go: downloading go.step.sm/crypto v0.35.1
go: downloading github.com/go-chi/chi/v5 v5.0.10
go: downloading github.com/google/cel-go v0.15.1
go: downloading golang.org/x/sync v0.4.0
go: downloading google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b
go: downloading github.com/inconshreveable/mousetrap v1.1.0
go: downloading github.com/cpuguy83/go-md2man/v2 v2.0.2
go: downloading github.com/mastercactapus/proxyprotocol v0.0.4
go: downloading howett.net/plist v1.0.0
go: downloading github.com/alecthomas/chroma/v2 v2.9.1
go: downloading github.com/yuin/goldmark v1.5.6
go: downloading go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0
go: downloading github.com/fxamacker/cbor/v2 v2.5.0
go: downloading github.com/smallstep/go-attestation v0.4.4-0.20230627102604-cf579e53cbd2
go: downloading google.golang.org/grpc v1.59.0
go: downloading gopkg.in/square/go-jose.v2 v2.6.0
go: downloading github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df
go: downloading google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b
go: downloading github.com/felixge/httpsnoop v1.0.3
go: downloading filippo.io/edwards25519 v1.0.0
go: downloading github.com/micromdm/scep/v2 v2.1.0
go: downloading go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352
go: downloading go.etcd.io/bbolt v1.3.7
go: downloading github.com/jackc/pgx/v4 v4.18.0
go: downloading github.com/Microsoft/go-winio v0.6.0
go: downloading github.com/dlclark/regexp2 v1.10.0
go: downloading github.com/go-logr/logr v1.3.0
go: downloading github.com/go-kit/kit v0.10.0
go: downloading github.com/google/certificate-transparency-go v1.1.6
go: downloading github.com/golang/glog v1.1.2
go: downloading github.com/jackc/pgconn v1.14.0
go: downloading github.com/jackc/pgproto3/v2 v2.3.2
go: downloading github.com/go-logfmt/logfmt v0.5.1
go: downloading github.com/mattn/go-colorable v0.1.8
go: downloading github.com/mattn/go-isatty v0.0.16
2024/05/09 10:36:23 [INFO] Build environment ready
2024/05/09 10:36:23 [INFO] Building Caddy
2024/05/09 10:36:23 [INFO] exec (timeout=0s): /snap/bin/go mod tidy -e 
go: downloading github.com/onsi/gomega v1.27.6
go: downloading github.com/stretchr/testify v1.8.4
go: downloading go.uber.org/goleak v1.3.0
go: downloading github.com/smallstep/assert v0.0.0-20200723003110-82e2b9b3b262
go: downloading github.com/google/go-cmp v0.6.0
go: downloading github.com/zeebo/assert v1.1.0
go: downloading gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
go: downloading github.com/davecgh/go-spew v1.1.1
go: downloading github.com/pmezard/go-difflib v1.0.0
go: downloading github.com/benbjohnson/clock v1.3.0
go: downloading github.com/alecthomas/assert/v2 v2.2.1
go: downloading github.com/google/go-tpm-tools v0.4.1
go: downloading github.com/peterbourgon/diskv/v3 v3.0.1
go: downloading github.com/schollz/jsonstore v1.1.0
go: downloading gopkg.in/yaml.v2 v2.4.0
go: downloading github.com/alecthomas/repr v0.2.0
go: downloading github.com/aws/aws-sdk-go v1.45.12
go: downloading cloud.google.com/go/kms v1.15.2
go: downloading cloud.google.com/go v0.110.7
go: downloading github.com/googleapis/gax-go/v2 v2.12.0
go: downloading google.golang.org/api v0.142.0
go: downloading github.com/chzyer/test v1.0.0
go: downloading github.com/kr/pretty v0.3.1
go: downloading github.com/cockroachdb/apd v1.1.0
go: downloading github.com/gofrs/uuid v4.0.0+incompatible
go: downloading github.com/hexops/gotextdiff v1.0.3
go: downloading github.com/go-stack/stack v1.8.0
go: downloading github.com/google/btree v1.1.2
go: downloading cloud.google.com/go/iam v1.1.2
go: downloading google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a
go: downloading github.com/chzyer/logex v1.2.1
go: downloading github.com/kr/text v0.2.0
go: downloading github.com/rogpeppe/go-internal v1.10.0
go: downloading github.com/jackc/pgmock v0.0.0-20210724152146-4ad1a8207f65
go: downloading github.com/lib/pq v1.10.9
go: downloading github.com/zeebo/pcg v1.0.1
go: downloading golang.org/x/oauth2 v0.12.0
go: downloading cloud.google.com/go/compute/metadata v0.2.3
go: downloading go.opencensus.io v0.24.0
go: downloading cloud.google.com/go/compute v1.23.0
go: downloading github.com/OneOfOne/xxhash v1.2.2
go: downloading github.com/spaolacci/murmur3 v1.1.0
go: downloading github.com/jmespath/go-jmespath v0.4.0
go: downloading github.com/google/s2a-go v0.1.7
go: downloading github.com/googleapis/enterprise-certificate-proxy v0.2.5
go: downloading google.golang.org/appengine v1.6.7
go: downloading github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da
2024/05/09 10:36:36 [INFO] exec (timeout=0s): /snap/bin/go build -o /home/menny/Documents/caddy -ldflags -w -s -trimpath -tags nobadger 
# github.com/caddyserver/caddy/v2
/home/menny/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.6/listeners.go:477:4: unknown field RequireAddressValidation in struct literal of type quic.Config
/home/menny/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.6/listeners.go:516:4: unknown field RequireAddressValidation in struct literal of type quic.Config
2024/05/09 10:36:57 [INFO] Cleaning up temporary folder: /tmp/buildenv_2024-05-09-1036.3633393687
2024/05/09 10:36:57 [FATAL] exit status 1

Then i tried with mod replace

git clone "https://github.com/caddyserver/caddy.git"
cd caddy/
go mod edit -replace github.com/quic-go/quic-go=github.com/GiovanniMenon/quic-go@v0.0.0
cd cmd/caddy
go clean -modcache
go mod tidy
go build

This is the output

go: downloading github.com/caddyserver/certmagic v0.21.0
go: downloading github.com/cespare/xxhash/v2 v2.2.0
go: downloading github.com/prometheus/client_golang v1.19.0
go: downloading github.com/google/uuid v1.6.0
go: downloading github.com/cespare/xxhash v1.1.0
go: downloading github.com/GiovanniMenon/quic-go v0.0.0
go: downloading go.uber.org/zap v1.27.0
go: downloading go.uber.org/zap/exp v0.2.0
go: downloading golang.org/x/sys v0.20.0
go: downloading github.com/aryann/difflib v0.0.0-20210328193216-ff5ff6dc229b
go: downloading github.com/dustin/go-humanize v1.0.1
go: downloading github.com/mholt/acmez/v2 v2.0.1
go: downloading golang.org/x/term v0.20.0
go: downloading github.com/spf13/cobra v1.8.0
go: downloading golang.org/x/crypto v0.23.0
go: downloading golang.org/x/sync v0.7.0
go: downloading github.com/spf13/pflag v1.0.5
go: downloading go.uber.org/automaxprocs v1.5.3
go: downloading github.com/klauspost/compress v1.17.0
go: downloading golang.org/x/time v0.5.0
go: downloading github.com/google/cel-go v0.20.0
go: downloading golang.org/x/net v0.25.0
go: downloading github.com/stretchr/testify v1.9.0
go: downloading github.com/pires/go-proxyproto v0.7.0
go: downloading golang.org/x/crypto/x509roots/fallback v0.0.0-20240416174822-0da2a6a1bbc8
go: downloading github.com/smallstep/certificates v0.25.3-rc5
go: downloading github.com/BurntSushi/toml v1.3.2
go: downloading go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1
go: downloading github.com/Masterminds/sprig/v3 v3.2.3
go: downloading go.opentelemetry.io/contrib/propagators/autoprop v0.42.0
go: downloading github.com/go-chi/chi/v5 v5.0.12
go: downloading github.com/alecthomas/chroma/v2 v2.13.0
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0
go: downloading github.com/smallstep/truststore v0.13.0
go: downloading github.com/yuin/goldmark v1.7.1
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0
go: downloading go.opentelemetry.io/otel v1.21.0
go: downloading go.step.sm/crypto v0.42.1
go: downloading github.com/caddyserver/zerossl v0.1.2
go: downloading github.com/yuin/goldmark-highlighting/v2 v2.0.0-20230729083705-37449abec8cc
go: downloading go.opentelemetry.io/otel/sdk v1.21.0
go: downloading github.com/klauspost/cpuid/v2 v2.2.7
go: downloading github.com/tailscale/tscert v0.0.0-20230806124524-28a91b69a046
go: downloading github.com/smallstep/nosql v0.6.0
go: downloading go.opentelemetry.io/otel/trace v1.21.0
go: downloading gopkg.in/natefinch/lumberjack.v2 v2.2.1
go: downloading gopkg.in/yaml.v3 v3.0.1
go: downloading github.com/beorn7/perks v1.0.1
go: downloading github.com/prometheus/client_model v0.5.0
go: downloading github.com/prometheus/common v0.48.0
go: downloading github.com/prometheus/procfs v0.12.0
go: downloading google.golang.org/protobuf v1.33.0
go: downloading go.uber.org/multierr v1.11.0
go: downloading github.com/libdns/libdns v0.2.2
go: downloading github.com/miekg/dns v1.1.59
go: downloading github.com/zeebo/blake3 v0.2.3
go: downloading github.com/inconshreveable/mousetrap v1.1.0
go: downloading github.com/cpuguy83/go-md2man/v2 v2.0.3
go: downloading github.com/onsi/ginkgo/v2 v2.13.2
go: downloading go.uber.org/mock v0.4.0
go: downloading golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8
go: downloading github.com/quic-go/qpack v0.4.0
go: downloading go.uber.org/goleak v1.3.0
go: downloading github.com/onsi/gomega v1.29.0
go: downloading google.golang.org/genproto/googleapis/api v0.0.0-20240311132316-a219d84964c2
go: downloading golang.org/x/text v0.15.0
go: downloading github.com/stoewer/go-strcase v1.2.0
go: downloading github.com/antlr4-go/antlr/v4 v4.13.0
go: downloading github.com/davecgh/go-spew v1.1.1
go: downloading github.com/pmezard/go-difflib v1.0.0
go: downloading github.com/felixge/httpsnoop v1.0.4
go: downloading go.opentelemetry.io/otel/metric v1.21.0
go: downloading github.com/Masterminds/goutils v1.1.1
go: downloading github.com/Masterminds/semver/v3 v3.2.0
go: downloading github.com/huandu/xstrings v1.3.3
go: downloading github.com/imdario/mergo v0.3.12
go: downloading github.com/mitchellh/copystructure v1.2.0
go: downloading github.com/shopspring/decimal v1.2.0
go: downloading github.com/spf13/cast v1.4.1
go: downloading go.opentelemetry.io/contrib/propagators/aws v1.17.0
go: downloading go.opentelemetry.io/contrib/propagators/b3 v1.17.0
go: downloading go.opentelemetry.io/contrib/propagators/jaeger v1.17.0
go: downloading go.opentelemetry.io/contrib/propagators/ot v1.17.0
go: downloading github.com/fxamacker/cbor/v2 v2.6.0
go: downloading github.com/google/go-tpm v0.9.0
go: downloading github.com/pkg/errors v0.9.1
go: downloading github.com/smallstep/go-attestation v0.4.4-0.20240109183208-413678f90935
go: downloading github.com/google/go-cmp v0.6.0
go: downloading github.com/smallstep/assert v0.0.0-20200723003110-82e2b9b3b262
go: downloading go.step.sm/cli-utils v0.8.0
go: downloading go.step.sm/linkedca v0.20.1
go: downloading google.golang.org/grpc v1.62.1
go: downloading github.com/go-jose/go-jose/v3 v3.0.3
go: downloading go.opentelemetry.io/proto/otlp v1.0.0
go: downloading google.golang.org/genproto/googleapis/rpc v0.0.0-20240314234333-6e1732d8331c
go: downloading howett.net/plist v1.0.0
go: downloading github.com/alecthomas/assert/v2 v2.6.0
go: downloading github.com/go-logr/logr v1.4.1
go: downloading github.com/slackhq/nebula v1.6.1
go: downloading gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
go: downloading github.com/zeebo/assert v1.1.0
go: downloading golang.org/x/tools v0.21.0
go: downloading github.com/prashantv/gostub v1.1.0
go: downloading github.com/russross/blackfriday/v2 v2.1.0
go: downloading golang.org/x/mod v0.17.0
go: downloading github.com/go-logr/stdr v1.2.2
go: downloading gopkg.in/yaml.v2 v2.4.0
go: downloading github.com/mitchellh/reflectwalk v1.0.2
go: downloading github.com/x448/float16 v0.8.4
go: downloading github.com/smallstep/pkcs7 v0.0.0-20231024181729-3b98ecc1ca81
go: downloading github.com/smallstep/scep v0.0.0-20231024192529-aee96d7ad34d
go: downloading github.com/google/go-tspi v0.3.0
go: downloading github.com/google/go-tpm-tools v0.4.2
go: downloading github.com/chzyer/readline v1.5.1
go: downloading github.com/urfave/cli v1.22.14
go: downloading github.com/manifoldco/promptui v0.9.0
go: downloading github.com/peterbourgon/diskv/v3 v3.0.1
go: downloading github.com/schollz/jsonstore v1.1.0
go: downloading github.com/rs/xid v1.5.0
go: downloading github.com/sirupsen/logrus v1.9.3
go: downloading github.com/cenkalti/backoff/v4 v4.2.1
go: downloading github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0
go: downloading github.com/golang/protobuf v1.5.4
go: downloading github.com/dlclark/regexp2 v1.11.0
go: downloading github.com/alecthomas/repr v0.4.0
go: downloading filippo.io/edwards25519 v1.1.0
go: downloading github.com/Microsoft/go-winio v0.6.0
go: downloading github.com/mitchellh/go-ps v1.0.0
go: downloading github.com/dgraph-io/badger v1.6.2
go: downloading github.com/dgraph-io/badger/v2 v2.2007.4
go: downloading go.etcd.io/bbolt v1.3.8
go: downloading github.com/go-sql-driver/mysql v1.7.1
go: downloading github.com/jackc/pgx/v4 v4.18.3
go: downloading github.com/kr/pretty v0.3.1
go: downloading github.com/hexops/gotextdiff v1.0.3
go: downloading github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572
go: downloading github.com/go-kit/kit v0.13.0
go: downloading github.com/google/certificate-transparency-go v1.1.8-0.20240110162603-74a5dd331745
go: downloading github.com/aws/aws-sdk-go-v2/config v1.26.6
go: downloading github.com/aws/aws-sdk-go-v2/service/kms v1.27.9
go: downloading cloud.google.com/go/kms v1.15.5
go: downloading github.com/aws/aws-sdk-go-v2 v1.24.1
go: downloading cloud.google.com/go v0.111.0
go: downloading github.com/googleapis/gax-go/v2 v2.12.0
go: downloading google.golang.org/api v0.157.0
go: downloading github.com/chzyer/test v1.0.0
go: downloading github.com/google/btree v1.1.2
go: downloading github.com/dgraph-io/ristretto v0.1.0
go: downloading github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13
go: downloading github.com/jackc/pgconn v1.14.3
go: downloading github.com/jackc/pgio v1.0.0
go: downloading github.com/jackc/pgproto3/v2 v2.3.3
go: downloading github.com/jackc/pgtype v1.14.0
go: downloading github.com/cockroachdb/apd v1.1.0
go: downloading github.com/gofrs/uuid v4.0.0+incompatible
go: downloading github.com/google/pprof v0.0.0-20231212022811-ec68065c825e
go: downloading github.com/kr/text v0.2.0
go: downloading github.com/rogpeppe/go-internal v1.10.0
go: downloading github.com/go-kit/log v0.2.1
go: downloading github.com/aws/aws-sdk-go-v2/credentials v1.16.16
go: downloading github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11
go: downloading github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3
go: downloading github.com/aws/aws-sdk-go-v2/service/sso v1.18.7
go: downloading github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7
go: downloading github.com/aws/aws-sdk-go-v2/service/sts v1.26.7
go: downloading github.com/aws/smithy-go v1.19.0
go: downloading github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10
go: downloading cloud.google.com/go/iam v1.1.5
go: downloading google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80
go: downloading github.com/golang/glog v1.2.0
go: downloading github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96
go: downloading github.com/chzyer/logex v1.2.1
go: downloading github.com/golang/snappy v0.0.4
go: downloading github.com/zeebo/pcg v1.0.1
go: downloading github.com/jackc/chunkreader/v2 v2.0.1
go: downloading github.com/jackc/pgpassfile v1.0.0
go: downloading github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a
go: downloading github.com/jackc/pgmock v0.0.0-20210724152146-4ad1a8207f65
go: downloading github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d
go: downloading github.com/lib/pq v1.10.9
go: downloading github.com/go-logfmt/logfmt v0.6.0
go: downloading github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4
go: downloading github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10
go: downloading github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10
go: downloading golang.org/x/oauth2 v0.16.0
go: downloading cloud.google.com/go/compute/metadata v0.2.3
go: downloading go.opencensus.io v0.24.0
go: downloading cloud.google.com/go/compute v1.23.3
go: downloading go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1
go: downloading github.com/spaolacci/murmur3 v1.1.0
go: downloading github.com/OneOfOne/xxhash v1.2.2
go: downloading github.com/shurcooL/sanitized_anchor_name v1.0.0
go: downloading github.com/mattn/go-colorable v0.1.13
go: downloading github.com/google/s2a-go v0.1.7
go: downloading google.golang.org/appengine v1.6.8
go: downloading github.com/googleapis/enterprise-certificate-proxy v0.3.2
go: downloading github.com/mattn/go-isatty v0.0.20
go: downloading github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da

With this seems working.

Hi,

I was looking around to make sure was using my Fork.

But i realize is not.

go mod graph | grep "quic"
github.com/caddyserver/caddy/v2 github.com/quic-go/qpack@v0.4.0
github.com/caddyserver/caddy/v2 github.com/quic-go/quic-go@v0.43.1
github.com/quic-go/qpack@v0.4.0 github.com/onsi/ginkgo/v2@v2.2.0
github.com/quic-go/qpack@v0.4.0 github.com/onsi/gomega@v1.20.1
github.com/quic-go/qpack@v0.4.0 golang.org/x/net@v0.0.0-20220722155237-a158d28d115b
github.com/quic-go/qpack@v0.4.0 github.com/go-task/slim-sprig@v0.0.0-20210107165309-348f09dbbbc0
github.com/quic-go/qpack@v0.4.0 github.com/google/go-cmp@v0.5.8
github.com/quic-go/qpack@v0.4.0 github.com/google/pprof@v0.0.0-20210407192527-94a9f03dee38
github.com/quic-go/qpack@v0.4.0 golang.org/x/sys@v0.0.0-20220722155257-8c9f86f7a55f
github.com/quic-go/qpack@v0.4.0 golang.org/x/text@v0.3.7
github.com/quic-go/qpack@v0.4.0 golang.org/x/tools@v0.1.12
github.com/quic-go/qpack@v0.4.0 gopkg.in/yaml.v3@v3.0.1
github.com/quic-go/quic-go@v0.43.1 github.com/francoispqt/gojay@v1.2.13
github.com/quic-go/quic-go@v0.43.1 github.com/onsi/ginkgo/v2@v2.9.5
github.com/quic-go/quic-go@v0.43.1 github.com/onsi/gomega@v1.27.6
github.com/quic-go/quic-go@v0.43.1 github.com/quic-go/qpack@v0.4.0
github.com/quic-go/quic-go@v0.43.1 go.uber.org/mock@v0.4.0
github.com/quic-go/quic-go@v0.43.1 golang.org/x/crypto@v0.4.0
github.com/quic-go/quic-go@v0.43.1 golang.org/x/exp@v0.0.0-20221205204356-47842c84f3db
github.com/quic-go/quic-go@v0.43.1 golang.org/x/net@v0.10.0
github.com/quic-go/quic-go@v0.43.1 golang.org/x/sync@v0.2.0
github.com/quic-go/quic-go@v0.43.1 golang.org/x/sys@v0.8.0
github.com/quic-go/quic-go@v0.43.1 golang.org/x/time@v0.5.0
github.com/quic-go/quic-go@v0.43.1 github.com/go-logr/logr@v1.2.4
github.com/quic-go/quic-go@v0.43.1 github.com/go-task/slim-sprig@v0.0.0-20230315185526-52ccab3ef572
github.com/quic-go/quic-go@v0.43.1 github.com/google/go-cmp@v0.5.9
github.com/quic-go/quic-go@v0.43.1 github.com/google/pprof@v0.0.0-20210407192527-94a9f03dee38
github.com/quic-go/quic-go@v0.43.1 golang.org/x/mod@v0.11.0
github.com/quic-go/quic-go@v0.43.1 golang.org/x/text@v0.9.0
github.com/quic-go/quic-go@v0.43.1 golang.org/x/tools@v0.9.1
github.com/quic-go/quic-go@v0.43.1 gopkg.in/check.v1@v1.0.0-20180628173108-788fd7840127
github.com/quic-go/quic-go@v0.43.1 gopkg.in/yaml.v3@v3.0.1
github.com/quic-go/quic-go@v0.43.1 go@1.21

As i see is using the official quic-go repository.

In my go.mod file

....

replace github.com/quic-go/quic-go => github.com/GiovanniMenon/quic-go v0.0.0

I think this is because your fork is of a recent version of quic-go, but building with xcaddy build (without specifying a commit/ref) uses Caddy’s latest stable release, v2.7.6 which is using an older quic-go. So you can build with either xcaddy build v2.8.0-beta.2 or xcaddy build master (of course with your --with added) to use a recent version of Caddy using the latest quic-go.