xiaorouji / openwrt-passwall

7.02k stars 2.62k forks source link

[Bug]: 使用op21.02.3的SDK编译IPK时,无法生成v2ray等ipk。 #2143

Closed wazzx closed 1 year ago

wazzx commented 1 year ago

描述您遇到的bug

教程是discussion的教程 SDK是op21.02.3,但是更新到最新以后,则不能顺便一起编译出来相关的ipk,这样对于我们部分稳定版本的op,靠编译ipk的来说有点麻烦,难道只能单独一个一个编译相关ipk make package/v2ray-core/{clean,compile} V=s make package/shadowsocks-rust/{clean,compile} V=s make package/chinadns-ng/{clean,compile} V=s

复现此Bug的步骤

编译问题

您想要实现的目的

一起编译

日志信息

编译

截图

No response

系统相关信息

最新

其他信息

No response

wazzx commented 1 year ago

目前在编译op22.03.1sdk依赖包问题导致选中了Nftables_Transparent_Proxy,依然无法编译相关依赖包,并且还是iptables模式,安装后提示如下:

清空并关闭相关程序和缓存完成。
系统未安装iptables或ipset,无法透明代理!
配置定时任务:自动更新规则。
 运行完成
hij4cker commented 1 year ago

我用了21.02.2 21.02.4 22.03.1这几个版本都试了一下。在PWpackages下只有dns2socks dns2tcp tcping microsocks四个ipkg包。应该是一个bug了。

wazzx commented 1 year ago

我用了21.02.2 21.02.4 22.03.1这几个版本都试了一下。在PWpackages下只有dns2socks dns2tcp tcping microsocks四个ipkg包。应该是一个bug了。

因为2118修复了问题

hij4cker commented 1 year ago

我用了21.02.2 21.02.4 22.03.1这几个版本都试了一下。在PWpackages下只有dns2socks dns2tcp tcping microsocks四个ipkg包。应该是一个bug了。

因为2118修复了问题

我看到了2118的说明,说luci-app-passwall被选中后才能被配置,可是我在编译的时候已经选中了luci-app-passwall和其下面的v2ray等,编译后没有报错,但仍然不能生成v2ray等软件的ipk包

hij4cker commented 1 year ago

我又试了一下。我的编译环境是ubuntu22.04.1,SDK用的是openwrt-sdk-22.03.1-ipq806x-generic_gcc-11.2.0_musl_eabi.Linux-x86_64.tar.xz。我把luci-app-passwall下的Makefile恢复成2118前的状态再编译,仍然不能生成V2ray等软件的ipkg包。

wazzx commented 1 year ago

我又试了一下。我的编译环境是ubuntu22.04.1,SDK用的是openwrt-sdk-22.03.1-ipq806x-generic_gcc-11.2.0_musl_eabi.Linux-x86_64.tar.xz。我把luci-app-passwall下的Makefile恢复成2118前的状态再编译,仍然不能生成V2ray等软件的ipkg包。

我和你是一样的问题,但是目前不知道他们是怎么来解决这个问题,看着有点麻烦

wazzx commented 1 year ago

我用了21.02.2 21.02.4 22.03.1这几个版本都试了一下。在PWpackages下只有dns2socks dns2tcp tcping microsocks四个ipkg包。应该是一个bug了。

因为2118修复了问题

我看到了2118的说明,说luci-app-passwall被选中后才能被配置,可是我在编译的时候已经选中了luci-app-passwall和其下面的v2ray等,编译后没有报错,但仍然不能生成v2ray等软件的ipk包

并且还说一个事情:22.03以后官方有V2ray等软件包

wazzx commented 1 year ago

更新到最新的#2146后再次编译op SDK 22.03.1,没有安装iptables-nft,选择nftables模式还是出现启动不了的问题

2022-10-17 20:xx:58: 清空并关闭相关程序和缓存完成。
2022-10-17 20:xx:59: 系统未安装iptables或ipset,无法透明代理!
2022-10-17 20:xx:59: 运行完成!
WYC-2020 commented 1 year ago

image 你们自己操作问题吧 我刚用21.02.2测试没问题

WYC-2020 commented 1 year ago

再者说你们这个 指令明显就是错误的 make package/v2ray-core/{clean,compile} V=s make package/shadowsocks-rust/{clean,compile} V=s make package/chinadns-ng/{clean,compile} V=s 这个package下面根本就没有这些,而是在feed里面才对,自己排查吧

wazzx commented 1 year ago

再者说你们这个 指令明显就是错误的 make package/v2ray-core/{clean,compile} V=s make package/shadowsocks-rust/{clean,compile} V=s make package/chinadns-ng/{clean,compile} V=s 这个package下面根本就没有这些,而是在feed里面才对,自己排查吧

image 你们自己操作问题吧 我刚用21.02.2测试没问题

刚刚是更新了,退回来。

hij4cker commented 1 year ago

image 你们自己操作问题吧 我刚用21.02.2测试没问题

肯定不是操作的问题,就是luci的Makefile的问题。昨天晚上更新了2148,已经把2118做的更改给回退了,现在再编译就没有问题了。

WYC-2020 commented 1 year ago

image 你们自己操作问题吧 我刚用21.02.2测试没问题

肯定不是操作的问题,就是luci的Makefile的问题。昨天晚上更新了2148,已经把2118做的更改给回退了,现在再编译就没有问题了。

并不是 我没合并那个2148那个提交,所以应该不是这个的问题,没事你们能编译就行 我是不会合并这个提交的,因为我这边一切正常哈哈 image

WYC-2020 commented 1 year ago

也可能是我这边 和这个还是有区别的原因 因为我这个不是完全 和他的相同,能用就行问题不大

1715173329 commented 1 year ago

SDK 编译不出来依赖因为它们和本体已经没有直接关系,select 会让软件包的状态变成 y/m,但也仅此而已。 单独使用 make 指令的时候,buildroot 会寻找所有启用的配置并编译他们,编译单个包时则只会读取包自身的配置。

虽然已经 revert 某个提交,现在的写法依旧有问题 https://github.com/xiaorouji/openwrt-passwall/blob/20a3c63ee9e8dd98a0ae45cf90bf66ff7cae14e2/luci-app-passwall/Makefile#L63-L75 ... 即便取消 passwall 本体,依然会因为 Transparent_Proxy 这个选项导致它下面所有的软件包被选中,必须取消选项本身才行。 这样导致的后果是,即使用户不使用 passwall,也可能会因为源码里面带上了它而导致不必要的软件包被集成。 当然可以在 default 处再加条件,但透明代理模块是驱动 passwall 工作的核心,为什么不写入依赖?

btw,某些大神似乎并不知道 openwrt buildroot 会自动寻找包所在目录。

saldry commented 1 year ago

我看到了2118的说明,说luci-app-passwall被选中后才能被配置,可是我在编译的时候已经选中了luci-app-passwall和其下面的v2ray等,编译后没有报错,但仍然不能生成v2ray等软件的ipk包

因为#2118 移除了luci-app-passwall和v2ray等组件的依赖关系,所以单独编译luci-app-passwall是不会编译v2ray等组件的,这是正常的,不会报错。如果是编译完整系统固件,选中luci-app-passwall后是会编译v2ray等组件的(通过select而不是依赖关系)。

抱歉我的更改给各位造成了不必要的麻烦,我确实没有考虑到移除依赖关系后单独编译ipk等情形中可能出现的不便。