/usr/bin/deepin-wine6-stable
这个东西看起来不像是deepin-wine,这是个脚本吗?
/usr/bin/deepin-wine6-stable
这个东西看起来不像是deepin-wine,这是个脚本吗?
source=("https://mirrors.sdu.edu.cn/spark-store-repository/store/chat/com.qq.weixin.spark/${pkgname}_${pkgver}_i386.deb")
发贴的,回贴的,都是高手,除了我这个小白!
/usr/bin/deepin-wine6-stable
这个东西看起来不像是deepin-wine,这是个脚本吗?
/usr/bin/deepin-wine6-stable 来自于 deepin-wine6-stable 包,内容如下:
#!/bin/bash
name=$(basename $0)
bindir=/usr/lib/$name
wine32=/opt/$name/bin/wine
wine64=/opt/$name/bin/wine64
if test -x $wine32 -a "$WINEARCH" != "win64"; then
wine=$wine32
elif test -x $wine64; then
wine=$wine64
if [ "$(dpkg --print-architecture)" = "amd64" -a "$(dpkg --print-foreign-architectures | grep -cx "i386")" -ne 1 ]; then
echo "it looks like multiarch needs to be enabled. as root, please"
echo "execute \"dpkg --add-architecture i386 && apt-get update &&"
echo "apt-get install $(echo $name | sed s/wine/wine32/)\""
fi
else
echo "error: unable to find wine executable. this shouldn't happen."
exit 1
fi
if test -z "$WINEPREFIX"; then
if test "$wine" = "$wine64"; then
wineprefix=$HOME/.wine64
else
wineprefix=$HOME/.wine
fi
else
wineprefix=$WINEPREFIX
fi
if test -z "$WINELOADER"; then
wineloader=$wine
else
wineloader=$WINELOADER
fi
if test -z "$WINEDEBUG"; then
winedebug=-all
else
winedebug=$WINEDEBUG
fi
runtime_path=/opt/deepinwine/runtime-i386
cur_arch=`arch`
if [ -f "$runtime_path/init_runtime.sh" -a $cur_arch = "x86_64" -a "$wine" = "$wine32" ];then
source "$runtime_path/init_runtime.sh"
PE_FILE="$1"
if [[ "$1" == *".exe" ]];then
PE_FILE=$(echo "$1" | sed -e 's/\\/\//g')
if [[ "$1" == "c:"* ]];then
PE_FILE="$wineprefix/$(echo "${PE_FILE/c:/drive_c}")"
elif [[ "$1" == "C:"* ]];then
PE_FILE="$wineprefix/$(echo "${PE_FILE/C:/drive_c}")"
fi
fi
if [ -f "$PE_FILE" ];then
EXE_TYPE=$(file "$PE_FILE" | awk -F : '{print $2}' | awk '{print $1}')
fi
init_runtime
#only 32 bit application need config this envs
if [ "$EXE_TYPE" != "PE32+" ];then
init_32bit_config
fi
winepreloader=/opt/$name/bin/wine-preloader
WINEPREFIX=$wineprefix WINELOADER=$wineloader WINEDEBUG=$winedebug $winepreloader $wine "$@"
else
WINEPREFIX=$wineprefix WINELOADER=$wineloader WINEDEBUG=$winedebug $wine "$@"
fi
/usr/bin/deepin-wine6-stable 来自于 deepin-wine6-stable 包,内容如下:
#!/bin/bash
name=$(basename $0)
bindir=/usr/lib/$name
wine32=/opt/$name/bin/wine
wine64=/opt/$name/bin/wine64
if test -x $wine32 -a "$WINEARCH" != "win64"; then
wine=$wine32
elif test -x $wine64; then
wine=$wine64
if [ "$(dpkg --print-architecture)" = "amd64" -a "$(dpkg --print-foreign-architectures | grep -cx "i386")" -ne 1 ]; then
echo "it looks like multiarch needs to be enabled. as root, please"
echo "execute \"dpkg --add-architecture i386 && apt-get update &&"
echo "apt-get install $(echo $name | sed s/wine/wine32/)\""
fi
else
echo "error: unable to find wine executable. this shouldn't happen."
exit 1
fi
if test -z "$WINEPREFIX"; then
if test "$wine" = "$wine64"; then
wineprefix=$HOME/.wine64
else
wineprefix=$HOME/.wine
fi
else
wineprefix=$WINEPREFIX
fi
if test -z "$WINELOADER"; then
wineloader=$wine
else
wineloader=$WINELOADER
fi
if test -z "$WINEDEBUG"; then
winedebug=-all
else
winedebug=$WINEDEBUG
fi
runtime_path=/opt/deepinwine/runtime-i386
cur_arch=`arch`
if [ -f "$runtime_path/init_runtime.sh" -a $cur_arch = "x86_64" -a "$wine" = "$wine32" ];then
source "$runtime_path/init_runtime.sh"
PE_FILE="$1"
if [[ "$1" == *".exe" ]];then
PE_FILE=$(echo "$1" | sed -e 's/\\/\//g')
if [[ "$1" == "c:"* ]];then
PE_FILE="$wineprefix/$(echo "${PE_FILE/c:/drive_c}")"
elif [[ "$1" == "C:"* ]];then
PE_FILE="$wineprefix/$(echo "${PE_FILE/C:/drive_c}")"
fi
fi
if [ -f "$PE_FILE" ];then
EXE_TYPE=$(file "$PE_FILE" | awk -F : '{print $2}' | awk '{print $1}')
fi
init_runtime
#only 32 bit application need config this envs
if [ "$EXE_TYPE" != "PE32+" ];then
init_32bit_config
fi
winepreloader=/opt/$name/bin/wine-preloader
WINEPREFIX=$wineprefix WINELOADER=$wineloader WINEDEBUG=$winedebug $winepreloader $wine "$@"
else
WINEPREFIX=$wineprefix WINELOADER=$wineloader WINEDEBUG=$winedebug $wine "$@"
fi
$cur_arch = "x86_64"
改成 "$cur_arch" = "x86_64""
尝试
我没有Arch环境,目前使用中未发现此问题,可能是未被发现的bug
这个版本星火还没上架
如果更改此内容后修复,证明此为一个bug
这不是deepin-wine-helper的内容,spark-dwine-helper无法修复此bug
@xuqi 请转给deepin-wine开发人员
/usr/bin/deepin-wine6-stable 来自于 deepin-wine6-stable 包,内容如下:
#!/bin/bash
name=$(basename $0)
bindir=/usr/lib/$name
wine32=/opt/$name/bin/wine
wine64=/opt/$name/bin/wine64
if test -x $wine32 -a "$WINEARCH" != "win64"; then
wine=$wine32
elif test -x $wine64; then
wine=$wine64
if [ "$(dpkg --print-architecture)" = "amd64" -a "$(dpkg --print-foreign-architectures | grep -cx "i386")" -ne 1 ]; then
echo "it looks like multiarch needs to be enabled. as root, please"
echo "execute \"dpkg --add-architecture i386 && apt-get update &&"
echo "apt-get install $(echo $name | sed s/wine/wine32/)\""
fi
else
echo "error: unable to find wine executable. this shouldn't happen."
exit 1
fi
if test -z "$WINEPREFIX"; then
if test "$wine" = "$wine64"; then
wineprefix=$HOME/.wine64
else
wineprefix=$HOME/.wine
fi
else
wineprefix=$WINEPREFIX
fi
if test -z "$WINELOADER"; then
wineloader=$wine
else
wineloader=$WINELOADER
fi
if test -z "$WINEDEBUG"; then
winedebug=-all
else
winedebug=$WINEDEBUG
fi
runtime_path=/opt/deepinwine/runtime-i386
cur_arch=`arch`
if [ -f "$runtime_path/init_runtime.sh" -a $cur_arch = "x86_64" -a "$wine" = "$wine32" ];then
source "$runtime_path/init_runtime.sh"
PE_FILE="$1"
if [[ "$1" == *".exe" ]];then
PE_FILE=$(echo "$1" | sed -e 's/\\/\//g')
if [[ "$1" == "c:"* ]];then
PE_FILE="$wineprefix/$(echo "${PE_FILE/c:/drive_c}")"
elif [[ "$1" == "C:"* ]];then
PE_FILE="$wineprefix/$(echo "${PE_FILE/C:/drive_c}")"
fi
fi
if [ -f "$PE_FILE" ];then
EXE_TYPE=$(file "$PE_FILE" | awk -F : '{print $2}' | awk '{print $1}')
fi
init_runtime
#only 32 bit application need config this envs
if [ "$EXE_TYPE" != "PE32+" ];then
init_32bit_config
fi
winepreloader=/opt/$name/bin/wine-preloader
WINEPREFIX=$wineprefix WINELOADER=$wineloader WINEDEBUG=$winedebug $winepreloader $wine "$@"
else
WINEPREFIX=$wineprefix WINELOADER=$wineloader WINEDEBUG=$winedebug $wine "$@"
fi
问题已发现
/usr/bin/deepin-wine6-stable:行46: arch:未找到命令
在脚本中,因为 cur_arch
变量未使用 ${}
形式或使用 ""
括起来,导致在此变量未空时运行错误
此问题一直未被发现的原因是在deepin,UOS和星火支持的发行版中arch命令均可返回结果
所以这个变量一直是有值的,所以没有出错
在Arch中没有安装此软件
这属于依赖没写全
补充:我使用apt-file反查/usr/bin/arch,无结果
我不清楚这个包由什么提供,反正似乎是在默认就有了
现在可以确定的是deepin-wine这个版本中的架构判断中忘写了引号,但是不会在UOS和deepin中出错
至于怎么解决,你可以写一个脚本来充当此功能,或者直接喂一个x86_64
可以确定这是最新的deepin-wine6-stable这个包的问题,不属于星火wine助手
为什么你的环境里没有/usr/bin/arch,我在WSL中都有(
这个我就不知道了
$cur_arch = "x86_64"
改成 "$cur_arch" = "x86_64""
尝试
我没有Arch环境,目前使用中未发现此问题,可能是未被发现的bug
这个版本星火还没上架
如果更改此内容后修复,证明此为一个bug
这不是deepin-wine-helper的内容,spark-dwine-helper无法修复此bug
@xuqi 请转给deepin-wine开发人员
应该是 Arch Linux 上没有 arch
命令,改成 uname -m
后找不到 arch
的错误就消失了,但 WeChatWin.dll 的问题仍然存在。终端输出:
非deepin/UOS,默认关闭系统自带的文件选择工具,使用Wine的
如果你想改变这个行为,请到/opt/apps/com.qq.weixin.spark/files//opt/apps/com.qq.weixin.spark/files/run.sh处修改
To打包者:如果你要打开自带请注意在适配的发行版上进行测试
To用户:打包者没有打开这个功能,这证明启用这个功能可能造成运行问题。如果你要修改这个行为,请确保你有一定的动手能力
Run Spark-weixin 3.7.5.11spark7 c:/Program Files/Tencent/WeChat/WeChat.exe
run Spark-weixin progress pid
(zenity:1029): dbind-WARNING **: 16:28:16.700: Couldn't connect to accessibility bus: Failed to connect to socket /run/user/1000/at-spi/bus: 没有那个文件或目录
总计 0
lrwxrwxrwx 1 yes yes 10 9月 8日 16:28 c: -> ../drive_c
lrwxrwxrwx 1 yes yes 10 9月 8日 16:28 com1 -> /dev/ttyS0
lrwxrwxrwx 1 yes yes 10 9月 8日 16:28 com10 -> /dev/ttyS9
lrwxrwxrwx 1 yes yes 11 9月 8日 16:28 com11 -> /dev/ttyS10
lrwxrwxrwx 1 yes yes 11 9月 8日 16:28 com12 -> /dev/ttyS11
lrwxrwxrwx 1 yes yes 11 9月 8日 16:28 com13 -> /dev/ttyS12
lrwxrwxrwx 1 yes yes 11 9月 8日 16:28 com14 -> /dev/ttyS13
lrwxrwxrwx 1 yes yes 11 9月 8日 16:28 com15 -> /dev/ttyS14
lrwxrwxrwx 1 yes yes 11 9月 8日 16:28 com16 -> /dev/ttyS15
lrwxrwxrwx 1 yes yes 11 9月 8日 16:28 com17 -> /dev/ttyS16
lrwxrwxrwx 1 yes yes 11 9月 8日 16:28 com18 -> /dev/ttyS17
lrwxrwxrwx 1 yes yes 11 9月 8日 16:28 com19 -> /dev/ttyS18
lrwxrwxrwx 1 yes yes 10 9月 8日 16:28 com2 -> /dev/ttyS1
lrwxrwxrwx 1 yes yes 11 9月 8日 16:28 com20 -> /dev/ttyS19
lrwxrwxrwx 1 yes yes 11 9月 8日 16:28 com21 -> /dev/ttyS20
lrwxrwxrwx 1 yes yes 11 9月 8日 16:28 com22 -> /dev/ttyS21
lrwxrwxrwx 1 yes yes 11 9月 8日 16:28 com23 -> /dev/ttyS22
lrwxrwxrwx 1 yes yes 11 9月 8日 16:28 com24 -> /dev/ttyS23
lrwxrwxrwx 1 yes yes 11 9月 8日 16:28 com25 -> /dev/ttyS24
lrwxrwxrwx 1 yes yes 11 9月 8日 16:28 com26 -> /dev/ttyS25
lrwxrwxrwx 1 yes yes 11 9月 8日 16:28 com27 -> /dev/ttyS26
lrwxrwxrwx 1 yes yes 11 9月 8日 16:28 com28 -> /dev/ttyS27
lrwxrwxrwx 1 yes yes 11 9月 8日 16:28 com29 -> /dev/ttyS28
lrwxrwxrwx 1 yes yes 10 9月 8日 16:28 com3 -> /dev/ttyS2
lrwxrwxrwx 1 yes yes 11 9月 8日 16:28 com30 -> /dev/ttyS29
lrwxrwxrwx 1 yes yes 11 9月 8日 16:28 com31 -> /dev/ttyS30
lrwxrwxrwx 1 yes yes 11 9月 8日 16:28 com32 -> /dev/ttyS31
lrwxrwxrwx 1 yes yes 10 9月 8日 16:28 com4 -> /dev/ttyS3
lrwxrwxrwx 1 yes yes 10 9月 8日 16:28 com5 -> /dev/ttyS4
lrwxrwxrwx 1 yes yes 10 9月 8日 16:28 com6 -> /dev/ttyS5
lrwxrwxrwx 1 yes yes 10 9月 8日 16:28 com7 -> /dev/ttyS6
lrwxrwxrwx 1 yes yes 10 9月 8日 16:28 com8 -> /dev/ttyS7
lrwxrwxrwx 1 yes yes 10 9月 8日 16:28 com9 -> /dev/ttyS8
lrwxrwxrwx 1 yes yes 8 9月 8日 16:28 d:: -> /dev/sr0
lrwxrwxrwx 1 yes yes 9 9月 8日 16:28 e:: -> /dev/sdb1
lrwxrwxrwx 1 yes yes 8 9月 8日 16:28 f:: -> /dev/sdb
lrwxrwxrwx 1 yes yes 9 9月 8日 16:28 y: -> /home/yes
lrwxrwxrwx 1 yes yes 1 9月 8日 16:28 z: -> /
CallApp Spark-weixin arg count 1: c:/Program Files/Tencent/WeChat/WeChat.exe
Don't use public dir
2022年 09月 08日 星期四 16:28:45 CST:kill Spark-weixin block
2022年 09月 08日 星期四 16:28:45 CST:tag bottle: /home/yes/.deepinwine/Spark-weixin
/opt/deepinwine/tools/kill.sh:行66: /proc/20/environ: 没有那个文件或目录
cat: /proc/20/maps: 没有那个文件或目录
cat: /proc/20/cmdlinexargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value
: 没有那个文件或目录
cat: /proc/20/maps: 没有那个文件或目录
2022年 09月 08日 星期四 16:28:45 CST:active bottles:
2022年 09月 08日 星期四 16:28:45 CST:try to kill /home/yes/.deepinwine/Spark-weixin
/opt/deepinwine/tools/kill.sh:行66: /proc/1116/environ: 没有那个文件或目录
cat: /proc/1116/maps: 没有那个文件或目录
cat: /proc/1116/cmdlinexargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value
: 没有那个文件或目录
cat: /proc/1116/maps: 没有那个文件或目录
xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value
xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value
xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value
cat: /proc/1141/maps: 没有那个文件或目录
cat: /proc/1141/cmdlinexargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value
: 没有那个文件或目录
cat: /proc/1141/maps: 没有那个文件或目录
yes 1220 1067 0 16:28 pts/1 00:00:00 grep -E yes.*exe.*
/home/yes/.deepinwine/Spark-weixin/drive_c/Program Files/Tencent/WeChat
E: No SCALE profile found. try to use DEEPIN_WINE_SCALE
错误:没有检测到缩放设置,读取DEEPIN_WINE_SCALE
E: No DEEPIN_WINE_SCALE found. Use get-scale.sh to Set
错误:没有检测到DEEPIN_WINE_SCALE,用get-scale.sh设置
检测到已经设置过全局参数,直接复制
全局参数的位置在/home/yes/.config/spark-wine/scale.txt,如果需要更换请删除此文件重新生成
检测到的缩放倍数为:1.0
Scale is 1.0
用deepin-wine6-stable执行指令
指令为
env WINEPREFIX=/home/yes/.deepinwine/Spark-weixin deepin-wine6-stable reg ADD 'HKCU\Control Panel\Desktop' /v LogPixels /t REG_DWORD /d 96 /f
wine version: 6.0
Could not find Wine Gecko. HTML rendering will be disabled.
wine: configuration in L"Y:\\.deepinwine\\Spark-weixin" has been updated.
操作完成
引用一个评论
Why is this listed as having a proprietary license?
That's not possible. It's Wine, Wine is LGPL, Deepin is GPL3. This isn't
proprietary. If anything put "Mixed" for the license, as one is LGPL
and one is GPLv3.Also, this package is a mess. It includes
/usr/bin/deepin-wine6-stable
,
a shell script that calls dpkg. dpkg is a distro for debian-based
package managers, that script should never be getting installed. The
packaging for this needs to be completely changed.I mean I'm not sure why this needs to exist in the AUR at all, since
Arch already provides wine packages, but either way it needs a lot of
work.
这个包看起来有挺大的问题,这个启动脚本需要被修改以适应Arch,deb原带的脚本仅仅适用于Debian系发行版
从/usr/bin/arch缺失这个错误未被发现+新版deepin-wine6-stable的实体包从-amd64和-i386改为-runtime而AUR中并未更改依赖导致实际上安装了这个包并没有安装对应版本的deepin-wine来看,这个打包可能未经过充足的测试,这个包是不可信的,不建议使用
补充:我使用apt-file反查/usr/bin/arch,无结果
我不清楚这个包由什么提供,反正似乎是在默认就有了
现在可以确定的是deepin-wine这个版本中的架构判断中忘写了引号,但是不会在UOS和deepin中出错
至于怎么解决,你可以写一个脚本来充当此功能,或者直接喂一个x86_64
可以确定这是最新的deepin-wine6-stable这个包的问题,不属于星火wine助手
为什么你的环境里没有/usr/bin/arch,我在WSL中都有(
这个我就不知道了
我在 Arch 上用 pacman -F arch
查找,并没有哪个包提供了 usr/bin/arch
extra/bash-completion 2.11-2 [已安装]
usr/share/bash-completion/completions/arch
community/byobu 5.133-3
usr/lib/byobu/arch
community/mailman 2.1.39-2
usr/lib/mailman/bin/arch
community/mlton 20210117-4
usr/lib/mlton/targets/self/arch
然后我在 NixOS 上也找了一下
The program 'arch' is not in your PATH. It is provided by several packages.
You can make it available in an ephemeral shell by typing one of the following:
nix-shell -p busybox
nix-shell -p toybox
好像是 busybox 里的东西
请确认下
/opt/deepinwine/
是否有runtime
请确认下
/opt/deepinwine/
是否有runtime
里面只有一个 tools 文件夹
引用一个评论
Why is this listed as having a proprietary license?
That's not possible. It's Wine, Wine is LGPL, Deepin is GPL3. This isn't
proprietary. If anything put "Mixed" for the license, as one is LGPL
and one is GPLv3.Also, this package is a mess. It includes
/usr/bin/deepin-wine6-stable
,
a shell script that calls dpkg. dpkg is a distro for debian-based
package managers, that script should never be getting installed. The
packaging for this needs to be completely changed.I mean I'm not sure why this needs to exist in the AUR at all, since
Arch already provides wine packages, but either way it needs a lot of
work.
这个包看起来有挺大的问题,这个启动脚本需要被修改以适应Arch,deb原带的脚本仅仅适用于Debian系发行版
从/usr/bin/arch缺失这个错误未被发现+新版deepin-wine6-stable的实体包从-amd64和-i386改为-runtime而AUR中并未更改依赖导致实际上安装了这个包并没有安装对应版本的deepin-wine来看,这个打包可能未经过充足的测试,这个包是不可信的,不建议使用
果然啊,我用 Arch 官方仓库里的 wine,立刻就跑起来了
检查是否有runtime
如果没有,那么可能是deepin-wine安装不完全,这可能是AUR的deepin-wine6-stable包的问题,可自行比对deb包添加runtime测试
最简单的方式是在run.sh中把deepin-wine6-stable换成wine来测试,如果能启动,那么就是deepin-wine6-stable有问题
如果有,则是未知问题。我不使用Arch,也没有wine程序调试经验,你可能需要自行解决此问题
里面只有一个 tools 文件夹
那就是这个包有问题了
可能是为了向玲珑转化,deepin-wine6-stable的运行环境包现在是-runtime而不是-amd64和-i386,唤起方式也有所变化
显然是该包的维护者未发现此变化,而且在更新时也未经足够测试
这个包的维护从PKGBUILD看应该是 @Feng Yu
尝试联系吧
那就是这个包有问题了
可能是为了向玲珑转化,deepin-wine6-stable的运行环境包现在是-runtime而不是-amd64和-i386,唤起方式也有所变化
显然是该包的维护者未发现此变化,而且在更新时也未经足够测试
这个包的维护从PKGBUILD看应该是 @Feng Yu
尝试联系吧
这个 PKGBUILD 也很有问题,只写了 contributor,没写 maintainer 的联系方式
不过我在 tg 上好像见过他,我去找找看 算了,我直接在 AUR 评论区反馈了
AUR不是应该去Arch论坛讨论吗?
AUR不是应该去Arch论坛讨论吗?
我是来找上游的,一楼第一句话已经写得很清楚了
Popular Events
More
之前发在星火论坛的帖子一直卡在审核,只好在 deepin 这边发了
目前 AUR 上的 com.qq.weixin.spark 是坏的,因为现任维护者闭着眼睛把它升到了最新版本,没注意到新的依赖 spark-dwine-helper。然而,我在打包了 spark-dwine-helper-git 并重写了 com.qq.weixin.spark 的 PKGBUILD 后,发现它在启动时会出现以下错误,然后退出:
终端输出:
PKGBUILD:
现在没什么头绪了,有大佬能支个招吗