Closed ForestL18 closed 3 weeks ago
感觉还是得用build date来标识软件包版本,方便opkg识别。package version设为alpha,package release删掉。🤔
我改一下
但是我得说一下:
PKG_RELEASE
无关,只比较PKG_VERSION
PKG_VERSION
它会根据PKG_SOURCE_DATE
和PKG_SOURCE_VERSION
生成PKG_VERSION
,且和核心的Version
一致,所以我给PKG_SOURCE_DATE
设置了alpha,这样生成出来就是alpha-xxxxxxxx
这种格式的了,当时没想到会有这个问题我修改了Makefile,将PKG_SOURCE_DATE
设置为日期,Workflow也一并改了,UTC时间0点自动获取,然后将PKG_SOURCE_DATE
设置为昨天
我改一下
但是我得说一下:
- 版本比较和
PKG_RELEASE
无关,只比较PKG_VERSION
- 如果不设置
PKG_VERSION
它会根据PKG_SOURCE_DATE
和PKG_SOURCE_VERSION
生成- 因为我想让他生成
PKG_VERSION
,且和核心的Version
一致,所以我给PKG_SOURCE_DATE
设置了alpha,这样生成出来就是alpha-xxxxxxxx
这种格式的了,当时没想到会有这个问题
@morytyann 关于你说的第一点是错误的,我查了下openwrt官方说明,里面提到:Source packages must specify a PKG_RELEASE value identifying the revision of the source package. In contrast to the PKG_VERSION, PKG_SOURCE_DATE and PKG_SOURCE_VERSION variables which are identifying the upstream version of the program code being packaged, the PKG_RELEASE variable denotes the revision of the package itself.
然后根据opkg的命令,我也写了个小脚本验证:
#!/bin/sh
echo "Enter first version:"
read VERSION1
echo "Enter second version:"
read VERSION2
echo ""
if opkg compare_versions "$VERSION1" '>>' "$VERSION2"; then
echo "$VERSION1 > $VERSION2"
elif opkg compare_versions "$VERSION1" '=' "$VERSION2"; then
echo "$VERSION1 = $VERSION2"
else
echo "$VERSION1 < $VERSION2"
fi
echo ""
结果如下:
前面的PKG_VERSION
(or PKG_SOURCE_DATE-PKG_SOURCE_VERSION
)相同时,会通过PKG_RELEASE
比较大小
前面的PKG_VERSION
不同时,会先比较PKG_VERSION
,不过对于hash人眼就很难分辨大小了
嗯嗯,你说得对,我表述有问题,我想说的是PKG_VERSION
不同时不会比较PKG_RELEASE
,感谢勘误❤️
嗯嗯,你说得对,我表述有问题,我想说的是
PKG_VERSION
不同时不会比较PKG_RELEASE
,感谢勘误❤️
刚好我对这个也不是很了解,刚好了解一下
@ForestL18 #123 建了个群,通知你一下
自查步骤
DNS 重定向
选项确认
系统
ImmortalWrt
系统版本
ImmortalWrt 23.05.3 r27917-81a1f98d5b
插件版本
1.7.1
硬件架构
aarch64_generic
BUG 描述
mihomo/Makefile
中的PKG_RELEASE:=1
感觉还是不能改,否则上个版本你把这个值改成了2,这个版本被重置成了1,直接使用opkg升级软件包的话会提示无法降级。预期行为
无
复现步骤
无
插件配置
无
配置文件
No response
插件日志
No response
核心日志
No response
附加信息
No response