From 94812dbc53ff102af5977986d575a946d0dfdaf2 Mon Sep 17 00:00:00 2001 From: "github-action[bot]" Date: Tue, 9 Apr 2024 20:25:19 +0200 Subject: [PATCH] Update On Tue Apr 9 20:25:19 CEST 2024 --- .github/update.log | 1 + brook/cli/brook/main.go | 57 ++-- brook/docs/images/user-system.png | Bin 264917 -> 292730 bytes brook/go.mod | 9 +- brook/go.sum | 20 +- brook/ping/ping.json | 8 +- brook/plugins/dialwithdns/readme.md | 2 +- brook/plugins/logger/logger.go | 25 +- brook/plugins/logger/logger_unix.go | 21 ++ brook/plugins/logger/logger_windows.go | 4 + clash-meta/adapter/outbound/dns.go | 6 +- clash-meta/component/resolver/relay.go | 12 +- clash-meta/go.mod | 2 +- clash-meta/go.sum | 4 +- clash-nyanpasu/backend/Cargo.lock | 8 +- clash-nyanpasu/manifest/version.json | 4 +- clash-nyanpasu/package.json | 10 +- clash-nyanpasu/pnpm-lock.yaml | 321 +++++++++--------- .../src/components/layout/layout-traffic.tsx | 24 +- .../src/components/proxy/proxy-groups.tsx | 9 +- .../src/components/proxy/proxy-item-mini.tsx | 30 +- .../src/components/proxy/proxy-item.tsx | 14 +- .../src/components/proxy/proxy-render.tsx | 4 +- clash-verge-rev/src/hooks/use-websocket.ts | 15 +- clash-verge-rev/src/services/api.ts | 26 +- clash-verge-rev/src/services/types.d.ts | 1 + .../base-files/files/lib/functions/system.sh | 1 + .../Makefile | 129 +++---- .../atf-version.mk | 2 +- .../pack-firmware.sh | 68 ++++ lede/package/boot/uboot-rockchip/Makefile | 50 +-- lede/tools/automake/Makefile | 27 +- .../automake/patches/000-relocatable.patch | 80 +---- ...clocal-skip-not-existing-directories.patch | 2 +- .../patches/101-do-not-require-files.patch | 29 ++ .../200-other-V-values-for-verbosity.patch | 59 ++++ mihomo/adapter/outbound/dns.go | 6 +- mihomo/component/resolver/relay.go | 12 +- mihomo/go.mod | 2 +- mihomo/go.sum | 4 +- openwrt-packages/alist/Makefile | 10 +- openwrt-packages/luci-app-ddns-go/Makefile | 4 +- .../luasrc/model/cbi/ddns-go.lua | 8 +- .../luci-app-ddns-go/po/zh-cn/ddns-go.po | 2 + .../luci-app-ddns-go/po/zh_Hans/ddns-go.po | 2 + .../model/cbi/passwall/client/rule_list.lua | 4 +- .../cbi/passwall/client/type/hysteria2.lua | 5 +- .../cbi/passwall2/client/type/hysteria2.lua | 4 +- .../root/usr/share/passwall2/nftables.sh | 2 +- .../Instructions/InstEmitSimdArithmetic.cs | 12 +- .../src/ARMeilleure/Translation/PTC/Ptc.cs | 2 +- .../Image/TextureBindingsArrayCache.cs | 22 +- .../Image/TextureCompatibility.cs | 4 + .../Sdk/Audio/Detail/AudioRenderer.cs | 3 + .../model/cbi/passwall/client/rule_list.lua | 4 +- .../cbi/passwall/client/type/hysteria2.lua | 5 +- .../cbi/passwall2/client/type/hysteria2.lua | 4 +- .../root/usr/share/passwall2/nftables.sh | 2 +- small/sing-box/Makefile | 4 +- xray-core/go.mod | 2 +- xray-core/go.sum | 4 +- yass/CMakeLists.txt | 23 +- yass/debian/rules | 1 + yass/openwrt/files/yass_cli.init | 4 +- yass/openwrt/files/yass_redir.init | 4 +- yass/src/cli/cli.cpp | 10 +- yass/src/config/config.cpp | 46 +++ yass/src/config/config.hpp | 4 + yass/src/core/logging.cpp | 18 +- yass/src/gtk/yass.cpp | 10 +- yass/src/gtk4/yass.cpp | 10 +- yass/src/ios/main.mm | 10 +- yass/src/mac/main.mm | 10 +- yass/src/net/dot_request.cpp | 2 +- yass/src/server/server.cpp | 10 +- yass/src/ss_benchmark.cpp | 66 ++-- yass/src/ss_test.cpp | 66 ++-- yass/src/win32/yass.cpp | 10 +- yass/yass-redir.old.service | 14 + yass/yass-redir.service | 5 +- yass/yass-server.old.service | 20 ++ yass/yass-server.service | 6 +- yass/yass.old.service | 14 + yass/yass.service | 5 +- yass/yass.spec.in | 8 + yt-dlp/.github/workflows/build.yml | 2 +- yt-dlp/.github/workflows/quick-test.yml | 2 + yt-dlp/CONTRIBUTORS | 10 + yt-dlp/Changelog.md | 95 ++++++ yt-dlp/Makefile | 7 +- yt-dlp/README.md | 5 +- yt-dlp/devscripts/changelog_override.json | 17 + yt-dlp/devscripts/prepare_manpage.py | 27 +- yt-dlp/supportedsites.md | 13 +- yt-dlp/test/test_traversal.py | 44 +-- yt-dlp/test/test_utils.py | 4 + yt-dlp/yt_dlp/YoutubeDL.py | 10 +- yt-dlp/yt_dlp/__init__.py | 1 + yt-dlp/yt_dlp/compat/__init__.py | 9 +- yt-dlp/yt_dlp/downloader/common.py | 11 + yt-dlp/yt_dlp/networking/_helper.py | 4 + yt-dlp/yt_dlp/options.py | 4 + yt-dlp/yt_dlp/update.py | 2 +- yt-dlp/yt_dlp/utils/_utils.py | 50 ++- yt-dlp/yt_dlp/version.py | 6 +- 105 files changed, 1243 insertions(+), 673 deletions(-) create mode 100644 brook/plugins/logger/logger_unix.go create mode 100644 brook/plugins/logger/logger_windows.go create mode 100755 lede/package/boot/arm-trusted-firmware-rockchip-vendor/pack-firmware.sh create mode 100644 lede/tools/automake/patches/101-do-not-require-files.patch create mode 100644 lede/tools/automake/patches/200-other-V-values-for-verbosity.patch create mode 100644 yass/yass-redir.old.service create mode 100644 yass/yass-server.old.service create mode 100644 yass/yass.old.service diff --git a/.github/update.log b/.github/update.log index f0a7c05da9..01a6521729 100644 --- a/.github/update.log +++ b/.github/update.log @@ -611,3 +611,4 @@ Update On Fri Apr 5 20:26:37 CEST 2024 Update On Sat Apr 6 20:26:05 CEST 2024 Update On Sun Apr 7 20:25:26 CEST 2024 Update On Mon Apr 8 20:30:51 CEST 2024 +Update On Tue Apr 9 20:25:08 CEST 2024 diff --git a/brook/cli/brook/main.go b/brook/cli/brook/main.go index 18f6891684..20ab5b800f 100644 --- a/brook/cli/brook/main.go +++ b/brook/cli/brook/main.go @@ -24,6 +24,7 @@ import ( "os/signal" "path/filepath" "runtime" + "strconv" "strings" "syscall" "time" @@ -69,7 +70,7 @@ func main() { }, &cli.StringFlag{ Name: "log", - Usage: "Enable log. A valid value is file path or 'console'. If you want to debug SOCKS5 lib, set env SOCKS5_DEBUG=true", + Usage: "Enable log. A valid value is file path or 'console'. Send SIGUSR1 to me to reset the log file on unix system. If you want to debug SOCKS5 lib, set env SOCKS5_DEBUG=true", }, &cli.StringSliceFlag{ Name: "tag", @@ -155,10 +156,22 @@ func main() { Name: "blockListUpdateInterval", Usage: "Update list --blockDomainList,--blockCIDR4List,--blockCIDR6List interval, second. default 0, only read one time on start", }, + &cli.StringFlag{ + Name: "pid", + Usage: "A file path used to store pid", + }, } app.Before = func(c *cli.Context) error { brook.ClientHKDFInfo = []byte(c.String("clientHKDFInfo")) brook.ServerHKDFInfo = []byte(c.String("serverHKDFInfo")) + if c.String("pid") != "" { + if !filepath.IsAbs(c.String("pid")) { + return errors.New("--pid must be with absolute path") + } + if err := os.WriteFile(c.String("pid"), []byte(strconv.Itoa(os.Getpid())), 0744); err != nil { + return err + } + } if c.String("pprof") != "" { p, err := pprof.NewPprof(c.String("pprof")) if err != nil { @@ -283,7 +296,7 @@ func main() { app.Commands = []*cli.Command{ &cli.Command{ Name: "server", - Usage: "Run as brook server, both TCP and UDP", + Usage: "Start a brook server that supports tcp and udp", BashComplete: func(c *cli.Context) { l := c.Command.VisibleFlags() for _, v := range l { @@ -389,7 +402,7 @@ func main() { }, &cli.Command{ Name: "client", - Usage: "Run as brook client, both TCP and UDP, to start a socks5 proxy, [src <-> socks5 <-> $ brook client <-> $ brook server <-> dst]", + Usage: "Start a brook client that supports tcp and udp. It can open a socks5 proxy, [src <-> socks5 <-> $ brook client <-> $ brook server <-> dst]", BashComplete: func(c *cli.Context) { l := c.Command.VisibleFlags() for _, v := range l { @@ -514,7 +527,7 @@ func main() { }, &cli.Command{ Name: "wsserver", - Usage: "Run as brook wsserver, both TCP and UDP, it will start a standard http server and websocket server", + Usage: "Start a brook wsserver that supports tcp and udp. It opens a standard http server and a websocket server", BashComplete: func(c *cli.Context) { l := c.Command.VisibleFlags() for _, v := range l { @@ -634,7 +647,7 @@ func main() { }, &cli.Command{ Name: "wsclient", - Usage: "Run as brook wsclient, both TCP and UDP, to start a socks5 proxy, [src <-> socks5 <-> $ brook wsclient <-> $ brook wsserver <-> dst]", + Usage: "Start a brook wsclient that supports tcp and udp. It can open a socks5 proxy, [src <-> socks5 <-> $ brook wsclient <-> $ brook wsserver <-> dst]", BashComplete: func(c *cli.Context) { l := c.Command.VisibleFlags() for _, v := range l { @@ -759,7 +772,7 @@ func main() { }, &cli.Command{ Name: "wssserver", - Usage: "Run as brook wssserver, both TCP and UDP, it will start a standard https server and websocket server", + Usage: "Start a brook wssserver that supports tcp and udp. It opens a standard https server and a websocket server", BashComplete: func(c *cli.Context) { l := c.Command.VisibleFlags() for _, v := range l { @@ -905,7 +918,7 @@ func main() { }, &cli.Command{ Name: "wssclient", - Usage: "Run as brook wssclient, both TCP and UDP, to start a socks5 proxy, [src <-> socks5 <-> $ brook wssclient <-> $ brook wssserver <-> dst]", + Usage: "Start a brook wssclient that supports tcp and udp. It can open a socks5 proxy, [src <-> socks5 <-> $ brook wssclient <-> $ brook wssserver <-> dst]", BashComplete: func(c *cli.Context) { l := c.Command.VisibleFlags() for _, v := range l { @@ -1030,7 +1043,7 @@ func main() { }, &cli.Command{ Name: "quicserver", - Usage: "Run as brook quicserver, both TCP and UDP", + Usage: "Start a brook quicserver that supports tcp and udp.", BashComplete: func(c *cli.Context) { l := c.Command.VisibleFlags() for _, v := range l { @@ -1171,7 +1184,7 @@ func main() { }, &cli.Command{ Name: "quicclient", - Usage: "Run as brook quicclient, both TCP and UDP, to start a socks5 proxy, [src <-> socks5 <-> $ brook quicclient <-> $ brook quicserver <-> dst]. (Note that the global dial parameter is ignored now)", + Usage: "Start a brook quicclient that supports tcp and udp. It can open a socks5 proxy, [src <-> socks5 <-> $ brook quicclient <-> $ brook quicserver <-> dst]. (The global-dial-parameter is ignored)", BashComplete: func(c *cli.Context) { l := c.Command.VisibleFlags() for _, v := range l { @@ -1296,7 +1309,7 @@ func main() { }, &cli.Command{ Name: "relayoverbrook", - Usage: "Run as relay over brook, both TCP and UDP, this means access [from address] is equal to [to address], [src <-> from address <-> $ brook server/wsserver/wssserver/quicserver <-> to address]", + Usage: "Relay network traffic over brook, which supports TCP and UDP. Accessing [from address] is equal to accessing [to address], [src <-> from address <-> $ brook server/wsserver/wssserver/quicserver <-> to address]", BashComplete: func(c *cli.Context) { l := c.Command.VisibleFlags() for _, v := range l { @@ -1400,7 +1413,7 @@ func main() { }, &cli.Command{ Name: "dnsserveroverbrook", - Usage: "Run as dns server over brook, both TCP and UDP, [src <-> $ brook dnserversoverbrook <-> $ brook server/wsserver/wssserver/quicserver <-> dns] or [src <-> $ brook dnsserveroverbrook <-> dnsForBypass]", + Usage: "Run a dns server over brook, which supports TCP and UDP, [src <-> $ brook dnserversoverbrook <-> $ brook server/wsserver/wssserver/quicserver <-> dns] or [src <-> $ brook dnsserveroverbrook <-> dnsForBypass]", BashComplete: func(c *cli.Context) { l := c.Command.VisibleFlags() for _, v := range l { @@ -1539,7 +1552,7 @@ func main() { }, &cli.Command{ Name: "link", - Usage: "Generate brook link", + Usage: "Generate a brook link", BashComplete: func(c *cli.Context) { l := c.Command.VisibleFlags() for _, v := range l { @@ -1680,7 +1693,7 @@ func main() { }, &cli.Command{ Name: "connect", - Usage: "Run as client and connect to brook link, both TCP and UDP, to start a socks5 proxy, [src <-> socks5 <-> $ brook connect <-> $ brook server/wsserver/wssserver/quicserver <-> dst]", + Usage: "Run a client and connect with a brook link, which supports TCP and UDP. It can start a socks5 proxy, [src <-> socks5 <-> $ brook connect <-> $ brook server/wsserver/wssserver/quicserver <-> dst]", BashComplete: func(c *cli.Context) { l := c.Command.VisibleFlags() for _, v := range l { @@ -1787,7 +1800,7 @@ func main() { }, &cli.Command{ Name: "relay", - Usage: "Run as standalone relay, both TCP and UDP, this means access [from address] is equal to access [to address], [src <-> from address <-> to address]", + Usage: "Run a standalone relay, which supports TCP and UDP. Accessing [from address] is equal to accessing [to address], [src <-> from address <-> to address]", BashComplete: func(c *cli.Context) { l := c.Command.VisibleFlags() for _, v := range l { @@ -1845,7 +1858,7 @@ func main() { }, &cli.Command{ Name: "dnsserver", - Usage: "Run as standalone dns server", + Usage: "Run a standalone dns server", BashComplete: func(c *cli.Context) { l := c.Command.VisibleFlags() for _, v := range l { @@ -2002,7 +2015,7 @@ func main() { }, &cli.Command{ Name: "dohserver", - Usage: "Run as standalone doh server", + Usage: "Run a standalone doh server", BashComplete: func(c *cli.Context) { l := c.Command.VisibleFlags() for _, v := range l { @@ -2206,7 +2219,7 @@ func main() { }, &cli.Command{ Name: "dhcpserver", - Usage: "Run as standalone dhcp server. Note that you need to stop other dhcp servers, if there are.", + Usage: "Run a standalone dhcp server. Other running dhcp servers need to be stopped.", BashComplete: func(c *cli.Context) { l := c.Command.VisibleFlags() for _, v := range l { @@ -2281,7 +2294,7 @@ func main() { }, &cli.Command{ Name: "socks5", - Usage: "Run as standalone standard socks5 server, both TCP and UDP", + Usage: "Run a standalone standard socks5 server, which supports TCP and UDP", BashComplete: func(c *cli.Context) { l := c.Command.VisibleFlags() for _, v := range l { @@ -2365,7 +2378,7 @@ func main() { }, &cli.Command{ Name: "socks5tohttp", - Usage: "Convert socks5 to http proxy, [src <-> listen address(http proxy) <-> socks5 address <-> dst]", + Usage: "Convert a socks5 proxy to a http proxy, [src <-> listen address(http proxy) <-> socks5 address <-> dst]", BashComplete: func(c *cli.Context) { l := c.Command.VisibleFlags() for _, v := range l { @@ -2426,7 +2439,7 @@ func main() { }, &cli.Command{ Name: "pac", - Usage: "Run as PAC server or save PAC to file", + Usage: "Run a PAC server or save PAC to a file", BashComplete: func(c *cli.Context) { l := c.Command.VisibleFlags() for _, v := range l { @@ -2488,7 +2501,7 @@ func main() { }, &cli.Command{ Name: "testsocks5", - Usage: "Test UDP and TCP of socks5 server", + Usage: "Test a socks5 server to see if it works properly", BashComplete: func(c *cli.Context) { l := c.Command.VisibleFlags() for _, v := range l { @@ -2545,7 +2558,7 @@ func main() { }, &cli.Command{ Name: "testbrook", - Usage: "Test UDP and TCP of brook server/wsserver/wssserver/quicserver. (Note that the global dial parameter is ignored now)", + Usage: "Test UDP and TCP of a brook server/wsserver/wssserver/quicserver connection. (The global-dial-parameter is ignored)", BashComplete: func(c *cli.Context) { l := c.Command.VisibleFlags() for _, v := range l { diff --git a/brook/docs/images/user-system.png b/brook/docs/images/user-system.png index b43112cc07d4666bab64a4350abe9bc7b46ff035..cda5e2f85e04781eae896717294e86977cb5edb7 100644 GIT binary patch literal 292730 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 z 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 literal 264917 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�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±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 diff --git a/brook/go.mod b/brook/go.mod index c86e7a2146..e48d49c7fe 100644 --- a/brook/go.mod +++ b/brook/go.mod @@ -10,7 +10,7 @@ require ( github.com/patrickmn/go-cache v2.1.0+incompatible github.com/phuslu/iploc v1.0.20231031 github.com/prometheus/client_golang v1.17.0 - github.com/quic-go/quic-go v0.40.1 + github.com/quic-go/quic-go v0.42.0 github.com/refraction-networking/utls v1.5.4 github.com/tdewolff/minify v2.3.6+incompatible github.com/txthinking/runnergroup v0.0.0-20230325130830-408dc5853f86 @@ -20,7 +20,6 @@ require ( github.com/urfave/negroni v1.0.0 golang.org/x/crypto v0.17.0 golang.org/x/net v0.18.0 - golang.org/x/sys v0.15.0 ) require ( @@ -39,15 +38,15 @@ require ( github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 // indirect github.com/prometheus/common v0.44.0 // indirect github.com/prometheus/procfs v0.11.1 // indirect - github.com/quic-go/qtls-go1-20 v0.4.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/tdewolff/parse v2.3.4+incompatible // indirect github.com/tdewolff/test v1.0.10 // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect - go.uber.org/mock v0.3.0 // indirect + go.uber.org/mock v0.4.0 // indirect golang.org/x/exp v0.0.0-20221205204356-47842c84f3db // indirect golang.org/x/mod v0.12.0 // indirect + golang.org/x/sys v0.15.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.13.0 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) diff --git a/brook/go.sum b/brook/go.sum index cd4f6251e2..f929979fd6 100644 --- a/brook/go.sum +++ b/brook/go.sum @@ -61,10 +61,8 @@ github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdO github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= -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.42.0 h1:uSfdap0eveIl8KXnipv9K7nlwZ5IqLlYOpJ58u5utpM= +github.com/quic-go/quic-go v0.42.0/go.mod h1:132kz4kL3F9vxhW3CtQJLDVwcFe5wdWeJXXijhsO57M= github.com/refraction-networking/utls v1.5.4 h1:9k6EO2b8TaOGsQ7Pl7p9w6PUhx18/ZCeT0WNTZ7Uw4o= github.com/refraction-networking/utls v1.5.4/go.mod h1:SPuDbBmgLGp8s+HLNc83FuavwZCFoMmExj+ltUHiHUw= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= @@ -83,10 +81,6 @@ github.com/txthinking/runnergroup v0.0.0-20230325130830-408dc5853f86 h1:EX/lPhI7 github.com/txthinking/runnergroup v0.0.0-20230325130830-408dc5853f86/go.mod h1:cldYm15/XHcGt7ndItnEWHwFZo7dinU+2QoyjfErhsI= github.com/txthinking/socks5 v0.0.0-20230325130024-4230056ae301 h1:d/Wr/Vl/wiJHc3AHYbYs5I3PucJvRuw3SvbmlIRf+oM= github.com/txthinking/socks5 v0.0.0-20230325130024-4230056ae301/go.mod h1:ntmMHL/xPq1WLeKiw8p/eRATaae6PiVRNipHFJxI8PM= -github.com/txthinking/x v0.0.0-20220929041811-1b4d914e9133 h1:fUw8+3ruX0uv2gAko4D0v6IpLmSI2soOkGl6YYmiBrM= -github.com/txthinking/x v0.0.0-20220929041811-1b4d914e9133/go.mod h1:WgqbSEmUYSjEV3B1qmee/PpP2NYEz4bL9/+mF1ma+s4= -github.com/txthinking/x v0.0.0-20231124080419-f3d4547df8ea h1:pD9ben9+HFrcRTaCApFXrn0YzVndrWHw4zSdb+ljeLg= -github.com/txthinking/x v0.0.0-20231124080419-f3d4547df8ea/go.mod h1:WgqbSEmUYSjEV3B1qmee/PpP2NYEz4bL9/+mF1ma+s4= github.com/txthinking/x v0.0.0-20240301021728-6f68aba84c87 h1:ukVX+9jDc97QsREpOZbs5sXbxaChFOBz8b/6dlwnRzQ= github.com/txthinking/x v0.0.0-20240301021728-6f68aba84c87/go.mod h1:/hZBnjRcqz02ybkpqkkCx6LL7UpRTXnkE2pfZDh5t6g= github.com/urfave/cli/v2 v2.25.7 h1:VAzn5oq403l5pHjc4OhD54+XGO9cdKVL/7lDjF+iKUs= @@ -96,8 +90,8 @@ github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKn github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.uber.org/mock v0.3.0 h1:3mUxI1No2/60yUYax92Pt8eNOEecx2D3lcXZh2NEZJo= -go.uber.org/mock v0.3.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc= +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-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= @@ -138,6 +132,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= 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.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= @@ -148,8 +144,8 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/brook/ping/ping.json b/brook/ping/ping.json index 4ca8310cc3..f30e70b36c 100644 --- a/brook/ping/ping.json +++ b/brook/ping/ping.json @@ -1,7 +1,7 @@ { "version": "20240404", - "text": "Tips: Brook Troubleshooting Steps", - "link": "https://www.txthinking.com/talks/articles/brook-troubleshooting-steps-en.article", - "text_zh": "小提示: Brook 问题排查步骤", - "link_zh": "https://www.txthinking.com/talks/articles/brook-troubleshooting-steps.article" + "text": "Get $10-$50 AI balance", + "link": "https://forms.gle/kjR5MccgzvGFGPp57", + "text_zh": "Get $10-$50 AI balance", + "link_zh": "https://forms.gle/kjR5MccgzvGFGPp57" } diff --git a/brook/plugins/dialwithdns/readme.md b/brook/plugins/dialwithdns/readme.md index 2ce6a393c4..6b1a05fd60 100644 --- a/brook/plugins/dialwithdns/readme.md +++ b/brook/plugins/dialwithdns/readme.md @@ -1 +1 @@ -`dialwithdns` plugin reslove domain with custom dns or doh, instead of local dns +`dialwithdns` plugin resolve domain with custom dns or doh, instead of local dns diff --git a/brook/plugins/logger/logger.go b/brook/plugins/logger/logger.go index cd0f1a6240..1e05256c50 100644 --- a/brook/plugins/logger/logger.go +++ b/brook/plugins/logger/logger.go @@ -31,6 +31,7 @@ import ( type Logger struct { F *os.File + File string Lock *sync.Mutex Tags map[string]string } @@ -43,11 +44,11 @@ func NewLogger(tags map[string]string, file string) (*Logger, error) { if err != nil { return nil, err } - return &Logger{F: f, Tags: tags, Lock: &sync.Mutex{}}, nil + return &Logger{F: f, File: file, Tags: tags, Lock: &sync.Mutex{}}, nil } func (p *Logger) Close() error { - if p.F == nil { + if p.Lock == nil { return nil } p.Lock.Lock() @@ -55,7 +56,25 @@ func (p *Logger) Close() error { return p.F.Close() } +func (p *Logger) Reset() error { + if p.Lock == nil { + return nil + } + p.Lock.Lock() + defer p.Lock.Unlock() + err := p.F.Close() + if err != nil { + return err + } + p.F, err = os.OpenFile(p.File, os.O_TRUNC|os.O_CREATE|os.O_WRONLY, 0644) + if err != nil { + return err + } + return nil +} + func (p *Logger) TouchBrook() { + go p.WatchReset() brook.Log = func(err error) { if _, ok := err.(brook.Error); !ok { err = brook.Error{"error": err.Error()} @@ -64,7 +83,7 @@ func (p *Logger) TouchBrook() { for k, v := range p.Tags { err.(brook.Error)[k] = v } - if p.F == nil { + if p.Lock == nil { fmt.Println(err) return } diff --git a/brook/plugins/logger/logger_unix.go b/brook/plugins/logger/logger_unix.go new file mode 100644 index 0000000000..8cfe1f406a --- /dev/null +++ b/brook/plugins/logger/logger_unix.go @@ -0,0 +1,21 @@ +//go:build !windows + +package logger + +import ( + "log" + "os" + "os/signal" + "syscall" +) + +func (p *Logger) WatchReset() { + for { + sigs := make(chan os.Signal, 1) + signal.Notify(sigs, syscall.SIGUSR1) + <-sigs + if err := p.Reset(); err != nil { + log.Println(err) + } + } +} diff --git a/brook/plugins/logger/logger_windows.go b/brook/plugins/logger/logger_windows.go new file mode 100644 index 0000000000..38a355e0ba --- /dev/null +++ b/brook/plugins/logger/logger_windows.go @@ -0,0 +1,4 @@ +package logger + +func (p *Logger) WatchReset() { +} diff --git a/clash-meta/adapter/outbound/dns.go b/clash-meta/adapter/outbound/dns.go index 21a5b2b77f..8686b288e2 100644 --- a/clash-meta/adapter/outbound/dns.go +++ b/clash-meta/adapter/outbound/dns.go @@ -89,14 +89,14 @@ func (d *dnsPacketConn) WriteTo(p []byte, addr net.Addr) (n int, err error) { return len(p), nil } - ctx, cancel := context.WithTimeout(d.ctx, resolver.DefaultDnsRelayTimeout) - defer cancel() - buf := pool.Get(resolver.SafeDnsPacketSize) put := func() { _ = pool.Put(buf) } copy(buf, p) // avoid p be changed after WriteTo returned go func() { // don't block the WriteTo function + ctx, cancel := context.WithTimeout(d.ctx, resolver.DefaultDnsRelayTimeout) + defer cancel() + buf, err = resolver.RelayDnsPacket(ctx, buf[:len(p)], buf) if err != nil { put() diff --git a/clash-meta/component/resolver/relay.go b/clash-meta/component/resolver/relay.go index 27b25af1d9..818b4152a3 100644 --- a/clash-meta/component/resolver/relay.go +++ b/clash-meta/component/resolver/relay.go @@ -46,7 +46,7 @@ func RelayDnsConn(ctx context.Context, conn net.Conn, readTimeout time.Duration) ctx, cancel := context.WithTimeout(ctx, DefaultDnsRelayTimeout) defer cancel() inData := buff[:n] - msg, err := RelayDnsPacket(ctx, inData, buff) + msg, err := relayDnsPacket(ctx, inData, buff, 0) if err != nil { return err } @@ -69,7 +69,7 @@ func RelayDnsConn(ctx context.Context, conn net.Conn, readTimeout time.Duration) return nil } -func RelayDnsPacket(ctx context.Context, payload []byte, target []byte) ([]byte, error) { +func relayDnsPacket(ctx context.Context, payload []byte, target []byte, maxSize int) ([]byte, error) { msg := &D.Msg{} if err := msg.Unpack(payload); err != nil { return nil, err @@ -83,6 +83,14 @@ func RelayDnsPacket(ctx context.Context, payload []byte, target []byte) ([]byte, } r.SetRcode(msg, r.Rcode) + if maxSize > 0 { + r.Truncate(maxSize) + } r.Compress = true return r.PackBuffer(target) } + +// RelayDnsPacket will truncate udp message up to SafeDnsPacketSize +func RelayDnsPacket(ctx context.Context, payload []byte, target []byte) ([]byte, error) { + return relayDnsPacket(ctx, payload, target, SafeDnsPacketSize) +} diff --git a/clash-meta/go.mod b/clash-meta/go.mod index 8cdb861202..e3800d645b 100644 --- a/clash-meta/go.mod +++ b/clash-meta/go.mod @@ -20,7 +20,7 @@ require ( github.com/mdlayher/netlink v1.7.2 github.com/metacubex/gopacket v1.1.20-0.20230608035415-7e2f98a3e759 github.com/metacubex/quic-go v0.42.1-0.20240319071510-a251e5c66a5c - github.com/metacubex/sing-quic v0.0.0-20240310154810-47bca850fc01 + github.com/metacubex/sing-quic v0.0.0-20240409064816-c16ac6b1f4b4 github.com/metacubex/sing-shadowsocks v0.2.6 github.com/metacubex/sing-shadowsocks2 v0.2.0 github.com/metacubex/sing-tun v0.2.6 diff --git a/clash-meta/go.sum b/clash-meta/go.sum index b1ca415e6a..05d4683c24 100644 --- a/clash-meta/go.sum +++ b/clash-meta/go.sum @@ -108,8 +108,8 @@ github.com/metacubex/quic-go v0.42.1-0.20240319071510-a251e5c66a5c h1:AhaPKvVqF3 github.com/metacubex/quic-go v0.42.1-0.20240319071510-a251e5c66a5c/go.mod h1:iGx3Y1zynls/FjFgykLSqDcM81U0IKePRTXEz5g3iiQ= github.com/metacubex/sing v0.0.0-20240408015159-aa61c96df764 h1:+czGKoynxYA90YaL3NlCAIJHnlqwoUlLWgmOhdm5ZU8= github.com/metacubex/sing v0.0.0-20240408015159-aa61c96df764/go.mod h1:+60H3Cm91RnL9dpVGWDPHt0zTQImO9Vfqt9a4rSambI= -github.com/metacubex/sing-quic v0.0.0-20240310154810-47bca850fc01 h1:5INHs85Gp1JZsdF7fQp1pXUjfJOX2dhwZjuUQWJVSt8= -github.com/metacubex/sing-quic v0.0.0-20240310154810-47bca850fc01/go.mod h1:WyY0zYxv+o+18R/Ece+QFontlgXoobKbNqbtYn2zjz8= +github.com/metacubex/sing-quic v0.0.0-20240409064816-c16ac6b1f4b4 h1:JB+BgUgQVicS1oGiw63c0xQWEAkUeuTylDy5WIaco7o= +github.com/metacubex/sing-quic v0.0.0-20240409064816-c16ac6b1f4b4/go.mod h1:WyY0zYxv+o+18R/Ece+QFontlgXoobKbNqbtYn2zjz8= github.com/metacubex/sing-shadowsocks v0.2.6 h1:6oEB3QcsFYnNiFeoevcXrCwJ3sAablwVSgtE9R3QeFQ= github.com/metacubex/sing-shadowsocks v0.2.6/go.mod h1:zIkMeSnb8Mbf4hdqhw0pjzkn1d99YJ3JQm/VBg5WMTg= github.com/metacubex/sing-shadowsocks2 v0.2.0 h1:hqwT/AfI5d5UdPefIzR6onGHJfDXs5zgOM5QSgaM/9A= diff --git a/clash-nyanpasu/backend/Cargo.lock b/clash-nyanpasu/backend/Cargo.lock index 0997bacc2c..20a9887579 100644 --- a/clash-nyanpasu/backend/Cargo.lock +++ b/clash-nyanpasu/backend/Cargo.lock @@ -2538,7 +2538,7 @@ dependencies = [ "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core 0.52.0", + "windows-core 0.51.1", ] [[package]] @@ -3041,7 +3041,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" dependencies = [ "cfg-if", - "windows-targets 0.52.4", + "windows-targets 0.48.5", ] [[package]] @@ -5563,9 +5563,9 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.30.8" +version = "0.30.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b1a378e48fb3ce3a5cf04359c456c9c98ff689bcf1c1bc6e6a31f247686f275" +checksum = "e9a84fe4cfc513b41cb2596b624e561ec9e7e1c4b46328e496ed56a53514ef2a" dependencies = [ "cfg-if", "core-foundation-sys", diff --git a/clash-nyanpasu/manifest/version.json b/clash-nyanpasu/manifest/version.json index 9178ad5714..4e44ff1ec1 100644 --- a/clash-nyanpasu/manifest/version.json +++ b/clash-nyanpasu/manifest/version.json @@ -2,7 +2,7 @@ "manifest_version": 1, "latest": { "mihomo": "v1.18.3", - "mihomo_alpha": "alpha-f3e23b1", + "mihomo_alpha": "alpha-72df27b", "clash_rs": "v0.1.15", "clash_premium": "2023-09-05-gdcc8d87" }, @@ -36,5 +36,5 @@ "darwin-x64": "clash-darwin-amd64-n{}.gz" } }, - "updated_at": "2024-04-07T22:18:47.774Z" + "updated_at": "2024-04-08T22:20:44.727Z" } diff --git a/clash-nyanpasu/package.json b/clash-nyanpasu/package.json index 45d25c1922..5cd741a158 100644 --- a/clash-nyanpasu/package.json +++ b/clash-nyanpasu/package.json @@ -69,7 +69,7 @@ "@dnd-kit/utilities": "3.2.2", "@emotion/react": "11.11.4", "@emotion/styled": "11.11.5", - "@generouted/react-router": "1.18.7", + "@generouted/react-router": "1.18.8", "@juggle/resize-observer": "3.4.0", "@mui/icons-material": "5.15.15", "@mui/lab": "5.0.0-alpha.170", @@ -104,12 +104,12 @@ "@types/fs-extra": "11.0.4", "@types/js-cookie": "3.0.6", "@types/lodash-es": "4.17.12", - "@types/node": "20.12.5", - "@types/react": "18.2.74", + "@types/node": "20.12.6", + "@types/react": "18.2.75", "@types/react-dom": "18.2.24", "@types/react-transition-group": "4.4.10", - "@typescript-eslint/eslint-plugin": "7.5.0", - "@typescript-eslint/parser": "7.5.0", + "@typescript-eslint/eslint-plugin": "7.6.0", + "@typescript-eslint/parser": "7.6.0", "@vitejs/plugin-react": "4.2.1", "adm-zip": "0.5.12", "autoprefixer": "10.4.19", diff --git a/clash-nyanpasu/pnpm-lock.yaml b/clash-nyanpasu/pnpm-lock.yaml index 6443ec9406..9319d5f211 100644 --- a/clash-nyanpasu/pnpm-lock.yaml +++ b/clash-nyanpasu/pnpm-lock.yaml @@ -19,28 +19,28 @@ dependencies: version: 3.2.2(react@18.2.0) '@emotion/react': specifier: 11.11.4 - version: 11.11.4(@types/react@18.2.74)(react@18.2.0) + version: 11.11.4(@types/react@18.2.75)(react@18.2.0) '@emotion/styled': specifier: 11.11.5 - version: 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.74)(react@18.2.0) + version: 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.75)(react@18.2.0) '@generouted/react-router': - specifier: 1.18.7 - version: 1.18.7(react-router-dom@6.22.3)(react@18.2.0)(vite@5.2.8) + specifier: 1.18.8 + version: 1.18.8(react-router-dom@6.22.3)(react@18.2.0)(vite@5.2.8) '@juggle/resize-observer': specifier: 3.4.0 version: 3.4.0 '@mui/icons-material': specifier: 5.15.15 - version: 5.15.15(@mui/material@5.15.15)(@types/react@18.2.74)(react@18.2.0) + version: 5.15.15(@mui/material@5.15.15)(@types/react@18.2.75)(react@18.2.0) '@mui/lab': specifier: 5.0.0-alpha.170 - version: 5.0.0-alpha.170(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@5.15.15)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + version: 5.0.0-alpha.170(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@5.15.15)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) '@mui/material': specifier: 5.15.15 - version: 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + version: 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) '@mui/x-data-grid': specifier: 7.1.1 - version: 7.1.1(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@5.15.15)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + version: 7.1.1(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@5.15.15)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) '@tauri-apps/api': specifier: 1.5.3 version: 1.5.3 @@ -67,7 +67,7 @@ dependencies: version: 0.47.0 mui-color-input: specifier: 2.0.3 - version: 2.0.3(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@5.15.15)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + version: 2.0.3(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@5.15.15)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -85,7 +85,7 @@ dependencies: version: 14.1.0(i18next@23.11.0)(react-dom@18.2.0)(react@18.2.0) react-markdown: specifier: 9.0.1 - version: 9.0.1(@types/react@18.2.74)(react@18.2.0) + version: 9.0.1(@types/react@18.2.75)(react@18.2.0) react-router-dom: specifier: 6.22.3 version: 6.22.3(react-dom@18.2.0)(react@18.2.0) @@ -108,7 +108,7 @@ devDependencies: version: 6.0.0 '@commitlint/cli': specifier: 19.2.1 - version: 19.2.1(@types/node@20.12.5)(typescript@5.4.4) + version: 19.2.1(@types/node@20.12.6)(typescript@5.4.4) '@commitlint/config-conventional': specifier: 19.1.0 version: 19.1.0 @@ -125,11 +125,11 @@ devDependencies: specifier: 4.17.12 version: 4.17.12 '@types/node': - specifier: 20.12.5 - version: 20.12.5 + specifier: 20.12.6 + version: 20.12.6 '@types/react': - specifier: 18.2.74 - version: 18.2.74 + specifier: 18.2.75 + version: 18.2.75 '@types/react-dom': specifier: 18.2.24 version: 18.2.24 @@ -137,11 +137,11 @@ devDependencies: specifier: 4.4.10 version: 4.4.10 '@typescript-eslint/eslint-plugin': - specifier: 7.5.0 - version: 7.5.0(@typescript-eslint/parser@7.5.0)(eslint@8.57.0)(typescript@5.4.4) + specifier: 7.6.0 + version: 7.6.0(@typescript-eslint/parser@7.6.0)(eslint@8.57.0)(typescript@5.4.4) '@typescript-eslint/parser': - specifier: 7.5.0 - version: 7.5.0(eslint@8.57.0)(typescript@5.4.4) + specifier: 7.6.0 + version: 7.6.0(eslint@8.57.0)(typescript@5.4.4) '@vitejs/plugin-react': specifier: 4.2.1 version: 4.2.1(vite@5.2.8) @@ -183,7 +183,7 @@ devDependencies: version: 8.0.0 eslint-plugin-import: specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.5.0)(eslint@8.57.0) + version: 2.29.1(@typescript-eslint/parser@7.6.0)(eslint@8.57.0) eslint-plugin-n: specifier: 16.6.2 version: 16.6.2(eslint@8.57.0) @@ -273,7 +273,7 @@ devDependencies: version: 5.4.4 vite: specifier: 5.2.8 - version: 5.2.8(@types/node@20.12.5)(sass@1.74.1) + version: 5.2.8(@types/node@20.12.6)(sass@1.74.1) vite-plugin-monaco-editor: specifier: npm:vite-plugin-monaco-editor-new@1.1.3 version: /vite-plugin-monaco-editor-new@1.1.3(monaco-editor@0.47.0) @@ -549,14 +549,14 @@ packages: '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 - /@commitlint/cli@19.2.1(@types/node@20.12.5)(typescript@5.4.4): + /@commitlint/cli@19.2.1(@types/node@20.12.6)(typescript@5.4.4): resolution: {integrity: sha512-cbkYUJsLqRomccNxvoJTyv5yn0bSy05BBizVyIcLACkRbVUqYorC351Diw/XFSWC/GtpwiwT2eOvQgFZa374bg==} engines: {node: '>=v18'} hasBin: true dependencies: '@commitlint/format': 19.0.3 '@commitlint/lint': 19.1.0 - '@commitlint/load': 19.2.0(@types/node@20.12.5)(typescript@5.4.4) + '@commitlint/load': 19.2.0(@types/node@20.12.6)(typescript@5.4.4) '@commitlint/read': 19.2.1 '@commitlint/types': 19.0.3 execa: 8.0.1 @@ -625,7 +625,7 @@ packages: '@commitlint/types': 19.0.3 dev: true - /@commitlint/load@19.2.0(@types/node@20.12.5)(typescript@5.4.4): + /@commitlint/load@19.2.0(@types/node@20.12.6)(typescript@5.4.4): resolution: {integrity: sha512-XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ==} engines: {node: '>=v18'} dependencies: @@ -635,7 +635,7 @@ packages: '@commitlint/types': 19.0.3 chalk: 5.3.0 cosmiconfig: 9.0.0(typescript@5.4.4) - cosmiconfig-typescript-loader: 5.0.0(@types/node@20.12.5)(cosmiconfig@9.0.0)(typescript@5.4.4) + cosmiconfig-typescript-loader: 5.0.0(@types/node@20.12.6)(cosmiconfig@9.0.0)(typescript@5.4.4) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -838,7 +838,7 @@ packages: resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} dev: false - /@emotion/react@11.11.4(@types/react@18.2.74)(react@18.2.0): + /@emotion/react@11.11.4(@types/react@18.2.75)(react@18.2.0): resolution: {integrity: sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==} peerDependencies: '@types/react': '*' @@ -854,7 +854,7 @@ packages: '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) '@emotion/utils': 1.2.1 '@emotion/weak-memoize': 0.3.1 - '@types/react': 18.2.74 + '@types/react': 18.2.75 hoist-non-react-statics: 3.3.2 react: 18.2.0 dev: false @@ -883,7 +883,7 @@ packages: resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==} dev: false - /@emotion/styled@11.11.5(@emotion/react@11.11.4)(@types/react@18.2.74)(react@18.2.0): + /@emotion/styled@11.11.5(@emotion/react@11.11.4)(@types/react@18.2.75)(react@18.2.0): resolution: {integrity: sha512-/ZjjnaNKvuMPxcIiUkf/9SHoG4Q196DRl1w82hQ3WCsjo1IUR8uaGWrC6a87CrYAW0Kb/pK7hk8BnLgLRi9KoQ==} peerDependencies: '@emotion/react': ^11.0.0-rc.0 @@ -896,11 +896,11 @@ packages: '@babel/runtime': 7.24.1 '@emotion/babel-plugin': 11.11.0 '@emotion/is-prop-valid': 1.2.2 - '@emotion/react': 11.11.4(@types/react@18.2.74)(react@18.2.0) + '@emotion/react': 11.11.4(@types/react@18.2.75)(react@18.2.0) '@emotion/serialize': 1.1.4 '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) '@emotion/utils': 1.2.1 - '@types/react': 18.2.74 + '@types/react': 18.2.75 react: 18.2.0 dev: false @@ -1385,18 +1385,18 @@ packages: resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} dev: false - /@generouted/react-router@1.18.7(react-router-dom@6.22.3)(react@18.2.0)(vite@5.2.8): - resolution: {integrity: sha512-bT3IMnEfkRPSJ7CkEEzrnGhKxbDDF0RpnAOEDToHdJDVw/mfjZ51F8H5v3fCgQSpOeMuxaQo/TIjqOaE012PGg==} + /@generouted/react-router@1.18.8(react-router-dom@6.22.3)(react@18.2.0)(vite@5.2.8): + resolution: {integrity: sha512-LN1mIF1Akj7t3mvTeDlBZCa8a0wFPooLHDKam9YcG/UcgOEMTn+Y63tV5AGdcM33xtOYeE+pTX+ud+GR3yNe0g==} peerDependencies: react: '>=18' react-router-dom: '>=6' vite: '>=4' dependencies: fast-glob: 3.3.2 - generouted: 1.18.7(vite@5.2.8) + generouted: 1.18.8(vite@5.2.8) react: 18.2.0 react-router-dom: 6.22.3(react-dom@18.2.0)(react@18.2.0) - vite: 5.2.8(@types/node@20.12.5)(sass@1.74.1) + vite: 5.2.8(@types/node@20.12.6)(sass@1.74.1) dev: false /@humanwhocodes/config-array@0.11.14: @@ -1465,7 +1465,7 @@ packages: resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} dev: false - /@mui/base@5.0.0-beta.40(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + /@mui/base@5.0.0-beta.40(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1478,10 +1478,10 @@ packages: dependencies: '@babel/runtime': 7.24.1 '@floating-ui/react-dom': 2.0.8(react-dom@18.2.0)(react@18.2.0) - '@mui/types': 7.2.14(@types/react@18.2.74) - '@mui/utils': 5.15.14(@types/react@18.2.74)(react@18.2.0) + '@mui/types': 7.2.14(@types/react@18.2.75) + '@mui/utils': 5.15.14(@types/react@18.2.75)(react@18.2.0) '@popperjs/core': 2.11.8 - '@types/react': 18.2.74 + '@types/react': 18.2.75 clsx: 2.1.0 prop-types: 15.8.1 react: 18.2.0 @@ -1492,7 +1492,7 @@ packages: resolution: {integrity: sha512-aXnw29OWQ6I5A47iuWEI6qSSUfH6G/aCsW9KmW3LiFqr7uXZBK4Ks+z8G+qeIub8k0T5CMqlT2q0L+ZJTMrqpg==} dev: false - /@mui/icons-material@5.15.15(@mui/material@5.15.15)(@types/react@18.2.74)(react@18.2.0): + /@mui/icons-material@5.15.15(@mui/material@5.15.15)(@types/react@18.2.75)(react@18.2.0): resolution: {integrity: sha512-kkeU/pe+hABcYDH6Uqy8RmIsr2S/y5bP2rp+Gat4CcRjCcVne6KudS1NrZQhUCRysrTDCAhcbcf9gt+/+pGO2g==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1504,12 +1504,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@mui/material': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.74 + '@mui/material': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.75 react: 18.2.0 dev: false - /@mui/lab@5.0.0-alpha.170(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@5.15.15)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + /@mui/lab@5.0.0-alpha.170(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@5.15.15)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-0bDVECGmrNjd3+bLdcLiwYZ0O4HP5j5WSQm5DV6iA/Z9kr8O6AnvZ1bv9ImQbbX7Gj3pX4o43EKwCutj3EQxQg==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1528,21 +1528,21 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@emotion/react': 11.11.4(@types/react@18.2.74)(react@18.2.0) - '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.74)(react@18.2.0) - '@mui/base': 5.0.0-beta.40(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@mui/material': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@mui/system': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.74)(react@18.2.0) - '@mui/types': 7.2.14(@types/react@18.2.74) - '@mui/utils': 5.15.14(@types/react@18.2.74)(react@18.2.0) - '@types/react': 18.2.74 + '@emotion/react': 11.11.4(@types/react@18.2.75)(react@18.2.0) + '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.75)(react@18.2.0) + '@mui/base': 5.0.0-beta.40(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) + '@mui/material': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) + '@mui/system': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.75)(react@18.2.0) + '@mui/types': 7.2.14(@types/react@18.2.75) + '@mui/utils': 5.15.14(@types/react@18.2.75)(react@18.2.0) + '@types/react': 18.2.75 clsx: 2.1.0 prop-types: 15.8.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@mui/material@5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + /@mui/material@5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-3zvWayJ+E1kzoIsvwyEvkTUKVKt1AjchFFns+JtluHCuvxgKcLSRJTADw37k0doaRtVAsyh8bz9Afqzv+KYrIA==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1560,14 +1560,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@emotion/react': 11.11.4(@types/react@18.2.74)(react@18.2.0) - '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.74)(react@18.2.0) - '@mui/base': 5.0.0-beta.40(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@emotion/react': 11.11.4(@types/react@18.2.75)(react@18.2.0) + '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.75)(react@18.2.0) + '@mui/base': 5.0.0-beta.40(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) '@mui/core-downloads-tracker': 5.15.15 - '@mui/system': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.74)(react@18.2.0) - '@mui/types': 7.2.14(@types/react@18.2.74) - '@mui/utils': 5.15.14(@types/react@18.2.74)(react@18.2.0) - '@types/react': 18.2.74 + '@mui/system': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.75)(react@18.2.0) + '@mui/types': 7.2.14(@types/react@18.2.75) + '@mui/utils': 5.15.14(@types/react@18.2.75)(react@18.2.0) + '@types/react': 18.2.75 '@types/react-transition-group': 4.4.10 clsx: 2.1.0 csstype: 3.1.3 @@ -1578,7 +1578,7 @@ packages: react-transition-group: 4.4.5(react-dom@18.2.0)(react@18.2.0) dev: false - /@mui/private-theming@5.15.14(@types/react@18.2.74)(react@18.2.0): + /@mui/private-theming@5.15.14(@types/react@18.2.75)(react@18.2.0): resolution: {integrity: sha512-UH0EiZckOWcxiXLX3Jbb0K7rC8mxTr9L9l6QhOZxYc4r8FHUkefltV9VDGLrzCaWh30SQiJvAEd7djX3XXY6Xw==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1589,8 +1589,8 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@mui/utils': 5.15.14(@types/react@18.2.74)(react@18.2.0) - '@types/react': 18.2.74 + '@mui/utils': 5.15.14(@types/react@18.2.75)(react@18.2.0) + '@types/react': 18.2.75 prop-types: 15.8.1 react: 18.2.0 dev: false @@ -1610,14 +1610,14 @@ packages: dependencies: '@babel/runtime': 7.24.1 '@emotion/cache': 11.11.0 - '@emotion/react': 11.11.4(@types/react@18.2.74)(react@18.2.0) - '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.74)(react@18.2.0) + '@emotion/react': 11.11.4(@types/react@18.2.75)(react@18.2.0) + '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.75)(react@18.2.0) csstype: 3.1.3 prop-types: 15.8.1 react: 18.2.0 dev: false - /@mui/system@5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.74)(react@18.2.0): + /@mui/system@5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.75)(react@18.2.0): resolution: {integrity: sha512-aulox6N1dnu5PABsfxVGOZffDVmlxPOVgj56HrUnJE8MCSh8lOvvkd47cebIVQQYAjpwieXQXiDPj5pwM40jTQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1634,20 +1634,20 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@emotion/react': 11.11.4(@types/react@18.2.74)(react@18.2.0) - '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.74)(react@18.2.0) - '@mui/private-theming': 5.15.14(@types/react@18.2.74)(react@18.2.0) + '@emotion/react': 11.11.4(@types/react@18.2.75)(react@18.2.0) + '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.75)(react@18.2.0) + '@mui/private-theming': 5.15.14(@types/react@18.2.75)(react@18.2.0) '@mui/styled-engine': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.2.0) - '@mui/types': 7.2.14(@types/react@18.2.74) - '@mui/utils': 5.15.14(@types/react@18.2.74)(react@18.2.0) - '@types/react': 18.2.74 + '@mui/types': 7.2.14(@types/react@18.2.75) + '@mui/utils': 5.15.14(@types/react@18.2.75)(react@18.2.0) + '@types/react': 18.2.75 clsx: 2.1.0 csstype: 3.1.3 prop-types: 15.8.1 react: 18.2.0 dev: false - /@mui/types@7.2.14(@types/react@18.2.74): + /@mui/types@7.2.14(@types/react@18.2.75): resolution: {integrity: sha512-MZsBZ4q4HfzBsywtXgM1Ksj6HDThtiwmOKUXH1pKYISI9gAVXCNHNpo7TlGoGrBaYWZTdNoirIN7JsQcQUjmQQ==} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 @@ -1655,10 +1655,10 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.74 + '@types/react': 18.2.75 dev: false - /@mui/utils@5.15.14(@types/react@18.2.74)(react@18.2.0): + /@mui/utils@5.15.14(@types/react@18.2.75)(react@18.2.0): resolution: {integrity: sha512-0lF/7Hh/ezDv5X7Pry6enMsbYyGKjADzvHyo3Qrc/SSlTsQ1VkbDMbH0m2t3OR5iIVLwMoxwM7yGd+6FCMtTFA==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1670,13 +1670,13 @@ packages: dependencies: '@babel/runtime': 7.24.1 '@types/prop-types': 15.7.11 - '@types/react': 18.2.74 + '@types/react': 18.2.75 prop-types: 15.8.1 react: 18.2.0 react-is: 18.2.0 dev: false - /@mui/x-data-grid@7.1.1(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@5.15.15)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + /@mui/x-data-grid@7.1.1(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@5.15.15)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-hNvz927lkAznFdy45QPE7mIZVyQhlqveHmTK9+SD0N1us4sSTij90uUJ/roTNDod0VA9f5GqWmNz+5h8ihpz6Q==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1685,9 +1685,9 @@ packages: react-dom: ^17.0.0 || ^18.0.0 dependencies: '@babel/runtime': 7.24.1 - '@mui/material': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@mui/system': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.74)(react@18.2.0) - '@mui/utils': 5.15.14(@types/react@18.2.74)(react@18.2.0) + '@mui/material': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) + '@mui/system': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.75)(react@18.2.0) + '@mui/utils': 5.15.14(@types/react@18.2.75)(react@18.2.0) clsx: 2.1.0 prop-types: 15.8.1 react: 18.2.0 @@ -2226,7 +2226,7 @@ packages: /@types/conventional-commits-parser@5.0.0: resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} dependencies: - '@types/node': 20.12.5 + '@types/node': 20.12.6 dev: true /@types/debug@4.1.12: @@ -2248,7 +2248,7 @@ packages: resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 20.12.5 + '@types/node': 20.12.6 dev: true /@types/hast@3.0.4: @@ -2272,7 +2272,7 @@ packages: /@types/jsonfile@6.1.4: resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} dependencies: - '@types/node': 20.12.5 + '@types/node': 20.12.6 dev: true /@types/lodash-es@4.17.12: @@ -2295,8 +2295,8 @@ packages: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} dev: false - /@types/node@20.12.5: - resolution: {integrity: sha512-BD+BjQ9LS/D8ST9p5uqBxghlN+S42iuNxjsUGjeZobe/ciXzk2qb1B6IXc6AnRLS+yFJRpN2IPEHMzwspfDJNw==} + /@types/node@20.12.6: + resolution: {integrity: sha512-3KurE8taB8GCvZBPngVbp0lk5CKi8M9f9k1rsADh0Evdz5SzJ+Q+Hx9uHoFGsLnLnd1xmkDQr2hVhlA0Mn0lKQ==} dependencies: undici-types: 5.26.5 @@ -2310,22 +2310,22 @@ packages: /@types/react-dom@18.2.24: resolution: {integrity: sha512-cN6upcKd8zkGy4HU9F1+/s98Hrp6D4MOcippK4PoE8OZRngohHZpbJn1GsaDLz87MqvHNoT13nHvNqM9ocRHZg==} dependencies: - '@types/react': 18.2.74 + '@types/react': 18.2.75 dev: true /@types/react-transition-group@4.4.10: resolution: {integrity: sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==} dependencies: - '@types/react': 18.2.74 + '@types/react': 18.2.75 - /@types/react@18.2.74: - resolution: {integrity: sha512-9AEqNZZyBx8OdZpxzQlaFEVCSFUM2YXJH46yPOiOpm078k6ZLOCcuAzGum/zK8YBwY+dbahVNbHrbgrAwIRlqw==} + /@types/react@18.2.75: + resolution: {integrity: sha512-+DNnF7yc5y0bHkBTiLKqXFe+L4B3nvOphiMY3tuA5X10esmjqk7smyBZzbGTy2vsiy/Bnzj8yFIBL8xhRacoOg==} dependencies: '@types/prop-types': 15.7.11 csstype: 3.1.3 - /@types/semver@7.5.6: - resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} dev: true /@types/unist@2.0.10: @@ -2336,8 +2336,8 @@ packages: resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} dev: false - /@typescript-eslint/eslint-plugin@7.5.0(@typescript-eslint/parser@7.5.0)(eslint@8.57.0)(typescript@5.4.4): - resolution: {integrity: sha512-HpqNTH8Du34nLxbKgVMGljZMG0rJd2O9ecvr2QLYp+7512ty1j42KnsFwspPXg1Vh8an9YImf6CokUBltisZFQ==} + /@typescript-eslint/eslint-plugin@7.6.0(@typescript-eslint/parser@7.6.0)(eslint@8.57.0)(typescript@5.4.4): + resolution: {integrity: sha512-gKmTNwZnblUdnTIJu3e9kmeRRzV2j1a/LUO27KNNAnIC5zjy1aSvXSRp4rVNlmAoHlQ7HzX42NbKpcSr4jF80A==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -2348,25 +2348,25 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.5.0(eslint@8.57.0)(typescript@5.4.4) - '@typescript-eslint/scope-manager': 7.5.0 - '@typescript-eslint/type-utils': 7.5.0(eslint@8.57.0)(typescript@5.4.4) - '@typescript-eslint/utils': 7.5.0(eslint@8.57.0)(typescript@5.4.4) - '@typescript-eslint/visitor-keys': 7.5.0 + '@typescript-eslint/parser': 7.6.0(eslint@8.57.0)(typescript@5.4.4) + '@typescript-eslint/scope-manager': 7.6.0 + '@typescript-eslint/type-utils': 7.6.0(eslint@8.57.0)(typescript@5.4.4) + '@typescript-eslint/utils': 7.6.0(eslint@8.57.0)(typescript@5.4.4) + '@typescript-eslint/visitor-keys': 7.6.0 debug: 4.3.4 eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 semver: 7.6.0 - ts-api-utils: 1.0.3(typescript@5.4.4) + ts-api-utils: 1.3.0(typescript@5.4.4) typescript: 5.4.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@7.5.0(eslint@8.57.0)(typescript@5.4.4): - resolution: {integrity: sha512-cj+XGhNujfD2/wzR1tabNsidnYRaFfEkcULdcIyVBYcXjBvBKOes+mpMBP7hMpOyk+gBcfXsrg4NBGAStQyxjQ==} + /@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.4): + resolution: {integrity: sha512-usPMPHcwX3ZoPWnBnhhorc14NJw9J4HpSXQX4urF2TPKG0au0XhJoZyX62fmvdHONUkmyUe74Hzm1//XA+BoYg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -2375,10 +2375,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 7.5.0 - '@typescript-eslint/types': 7.5.0 - '@typescript-eslint/typescript-estree': 7.5.0(typescript@5.4.4) - '@typescript-eslint/visitor-keys': 7.5.0 + '@typescript-eslint/scope-manager': 7.6.0 + '@typescript-eslint/types': 7.6.0 + '@typescript-eslint/typescript-estree': 7.6.0(typescript@5.4.4) + '@typescript-eslint/visitor-keys': 7.6.0 debug: 4.3.4 eslint: 8.57.0 typescript: 5.4.4 @@ -2386,16 +2386,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@7.5.0: - resolution: {integrity: sha512-Z1r7uJY0MDeUlql9XJ6kRVgk/sP11sr3HKXn268HZyqL7i4cEfrdFuSSY/0tUqT37l5zT0tJOsuDP16kio85iA==} + /@typescript-eslint/scope-manager@7.6.0: + resolution: {integrity: sha512-ngttyfExA5PsHSx0rdFgnADMYQi+Zkeiv4/ZxGYUWd0nLs63Ha0ksmp8VMxAIC0wtCFxMos7Lt3PszJssG/E6w==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.5.0 - '@typescript-eslint/visitor-keys': 7.5.0 + '@typescript-eslint/types': 7.6.0 + '@typescript-eslint/visitor-keys': 7.6.0 dev: true - /@typescript-eslint/type-utils@7.5.0(eslint@8.57.0)(typescript@5.4.4): - resolution: {integrity: sha512-A021Rj33+G8mx2Dqh0nMO9GyjjIBK3MqgVgZ2qlKf6CJy51wY/lkkFqq3TqqnH34XyAHUkq27IjlUkWlQRpLHw==} + /@typescript-eslint/type-utils@7.6.0(eslint@8.57.0)(typescript@5.4.4): + resolution: {integrity: sha512-NxAfqAPNLG6LTmy7uZgpK8KcuiS2NZD/HlThPXQRGwz6u7MDBWRVliEEl1Gj6U7++kVJTpehkhZzCJLMK66Scw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -2404,23 +2404,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.5.0(typescript@5.4.4) - '@typescript-eslint/utils': 7.5.0(eslint@8.57.0)(typescript@5.4.4) + '@typescript-eslint/typescript-estree': 7.6.0(typescript@5.4.4) + '@typescript-eslint/utils': 7.6.0(eslint@8.57.0)(typescript@5.4.4) debug: 4.3.4 eslint: 8.57.0 - ts-api-utils: 1.0.3(typescript@5.4.4) + ts-api-utils: 1.3.0(typescript@5.4.4) typescript: 5.4.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@7.5.0: - resolution: {integrity: sha512-tv5B4IHeAdhR7uS4+bf8Ov3k793VEVHd45viRRkehIUZxm0WF82VPiLgHzA/Xl4TGPg1ZD49vfxBKFPecD5/mg==} + /@typescript-eslint/types@7.6.0: + resolution: {integrity: sha512-h02rYQn8J+MureCvHVVzhl69/GAfQGPQZmOMjG1KfCl7o3HtMSlPaPUAPu6lLctXI5ySRGIYk94clD/AUMCUgQ==} engines: {node: ^18.18.0 || >=20.0.0} dev: true - /@typescript-eslint/typescript-estree@7.5.0(typescript@5.4.4): - resolution: {integrity: sha512-YklQQfe0Rv2PZEueLTUffiQGKQneiIEKKnfIqPIOxgM9lKSZFCjT5Ad4VqRKj/U4+kQE3fa8YQpskViL7WjdPQ==} + /@typescript-eslint/typescript-estree@7.6.0(typescript@5.4.4): + resolution: {integrity: sha512-+7Y/GP9VuYibecrCQWSKgl3GvUM5cILRttpWtnAu8GNL9j11e4tbuGZmZjJ8ejnKYyBRb2ddGQ3rEFCq3QjMJw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -2428,31 +2428,31 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.5.0 - '@typescript-eslint/visitor-keys': 7.5.0 + '@typescript-eslint/types': 7.6.0 + '@typescript-eslint/visitor-keys': 7.6.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.3 + minimatch: 9.0.4 semver: 7.6.0 - ts-api-utils: 1.0.3(typescript@5.4.4) + ts-api-utils: 1.3.0(typescript@5.4.4) typescript: 5.4.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@7.5.0(eslint@8.57.0)(typescript@5.4.4): - resolution: {integrity: sha512-3vZl9u0R+/FLQcpy2EHyRGNqAS/ofJ3Ji8aebilfJe+fobK8+LbIFmrHciLVDxjDoONmufDcnVSF38KwMEOjzw==} + /@typescript-eslint/utils@7.6.0(eslint@8.57.0)(typescript@5.4.4): + resolution: {integrity: sha512-x54gaSsRRI+Nwz59TXpCsr6harB98qjXYzsRxGqvA5Ue3kQH+FxS7FYU81g/omn22ML2pZJkisy6Q+ElK8pBCA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 7.5.0 - '@typescript-eslint/types': 7.5.0 - '@typescript-eslint/typescript-estree': 7.5.0(typescript@5.4.4) + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 7.6.0 + '@typescript-eslint/types': 7.6.0 + '@typescript-eslint/typescript-estree': 7.6.0(typescript@5.4.4) eslint: 8.57.0 semver: 7.6.0 transitivePeerDependencies: @@ -2460,11 +2460,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@7.5.0: - resolution: {integrity: sha512-mcuHM/QircmA6O7fy6nn2w/3ditQkj+SgtOc8DW3uQ10Yfj42amm2i+6F2K4YAOPNNTmE6iM1ynM6lrSwdendA==} + /@typescript-eslint/visitor-keys@7.6.0: + resolution: {integrity: sha512-4eLB7t+LlNUmXzfOu1VAIAdkjbu5xNSerURS9X/S5TUKWFRpXRQZbmtPqgKmYx8bj3J0irtQXSiWAOY82v+cgw==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.5.0 + '@typescript-eslint/types': 7.6.0 eslint-visitor-keys: 3.4.3 dev: true @@ -2482,7 +2482,7 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.6) '@types/babel__core': 7.20.5 react-refresh: 0.14.0 - vite: 5.2.8(@types/node@20.12.5)(sass@1.74.1) + vite: 5.2.8(@types/node@20.12.6)(sass@1.74.1) transitivePeerDependencies: - supports-color dev: true @@ -3115,7 +3115,7 @@ packages: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true - /cosmiconfig-typescript-loader@5.0.0(@types/node@20.12.5)(cosmiconfig@9.0.0)(typescript@5.4.4): + /cosmiconfig-typescript-loader@5.0.0(@types/node@20.12.6)(cosmiconfig@9.0.0)(typescript@5.4.4): resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} engines: {node: '>=v16'} peerDependencies: @@ -3123,7 +3123,7 @@ packages: cosmiconfig: '>=8.2' typescript: '>=4' dependencies: - '@types/node': 20.12.5 + '@types/node': 20.12.6 cosmiconfig: 9.0.0(typescript@5.4.4) jiti: 1.21.0 typescript: 5.4.4 @@ -3691,7 +3691,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.57.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.5.0)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.6.0)(eslint@8.57.0) eslint-plugin-n: 16.6.2(eslint@8.57.0) eslint-plugin-promise: 6.1.1(eslint@8.57.0) dev: true @@ -3702,7 +3702,7 @@ packages: peerDependencies: eslint-plugin-import: '>=1.4.0' dependencies: - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.5.0)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.6.0)(eslint@8.57.0) dev: true /eslint-import-resolver-node@0.3.9: @@ -3715,7 +3715,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.5.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.6.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -3736,7 +3736,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 7.5.0(eslint@8.57.0)(typescript@5.4.4) + '@typescript-eslint/parser': 7.6.0(eslint@8.57.0)(typescript@5.4.4) debug: 3.2.7 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 @@ -3763,7 +3763,7 @@ packages: htmlparser2: 9.1.0 dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.5.0)(eslint@8.57.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.6.0)(eslint@8.57.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -3773,7 +3773,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 7.5.0(eslint@8.57.0)(typescript@5.4.4) + '@typescript-eslint/parser': 7.6.0(eslint@8.57.0)(typescript@5.4.4) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -3782,7 +3782,7 @@ packages: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.5.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.6.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -4241,12 +4241,12 @@ packages: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true - /generouted@1.18.7(vite@5.2.8): - resolution: {integrity: sha512-n8u9Ml1aWKaXL1EldqUqHRmcCyotx0q1xcVeBH65BZMKuPT74AW2Ncw89pgonPDSYb19R7Kiuw3243FTU4DP0Q==} + /generouted@1.18.8(vite@5.2.8): + resolution: {integrity: sha512-iaKHLtR/ziZEJT+0n0+6RMTRFSkPsnF7GvnDvM5xYOjKvFjFZO/u5HRQpKIlBhNC0IGu6JSdHlcu9EJcLOQXvA==} peerDependencies: vite: '>=3' dependencies: - vite: 5.2.8(@types/node@20.12.5)(sass@1.74.1) + vite: 5.2.8(@types/node@20.12.6)(sass@1.74.1) dev: false /gensync@1.0.0-beta.2: @@ -5612,6 +5612,13 @@ packages: brace-expansion: 2.0.1 dev: true + /minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true @@ -5632,7 +5639,7 @@ packages: /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - /mui-color-input@2.0.3(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@5.15.15)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + /mui-color-input@2.0.3(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@5.15.15)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-rAd040qQ0Y+8dk4gE8kkCiJ/vCgA0j4vv1quJ43BfORTFE3uHarHj0xY1Vo9CPbojtx1f5vW+CjckYPRIZPIRg==} peerDependencies: '@emotion/react': ^11.5.0 @@ -5646,10 +5653,10 @@ packages: optional: true dependencies: '@ctrl/tinycolor': 4.0.3 - '@emotion/react': 11.11.4(@types/react@18.2.74)(react@18.2.0) - '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.74)(react@18.2.0) - '@mui/material': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.74 + '@emotion/react': 11.11.4(@types/react@18.2.75)(react@18.2.0) + '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.75)(react@18.2.0) + '@mui/material': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.75 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -6187,14 +6194,14 @@ packages: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: false - /react-markdown@9.0.1(@types/react@18.2.74)(react@18.2.0): + /react-markdown@9.0.1(@types/react@18.2.75)(react@18.2.0): resolution: {integrity: sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==} peerDependencies: '@types/react': '>=18' react: '>=18' dependencies: '@types/hast': 3.0.4 - '@types/react': 18.2.74 + '@types/react': 18.2.75 devlop: 1.1.0 hast-util-to-jsx-runtime: 2.3.0 html-url-attributes: 3.0.0 @@ -7056,9 +7063,9 @@ packages: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} dev: false - /ts-api-utils@1.0.3(typescript@5.4.4): - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} - engines: {node: '>=16.13.0'} + /ts-api-utils@1.3.0(typescript@5.4.4): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' dependencies: @@ -7367,7 +7374,7 @@ packages: postcss-js: 4.0.1(postcss@8.4.38) prettier: 3.2.5 sass: 1.74.1 - vite: 5.2.8(@types/node@20.12.5)(sass@1.74.1) + vite: 5.2.8(@types/node@20.12.6)(sass@1.74.1) dev: true /vite-plugin-svgr@4.2.0(typescript@5.4.4)(vite@5.2.8): @@ -7378,7 +7385,7 @@ packages: '@rollup/pluginutils': 5.0.5 '@svgr/core': 8.1.0(typescript@5.4.4) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0) - vite: 5.2.8(@types/node@20.12.5)(sass@1.74.1) + vite: 5.2.8(@types/node@20.12.6)(sass@1.74.1) transitivePeerDependencies: - rollup - supports-color @@ -7396,13 +7403,13 @@ packages: debug: 4.3.4 globrex: 0.1.2 tsconfck: 3.0.3(typescript@5.4.4) - vite: 5.2.8(@types/node@20.12.5)(sass@1.74.1) + vite: 5.2.8(@types/node@20.12.6)(sass@1.74.1) transitivePeerDependencies: - supports-color - typescript dev: true - /vite@5.2.8(@types/node@20.12.5)(sass@1.74.1): + /vite@5.2.8(@types/node@20.12.6)(sass@1.74.1): resolution: {integrity: sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -7430,7 +7437,7 @@ packages: terser: optional: true dependencies: - '@types/node': 20.12.5 + '@types/node': 20.12.6 esbuild: 0.20.2 postcss: 8.4.38 rollup: 4.13.0 diff --git a/clash-verge-rev/src/components/layout/layout-traffic.tsx b/clash-verge-rev/src/components/layout/layout-traffic.tsx index 960821032a..fce7967ee5 100644 --- a/clash-verge-rev/src/components/layout/layout-traffic.tsx +++ b/clash-verge-rev/src/components/layout/layout-traffic.tsx @@ -29,21 +29,23 @@ export const LayoutTraffic = () => { // setup log ws during layout useLogSetup(); - const { connect, disconnect } = useWebsocket((event) => { - const data = JSON.parse(event.data) as ITrafficItem; - trafficRef.current?.appendData(data); - setTraffic(data); - }); + const trafficWs = useWebsocket( + (event) => { + const data = JSON.parse(event.data) as ITrafficItem; + trafficRef.current?.appendData(data); + setTraffic(data); + }, + { onError: () => setTraffic({ up: 0, down: 0 }), errorCount: 10 } + ); useEffect(() => { if (!clashInfo || !pageVisible) return; const { server = "", secret = "" } = clashInfo; - connect(`ws://${server}/traffic?token=${encodeURIComponent(secret)}`); - - return () => { - disconnect(); - }; + trafficWs.connect( + `ws://${server}/traffic?token=${encodeURIComponent(secret)}` + ); + return () => trafficWs.disconnect(); }, [clashInfo, pageVisible]); /* --------- meta memory information --------- */ @@ -54,7 +56,7 @@ export const LayoutTraffic = () => { (event) => { setMemory(JSON.parse(event.data)); }, - { onError: () => setMemory({ inuse: 0 }) } + { onError: () => setMemory({ inuse: 0 }), errorCount: 10 } ); useEffect(() => { diff --git a/clash-verge-rev/src/components/proxy/proxy-groups.tsx b/clash-verge-rev/src/components/proxy/proxy-groups.tsx index e53e01df18..ab747515ab 100644 --- a/clash-verge-rev/src/components/proxy/proxy-groups.tsx +++ b/clash-verge-rev/src/components/proxy/proxy-groups.tsx @@ -6,6 +6,7 @@ import { providerHealthCheck, updateProxy, deleteConnection, + getGroupProxyDelays, } from "@/services/api"; import { Box } from "@mui/material"; import { useProfiles } from "@/hooks/use-profiles"; @@ -33,7 +34,7 @@ export const ProxyGroups = (props: Props) => { // 切换分组的节点代理 const handleChangeProxy = useLockFn( async (group: IProxyGroupItem, proxy: IProxyItem) => { - if (group.type !== "Selector" && group.type !== "Fallback") return; + if (!["Selector", "URLTest", "Fallback"].includes(group.type)) return; const { name, now } = group; await updateProxy(name, proxy.name); @@ -85,7 +86,11 @@ export const ProxyGroups = (props: Props) => { } const names = proxies.filter((p) => !p!.provider).map((p) => p!.name); - await delayManager.checkListDelay(names, groupName, timeout); + + await Promise.race([ + delayManager.checkListDelay(names, groupName, timeout), + getGroupProxyDelays(groupName, delayManager.getUrl(groupName), timeout), // 查询group delays 将清除fixed(不关注调用结果) + ]); onProxies(); }); diff --git a/clash-verge-rev/src/components/proxy/proxy-item-mini.tsx b/clash-verge-rev/src/components/proxy/proxy-item-mini.tsx index 6e099d12ac..e510d83203 100644 --- a/clash-verge-rev/src/components/proxy/proxy-item-mini.tsx +++ b/clash-verge-rev/src/components/proxy/proxy-item-mini.tsx @@ -7,7 +7,7 @@ import delayManager from "@/services/delay"; import { useVerge } from "@/hooks/use-verge"; interface Props { - groupName: string; + group: IProxyGroupItem; proxy: IProxyItem; selected: boolean; showType?: boolean; @@ -16,7 +16,7 @@ interface Props { // 多列布局 export const ProxyItemMini = (props: Props) => { - const { groupName, proxy, selected, showType = true, onClick } = props; + const { group, proxy, selected, showType = true, onClick } = props; // -1/<=0 为 不显示 // -2 为 loading @@ -25,21 +25,21 @@ export const ProxyItemMini = (props: Props) => { const timeout = verge?.default_latency_timeout || 10000; useEffect(() => { - delayManager.setListener(proxy.name, groupName, setDelay); + delayManager.setListener(proxy.name, group.name, setDelay); return () => { - delayManager.removeListener(proxy.name, groupName); + delayManager.removeListener(proxy.name, group.name); }; - }, [proxy.name, groupName]); + }, [proxy.name, group.name]); useEffect(() => { if (!proxy) return; - setDelay(delayManager.getDelayFix(proxy, groupName)); + setDelay(delayManager.getDelayFix(proxy, group.name)); }, [proxy]); const onDelay = useLockFn(async () => { setDelay(-2); - setDelay(await delayManager.checkDelay(proxy.name, groupName, timeout)); + setDelay(await delayManager.checkDelay(proxy.name, group.name, timeout)); }); return ( @@ -65,6 +65,12 @@ export const ProxyItemMini = (props: Props) => { "&:hover .the-check": { display: !showDelay ? "block" : "none" }, "&:hover .the-delay": { display: showDelay ? "block" : "none" }, "&:hover .the-icon": { display: "none" }, + "& .the-pin, & .the-unpin": { + position: "absolute", + top: "-8px", + right: "-8px", + }, + "& .the-unpin": { filter: "grayscale(1)" }, "&.Mui-selected": { width: `calc(100% + 3px)`, marginLeft: `-3px`, @@ -147,14 +153,12 @@ export const ProxyItemMini = (props: Props) => { )} - {delay === -2 && ( )} - {!proxy.provider && delay !== -2 && ( // provider的节点不支持检测 { {delayManager.formatDelay(delay, timeout)} )} - {delay !== -2 && delay <= 0 && selected && ( // 展示已选择的icon { /> )} + + {group.fixed && group.fixed === proxy.name && ( + // 展示fixed状态 + + 📌 + + )} ); }; diff --git a/clash-verge-rev/src/components/proxy/proxy-item.tsx b/clash-verge-rev/src/components/proxy/proxy-item.tsx index ee3d500672..b1879b5ad1 100644 --- a/clash-verge-rev/src/components/proxy/proxy-item.tsx +++ b/clash-verge-rev/src/components/proxy/proxy-item.tsx @@ -17,7 +17,7 @@ import delayManager from "@/services/delay"; import { useVerge } from "@/hooks/use-verge"; interface Props { - groupName: string; + group: IProxyGroupItem; proxy: IProxyItem; selected: boolean; showType?: boolean; @@ -44,7 +44,7 @@ const TypeBox = styled(Box)(({ theme }) => ({ })); export const ProxyItem = (props: Props) => { - const { groupName, proxy, selected, showType = true, sx, onClick } = props; + const { group, proxy, selected, showType = true, sx, onClick } = props; // -1/<=0 为 不显示 // -2 为 loading @@ -52,21 +52,21 @@ export const ProxyItem = (props: Props) => { const { verge } = useVerge(); const timeout = verge?.default_latency_timeout || 10000; useEffect(() => { - delayManager.setListener(proxy.name, groupName, setDelay); + delayManager.setListener(proxy.name, group.name, setDelay); return () => { - delayManager.removeListener(proxy.name, groupName); + delayManager.removeListener(proxy.name, group.name); }; - }, [proxy.name, groupName]); + }, [proxy.name, group.name]); useEffect(() => { if (!proxy) return; - setDelay(delayManager.getDelayFix(proxy, groupName)); + setDelay(delayManager.getDelayFix(proxy, group.name)); }, [proxy]); const onDelay = useLockFn(async () => { setDelay(-2); - setDelay(await delayManager.checkDelay(proxy.name, groupName, timeout)); + setDelay(await delayManager.checkDelay(proxy.name, group.name, timeout)); }); return ( diff --git a/clash-verge-rev/src/components/proxy/proxy-render.tsx b/clash-verge-rev/src/components/proxy/proxy-render.tsx index eefb41e851..b5423a25fa 100644 --- a/clash-verge-rev/src/components/proxy/proxy-render.tsx +++ b/clash-verge-rev/src/components/proxy/proxy-render.tsx @@ -142,7 +142,7 @@ export const ProxyRender = (props: RenderProps) => { if (type === 2 && !group.hidden) { return ( { {proxyCol?.map((proxy) => ( ) => void; export interface WsOptions { errorCount?: number; // default is 5 retryInterval?: number; // default is 2500 - onError?: () => void; + onError?: (event: Event) => void; + onClose?: (event: CloseEvent) => void; } export const useWebsocket = (onMessage: WsMsgFn, options?: WsOptions) => { @@ -33,17 +34,23 @@ export const useWebsocket = (onMessage: WsMsgFn, options?: WsOptions) => { const ws = new WebSocket(url); wsRef.current = ws; - ws.addEventListener("message", onMessage); - ws.addEventListener("error", () => { + ws.addEventListener("message", (event) => { + errorCount = 0; // reset counter + onMessage(event); + }); + ws.addEventListener("error", (event) => { errorCount -= 1; if (errorCount >= 0) { timerRef.current = setTimeout(connectHelper, 2500); } else { disconnect(); - options?.onError?.(); + options?.onError?.(event); } }); + ws.addEventListener("close", (event) => { + options?.onClose?.(event); + }); }; connectHelper(); diff --git a/clash-verge-rev/src/services/api.ts b/clash-verge-rev/src/services/api.ts index b8c42a9255..bded6e32e1 100644 --- a/clash-verge-rev/src/services/api.ts +++ b/clash-verge-rev/src/services/api.ts @@ -75,9 +75,13 @@ export const getRules = async () => { }; /// Get Proxy delay -export const getProxyDelay = async (name: string, url?: string) => { +export const getProxyDelay = async ( + name: string, + url?: string, + timeout?: number +) => { const params = { - timeout: 10000, + timeout: timeout || 10000, url: url || "http://1.1.1.1", }; const instance = await getAxios(); @@ -237,3 +241,21 @@ export const closeAllConnections = async () => { const instance = await getAxios(); await instance.delete(`/connections`); }; + +// Get Group Proxy Delays +export const getGroupProxyDelays = async ( + groupName: string, + url?: string, + timeout?: number +) => { + const params = { + timeout: timeout || 10000, + url: url || "http://1.1.1.1", + }; + const instance = await getAxios(); + const result = await instance.get( + `/group/${encodeURIComponent(groupName)}/delay`, + { params } + ); + return result as any as Record; +}; diff --git a/clash-verge-rev/src/services/types.d.ts b/clash-verge-rev/src/services/types.d.ts index 3de493f122..0d9537ec94 100644 --- a/clash-verge-rev/src/services/types.d.ts +++ b/clash-verge-rev/src/services/types.d.ts @@ -64,6 +64,7 @@ interface IProxyItem { hidden?: boolean; icon?: string; provider?: string; // 记录是否来自provider + fixed?: string; // 记录固定(优先)的节点 } type IProxyGroupItem = Omit & { diff --git a/lede/package/base-files/files/lib/functions/system.sh b/lede/package/base-files/files/lib/functions/system.sh index c34bca33cd..c734313f2b 100644 --- a/lede/package/base-files/files/lib/functions/system.sh +++ b/lede/package/base-files/files/lib/functions/system.sh @@ -159,6 +159,7 @@ mmc_get_mac_ascii() { part=$(find_mmc_part "$part_name") if [ -z "$part" ]; then echo "mmc_get_mac_ascii: partition $part_name not found!" >&2 + return fi get_mac_ascii "$part" "$key" diff --git a/lede/package/boot/arm-trusted-firmware-rockchip-vendor/Makefile b/lede/package/boot/arm-trusted-firmware-rockchip-vendor/Makefile index 1668a8c3a9..77932c655c 100644 --- a/lede/package/boot/arm-trusted-firmware-rockchip-vendor/Makefile +++ b/lede/package/boot/arm-trusted-firmware-rockchip-vendor/Makefile @@ -3,94 +3,99 @@ # Copyright (C) 2021-2023 ImmortalWrt.org include $(TOPDIR)/rules.mk -include $(INCLUDE_DIR)/trusted-firmware-a.mk -PKG_NAME:=rkbin +PKG_NAME:=arm-trusted-firmware-rockchip-vendor PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git -PKG_SOURCE_URL:=https://gitlab.com/rk3588_linux/rk/rkbin.git -PKG_SOURCE_DATE:=2023-08-04 -PKG_SOURCE_VERSION:=1a417bbf7d05c3491ee9613be12a9905fbb8ccb7 -PKG_MIRROR_HASH:=5ca2f3b759759ed7c5be70e7ec5e1f0c8d82b6db8265e83f637a55b2b3d61fe5 +PKG_SOURCE_URL:=https://github.com/rockchip-linux/rkbin.git +PKG_SOURCE_DATE:=2024-02-22 +PKG_SOURCE_VERSION:=a2a0b89b6c8c612dca5ed9ed8a68db8a07f68bc0 +PKG_MIRROR_HASH:=ada1db5d73938c61847b3608844bb5a95d26a92574677e21322327d4438db19f PKG_MAINTAINER:=Tianling Shen +MAKE_PATH:=$(PKG_NAME) + include $(INCLUDE_DIR)/package.mk -include ./atf-version.mk -define Trusted-Firmware-A/Default - NAME:=Rockchip $(1) - BUILD_TARGET:=rockchip +define Package/arm-trusted-firmware-rockchip-vendor + SECTION:=boot + CATEGORY:=Boot Loaders + TITLE:=ARM Trusted Firmware for Rockchip endef -define Trusted-Firmware-A/rk3328 - ATF:=rk33/$(RK3328_ATF) - DDR:=rk33/$(RK3328_DDR) - LOADER:=rk33/$(RK3328_LOADER) +define Package/arm-trusted-firmware-rk3328 + $(Package/arm-trusted-firmware-rockchip-vendor) + DEPENDS:=@TARGET_rockchip_armv8 + VARIANT:=rk3328 endef -define Trusted-Firmware-A/rk3399 - ATF:=rk33/$(RK3399_ATF) - DDR:=rk33/$(RK3399_DDR) - LOADER:=rk33/$(RK3399_LOADER) +define Package/arm-trusted-firmware-rk3399 + $(Package/arm-trusted-firmware-rockchip-vendor) + DEPENDS:=@TARGET_rockchip_armv8 + VARIANT:=rk3399 endef -define Trusted-Firmware-A/rk3528 - ATF:=rk35/$(RK3528_ATF) - DDR:=rk35/$(RK3528_DDR) +define Package/arm-trusted-firmware-rk3528 + $(Package/arm-trusted-firmware-rockchip-vendor) + DEPENDS:=@TARGET_rockchip_armv8 + VARIANT:=rk3528 endef -define Trusted-Firmware-A/rk3566 - ATF:=rk35/$(RK3568_ATF) - DDR:=rk35/$(RK3566_DDR) +define Package/arm-trusted-firmware-rk3566 + $(Package/arm-trusted-firmware-rockchip-vendor) + DEPENDS:=@TARGET_rockchip_armv8 + VARIANT:=rk3566 endef -define Trusted-Firmware-A/rk3568 - ATF:=rk35/$(RK3568_ATF) - DDR:=rk35/$(RK3568_DDR) +define Package/arm-trusted-firmware-rk3568 + $(Package/arm-trusted-firmware-rockchip-vendor) + DEPENDS:=@TARGET_rockchip_armv8 + VARIANT:=rk3568 endef -define Trusted-Firmware-A/rk3588 - ATF:=rk35/$(RK3588_ATF) - DDR:=rk35/$(RK3588_DDR) +define Package/arm-trusted-firmware-rk3588 + $(Package/arm-trusted-firmware-rockchip-vendor) + DEPENDS:=@TARGET_rockchip_armv8 + VARIANT:=rk3588 endef -TFA_TARGETS:= \ - rk3328 \ - rk3399 \ - rk3528 \ - rk3566 \ - rk3568 \ - rk3588 +define Build/Configure + $(SED) 's,$$$$(PKG_BUILD_DIR),$(PKG_BUILD_DIR),g' $(PKG_BUILD_DIR)/trust.ini + $(SED) 's,$$$$(VARIANT),$(BUILD_VARIANT),g' $(PKG_BUILD_DIR)/trust.ini + $(call Build/Configure/Default) +endef define Build/Compile - # This comment is the workaround for "extraneous 'endif'" error -ifneq ($(LOADER),) - ( \ - pushd $(PKG_BUILD_DIR) ; \ - $(SED) 's,$$$$(PKG_BUILD_DIR),$(PKG_BUILD_DIR),g' trust.ini ; \ - $(SED) 's,$$$$(VARIANT),$(BUILD_VARIANT),g' trust.ini ; \ - ./tools/mkimage -n $(BUILD_VARIANT) -T rksd -d bin/$(DDR) \ - $(BUILD_VARIANT)-idbloader.bin ; \ - cat bin/$(LOADER) >> $(BUILD_VARIANT)-idbloader.bin ; \ - ./tools/trust_merger --replace bl31.elf bin/$(ATF) trust.ini ; \ - popd ; \ - ) -endif + $(CURDIR)/pack-firmware.sh build $(BUILD_VARIANT) '$(PKG_BUILD_DIR)' endef -define Package/trusted-firmware-a/install - $(INSTALL_DIR) $(STAGING_DIR_IMAGE) - - $(CP) $(PKG_BUILD_DIR)/bin/$(ATF) $(STAGING_DIR_IMAGE)/ -ifneq ($(LOADER),) - $(CP) $(PKG_BUILD_DIR)/tools/loaderimage $(STAGING_DIR_IMAGE)/ - $(CP) $(PKG_BUILD_DIR)/$(BUILD_VARIANT)-idbloader.bin $(STAGING_DIR_IMAGE)/ - $(CP) $(PKG_BUILD_DIR)/$(BUILD_VARIANT)-trust.bin $(STAGING_DIR_IMAGE)/ -else - $(CP) $(PKG_BUILD_DIR)/bin/$(DDR) $(STAGING_DIR_IMAGE)/ -endif +define Build/InstallDev + $(CURDIR)/pack-firmware.sh install $(BUILD_VARIANT) '$(PKG_BUILD_DIR)' '$(STAGING_DIR_IMAGE)' endef -$(eval $(call BuildPackage/Trusted-Firmware-A)) \ No newline at end of file +define Package/arm-trusted-firmware-rk3328/install +endef + +define Package/arm-trusted-firmware-rk3399/install +endef + +define Package/arm-trusted-firmware-rk3528/install +endef + +define Package/arm-trusted-firmware-rk3566/install +endef + +define Package/arm-trusted-firmware-rk3568/install +endef + +define Package/arm-trusted-firmware-rk3588/install +endef + +$(eval $(call BuildPackage,arm-trusted-firmware-rk3328)) +$(eval $(call BuildPackage,arm-trusted-firmware-rk3399)) +$(eval $(call BuildPackage,arm-trusted-firmware-rk3528)) +$(eval $(call BuildPackage,arm-trusted-firmware-rk3566)) +$(eval $(call BuildPackage,arm-trusted-firmware-rk3568)) +$(eval $(call BuildPackage,arm-trusted-firmware-rk3588)) diff --git a/lede/package/boot/arm-trusted-firmware-rockchip-vendor/atf-version.mk b/lede/package/boot/arm-trusted-firmware-rockchip-vendor/atf-version.mk index 03fc5acd97..f3881df77b 100644 --- a/lede/package/boot/arm-trusted-firmware-rockchip-vendor/atf-version.mk +++ b/lede/package/boot/arm-trusted-firmware-rockchip-vendor/atf-version.mk @@ -14,4 +14,4 @@ RK3568_DDR:=rk3568_ddr_1560MHz_v1.18.bin RK3566_DDR:=rk3566_ddr_1056MHz_v1.18.bin RK3588_ATF:=rk3588_bl31_v1.41.elf -RK3588_DDR:=rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v1.13.bin \ No newline at end of file +RK3588_DDR:=rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v1.13.bin diff --git a/lede/package/boot/arm-trusted-firmware-rockchip-vendor/pack-firmware.sh b/lede/package/boot/arm-trusted-firmware-rockchip-vendor/pack-firmware.sh new file mode 100755 index 0000000000..67f3e6be23 --- /dev/null +++ b/lede/package/boot/arm-trusted-firmware-rockchip-vendor/pack-firmware.sh @@ -0,0 +1,68 @@ +#!/bin/bash +# Copyright (C) 2021 ImmortalWrt.org + +ACTION="$1" +VARIANT="$2" +PKG_BUILD_DIR="$3" +STAGING_DIR_IMAGE="$4" + +case "$VARIANT" in +"rk3328") + ATF="rk33/rk322xh_bl31_v1.49.elf" + DDR="rk33/rk3328_ddr_333MHz_v1.19.bin" + LOADER="rk33/rk322xh_miniloader_v2.50.bin" + ;; +"rk3399") + ATF="rk33/rk3399_bl31_v1.36.elf" + DDR="rk33/rk3399_ddr_800MHz_v1.30.bin" + LOADER="rk33/rk3399_miniloader_v1.30.bin" + ;; +"rk3528") + ATF="rk35/rk3528_bl31_v1.17.elf" + DDR="rk35/rk3528_ddr_1056MHz_v1.09.bin" + ;; +"rk3566") + ATF="rk35/rk3568_bl31_v1.44.elf" + DDR="rk35/rk3566_ddr_1056MHz_v1.21.bin" + ;; +"rk3568") + ATF="rk35/rk3568_bl31_v1.44.elf" + DDR="rk35/rk3568_ddr_1560MHz_v1.21.bin" + ;; +"rk3588") + ATF="rk35/rk3588_bl31_v1.45.elf" + DDR="rk35/rk3588_ddr_lp4_2112MHz_lp5_2400MHz_v1.16.bin" + ;; +*) + echo -e "Not compatible with your platform: $VARIANT." + exit 1 + ;; +esac + +set -x +if [ "$ACTION" == "build" ]; then + case "$VARIANT" in + rk33*) + mkimage -n "$VARIANT" -T "rksd" -d "$PKG_BUILD_DIR/bin/$DDR" "$PKG_BUILD_DIR/$VARIANT-idbloader.bin" + cat "$PKG_BUILD_DIR/bin/$LOADER" >> "$PKG_BUILD_DIR/$VARIANT-idbloader.bin" + "$PKG_BUILD_DIR/tools/trust_merger" --replace "bl31.elf" "$PKG_BUILD_DIR/bin/$ATF" "$PKG_BUILD_DIR/trust.ini" + ;; + esac +elif [ "$ACTION" == "install" ]; then + mkdir -p "$STAGING_DIR_IMAGE" + cp -fp "$PKG_BUILD_DIR/bin/$ATF" "$STAGING_DIR_IMAGE"/ + case "$VARIANT" in + rk33*) + cp -fp "$PKG_BUILD_DIR/tools/loaderimage" "$STAGING_DIR_IMAGE"/ + cp -fp "$PKG_BUILD_DIR/$VARIANT-idbloader.bin" "$STAGING_DIR_IMAGE"/ + cp -fp "$PKG_BUILD_DIR/$VARIANT-trust.bin" "$STAGING_DIR_IMAGE"/ + ;; + rk35*) + cp -fp "$PKG_BUILD_DIR/bin/$DDR" "$STAGING_DIR_IMAGE"/ + ;; + esac +else + echo -e "Unknown operation: $ACTION." + exit 1 +fi +set +x diff --git a/lede/package/boot/uboot-rockchip/Makefile b/lede/package/boot/uboot-rockchip/Makefile index 03ec322432..94d8a280fb 100644 --- a/lede/package/boot/uboot-rockchip/Makefile +++ b/lede/package/boot/uboot-rockchip/Makefile @@ -29,7 +29,7 @@ define U-Boot/nanopi-r2c-rk3328 NAME:=NanoPi R2C BUILD_DEVICES:= \ friendlyarm_nanopi-r2c - DEPENDS:=+PACKAGE_u-boot-nanopi-r2c-rk3328:trusted-firmware-a-rk3328 + DEPENDS:=+PACKAGE_u-boot-nanopi-r2c-rk3328:arm-trusted-firmware-rk3328 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk322xh_bl31_v1.49.elf USE_RKBIN:=1 @@ -41,7 +41,7 @@ define U-Boot/nanopi-r2s-rk3328 BUILD_DEVICES:= \ friendlyarm_nanopi-r2s \ friendlyarm_nanopi-neo3 - DEPENDS:=+PACKAGE_u-boot-nanopi-r2s-rk3328:trusted-firmware-a-rk3328 + DEPENDS:=+PACKAGE_u-boot-nanopi-r2s-rk3328:arm-trusted-firmware-rk3328 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk322xh_bl31_v1.49.elf USE_RKBIN:=1 @@ -52,7 +52,7 @@ define U-Boot/orangepi-r1-plus-rk3328 NAME:=Orange Pi R1 Plus BUILD_DEVICES:= \ xunlong_orangepi-r1-plus - DEPENDS:=+PACKAGE_u-boot-orangepi-r1-plus-rk3328:trusted-firmware-a-rk3328 + DEPENDS:=+PACKAGE_u-boot-orangepi-r1-plus-rk3328:arm-trusted-firmware-rk3328 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk322xh_bl31_v1.49.elf USE_RKBIN:=1 @@ -63,7 +63,7 @@ define U-Boot/orangepi-r1-plus-lts-rk3328 NAME:=Orange Pi R1 Plus LTS BUILD_DEVICES:= \ xunlong_orangepi-r1-plus-lts - DEPENDS:=+PACKAGE_u-boot-orangepi-r1-plus-lts-rk3328:trusted-firmware-a-rk3328 + DEPENDS:=+PACKAGE_u-boot-orangepi-r1-plus-lts-rk3328:arm-trusted-firmware-rk3328 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk322xh_bl31_v1.49.elf USE_RKBIN:=1 @@ -87,7 +87,7 @@ define U-Boot/nanopi-r4s-rk3399 NAME:=NanoPi R4S BUILD_DEVICES:= \ friendlyarm_nanopi-r4s - DEPENDS:=+PACKAGE_u-boot-nanopi-r4s-rk3399:trusted-firmware-a-rk3399 + DEPENDS:=+PACKAGE_u-boot-nanopi-r4s-rk3399:arm-trusted-firmware-rk3399 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk3399_bl31_v1.36.elf USE_RKBIN:=1 @@ -98,7 +98,7 @@ define U-Boot/nanopi-r4se-rk3399 NAME:=NanoPi R4SE BUILD_DEVICES:= \ friendlyarm_nanopi-r4se - DEPENDS:=+PACKAGE_u-boot-nanopi-r4se-rk3399:trusted-firmware-a-rk3399 + DEPENDS:=+PACKAGE_u-boot-nanopi-r4se-rk3399:arm-trusted-firmware-rk3399 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk3399_bl31_v1.36.elf USE_RKBIN:=1 @@ -129,7 +129,7 @@ define U-Boot/rongpin-king3399-rk3399 NAME:=Rongpin King3399 BUILD_DEVICES:= \ rongpin_king3399 - DEPENDS:=+PACKAGE_u-boot-rongpin-king3399-rk3399:trusted-firmware-a-rk3399 + DEPENDS:=+PACKAGE_u-boot-rongpin-king3399-rk3399:arm-trusted-firmware-rk3399 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk3399_bl31_v1.36.elf USE_RKBIN:=1 @@ -140,7 +140,7 @@ define U-Boot/rocktech-mpc1903-rk3399 NAME:=Rocktech MPC1903 BUILD_DEVICES:= \ rocktech_mpc1903 - DEPENDS:=+PACKAGE_u-boot-rocktech-mpc1903-rk3399:trusted-firmware-a-rk3399 + DEPENDS:=+PACKAGE_u-boot-rocktech-mpc1903-rk3399:arm-trusted-firmware-rk3399 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk3399_bl31_v1.36.elf USE_RKBIN:=1 @@ -151,7 +151,7 @@ define U-Boot/sharevdi-h3399pc-rk3399 NAME:=SHAREVDI H3399PC BUILD_DEVICES:= \ sharevdi_h3399pc - DEPENDS:=+PACKAGE_u-boot-sharevdi-h3399pc-rk3399:trusted-firmware-a-rk3399 + DEPENDS:=+PACKAGE_u-boot-sharevdi-h3399pc-rk3399:arm-trusted-firmware-rk3399 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk3399_bl31_v1.36.elf USE_RKBIN:=1 @@ -162,7 +162,7 @@ define U-Boot/dilusense-dlfr100-rk3399 NAME:=Dilusense DLFR100 BUILD_DEVICES:= \ dilusense_dlfr100 - DEPENDS:=+PACKAGE_u-boot-dilusense-dlfr100-rk3399:trusted-firmware-a-rk3399 + DEPENDS:=+PACKAGE_u-boot-dilusense-dlfr100-rk3399:arm-trusted-firmware-rk3399 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk3399_bl31_v1.36.elf USE_RKBIN:=1 @@ -173,7 +173,7 @@ define U-Boot/xiaobao-nas-v1-rk3399 NAME:=Codinge Xiaobao NAS-I BUILD_DEVICES:= \ codinge_xiaobao-nas-v1 - DEPENDS:=+PACKAGE_u-boot-xiaobao-nas-v1-rk3399:trusted-firmware-a-rk3399 + DEPENDS:=+PACKAGE_u-boot-xiaobao-nas-v1-rk3399:arm-trusted-firmware-rk3399 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk3399_bl31_v1.36.elf USE_RKBIN:=1 @@ -186,7 +186,7 @@ define U-Boot/panther-x2-rk3566 NAME:=Panther X2 BUILD_DEVICES:= \ panther_x2 - DEPENDS:=+PACKAGE_u-boot-panther-x2-rk3566:trusted-firmware-a-rk3566 + DEPENDS:=+PACKAGE_u-boot-panther-x2-rk3566:arm-trusted-firmware-rk3566 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk3568_bl31_v1.43.elf DDR:=rk3566_ddr_1056MHz_v1.18.bin @@ -199,7 +199,7 @@ define U-Boot/lyt-t68m-rk3568 NAME:=LYT T68M BUILD_DEVICES:= \ lyt_t68m - DEPENDS:=+PACKAGE_u-boot-lyt-t68m-rk3568:trusted-firmware-a-rk3568 + DEPENDS:=+PACKAGE_u-boot-lyt-t68m-rk3568:arm-trusted-firmware-rk3568 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk3568_bl31_v1.43.elf DDR:=rk3568_ddr_1560MHz_v1.18.bin @@ -211,7 +211,7 @@ define U-Boot/mrkaio-m68s-rk3568 BUILD_DEVICES:= \ ezpro_mrkaio-m68s \ ezpro_mrkaio-m68s-plus - DEPENDS:=+PACKAGE_u-boot-mrkaio-m68s-rk3568:trusted-firmware-a-rk3568 + DEPENDS:=+PACKAGE_u-boot-mrkaio-m68s-rk3568:arm-trusted-firmware-rk3568 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk3568_bl31_v1.43.elf DDR:=rk3568_ddr_1560MHz_v1.18.bin @@ -223,7 +223,7 @@ define U-Boot/nanopi-r5s-rk3568 BUILD_DEVICES:= \ friendlyarm_nanopi-r5c \ friendlyarm_nanopi-r5s - DEPENDS:=+PACKAGE_u-boot-nanopi-r5s-rk3568:trusted-firmware-a-rk3568 + DEPENDS:=+PACKAGE_u-boot-nanopi-r5s-rk3568:arm-trusted-firmware-rk3568 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk3568_bl31_v1.43.elf DDR:=rk3568_ddr_1560MHz_v1.18.bin @@ -236,7 +236,7 @@ define U-Boot/opc-h68k-rk3568 hinlink_opc-h66k \ hinlink_opc-h68k \ hinlink_opc-h69k - DEPENDS:=+PACKAGE_u-boot-opc-h68k-rk3568:trusted-firmware-a-rk3568 + DEPENDS:=+PACKAGE_u-boot-opc-h68k-rk3568:arm-trusted-firmware-rk3568 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk3568_bl31_v1.43.elf DDR:=rk3568_ddr_1560MHz_v1.18.bin @@ -247,7 +247,7 @@ define U-Boot/photonicat-rk3568 NAME:=Ariaboard Photonicat BUILD_DEVICES:= \ ariaboard_photonicat - DEPENDS:=+PACKAGE_u-boot-photonicat-rk3568:trusted-firmware-a-rk3568 + DEPENDS:=+PACKAGE_u-boot-photonicat-rk3568:arm-trusted-firmware-rk3568 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk3568_bl31_v1.43.elf DDR:=rk3568_ddr_1560MHz_v1.18.bin @@ -258,7 +258,7 @@ define U-Boot/radxa-e25-rk3568 NAME:=Radxa E25 BUILD_DEVICES:= \ radxa_e25 - DEPENDS:=+PACKAGE_u-boot-radxa-e25-rk3568:trusted-firmware-a-rk3568 + DEPENDS:=+PACKAGE_u-boot-radxa-e25-rk3568:arm-trusted-firmware-rk3568 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk3568_bl31_v1.43.elf DDR:=rk3568_ddr_1560MHz_v1.18.bin @@ -269,7 +269,7 @@ define U-Boot/rock-3a-rk3568 NAME:=ROCK3 Model A BUILD_DEVICES:= \ radxa_rock-3a - DEPENDS:=+PACKAGE_u-boot-rock-3a-rk3568:trusted-firmware-a-rk3568 + DEPENDS:=+PACKAGE_u-boot-rock-3a-rk3568:arm-trusted-firmware-rk3568 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk3568_bl31_v1.43.elf DDR:=rk3568_ddr_1560MHz_v1.18.bin @@ -281,7 +281,7 @@ define U-Boot/r66s-rk3568 BUILD_DEVICES:= \ fastrhino_r66s \ fastrhino_r68s - DEPENDS:=+PACKAGE_u-boot-r66s-rk3568:trusted-firmware-a-rk3568 + DEPENDS:=+PACKAGE_u-boot-r66s-rk3568:arm-trusted-firmware-rk3568 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk3568_bl31_v1.43.elf DDR:=rk3568_ddr_1560MHz_v1.18.bin @@ -292,7 +292,7 @@ define U-Boot/seewo-sv21-rk3568 NAME:=Seewo sv21-rk3568 BUILD_DEVICES:= \ seewo_sv21-rk3568 - DEPENDS:=+PACKAGE_u-boot-seewo-sv21-rk3568:trusted-firmware-a-rk3568 + DEPENDS:=+PACKAGE_u-boot-seewo-sv21-rk3568:arm-trusted-firmware-rk3568 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk3568_bl31_v1.43.elf DDR:=rk3568_ddr_1560MHz_v1.18.bin @@ -303,7 +303,7 @@ define U-Boot/station-p2-rk3568 NAME:=StationP2 BUILD_DEVICES:= \ firefly_station-p2 - DEPENDS:=+PACKAGE_u-boot-station-p2-rk3568:trusted-firmware-a-rk3568 + DEPENDS:=+PACKAGE_u-boot-station-p2-rk3568:arm-trusted-firmware-rk3568 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk3568_bl31_v1.43.elf DDR:=rk3568_ddr_1560MHz_v1.18.bin @@ -314,7 +314,7 @@ define U-Boot/advantech-rsb4810-rk3568 NAME:=Advantech RSB4810 BUILD_DEVICES:= \ advantech_rsb4810 - DEPENDS:=+PACKAGE_u-boot-advantech-rsb4810-rk3568:trusted-firmware-a-rk3568 + DEPENDS:=+PACKAGE_u-boot-advantech-rsb4810-rk3568:arm-trusted-firmware-rk3568 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk3568_bl31_v1.43.elf DDR:=rk3568_ddr_1560MHz_v1.18.bin @@ -354,12 +354,12 @@ UBOOT_MAKE_FLAGS += \ PATH=$(STAGING_DIR_HOST)/bin:$(PATH) \ BL31=$(STAGING_DIR_IMAGE)/$(ATF) -ifeq ($(CONFIG_PACKAGE_trusted-firmware-a-rk3568),y) +ifeq ($(CONFIG_PACKAGE_arm-trusted-firmware-rk3566),y) UBOOT_MAKE_FLAGS += \ ROCKCHIP_TPL=$(STAGING_DIR_IMAGE)/$(DDR) endif -ifeq ($(CONFIG_PACKAGE_trusted-firmware-a-rk3566),y) +ifeq ($(CONFIG_PACKAGE_arm-trusted-firmware-rk3568),y) UBOOT_MAKE_FLAGS += \ ROCKCHIP_TPL=$(STAGING_DIR_IMAGE)/$(DDR) endif diff --git a/lede/tools/automake/Makefile b/lede/tools/automake/Makefile index 85ccc0ded4..7f129c1d83 100644 --- a/lede/tools/automake/Makefile +++ b/lede/tools/automake/Makefile @@ -8,16 +8,16 @@ include $(TOPDIR)/rules.mk PKG_NAME:=automake PKG_CPE_ID:=cpe:/a:gnu:automake -PKG_VERSION:=1.15.1 +PKG_VERSION:=1.16.5 +PKG_API_VERSION:=$(word 2,$(subst ., ,$(PKG_VERSION))) -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@GNU/automake -PKG_HASH:=af6ba39142220687c500f79b4aa2f181d9b24e4f8d8ec497cea4ba26c64bedaf +PKG_HASH:=07bd24ad08a64bc17250ce09ec56e921d6343903943e99ccf63bbf0705e34605 include $(INCLUDE_DIR)/host-build.mk HOST_CONFIGURE_ARGS += \ - --datarootdir=$(STAGING_DIR_HOST)/share \ --disable-silent-rules HOST_CONFIGURE_VARS += \ @@ -31,20 +31,23 @@ endef define Host/Install # remove old automake resources to avoid version conflicts - rm -rf $(STAGING_DIR_HOST)/share/aclocal-[0-9]* - rm -rf $(STAGING_DIR_HOST)/share/automake-[0-9]* - $(MAKE) -C $(HOST_BUILD_DIR) install + $(call Host/Uninstall) + $(call Host/Compile/Default,install) mv $(STAGING_DIR_HOST)/bin/aclocal $(STAGING_DIR_HOST)/bin/aclocal.real $(INSTALL_BIN) ./files/aclocal $(STAGING_DIR_HOST)/bin - ln -sf aclocal $(STAGING_DIR_HOST)/bin/aclocal-1.9 - ln -sf aclocal $(STAGING_DIR_HOST)/bin/aclocal-1.10 - ln -sf aclocal $(STAGING_DIR_HOST)/bin/aclocal-1.11 - ln -sf aclocal $(STAGING_DIR_HOST)/bin/aclocal-1.11.6 - ln -sf aclocal $(STAGING_DIR_HOST)/bin/aclocal-1.15 + ( \ + api=$(PKG_API_VERSION); \ + while [ "$$$$api" -ge 11 ]; do \ + ln -sf aclocal "$(STAGING_DIR_HOST)/bin/aclocal-1.$$$$api"; \ + api=$$$$(($$$$api - 1)); \ + done; \ + ) endef define Host/Uninstall -$(call Host/Compile/Default,uninstall) + rm -rf $(STAGING_DIR_HOST)/share/aclocal-[0-9]* + rm -rf $(STAGING_DIR_HOST)/share/automake-[0-9]* endef $(eval $(call HostBuild)) diff --git a/lede/tools/automake/patches/000-relocatable.patch b/lede/tools/automake/patches/000-relocatable.patch index 02382ba8c8..0b61eaeb45 100644 --- a/lede/tools/automake/patches/000-relocatable.patch +++ b/lede/tools/automake/patches/000-relocatable.patch @@ -1,44 +1,34 @@ --- a/lib/Automake/Config.in +++ b/lib/Automake/Config.in -@@ -32,7 +32,7 @@ our $PACKAGE = '@PACKAGE@'; +@@ -34,7 +34,7 @@ our $PACKAGE = '@PACKAGE@'; our $PACKAGE_BUGREPORT = '@PACKAGE_BUGREPORT@'; our $VERSION = '@VERSION@'; our $RELEASE_YEAR = '@RELEASE_YEAR@'; --our $libdir = '@datadir@/@PACKAGE@-@APIVERSION@'; +-our $libdir = $ENV{"AUTOMAKE_LIBDIR"} || '@datadir@/@PACKAGE@-@APIVERSION@'; +our $libdir = $ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/share/@PACKAGE@-@APIVERSION@' : '@datadir@/@PACKAGE@-@APIVERSION@'; our $perl_threads = 0; # We need at least this version for CLONE support. --- a/bin/aclocal.in +++ b/bin/aclocal.in -@@ -1,10 +1,12 @@ --#!@PERL@ -w -+#!@PERL@ - # -*- perl -*- - # @configure_input@ - - eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac' - if 0; +@@ -23,9 +23,11 @@ use 5.006; + use strict; + use warnings FATAL => 'all'; +$^W = 1; + - # aclocal - create aclocal.m4 by scanning configure.ac - - # Copyright (C) 1996-2017 Free Software Foundation, Inc. -@@ -27,7 +29,7 @@ eval 'case $# in 0) exec @PERL@ -S "$0"; - BEGIN { -- @Aclocal::perl_libdirs = ('@datadir@/@PACKAGE@-@APIVERSION@') -+ @Aclocal::perl_libdirs = ($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/share/@PACKAGE@-@APIVERSION@' : '@datadir@/@PACKAGE@-@APIVERSION@') - unless @Aclocal::perl_libdirs; - unshift @INC, @Aclocal::perl_libdirs; +- unshift (@INC, '@datadir@/@PACKAGE@-@APIVERSION@') ++ unshift (@INC, ($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/share/@PACKAGE@-@APIVERSION@' : '@datadir@/@PACKAGE@-@APIVERSION@')) + unless $ENV{AUTOMAKE_UNINSTALLED}; } -@@ -69,8 +71,8 @@ $perl_threads = 0; + +@@ -65,8 +67,8 @@ $perl_threads = 0; # ACLOCAL_PATH environment variable, and reset with the '--system-acdir' # option. my @user_includes = (); --my @automake_includes = ("@datadir@/aclocal-$APIVERSION"); +-my @automake_includes = ('@datadir@/aclocal-' . $APIVERSION); -my @system_includes = ('@datadir@/aclocal'); +my @automake_includes = ($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . "/share/aclocal-$APIVERSION" : "@datadir@/aclocal-$APIVERSION"); +my @system_includes = ($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/share/aclocal' : '@datadir@/aclocal'); @@ -47,50 +37,16 @@ my $install = 0; --- a/bin/automake.in +++ b/bin/automake.in -@@ -1,10 +1,12 @@ --#!@PERL@ -w -+#!@PERL@ - # -*- perl -*- - # @configure_input@ - - eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac' - if 0; +@@ -26,9 +26,11 @@ use 5.006; + use strict; + use warnings FATAL => 'all'; +$^W = 1; + - # automake - create Makefile.in from Makefile.am - # Copyright (C) 1994-2017 Free Software Foundation, Inc. - -@@ -31,7 +33,7 @@ use strict; - BEGIN { -- @Automake::perl_libdirs = ('@datadir@/@PACKAGE@-@APIVERSION@') -+ @Automake::perl_libdirs = ($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/share/@PACKAGE@-@APIVERSION@' : '@datadir@/@PACKAGE@-@APIVERSION@') - unless @Automake::perl_libdirs; - unshift @INC, @Automake::perl_libdirs; +- unshift (@INC, '@datadir@/@PACKAGE@-@APIVERSION@') ++ unshift (@INC, ($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/share/@PACKAGE@-@APIVERSION@' : '@datadir@/@PACKAGE@-@APIVERSION@')) + unless $ENV{AUTOMAKE_UNINSTALLED}; ---- a/t/wrap/aclocal.in -+++ b/t/wrap/aclocal.in -@@ -1,6 +1,8 @@ --#!@PERL@ -w -+#!@PERL@ - # @configure_input@ - -+$^W = 1; -+ - # Copyright (C) 2012-2017 Free Software Foundation, Inc. - - # This program is free software; you can redistribute it and/or modify ---- a/t/wrap/automake.in -+++ b/t/wrap/automake.in -@@ -1,6 +1,8 @@ --#!@PERL@ -w -+#!@PERL@ - # @configure_input@ - -+$^W = 1; -+ - # Copyright (C) 2012-2017 Free Software Foundation, Inc. - - # This program is free software; you can redistribute it and/or modify + # Override SHELL. This is required on DJGPP so that system() uses diff --git a/lede/tools/automake/patches/100-aclocal-skip-not-existing-directories.patch b/lede/tools/automake/patches/100-aclocal-skip-not-existing-directories.patch index ad019ddd1a..a0d04e21e5 100644 --- a/lede/tools/automake/patches/100-aclocal-skip-not-existing-directories.patch +++ b/lede/tools/automake/patches/100-aclocal-skip-not-existing-directories.patch @@ -1,6 +1,6 @@ --- a/bin/aclocal.in +++ b/bin/aclocal.in -@@ -356,6 +356,12 @@ sub scan_m4_dirs ($$@) +@@ -371,6 +371,12 @@ sub scan_m4_dirs ($$@) foreach my $m4dir (@dirlist) { diff --git a/lede/tools/automake/patches/101-do-not-require-files.patch b/lede/tools/automake/patches/101-do-not-require-files.patch new file mode 100644 index 0000000000..3a8c9fcb47 --- /dev/null +++ b/lede/tools/automake/patches/101-do-not-require-files.patch @@ -0,0 +1,29 @@ +--- a/bin/automake.in ++++ b/bin/automake.in +@@ -4513,7 +4513,7 @@ sub handle_gettext () + && grep ($_ eq 'intl', @subdirs)); + } + +- require_file ($ac_gettext_location, GNU, 'ABOUT-NLS'); ++ require_file ($ac_gettext_location, GNITS, 'ABOUT-NLS'); + } + + # Emit makefile footer. +@@ -5641,7 +5641,7 @@ sub check_gnu_standards () + # otherwise require non-.md. + my $required + = (! -f $file && -f "$file.md") ? "$file.md" : $file; +- require_file ("$am_file.am", GNU, $required); ++ require_file ("$am_file.am", GNITS, $required); + } + + # Accept one of these three licenses; default to COPYING. +@@ -5655,7 +5655,7 @@ sub check_gnu_standards () + last; + } + } +- require_file ("$am_file.am", GNU, 'COPYING') ++ require_file ("$am_file.am", GNITS, 'COPYING') + unless $license; + } + diff --git a/lede/tools/automake/patches/200-other-V-values-for-verbosity.patch b/lede/tools/automake/patches/200-other-V-values-for-verbosity.patch new file mode 100644 index 0000000000..1ea9d38b0e --- /dev/null +++ b/lede/tools/automake/patches/200-other-V-values-for-verbosity.patch @@ -0,0 +1,59 @@ +From: Bogdan Drozdowski +Date: Sat, 31 Dec 2022 20:17:35 +0100 +Subject: [PATCH] Allow other V values for verbosity + +--- + m4/silent.m4 | 2 +- + t/silent-gen.sh | 24 ++++++++++++++++++++++++ + 2 files changed, 25 insertions(+), 1 deletion(-) + +--- a/m4/silent.m4 ++++ b/m4/silent.m4 +@@ -43,7 +43,7 @@ else + fi]) + if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. +- AM_V='$(V)' ++ AM_V='$(shell if ( test "x$(V)" = "x0" ); then echo 0; elif ( test "x$(V)" = "x" ); then echo $(AM_DEFAULT_VERBOSITY); else echo 1; fi)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' + else + AM_V=$AM_DEFAULT_VERBOSITY +--- a/t/silent-gen.sh ++++ b/t/silent-gen.sh +@@ -54,6 +54,18 @@ grep 'cp ' stdout + grep 'echo ' stdout + + $MAKE clean ++run_make -O V=99 ++grep 'GEN ' stdout && exit 1 ++grep 'cp ' stdout ++grep 'echo ' stdout ++ ++$MAKE clean ++run_make -O V=vvv ++grep 'GEN ' stdout && exit 1 ++grep 'cp ' stdout ++grep 'echo ' stdout ++ ++$MAKE clean + run_make -O V=0 + grep 'GEN .*foo' stdout + grep 'cp ' stdout && exit 1 +@@ -78,5 +90,17 @@ run_make -O V=1 + grep 'GEN ' stdout && exit 1 + grep 'cp ' stdout + grep 'echo ' stdout ++ ++$MAKE clean ++run_make -O V=99 ++grep 'GEN ' stdout && exit 1 ++grep 'cp ' stdout ++grep 'echo ' stdout ++ ++$MAKE clean ++run_make -O V=v ++grep 'GEN ' stdout && exit 1 ++grep 'cp ' stdout ++grep 'echo ' stdout + + : diff --git a/mihomo/adapter/outbound/dns.go b/mihomo/adapter/outbound/dns.go index 21a5b2b77f..8686b288e2 100644 --- a/mihomo/adapter/outbound/dns.go +++ b/mihomo/adapter/outbound/dns.go @@ -89,14 +89,14 @@ func (d *dnsPacketConn) WriteTo(p []byte, addr net.Addr) (n int, err error) { return len(p), nil } - ctx, cancel := context.WithTimeout(d.ctx, resolver.DefaultDnsRelayTimeout) - defer cancel() - buf := pool.Get(resolver.SafeDnsPacketSize) put := func() { _ = pool.Put(buf) } copy(buf, p) // avoid p be changed after WriteTo returned go func() { // don't block the WriteTo function + ctx, cancel := context.WithTimeout(d.ctx, resolver.DefaultDnsRelayTimeout) + defer cancel() + buf, err = resolver.RelayDnsPacket(ctx, buf[:len(p)], buf) if err != nil { put() diff --git a/mihomo/component/resolver/relay.go b/mihomo/component/resolver/relay.go index 27b25af1d9..818b4152a3 100644 --- a/mihomo/component/resolver/relay.go +++ b/mihomo/component/resolver/relay.go @@ -46,7 +46,7 @@ func RelayDnsConn(ctx context.Context, conn net.Conn, readTimeout time.Duration) ctx, cancel := context.WithTimeout(ctx, DefaultDnsRelayTimeout) defer cancel() inData := buff[:n] - msg, err := RelayDnsPacket(ctx, inData, buff) + msg, err := relayDnsPacket(ctx, inData, buff, 0) if err != nil { return err } @@ -69,7 +69,7 @@ func RelayDnsConn(ctx context.Context, conn net.Conn, readTimeout time.Duration) return nil } -func RelayDnsPacket(ctx context.Context, payload []byte, target []byte) ([]byte, error) { +func relayDnsPacket(ctx context.Context, payload []byte, target []byte, maxSize int) ([]byte, error) { msg := &D.Msg{} if err := msg.Unpack(payload); err != nil { return nil, err @@ -83,6 +83,14 @@ func RelayDnsPacket(ctx context.Context, payload []byte, target []byte) ([]byte, } r.SetRcode(msg, r.Rcode) + if maxSize > 0 { + r.Truncate(maxSize) + } r.Compress = true return r.PackBuffer(target) } + +// RelayDnsPacket will truncate udp message up to SafeDnsPacketSize +func RelayDnsPacket(ctx context.Context, payload []byte, target []byte) ([]byte, error) { + return relayDnsPacket(ctx, payload, target, SafeDnsPacketSize) +} diff --git a/mihomo/go.mod b/mihomo/go.mod index 8cdb861202..e3800d645b 100644 --- a/mihomo/go.mod +++ b/mihomo/go.mod @@ -20,7 +20,7 @@ require ( github.com/mdlayher/netlink v1.7.2 github.com/metacubex/gopacket v1.1.20-0.20230608035415-7e2f98a3e759 github.com/metacubex/quic-go v0.42.1-0.20240319071510-a251e5c66a5c - github.com/metacubex/sing-quic v0.0.0-20240310154810-47bca850fc01 + github.com/metacubex/sing-quic v0.0.0-20240409064816-c16ac6b1f4b4 github.com/metacubex/sing-shadowsocks v0.2.6 github.com/metacubex/sing-shadowsocks2 v0.2.0 github.com/metacubex/sing-tun v0.2.6 diff --git a/mihomo/go.sum b/mihomo/go.sum index b1ca415e6a..05d4683c24 100644 --- a/mihomo/go.sum +++ b/mihomo/go.sum @@ -108,8 +108,8 @@ github.com/metacubex/quic-go v0.42.1-0.20240319071510-a251e5c66a5c h1:AhaPKvVqF3 github.com/metacubex/quic-go v0.42.1-0.20240319071510-a251e5c66a5c/go.mod h1:iGx3Y1zynls/FjFgykLSqDcM81U0IKePRTXEz5g3iiQ= github.com/metacubex/sing v0.0.0-20240408015159-aa61c96df764 h1:+czGKoynxYA90YaL3NlCAIJHnlqwoUlLWgmOhdm5ZU8= github.com/metacubex/sing v0.0.0-20240408015159-aa61c96df764/go.mod h1:+60H3Cm91RnL9dpVGWDPHt0zTQImO9Vfqt9a4rSambI= -github.com/metacubex/sing-quic v0.0.0-20240310154810-47bca850fc01 h1:5INHs85Gp1JZsdF7fQp1pXUjfJOX2dhwZjuUQWJVSt8= -github.com/metacubex/sing-quic v0.0.0-20240310154810-47bca850fc01/go.mod h1:WyY0zYxv+o+18R/Ece+QFontlgXoobKbNqbtYn2zjz8= +github.com/metacubex/sing-quic v0.0.0-20240409064816-c16ac6b1f4b4 h1:JB+BgUgQVicS1oGiw63c0xQWEAkUeuTylDy5WIaco7o= +github.com/metacubex/sing-quic v0.0.0-20240409064816-c16ac6b1f4b4/go.mod h1:WyY0zYxv+o+18R/Ece+QFontlgXoobKbNqbtYn2zjz8= github.com/metacubex/sing-shadowsocks v0.2.6 h1:6oEB3QcsFYnNiFeoevcXrCwJ3sAablwVSgtE9R3QeFQ= github.com/metacubex/sing-shadowsocks v0.2.6/go.mod h1:zIkMeSnb8Mbf4hdqhw0pjzkn1d99YJ3JQm/VBg5WMTg= github.com/metacubex/sing-shadowsocks2 v0.2.0 h1:hqwT/AfI5d5UdPefIzR6onGHJfDXs5zgOM5QSgaM/9A= diff --git a/openwrt-packages/alist/Makefile b/openwrt-packages/alist/Makefile index 9b1b73bb12..3c63485cf7 100644 --- a/openwrt-packages/alist/Makefile +++ b/openwrt-packages/alist/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=alist PKG_VERSION:=3.33.0 PKG_WEB_VERSION:=3.33.0 -PKG_RELEASE:=5 +PKG_RELEASE:=6 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/alist-org/alist/tar.gz/v$(PKG_VERSION)? @@ -58,6 +58,14 @@ define Package/$(PKG_NAME)/description A file list program that supports multiple storage, powered by Gin and Solidjs. endef +ifeq ($(ARCH),arm) + ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) + ifeq ($(ARM_CPU_FEATURES),) + TARGET_CFLAGS:= + TARGET_LDFLAGS:= + endif +endif + ifneq ($(CONFIG_USE_MUSL),) TARGET_CFLAGS += -D_LARGEFILE64_SOURCE endif diff --git a/openwrt-packages/luci-app-ddns-go/Makefile b/openwrt-packages/luci-app-ddns-go/Makefile index 9bb6936a3d..f288b308a0 100644 --- a/openwrt-packages/luci-app-ddns-go/Makefile +++ b/openwrt-packages/luci-app-ddns-go/Makefile @@ -7,8 +7,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ddns-go -PKG_VERSION:=1.4.2 -PKG_RELEASE:=20240227 +PKG_VERSION:=1.4.5 +PKG_RELEASE:=20240409 LUCI_TITLE:=LuCI Support for Dynamic ddns-go Client LUCI_DEPENDS:=+ddns-go diff --git a/openwrt-packages/luci-app-ddns-go/luasrc/model/cbi/ddns-go.lua b/openwrt-packages/luci-app-ddns-go/luasrc/model/cbi/ddns-go.lua index 4e88a9f598..8c8e29c149 100644 --- a/openwrt-packages/luci-app-ddns-go/luasrc/model/cbi/ddns-go.lua +++ b/openwrt-packages/luci-app-ddns-go/luasrc/model/cbi/ddns-go.lua @@ -28,16 +28,22 @@ o.default=5 o = s:option(Flag,"skipverify",translate("Skip verifying certificates")) o.default = 0 -o = s:option(ListValue, "dns",translate("Specify DNS resolution server")) +o = s:option(Value, "dns",translate("Specify DNS resolution server")) o:value("223.5.5.5", ""..translate("Ali").." DNS (223.5.5.5)") o:value("223.6.6.6", ""..translate("Ali").." DNS (223.6.6.6)") o:value("119.29.29.29", ""..translate("Tencent").." DNS (119.29.29.29)") o:value("1.1.1.1", translate("CloudFlare DNS(1.1.1.1)")) +o:value("8.8.4.4", ""..translate("Google").." DNS(8.8.4.4)") +o:value("8.8.8.8", ""..translate("Google").." DNS(8.8.8.8)") o.default = "223.5.5.5" o = s:option(Flag,"noweb",translate("Do not start web services")) o.default = 0 +o = s:option(Value, "delay", translate("Delayed Start (seconds)")) +o.datatype = "and(uinteger,min(0))" +o.default = "60" + m.apply_on_parse = true m.on_after_apply = function(self,map) luci.sys.exec("/etc/init.d/ddns-go restart") diff --git a/openwrt-packages/luci-app-ddns-go/po/zh-cn/ddns-go.po b/openwrt-packages/luci-app-ddns-go/po/zh-cn/ddns-go.po index f156db9fba..b94df01253 100644 --- a/openwrt-packages/luci-app-ddns-go/po/zh-cn/ddns-go.po +++ b/openwrt-packages/luci-app-ddns-go/po/zh-cn/ddns-go.po @@ -55,3 +55,5 @@ msgstr "指定DNS解析服务器" msgid "Do not start web services" msgstr "不启动web服务" +msgid "Delayed Start (seconds)" +msgstr "开机延时启动(秒)" diff --git a/openwrt-packages/luci-app-ddns-go/po/zh_Hans/ddns-go.po b/openwrt-packages/luci-app-ddns-go/po/zh_Hans/ddns-go.po index f156db9fba..b94df01253 100644 --- a/openwrt-packages/luci-app-ddns-go/po/zh_Hans/ddns-go.po +++ b/openwrt-packages/luci-app-ddns-go/po/zh_Hans/ddns-go.po @@ -55,3 +55,5 @@ msgstr "指定DNS解析服务器" msgid "Do not start web services" msgstr "不启动web服务" +msgid "Delayed Start (seconds)" +msgstr "开机延时启动(秒)" diff --git a/openwrt-passwall/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua b/openwrt-passwall/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua index 1c66608a32..f6570bf797 100644 --- a/openwrt-passwall/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua +++ b/openwrt-passwall/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua @@ -276,7 +276,7 @@ if api.fs.access(gfwlist_path) then end if api.fs.access(chnlist_path) then - s:tab("chn_list", translate("China List")) + s:tab("chn_list", translate("China List") .. "(" .. translate("Domain") .. ")") o = s:taboption("chn_list", TextValue, "chn_list", "") o.readonly = true o.rows = 45 @@ -287,7 +287,7 @@ if api.fs.access(chnlist_path) then end if api.fs.access(chnroute_path) then - s:tab("chnroute_list", translate("China List")) + s:tab("chnroute_list", translate("China List") .. "(IP)") o = s:taboption("chnroute_list", TextValue, "chnroute_list", "") o.readonly = true o.rows = 45 diff --git a/openwrt-passwall/luci-app-passwall/luasrc/model/cbi/passwall/client/type/hysteria2.lua b/openwrt-passwall/luci-app-passwall/luasrc/model/cbi/passwall/client/type/hysteria2.lua index 1ce53af544..a8826ca380 100644 --- a/openwrt-passwall/luci-app-passwall/luasrc/model/cbi/passwall/client/type/hysteria2.lua +++ b/openwrt-passwall/luci-app-passwall/luasrc/model/cbi/passwall/client/type/hysteria2.lua @@ -56,11 +56,12 @@ o.rewrite_option = o.option o = s:option(Value, option_name("hop_interval"), translate("Hop Interval")) o.rewrite_option = o.option +o = s:option(Value, option_name("recv_window"), translate("QUIC stream receive window")) +o.rewrite_option = o.option + o = s:option(Value, option_name("recv_window_conn"), translate("QUIC connection receive window")) o.rewrite_option = o.option -o = s:option(Value, option_name("recv_window"), translate("QUIC stream receive window")) -o.rewrite_option = o.option o = s:option(Value, option_name("idle_timeout"), translate("Idle Timeout")) o.rewrite_option = o.option diff --git a/openwrt-passwall2/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/hysteria2.lua b/openwrt-passwall2/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/hysteria2.lua index cc31ecf771..c612af3c68 100644 --- a/openwrt-passwall2/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/hysteria2.lua +++ b/openwrt-passwall2/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/hysteria2.lua @@ -56,10 +56,10 @@ o.rewrite_option = o.option o = s:option(Value, option_name("hop_interval"), translate("Hop Interval")) o.rewrite_option = o.option -o = s:option(Value, option_name("recv_window_conn"), translate("QUIC stream receive window")) +o = s:option(Value, option_name("recv_window"), translate("QUIC stream receive window")) o.rewrite_option = o.option -o = s:option(Value, option_name("recv_window"), translate("QUIC connection receive window")) +o = s:option(Value, option_name("recv_window_conn"), translate("QUIC connection receive window")) o.rewrite_option = o.option o = s:option(Value, option_name("idle_timeout"), translate("Idle Timeout")) diff --git a/openwrt-passwall2/luci-app-passwall2/root/usr/share/passwall2/nftables.sh b/openwrt-passwall2/luci-app-passwall2/root/usr/share/passwall2/nftables.sh index e502ed866d..9455d4a866 100755 --- a/openwrt-passwall2/luci-app-passwall2/root/usr/share/passwall2/nftables.sh +++ b/openwrt-passwall2/luci-app-passwall2/root/usr/share/passwall2/nftables.sh @@ -818,7 +818,7 @@ add_firewall_rule() { [ "$accept_icmpv6" = "1" ] && { nft "add rule inet fw4 PSW2_ICMP_REDIRECT oif lo meta l4proto icmpv6 ip6 daddr $FAKE_IP_6 counter redirect" - nft "add rule inet fw4 PSW2_ICMP_REDIRECT oif lo meta l4proto counter redirect" + nft "add rule inet fw4 PSW2_ICMP_REDIRECT oif lo meta l4proto icmpv6 counter redirect" nft "add rule inet fw4 PSW2_ICMP_REDIRECT oif lo meta l4proto icmpv6 counter return" } diff --git a/ryujinx/src/ARMeilleure/Instructions/InstEmitSimdArithmetic.cs b/ryujinx/src/ARMeilleure/Instructions/InstEmitSimdArithmetic.cs index 543aab0236..13d9fac683 100644 --- a/ryujinx/src/ARMeilleure/Instructions/InstEmitSimdArithmetic.cs +++ b/ryujinx/src/ARMeilleure/Instructions/InstEmitSimdArithmetic.cs @@ -2426,7 +2426,11 @@ namespace ARMeilleure.Instructions } else if (Optimizations.FastFP && Optimizations.UseSse41 && sizeF == 0) { - Operand res = EmitSse41Round32Exp8OpF(context, context.AddIntrinsic(Intrinsic.X86Rsqrtss, GetVec(op.Rn)), scalar: true); + // RSQRTSS handles subnormals as zero, which differs from Arm, so we can't use it here. + + Operand res = context.AddIntrinsic(Intrinsic.X86Sqrtss, GetVec(op.Rn)); + res = context.AddIntrinsic(Intrinsic.X86Rcpss, res); + res = EmitSse41Round32Exp8OpF(context, res, scalar: true); context.Copy(GetVec(op.Rd), context.VectorZeroUpper96(res)); } @@ -2451,7 +2455,11 @@ namespace ARMeilleure.Instructions } else if (Optimizations.FastFP && Optimizations.UseSse41 && sizeF == 0) { - Operand res = EmitSse41Round32Exp8OpF(context, context.AddIntrinsic(Intrinsic.X86Rsqrtps, GetVec(op.Rn)), scalar: false); + // RSQRTPS handles subnormals as zero, which differs from Arm, so we can't use it here. + + Operand res = context.AddIntrinsic(Intrinsic.X86Sqrtps, GetVec(op.Rn)); + res = context.AddIntrinsic(Intrinsic.X86Rcpps, res); + res = EmitSse41Round32Exp8OpF(context, res, scalar: false); if (op.RegisterSize == RegisterSize.Simd64) { diff --git a/ryujinx/src/ARMeilleure/Translation/PTC/Ptc.cs b/ryujinx/src/ARMeilleure/Translation/PTC/Ptc.cs index f987284fa1..58f065342e 100644 --- a/ryujinx/src/ARMeilleure/Translation/PTC/Ptc.cs +++ b/ryujinx/src/ARMeilleure/Translation/PTC/Ptc.cs @@ -29,7 +29,7 @@ namespace ARMeilleure.Translation.PTC private const string OuterHeaderMagicString = "PTCohd\0\0"; private const string InnerHeaderMagicString = "PTCihd\0\0"; - private const uint InternalVersion = 6613; //! To be incremented manually for each change to the ARMeilleure project. + private const uint InternalVersion = 6634; //! To be incremented manually for each change to the ARMeilleure project. private const string ActualDir = "0"; private const string BackupDir = "1"; diff --git a/ryujinx/src/Ryujinx.Graphics.Gpu/Image/TextureBindingsArrayCache.cs b/ryujinx/src/Ryujinx.Graphics.Gpu/Image/TextureBindingsArrayCache.cs index 70ea1f6b91..4645317c4f 100644 --- a/ryujinx/src/Ryujinx.Graphics.Gpu/Image/TextureBindingsArrayCache.cs +++ b/ryujinx/src/Ryujinx.Graphics.Gpu/Image/TextureBindingsArrayCache.cs @@ -224,7 +224,8 @@ namespace Ryujinx.Graphics.Gpu.Image /// Synchronizes memory for all textures in the array. /// /// Indicates if the texture may be modified by the access - public void SynchronizeMemory(bool isStore) + /// Indicates if the texture should be blacklisted for scaling + public void SynchronizeMemory(bool isStore, bool blacklistScale) { foreach (Texture texture in Textures.Keys) { @@ -234,6 +235,13 @@ namespace Ryujinx.Graphics.Gpu.Image { texture.SignalModified(); } + + if (blacklistScale && texture.ScaleMode != TextureScaleMode.Blacklisted) + { + // Scaling textures used on arrays is currently not supported. + + texture.BlacklistScale(); + } } } @@ -467,6 +475,7 @@ namespace Ryujinx.Graphics.Gpu.Image bool poolsModified = entry.PoolsModified(); bool isStore = bindingInfo.Flags.HasFlag(TextureUsageFlags.ImageStore); + bool resScaleUnsupported = bindingInfo.Flags.HasFlag(TextureUsageFlags.ResScaleUnsupported); ReadOnlySpan cachedTextureBuffer; ReadOnlySpan cachedSamplerBuffer; @@ -475,7 +484,7 @@ namespace Ryujinx.Graphics.Gpu.Image { if (entry.MatchesSequenceNumber(_context.SequenceNumber)) { - entry.SynchronizeMemory(isStore); + entry.SynchronizeMemory(isStore, resScaleUnsupported); if (isImage) { @@ -504,7 +513,7 @@ namespace Ryujinx.Graphics.Gpu.Image if (entry.MatchesBufferData(cachedTextureBuffer, cachedSamplerBuffer, separateSamplerBuffer, samplerWordOffset)) { - entry.SynchronizeMemory(isStore); + entry.SynchronizeMemory(isStore, resScaleUnsupported); if (isImage) { @@ -569,6 +578,13 @@ namespace Ryujinx.Graphics.Gpu.Image { texture.SignalModified(); } + + if (resScaleUnsupported && texture.ScaleMode != TextureScaleMode.Blacklisted) + { + // Scaling textures used on arrays is currently not supported. + + texture.BlacklistScale(); + } } Sampler sampler = samplerPool?.Get(samplerId); diff --git a/ryujinx/src/Ryujinx.Graphics.Gpu/Image/TextureCompatibility.cs b/ryujinx/src/Ryujinx.Graphics.Gpu/Image/TextureCompatibility.cs index 5b930fa47a..3cdeac9c5c 100644 --- a/ryujinx/src/Ryujinx.Graphics.Gpu/Image/TextureCompatibility.cs +++ b/ryujinx/src/Ryujinx.Graphics.Gpu/Image/TextureCompatibility.cs @@ -247,6 +247,10 @@ namespace Ryujinx.Graphics.Gpu.Image { return TextureMatchQuality.FormatAlias; } + else if (lhs.FormatInfo.Format == Format.D32FloatS8Uint && rhs.FormatInfo.Format == Format.R32G32Float) + { + return TextureMatchQuality.FormatAlias; + } } return lhs.FormatInfo.Format == rhs.FormatInfo.Format ? TextureMatchQuality.Perfect : TextureMatchQuality.NoMatch; diff --git a/ryujinx/src/Ryujinx.Horizon/Sdk/Audio/Detail/AudioRenderer.cs b/ryujinx/src/Ryujinx.Horizon/Sdk/Audio/Detail/AudioRenderer.cs index 54de072105..4d446bba76 100644 --- a/ryujinx/src/Ryujinx.Horizon/Sdk/Audio/Detail/AudioRenderer.cs +++ b/ryujinx/src/Ryujinx.Horizon/Sdk/Audio/Detail/AudioRenderer.cs @@ -61,6 +61,9 @@ namespace Ryujinx.Horizon.Sdk.Audio.Detail [Buffer(HipcBufferFlags.Out | HipcBufferFlags.MapAlias)] Memory performanceOutput, [Buffer(HipcBufferFlags.In | HipcBufferFlags.MapAlias)] ReadOnlySequence input) { + using MemoryHandle outputHandle = output.Pin(); + using MemoryHandle performanceOutputHandle = performanceOutput.Pin(); + Result result = new Result((int)_renderSystem.Update(output, performanceOutput, input)); return result; diff --git a/small/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua b/small/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua index 1c66608a32..f6570bf797 100644 --- a/small/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua +++ b/small/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua @@ -276,7 +276,7 @@ if api.fs.access(gfwlist_path) then end if api.fs.access(chnlist_path) then - s:tab("chn_list", translate("China List")) + s:tab("chn_list", translate("China List") .. "(" .. translate("Domain") .. ")") o = s:taboption("chn_list", TextValue, "chn_list", "") o.readonly = true o.rows = 45 @@ -287,7 +287,7 @@ if api.fs.access(chnlist_path) then end if api.fs.access(chnroute_path) then - s:tab("chnroute_list", translate("China List")) + s:tab("chnroute_list", translate("China List") .. "(IP)") o = s:taboption("chnroute_list", TextValue, "chnroute_list", "") o.readonly = true o.rows = 45 diff --git a/small/luci-app-passwall/luasrc/model/cbi/passwall/client/type/hysteria2.lua b/small/luci-app-passwall/luasrc/model/cbi/passwall/client/type/hysteria2.lua index 1ce53af544..a8826ca380 100644 --- a/small/luci-app-passwall/luasrc/model/cbi/passwall/client/type/hysteria2.lua +++ b/small/luci-app-passwall/luasrc/model/cbi/passwall/client/type/hysteria2.lua @@ -56,11 +56,12 @@ o.rewrite_option = o.option o = s:option(Value, option_name("hop_interval"), translate("Hop Interval")) o.rewrite_option = o.option +o = s:option(Value, option_name("recv_window"), translate("QUIC stream receive window")) +o.rewrite_option = o.option + o = s:option(Value, option_name("recv_window_conn"), translate("QUIC connection receive window")) o.rewrite_option = o.option -o = s:option(Value, option_name("recv_window"), translate("QUIC stream receive window")) -o.rewrite_option = o.option o = s:option(Value, option_name("idle_timeout"), translate("Idle Timeout")) o.rewrite_option = o.option diff --git a/small/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/hysteria2.lua b/small/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/hysteria2.lua index cc31ecf771..c612af3c68 100644 --- a/small/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/hysteria2.lua +++ b/small/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/hysteria2.lua @@ -56,10 +56,10 @@ o.rewrite_option = o.option o = s:option(Value, option_name("hop_interval"), translate("Hop Interval")) o.rewrite_option = o.option -o = s:option(Value, option_name("recv_window_conn"), translate("QUIC stream receive window")) +o = s:option(Value, option_name("recv_window"), translate("QUIC stream receive window")) o.rewrite_option = o.option -o = s:option(Value, option_name("recv_window"), translate("QUIC connection receive window")) +o = s:option(Value, option_name("recv_window_conn"), translate("QUIC connection receive window")) o.rewrite_option = o.option o = s:option(Value, option_name("idle_timeout"), translate("Idle Timeout")) diff --git a/small/luci-app-passwall2/root/usr/share/passwall2/nftables.sh b/small/luci-app-passwall2/root/usr/share/passwall2/nftables.sh index e502ed866d..9455d4a866 100755 --- a/small/luci-app-passwall2/root/usr/share/passwall2/nftables.sh +++ b/small/luci-app-passwall2/root/usr/share/passwall2/nftables.sh @@ -818,7 +818,7 @@ add_firewall_rule() { [ "$accept_icmpv6" = "1" ] && { nft "add rule inet fw4 PSW2_ICMP_REDIRECT oif lo meta l4proto icmpv6 ip6 daddr $FAKE_IP_6 counter redirect" - nft "add rule inet fw4 PSW2_ICMP_REDIRECT oif lo meta l4proto counter redirect" + nft "add rule inet fw4 PSW2_ICMP_REDIRECT oif lo meta l4proto icmpv6 counter redirect" nft "add rule inet fw4 PSW2_ICMP_REDIRECT oif lo meta l4proto icmpv6 counter return" } diff --git a/small/sing-box/Makefile b/small/sing-box/Makefile index 891cf8d354..35f8b16899 100644 --- a/small/sing-box/Makefile +++ b/small/sing-box/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=sing-box -PKG_VERSION:=1.8.10 +PKG_VERSION:=1.8.11 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/SagerNet/sing-box/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=a959f9a40148ed4166b8161072672f3ce1532957adef7717132c7277bb96dcf6 +PKG_HASH:=d6c33792c694b817ac86c9baa5d73a8112deea341d4a36c83fe782efa8bf3548 PKG_LICENSE:=GPL-3.0-or-later PKG_LICENSE_FILES:=LICENSE diff --git a/xray-core/go.mod b/xray-core/go.mod index bb3a6beb9d..cf63cbfd51 100644 --- a/xray-core/go.mod +++ b/xray-core/go.mod @@ -25,7 +25,7 @@ require ( golang.org/x/sync v0.7.0 golang.org/x/sys v0.19.0 golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173 - google.golang.org/grpc v1.63.0 + google.golang.org/grpc v1.63.2 google.golang.org/protobuf v1.33.0 gvisor.dev/gvisor v0.0.0-20231104011432-48a6d7d5bd0b h12.io/socks v1.0.3 diff --git a/xray-core/go.sum b/xray-core/go.sum index f0450753b7..4318384827 100644 --- a/xray-core/go.sum +++ b/xray-core/go.sum @@ -275,8 +275,8 @@ google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmE google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.63.0 h1:WjKe+dnvABXyPJMD7KDNLxtoGk5tgk+YFWN6cBWjZE8= -google.golang.org/grpc v1.63.0/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= +google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= +google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/yass/CMakeLists.txt b/yass/CMakeLists.txt index dc85ae5c40..d67bef8ea0 100644 --- a/yass/CMakeLists.txt +++ b/yass/CMakeLists.txt @@ -373,12 +373,19 @@ option(USE_BALSA_HTTP_PARSER "Build with balsa http parser" ON) option(USE_ICU "Build with icu" OFF) option(USE_LEVELDB "Build with leveldb" OFF) option(USE_SQLITE "Build with sqlite" OFF) +option(USE_OLD_SYSTEMD_SERVICE "Install with old systemd service files" OFF) option(ENABLE_FORTIFY "Enable build with Fortify Source" ON) option(ENABLE_LTO "Enable build with LTO" ON) option(ENABLE_LLD "Enable build with LLD" ON) option(ENABLE_GOLD "Enable build with GOLD" ON) +# Dynamic users are supported from version 235 +# see https://0pointer.net/blog/dynamic-users-with-systemd.html +if (USE_OLD_SYSTEMD_SERVICE) + set(SYSTEMD_SERVICE_SUFFIX ".old") +endif() + if (ENABLE_LLD AND (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR LINKER_LLD) AND NOT COMPILER_APPLE_CLANG) # skipping apple clang set(USE_LLD ON) @@ -1980,7 +1987,6 @@ elseif (OHOS AND GUI) set(GUI_LIBRARY_DIRS "") set(GUI_LIBRARIES "libace_napi.z.so") elseif (WIN32 AND GUI) - message(STATUS "Compiling with GUI support: Windows") set(GUI_FLAVOUR "windows") set(GUI_USE_FILE "") set(GUI_INCLUDE_DIRS "") @@ -1993,7 +1999,6 @@ elseif (WIN32 AND GUI) set(GUI_LIBRARIES wininet winmm gdi32 comdlg32 ole32 comctl32 shell32) endif() elseif (APPLE AND GUI AND NOT IOS) - message(STATUS "Compiling with GUI support: Cocoa") find_library(COCOA_LIBRARY Cocoa REQUIRED) # Locate Interface Builder Tool, needed to build things like Storyboards outside of Xcode. if(NOT ${CMAKE_GENERATOR} MATCHES "^Xcode.*") @@ -2015,7 +2020,6 @@ elseif (APPLE AND GUI AND NOT IOS) set(GUI_LIBRARY_DIRS "") set(GUI_LIBRARIES "${COCOA_LIBRARY}") elseif (IOS AND GUI) - message(STATUS "Compiling with GUI support: IOS") find_library(UIKIT_LIBRARY UIKit REQUIRED) # Locate Interface Builder Tool, needed to build things like Storyboards outside of Xcode. if(NOT ${CMAKE_GENERATOR} MATCHES "^Xcode.*") @@ -2037,7 +2041,6 @@ elseif (IOS AND GUI) set(GUI_LIBRARY_DIRS "") set(GUI_LIBRARIES "${UIKIT_LIBRARY}") elseif (GUI) - message(STATUS "Compiling with GUI support: GTK+") find_package(PkgConfig) if (NOT PKG_CONFIG_FOUND) message(WARNING "pkg-config (required to search gtk+ path) not found, disabling GUI build") @@ -2106,6 +2109,12 @@ elseif (GUI) endif() endif() +if (GUI) + message(STATUS "Compiling with GUI support: ${GUI_FLAVOUR}") +else() + message(STATUS "Compiling with no GUI support") +endif() + # ***************************************************************************************** # Compiler compiler and link flags (common) # ***************************************************************************************** @@ -3833,10 +3842,10 @@ if (CLI) # TODO add freebsd rc files if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT ANDROID AND NOT OHOS) install(FILES yass.json.sample RENAME config.json DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/yass) - install(FILES yass.service RENAME yass.service DESTINATION lib/systemd/system) + install(FILES yass${SYSTEMD_SERVICE_SUFFIX}.service RENAME yass.service DESTINATION lib/systemd/system) install(FILES yass-redir.json.sample RENAME redir.json DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/yass) - install(FILES yass-redir.service RENAME yass-redir.service DESTINATION lib/systemd/system) + install(FILES yass-redir${SYSTEMD_SERVICE_SUFFIX}.service RENAME yass-redir.service DESTINATION lib/systemd/system) endif() endif() endif() @@ -3874,7 +3883,7 @@ if (SERVER) install(FILES doc/yass_server.1 DESTINATION share/man/man1) if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT ANDROID AND NOT OHOS) install(FILES yass-server.json.sample RENAME server.json DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/yass) - install(FILES yass-server.service RENAME yass-server.service DESTINATION lib/systemd/system) + install(FILES yass-server${SYSTEMD_SERVICE_SUFFIX}.service RENAME yass-server.service DESTINATION lib/systemd/system) endif() endif() endif() diff --git a/yass/debian/rules b/yass/debian/rules index 4fa0d79aab..9fc22cf576 100755 --- a/yass/debian/rules +++ b/yass/debian/rules @@ -57,6 +57,7 @@ override_dh_auto_configure: PKG_CONFIG = ${DEB_HOST_GNU_TYPE}-pkg-config endif override_dh_auto_configure: CMAKE_OPTIONS += -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_SYSTEM_PROCESSOR=$(DEB_HOST_ARCH) +override_dh_auto_configure: CMAKE_OPTIONS += -DUSE_OLD_SYSTEMD_SERVICE=on override_dh_auto_configure: dh_auto_configure ${DEB_BUILD_SYSTEM_OPTIONS} -- -DCMAKE_BUILD_TYPE=Release -DBUILD_BENCHMARKS=on -DBUILD_TESTS=on $(CMAKE_OPTIONS) -DCLI=on -DSERVER=on -DUSE_BUILTIN_CA_BUNDLE_CRT=off -DUSE_TCMALLOC=on diff --git a/yass/openwrt/files/yass_cli.init b/yass/openwrt/files/yass_cli.init index 5106040c65..6804437f08 100755 --- a/yass/openwrt/files/yass_cli.init +++ b/yass/openwrt/files/yass_cli.init @@ -9,9 +9,9 @@ SERVICE_WRITE_PID=1 SERVICE_DAEMONIZE=1 start() { - service_start /usr/bin/$APP -c /etc/yass/config.json + service_start /usr/bin/$APP -c /etc/yass/config.json -log_dir=/var/log } stop() { - service_stop /usr/bin/$APP -c /etc/yass/config.json + service_stop /usr/bin/$APP -c /etc/yass/config.json -log_dir=/var/log } diff --git a/yass/openwrt/files/yass_redir.init b/yass/openwrt/files/yass_redir.init index 4cc86ff83d..b562fc1453 100755 --- a/yass/openwrt/files/yass_redir.init +++ b/yass/openwrt/files/yass_redir.init @@ -9,9 +9,9 @@ SERVICE_WRITE_PID=1 SERVICE_DAEMONIZE=1 start() { - service_start /usr/bin/$APP -c /etc/yass/redir.json --redir_mode + service_start /usr/bin/$APP -c /etc/yass/redir.json -log_dir=/var/log --redir_mode } stop() { - service_stop /usr/bin/$APP -c /etc/yass/redir.json --redir_mode + service_stop /usr/bin/$APP -c /etc/yass/redir.json -log_dir=/var/log --redir_mode } diff --git a/yass/src/cli/cli.cpp b/yass/src/cli/cli.cpp index a80ca6f176..739ff94918 100644 --- a/yass/src/cli/cli.cpp +++ b/yass/src/cli/cli.cpp @@ -9,7 +9,6 @@ #include #include #include -#include #include #include #include @@ -79,14 +78,7 @@ int main(int argc, const char* argv[]) { absl::FailureSignalHandlerOptions failure_handle_options; absl::InstallFailureSignalHandler(failure_handle_options); - absl::SetProgramUsageMessage(absl::StrCat( - "Usage: ", Basename(exec_path), " [options ...]\n", " -K, --config Read config from a file\n", - " --server_host Remote server on given host\n", " --server_port Remote server on given port\n", - " --local_host Local proxy server on given host\n" - " --local_port Local proxy server on given port\n" - " --username Server user\n", - " --password Server password\n", " --method Specify encrypt of method to use")); - + config::SetClientUsageMessage(exec_path); config::ReadConfigFileOption(argc, argv); config::ReadConfig(); absl::ParseCommandLine(argc, const_cast(argv)); diff --git a/yass/src/config/config.cpp b/yass/src/config/config.cpp index b57b5ae025..49ab1d96ac 100644 --- a/yass/src/config/config.cpp +++ b/yass/src/config/config.cpp @@ -8,6 +8,7 @@ #include #include +#include #include #include "core/logging.hpp" @@ -207,6 +208,22 @@ void ReadConfigFileOption(int argc, const char** argv) { argv[pos + 1] = ""; pos += 2; continue; + } else if (pos + 1 < argc && (arg == "-log_dir" || arg == "--log_dir")) { + absl::SetFlag(&FLAGS_log_dir, argv[pos + 1]); + argv[pos] = ""; + argv[pos + 1] = ""; + pos += 2; + continue; + } else if (strncmp(argv[pos], "-log_dir=", sizeof("-log_dir=")-1) == 0) { + absl::SetFlag(&FLAGS_log_dir, argv[pos] + sizeof("-log_dir=")-1); + argv[pos] = ""; + pos += 1; + continue; + } else if (strncmp(argv[pos], "--log_dir=", sizeof("--log_dir=")-1) == 0) { + absl::SetFlag(&FLAGS_log_dir, argv[pos] + sizeof("--log_dir=")-1); + argv[pos] = ""; + pos += 1; + continue; } else if (arg == "--ipv4") { absl::SetFlag(&FLAGS_ipv6_mode, false); argv[pos] = ""; @@ -558,4 +575,33 @@ std::string ReadConfigFromArgument(const std::string& server_host, return ret; } +void SetClientUsageMessage(const std::string& exec_path) { + absl::SetProgramUsageMessage(absl::StrCat( + "Usage: ", Basename(exec_path), " [options ...]\n", R"( + -K, --config Read config from a file + --server_host Remote server on given host + --server_port Remote server on given port + --local_host Local proxy server on given host + --local_port Local proxy server on given port + --username Server user + --password Server password + --method Specify encrypt of method to use +)")); +} + +void SetServerUsageMessage(const std::string& exec_path) { + absl::SetProgramUsageMessage(absl::StrCat( + "Usage: ", Basename(exec_path), " [options ...]\n", R"( + -K, --config Read config from a file + --certificate_chain_file (TLS) Certificate Chain File Path + --private_key_file (TLS) Private Key File Path + --private_key_password (TLS) Private Key Password + --server_host Server on given host + --server_port Server on given port + --username Server user + --password Server password + --method Specify encrypt of method to use +)")); +} + } // namespace config diff --git a/yass/src/config/config.hpp b/yass/src/config/config.hpp index c5ee9f694a..2957a6fd50 100644 --- a/yass/src/config/config.hpp +++ b/yass/src/config/config.hpp @@ -104,6 +104,10 @@ std::string ReadConfigFromArgument(const std::string& server_host, const std::string& doh_url, const std::string& dot_host, const std::string& connect_timeout); + +void SetClientUsageMessage(const std::string& exec_path); +void SetServerUsageMessage(const std::string& exec_path); + } // namespace config #endif // H_CONFIG_CONFIG diff --git a/yass/src/core/logging.cpp b/yass/src/core/logging.cpp index dd0531f2da..9027d0aad9 100644 --- a/yass/src/core/logging.cpp +++ b/yass/src/core/logging.cpp @@ -424,10 +424,10 @@ static void GetHostName(std::string* hostname) { } *hostname = buf.nodename; #elif BUILDFLAG(IS_WIN) - char buf[MAX_COMPUTERNAME_LENGTH + 1]; + wchar_t buf[MAX_COMPUTERNAME_LENGTH + 1]; DWORD len = MAX_COMPUTERNAME_LENGTH + 1; - if (GetComputerNameA(buf, &len)) { - *hostname = buf; + if (GetComputerNameW(buf, &len)) { + *hostname = SysWideToUTF8(std::wstring(buf, len)); } else { hostname->clear(); } @@ -2370,9 +2370,9 @@ static void GetTempDirectories(std::vector* list) { // C:/TEMP/ // C:/WINDOWS/ or C:/WINNT/ // . - char tmp[MAX_PATH]; - if (GetTempPathA(MAX_PATH, tmp)) - list->push_back(tmp); + wchar_t tmp[MAX_PATH]; + if (DWORD len = GetTempPathW(MAX_PATH, tmp)) + list->push_back(SysWideToUTF8(std::wstring(tmp, len))); list->push_back("C:\\tmp\\"); list->push_back("C:\\temp\\"); #else @@ -2422,9 +2422,9 @@ const std::vector& GetLoggingDirectories() { } else { GetTempDirectories(logging_directories_list); #if BUILDFLAG(IS_WIN) - char tmp[MAX_PATH]; - if (GetWindowsDirectoryA(tmp, MAX_PATH)) { - logging_directories_list->push_back(tmp); + wchar_t tmp[MAX_PATH]; + if (UINT len = GetWindowsDirectoryW(tmp, MAX_PATH)) { + logging_directories_list->push_back(SysWideToUTF8(std::wstring(tmp, len))); } logging_directories_list->push_back(".\\"); #else diff --git a/yass/src/gtk/yass.cpp b/yass/src/gtk/yass.cpp index 5d0f2b0545..dd16992514 100644 --- a/yass/src/gtk/yass.cpp +++ b/yass/src/gtk/yass.cpp @@ -9,7 +9,6 @@ #include #include #include -#include #include #include #include @@ -60,14 +59,7 @@ int main(int argc, const char** argv) { absl::InstallFailureSignalHandler(failure_handle_options); #endif - absl::SetProgramUsageMessage(absl::StrCat( - "Usage: ", Basename(exec_path), " [options ...]\n", " -K, --config Read config from a file\n", - " --server_host Remote server on given host\n", " --server_port Remote server on given port\n", - " --local_host Local proxy server on given host\n" - " --local_port Local proxy server on given port\n" - " --username Server user\n", - " --password Server password\n", " --method Specify encrypt of method to use")); - + config::SetClientUsageMessage(exec_path); config::ReadConfigFileOption(argc, argv); config::ReadConfig(); absl::ParseCommandLine(argc, const_cast(argv)); diff --git a/yass/src/gtk4/yass.cpp b/yass/src/gtk4/yass.cpp index ed5c19e912..372b99aa26 100644 --- a/yass/src/gtk4/yass.cpp +++ b/yass/src/gtk4/yass.cpp @@ -9,7 +9,6 @@ #include #include #include -#include #include #include #include @@ -111,14 +110,7 @@ int main(int argc, const char** argv) { absl::InstallFailureSignalHandler(failure_handle_options); #endif - absl::SetProgramUsageMessage(absl::StrCat( - "Usage: ", Basename(exec_path), " [options ...]\n", " -K, --config Read config from a file\n", - " --server_host Remote server on given host\n", " --server_port Remote server on given port\n", - " --local_host Local proxy server on given host\n" - " --local_port Local proxy server on given port\n" - " --username Server user\n", - " --password Server password\n", " --method Specify encrypt of method to use")); - + config::SetClientUsageMessage(exec_path); config::ReadConfigFileOption(argc, argv); config::ReadConfig(); absl::ParseCommandLine(argc, const_cast(argv)); diff --git a/yass/src/ios/main.mm b/yass/src/ios/main.mm index 5f06c076d5..39e0f5cf01 100644 --- a/yass/src/ios/main.mm +++ b/yass/src/ios/main.mm @@ -12,7 +12,6 @@ #include #include #include -#include #include #include "config/config.hpp" @@ -43,14 +42,7 @@ int main(int argc, const char** argv) { absl::InstallFailureSignalHandler(failure_handle_options); #endif - absl::SetProgramUsageMessage(absl::StrCat( - "Usage: ", Basename(exec_path), " [options ...]\n", " -K, --config Read config from a file\n", - " --server_host Remote server on given host\n", " --server_port Remote server on given port\n", - " --local_host Local proxy server on given host\n" - " --local_port Local proxy server on given port\n" - " --username Server user\n", - " --password Server password\n", " --method Specify encrypt of method to use")); - + config::SetClientUsageMessage(exec_path); config::ReadConfigFileOption(argc, argv); config::ReadConfig(); absl::ParseCommandLine(argc, const_cast(argv)); diff --git a/yass/src/mac/main.mm b/yass/src/mac/main.mm index b8611011ac..695abe5415 100644 --- a/yass/src/mac/main.mm +++ b/yass/src/mac/main.mm @@ -12,7 +12,6 @@ #include #include #include -#include #include #include @@ -58,14 +57,7 @@ int main(int argc, const char** argv) { absl::InstallFailureSignalHandler(failure_handle_options); #endif - absl::SetProgramUsageMessage(absl::StrCat( - "Usage: ", Basename(exec_path), " [options ...]\n", " -K, --config Read config from a file\n", - " --server_host Remote server on given host\n", " --server_port Remote server on given port\n", - " --local_host Local proxy server on given host\n" - " --local_port Local proxy server on given port\n" - " --username Server user\n", - " --password Server password\n", " --method Specify encrypt of method to use")); - + config::SetClientUsageMessage(exec_path); config::ReadConfigFileOption(argc, argv); config::ReadConfig(); absl::ParseCommandLine(argc, const_cast(argv)); diff --git a/yass/src/net/dot_request.cpp b/yass/src/net/dot_request.cpp index f020b6e18d..4da37d63cf 100644 --- a/yass/src/net/dot_request.cpp +++ b/yass/src/net/dot_request.cpp @@ -113,7 +113,7 @@ void DoTRequest::OnSSLConnect() { scoped_refptr self(this); - recv_buf_ = IOBuf::create(UINT16_MAX); + recv_buf_ = IOBuf::create(sizeof(length) + UINT16_MAX); ssl_socket_->WaitWrite([this, self](asio::error_code ec) { OnSSLWritable(ec); }); ssl_socket_->WaitRead([this, self](asio::error_code ec) { OnSSLReadable(ec); }); } diff --git a/yass/src/server/server.cpp b/yass/src/server/server.cpp index 69a89642d4..5f0076f6ea 100644 --- a/yass/src/server/server.cpp +++ b/yass/src/server/server.cpp @@ -9,7 +9,6 @@ #include #include #include -#include #include #include #include @@ -58,14 +57,7 @@ int main(int argc, const char* argv[]) { absl::FailureSignalHandlerOptions failure_handle_options; absl::InstallFailureSignalHandler(failure_handle_options); - absl::SetProgramUsageMessage(absl::StrCat( - "Usage: ", Basename(exec_path), " [options ...]\n", " -K, --config Read config from a file\n", - " --certificate_chain_file (TLS) Certificate Chain File Path\n", - " --private_key_file (TLS) Private Key File Path\n", - " --private_key_password (TLS) Private Key Password\n", " --server_host Server on given host\n", - " --server_port Server on given port\n", " --username Server user\n", - " --password Server password\n", " --method Specify encrypt of method to use")); - + config::SetServerUsageMessage(exec_path); config::ReadConfigFileOption(argc, argv); config::ReadConfig(); absl::ParseCommandLine(argc, const_cast(argv)); diff --git a/yass/src/ss_benchmark.cpp b/yass/src/ss_benchmark.cpp index c7106d57cd..3d5cf904cc 100644 --- a/yass/src/ss_benchmark.cpp +++ b/yass/src/ss_benchmark.cpp @@ -39,37 +39,40 @@ const char kConnectResponse[] = "HTTP/1.1 200 Connection established\r\n\r\n"; const int kIOLoopCount = 1; // openssl req -newkey rsa:1024 -keyout pkey.pem -x509 -out cert.crt -days 3650 -nodes -subj /C=XX -const char kCertificate[] = - "-----BEGIN CERTIFICATE-----\n" - "MIIB9jCCAV+gAwIBAgIUM03bTKd+A2WwrfolXJC+L9AsxI8wDQYJKoZIhvcNAQEL\n" - "BQAwDTELMAkGA1UEBhMCWFgwHhcNMjMwMTI5MjA1MDU5WhcNMzMwMTI2MjA1MDU5\n" - "WjANMQswCQYDVQQGEwJYWDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3GGZ\n" - "pQbdPh22uCMIes5GUJfDqsAda5I7JeUt1Uq0KebsQ1rxM9QUgzsvVktYqKGxZW57\n" - "djPlcWthfUGlUQAPpZ3/njWter81vy7oj/SfiEvZXk9LyrEA7vf9XIpFJhVrucpI\n" - "wzX1KmQAJdpc0yYmVvG+59PNI9SF6mGUWDGBhukCAwEAAaNTMFEwHQYDVR0OBBYE\n" - "FPFt885ocZzO8rQ7gu6vr+i/nrEEMB8GA1UdIwQYMBaAFPFt885ocZzO8rQ7gu6v\n" - "r+i/nrEEMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADgYEApAMdus13\n" - "9A4wGjtSmI1qsh/+nBeVrQWUOQH8eb0Oe7dDYg58EtzjhlvpLQ7nAOVO8fsioja7\n" - "Hine/sjADd7nGUrsIP+JIxplayLXcrP37KwaWxyRHoh/Bqa+7D3RpCv0SrNsIvlt\n" - "yyvnIm8njIJSin7Vf4tD1PfY6Obyc8ygUSw=\n" - "-----END CERTIFICATE-----\n"; -const char kPrivateKey[] = - "-----BEGIN PRIVATE KEY-----\n" - "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBANxhmaUG3T4dtrgj\n" - "CHrORlCXw6rAHWuSOyXlLdVKtCnm7ENa8TPUFIM7L1ZLWKihsWVue3Yz5XFrYX1B\n" - "pVEAD6Wd/541rXq/Nb8u6I/0n4hL2V5PS8qxAO73/VyKRSYVa7nKSMM19SpkACXa\n" - "XNMmJlbxvufTzSPUhephlFgxgYbpAgMBAAECgYBprRuB+NKqcJEnpxTv3m31Q3D+\n" - "NfVlmc9nEohx2MqftS3h9n/m/HGBpCXE2YiABFkObHYjbis9weITsCDXwJG/UtEO\n" - "yv8DqTEVcFYAg7fBu6dRaPsAvuDt4MDnk82/M9ZbtXqG7REp7hMxk3uKSThUfMoR\n" - "lIJiUhu2TCHHsw25IQJBAPzNPtn4peug9wXQcd7n1fFXOvjELHX011JFgAYQRoJu\n" - "Jmdfpz0+mzqLaagIPEENqwfGAMYkfOSPJWQhfcpeq70CQQDfK1qNNCqJzciGD/K7\n" - "xBEliKFGTKBI0Ru5FVPJQjEzorez/sIjsPqqEvfenJ6LyyfKgeaoWpsB5sRnn+Li\n" - "ZESdAkANa3vVqFxueLoERf91fMsfp6jKwec2T8wKYwQbzktf6ycAv9Qp7SPiZLo0\n" - "IFPKhEY7AGjUG+XBYFP0z85UqtflAkBSp8r8+3I54dbAGI4NjzvOjAE3eU/wSEqd\n" - "TVHf+70fY8foSZX8BCOC9E2LzLRIEHFnZp9YgV5h4OejfatZsEtdAkAZU+hVlaJD\n" - "GxqmgkJNSUluJFKduxyhdSB/cPmN0N/CFPxgfMEuRuJW3+POWfzQvLCxQ6m1+BpG\n" - "kMmiIVi25B8z\n" - "-----END PRIVATE KEY-----\n"; +constexpr const char kCertificate[] = R"( +-----BEGIN CERTIFICATE----- +MIIB9jCCAV+gAwIBAgIUM03bTKd+A2WwrfolXJC+L9AsxI8wDQYJKoZIhvcNAQEL +BQAwDTELMAkGA1UEBhMCWFgwHhcNMjMwMTI5MjA1MDU5WhcNMzMwMTI2MjA1MDU5 +WjANMQswCQYDVQQGEwJYWDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3GGZ +pQbdPh22uCMIes5GUJfDqsAda5I7JeUt1Uq0KebsQ1rxM9QUgzsvVktYqKGxZW57 +djPlcWthfUGlUQAPpZ3/njWter81vy7oj/SfiEvZXk9LyrEA7vf9XIpFJhVrucpI +wzX1KmQAJdpc0yYmVvG+59PNI9SF6mGUWDGBhukCAwEAAaNTMFEwHQYDVR0OBBYE +FPFt885ocZzO8rQ7gu6vr+i/nrEEMB8GA1UdIwQYMBaAFPFt885ocZzO8rQ7gu6v +r+i/nrEEMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADgYEApAMdus13 +9A4wGjtSmI1qsh/+nBeVrQWUOQH8eb0Oe7dDYg58EtzjhlvpLQ7nAOVO8fsioja7 +Hine/sjADd7nGUrsIP+JIxplayLXcrP37KwaWxyRHoh/Bqa+7D3RpCv0SrNsIvlt +yyvnIm8njIJSin7Vf4tD1PfY6Obyc8ygUSw= +-----END CERTIFICATE----- +)"; + +constexpr char kPrivateKey[] = R"( +-----BEGIN PRIVATE KEY----- +MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBANxhmaUG3T4dtrgj +CHrORlCXw6rAHWuSOyXlLdVKtCnm7ENa8TPUFIM7L1ZLWKihsWVue3Yz5XFrYX1B +pVEAD6Wd/541rXq/Nb8u6I/0n4hL2V5PS8qxAO73/VyKRSYVa7nKSMM19SpkACXa +XNMmJlbxvufTzSPUhephlFgxgYbpAgMBAAECgYBprRuB+NKqcJEnpxTv3m31Q3D+ +NfVlmc9nEohx2MqftS3h9n/m/HGBpCXE2YiABFkObHYjbis9weITsCDXwJG/UtEO +yv8DqTEVcFYAg7fBu6dRaPsAvuDt4MDnk82/M9ZbtXqG7REp7hMxk3uKSThUfMoR +lIJiUhu2TCHHsw25IQJBAPzNPtn4peug9wXQcd7n1fFXOvjELHX011JFgAYQRoJu +Jmdfpz0+mzqLaagIPEENqwfGAMYkfOSPJWQhfcpeq70CQQDfK1qNNCqJzciGD/K7 +xBEliKFGTKBI0Ru5FVPJQjEzorez/sIjsPqqEvfenJ6LyyfKgeaoWpsB5sRnn+Li +ZESdAkANa3vVqFxueLoERf91fMsfp6jKwec2T8wKYwQbzktf6ycAv9Qp7SPiZLo0 +IFPKhEY7AGjUG+XBYFP0z85UqtflAkBSp8r8+3I54dbAGI4NjzvOjAE3eU/wSEqd +TVHf+70fY8foSZX8BCOC9E2LzLRIEHFnZp9YgV5h4OejfatZsEtdAkAZU+hVlaJD +GxqmgkJNSUluJFKduxyhdSB/cPmN0N/CFPxgfMEuRuJW3+POWfzQvLCxQ6m1+BpG +kMmiIVi25B8z +-----END PRIVATE KEY----- +)"; void GenerateRandContent(int size) { g_send_buffer.clear(); @@ -607,7 +610,6 @@ int main(int argc, char** argv) { absl::InstallFailureSignalHandler(failure_handle_options); absl::SetFlag(&FLAGS_v, 0); - absl::SetFlag(&FLAGS_log_thread_id, 1); absl::SetFlag(&FLAGS_ipv6_mode, false); ::benchmark::Initialize(&argc, argv); diff --git a/yass/src/ss_test.cpp b/yass/src/ss_test.cpp index daafce0793..a542d5de02 100644 --- a/yass/src/ss_test.cpp +++ b/yass/src/ss_test.cpp @@ -48,37 +48,40 @@ std::unique_ptr g_recv_buffer; constexpr const char kConnectResponse[] = "HTTP/1.1 200 Connection established\r\n\r\n"; // openssl req -newkey rsa:1024 -keyout pkey.pem -x509 -out cert.crt -days 3650 -nodes -subj /C=XX -constexpr const char kCertificate[] = - "-----BEGIN CERTIFICATE-----\n" - "MIIB9jCCAV+gAwIBAgIUM03bTKd+A2WwrfolXJC+L9AsxI8wDQYJKoZIhvcNAQEL\n" - "BQAwDTELMAkGA1UEBhMCWFgwHhcNMjMwMTI5MjA1MDU5WhcNMzMwMTI2MjA1MDU5\n" - "WjANMQswCQYDVQQGEwJYWDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3GGZ\n" - "pQbdPh22uCMIes5GUJfDqsAda5I7JeUt1Uq0KebsQ1rxM9QUgzsvVktYqKGxZW57\n" - "djPlcWthfUGlUQAPpZ3/njWter81vy7oj/SfiEvZXk9LyrEA7vf9XIpFJhVrucpI\n" - "wzX1KmQAJdpc0yYmVvG+59PNI9SF6mGUWDGBhukCAwEAAaNTMFEwHQYDVR0OBBYE\n" - "FPFt885ocZzO8rQ7gu6vr+i/nrEEMB8GA1UdIwQYMBaAFPFt885ocZzO8rQ7gu6v\n" - "r+i/nrEEMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADgYEApAMdus13\n" - "9A4wGjtSmI1qsh/+nBeVrQWUOQH8eb0Oe7dDYg58EtzjhlvpLQ7nAOVO8fsioja7\n" - "Hine/sjADd7nGUrsIP+JIxplayLXcrP37KwaWxyRHoh/Bqa+7D3RpCv0SrNsIvlt\n" - "yyvnIm8njIJSin7Vf4tD1PfY6Obyc8ygUSw=\n" - "-----END CERTIFICATE-----\n"; -constexpr char kPrivateKey[] = - "-----BEGIN PRIVATE KEY-----\n" - "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBANxhmaUG3T4dtrgj\n" - "CHrORlCXw6rAHWuSOyXlLdVKtCnm7ENa8TPUFIM7L1ZLWKihsWVue3Yz5XFrYX1B\n" - "pVEAD6Wd/541rXq/Nb8u6I/0n4hL2V5PS8qxAO73/VyKRSYVa7nKSMM19SpkACXa\n" - "XNMmJlbxvufTzSPUhephlFgxgYbpAgMBAAECgYBprRuB+NKqcJEnpxTv3m31Q3D+\n" - "NfVlmc9nEohx2MqftS3h9n/m/HGBpCXE2YiABFkObHYjbis9weITsCDXwJG/UtEO\n" - "yv8DqTEVcFYAg7fBu6dRaPsAvuDt4MDnk82/M9ZbtXqG7REp7hMxk3uKSThUfMoR\n" - "lIJiUhu2TCHHsw25IQJBAPzNPtn4peug9wXQcd7n1fFXOvjELHX011JFgAYQRoJu\n" - "Jmdfpz0+mzqLaagIPEENqwfGAMYkfOSPJWQhfcpeq70CQQDfK1qNNCqJzciGD/K7\n" - "xBEliKFGTKBI0Ru5FVPJQjEzorez/sIjsPqqEvfenJ6LyyfKgeaoWpsB5sRnn+Li\n" - "ZESdAkANa3vVqFxueLoERf91fMsfp6jKwec2T8wKYwQbzktf6ycAv9Qp7SPiZLo0\n" - "IFPKhEY7AGjUG+XBYFP0z85UqtflAkBSp8r8+3I54dbAGI4NjzvOjAE3eU/wSEqd\n" - "TVHf+70fY8foSZX8BCOC9E2LzLRIEHFnZp9YgV5h4OejfatZsEtdAkAZU+hVlaJD\n" - "GxqmgkJNSUluJFKduxyhdSB/cPmN0N/CFPxgfMEuRuJW3+POWfzQvLCxQ6m1+BpG\n" - "kMmiIVi25B8z\n" - "-----END PRIVATE KEY-----\n"; +constexpr const char kCertificate[] = R"( +-----BEGIN CERTIFICATE----- +MIIB9jCCAV+gAwIBAgIUM03bTKd+A2WwrfolXJC+L9AsxI8wDQYJKoZIhvcNAQEL +BQAwDTELMAkGA1UEBhMCWFgwHhcNMjMwMTI5MjA1MDU5WhcNMzMwMTI2MjA1MDU5 +WjANMQswCQYDVQQGEwJYWDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3GGZ +pQbdPh22uCMIes5GUJfDqsAda5I7JeUt1Uq0KebsQ1rxM9QUgzsvVktYqKGxZW57 +djPlcWthfUGlUQAPpZ3/njWter81vy7oj/SfiEvZXk9LyrEA7vf9XIpFJhVrucpI +wzX1KmQAJdpc0yYmVvG+59PNI9SF6mGUWDGBhukCAwEAAaNTMFEwHQYDVR0OBBYE +FPFt885ocZzO8rQ7gu6vr+i/nrEEMB8GA1UdIwQYMBaAFPFt885ocZzO8rQ7gu6v +r+i/nrEEMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADgYEApAMdus13 +9A4wGjtSmI1qsh/+nBeVrQWUOQH8eb0Oe7dDYg58EtzjhlvpLQ7nAOVO8fsioja7 +Hine/sjADd7nGUrsIP+JIxplayLXcrP37KwaWxyRHoh/Bqa+7D3RpCv0SrNsIvlt +yyvnIm8njIJSin7Vf4tD1PfY6Obyc8ygUSw= +-----END CERTIFICATE----- +)"; + +constexpr char kPrivateKey[] = R"( +-----BEGIN PRIVATE KEY----- +MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBANxhmaUG3T4dtrgj +CHrORlCXw6rAHWuSOyXlLdVKtCnm7ENa8TPUFIM7L1ZLWKihsWVue3Yz5XFrYX1B +pVEAD6Wd/541rXq/Nb8u6I/0n4hL2V5PS8qxAO73/VyKRSYVa7nKSMM19SpkACXa +XNMmJlbxvufTzSPUhephlFgxgYbpAgMBAAECgYBprRuB+NKqcJEnpxTv3m31Q3D+ +NfVlmc9nEohx2MqftS3h9n/m/HGBpCXE2YiABFkObHYjbis9weITsCDXwJG/UtEO +yv8DqTEVcFYAg7fBu6dRaPsAvuDt4MDnk82/M9ZbtXqG7REp7hMxk3uKSThUfMoR +lIJiUhu2TCHHsw25IQJBAPzNPtn4peug9wXQcd7n1fFXOvjELHX011JFgAYQRoJu +Jmdfpz0+mzqLaagIPEENqwfGAMYkfOSPJWQhfcpeq70CQQDfK1qNNCqJzciGD/K7 +xBEliKFGTKBI0Ru5FVPJQjEzorez/sIjsPqqEvfenJ6LyyfKgeaoWpsB5sRnn+Li +ZESdAkANa3vVqFxueLoERf91fMsfp6jKwec2T8wKYwQbzktf6ycAv9Qp7SPiZLo0 +IFPKhEY7AGjUG+XBYFP0z85UqtflAkBSp8r8+3I54dbAGI4NjzvOjAE3eU/wSEqd +TVHf+70fY8foSZX8BCOC9E2LzLRIEHFnZp9YgV5h4OejfatZsEtdAkAZU+hVlaJD +GxqmgkJNSUluJFKduxyhdSB/cPmN0N/CFPxgfMEuRuJW3+POWfzQvLCxQ6m1+BpG +kMmiIVi25B8z +-----END PRIVATE KEY----- +)"; void GenerateRandContent(int size) { g_send_buffer.clear(); @@ -753,7 +756,6 @@ int main(int argc, char** argv) { absl::InstallFailureSignalHandler(failure_handle_options); absl::SetFlag(&FLAGS_v, 0); - absl::SetFlag(&FLAGS_log_thread_id, 1); absl::SetFlag(&FLAGS_ipv6_mode, false); ::testing::InitGoogleTest(&argc, argv); diff --git a/yass/src/win32/yass.cpp b/yass/src/win32/yass.cpp index d538e00bd4..ff56f18f2e 100644 --- a/yass/src/win32/yass.cpp +++ b/yass/src/win32/yass.cpp @@ -11,7 +11,6 @@ #include #include #include -#include #include #include #include @@ -58,14 +57,6 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance, LOG(WARNING) << "Failed to set up utf-8 locale"; } - absl::SetProgramUsageMessage(absl::StrCat( - "Usage: ", Basename(exec_path), " [options ...]\n", " -K, --config Read config from a file\n", - " --server_host Remote server on given host\n", " --server_port Remote server on given port\n", - " --local_host Local proxy server on given host\n" - " --local_port Local proxy server on given port\n" - " --username Server user\n", - " --password Server password\n", " --method Specify encrypt of method to use")); - absl::InitializeSymbolizer(exec_path.c_str()); #ifdef HAVE_CRASHPAD CHECK(InitializeCrashpad(exec_path)); @@ -92,6 +83,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance, absl::SetFlag(&FLAGS_logtostderr, false); argv[0] = exec_path.data(); + config::SetClientUsageMessage(exec_path); config::ReadConfigFileOption(argc, &argv[0]); config::ReadConfig(); absl::ParseCommandLine(argv.size(), const_cast(&argv[0])); diff --git a/yass/yass-redir.old.service b/yass/yass-redir.old.service new file mode 100644 index 0000000000..cfef4b2261 --- /dev/null +++ b/yass/yass-redir.old.service @@ -0,0 +1,14 @@ +[Unit] +Description=Yet Another Shadow Socket +After=network-online.target nss-lookup.target +Wants=network-online.target + +[Service] +Type=exec +User=nobody +ExecStart=/usr/bin/yass_cli -c /etc/yass/redir.json -logtostderr --redir_mode +Restart=on-failure +RestartPreventExitStatus=23 + +[Install] +WantedBy=multi-user.target diff --git a/yass/yass-redir.service b/yass/yass-redir.service index cfef4b2261..7e22d9b34a 100644 --- a/yass/yass-redir.service +++ b/yass/yass-redir.service @@ -5,8 +5,9 @@ Wants=network-online.target [Service] Type=exec -User=nobody -ExecStart=/usr/bin/yass_cli -c /etc/yass/redir.json -logtostderr --redir_mode +DynamicUser=yes +LogsDirectory=yass-redir +ExecStart=/usr/bin/yass_cli -c /etc/yass/redir.json -log_dir=/var/log/yass-redir --redir_mode Restart=on-failure RestartPreventExitStatus=23 diff --git a/yass/yass-server.old.service b/yass/yass-server.old.service new file mode 100644 index 0000000000..89135c214a --- /dev/null +++ b/yass/yass-server.old.service @@ -0,0 +1,20 @@ +[Unit] +Description=Yet Another Shadow Socket Server +After=network-online.target nss-lookup.target +Wants=network-online.target + +[Service] +Type=exec +User=root +ExecStart=/usr/bin/yass_server -c /etc/yass/server.json -logtostderr --private_key_file /etc/yass/private_key.pem --certificate_chain_file /etc/yass/pubkey.crt --user nobody --group nogroup +Restart=on-failure +RestartSec=5s +RestartPreventExitStatus=23 +TimeoutStopSec=5s +LimitNOFILE=1048576 +LimitNPROC=512 +PrivateTmp=true +ProtectSystem=full + +[Install] +WantedBy=multi-user.target diff --git a/yass/yass-server.service b/yass/yass-server.service index 89135c214a..a3df4ebaed 100644 --- a/yass/yass-server.service +++ b/yass/yass-server.service @@ -5,8 +5,10 @@ Wants=network-online.target [Service] Type=exec -User=root -ExecStart=/usr/bin/yass_server -c /etc/yass/server.json -logtostderr --private_key_file /etc/yass/private_key.pem --certificate_chain_file /etc/yass/pubkey.crt --user nobody --group nogroup +DynamicUser=yes +LogsDirectory=yass-server +ExecStart=/usr/bin/yass_server -c /etc/yass/server.json -log_dir=/var/log/yass-server --private_key_file /etc/yass/private_key.pem --certificate_chain_file /etc/yass/pubkey.crt +AmbientCapabilities=CAP_NET_BIND_SERVICE Restart=on-failure RestartSec=5s RestartPreventExitStatus=23 diff --git a/yass/yass.old.service b/yass/yass.old.service new file mode 100644 index 0000000000..62e920530d --- /dev/null +++ b/yass/yass.old.service @@ -0,0 +1,14 @@ +[Unit] +Description=Yet Another Shadow Socket +After=network-online.target nss-lookup.target +Wants=network-online.target + +[Service] +Type=exec +User=nobody +ExecStart=/usr/bin/yass_cli -c /etc/yass/config.json -logtostderr +Restart=on-failure +RestartPreventExitStatus=23 + +[Install] +WantedBy=multi-user.target diff --git a/yass/yass.service b/yass/yass.service index 62e920530d..afb9fd217c 100644 --- a/yass/yass.service +++ b/yass/yass.service @@ -5,8 +5,9 @@ Wants=network-online.target [Service] Type=exec -User=nobody -ExecStart=/usr/bin/yass_cli -c /etc/yass/config.json -logtostderr +DynamicUser=yes +LogsDirectory=yass +ExecStart=/usr/bin/yass_cli -c /etc/yass/config.json -log_dir=/var/log/yass Restart=on-failure RestartPreventExitStatus=23 diff --git a/yass/yass.spec.in b/yass/yass.spec.in index f17be87696..e86e284e5e 100644 --- a/yass/yass.spec.in +++ b/yass/yass.spec.in @@ -63,6 +63,13 @@ %global enable_lld_opt on %endif +# force use old systemd unit files +%if 0%{?rhel} == 7 +%global use_old_systemd_service on +%else +%global use_old_systemd_service off +%endif + Name: yass Version: __VERSION__ Release: __SUBVERSION__%{?dist} @@ -138,6 +145,7 @@ cd build # old c-ares doesn't contain ares_getaddrinfo api %cmake_alias -G Ninja -DCMAKE_BUILD_TYPE=Release \ -DBUILD_BENCHMARKS=on -DBUILD_TESTS=on -DGUI=on -DCLI=on -DSERVER=on \ + -DUSE_OLD_SYSTEMD_SERVICE="%use_old_systemd_service" \ -DUSE_TCMALLOC=on \ -DUSE_SYSTEM_ZLIB=on \ -DUSE_SYSTEM_NGHTTP2="%enable_system_nghttp2_opt" \ diff --git a/yt-dlp/.github/workflows/build.yml b/yt-dlp/.github/workflows/build.yml index 5285923e71..04536e22c3 100644 --- a/yt-dlp/.github/workflows/build.yml +++ b/yt-dlp/.github/workflows/build.yml @@ -320,7 +320,7 @@ jobs: run: | brew install coreutils python3 devscripts/install_deps.py --user -o --include build - python3 devscripts/install_deps.py --user --include pyinstaller --include curl_cffi + python3 devscripts/install_deps.py --user --include pyinstaller - name: Prepare run: | diff --git a/yt-dlp/.github/workflows/quick-test.yml b/yt-dlp/.github/workflows/quick-test.yml index 3114e7bdd6..24b34911f3 100644 --- a/yt-dlp/.github/workflows/quick-test.yml +++ b/yt-dlp/.github/workflows/quick-test.yml @@ -27,6 +27,8 @@ jobs: steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 + with: + python-version: '3.8' - name: Install flake8 run: python3 ./devscripts/install_deps.py -o --include dev - name: Make lazy extractors diff --git a/yt-dlp/CONTRIBUTORS b/yt-dlp/CONTRIBUTORS index 6ee3baa3d0..8b5d19a64f 100644 --- a/yt-dlp/CONTRIBUTORS +++ b/yt-dlp/CONTRIBUTORS @@ -600,3 +600,13 @@ xpadev-net Xpl0itU YoshichikaAAA zhijinwuu +alb +hruzgar +kasper93 +leoheitmannruiz +luiso1979 +nipotan +Offert4324 +sta1us +Tomoka1 +trwstin diff --git a/yt-dlp/Changelog.md b/yt-dlp/Changelog.md index 45a9cef3fa..6cf08beab4 100644 --- a/yt-dlp/Changelog.md +++ b/yt-dlp/Changelog.md @@ -4,6 +4,101 @@ # To create a release, dispatch the https://github.com/yt-dlp/yt-dlp/actions/workflows/release.yml workflow on master --> +### 2024.04.09 + +#### Important changes +- Security: [[CVE-2024-22423](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-22423)] [Prevent RCE when using `--exec` with `%q` on Windows](https://github.com/yt-dlp/yt-dlp/security/advisories/GHSA-hjq6-52gw-2g7p) + - The shell escape function now properly escapes `%`, `\` and `\n`. + - `utils.Popen` has been patched accordingly. + +#### Core changes +- [Add new option `--progress-delta`](https://github.com/yt-dlp/yt-dlp/commit/9590cc6b4768e190183d7d071a6c78170889116a) ([#9082](https://github.com/yt-dlp/yt-dlp/issues/9082)) by [Grub4K](https://github.com/Grub4K) +- [Add new options `--impersonate` and `--list-impersonate-targets`](https://github.com/yt-dlp/yt-dlp/commit/0b81d4d252bd065ccd352722987ea34fe17f9244) by [bashonly](https://github.com/bashonly), [coletdjnz](https://github.com/coletdjnz), [Grub4K](https://github.com/Grub4K), [pukkandan](https://github.com/pukkandan) +- [Add option `--no-break-on-existing`](https://github.com/yt-dlp/yt-dlp/commit/16be117729150b2784f3b17755c886cb0cf73374) ([#9610](https://github.com/yt-dlp/yt-dlp/issues/9610)) by [bashonly](https://github.com/bashonly) +- [Fix `filesize_approx` calculation](https://github.com/yt-dlp/yt-dlp/commit/86e3b82261e8ebc6c6707c09544c9dfb8907c0fd) ([#9560](https://github.com/yt-dlp/yt-dlp/issues/9560)) by [pukkandan](https://github.com/pukkandan), [seproDev](https://github.com/seproDev) +- [Infer `acodec` for single-codec containers](https://github.com/yt-dlp/yt-dlp/commit/86a972033e05fea80e5fe7f2aff6723dbe2f3952) by [pukkandan](https://github.com/pukkandan) +- [Prevent RCE when using `--exec` with `%q` (CVE-2024-22423)](https://github.com/yt-dlp/yt-dlp/commit/ff07792676f404ffff6ee61b5638c9dc1a33a37a) by [Grub4K](https://github.com/Grub4K) +- **cookies**: [Add `--cookies-from-browser` support for Firefox Flatpak](https://github.com/yt-dlp/yt-dlp/commit/2ab2651a4a7be18939e2b4cb21be79fe477c797a) ([#9619](https://github.com/yt-dlp/yt-dlp/issues/9619)) by [un-def](https://github.com/un-def) +- **utils** + - `traverse_obj` + - [Allow unbranching using `all` and `any`](https://github.com/yt-dlp/yt-dlp/commit/3699eeb67cad333272b14a42dd3843d93fda1a2e) ([#9571](https://github.com/yt-dlp/yt-dlp/issues/9571)) by [Grub4K](https://github.com/Grub4K) + - [Convenience improvements](https://github.com/yt-dlp/yt-dlp/commit/32abfb00bdbd119ca675fdc6d1719331f0a2741a) ([#9577](https://github.com/yt-dlp/yt-dlp/issues/9577)) by [Grub4K](https://github.com/Grub4K) + +#### Extractor changes +- [Add extractor impersonate API](https://github.com/yt-dlp/yt-dlp/commit/50c29352312f5662acf9a64b0012766f5c40af61) ([#9474](https://github.com/yt-dlp/yt-dlp/issues/9474)) by [bashonly](https://github.com/bashonly), [Grub4K](https://github.com/Grub4K), [pukkandan](https://github.com/pukkandan) +- **afreecatv** + - [Overhaul extractor](https://github.com/yt-dlp/yt-dlp/commit/9415f1a5ef88482ebafe3083e8bcb778ac512df7) ([#9566](https://github.com/yt-dlp/yt-dlp/issues/9566)) by [bashonly](https://github.com/bashonly), [Tomoka1](https://github.com/Tomoka1) + - live: [Fix extractor](https://github.com/yt-dlp/yt-dlp/commit/9073ae6458f4c6a832aa832c67174c61852869be) ([#9348](https://github.com/yt-dlp/yt-dlp/issues/9348)) by [hui1601](https://github.com/hui1601) +- **asobistage**: [Add extractor](https://github.com/yt-dlp/yt-dlp/commit/0284f1fee202302a78888420f933deae19d9f4e1) ([#8735](https://github.com/yt-dlp/yt-dlp/issues/8735)) by [pzhlkj6612](https://github.com/pzhlkj6612) +- **box**: [Support URLs without file IDs](https://github.com/yt-dlp/yt-dlp/commit/07f5b2f7570fd9ac85aed17f4c0118f6eac77beb) ([#9504](https://github.com/yt-dlp/yt-dlp/issues/9504)) by [shreyasminocha](https://github.com/shreyasminocha) +- **cbc.ca**: player: [Support new URL format](https://github.com/yt-dlp/yt-dlp/commit/b49d5ffc53a72d8245ba319ff07bdc5b8c6a4f0c) ([#9561](https://github.com/yt-dlp/yt-dlp/issues/9561)) by [trainman261](https://github.com/trainman261) +- **crunchyroll** + - [Extract `vo_adaptive_hls` formats by default](https://github.com/yt-dlp/yt-dlp/commit/be77923ffe842f667971019460f6005f3cad01eb) ([#9447](https://github.com/yt-dlp/yt-dlp/issues/9447)) by [bashonly](https://github.com/bashonly) + - [Fix extractor](https://github.com/yt-dlp/yt-dlp/commit/954e57e405f79188450eb30103a9308732cd318f) ([#9615](https://github.com/yt-dlp/yt-dlp/issues/9615)) by [bytedream](https://github.com/bytedream) +- **dropbox**: [Fix formats extraction](https://github.com/yt-dlp/yt-dlp/commit/a48cc86d6f6b20427553620c2ddb990ede6a4b41) ([#9627](https://github.com/yt-dlp/yt-dlp/issues/9627)) by [bashonly](https://github.com/bashonly) +- **fathom**: [Add extractor](https://github.com/yt-dlp/yt-dlp/commit/bc2b8c0596fd6b75af24822c4f0f1da6783d71f7) ([#9495](https://github.com/yt-dlp/yt-dlp/issues/9495)) by [src-tinkerer](https://github.com/src-tinkerer) +- **gofile**: [Fix extractor](https://github.com/yt-dlp/yt-dlp/commit/0da66980d3193cad3dae0120cddddbfcabddf7a1) ([#9446](https://github.com/yt-dlp/yt-dlp/issues/9446)) by [jazz1611](https://github.com/jazz1611) +- **imgur**: [Fix extraction](https://github.com/yt-dlp/yt-dlp/commit/86d2f4d24849af0d1f3af7c0e2ac43bf8a058f74) ([#9471](https://github.com/yt-dlp/yt-dlp/issues/9471)) by [trwstin](https://github.com/trwstin) +- **jiosaavn** + - [Extract artists](https://github.com/yt-dlp/yt-dlp/commit/0ae16ceb1846cc4e609b70ce7c5d8e7458efceb2) ([#9612](https://github.com/yt-dlp/yt-dlp/issues/9612)) by [bashonly](https://github.com/bashonly) + - [Fix format extensions](https://github.com/yt-dlp/yt-dlp/commit/443e206ec41e64ca2aef61d8ef91640fb69b3113) ([#9609](https://github.com/yt-dlp/yt-dlp/issues/9609)) by [bashonly](https://github.com/bashonly) + - [Support playlists](https://github.com/yt-dlp/yt-dlp/commit/2e94602f241f6e41bdc48576c61089435529339b) ([#9622](https://github.com/yt-dlp/yt-dlp/issues/9622)) by [bashonly](https://github.com/bashonly) +- **joqrag**: [Fix live status detection](https://github.com/yt-dlp/yt-dlp/commit/f2fd449b46c4058222e1744f7a35caa20b2d003d) ([#9624](https://github.com/yt-dlp/yt-dlp/issues/9624)) by [pzhlkj6612](https://github.com/pzhlkj6612) +- **kick**: [Support browser impersonation](https://github.com/yt-dlp/yt-dlp/commit/c8a61a910096c77ce08dad5e1b2fbda5eb964156) ([#9611](https://github.com/yt-dlp/yt-dlp/issues/9611)) by [bashonly](https://github.com/bashonly) +- **loom**: [Add extractors](https://github.com/yt-dlp/yt-dlp/commit/f859ed3ba1e8b129ae6a467592c65687e73fbca1) ([#8686](https://github.com/yt-dlp/yt-dlp/issues/8686)) by [bashonly](https://github.com/bashonly), [hruzgar](https://github.com/hruzgar) +- **medici**: [Fix extractor](https://github.com/yt-dlp/yt-dlp/commit/4cd9e251b9abada107b10830de997bf4d79ca369) ([#9518](https://github.com/yt-dlp/yt-dlp/issues/9518)) by [Offert4324](https://github.com/Offert4324) +- **mixch** + - [Fix extractor](https://github.com/yt-dlp/yt-dlp/commit/4c3b7a0769706f7f0ea24adf1f219d5ae82d2b07) ([#9608](https://github.com/yt-dlp/yt-dlp/issues/9608)) by [bashonly](https://github.com/bashonly), [nipotan](https://github.com/nipotan) + - archive: [Fix extractor](https://github.com/yt-dlp/yt-dlp/commit/c59de48e2bb4c681b03b93b584a05f52609ce4a0) ([#8761](https://github.com/yt-dlp/yt-dlp/issues/8761)) by [pzhlkj6612](https://github.com/pzhlkj6612) +- **nhk**: [Fix NHK World extractors](https://github.com/yt-dlp/yt-dlp/commit/4af9d5c2f6aa81403ae2a8a5ae3cc824730f0b86) ([#9623](https://github.com/yt-dlp/yt-dlp/issues/9623)) by [bashonly](https://github.com/bashonly) +- **patreon**: [Do not extract dead embed URLs](https://github.com/yt-dlp/yt-dlp/commit/36b240f9a72af57eb2c9d927ebb7fd1c917ebf18) ([#9613](https://github.com/yt-dlp/yt-dlp/issues/9613)) by [johnvictorfs](https://github.com/johnvictorfs) +- **radio1be**: [Add extractor](https://github.com/yt-dlp/yt-dlp/commit/36baaa10e06715ccba06b78885b2042c4844c826) ([#9122](https://github.com/yt-dlp/yt-dlp/issues/9122)) by [HobbyistDev](https://github.com/HobbyistDev) +- **sharepoint**: [Add extractor](https://github.com/yt-dlp/yt-dlp/commit/ff349ff94aae0b2b148bd3670f7c91d39c2f1d8e) ([#6531](https://github.com/yt-dlp/yt-dlp/issues/6531)) by [bashonly](https://github.com/bashonly), [C0D3D3V](https://github.com/C0D3D3V) +- **sonylivseries**: [Fix season extraction](https://github.com/yt-dlp/yt-dlp/commit/f2868b26e917354203f82a370ad2396646edb813) ([#9423](https://github.com/yt-dlp/yt-dlp/issues/9423)) by [bashonly](https://github.com/bashonly) +- **soundcloud** + - [Adjust format sorting](https://github.com/yt-dlp/yt-dlp/commit/a2d0840739cddd585d24e0ce4796394fc8a4fa2e) ([#9584](https://github.com/yt-dlp/yt-dlp/issues/9584)) by [bashonly](https://github.com/bashonly) + - [Support cookies](https://github.com/yt-dlp/yt-dlp/commit/97362712a1f2b04e735bdf54f749ad99165a62fe) ([#9586](https://github.com/yt-dlp/yt-dlp/issues/9586)) by [bashonly](https://github.com/bashonly) + - [Support retries for API rate-limit](https://github.com/yt-dlp/yt-dlp/commit/246571ae1d867df8bf31a056bdf3bbbfd398366a) ([#9585](https://github.com/yt-dlp/yt-dlp/issues/9585)) by [bashonly](https://github.com/bashonly) +- **thisoldhouse**: [Support Brightcove embeds](https://github.com/yt-dlp/yt-dlp/commit/0df63cce69026d2f4c0cbb4dd36163e83eac93dc) ([#9576](https://github.com/yt-dlp/yt-dlp/issues/9576)) by [bashonly](https://github.com/bashonly) +- **tiktok** + - [Fix API extraction](https://github.com/yt-dlp/yt-dlp/commit/cb61e20c266facabb7a30f9ce53bd79dfc158475) ([#9548](https://github.com/yt-dlp/yt-dlp/issues/9548)) by [bashonly](https://github.com/bashonly), [Grub4K](https://github.com/Grub4K) + - [Prefer non-bytevc2 formats](https://github.com/yt-dlp/yt-dlp/commit/63f685f341f35f6f02b0368d1ba53bdb5b520410) ([#9575](https://github.com/yt-dlp/yt-dlp/issues/9575)) by [bashonly](https://github.com/bashonly) + - [Restore `carrier_region` API parameter](https://github.com/yt-dlp/yt-dlp/commit/fc53ec13ff1ee926a3e533a68cfca8acc887b661) ([#9637](https://github.com/yt-dlp/yt-dlp/issues/9637)) by [bashonly](https://github.com/bashonly) + - [Update API hostname](https://github.com/yt-dlp/yt-dlp/commit/8c05b3ebae23c5b444857549a85b84004c01a536) ([#9444](https://github.com/yt-dlp/yt-dlp/issues/9444)) by [bashonly](https://github.com/bashonly) +- **twitch**: [Extract AV1 and HEVC formats](https://github.com/yt-dlp/yt-dlp/commit/02f93ff51b3ff9436d60c4993562b366eaae8851) ([#9158](https://github.com/yt-dlp/yt-dlp/issues/9158)) by [kasper93](https://github.com/kasper93) +- **vkplay**: [Fix `_VALID_URL`](https://github.com/yt-dlp/yt-dlp/commit/b15b0c1d2106437ec61a5c436c543e8760eac160) ([#9636](https://github.com/yt-dlp/yt-dlp/issues/9636)) by [bashonly](https://github.com/bashonly) +- **xvideos**: [Support new URL format](https://github.com/yt-dlp/yt-dlp/commit/aa7e9ae4f48276bd5d0173966c77db9484f65a0a) ([#9502](https://github.com/yt-dlp/yt-dlp/issues/9502)) by [sta1us](https://github.com/sta1us) +- **youtube** + - [Calculate more accurate `filesize`](https://github.com/yt-dlp/yt-dlp/commit/a25a424323267e3f6f9f63c0b62df499bd7b8d46) by [pukkandan](https://github.com/pukkandan) + - [Update `android` params](https://github.com/yt-dlp/yt-dlp/commit/e7b17fce14775bd2448695c8eb7379b8d31d3537) by [pukkandan](https://github.com/pukkandan) + - search: [Fix params for uncensored results](https://github.com/yt-dlp/yt-dlp/commit/17d248a58781e2588d18a5ebe00c441d10011fcd) ([#9456](https://github.com/yt-dlp/yt-dlp/issues/9456)) by [alb](https://github.com/alb), [pukkandan](https://github.com/pukkandan) + +#### Downloader changes +- **ffmpeg**: [Accept output args from info dict](https://github.com/yt-dlp/yt-dlp/commit/9c42b7eef547e826e9fcc7beb6706a2523949d05) ([#9278](https://github.com/yt-dlp/yt-dlp/issues/9278)) by [bashonly](https://github.com/bashonly) + +#### Networking changes +- [Respect `SSLKEYLOGFILE` environment variable](https://github.com/yt-dlp/yt-dlp/commit/79a451e5763eda8b10d00684d5d3378f3255ee01) ([#9543](https://github.com/yt-dlp/yt-dlp/issues/9543)) by [luiso1979](https://github.com/luiso1979) +- **Request Handler** + - curlcffi: [Add support for `curl_cffi`](https://github.com/yt-dlp/yt-dlp/commit/52f5be1f1e0dc45bb397ab950f564721976a39bf) by [bashonly](https://github.com/bashonly), [coletdjnz](https://github.com/coletdjnz), [Grub4K](https://github.com/Grub4K), [pukkandan](https://github.com/pukkandan) + - websockets: [Workaround race condition causing issues on PyPy](https://github.com/yt-dlp/yt-dlp/commit/e5d4f11104ce7ea1717a90eea82c0f7d230ea5d5) ([#9514](https://github.com/yt-dlp/yt-dlp/issues/9514)) by [coletdjnz](https://github.com/coletdjnz) + +#### Misc. changes +- **build** + - [Do not include `curl_cffi` in `macos_legacy`](https://github.com/yt-dlp/yt-dlp/commit/b19ae095fdddd43c2a2c67d10fbe0d9a645bb98f) ([#9653](https://github.com/yt-dlp/yt-dlp/issues/9653)) by [bashonly](https://github.com/bashonly) + - [Optional dependencies cleanup](https://github.com/yt-dlp/yt-dlp/commit/58dd0f8d1eee6bc9fdc57f1923bed772fa3c946d) ([#9550](https://github.com/yt-dlp/yt-dlp/issues/9550)) by [bashonly](https://github.com/bashonly) + - [Print SHA sums to GHA logs](https://github.com/yt-dlp/yt-dlp/commit/e8032503b9517465b0e86d776fc1e60d8795d673) ([#9582](https://github.com/yt-dlp/yt-dlp/issues/9582)) by [bashonly](https://github.com/bashonly) + - [Update changelog for tarball and sdist](https://github.com/yt-dlp/yt-dlp/commit/17b96974a334688f76b57d350e07cae8cda46877) ([#9425](https://github.com/yt-dlp/yt-dlp/issues/9425)) by [bashonly](https://github.com/bashonly) +- **cleanup** + - [Standardize `import datetime as dt`](https://github.com/yt-dlp/yt-dlp/commit/c305a25c1b16bcf7a5ec499c3b786ed1e2c748da) ([#8978](https://github.com/yt-dlp/yt-dlp/issues/8978)) by [pukkandan](https://github.com/pukkandan) + - ie: [No `from` stdlib imports in extractors](https://github.com/yt-dlp/yt-dlp/commit/e3a3ed8a981d9395c4859b6ef56cd02bc3148db2) by [pukkandan](https://github.com/pukkandan) + - Miscellaneous: [216f6a3](https://github.com/yt-dlp/yt-dlp/commit/216f6a3cb57824e6a3c859649ce058c199b1b247) by [bashonly](https://github.com/bashonly), [pukkandan](https://github.com/pukkandan) +- **docs** + - [Update yt-dlp tagline](https://github.com/yt-dlp/yt-dlp/commit/388c979ac63a8774339fac2516fe1cc852b4276e) ([#9481](https://github.com/yt-dlp/yt-dlp/issues/9481)) by [bashonly](https://github.com/bashonly), [coletdjnz](https://github.com/coletdjnz), [Grub4K](https://github.com/Grub4K), [pukkandan](https://github.com/pukkandan), [seproDev](https://github.com/seproDev) + - [Various manpage fixes](https://github.com/yt-dlp/yt-dlp/commit/df0e138fc02ae2764a44f2f59fc93c756c4d3ee2) by [leoheitmannruiz](https://github.com/leoheitmannruiz) +- **test** + - [Workaround websocket server hanging](https://github.com/yt-dlp/yt-dlp/commit/f849d77ab54788446b995d256e1ee0894c4fb927) ([#9467](https://github.com/yt-dlp/yt-dlp/issues/9467)) by [coletdjnz](https://github.com/coletdjnz) + - `traversal`: [Separate traversal tests](https://github.com/yt-dlp/yt-dlp/commit/979ce2e786f2ee3fc783b6dc1ef4188d8805c923) ([#9574](https://github.com/yt-dlp/yt-dlp/issues/9574)) by [Grub4K](https://github.com/Grub4K) + ### 2024.03.10 #### Core changes diff --git a/yt-dlp/Makefile b/yt-dlp/Makefile index 38c6b4f2dc..cef4bc6cb1 100644 --- a/yt-dlp/Makefile +++ b/yt-dlp/Makefile @@ -10,9 +10,12 @@ tar: yt-dlp.tar.gz # intended use: when building a source distribution, # make pypi-files && python3 -m build -sn . pypi-files: AUTHORS Changelog.md LICENSE README.md README.txt supportedsites \ - completions yt-dlp.1 pyproject.toml setup.cfg devscripts/* test/* + completions yt-dlp.1 pyproject.toml setup.cfg devscripts/* test/* -.PHONY: all clean install test tar pypi-files completions ot offlinetest codetest supportedsites +.PHONY: all clean clean-all clean-test clean-dist clean-cache \ + completions completion-bash completion-fish completion-zsh \ + doc issuetemplates supportedsites ot offlinetest codetest test \ + tar pypi-files lazy-extractors install uninstall clean-test: rm -rf test/testdata/sigs/player-*.js tmp/ *.annotations.xml *.aria2 *.description *.dump *.frag \ diff --git a/yt-dlp/README.md b/yt-dlp/README.md index ee1b599900..458541d68e 100644 --- a/yt-dlp/README.md +++ b/yt-dlp/README.md @@ -158,6 +158,7 @@ When using `--update`/`-U`, a release binary will only update to its current cha You may also use `--update-to ` (`/`) to update to a channel on a completely different repository. Be careful with what repository you are updating to though, there is no verification done for binaries from different repositories. Example usage: + * `yt-dlp --update-to master` switch to the `master` channel and update to its latest release * `yt-dlp --update-to stable@2023.07.06` upgrade/downgrade to release to `stable` channel tag `2023.07.06` * `yt-dlp --update-to 2023.10.07` upgrade/downgrade to tag `2023.10.07` if it exists on the current channel @@ -202,7 +203,7 @@ The following provide support for impersonating browser requests. This may be re * [**curl_cffi**](https://github.com/yifeikong/curl_cffi) (recommended) - Python binding for [curl-impersonate](https://github.com/lwthiker/curl-impersonate). Provides impersonation targets for Chrome, Edge and Safari. Licensed under [MIT](https://github.com/yifeikong/curl_cffi/blob/main/LICENSE) * Can be installed with the `curl_cffi` group, e.g. `pip install yt-dlp[default,curl_cffi]` - * Only included in `yt-dlp.exe`, `yt-dlp_macos` and `yt-dlp_macos_legacy` builds + * Currently only included in `yt-dlp.exe` and `yt-dlp_macos` builds ### Metadata @@ -757,6 +758,7 @@ If you fork the project on GitHub, you can run your fork's [build workflow](.git accessible under "progress" key. E.g. --console-title --progress-template "download-title:%(info.id)s-%(progress.eta)s" + --progress-delta SECONDS Time between progress output (default: 0) -v, --verbose Print various debugging information --dump-pages Print downloaded pages encoded using base64 to debug problems (very verbose) @@ -1892,6 +1894,7 @@ Plugins can be installed using various methods and locations. `.zip`, `.egg` and `.whl` archives containing a `yt_dlp_plugins` namespace folder in their root are also supported as plugin packages. + * e.g. `${XDG_CONFIG_HOME}/yt-dlp/plugins/mypluginpkg.zip` where `mypluginpkg.zip` contains `yt_dlp_plugins//myplugin.py` Run yt-dlp with `--verbose` to check if the plugin has been loaded. diff --git a/yt-dlp/devscripts/changelog_override.json b/yt-dlp/devscripts/changelog_override.json index eaa348cf2e..046060cb25 100644 --- a/yt-dlp/devscripts/changelog_override.json +++ b/yt-dlp/devscripts/changelog_override.json @@ -127,8 +127,25 @@ "short": "[ie] Support multi-period MPD streams (#6654)", "authors": ["alard", "pukkandan"] }, + { + "action": "change", + "when": "aa7e9ae4f48276bd5d0173966c77db9484f65a0a", + "short": "[ie/xvideos] Support new URL format (#9502)", + "authors": ["sta1us"] + }, { "action": "remove", "when": "22e4dfacb61f62dfbb3eb41b31c7b69ba1059b80" + }, + { + "action": "change", + "when": "e3a3ed8a981d9395c4859b6ef56cd02bc3148db2", + "short": "[cleanup:ie] No `from` stdlib imports in extractors", + "authors": ["pukkandan"] + }, + { + "action": "add", + "when": "9590cc6b4768e190183d7d071a6c78170889116a", + "short": "[priority] Security: [[CVE-2024-22423](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-22423)] [Prevent RCE when using `--exec` with `%q` on Windows](https://github.com/yt-dlp/yt-dlp/security/advisories/GHSA-hjq6-52gw-2g7p)\n - The shell escape function now properly escapes `%`, `\\` and `\\n`.\n - `utils.Popen` has been patched accordingly." } ] diff --git a/yt-dlp/devscripts/prepare_manpage.py b/yt-dlp/devscripts/prepare_manpage.py index 009e7bba10..47188e9923 100644 --- a/yt-dlp/devscripts/prepare_manpage.py +++ b/yt-dlp/devscripts/prepare_manpage.py @@ -43,6 +43,27 @@ def filter_excluded_sections(readme): '', readme) +def _convert_code_blocks(readme): + current_code_block = None + + for line in readme.splitlines(True): + if current_code_block: + if line == current_code_block: + current_code_block = None + yield '\n' + else: + yield f' {line}' + elif line.startswith('```'): + current_code_block = line.count('`') * '`' + '\n' + yield '\n' + else: + yield line + + +def convert_code_blocks(readme): + return ''.join(_convert_code_blocks(readme)) + + def move_sections(readme): MOVE_TAG_TEMPLATE = '' sections = re.findall(r'(?m)^%s$' % ( @@ -65,8 +86,10 @@ def move_sections(readme): def filter_options(readme): section = re.search(r'(?sm)^# USAGE AND OPTIONS\n.+?(?=^# )', readme).group(0) + section_new = section.replace('*', R'\*') + options = '# OPTIONS\n' - for line in section.split('\n')[1:]: + for line in section_new.split('\n')[1:]: mobj = re.fullmatch(r'''(?x) \s{4}(?P-(?:,\s|[^\s])+) (?:\s(?P(?:[^\s]|\s(?!\s))+))? @@ -86,7 +109,7 @@ def filter_options(readme): return readme.replace(section, options, 1) -TRANSFORM = compose_functions(filter_excluded_sections, move_sections, filter_options) +TRANSFORM = compose_functions(filter_excluded_sections, convert_code_blocks, move_sections, filter_options) def main(): diff --git a/yt-dlp/supportedsites.md b/yt-dlp/supportedsites.md index a4b2d57998..ba77c0feb0 100644 --- a/yt-dlp/supportedsites.md +++ b/yt-dlp/supportedsites.md @@ -47,7 +47,7 @@ - **aenetworks:show** - **AeonCo** - **afreecatv**: [*afreecatv*](## "netrc machine") afreecatv.com - - **afreecatv:live**: [*afreecatv*](## "netrc machine") afreecatv.com + - **afreecatv:live**: [*afreecatv*](## "netrc machine") afreecatv.com livestreams - **afreecatv:user** - **AirTV** - **AitubeKZVideo** @@ -105,6 +105,7 @@ - **ArteTVPlaylist** - **asobichannel**: ASOBI CHANNEL - **asobichannel:tag**: ASOBI CHANNEL + - **AsobiStage**: ASOBISTAGE (アソビステージ) - **AtresPlayer**: [*atresplayer*](## "netrc machine") - **AtScaleConfEvent** - **ATVAt** @@ -436,6 +437,7 @@ - **FacebookPluginsVideo** - **fancode:live**: [*fancode*](## "netrc machine") (**Currently broken**) - **fancode:vod**: [*fancode*](## "netrc machine") (**Currently broken**) + - **Fathom** - **faz.net** - **fc2**: [*fc2*](## "netrc machine") - **fc2:embed** @@ -633,8 +635,9 @@ - **Jamendo** - **JamendoAlbum** - **JeuxVideo**: (**Currently broken**) - - **JioSaavnAlbum** - - **JioSaavnSong** + - **jiosaavn:album** + - **jiosaavn:playlist** + - **jiosaavn:song** - **Joj** - **JoqrAg**: 超!A&G+ 文化放送 (f.k.a. AGQR) Nippon Cultural Broadcasting, Inc. (JOQR) - **Jove** @@ -716,6 +719,8 @@ - **Lnk** - **LnkGo** - **loc**: Library of Congress + - **loom** + - **loom:folder** - **LoveHomePorn** - **LRTStream** - **LRTVOD** @@ -1136,6 +1141,7 @@ - **Radiko** - **RadikoRadio** - **radio.de**: (**Currently broken**) + - **Radio1Be** - **radiocanada** - **radiocanada:audiovideo** - **RadioComercial** @@ -1288,6 +1294,7 @@ - **SeznamZpravyArticle** - **Shahid**: [*shahid*](## "netrc machine") - **ShahidShow** + - **SharePoint** - **ShareVideosEmbed** - **ShemarooMe** - **ShowRoomLive** diff --git a/yt-dlp/test/test_traversal.py b/yt-dlp/test/test_traversal.py index ed29d03ad5..9b2a27b080 100644 --- a/yt-dlp/test/test_traversal.py +++ b/yt-dlp/test/test_traversal.py @@ -26,27 +26,6 @@ _TEST_DATA = { class TestTraversal: - def test_dict_get(self): - FALSE_VALUES = { - 'none': None, - 'false': False, - 'zero': 0, - 'empty_string': '', - 'empty_list': [], - } - d = {**FALSE_VALUES, 'a': 42} - assert dict_get(d, 'a') == 42 - assert dict_get(d, 'b') is None - assert dict_get(d, 'b', 42) == 42 - assert dict_get(d, ('a',)) == 42 - assert dict_get(d, ('b', 'a')) == 42 - assert dict_get(d, ('b', 'c', 'a', 'd')) == 42 - assert dict_get(d, ('b', 'c')) is None - assert dict_get(d, ('b', 'c'), 42) == 42 - for key, false_value in FALSE_VALUES.items(): - assert dict_get(d, ('b', 'c', key)) is None - assert dict_get(d, ('b', 'c', key), skip_false_values=False) == false_value - def test_traversal_base(self): assert traverse_obj(_TEST_DATA, ('str',)) == 'str', \ 'allow tuple path' @@ -440,3 +419,26 @@ class TestTraversal: 'function key should yield all values' assert traverse_obj(morsel, [(None,), any]) == morsel, \ 'Morsel should not be implicitly changed to dict on usage' + + +class TestDictGet: + def test_dict_get(self): + FALSE_VALUES = { + 'none': None, + 'false': False, + 'zero': 0, + 'empty_string': '', + 'empty_list': [], + } + d = {**FALSE_VALUES, 'a': 42} + assert dict_get(d, 'a') == 42 + assert dict_get(d, 'b') is None + assert dict_get(d, 'b', 42) == 42 + assert dict_get(d, ('a',)) == 42 + assert dict_get(d, ('b', 'a')) == 42 + assert dict_get(d, ('b', 'c', 'a', 'd')) == 42 + assert dict_get(d, ('b', 'c')) is None + assert dict_get(d, ('b', 'c'), 42) == 42 + for key, false_value in FALSE_VALUES.items(): + assert dict_get(d, ('b', 'c', key)) is None + assert dict_get(d, ('b', 'c', key), skip_false_values=False) == false_value diff --git a/yt-dlp/test/test_utils.py b/yt-dlp/test/test_utils.py index 71febeefd6..ddf0a7c242 100644 --- a/yt-dlp/test/test_utils.py +++ b/yt-dlp/test/test_utils.py @@ -2069,6 +2069,10 @@ Line 1 # Test escaping assert run_shell(['echo', 'test"&']) == '"test""&"\n' + assert run_shell(['echo', '%CMDCMDLINE:~-1%&']) == '"%CMDCMDLINE:~-1%&"\n' + assert run_shell(['echo', 'a\nb']) == '"a"\n"b"\n' + assert run_shell(['echo', '"']) == '""""\n' + assert run_shell(['echo', '\\']) == '\\\n' # Test if delayed expansion is disabled assert run_shell(['echo', '^!']) == '"^!"\n' assert run_shell('echo "^!"') == '"^!"\n' diff --git a/yt-dlp/yt_dlp/YoutubeDL.py b/yt-dlp/yt_dlp/YoutubeDL.py index 291fc8d00c..9f730d0384 100644 --- a/yt-dlp/yt_dlp/YoutubeDL.py +++ b/yt-dlp/yt_dlp/YoutubeDL.py @@ -25,7 +25,7 @@ import unicodedata from .cache import Cache from .compat import functools, urllib # isort: split -from .compat import compat_os_name, compat_shlex_quote, urllib_req_to_req +from .compat import compat_os_name, urllib_req_to_req from .cookies import LenientSimpleCookie, load_cookies from .downloader import FFmpegFD, get_suitable_downloader, shorten_protocol_name from .downloader.rtmp import rtmpdump_version @@ -102,7 +102,6 @@ from .utils import ( UserNotLive, YoutubeDLError, age_restricted, - args_to_str, bug_reports_message, date_from_str, deprecation_warning, @@ -141,6 +140,7 @@ from .utils import ( sanitize_filename, sanitize_path, sanitize_url, + shell_quote, str_or_none, strftime_or_none, subtitles_filename, @@ -481,7 +481,7 @@ class YoutubeDL: nopart, updatetime, buffersize, ratelimit, throttledratelimit, min_filesize, max_filesize, test, noresizebuffer, retries, file_access_retries, fragment_retries, continuedl, xattr_set_filesize, hls_use_mpegts, http_chunk_size, - external_downloader_args, concurrent_fragment_downloads. + external_downloader_args, concurrent_fragment_downloads, progress_delta. The following options are used by the post processors: ffmpeg_location: Location of the ffmpeg/avconv binary; either the path @@ -823,7 +823,7 @@ class YoutubeDL: self.report_warning( 'Long argument string detected. ' 'Use -- to separate parameters and URLs, like this:\n%s' % - args_to_str(correct_argv)) + shell_quote(correct_argv)) def add_info_extractor(self, ie): """Add an InfoExtractor object to the end of the list.""" @@ -1355,7 +1355,7 @@ class YoutubeDL: value, fmt = escapeHTML(str(value)), str_fmt elif fmt[-1] == 'q': # quoted value = map(str, variadic(value) if '#' in flags else [value]) - value, fmt = ' '.join(map(compat_shlex_quote, value)), str_fmt + value, fmt = shell_quote(value, shell=True), str_fmt elif fmt[-1] == 'B': # bytes value = f'%{str_fmt}'.encode() % str(value).encode() value, fmt = value.decode('utf-8', 'ignore'), 's' diff --git a/yt-dlp/yt_dlp/__init__.py b/yt-dlp/yt_dlp/__init__.py index 940594fafb..3d606bcba2 100644 --- a/yt-dlp/yt_dlp/__init__.py +++ b/yt-dlp/yt_dlp/__init__.py @@ -836,6 +836,7 @@ def parse_options(argv=None): 'noprogress': opts.quiet if opts.noprogress is None else opts.noprogress, 'progress_with_newline': opts.progress_with_newline, 'progress_template': opts.progress_template, + 'progress_delta': opts.progress_delta, 'playliststart': opts.playliststart, 'playlistend': opts.playlistend, 'playlistreverse': opts.playlist_reverse, diff --git a/yt-dlp/yt_dlp/compat/__init__.py b/yt-dlp/yt_dlp/compat/__init__.py index 5ad5c70ecf..d820adaf1e 100644 --- a/yt-dlp/yt_dlp/compat/__init__.py +++ b/yt-dlp/yt_dlp/compat/__init__.py @@ -27,12 +27,9 @@ def compat_etree_fromstring(text): compat_os_name = os._name if os.name == 'java' else os.name -if compat_os_name == 'nt': - def compat_shlex_quote(s): - import re - return s if re.match(r'^[-_\w./]+$', s) else s.replace('"', '""').join('""') -else: - from shlex import quote as compat_shlex_quote # noqa: F401 +def compat_shlex_quote(s): + from ..utils import shell_quote + return shell_quote(s) def compat_ord(c): diff --git a/yt-dlp/yt_dlp/downloader/common.py b/yt-dlp/yt_dlp/downloader/common.py index b71d7ee8f2..65a0d6f234 100644 --- a/yt-dlp/yt_dlp/downloader/common.py +++ b/yt-dlp/yt_dlp/downloader/common.py @@ -4,6 +4,7 @@ import functools import os import random import re +import threading import time from ..minicurses import ( @@ -63,6 +64,7 @@ class FileDownloader: min_filesize: Skip files smaller than this size max_filesize: Skip files larger than this size xattr_set_filesize: Set ytdl.filesize user xattribute with expected size. + progress_delta: The minimum time between progress output, in seconds external_downloader_args: A dictionary of downloader keys (in lower case) and a list of additional command-line arguments for the executable. Use 'default' as the name for arguments to be @@ -88,6 +90,9 @@ class FileDownloader: self.params = params self._prepare_multiline_status() self.add_progress_hook(self.report_progress) + if self.params.get('progress_delta'): + self._progress_delta_lock = threading.Lock() + self._progress_delta_time = time.monotonic() def _set_ydl(self, ydl): self.ydl = ydl @@ -366,6 +371,12 @@ class FileDownloader: if s['status'] != 'downloading': return + if update_delta := self.params.get('progress_delta'): + with self._progress_delta_lock: + if time.monotonic() < self._progress_delta_time: + return + self._progress_delta_time += update_delta + s.update({ '_eta_str': self.format_eta(s.get('eta')).strip(), '_speed_str': self.format_speed(s.get('speed')), diff --git a/yt-dlp/yt_dlp/networking/_helper.py b/yt-dlp/yt_dlp/networking/_helper.py index d79dd79530..8e678b26ab 100644 --- a/yt-dlp/yt_dlp/networking/_helper.py +++ b/yt-dlp/yt_dlp/networking/_helper.py @@ -2,6 +2,7 @@ from __future__ import annotations import contextlib import functools +import os import socket import ssl import sys @@ -121,6 +122,9 @@ def make_ssl_context( context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) context.check_hostname = verify context.verify_mode = ssl.CERT_REQUIRED if verify else ssl.CERT_NONE + # OpenSSL 1.1.1+ Python 3.8+ keylog file + if hasattr(context, 'keylog_filename'): + context.keylog_filename = os.environ.get('SSLKEYLOGFILE') or None # Some servers may reject requests if ALPN extension is not sent. See: # https://github.com/python/cpython/issues/85140 diff --git a/yt-dlp/yt_dlp/options.py b/yt-dlp/yt_dlp/options.py index 43d71ef070..faa1ee5634 100644 --- a/yt-dlp/yt_dlp/options.py +++ b/yt-dlp/yt_dlp/options.py @@ -1258,6 +1258,10 @@ def create_parser(): 'the progress attributes are accessible under "progress" key. E.g. ' # TODO: Document the fields inside "progress" '--console-title --progress-template "download-title:%(info.id)s-%(progress.eta)s"')) + verbosity.add_option( + '--progress-delta', + metavar='SECONDS', action='store', dest='progress_delta', type=float, default=0, + help='Time between progress output (default: 0)') verbosity.add_option( '-v', '--verbose', action='store_true', dest='verbose', default=False, diff --git a/yt-dlp/yt_dlp/update.py b/yt-dlp/yt_dlp/update.py index db50cfa6b4..f47cbc5b29 100644 --- a/yt-dlp/yt_dlp/update.py +++ b/yt-dlp/yt_dlp/update.py @@ -114,7 +114,7 @@ _NON_UPDATEABLE_REASONS = { **{variant: f'Auto-update is not supported for unpackaged {name} executable; Re-download the latest release' for variant, name in {'win32_dir': 'Windows', 'darwin_dir': 'MacOS', 'linux_dir': 'Linux'}.items()}, 'source': 'You cannot update when running from source code; Use git to pull the latest changes', - 'unknown': 'You installed yt-dlp with a package manager or setup.py; Use that to update', + 'unknown': 'You installed yt-dlp from a manual build or with a package manager; Use that to update', 'other': 'You are using an unofficial build of yt-dlp; Build the executable again', } diff --git a/yt-dlp/yt_dlp/utils/_utils.py b/yt-dlp/yt_dlp/utils/_utils.py index dec514674f..e3e80f3d33 100644 --- a/yt-dlp/yt_dlp/utils/_utils.py +++ b/yt-dlp/yt_dlp/utils/_utils.py @@ -50,7 +50,6 @@ from ..compat import ( compat_expanduser, compat_HTMLParseError, compat_os_name, - compat_shlex_quote, ) from ..dependencies import xattr @@ -836,9 +835,11 @@ class Popen(subprocess.Popen): if shell and compat_os_name == 'nt' and kwargs.get('executable') is None: if not isinstance(args, str): - args = ' '.join(compat_shlex_quote(a) for a in args) + args = shell_quote(args, shell=True) shell = False - args = f'{self.__comspec()} /Q /S /D /V:OFF /C "{args}"' + # Set variable for `cmd.exe` newline escaping (see `utils.shell_quote`) + env['='] = '"^\n\n"' + args = f'{self.__comspec()} /Q /S /D /V:OFF /E:ON /C "{args}"' super().__init__(args, *remaining, env=env, shell=shell, **kwargs, startupinfo=self._startupinfo) @@ -1637,15 +1638,38 @@ def get_filesystem_encoding(): return encoding if encoding is not None else 'utf-8' -def shell_quote(args): - quoted_args = [] - encoding = get_filesystem_encoding() - for a in args: - if isinstance(a, bytes): - # We may get a filename encoded with 'encodeFilename' - a = a.decode(encoding) - quoted_args.append(compat_shlex_quote(a)) - return ' '.join(quoted_args) +_WINDOWS_QUOTE_TRANS = str.maketrans({'"': '\\"', '\\': '\\\\'}) +_CMD_QUOTE_TRANS = str.maketrans({ + # Keep quotes balanced by replacing them with `""` instead of `\\"` + '"': '""', + # Requires a variable `=` containing `"^\n\n"` (set in `utils.Popen`) + # `=` should be unique since variables containing `=` cannot be set using cmd + '\n': '%=%', + # While we are only required to escape backslashes immediately before quotes, + # we instead escape all of 'em anyways to be consistent + '\\': '\\\\', + # Use zero length variable replacement so `%` doesn't get expanded + # `cd` is always set as long as extensions are enabled (`/E:ON` in `utils.Popen`) + '%': '%%cd:~,%', +}) + + +def shell_quote(args, *, shell=False): + args = list(variadic(args)) + if any(isinstance(item, bytes) for item in args): + deprecation_warning('Passing bytes to utils.shell_quote is deprecated') + encoding = get_filesystem_encoding() + for index, item in enumerate(args): + if isinstance(item, bytes): + args[index] = item.decode(encoding) + + if compat_os_name != 'nt': + return shlex.join(args) + + trans = _CMD_QUOTE_TRANS if shell else _WINDOWS_QUOTE_TRANS + return ' '.join( + s if re.fullmatch(r'[\w#$*\-+./:?@\\]+', s, re.ASCII) else s.translate(trans).join('""') + for s in args) def smuggle_url(url, data): @@ -2849,7 +2873,7 @@ def ytdl_is_updateable(): def args_to_str(args): # Get a short string representation for a subprocess command - return ' '.join(compat_shlex_quote(a) for a in args) + return shell_quote(args) def error_to_str(err): diff --git a/yt-dlp/yt_dlp/version.py b/yt-dlp/yt_dlp/version.py index 68c3f00e84..22c2c048d8 100644 --- a/yt-dlp/yt_dlp/version.py +++ b/yt-dlp/yt_dlp/version.py @@ -1,8 +1,8 @@ # Autogenerated by devscripts/update-version.py -__version__ = '2024.03.10' +__version__ = '2024.04.09' -RELEASE_GIT_HEAD = '615a84447e8322720be77a0e64298d7f42848693' +RELEASE_GIT_HEAD = 'ff07792676f404ffff6ee61b5638c9dc1a33a37a' VARIANT = None @@ -12,4 +12,4 @@ CHANNEL = 'stable' ORIGIN = 'yt-dlp/yt-dlp' -_pkg_version = '2024.03.10' +_pkg_version = '2024.04.09'