From 332621f26832ed8eada31b4f9d825b7744303e1c Mon Sep 17 00:00:00 2001 From: Ainar Garipov Date: Thu, 8 Feb 2024 20:39:18 +0300 Subject: [PATCH] Pull request 2147: all: upd deps, go, scripts Squashed commit of the following: commit 425f1bd28074d22890629d06f43257e0353ce3d5 Author: Ainar Garipov Date: Thu Feb 8 20:15:58 2024 +0300 all: upd deps, go, scripts --- .github/workflows/build.yml | 2 +- .github/workflows/lint.yml | 2 +- CHANGELOG.md | 38 +++++++++- Makefile | 19 +++-- bamboo-specs/release.yaml | 6 +- bamboo-specs/snapcraft.yaml | 6 +- bamboo-specs/test.yaml | 2 +- go.mod | 28 ++++---- go.sum | 70 +++++++++++-------- internal/aghalg/aghalg.go | 2 +- internal/aghalg/ringbuffer_test.go | 2 +- internal/aghnet/ignore.go | 2 +- internal/aghos/os.go | 2 +- internal/arpdb/arpdb.go | 2 +- internal/dhcpd/db.go | 2 +- internal/dhcpd/dhcpd_unix_test.go | 2 +- internal/dhcpd/http_unix.go | 2 +- internal/dhcpd/v4_unix.go | 2 +- internal/dhcpsvc/config.go | 2 +- internal/dhcpsvc/interface.go | 3 +- internal/dhcpsvc/lease.go | 3 +- internal/dhcpsvc/server.go | 6 +- internal/dhcpsvc/v4.go | 2 +- internal/dhcpsvc/v6.go | 2 +- internal/dnsforward/config.go | 2 +- internal/dnsforward/config_test.go | 2 +- internal/dnsforward/dnsforward.go | 2 +- internal/dnsforward/filter.go | 2 +- internal/dnsforward/http.go | 2 +- internal/dnsforward/msg.go | 2 +- internal/dnsforward/upstreams.go | 2 +- internal/filtering/blocked.go | 2 +- internal/filtering/filter.go | 2 +- internal/filtering/filtering.go | 5 +- internal/filtering/hashprefix/hashprefix.go | 2 +- .../hashprefix/hashprefix_internal_test.go | 2 +- internal/filtering/http.go | 2 +- internal/filtering/rewrite/storage.go | 2 +- internal/filtering/rewritehttp.go | 2 +- internal/filtering/rewrites.go | 2 +- internal/filtering/rulelist/parser.go | 2 +- internal/home/client.go | 2 +- internal/home/clients.go | 2 +- internal/home/home.go | 2 +- internal/next/cmd/opt.go | 2 +- internal/next/configmgr/configmgr.go | 2 +- internal/querylog/json.go | 2 +- internal/querylog/search.go | 2 +- internal/rdns/rdns.go | 4 +- internal/stats/unit.go | 2 +- internal/tools/go.mod | 12 ++-- internal/tools/go.sum | 38 ++++++---- internal/updater/check.go | 2 +- scripts/README.md | 16 +++++ scripts/blocked-services/main.go | 2 +- scripts/hooks/pre-commit | 4 +- scripts/make/go-lint.sh | 40 +++-------- scripts/make/go-test.sh | 4 +- scripts/make/go-tools.sh | 2 - scripts/make/go-upd-tools.sh | 33 +++++++++ scripts/translations/download.go | 2 +- scripts/translations/main.go | 2 +- 62 files changed, 249 insertions(+), 174 deletions(-) create mode 100644 scripts/make/go-upd-tools.sh diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8a3af2fe..9804dae2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,7 +1,7 @@ 'name': 'build' 'env': - 'GO_VERSION': '1.20.12' + 'GO_VERSION': '1.21.7' 'NODE_VERSION': '16' 'on': diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 1ba27d28..b418e66f 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,7 +1,7 @@ 'name': 'lint' 'env': - 'GO_VERSION': '1.20.12' + 'GO_VERSION': '1.21.7' 'on': 'push': diff --git a/CHANGELOG.md b/CHANGELOG.md index 3640e205..6eb77546 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,12 +23,46 @@ See also the [v0.107.45 GitHub milestone][ms-v0.107.45]. NOTE: Add new changes BELOW THIS COMMENT. --> -### Added +### Security -- Context menu item in the Query Log to add a Client to the Persistent client list ([#6679]). +- Go version has been updated to prevent the possibility of exploiting the Go + vulnerabilities fixed in Go 1.21.6 and Go 1.21.7. + +### Added + +- Context menu item in the Query Log to add a Client to the Persistent client + list ([#6679]). + +### Changed + +- Starting with this release our scripts are using Go's [forward compatibility + mechanism][go-toolchain] for updating the Go version. + + **Important note for porters:** This change means that if your `go` version + is 1.21+ but is different from the one required by AdGuard Home, the `go` tool + will automatically download the required version. + + If you want to use the version installed on your builder, run: + + ```sh + go get go@$YOUR_VERSION + go mod tidy + ``` + + and call `make` with `GOTOOLCHAIN=local`. + +### Deprecated + +- Go 1.21 support. Future versions will require at least Go 1.22 to build. + +### Removed + +- Go 1.20 support, as it has reached end of life. [#6679]: https://github.com/AdguardTeam/AdGuardHome/issues/6679 +[go-toolchain]: https://go.dev/blog/toolchain + diff --git a/Makefile b/Makefile index b40b4cd0..2ec8699b 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ # Makefile. Bump this number every time a significant change is made to # this Makefile. # -# AdGuard-Project-Version: 2 +# AdGuard-Project-Version: 4 # Don't name these macros "GO" etc., because GNU Make apparently makes # them exported environment variables with the literal value of @@ -27,6 +27,7 @@ DIST_DIR = dist GOAMD64 = v1 GOPROXY = https://goproxy.cn|https://proxy.golang.org|direct GOSUMDB = sum.golang.google.cn +GOTOOLCHAIN = go1.21.7 GPG_KEY = devteam@adguard.com GPG_KEY_PASSPHRASE = not-a-real-password NPM = npm @@ -56,15 +57,16 @@ BUILD_RELEASE_DEPS_0 = deps js-build BUILD_RELEASE_DEPS_1 = go-deps ENV = env\ - COMMIT='$(COMMIT)'\ CHANNEL='$(CHANNEL)'\ - GPG_KEY='$(GPG_KEY)'\ - GPG_KEY_PASSPHRASE='$(GPG_KEY_PASSPHRASE)'\ + COMMIT='$(COMMIT)'\ DIST_DIR='$(DIST_DIR)'\ GO="$(GO.MACRO)"\ GOAMD64="$(GOAMD64)"\ GOPROXY='$(GOPROXY)'\ GOSUMDB='$(GOSUMDB)'\ + GOTOOLCHAIN='$(GOTOOLCHAIN)'\ + GPG_KEY='$(GPG_KEY)'\ + GPG_KEY_PASSPHRASE='$(GPG_KEY_PASSPHRASE)'\ PATH="$${PWD}/bin:$$( "$(GO.MACRO)" env GOPATH )/bin:$${PATH}"\ RACE='$(RACE)'\ SIGN='$(SIGN)'\ @@ -117,6 +119,8 @@ go-tools: ; $(ENV) "$(SHELL)" ./scripts/make/go-tools.sh # targets. go-test: ; $(ENV) RACE='1' "$(SHELL)" ./scripts/make/go-test.sh +go-upd-tools: ; $(ENV) "$(SHELL)" ./scripts/make/go-upd-tools.sh + go-check: go-tools go-lint go-test # A quick check to make sure that all supported operating systems can be @@ -132,10 +136,3 @@ openapi-lint: ; cd ./openapi/ && $(YARN) test openapi-show: ; cd ./openapi/ && $(YARN) start txt-lint: ; $(ENV) "$(SHELL)" ./scripts/make/txt-lint.sh - -# TODO(a.garipov): Consider adding to scripts/ and the common project -# structure. -go-upd-tools: - cd ./internal/tools/ &&\ - "$(GO.MACRO)" get -u &&\ - "$(GO.MACRO)" mod tidy diff --git a/bamboo-specs/release.yaml b/bamboo-specs/release.yaml index e7004570..5ca3ac56 100644 --- a/bamboo-specs/release.yaml +++ b/bamboo-specs/release.yaml @@ -7,7 +7,7 @@ # Make sure to sync any changes with the branch overrides below. 'variables': 'channel': 'edge' - 'dockerGo': 'adguard/golang-ubuntu:7.6' + 'dockerGo': 'adguard/golang-ubuntu:8.0' 'stages': - 'Build frontend': @@ -272,7 +272,7 @@ # need to build a few of these. 'variables': 'channel': 'beta' - 'dockerGo': 'adguard/golang-ubuntu:7.6' + 'dockerGo': 'adguard/golang-ubuntu:8.0' # release-vX.Y.Z branches are the branches from which the actual final # release is built. - '^release-v[0-9]+\.[0-9]+\.[0-9]+': @@ -287,4 +287,4 @@ # are the ones that actually get released. 'variables': 'channel': 'release' - 'dockerGo': 'adguard/golang-ubuntu:7.6' + 'dockerGo': 'adguard/golang-ubuntu:8.0' diff --git a/bamboo-specs/snapcraft.yaml b/bamboo-specs/snapcraft.yaml index 77948f13..06f85937 100644 --- a/bamboo-specs/snapcraft.yaml +++ b/bamboo-specs/snapcraft.yaml @@ -10,7 +10,7 @@ # Make sure to sync any changes with the branch overrides below. 'variables': 'channel': 'edge' - 'dockerGo': 'adguard/golang-ubuntu:7.6' + 'dockerGo': 'adguard/golang-ubuntu:8.0' 'snapcraftChannel': 'edge' 'stages': @@ -191,7 +191,7 @@ # need to build a few of these. 'variables': 'channel': 'beta' - 'dockerGo': 'adguard/golang-ubuntu:7.6' + 'dockerGo': 'adguard/golang-ubuntu:8.0' 'snapcraftChannel': 'beta' # release-vX.Y.Z branches are the branches from which the actual final # release is built. @@ -207,5 +207,5 @@ # are the ones that actually get released. 'variables': 'channel': 'release' - 'dockerGo': 'adguard/golang-ubuntu:7.6' + 'dockerGo': 'adguard/golang-ubuntu:8.0' 'snapcraftChannel': 'candidate' diff --git a/bamboo-specs/test.yaml b/bamboo-specs/test.yaml index 86e08cc4..239fe8a7 100644 --- a/bamboo-specs/test.yaml +++ b/bamboo-specs/test.yaml @@ -5,7 +5,7 @@ 'key': 'AHBRTSPECS' 'name': 'AdGuard Home - Build and run tests' 'variables': - 'dockerGo': 'adguard/golang-ubuntu:7.6' + 'dockerGo': 'adguard/golang-ubuntu:8.0' 'stages': - 'Tests': diff --git a/go.mod b/go.mod index c767ab70..fe7f2374 100644 --- a/go.mod +++ b/go.mod @@ -1,10 +1,10 @@ module github.com/AdguardTeam/AdGuardHome -go 1.20 +go 1.21.7 require ( - github.com/AdguardTeam/dnsproxy v0.64.1 - github.com/AdguardTeam/golibs v0.19.0 + github.com/AdguardTeam/dnsproxy v0.65.0 + github.com/AdguardTeam/golibs v0.20.0 github.com/AdguardTeam/urlfilter v0.17.3 github.com/NYTimes/gziphandler v1.1.1 github.com/ameshkov/dnscrypt/v2 v2.2.7 @@ -17,8 +17,8 @@ require ( github.com/google/go-cmp v0.6.0 github.com/google/gopacket v1.1.19 github.com/google/renameio/v2 v2.0.0 - github.com/google/uuid v1.5.0 - github.com/insomniacslk/dhcp v0.0.0-20231206064809-8c70d406f6d2 + github.com/google/uuid v1.6.0 + github.com/insomniacslk/dhcp v0.0.0-20240204152450-ca2dc33955c1 github.com/josharian/native v1.1.1-0.20230202152459-5c7d0dd6ab86 github.com/kardianos/service v1.2.2 github.com/mdlayher/ethernet v0.0.0-20220221185849-529eae5b6118 @@ -28,14 +28,14 @@ require ( // own code for that. Perhaps, use gopacket. github.com/mdlayher/raw v0.1.0 github.com/miekg/dns v1.1.58 - github.com/quic-go/quic-go v0.40.1 + github.com/quic-go/quic-go v0.41.0 github.com/stretchr/testify v1.8.4 github.com/ti-mo/netfilter v0.5.1 go.etcd.io/bbolt v1.3.8 - golang.org/x/crypto v0.18.0 - golang.org/x/exp v0.0.0-20240119083558-1b970713d09a - golang.org/x/net v0.20.0 - golang.org/x/sys v0.16.0 + golang.org/x/crypto v0.19.0 + golang.org/x/exp v0.0.0-20240205201215-2c58cdc269a3 + golang.org/x/net v0.21.0 + golang.org/x/sys v0.17.0 gopkg.in/natefinch/lumberjack.v2 v2.2.1 gopkg.in/yaml.v3 v3.0.1 howett.net/plist v1.0.1 @@ -48,8 +48,7 @@ require ( github.com/beefsack/go-rate v0.0.0-20220214233405-116f4ca011a0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect - github.com/google/pprof v0.0.0-20240117000934-35fc243c5815 // indirect - // TODO(a.garipov): Upgrade to v0.5.0 once we switch to Go 1.21+. + github.com/google/pprof v0.0.0-20240207164012-fb44976bdcd5 // indirect github.com/mdlayher/socket v0.5.0 // indirect github.com/onsi/ginkgo/v2 v2.15.0 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect @@ -57,10 +56,9 @@ require ( github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/quic-go/qpack v0.4.0 // indirect - github.com/quic-go/qtls-go1-20 v0.4.1 // indirect - github.com/u-root/uio v0.0.0-20240118234441-a3c409a6018e // indirect + github.com/u-root/uio v0.0.0-20240207234124-abbebccef0fd // indirect go.uber.org/mock v0.4.0 // indirect - golang.org/x/mod v0.14.0 // indirect + golang.org/x/mod v0.15.0 // indirect golang.org/x/sync v0.6.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.17.0 // indirect diff --git a/go.sum b/go.sum index 465d60f5..bffe716d 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ -github.com/AdguardTeam/dnsproxy v0.64.1 h1:Cv2nyNYjUeUxouTQmM0aVTR7LWuhCr/Lu+h3DIAWhG8= -github.com/AdguardTeam/dnsproxy v0.64.1/go.mod h1:dRRAFOjrq4QYM92jGs4lt4BoY0Dm3EY3HkaleoM2Feo= -github.com/AdguardTeam/golibs v0.19.0 h1:y/x+Xn3pDg1ZfQ+QEZapPJqaeVYUIMp/EODMtVhn7PM= -github.com/AdguardTeam/golibs v0.19.0/go.mod h1:3WunclLLfrVAq7fYQRhd6f168FHOEMssnipVXCxDL/w= +github.com/AdguardTeam/dnsproxy v0.65.0 h1:mqJjVSkqoqPwThY3tTvnLHQ/AYBYrfWmK2ER91fu4FE= +github.com/AdguardTeam/dnsproxy v0.65.0/go.mod h1:AGYMLPk2zX+I3NIUYS12KUI296mkCyfoMF/luy2uqdk= +github.com/AdguardTeam/golibs v0.20.0 h1:A9FIdYq7wUKhFYy3z+YZ/Aw5oFUYgW+xgaVAJ0pnnPY= +github.com/AdguardTeam/golibs v0.20.0/go.mod h1:3WunclLLfrVAq7fYQRhd6f168FHOEMssnipVXCxDL/w= github.com/AdguardTeam/urlfilter v0.17.3 h1:fg/ObbnO0Cv6aw0tW6N/ETDMhhNvmcUUOZ7HlmKC3rw= github.com/AdguardTeam/urlfilter v0.17.3/go.mod h1:Jru7jFfeH2CoDf150uDs+rRYcZBzHHBz05r9REyDKyE= github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I= @@ -30,12 +30,15 @@ github.com/dimfeld/httptreemux/v5 v5.5.0/go.mod h1:QeEylH57C0v3VO0tkKraVz9oD3Uu9 github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ping/ping v1.1.0 h1:3MCGhVX4fyEUuhsfwPrsEdQw6xspHkv5zHsiSoDFZYw= github.com/go-ping/ping v1.1.0/go.mod h1:xIFjORFzTxqIV/tDVGO4eDy/bLuSyawEeojSm3GfRGk= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= @@ -43,25 +46,27 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo= -github.com/google/pprof v0.0.0-20240117000934-35fc243c5815 h1:WzfWbQz/Ze8v6l++GGbGNFZnUShVpP/0xffCPLL+ax8= -github.com/google/pprof v0.0.0-20240117000934-35fc243c5815/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= +github.com/google/pprof v0.0.0-20240207164012-fb44976bdcd5 h1:E/LAvt58di64hlYjx7AsNS6C/ysHWYo+2qPCZKTQhRo= +github.com/google/pprof v0.0.0-20240207164012-fb44976bdcd5/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= github.com/google/renameio/v2 v2.0.0 h1:UifI23ZTGY8Tt29JbYFiuyIU3eX+RNFtUwefq9qAhxg= github.com/google/renameio/v2 v2.0.0/go.mod h1:BtmJXm5YlszgC+TD4HOEEUFgkJP3nLxehU6hfe7jRt4= github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= -github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hugelgupf/socketpair v0.0.0-20190730060125-05d35a94e714 h1:/jC7qQFrv8CrSJVmaolDVOxTfS9kc36uB6H40kdbQq8= -github.com/insomniacslk/dhcp v0.0.0-20231206064809-8c70d406f6d2 h1:9K06NfxkBh25x56yVhWWlKFE8YpicaSfHwoV8SFbueA= -github.com/insomniacslk/dhcp v0.0.0-20231206064809-8c70d406f6d2/go.mod h1:3A9PQ1cunSDF/1rbTq99Ts4pVnycWg+vlPkfeD2NLFI= +github.com/hugelgupf/socketpair v0.0.0-20190730060125-05d35a94e714/go.mod h1:2Goc3h8EklBH5mspfHFxBnEoURQCGzQQH1ga9Myjvis= +github.com/insomniacslk/dhcp v0.0.0-20240204152450-ca2dc33955c1 h1:L3pm9Kf2G6gJVYawz2SrI5QnV1wzHYbqmKnSHHXJAb8= +github.com/insomniacslk/dhcp v0.0.0-20240204152450-ca2dc33955c1/go.mod h1:izxuNQZeFrbx2nK2fAyN5iNUB34Fe9j0nK4PwLzAkKw= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/josharian/native v1.0.0/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w= -github.com/josharian/native v1.0.1-0.20221213033349-c1e37c09b531/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w= github.com/josharian/native v1.1.1-0.20230202152459-5c7d0dd6ab86 h1:elKwZS1OcdQ0WwEDBeqxKwb7WB62QX8bvZ/FJnVXIfk= github.com/josharian/native v1.1.1-0.20230202152459-5c7d0dd6ab86/go.mod h1:aFAMtuldEgx/4q7iSGazk22+IcgvtiC+HIimFO9XlS8= github.com/kardianos/service v1.2.2 h1:ZvePhAHfvo0A7Mftk/tEzqEZ7Q4lgnR8sGz4xu1YX60= github.com/kardianos/service v1.2.2/go.mod h1:CIMRFEJVL+0DS1a3Nx06NaMn4Dz63Ng6O7dl0qH0zVM= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/mdlayher/ethernet v0.0.0-20220221185849-529eae5b6118 h1:2oDp6OOhLxQ9JBoUuysVz9UZ9uI6oLUbvAZu0x8o+vE= github.com/mdlayher/ethernet v0.0.0-20220221185849-529eae5b6118/go.mod h1:ZFUnHIVchZ9lJoWoEGUg8Q3M4U8aNNWA3CVSUTkW4og= github.com/mdlayher/netlink v0.0.0-20190313131330-258ea9dff42c/go.mod h1:eQB3mZE4aiYnlUsyGGCOpPETfdQq4Jhsgf1fk3cwQaA= @@ -78,12 +83,13 @@ github.com/mdlayher/socket v0.5.0/go.mod h1:WkcBFfvyG8QENs5+hfQPl1X6Jpd2yeLIYgrG github.com/miekg/dns v1.1.58 h1:ca2Hdkz+cDg/7eNF6V56jjzuZ4aCAE+DbVkILdQWG/4= github.com/miekg/dns v1.1.58/go.mod h1:Ypv+3b/KadlvW9vJfXOTf300O4UqaHFzFCuHz+rPkBY= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/onsi/ginkgo/v2 v2.15.0 h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY= github.com/onsi/ginkgo/v2 v2.15.0/go.mod h1:HlxMHtYF57y6Dpf+mc5529KKmSq9h2FpCF+/ZkwUxKM= github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= +github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= -github.com/pierrec/lz4/v4 v4.1.14/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -92,16 +98,18 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo= github.com/quic-go/qpack v0.4.0/go.mod h1:UZVnYIfi5GRk+zI9UMaCPsmZ2xKJP7XBUvVyT1Knj9A= -github.com/quic-go/qtls-go1-20 v0.4.1 h1:D33340mCNDAIKBqXuAvexTNMUByrYmFYVfKfDN5nfFs= -github.com/quic-go/qtls-go1-20 v0.4.1/go.mod h1:X9Nh97ZL80Z+bX/gUXMbipO6OxdiDi58b/fMC9mAL+k= -github.com/quic-go/quic-go v0.40.1 h1:X3AGzUNFs0jVuO3esAGnTfvdgvL4fq655WaOi1snv1Q= -github.com/quic-go/quic-go v0.40.1/go.mod h1:PeN7kuVJ4xZbxSv/4OX6S1USOX8MJvydwpTx31vx60c= +github.com/quic-go/quic-go v0.41.0 h1:aD8MmHfgqTURWNJy48IYFg2OnxwHT3JL7ahGs73lb4k= +github.com/quic-go/quic-go v0.41.0/go.mod h1:qCkNjqczPEvgsOnxZ0eCD14lv+B2LHlFAB++CNOh9hA= github.com/shirou/gopsutil/v3 v3.23.7 h1:C+fHO8hfIppoJ1WdsVm1RoI0RwXoNdfTK7yWXV0wVj4= +github.com/shirou/gopsutil/v3 v3.23.7/go.mod h1:c4gnmoRC0hQuaLqvxnx1//VXQ0Ms/X9UnJF8pddY5z4= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= +github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= @@ -110,32 +118,35 @@ github.com/ti-mo/netfilter v0.2.0/go.mod h1:8GbBGsY/8fxtyIdfwy29JiluNcPK4K7wIT+x github.com/ti-mo/netfilter v0.5.1 h1:cqamEd1c1zmpfpqvInLOro0Znq/RAfw2QL5wL2rAR/8= github.com/ti-mo/netfilter v0.5.1/go.mod h1:h9UPQ3ZrTZGBitay+LETMxZvNgWGK/efTUcqES2YiLw= github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM= +github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI= github.com/tklauser/numcpus v0.6.0 h1:kebhY2Qt+3U6RNK7UqpYNA+tJ23IBEGKkB7JQBfDYms= -github.com/u-root/uio v0.0.0-20240118234441-a3c409a6018e h1:BA9O3BmlTmpjbvajAwzWx4Wo2TRVdpPXZEeemGQcajw= -github.com/u-root/uio v0.0.0-20240118234441-a3c409a6018e/go.mod h1:eLL9Nub3yfAho7qB0MzZizFhTU2QkLeoVsWdHtDW264= +github.com/tklauser/numcpus v0.6.0/go.mod h1:FEZLMke0lhOUG6w2JadTzp0a+Nl8PF/GFkQ5UVIcaL4= +github.com/u-root/uio v0.0.0-20240207234124-abbebccef0fd h1:BQJh5fdHsPa/YuMVrbcSxQKuowGCHYh0GD7hvLaHBK0= +github.com/u-root/uio v0.0.0-20240207234124-abbebccef0fd/go.mod h1:P3a5rG4X7tI17Nn3aOIAYr5HbIMukwXG0urG0WuL8OA= github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= +github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA= go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= go.uber.org/mock v0.4.0 h1:VcM4ZOtdbR4f6VXfiOpwpVJDL6lCReaZ6mw31wqh7KU= go.uber.org/mock v0.4.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= -golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= -golang.org/x/exp v0.0.0-20240119083558-1b970713d09a h1:Q8/wZp0KX97QFTc2ywcOE0YRjZPVIx+MXInMzdvQqcA= -golang.org/x/exp v0.0.0-20240119083558-1b970713d09a/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= +golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/exp v0.0.0-20240205201215-2c58cdc269a3 h1:/RIbNt/Zr7rVhIkQhooTxCxFcdWLGIKnZA4IXNFSrvo= +golang.org/x/exp v0.0.0-20240205201215-2c58cdc269a3/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= -golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8= +golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= -golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= -golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= @@ -149,10 +160,9 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220622161953-175b2fd9d664/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.4.1-0.20230131160137-e7d7f63158de/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= -golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -167,8 +177,10 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T gonum.org/v1/gonum v0.14.0 h1:2NiG67LD1tEH0D7kM+ps2V+fXmsAnpUeec7n8tcr4S0= gonum.org/v1/gonum v0.14.0/go.mod h1:AoWeoz0becf9QMWtE8iWXNXc27fK4fNeHNf/oMejGfU= google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= +google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= gopkg.in/yaml.v1 v1.0.0-20140924161607-9f9df34309c0/go.mod h1:WDnlLJ4WF5VGsH/HVa3CI79GS0ol3YnhVnKP89i0kNg= diff --git a/internal/aghalg/aghalg.go b/internal/aghalg/aghalg.go index b554a917..93b259ef 100644 --- a/internal/aghalg/aghalg.go +++ b/internal/aghalg/aghalg.go @@ -5,9 +5,9 @@ package aghalg import ( "fmt" + "slices" "golang.org/x/exp/constraints" - "golang.org/x/exp/slices" ) // Coalesce returns the first non-zero value. It is named after function diff --git a/internal/aghalg/ringbuffer_test.go b/internal/aghalg/ringbuffer_test.go index 0209d27f..b86295c3 100644 --- a/internal/aghalg/ringbuffer_test.go +++ b/internal/aghalg/ringbuffer_test.go @@ -1,11 +1,11 @@ package aghalg_test import ( + "slices" "testing" "github.com/AdguardTeam/AdGuardHome/internal/aghalg" "github.com/stretchr/testify/assert" - "golang.org/x/exp/slices" ) // elements is a helper function that returns n elements of the buffer. diff --git a/internal/aghnet/ignore.go b/internal/aghnet/ignore.go index 69146800..058bb211 100644 --- a/internal/aghnet/ignore.go +++ b/internal/aghnet/ignore.go @@ -1,11 +1,11 @@ package aghnet import ( + "slices" "strings" "github.com/AdguardTeam/urlfilter" "github.com/AdguardTeam/urlfilter/filterlist" - "golang.org/x/exp/slices" ) // IgnoreEngine contains the list of rules for ignoring hostnames and matches diff --git a/internal/aghos/os.go b/internal/aghos/os.go index 96e5661a..e5f524f7 100644 --- a/internal/aghos/os.go +++ b/internal/aghos/os.go @@ -12,13 +12,13 @@ import ( "os/exec" "path" "runtime" + "slices" "strconv" "strings" "github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/log" "github.com/AdguardTeam/golibs/mathutil" - "golang.org/x/exp/slices" ) // UnsupportedError is returned by functions and methods when a particular diff --git a/internal/arpdb/arpdb.go b/internal/arpdb/arpdb.go index 66b1ae1e..8277310a 100644 --- a/internal/arpdb/arpdb.go +++ b/internal/arpdb/arpdb.go @@ -7,13 +7,13 @@ import ( "fmt" "net" "net/netip" + "slices" "sync" "github.com/AdguardTeam/AdGuardHome/internal/aghos" "github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/log" "github.com/AdguardTeam/golibs/netutil" - "golang.org/x/exp/slices" ) // Variables and functions to substitute in tests. diff --git a/internal/dhcpd/db.go b/internal/dhcpd/db.go index 9862d0e5..aa482f2e 100644 --- a/internal/dhcpd/db.go +++ b/internal/dhcpd/db.go @@ -8,6 +8,7 @@ import ( "net" "net/netip" "os" + "slices" "strings" "time" @@ -15,7 +16,6 @@ import ( "github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/log" "github.com/google/renameio/v2/maybe" - "golang.org/x/exp/slices" ) const ( diff --git a/internal/dhcpd/dhcpd_unix_test.go b/internal/dhcpd/dhcpd_unix_test.go index 3aea125a..fd5f25cc 100644 --- a/internal/dhcpd/dhcpd_unix_test.go +++ b/internal/dhcpd/dhcpd_unix_test.go @@ -6,6 +6,7 @@ import ( "net" "net/netip" "path/filepath" + "slices" "testing" "time" @@ -13,7 +14,6 @@ import ( "github.com/AdguardTeam/golibs/testutil" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "golang.org/x/exp/slices" ) func TestMain(m *testing.M) { diff --git a/internal/dhcpd/http_unix.go b/internal/dhcpd/http_unix.go index 199d1113..42ea315a 100644 --- a/internal/dhcpd/http_unix.go +++ b/internal/dhcpd/http_unix.go @@ -10,6 +10,7 @@ import ( "net/http" "net/netip" "os" + "slices" "time" "github.com/AdguardTeam/AdGuardHome/internal/aghalg" @@ -19,7 +20,6 @@ import ( "github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/log" "github.com/AdguardTeam/golibs/netutil" - "golang.org/x/exp/slices" ) type v4ServerConfJSON struct { diff --git a/internal/dhcpd/v4_unix.go b/internal/dhcpd/v4_unix.go index 3685c2e8..5333390b 100644 --- a/internal/dhcpd/v4_unix.go +++ b/internal/dhcpd/v4_unix.go @@ -7,6 +7,7 @@ import ( "fmt" "net" "net/netip" + "slices" "strings" "sync" "time" @@ -20,7 +21,6 @@ import ( "github.com/go-ping/ping" "github.com/insomniacslk/dhcp/dhcpv4" "github.com/insomniacslk/dhcp/dhcpv4/server4" - "golang.org/x/exp/slices" ) // v4Server is a DHCPv4 server. diff --git a/internal/dhcpsvc/config.go b/internal/dhcpsvc/config.go index d1683be8..bb5c46a0 100644 --- a/internal/dhcpsvc/config.go +++ b/internal/dhcpsvc/config.go @@ -2,11 +2,11 @@ package dhcpsvc import ( "fmt" + "slices" "time" "github.com/AdguardTeam/golibs/netutil" "golang.org/x/exp/maps" - "golang.org/x/exp/slices" ) // Config is the configuration for the DHCP service. diff --git a/internal/dhcpsvc/interface.go b/internal/dhcpsvc/interface.go index 56b52382..5a96e261 100644 --- a/internal/dhcpsvc/interface.go +++ b/internal/dhcpsvc/interface.go @@ -2,9 +2,8 @@ package dhcpsvc import ( "fmt" + "slices" "time" - - "golang.org/x/exp/slices" ) // netInterface is a common part of any network interface within the DHCP diff --git a/internal/dhcpsvc/lease.go b/internal/dhcpsvc/lease.go index 6f7006a1..a920a4f2 100644 --- a/internal/dhcpsvc/lease.go +++ b/internal/dhcpsvc/lease.go @@ -4,9 +4,8 @@ import ( "bytes" "net" "net/netip" + "slices" "time" - - "golang.org/x/exp/slices" ) // Lease is a DHCP lease. diff --git a/internal/dhcpsvc/server.go b/internal/dhcpsvc/server.go index d4dbeb9f..1e07363d 100644 --- a/internal/dhcpsvc/server.go +++ b/internal/dhcpsvc/server.go @@ -4,13 +4,13 @@ import ( "fmt" "net" "net/netip" + "slices" "strings" "sync" "sync/atomic" "time" "golang.org/x/exp/maps" - "golang.org/x/exp/slices" ) // DHCPServer is a DHCP server for both IPv4 and IPv6 address families. @@ -174,8 +174,8 @@ func (srv *DHCPServer) Reset() (err error) { iface.reset() } - maps.Clear(srv.leaseByIP) - maps.Clear(srv.leaseByName) + clear(srv.leaseByIP) + clear(srv.leaseByName) return nil } diff --git a/internal/dhcpsvc/v4.go b/internal/dhcpsvc/v4.go index e28e3845..a93f1103 100644 --- a/internal/dhcpsvc/v4.go +++ b/internal/dhcpsvc/v4.go @@ -4,12 +4,12 @@ import ( "fmt" "net" "net/netip" + "slices" "time" "github.com/AdguardTeam/golibs/log" "github.com/AdguardTeam/golibs/netutil" "github.com/google/gopacket/layers" - "golang.org/x/exp/slices" ) // IPv4Config is the interface-specific configuration for DHCPv4. diff --git a/internal/dhcpsvc/v6.go b/internal/dhcpsvc/v6.go index 9387c3be..ea300e30 100644 --- a/internal/dhcpsvc/v6.go +++ b/internal/dhcpsvc/v6.go @@ -3,12 +3,12 @@ package dhcpsvc import ( "fmt" "net/netip" + "slices" "time" "github.com/AdguardTeam/golibs/log" "github.com/AdguardTeam/golibs/netutil" "github.com/google/gopacket/layers" - "golang.org/x/exp/slices" ) // IPv6Config is the interface-specific configuration for DHCPv6. diff --git a/internal/dnsforward/config.go b/internal/dnsforward/config.go index 2a11773d..d4b8092e 100644 --- a/internal/dnsforward/config.go +++ b/internal/dnsforward/config.go @@ -7,6 +7,7 @@ import ( "net" "net/netip" "os" + "slices" "strings" "time" @@ -24,7 +25,6 @@ import ( "github.com/AdguardTeam/golibs/stringutil" "github.com/AdguardTeam/golibs/timeutil" "github.com/ameshkov/dnscrypt/v2" - "golang.org/x/exp/slices" ) // ClientsContainer provides information about preconfigured DNS clients. diff --git a/internal/dnsforward/config_test.go b/internal/dnsforward/config_test.go index a13a567b..fbff06f4 100644 --- a/internal/dnsforward/config_test.go +++ b/internal/dnsforward/config_test.go @@ -1,10 +1,10 @@ package dnsforward import ( + "slices" "testing" "github.com/stretchr/testify/assert" - "golang.org/x/exp/slices" ) func TestAnyNameMatches(t *testing.T) { diff --git a/internal/dnsforward/dnsforward.go b/internal/dnsforward/dnsforward.go index 9c0097b9..6ad06333 100644 --- a/internal/dnsforward/dnsforward.go +++ b/internal/dnsforward/dnsforward.go @@ -9,6 +9,7 @@ import ( "net/http" "net/netip" "runtime" + "slices" "strings" "sync" "sync/atomic" @@ -30,7 +31,6 @@ import ( "github.com/AdguardTeam/golibs/netutil/sysresolv" "github.com/AdguardTeam/golibs/stringutil" "github.com/miekg/dns" - "golang.org/x/exp/slices" ) // DefaultTimeout is the default upstream timeout diff --git a/internal/dnsforward/filter.go b/internal/dnsforward/filter.go index a92cccd6..46599c11 100644 --- a/internal/dnsforward/filter.go +++ b/internal/dnsforward/filter.go @@ -4,6 +4,7 @@ import ( "encoding/binary" "fmt" "net" + "slices" "strings" "github.com/AdguardTeam/AdGuardHome/internal/aghnet" @@ -12,7 +13,6 @@ import ( "github.com/AdguardTeam/golibs/log" "github.com/AdguardTeam/urlfilter/rules" "github.com/miekg/dns" - "golang.org/x/exp/slices" ) // beforeRequestHandler is the handler that is called before any other diff --git a/internal/dnsforward/http.go b/internal/dnsforward/http.go index 73acda6e..9ad2395a 100644 --- a/internal/dnsforward/http.go +++ b/internal/dnsforward/http.go @@ -6,6 +6,7 @@ import ( "io" "net/http" "net/netip" + "slices" "time" "github.com/AdguardTeam/AdGuardHome/internal/aghhttp" @@ -16,7 +17,6 @@ import ( "github.com/AdguardTeam/golibs/log" "github.com/AdguardTeam/golibs/netutil" "github.com/AdguardTeam/golibs/stringutil" - "golang.org/x/exp/slices" ) // jsonDNSConfig is the JSON representation of the DNS server configuration. diff --git a/internal/dnsforward/msg.go b/internal/dnsforward/msg.go index eeb2c963..10dceb11 100644 --- a/internal/dnsforward/msg.go +++ b/internal/dnsforward/msg.go @@ -2,13 +2,13 @@ package dnsforward import ( "net/netip" + "slices" "github.com/AdguardTeam/AdGuardHome/internal/filtering" "github.com/AdguardTeam/dnsproxy/proxy" "github.com/AdguardTeam/golibs/log" "github.com/AdguardTeam/urlfilter/rules" "github.com/miekg/dns" - "golang.org/x/exp/slices" ) // makeResponse creates a DNS response by req and sets necessary flags. It also diff --git a/internal/dnsforward/upstreams.go b/internal/dnsforward/upstreams.go index b28b5f90..c7f6677e 100644 --- a/internal/dnsforward/upstreams.go +++ b/internal/dnsforward/upstreams.go @@ -4,6 +4,7 @@ import ( "fmt" "net/netip" "os" + "slices" "time" "github.com/AdguardTeam/AdGuardHome/internal/aghnet" @@ -14,7 +15,6 @@ import ( "github.com/AdguardTeam/golibs/netutil" "github.com/AdguardTeam/golibs/stringutil" "golang.org/x/exp/maps" - "golang.org/x/exp/slices" ) // loadUpstreams parses upstream DNS servers from the configured file or from diff --git a/internal/filtering/blocked.go b/internal/filtering/blocked.go index cd388853..3e0764d2 100644 --- a/internal/filtering/blocked.go +++ b/internal/filtering/blocked.go @@ -4,13 +4,13 @@ import ( "encoding/json" "fmt" "net/http" + "slices" "time" "github.com/AdguardTeam/AdGuardHome/internal/aghhttp" "github.com/AdguardTeam/AdGuardHome/internal/schedule" "github.com/AdguardTeam/golibs/log" "github.com/AdguardTeam/urlfilter/rules" - "golang.org/x/exp/slices" ) // serviceRules maps a service ID to its filtering rules. diff --git a/internal/filtering/filter.go b/internal/filtering/filter.go index 64befc73..65ef1b7a 100644 --- a/internal/filtering/filter.go +++ b/internal/filtering/filter.go @@ -6,6 +6,7 @@ import ( "net/http" "os" "path/filepath" + "slices" "strconv" "strings" "time" @@ -15,7 +16,6 @@ import ( "github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/log" "github.com/AdguardTeam/golibs/stringutil" - "golang.org/x/exp/slices" ) // filterDir is the subdirectory of a data directory to store downloaded diff --git a/internal/filtering/filtering.go b/internal/filtering/filtering.go index 2d382530..b145ed3b 100644 --- a/internal/filtering/filtering.go +++ b/internal/filtering/filtering.go @@ -12,6 +12,7 @@ import ( "path/filepath" "runtime" "runtime/debug" + "slices" "strings" "sync" "sync/atomic" @@ -29,7 +30,6 @@ import ( "github.com/AdguardTeam/urlfilter/filterlist" "github.com/AdguardTeam/urlfilter/rules" "github.com/miekg/dns" - "golang.org/x/exp/slices" ) // The IDs of built-in filter lists. @@ -1113,8 +1113,7 @@ func (d *DNSFilter) periodicallyRefreshFilters(ivl time.Duration) (nextIvl time. ivl = maxInterval } else if isNetErr { ivl *= 2 - // TODO(s.chzhen): Use built-in function max in Go 1.21. - ivl = mathutil.Max(ivl, maxInterval) + ivl = max(ivl, maxInterval) } return ivl diff --git a/internal/filtering/hashprefix/hashprefix.go b/internal/filtering/hashprefix/hashprefix.go index 00255254..fb1128e4 100644 --- a/internal/filtering/hashprefix/hashprefix.go +++ b/internal/filtering/hashprefix/hashprefix.go @@ -5,6 +5,7 @@ import ( "crypto/sha256" "encoding/hex" "fmt" + "slices" "strings" "time" @@ -14,7 +15,6 @@ import ( "github.com/AdguardTeam/golibs/netutil" "github.com/AdguardTeam/golibs/stringutil" "github.com/miekg/dns" - "golang.org/x/exp/slices" "golang.org/x/net/publicsuffix" ) diff --git a/internal/filtering/hashprefix/hashprefix_internal_test.go b/internal/filtering/hashprefix/hashprefix_internal_test.go index 97290661..a6a95ad5 100644 --- a/internal/filtering/hashprefix/hashprefix_internal_test.go +++ b/internal/filtering/hashprefix/hashprefix_internal_test.go @@ -3,6 +3,7 @@ package hashprefix import ( "crypto/sha256" "encoding/hex" + "slices" "strings" "testing" "time" @@ -12,7 +13,6 @@ import ( "github.com/miekg/dns" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "golang.org/x/exp/slices" ) const ( diff --git a/internal/filtering/http.go b/internal/filtering/http.go index 362ef0e4..310338c0 100644 --- a/internal/filtering/http.go +++ b/internal/filtering/http.go @@ -8,6 +8,7 @@ import ( "net/url" "os" "path/filepath" + "slices" "sync" "time" @@ -15,7 +16,6 @@ import ( "github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/log" "github.com/miekg/dns" - "golang.org/x/exp/slices" ) // validateFilterURL validates the filter list URL or file name. diff --git a/internal/filtering/rewrite/storage.go b/internal/filtering/rewrite/storage.go index 31b2e094..cdf3e52c 100644 --- a/internal/filtering/rewrite/storage.go +++ b/internal/filtering/rewrite/storage.go @@ -3,6 +3,7 @@ package rewrite import ( "fmt" + "slices" "strings" "sync" @@ -12,7 +13,6 @@ import ( "github.com/AdguardTeam/urlfilter/filterlist" "github.com/AdguardTeam/urlfilter/rules" "github.com/miekg/dns" - "golang.org/x/exp/slices" ) // Storage is a storage for rewrite rules. diff --git a/internal/filtering/rewritehttp.go b/internal/filtering/rewritehttp.go index ed34bb4b..af2ddf1f 100644 --- a/internal/filtering/rewritehttp.go +++ b/internal/filtering/rewritehttp.go @@ -3,10 +3,10 @@ package filtering import ( "encoding/json" "net/http" + "slices" "github.com/AdguardTeam/AdGuardHome/internal/aghhttp" "github.com/AdguardTeam/golibs/log" - "golang.org/x/exp/slices" ) // TODO(d.kolyshev): Use [rewrite.Item] instead. diff --git a/internal/filtering/rewrites.go b/internal/filtering/rewrites.go index 4a73cc37..ba759f6c 100644 --- a/internal/filtering/rewrites.go +++ b/internal/filtering/rewrites.go @@ -3,13 +3,13 @@ package filtering import ( "fmt" "net/netip" + "slices" "strings" "github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/log" "github.com/AdguardTeam/golibs/mathutil" "github.com/miekg/dns" - "golang.org/x/exp/slices" ) // Legacy DNS rewrites diff --git a/internal/filtering/rulelist/parser.go b/internal/filtering/rulelist/parser.go index 24d19b9c..0f48b245 100644 --- a/internal/filtering/rulelist/parser.go +++ b/internal/filtering/rulelist/parser.go @@ -6,9 +6,9 @@ import ( "fmt" "hash/crc32" "io" + "slices" "github.com/AdguardTeam/golibs/errors" - "golang.org/x/exp/slices" ) // Parser is a filtering-rule parser that collects data, such as the checksum diff --git a/internal/home/client.go b/internal/home/client.go index 64e9b677..742754c7 100644 --- a/internal/home/client.go +++ b/internal/home/client.go @@ -5,6 +5,7 @@ import ( "fmt" "net" "net/netip" + "slices" "strings" "time" @@ -16,7 +17,6 @@ import ( "github.com/AdguardTeam/golibs/log" "github.com/AdguardTeam/golibs/stringutil" "github.com/google/uuid" - "golang.org/x/exp/slices" ) // UID is the type for the unique IDs of persistent clients. diff --git a/internal/home/clients.go b/internal/home/clients.go index 63b9472f..3da8572f 100644 --- a/internal/home/clients.go +++ b/internal/home/clients.go @@ -4,6 +4,7 @@ import ( "fmt" "net" "net/netip" + "slices" "strings" "sync" "time" @@ -23,7 +24,6 @@ import ( "github.com/AdguardTeam/golibs/log" "github.com/AdguardTeam/golibs/stringutil" "golang.org/x/exp/maps" - "golang.org/x/exp/slices" ) // DHCP is an interface for accessing DHCP lease data the [clientsContainer] diff --git a/internal/home/home.go b/internal/home/home.go index 701e4820..e3230424 100644 --- a/internal/home/home.go +++ b/internal/home/home.go @@ -14,6 +14,7 @@ import ( "path" "path/filepath" "runtime" + "slices" "sync" "syscall" "time" @@ -40,7 +41,6 @@ import ( "github.com/AdguardTeam/golibs/netutil" "github.com/AdguardTeam/golibs/osutil" "github.com/AdguardTeam/golibs/stringutil" - "golang.org/x/exp/slices" ) // Global context diff --git a/internal/next/cmd/opt.go b/internal/next/cmd/opt.go index 5959af76..27d95b92 100644 --- a/internal/next/cmd/opt.go +++ b/internal/next/cmd/opt.go @@ -8,13 +8,13 @@ import ( "io/fs" "net/netip" "os" + "slices" "strings" "github.com/AdguardTeam/AdGuardHome/internal/configmigrate" "github.com/AdguardTeam/AdGuardHome/internal/next/configmgr" "github.com/AdguardTeam/AdGuardHome/internal/version" "github.com/AdguardTeam/golibs/log" - "golang.org/x/exp/slices" ) // options contains all command-line options for the AdGuardHome(.exe) binary. diff --git a/internal/next/configmgr/configmgr.go b/internal/next/configmgr/configmgr.go index a361c87d..84e4e61a 100644 --- a/internal/next/configmgr/configmgr.go +++ b/internal/next/configmgr/configmgr.go @@ -10,6 +10,7 @@ import ( "io/fs" "net/netip" "os" + "slices" "sync" "time" @@ -20,7 +21,6 @@ import ( "github.com/AdguardTeam/golibs/log" "github.com/AdguardTeam/golibs/timeutil" "github.com/google/renameio/v2/maybe" - "golang.org/x/exp/slices" "gopkg.in/yaml.v3" ) diff --git a/internal/querylog/json.go b/internal/querylog/json.go index 76a406eb..07a9d62b 100644 --- a/internal/querylog/json.go +++ b/internal/querylog/json.go @@ -1,6 +1,7 @@ package querylog import ( + "slices" "strconv" "strings" "time" @@ -9,7 +10,6 @@ import ( "github.com/AdguardTeam/AdGuardHome/internal/filtering" "github.com/AdguardTeam/golibs/log" "github.com/miekg/dns" - "golang.org/x/exp/slices" "golang.org/x/net/idna" ) diff --git a/internal/querylog/search.go b/internal/querylog/search.go index 1a992e20..b5e0c4ec 100644 --- a/internal/querylog/search.go +++ b/internal/querylog/search.go @@ -3,11 +3,11 @@ package querylog import ( "fmt" "io" + "slices" "time" "github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/log" - "golang.org/x/exp/slices" ) // client finds the client info, if any, by its ClientID and IP address, diff --git a/internal/rdns/rdns.go b/internal/rdns/rdns.go index 93898b3e..7130ccf3 100644 --- a/internal/rdns/rdns.go +++ b/internal/rdns/rdns.go @@ -7,7 +7,6 @@ import ( "github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/log" - "github.com/AdguardTeam/golibs/mathutil" "github.com/bluele/gcache" ) @@ -88,8 +87,7 @@ func (r *Default) Process(ip netip.Addr) (host string, changed bool) { log.Debug("rdns: resolving %q: %s", ip, err) } - // TODO(s.chzhen): Use built-in function max in Go 1.21. - ttl = mathutil.Max(ttl, r.cacheTTL) + ttl = max(ttl, r.cacheTTL) item := &cacheItem{ expiry: time.Now().Add(ttl), diff --git a/internal/stats/unit.go b/internal/stats/unit.go index 478d9f66..b49256ee 100644 --- a/internal/stats/unit.go +++ b/internal/stats/unit.go @@ -5,6 +5,7 @@ import ( "encoding/binary" "encoding/gob" "fmt" + "slices" "time" "github.com/AdguardTeam/AdGuardHome/internal/aghnet" @@ -12,7 +13,6 @@ import ( "github.com/AdguardTeam/golibs/log" "go.etcd.io/bbolt" "golang.org/x/exp/maps" - "golang.org/x/exp/slices" ) const ( diff --git a/internal/tools/go.mod b/internal/tools/go.mod index c6af873d..9dd018ed 100644 --- a/internal/tools/go.mod +++ b/internal/tools/go.mod @@ -1,17 +1,17 @@ module github.com/AdguardTeam/AdGuardHome/internal/tools -go 1.20 +go 1.21.7 require ( github.com/fzipp/gocyclo v0.6.0 github.com/golangci/misspell v0.4.1 github.com/gordonklaus/ineffassign v0.1.0 - github.com/kisielk/errcheck v1.6.3 + github.com/kisielk/errcheck v1.7.0 github.com/kyoh86/looppointer v0.2.1 github.com/securego/gosec/v2 v2.18.2 github.com/uudashr/gocognit v1.1.2 golang.org/x/tools v0.17.0 - golang.org/x/vuln v1.0.3 + golang.org/x/vuln v1.0.4 honnef.co/go/tools v0.4.6 mvdan.cc/gofumpt v0.6.0 mvdan.cc/unparam v0.0.0-20240104100049-c549a3470d14 @@ -26,9 +26,9 @@ require ( github.com/kyoh86/nolint v0.0.1 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect - golang.org/x/exp/typeparams v0.0.0-20240119083558-1b970713d09a // indirect - golang.org/x/mod v0.14.0 // indirect + golang.org/x/exp/typeparams v0.0.0-20240205201215-2c58cdc269a3 // indirect + golang.org/x/mod v0.15.0 // indirect golang.org/x/sync v0.6.0 // indirect - golang.org/x/sys v0.16.0 // indirect + golang.org/x/sys v0.17.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/internal/tools/go.sum b/internal/tools/go.sum index fbd0a6c9..450eea75 100644 --- a/internal/tools/go.sum +++ b/internal/tools/go.sum @@ -3,39 +3,53 @@ github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbi github.com/ccojocar/zxcvbn-go v1.0.2 h1:na/czXU8RrhXO4EZme6eQJLR4PzcGsahsBOAwU6I3Vg= github.com/ccojocar/zxcvbn-go v1.0.2/go.mod h1:g1qkXtUSvHP8lhHp5GrSmTz6uWALGRMQdw6Qnz/hi60= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo= github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= github.com/golangci/misspell v0.4.1 h1:+y73iSicVy2PqyX7kmUefHusENlrP9YwuHZHPLGQj/g= github.com/golangci/misspell v0.4.1/go.mod h1:9mAN1quEo3DlpbaIKKyEvRxK1pwqR9s/Sea1bJCtlNI= github.com/google/go-cmdtest v0.4.1-0.20220921163831-55ab3332a786 h1:rcv+Ippz6RAtvaGgKxc+8FQIpxHgsF+HBzPyYL2cyVU= +github.com/google/go-cmdtest v0.4.1-0.20220921163831-55ab3332a786/go.mod h1:apVn/GCasLZUVpAJ6oWAuyP7Ne7CEsQbTnc0plM3m+o= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 h1:yAJXTCF9TqKcTiHJAE8dj7HMvPfh66eeA2JYW7eFpSE= +github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gookit/color v1.5.4 h1:FZmqs7XOyGgCAxmWyPslpiok1k05wmY3SJTytgvYFs0= github.com/gookit/color v1.5.4/go.mod h1:pZJOeOS8DM43rXbp4AZo1n9zCU2qjpcRko0b6/QJi9w= github.com/gordonklaus/ineffassign v0.1.0 h1:y2Gd/9I7MdY1oEIt+n+rowjBNDcLQq3RsH5hwJd0f9s= github.com/gordonklaus/ineffassign v0.1.0/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= -github.com/kisielk/errcheck v1.6.3 h1:dEKh+GLHcWm2oN34nMvDzn1sqI0i0WxPvrgiJA5JuM8= -github.com/kisielk/errcheck v1.6.3/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw= +github.com/kisielk/errcheck v1.7.0 h1:+SbscKmWJ5mOK/bO1zS60F5I9WwZDWOfRsC4RwfwRV0= +github.com/kisielk/errcheck v1.7.0/go.mod h1:1kLL+jV4e+CFfueBmI1dSK2ADDyQnlrnrY/FqKluHJQ= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kyoh86/looppointer v0.2.1 h1:Jx9fnkBj/JrIryBLMTYNTj9rvc2SrPS98Dg0w7fxdJg= github.com/kyoh86/looppointer v0.2.1/go.mod h1:q358WcM8cMWU+5vzqukvaZtnJi1kw/MpRHQm3xvTrjw= github.com/kyoh86/nolint v0.0.1 h1:GjNxDEkVn2wAxKHtP7iNTrRxytRZ1wXxLV5j4XzGfRU= github.com/kyoh86/nolint v0.0.1/go.mod h1:1ZiZZ7qqrZ9dZegU96phwVcdQOMKIqRzFJL3ewq9gtI= github.com/onsi/ginkgo/v2 v2.13.0 h1:0jY9lJquiL8fcf3M4LAXN5aMlS/b2BV86HFFPCPMgE4= +github.com/onsi/ginkgo/v2 v2.13.0/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xlT/ETL/o= github.com/onsi/gomega v1.28.1 h1:MijcGUbfYuznzK/5R4CPNoUP/9Xvuo20sXfEm6XxoTA= +github.com/onsi/gomega v1.28.1/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/securego/gosec/v2 v2.18.2 h1:DkDt3wCiOtAHf1XkiXZBhQ6m6mK/b9T/wD257R3/c+I= github.com/securego/gosec/v2 v2.18.2/go.mod h1:xUuqSF6i0So56Y2wwohWAmB07EdBkUN6crbLlHwbyJs= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/uudashr/gocognit v1.1.2 h1:l6BAEKJqQH2UpKAPKdMfZf5kE4W/2xk8pfU1OVLvniI= github.com/uudashr/gocognit v1.1.2/go.mod h1:aAVdLURqcanke8h3vg35BC++eseDm66Z7KmchI5et4k= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= @@ -49,14 +63,13 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= -golang.org/x/exp/typeparams v0.0.0-20240119083558-1b970713d09a h1:8qmSSA8Gz/1kTrCe0nqR0R3Gb/NDhykzWw2q2mWZydM= -golang.org/x/exp/typeparams v0.0.0-20240119083558-1b970713d09a/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= +golang.org/x/exp/typeparams v0.0.0-20240205201215-2c58cdc269a3 h1:1hsZWSQgrpqFJbqlg8HNhQ2/U/7IQELXYWTjuCfHNcM= +golang.org/x/exp/typeparams v0.0.0-20240205201215-2c58cdc269a3/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= -golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8= +golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= @@ -64,6 +77,7 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -79,24 +93,24 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220702020025-31831981b65f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= -golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20201007032633-0806396f153e/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= -golang.org/x/vuln v1.0.3 h1:k2wzzWGpdntQzNsCOLTabCFk76oTe69BPwad5H52F4w= -golang.org/x/vuln v1.0.3/go.mod h1:NbJdUQhX8jY++FtuhrXs2Eyx0yePo9pF7nPlIjo9aaQ= +golang.org/x/vuln v1.0.4 h1:SP0mPeg2PmGCu03V+61EcQiOjmpri2XijexKdzv8Z1I= +golang.org/x/vuln v1.0.4/go.mod h1:NbJdUQhX8jY++FtuhrXs2Eyx0yePo9pF7nPlIjo9aaQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/internal/updater/check.go b/internal/updater/check.go index 71dc9582..12f4bece 100644 --- a/internal/updater/check.go +++ b/internal/updater/check.go @@ -5,6 +5,7 @@ import ( "fmt" "io" "net/http" + "slices" "time" "github.com/AdguardTeam/AdGuardHome/internal/aghalg" @@ -12,7 +13,6 @@ import ( "github.com/AdguardTeam/golibs/ioutil" "github.com/AdguardTeam/golibs/log" "golang.org/x/exp/maps" - "golang.org/x/exp/slices" ) // TODO(a.garipov): Make configurable. diff --git a/scripts/README.md b/scripts/README.md index b567cbd4..c756c382 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -87,6 +87,22 @@ Optional environment: * `VERSION`: release version. Will be set by `version.sh` if it is unset or if it has the default `Makefile` value of `v0.0.0`. +We're using Go's [forward compatibility mechanism][go-toolchain] for updating +the Go version. This means that if your `go` version is 1.21+ but is different +from the one required by AdGuard Home, the `go` tool will automatically download +the required version. + +If you want to use the version installed on your builder, run: + +```sh +go get go@$YOUR_VERSION +go mod tidy +``` + +and call `make` with `GOTOOLCHAIN=local`. + +[go-toolchain]: https://go.dev/blog/toolchain + ### `clean.sh`: Cleanup diff --git a/scripts/blocked-services/main.go b/scripts/blocked-services/main.go index 5e57860a..bb0b97cc 100644 --- a/scripts/blocked-services/main.go +++ b/scripts/blocked-services/main.go @@ -9,12 +9,12 @@ import ( "net/http" "net/url" "os" + "slices" "strings" "text/template" "time" "github.com/AdguardTeam/golibs/log" - "golang.org/x/exp/slices" ) func main() { diff --git a/scripts/hooks/pre-commit b/scripts/hooks/pre-commit index 42d1e413..b0cce8d6 100755 --- a/scripts/hooks/pre-commit +++ b/scripts/hooks/pre-commit @@ -6,7 +6,9 @@ set -e -f -u # Bump this number every time a significant change is made to this # script. # -# AdGuard-Project-Version: 1 +# AdGuard-Project-Version: 2 + +# TODO(a.garipov): Add pre-merge-commit. # Only show interactive prompts if there a terminal is attached to # stdout. While this technically doesn't guarantee that reading from diff --git a/scripts/make/go-lint.sh b/scripts/make/go-lint.sh index ce8718dc..3ce644ef 100644 --- a/scripts/make/go-lint.sh +++ b/scripts/make/go-lint.sh @@ -30,33 +30,6 @@ set -f -u -# Warnings - -go_version="$( "${GO:-go}" version )" -readonly go_version - -go_min_version='go1.20.12' -go_version_msg=" -warning: your go version (${go_version}) is different from the recommended minimal one (${go_min_version}). -if you have the version installed, please set the GO environment variable. -for example: - - export GO='${go_min_version}' -" -readonly go_min_version go_version_msg - -case "$go_version" -in -('go version'*"$go_min_version"*) - # Go on. - ;; -(*) - echo "$go_version_msg" 1>&2 - ;; -esac - - - # Simple analyzers # blocklist_imports is a simple check against unwanted packages. The following @@ -74,18 +47,22 @@ esac # # See https://github.com/golang/go/issues/45200. # -# * Package sort is replaced by golang.org/x/exp/slices. +# * Package sort is replaced by package slices. # # * Package unsafe is… unsafe. # +# * Package golang.org/x/exp/slices has been moved into stdlib. +# # * Package golang.org/x/net/context has been moved into stdlib. # # Currently, the only standard exception are files generated from protobuf # schemas, which use package reflect. If your project needs more exceptions, # add and document them. # -# TODO(a.garipov): Add deprecated packages golang.org/x/exp/maps and -# golang.org/x/exp/slices once all projects switch to Go 1.21. +# TODO(a.garipov): Add goilbs/log. +# +# TODO(a.garipov): Add deprecated package golang.org/x/exp/maps once all +# projects switch to Go 1.22. blocklist_imports() { git grep\ -e '[[:space:]]"errors"$'\ @@ -94,6 +71,7 @@ blocklist_imports() { -e '[[:space:]]"reflect"$'\ -e '[[:space:]]"sort"$'\ -e '[[:space:]]"unsafe"$'\ + -e '[[:space:]]"golang.org/x/exp/slices"$'\ -e '[[:space:]]"golang.org/x/net/context"$'\ -n\ -- '*.go'\ @@ -124,12 +102,10 @@ underscores() { underscore_files="$( git ls-files '*_*.go'\ | grep -F\ - -e '_big.go'\ -e '_bsd.go'\ -e '_darwin.go'\ -e '_freebsd.go'\ -e '_linux.go'\ - -e '_little.go'\ -e '_next.go'\ -e '_openbsd.go'\ -e '_others.go'\ diff --git a/scripts/make/go-test.sh b/scripts/make/go-test.sh index 03d2c100..3727587e 100644 --- a/scripts/make/go-test.sh +++ b/scripts/make/go-test.sh @@ -51,9 +51,9 @@ readonly count_flags cover_flags shuffle_flags timeout_flags "$go" test\ "$count_flags"\ "$cover_flags"\ - "$shuffle_flags"\ "$race_flags"\ + "$shuffle_flags"\ "$timeout_flags"\ - "$x_flags"\ "$v_flags"\ + "$x_flags"\ ./... diff --git a/scripts/make/go-tools.sh b/scripts/make/go-tools.sh index fdb70f86..9d705103 100644 --- a/scripts/make/go-tools.sh +++ b/scripts/make/go-tools.sh @@ -30,8 +30,6 @@ set -e -f -u go="${GO:-go}" readonly go -# TODO(a.garipov): Add goconst? - # Remove only the actual binaries in the bin/ directory, as developers may add # their own scripts there. Most commonly, a script named “go” for tools that # call the go binary and need a particular version. diff --git a/scripts/make/go-upd-tools.sh b/scripts/make/go-upd-tools.sh new file mode 100644 index 00000000..7486661d --- /dev/null +++ b/scripts/make/go-upd-tools.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +# This comment is used to simplify checking local copies of the script. Bump +# this number every time a significant change is made to this script. +# +# AdGuard-Project-Version: 1 + +verbose="${VERBOSE:-0}" +readonly verbose + +if [ "$verbose" -gt '1' ] +then + env + set -x + x_flags='-x=1' +elif [ "$verbose" -gt '0' ] +then + set -x + x_flags='-x=0' +else + set +x + x_flags='-x=0' +fi +readonly x_flags + +set -e -f -u + +go="${GO:-go}" +readonly go + +cd ./internal/tools/ +"$go" get -u +"$go" mod tidy diff --git a/scripts/translations/download.go b/scripts/translations/download.go index 123cf350..d83f0bac 100644 --- a/scripts/translations/download.go +++ b/scripts/translations/download.go @@ -8,6 +8,7 @@ import ( "net/url" "os" "path/filepath" + "slices" "strings" "sync" "time" @@ -15,7 +16,6 @@ import ( "github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/ioutil" "github.com/AdguardTeam/golibs/log" - "golang.org/x/exp/slices" ) // download and save all translations. diff --git a/scripts/translations/main.go b/scripts/translations/main.go index cff6d03c..e03dcb10 100644 --- a/scripts/translations/main.go +++ b/scripts/translations/main.go @@ -11,6 +11,7 @@ import ( "os" "os/exec" "path/filepath" + "slices" "strings" "time" @@ -18,7 +19,6 @@ import ( "github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/log" "golang.org/x/exp/maps" - "golang.org/x/exp/slices" ) const (