fix(ssurl): enable rustls only for x86, x86_64, aarch64 targets

ref #1287

Rustls (deps by reqwest) doesn't support all platforms, like MIPS.
This commit is contained in:
zonyitoo
2023-09-12 01:00:50 +08:00
parent e50635ce5f
commit e8ea40c25e
4 changed files with 86 additions and 15 deletions

33
Cargo.lock generated
View File

@@ -1086,6 +1086,19 @@ dependencies = [
"tokio-rustls",
]
[[package]]
name = "hyper-tls"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
dependencies = [
"bytes",
"hyper",
"native-tls",
"tokio",
"tokio-native-tls",
]
[[package]]
name = "iana-time-zone"
version = "0.1.57"
@@ -1568,6 +1581,15 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
[[package]]
name = "openssl-src"
version = "300.1.3+3.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd2c101a165fff9935e34def4669595ab1c7847943c42be86e21503e482be107"
dependencies = [
"cc",
]
[[package]]
name = "openssl-sys"
version = "0.9.93"
@@ -1576,6 +1598,7 @@ checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d"
dependencies = [
"cc",
"libc",
"openssl-src",
"pkg-config",
"vcpkg",
]
@@ -1927,10 +1950,12 @@ dependencies = [
"http-body",
"hyper",
"hyper-rustls",
"hyper-tls",
"ipnet",
"js-sys",
"log",
"mime",
"native-tls",
"once_cell",
"percent-encoding",
"pin-project-lite",
@@ -1941,6 +1966,7 @@ dependencies = [
"serde_json",
"serde_urlencoded",
"tokio",
"tokio-native-tls",
"tokio-rustls",
"tower-service",
"url",
@@ -2363,7 +2389,7 @@ dependencies = [
[[package]]
name = "shadowsocks-rust"
version = "1.16.1"
version = "1.16.2"
dependencies = [
"base64",
"build-time",
@@ -2400,7 +2426,7 @@ dependencies = [
[[package]]
name = "shadowsocks-service"
version = "1.16.1"
version = "1.16.2"
dependencies = [
"arc-swap",
"async-trait",
@@ -2867,6 +2893,7 @@ dependencies = [
"http",
"idna",
"ipnet",
"native-tls",
"once_cell",
"rand",
"rustls",
@@ -2877,6 +2904,7 @@ dependencies = [
"thiserror",
"tinyvec",
"tokio",
"tokio-native-tls",
"tokio-rustls",
"tracing",
"url",
@@ -2902,6 +2930,7 @@ dependencies = [
"smallvec",
"thiserror",
"tokio",
"tokio-native-tls",
"tokio-rustls",
"tracing",
"trust-dns-proto",

View File

@@ -1,6 +1,6 @@
[package]
name = "shadowsocks-rust"
version = "1.16.1"
version = "1.16.2"
authors = ["Shadowsocks Contributors"]
description = "shadowsocks is a fast tunnel proxy that helps you bypass firewalls."
repository = "https://github.com/shadowsocks/shadowsocks-rust"
@@ -72,13 +72,17 @@ server = ["shadowsocks-service/server"]
# Enable manager server
manager = ["shadowsocks-service/manager"]
# Enable utility
utility = ["qrcode"]
utility = ["qrcode", "reqwest"]
# Enable service
service = ["local", "server", "manager"]
# Enables trust-dns for replacing tokio's builtin DNS resolver
trust-dns = ["shadowsocks-service/trust-dns"]
dns-over-tls = ["shadowsocks-service/dns-over-tls"]
dns-over-native-tls = ["shadowsocks-service/dns-over-native-tls"]
dns-over-native-tls-vendored = [
"shadowsocks-service/dns-over-native-tls-vendored",
]
dns-over-https = ["shadowsocks-service/dns-over-https"]
# Enable logging output
@@ -95,6 +99,10 @@ local-http-native-tls = [
"local-http",
"shadowsocks-service/local-http-native-tls",
]
local-http-native-tls-vendored = [
"local-http",
"shadowsocks-service/local-http-native-tls-vendored",
]
local-http-rustls = ["local-http", "shadowsocks-service/local-http-rustls"]
# Enable REDIR protocol for sslocal
# (transparent proxy)
@@ -164,11 +172,6 @@ tokio = { version = "1", features = ["rt", "signal"] }
num_cpus = "1.15"
ipnet = { version = "2.7", optional = true }
reqwest = { version = "0.11", features = [
"blocking",
"rustls-tls",
"rustls-tls-native-roots",
], default-features = false }
mimalloc = { version = "0.1", default-features = false, optional = true }
tcmalloc = { version = "0.3", optional = true }
@@ -181,6 +184,19 @@ shadowsocks-service = { version = "1.16.1", path = "./crates/shadowsocks-service
[target.'cfg(unix)'.dependencies]
daemonize = "0.5"
[target.'cfg(any(target_arch = "x86", target_arch = "x86_64", target_arch = "aarch64"))'.dependencies]
reqwest = { version = "0.11", features = [
"blocking",
"rustls-tls",
"rustls-tls-native-roots",
], default-features = false, optional = true }
[target.'cfg(not(any(target_arch = "x86", target_arch = "x86_64", target_arch = "aarch64")))'.dependencies]
reqwest = { version = "0.11", features = [
"blocking",
"native-tls-vendored",
], optional = true }
[dev-dependencies]
byteorder = "1.3"
env_logger = "0.10"

View File

@@ -1,8 +1,18 @@
[build.env]
passthrough = ["RUSTFLAGS"]
#[target.mips-unknown-linux-musl]
#image = "rustembedded/cross:mips-unknown-linux-musl-0.2.1"
#
#[target.mipsel-unknown-linux-musl]
#image = "rustembedded/cross:mipsel-unknown-linux-musl-0.2.1"
[target.mips-unknown-linux-musl]
# image = "rustembedded/cross:mips-unknown-linux-musl-0.2.1"
# pre-build = [
# "dpkg --add-architecture $CROSS_DEB_ARCH",
# "apt-get update",
# "apt-get install --assume-yes libssl-dev:$CROSS_DEB_ARCH",
# ]
[target.mipsel-unknown-linux-musl]
# image = "rustembedded/cross:mipsel-unknown-linux-musl-0.2.1"
# pre-build = [
# "dpkg --add-architecture $CROSS_DEB_ARCH",
# "apt-get update",
# "apt-get install --assume-yes libssl-dev:$CROSS_DEB_ARCH",
# ]

View File

@@ -1,6 +1,6 @@
[package]
name = "shadowsocks-service"
version = "1.16.1"
version = "1.16.2"
authors = ["Shadowsocks Contributors"]
description = "shadowsocks is a fast tunnel proxy that helps you bypass firewalls."
repository = "https://github.com/shadowsocks/shadowsocks-rust"
@@ -39,6 +39,17 @@ dns-over-tls = [
"trust-dns-resolver/dns-over-tls",
"trust-dns-resolver/dns-over-rustls",
]
dns-over-native-tls = [
"trust-dns",
"trust-dns-resolver/dns-over-tls",
"trust-dns-resolver/dns-over-native-tls",
]
dns-over-native-tls-vendored = [
"trust-dns",
"trust-dns-resolver/dns-over-tls",
"trust-dns-resolver/dns-over-native-tls",
"native-tls/vendored",
]
dns-over-https = [
"trust-dns",
"trust-dns-resolver/dns-over-https",
@@ -55,6 +66,11 @@ local-flow-stat = ["local"]
# Enable HTTP protocol for sslocal
local-http = ["local", "hyper", "tower"]
local-http-native-tls = ["local-http", "tokio-native-tls", "native-tls"]
local-http-native-tls-vendored = [
"local-http-native-tls",
"tokio-native-tls/vendored",
"native-tls/vendored",
]
local-http-rustls = [
"local-http",
"tokio-rustls",