deepin-wine-wechat-arch icon indicating copy to clipboard operation
deepin-wine-wechat-arch copied to clipboard

deepin-wine-wechat 3.6.0.18-1无法安装微信

Open sklynic opened this issue 2 years ago • 8 comments

版本更新到deepin-wine-wechat 3.6.0.18-1(aur上3小时前的版本)后,所有对WINEPREFIX~/.deepinwine/Deepin-WeChat/)的修改均会导致/opt/apps/com.qq.weixin.deepin/files/run.sh删除其中的所有内容(包括安装微信的操作,安装后重新打开也会清空WINEPREFIX,又回到了安装前的状态使脚本重新开始安装) 已尝试删除WINEPREFIX并重新构建安装,无法解决问题

sklynic avatar Apr 05 '22 08:04 sklynic

看样子是deepin-wine-helper的/opt/deepinwine/tools/run_v4.sh文件里APPVER有时不能成功写入:

echo "$APPVER" > "$WINEPREFIX/PACKAGE_VERSION"

导致后续在UpdateApp时做的版本检查没有通过,触发了删除的逻辑:

if [ -f "$WINEPREFIX/PACKAGE_VERSION" ] && [ "$(cat "$WINEPREFIX/PACKAGE_VERSION")" = "$APPVER" ]; then
  return
fi
...
case $BOTTLENAME in
        "Deepin-Intelligent" | "Deepin-QQ" | "Deepin-TIM" | "Deepin-WeChat" | "Deepin-WXWork" | "Deepin-Dding")
            rm -rf "$WINEPREFIX"
            DeployApp
            return
            ;;
    esac

所以在安装后(指存在c:/Program Files/Tencent/WeChat/WeChat.exe),需要检查一下$HOME/.deepinwine/Deepin-WeChat/PACKAGE_VERSION文件是否存在,如果不存在那么可以试试这个:

cat /opt/apps/com.qq.weixin.deepin/files/files.md5sum > $HOME/.deepinwine/Deepin-WeChat/PACKAGE_VERSION

TangliziGit avatar Apr 06 '22 16:04 TangliziGit

@TangliziGit 感谢帮助,不能复现这个问题,已经尝试在 run.sh 加入修复:https://github.com/vufa/deepin-wine-wechat-arch/commit/1e28528bef3e649e922da4f505145ae8200e6c24

vufa avatar Apr 06 '22 16:04 vufa

这是因为 deepin-wine-wechat 自己又定义了 DeployApp 函数。 run_v4.sh 的 DeployApp 函数是有写入 PACKAGE_VERSION 的。

这个问题百分百复现。

alienzj avatar May 19 '22 14:05 alienzj

run_v4.sh 的 DeployApp 函数实现如下:

DeployApp()
{
	ExtractApp "$WINEPREFIX"

    if UsePublicDir;then
        chgrp -R users "$WINEPREFIX"
        chmod -R 0775 "$WINEPREFIX"
    fi

	echo "$APPVER" > "$WINEPREFIX/PACKAGE_VERSION"
}

alienzj avatar May 19 '22 14:05 alienzj

但是 aur 上的版本似乎并没有这个热修复。我尝试了几遍都是这个样子。

alienzj avatar May 19 '22 14:05 alienzj

deepin-wine-helper 更新到 5.1.39_1-1 了,不知道有没有修复这个问题,可以试试

vufa avatar May 22 '22 03:05 vufa

deepin-wine-helper 更新到 5.1.39_1-1 了,不知道有没有修复这个问题,可以试试

我看到代码里没 pin 住具体版本的安装包地址,这样有新版微信更新之后 MD5 就对不上了,无法安装。比如现在好像安装包就已经更新过一次了,代码里 MD5 是 12dfdf74fa1db8c436da301d0d732685( https://github.com/vufa/deepin-wine-wechat-arch/blob/bc9d590bf2bcaec522ce8f5ce6a04e293c8d67cf/.SRCINFO#L29 )

> wrestool --extract --raw --type=version ~/.cache/yay/deepin-wine-wechat/WeChatSetup-3.7.0.29.exe | strings -el | grep Version -A 1
FileVersion
3.7.0.1000
--
ProductVersion
3.7.0.0

> md5sum ~/.cache/yay/deepin-wine-wechat/WeChatSetup-3.7.0.29.exe
f051ff988f36b1c9e2ba3b98cebbc7b6  /home/xx/.cache/yay/deepin-wine-wechat/WeChatSetup-3.7.0.29.exe

JokerQyou avatar Jun 09 '22 02:06 JokerQyou

@JokerQyou 感谢提醒,已经更新:https://github.com/vufa/deepin-wine-wechat-arch/commit/25181da60193d7c54adb0192a3ec0e9bcb618d36 ,目前没有办法下载具体版本的安装包

vufa avatar Jun 09 '22 03:06 vufa