Closed baby195lxl closed 2 years ago
不光是这样,三个ssl中任选其中两个(libustream-wolfssl libustream-mbedtls)都会编译失败,只能选openssl才能正常编译啊。。。哈哈,说好不依赖openssl 的呢
同样出错,请问要怎么修改才能编译通过呢?
同样出错,请问要怎么修改才能编译通过呢?
配置的时候选择libustream-openssl
如果不清楚如何选择,请保持默认。
添加CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_libustream-wolfssl=y
和# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_libustream-openssl is not set
到配置文件试试
如果不清楚如何选择,请保持默认。
OK
添加
CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_libustream-wolfssl=y
和# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_libustream-openssl is not set
到配置文件试试
我试试,先close了
ssr-libev 就依赖 openssl,如果想剔除 libopenssl,需要对 ssr-libev 也做下修改
--- a/shadowsocksr-libev/Makefile
+++ b/shadowsocksr-libev/Makefile
@@ -33,7 +33,7 @@ define Package/shadowsocksr-libev/Default
SUBMENU:=Web Servers/Proxies
TITLE:=shadowsocksr-libev ssr-$(1)
URL:=https://github.com/shadowsocksrr/shadowsocksr-libev
- DEPENDS:=+libev +libsodium +libopenssl +libpthread +libpcre +libudns +zlib
+ DEPENDS:=+libev +libmbedtls +libpthread +libsodium +libpcre +libudns +zlib
endef
define Package/shadowsocksr-libev-ssr-$(1)/install
@@ -54,7 +54,8 @@ CONFIGURE_ARGS += \
--disable-documentation \
--disable-ssp \
--disable-assert \
- --enable-system-shared-lib
+ --enable-system-shared-lib \
+ --with-crypto-library=mbedtls
TARGET_CFLAGS += -flto
TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed
然后会发现 ssr-libev 编译不过去,需要对 mbedtls 打一个补丁
--- a/include/mbedtls/config.h
+++ b/include/mbedtls/config.h
@@ -2142,7 +2142,7 @@
* MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256
* MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256
*/
-//#define MBEDTLS_CAMELLIA_C
+#define MBEDTLS_CAMELLIA_C
/**
* \def MBEDTLS_ARIA_C
如果真想剔除 libopenssl 的话,ssh 进固件,opkg whatdepends libopenssl
看下你的固件里有多少依赖这个 SSL 库的
另外,发现 ssrp+ 项目做成了 可选依赖 wolfssl openssl mbedtls 了,不错,不过 wpad 只有 wolfssl openssl 可选,想要无线,就必定引入 libopenssl
libwolfssl
这两个之一。
补充一下,wolfssl和openssl这两个库其实是有区别的,wolfssl没有wget-ssl命令,wget命令就可以下载https连接的内容 像vssr这个库里面硬编码了很多wget-ssl,如果用官方21.02(官方21.02已经全面迁移到wolfssl了),就要先用sed把wget-ssl替换成wget才能正常使用。 此外,最好把--no-check-certificate也删掉
sed -i "s/ --no-check-certificate / /g" `grep wget-ssl -rl ./luci-app-vssr`
sed -i "s/wget-ssl/wget/g" `grep wget-ssl -rl ./luci-app-vssr`
补充一下,wolfssl和openssl这两个库其实是有区别的,wolfssl没有wget-ssl命令,wget命令就可以下载https连接的内容 像vssr这个库里面硬编码了很多wget-ssl,如果用官方21.02(官方21.02已经全面迁移到wolfssl了),就要先用sed把wget-ssl替换成wget才能正常使用。 此外,最好把--no-check-certificate也删掉
sed -i "s/ --no-check-certificate / /g" `grep wget-ssl -rl ./luci-app-vssr` sed -i "s/wget-ssl/wget/g" `grep wget-ssl -rl ./luci-app-vssr`
官方的里面,wget软连接到wget-ssl了
root@OpenWrt:~# ll /usr/bin/wget
lrwxrwxrwx 1 root root 21 Oct 24 17:01 /usr/bin/wget -> /usr/libexec/wget-ssl*
root@OpenWrt:~#
补充一下,wolfssl和openssl这两个库其实是有区别的,wolfssl没有wget-ssl命令,wget命令就可以下载https连接的内容 像vssr这个库里面硬编码了很多wget-ssl,如果用官方21.02(官方21.02已经全面迁移到wolfssl了),就要先用sed把wget-ssl替换成wget才能正常使用。 此外,最好把--no-check-certificate也删掉
sed -i "s/ --no-check-certificate / /g" `grep wget-ssl -rl ./luci-app-vssr` sed -i "s/wget-ssl/wget/g" `grep wget-ssl -rl ./luci-app-vssr`
官方的里面,wget软连接到wget-ssl了
root@OpenWrt:~# ll /usr/bin/wget lrwxrwxrwx 1 root root 21 Oct 24 17:01 /usr/bin/wget -> /usr/libexec/wget-ssl* root@OpenWrt:~#
原来是这样,wget-ssl在这个地方啊。 不知道是出于什么理由这么搞
ssr-libev 就依赖 openssl,如果想剔除 libopenssl,需要对 ssr-libev 也做下修改
--- a/shadowsocksr-libev/Makefile +++ b/shadowsocksr-libev/Makefile @@ -33,7 +33,7 @@ define Package/shadowsocksr-libev/Default SUBMENU:=Web Servers/Proxies TITLE:=shadowsocksr-libev ssr-$(1) URL:=https://github.com/shadowsocksrr/shadowsocksr-libev - DEPENDS:=+libev +libsodium +libopenssl +libpthread +libpcre +libudns +zlib + DEPENDS:=+libev +libmbedtls +libpthread +libsodium +libpcre +libudns +zlib endef define Package/shadowsocksr-libev-ssr-$(1)/install @@ -54,7 +54,8 @@ CONFIGURE_ARGS += \ --disable-documentation \ --disable-ssp \ --disable-assert \ - --enable-system-shared-lib + --enable-system-shared-lib \ + --with-crypto-library=mbedtls TARGET_CFLAGS += -flto TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed
然后会发现 ssr-libev 编译不过去,需要对 mbedtls 打一个补丁
--- a/include/mbedtls/config.h +++ b/include/mbedtls/config.h @@ -2142,7 +2142,7 @@ * MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 * MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 */ -//#define MBEDTLS_CAMELLIA_C +#define MBEDTLS_CAMELLIA_C /** * \def MBEDTLS_ARIA_C
如果真想剔除 libopenssl 的话,ssh 进固件,
opkg whatdepends libopenssl
看下你的固件里有多少依赖这个 SSL 库的 另外,发现 ssrp+ 项目做成了 可选依赖 wolfssl openssl mbedtls 了,不错,不过 wpad 只有 wolfssl openssl 可选,想要无线,就必定引入libopenssl
libwolfssl
这两个之一。你好,ssrp+项目链接是啥,openssl太大,我想改用mbedtls,谢谢。
就是本项目,菜单中显示 ShadowSocksR Plus+,切换到mbedtls有点繁琐,一些包硬编openssl库,虽然上游openwrt默认切到mbedtls了,前面的经验也是2年前的,不知道现在变化大不大
设备:斐讯N1盒子
编译时选择libustream-wolfssl会导致编译失败,如选择libustream-openssl则可正常编译
日志