morytyann / OpenWrt-mihomo

Transparent Proxy with Mihomo on OpenWrt.
MIT License
647 stars 69 forks source link

[BUG] PKG_RELEASE数值设置问题 #119

Closed ForestL18 closed 3 weeks ago

ForestL18 commented 3 weeks ago

自查步骤

确认

系统

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

ForestL18 commented 3 weeks ago

感觉还是得用build date来标识软件包版本,方便opkg识别。package version设为alpha,package release删掉。🤔

morytyann commented 3 weeks ago

我改一下

但是我得说一下:

  1. 版本比较和PKG_RELEASE无关,只比较PKG_VERSION
  2. 如果不设置PKG_VERSION它会根据PKG_SOURCE_DATEPKG_SOURCE_VERSION生成
  3. 因为我想让他生成PKG_VERSION,且和核心的Version一致,所以我给PKG_SOURCE_DATE设置了alpha,这样生成出来就是alpha-xxxxxxxx这种格式的了,当时没想到会有这个问题
morytyann commented 3 weeks ago

我修改了Makefile,将PKG_SOURCE_DATE设置为日期,Workflow也一并改了,UTC时间0点自动获取,然后将PKG_SOURCE_DATE设置为昨天

ForestL18 commented 3 weeks ago

我改一下

但是我得说一下:

  1. 版本比较和PKG_RELEASE无关,只比较PKG_VERSION
  2. 如果不设置PKG_VERSION它会根据PKG_SOURCE_DATEPKG_SOURCE_VERSION生成
  3. 因为我想让他生成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比较大小 image

前面的PKG_VERSION不同时,会先比较PKG_VERSION,不过对于hash人眼就很难分辨大小了 image

image

morytyann commented 3 weeks ago

嗯嗯,你说得对,我表述有问题,我想说的是PKG_VERSION不同时不会比较PKG_RELEASE,感谢勘误❤️

ForestL18 commented 3 weeks ago

嗯嗯,你说得对,我表述有问题,我想说的是PKG_VERSION不同时不会比较PKG_RELEASE,感谢勘误❤️

刚好我对这个也不是很了解,刚好了解一下

morytyann commented 3 weeks ago

@ForestL18 #123 建了个群,通知你一下