From 60f838144d0ab7097747e818331439d9ff19a1c7 Mon Sep 17 00:00:00 2001 From: gfdgd_xi <3025613752@qq.com> Date: Sat, 20 Jul 2024 22:24:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E6=AD=A5termux=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 25 +++- ShellList/change-libc-path.py | 7 +- deb-termux/DEBIAN/control | 49 ++++++++ deb-termux/DEBIAN/postinst | 111 ++++++++++++++++++ deb-termux/DEBIAN/postrm | 54 +++++++++ .../usr/lib/python3/dist-packages/WineRunner | 1 + .../spark-deepin-wine-package-builder.desktop | 12 ++ ...-deepin-wine-packager-easy-builder.desktop | 12 ++ ...k-deepin-wine-packager-with-script.desktop | 10 ++ ...park-deepin-wine-runner-control-vm.desktop | 10 ++ .../spark-deepin-wine-runner-start-vm.desktop | 9 ++ .../spark-deepin-wine-runner.desktop | 11 ++ ...n.pkexec.deepin-wine-venturi-setter.policy | 21 ++++ .../actions/com.deepin.pkexec.mount.policy | 21 ++++ .../actions/com.deepin.pkexec.umount.policy | 21 ++++ key/key-add-gui.py | 9 +- key/keyboard-add-gui.py | 7 +- mainwindow.py | 11 +- wine/installwine | 6 + 19 files changed, 393 insertions(+), 14 deletions(-) create mode 100755 deb-termux/DEBIAN/control create mode 100755 deb-termux/DEBIAN/postinst create mode 100755 deb-termux/DEBIAN/postrm create mode 120000 deb-termux/usr/lib/python3/dist-packages/WineRunner create mode 100644 deb-termux/usr/share/applications/spark-deepin-wine-package-builder.desktop create mode 100644 deb-termux/usr/share/applications/spark-deepin-wine-packager-easy-builder.desktop create mode 100644 deb-termux/usr/share/applications/spark-deepin-wine-packager-with-script.desktop create mode 100644 deb-termux/usr/share/applications/spark-deepin-wine-runner-control-vm.desktop create mode 100644 deb-termux/usr/share/applications/spark-deepin-wine-runner-start-vm.desktop create mode 100644 deb-termux/usr/share/applications/spark-deepin-wine-runner.desktop create mode 100755 deb-termux/usr/share/polkit-1/actions/com.deepin.pkexec.deepin-wine-venturi-setter.policy create mode 100755 deb-termux/usr/share/polkit-1/actions/com.deepin.pkexec.mount.policy create mode 100755 deb-termux/usr/share/polkit-1/actions/com.deepin.pkexec.umount.policy diff --git a/Makefile b/Makefile index b9e9299..e1e9f4f 100755 --- a/Makefile +++ b/Makefile @@ -34,7 +34,7 @@ package-pkg: sudo debtap -Q spark-deepin-wine-runner.deb sudo debtap -Q spark-deepin-wine-runner-ace.deb -package-deb: +copy-files: #cd VM-source && qmake #cd VM-source && make #cd wine && make @@ -177,16 +177,33 @@ package-deb: bash builddeb/ChangeDebVersion.sh chmod -Rv 777 /tmp/spark-deepin-wine-runner-builder/opt chmod -Rv 777 /tmp/spark-deepin-wine-runner-builder/usr - - dpkg-deb -Z xz -z 9 -b /tmp/spark-deepin-wine-runner-builder spark-deepin-wine-runner.deb + +remove-copy-files: sudo rm -rfv /tmp/spark-deepin-wine-runner-builder + +package-deb: + make copy-files -j$(nproc) + dpkg-deb -Z xz -z 9 -b /tmp/spark-deepin-wine-runner-builder spark-deepin-wine-runner.deb + make remove-copy-files -j$(nproc) # 构建 ace 包 cp -rv deb-ace /tmp/spark-deepin-wine-runner-builder cp -rv spark-deepin-wine-runner.deb /tmp/spark-deepin-wine-runner-builder/opt/apps/spark-deepin-wine-runner-ace bash builddeb/ChangeDebVersion.sh sudo chown -R root:root /tmp/spark-deepin-wine-runner-builder dpkg-deb -Z xz -z 0 -b /tmp/spark-deepin-wine-runner-builder spark-deepin-wine-runner-ace.deb - sudo rm -rfv /tmp/spark-deepin-wine-runner-builder + make remove-copy-files -j$(nproc) + +package-termux-deb: + make copy-files -j$(nproc) + # 替换 DEBIAN + sudo rm -rf /tmp/spark-deepin-wine-runner-builder/DEBIAN + sudo mkdir -pv /tmp/spark-deepin-wine-runner-builder/data/data/com.termux/files/ + sudo mv /tmp/spark-deepin-wine-runner-builder/usr/ /tmp/spark-deepin-wine-runner-builder/data/data/com.termux/files/ -v + sudo mv /tmp/spark-deepin-wine-runner-builder/opt /tmp/spark-deepin-wine-runner-builder/data/data/com.termux/files/usr/opt -v + sudo cp deb-termux/DEBIAN /tmp/spark-deepin-wine-runner-builder/DEBIAN -rv + sudo bash builddeb/ChangeDebVersion.sh + dpkg-deb -Z xz -z 9 -b /tmp/spark-deepin-wine-runner-builder spark-deepin-wine-runner-termux.deb + make remove-copy-files -j$(nproc) install: make build -j$(nproc) diff --git a/ShellList/change-libc-path.py b/ShellList/change-libc-path.py index 3cde517..9a54fea 100644 --- a/ShellList/change-libc-path.py +++ b/ShellList/change-libc-path.py @@ -5,9 +5,12 @@ import binascii def Replace(fileName: str): with open(f"{fileName}", "rb") as file: data = file.read() - - data = data.replace(bytes("/lib64/ld-linux-x86-64.so.2".encode()), + if (sys.argv[2] == "x86_64"): + data = data.replace(bytes("/lib64/ld-linux-x86-64.so.2".encode()), bytes("/data/data/com.termux/gfdgd".encode())) # 替换与被替换需要保证字符数量相同 + if (sys.argv[2] == "aarch64"): + data = data.replace(bytes("/lib/ld-linux-aarch64.so.1".encode()), + bytes("/data/data/com.termux/gfdg".encode())) # 替换与被替换需要保证字符数量相同 with open(f"{fileName}", "wb") as file: file.write(data) diff --git a/deb-termux/DEBIAN/control b/deb-termux/DEBIAN/control new file mode 100755 index 0000000..d496912 --- /dev/null +++ b/deb-termux/DEBIAN/control @@ -0,0 +1,49 @@ +Package: spark-deepin-wine-runner-termux +Version: @@VERSION@@ +Maintainer: gfdgd xi <3025613752@qq.com> +Homepage: https://gitee.com/gfdgd-xi/deep-wine-runner +Architecture: all +Severity: serious +Certainty: possible +Check: binaries +Type: binary, udeb +Priority: optional +Depends: python3, + python3-pil | pillow | python-pillow, + python3-pil.imagetk | pillow | python-tkinter, + aria2, + curl, + unrar | unrar-free , + unzip, + python3-pyqt5 | pyqt5, + xfce4-terminal | deepin-terminal-gtk | deepin-terminal | mate-terminal | gnome-terminal, + p7zip-full | p7zip-legacy | p7zip, + zenity, + tree, + dpkg, + fakeroot, + which +Recommends: winbind, + wimtools | wimlib, + python3-pyquery, + python3-pyqt5.qtwebengine | pyqtwebengine, + binfmt-support, + libc6:i386, + libc6:armhf, + libwine, + qemu-system, + qemu-full, + qemu, + alien, + spark-deepin-wine-runner-qemu-system-extra, + deepin-wine8-stable | spark-wine | spark-wine9 | spark-wine9-wow | spark-wine8 | spark-wine8-wow | spark-wine7-devel | deepin-wine6-stable | deepin-wine5-stable | deepin-wine5 | deepin-wine | wine, + spark-dwine-helper | store.spark-app.spark-dwine-helper | deepin-wine-helper | com.wine-helper.deepin +Section: utils +Conflicts: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer, spark-deepin-wine-runner-52 +Replaces: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer, spark-deepin-wine-runner-52 +Provides: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer, spark-deepin-wine-runner-52 +Installed-Size: @@SIZE@@ +Description: Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程序。原版的 Wine 只能使用命令操作,且安装过程较为繁琐,对小白不友好。于是该运行器为了解决该痛点,内置了对Wine图形化的支持、Wine 安装器、微型应用商店、各种Wine工具、自制的Wine程序打包器、运行库安装工具等。 + 它同时还内置了基于Qemu/VirtualBox制作的、专供小白使用的Windows虚拟机安装工具,可以做到只需下载系统镜像并点击安装即可,无需考虑虚拟机的安装、创建、分区等操作,也能在非 X86 架构安装 X86 架构的 Windows 操作系统(但是效率较低,可以运行些老系统)。 + 而且对于部分 Wine 应用适配者来说,提供了图形化的打包工具,以及提供了一些常用工具以及运行库的安装方式,以及能安装多种不同的 Wine 以测试效果,能极大提升适配效率。 + 且对于 Deepin23 用户做了特别优化,以便能在缺少 i386 运行库的情况下运行 Wine32。同时也为非 X86 架构用户提供了 Box86/64、Qemu User 的安装方式 diff --git a/deb-termux/DEBIAN/postinst b/deb-termux/DEBIAN/postinst new file mode 100755 index 0000000..d987787 --- /dev/null +++ b/deb-termux/DEBIAN/postinst @@ -0,0 +1,111 @@ +#!/bin/bash +# 使用系统默认的 sh 运行 +################################################################################################################# +# 作者:gfdgd xi +# 版本:3.0.0 +# 更新时间:2022年10月02日 +# 感谢:感谢 wine、deepin-wine 以及星火团队,提供了 wine、deepin-wine、spark-wine-devel 给大家使用,让我能做这个程序 +# 基于 sh +################################################################################################################# +# 非强制性的必应组件,所以成功不成功都行 +# 程序版本号 +version=3.4.1 +echo 安装组件 +#python3 -m pip install --upgrade pyqt5 --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple > /dev/null 2>&1 | true +#python3 -m pip install --upgrade PyQtWebEngine --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple > /dev/null 2>&1 | true +python3 -m pip install --upgrade requests --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple --break-system-packages > /dev/null 2>&1 | true +python3 -m pip install --upgrade psutil --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple --break-system-packages > /dev/null 2>&1 | true +# termux 在使用 pip 安装 dbus-python 时会卡住 +# python3 -m pip install --upgrade dbus-python --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple --break-system-packages > /dev/null 2>&1 | true +python3 -m pip install --upgrade pyperclip --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple --break-system-packages > /dev/null 2>&1 | true +python3 -m pip install --upgrade pynput --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple --break-system-packages > /dev/null 2>&1 | true +python3 -m pip install --upgrade xpinyin --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple --break-system-packages > /dev/null 2>&1 | true +# 用于解决老版本 pip 没 --break-system-packages 参数的问题 +python3 -m pip install --upgrade pynput --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple > /dev/null 2>&1 | true +python3 -m pip install --upgrade xpinyin --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple > /dev/null 2>&1 | true +python3 -m pip install --upgrade requests --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple > /dev/null 2>&1 | true +python3 -m pip install --upgrade psutil --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple > /dev/null 2>&1 | true +# termux 在使用 pip 安装 dbus-python 时会卡住 +# python3 -m pip install --upgrade dbus-python --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple > /dev/null 2>&1 | true +python3 -m pip install --upgrade pyperclip --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple > /dev/null 2>&1 | true +# 修改 box86/64 国内源错误数据 +if [ -f /etc/apt/sources.list.d/box64.list ]; then + sed -i 's/http:\/\/seafile.jyx2048.com:2345/http:\/\/gfdgdxi.v5.idcfengye.com/g' /etc/apt/sources.list.d/box64.list +fi +if [ -f /etc/apt/sources.list.d/box86.list ]; then + sed -i 's/http:\/\/seafile.jyx2048.com:2345/http:\/\/gfdgdxi.v5.idcfengye.com/g' /etc/apt/sources.list.d/box86.list +fi +echo 执行完成 +echo 移除旧组件 +if [ -d /opt/apps/deepin-wine-runner/arm-package ]; then + rm -rf /opt/apps/deepin-wine-runner/arm-package +fi +if [ -d /opt/apps/deepin-wine-runner/dlls-arm ]; then + rm -rf /opt/apps/deepin-wine-runner/dlls-arm +fi +if [ -d /opt/apps/deepin-wine-runner/exa ]; then + rm -rf /opt/apps/deepin-wine-runner/exa +fi +if [ -d /opt/apps/deepin-wine-runner/dxvk ]; then + rm -rf /opt/apps/deepin-wine-runner/dxvk +fi +echo 移除完成 +# 如果为非 X86 PC,可以删除掉一些无用组件(主要是用不了) +if [[ `arch` != "x86_64" ]]; then + echo 非X86架构,删除对非X86架构无用的组件 + # 删除虚拟机功能 + #rm -rf /opt/apps/deepin-wine-runner/StartVM.sh + #rm -rf /opt/apps/deepin-wine-runner/RunVM.sh + #rm -rf /opt/apps/deepin-wine-runner/VM + #rm -rf /usr/share/applications/spark-deepin-wine-runner-control-vm.desktop + #rm -rf /usr/share/applications/spark-deepin-wine-runner-start-vm.desktop + # 删除安装 wine 功能 + rm -rf "/opt/apps/deepin-wine-runner/wine install" + # 这个注释掉的理论可用,不移除 + #rm -rf "/opt/apps/deepin-wine-runner/wine" + rm -rf /usr/bin/deepin-wine-runner-wine-installer + rm -rf /usr/bin/deepin-wine-runner-wine-install-deepin23 + rm -rf /usr/bin/deepin-wine-runner-wine-install + rm -rf /usr/bin/deepin-wine-runner-winehq-install + rm -rf /opt/apps/deepin-wine-runner/InstallWineOnDeepin23.py + rm -rf /opt/apps/deepin-wine-runner/sparkstore.list + rm -rf /opt/apps/deepin-wine-runner/AllInstall.py + rm -rf /opt/apps/deepin-wine-runner/InstallNewWineHQ.sh +fi +# 处理 VM 工具 +vmPath=/opt/apps/deepin-wine-runner/VM/VirtualMachine-`dpkg --print-architecture` +echo 当前架构为:`dpkg --print-architecture` +if [ -f $vmPath ]; then + echo 虚拟机工具有该架构的预编译文件 + # 移除辅助文件 + rm -f /opt/apps/deepin-wine-runner/VM/VirtualMachine + # 移动 + mv $vmPath /opt/apps/deepin-wine-runner/VM/VirtualMachine + rm -f /opt/apps/deepin-wine-runner/VM/VirtualMachine-* +else + echo 虚拟机工具无该架构的预编译文件 + rm -f /opt/apps/deepin-wine-runner/VM/VirtualMachine-* +fi +echo 处理完成! +# 修复 3.3.0.1 Box86 源挂了的问题 +if [ -f /etc/apt/sources.list.d/box86.list ]; then + bash -c "echo deb http://seafile.jyx2048.com:2345/spark-deepin-wine-runner/data/box86-debs/debian ./ > /etc/apt/sources.list.d/box86.list" +fi +# Gitlink 源挂了 +# 到时候切换 gpg 源会方便很多 +#if [ -r /etc/apt/sources.list.d/better-dde.list ]; then +# if [ -d /usr/share/deepin-installer ]; then +# # 用于修复 Deepin Community Live CD Install 版签名过期的问题 +# wget -P /tmp/gfdgd-xi-sources https://code.gitlink.org.cn/gfdgd_xi/gfdgd-xi-apt-mirrors/raw/branch/master/gpg.asc +# rm -rfv /etc/apt/trusted.gpg.d/gfdgdxi-list.gpg | true +# cp -v /tmp/gfdgd-xi-sources/gpg.asc.gpg /etc/apt/trusted.gpg.d/gfdgdxi-list.gpg +# # 用于修复 2022.11.25 Better DDE 导致的 Deepin Community Live CD Install 版问题 +# # 移除 Better DDE 源 +# rm -rfv /etc/apt/sources.list.d/better-dde.list +# apt update > /dev/null 2>&1 | true +# fi +#fi +# 设置目录权限,让用户可读可写,方便后续删除组件 +chmod 777 -R /opt/apps/deepin-wine-runner > /dev/null 2>&1 | true +# 向服务器返回安装数加1(不显示内容且忽略错误) +python3 /opt/apps/deepin-wine-runner/Download.py $version > /dev/null 2>&1 | true diff --git a/deb-termux/DEBIAN/postrm b/deb-termux/DEBIAN/postrm new file mode 100755 index 0000000..6261d1c --- /dev/null +++ b/deb-termux/DEBIAN/postrm @@ -0,0 +1,54 @@ +#!/bin/bash +# 使用系统默认的 sh 运行 +################################################################################################################# +# 作者:gfdgd xi +# 版本:2.2.0 +# 更新时间:2022年09月24日 +# 感谢:感谢 wine、deepin-wine 以及星火团队,提供了 wine、deepin-wine、spark-wine-devel 给大家使用,让我能做这个程序 +# 基于 sh +################################################################################################################# +# 删除软件残留,简单粗暴一点直接全部删掉,防止出现警告 +# 加判断是为了怕 reinstall 后程序就再也打不开了(除非卸载后重新安装) +if [ "$1" = "remove" ] || [ "$1" = "purge" ]; then + rm -rf /opt/apps/deepin-wine-runner/ +fi +# 删除软件缓存(留着也没什么用了) +# 缓存目录:~/.cache/deepin-wine-runner +if [ "$1" = "remove" ] || [ "$1" = "purge" ]; then + + echo "清理程序缓存" + + for username in $(ls /home); do + echo /home/$username + if [ -d "/home/$username/.cache/deepin-wine-runner/" ]; then + rm -rf "/home/$username/.cache/deepin-wine-runner/" + fi + done + # 清理 root 用户的缓存文件 + echo /root + if [ -d "/root/.cache/deepin-wine-runner/" ]; then + rm -rf "/root/.cache/deepin-wine-runner/" + fi +else + echo "非卸载,跳过清理" +fi +# 删除软件配置文件(只限“purge”) +# 配置目录:~/.config/deepin-wine-runner +if [ "$1" = "purge" ]; then + + echo "清理程序配置文件" + + for username in $(ls /home); do + echo /home/$username + if [ -d "/home/$username/.config/deepin-wine-runner/" ]; then + rm -rf "/home/$username/.config/deepin-wine-runner/" + fi + done + # 清理 root 用户的配置文件 + echo /root + if [ -d "/root/.config/deepin-wine-runner/" ]; then + rm -rf "/root/.config/deepin-wine-runner/" + fi +else + echo "非 purge,跳过清理" +fi diff --git a/deb-termux/usr/lib/python3/dist-packages/WineRunner b/deb-termux/usr/lib/python3/dist-packages/WineRunner new file mode 120000 index 0000000..de01466 --- /dev/null +++ b/deb-termux/usr/lib/python3/dist-packages/WineRunner @@ -0,0 +1 @@ +/opt/apps/deepin-wine-runner/API/Python/ \ No newline at end of file diff --git a/deb-termux/usr/share/applications/spark-deepin-wine-package-builder.desktop b/deb-termux/usr/share/applications/spark-deepin-wine-package-builder.desktop new file mode 100644 index 0000000..cb4fe1a --- /dev/null +++ b/deb-termux/usr/share/applications/spark-deepin-wine-package-builder.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Type=Application +X-Categories=System;Wine; +Exec=/usr/bin/deepin-wine-package-builder "~/.wine" %F +Icon=/opt/apps/deepin-wine-runner/deepin-wine-runner.svg +Name=Wine Package Builder +Name[zh]=Wine 打包器 +Terminal=false +StartupNotify=true +NoDisplay=true +Keywords=exe;scr; +MimeType=application/x-ms-dos-executable;application/x-msi;application/x-ms-shortcut; diff --git a/deb-termux/usr/share/applications/spark-deepin-wine-packager-easy-builder.desktop b/deb-termux/usr/share/applications/spark-deepin-wine-packager-easy-builder.desktop new file mode 100644 index 0000000..4d5909b --- /dev/null +++ b/deb-termux/usr/share/applications/spark-deepin-wine-packager-easy-builder.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Type=Application +X-Categories=System;Wine; +Exec=/usr/bin/deepin-wine-packager-easy-builder %F +Icon=/opt/apps/deepin-wine-runner/deepin-wine-runner.svg +Name=Wine Package Builder +Name[zh]=Wine 简易打包器 +Terminal=false +StartupNotify=true +NoDisplay=true +Keywords=exe;scr; +MimeType=application/x-ms-dos-executable;application/x-msi;application/x-ms-shortcut; diff --git a/deb-termux/usr/share/applications/spark-deepin-wine-packager-with-script.desktop b/deb-termux/usr/share/applications/spark-deepin-wine-packager-with-script.desktop new file mode 100644 index 0000000..e67f51c --- /dev/null +++ b/deb-termux/usr/share/applications/spark-deepin-wine-packager-with-script.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Type=Application +X-Categories=System;Wine; +Exec=/usr/bin/deepin-wine-packager-with-script +Icon=/opt/apps/deepin-wine-runner/deepin-wine-runner.svg +Name=Wine Package Builder For UOS +NoDisplay=true +Name[zh]=Wine 打包器(基于活动脚本) +Terminal=false +StartupNotify=true diff --git a/deb-termux/usr/share/applications/spark-deepin-wine-runner-control-vm.desktop b/deb-termux/usr/share/applications/spark-deepin-wine-runner-control-vm.desktop new file mode 100644 index 0000000..35eacdc --- /dev/null +++ b/deb-termux/usr/share/applications/spark-deepin-wine-runner-control-vm.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Type=Application +X-Categories=System;Wine; +Exec=/opt/apps/deepin-wine-runner/RunVM.sh %F +Icon=/opt/apps/deepin-wine-runner/deepin-wine-runner.svg +Name=Setting VirtualMachine +Name[zh]=设置 Windows 虚拟机 +NoDisplay=true +Terminal=false +StartupNotify=true diff --git a/deb-termux/usr/share/applications/spark-deepin-wine-runner-start-vm.desktop b/deb-termux/usr/share/applications/spark-deepin-wine-runner-start-vm.desktop new file mode 100644 index 0000000..1271f09 --- /dev/null +++ b/deb-termux/usr/share/applications/spark-deepin-wine-runner-start-vm.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Type=Application +X-Categories=System; +Exec=/opt/apps/deepin-wine-runner/StartVM.sh %F +Icon=/opt/apps/deepin-wine-runner/deepin-wine-runner.svg +Name=Start Windows VirtualMachine +Name[zh]=开启 Windows 虚拟机 +Terminal=false +StartupNotify=true diff --git a/deb-termux/usr/share/applications/spark-deepin-wine-runner.desktop b/deb-termux/usr/share/applications/spark-deepin-wine-runner.desktop new file mode 100644 index 0000000..af220ee --- /dev/null +++ b/deb-termux/usr/share/applications/spark-deepin-wine-runner.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Type=Application +X-Categories=System;Wine; +Exec=/usr/bin/deepin-wine-runner %F +Icon=/opt/apps/deepin-wine-runner/deepin-wine-runner.svg +Name=Wine Runner +Name[zh]=Wine 运行器 +Terminal=false +StartupNotify=true +Keywords=exe;scr; +MimeType=application/x-ms-dos-executable;application/x-msi;application/x-ms-shortcut; diff --git a/deb-termux/usr/share/polkit-1/actions/com.deepin.pkexec.deepin-wine-venturi-setter.policy b/deb-termux/usr/share/polkit-1/actions/com.deepin.pkexec.deepin-wine-venturi-setter.policy new file mode 100755 index 0000000..88fdac0 --- /dev/null +++ b/deb-termux/usr/share/polkit-1/actions/com.deepin.pkexec.deepin-wine-venturi-setter.policy @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE policyconfig PUBLIC + "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN" + "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd"> +<policyconfig> + <vendor>gfdgd xi</vendor> + <vendor_url>https://gitee.com/gfdgd-xi/deep-wine-runner/</vendor_url> + <action id="com.deepin.pkexec.deepin-wine-venturi-setter"> + <message>Authentication is required to change run_v3 file manager</message> + <message xml:lang="zh_CN">修改 run_v3 文管需要输入密码</message> + <icon_name>preferences-system</icon_name> + <defaults> + <allow_any>no</allow_any> + <allow_inactive>no</allow_inactive> + <allow_active>auth_admin_keep</allow_active> + </defaults> + <annotate key="org.freedesktop.policykit.exec.path">/opt/apps/deepin-wine-runner/deepin-wine-venturi-setter.py</annotate> + <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate> + </action> + +</policyconfig> \ No newline at end of file diff --git a/deb-termux/usr/share/polkit-1/actions/com.deepin.pkexec.mount.policy b/deb-termux/usr/share/polkit-1/actions/com.deepin.pkexec.mount.policy new file mode 100755 index 0000000..781bb5b --- /dev/null +++ b/deb-termux/usr/share/polkit-1/actions/com.deepin.pkexec.mount.policy @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE policyconfig PUBLIC + "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN" + "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd"> +<policyconfig> + <vendor>gfdgd xi</vendor> + <vendor_url>https://gitee.com/gfdgd-xi/deep-wine-runner/</vendor_url> + <action id="com.deepin.pkexec.mount"> + <message>Authentication is required to mount file</message> + <message xml:lang="zh_CN">挂载文件需要输入密码</message> + <icon_name>preferences-system</icon_name> + <defaults> + <allow_any>no</allow_any> + <allow_inactive>no</allow_inactive> + <allow_active>auth_admin_keep</allow_active> + </defaults> + <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/mount</annotate> + <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate> + </action> + +</policyconfig> \ No newline at end of file diff --git a/deb-termux/usr/share/polkit-1/actions/com.deepin.pkexec.umount.policy b/deb-termux/usr/share/polkit-1/actions/com.deepin.pkexec.umount.policy new file mode 100755 index 0000000..3112069 --- /dev/null +++ b/deb-termux/usr/share/polkit-1/actions/com.deepin.pkexec.umount.policy @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE policyconfig PUBLIC + "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN" + "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd"> +<policyconfig> + <vendor>gfdgd xi</vendor> + <vendor_url>https://gitee.com/gfdgd-xi/deep-wine-runner/</vendor_url> + <action id="com.deepin.pkexec.umount"> + <message>Authentication is required to unmount file</message> + <message xml:lang="zh_CN">卸载文件需要输入密码</message> + <icon_name>preferences-system</icon_name> + <defaults> + <allow_any>no</allow_any> + <allow_inactive>no</allow_inactive> + <allow_active>auth_admin_keep</allow_active> + </defaults> + <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/umount</annotate> + <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate> + </action> + +</policyconfig> \ No newline at end of file diff --git a/key/key-add-gui.py b/key/key-add-gui.py index 13fe039..1054bae 100755 --- a/key/key-add-gui.py +++ b/key/key-add-gui.py @@ -8,7 +8,12 @@ sys.path.append(f"{programPath}/..") import os import sys import json -import dbus +try: + import dbus +except: + os.system("python3 -m pip install --upgrade dbus-python --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple --break-system-packages") + os.system("python3 -m pip install --upgrade dbus-python --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple") + import dbus import threading from UI.KeyAddGui import * import PyQt5.QtWidgets as QtWidgets @@ -106,4 +111,4 @@ if __name__ == "__main__": window.show() threading.Thread(target=Check.CheckThreading).start() Clear() - sys.exit(app.exec_()) \ No newline at end of file + sys.exit(app.exec_()) diff --git a/key/keyboard-add-gui.py b/key/keyboard-add-gui.py index a530cf0..e137d43 100755 --- a/key/keyboard-add-gui.py +++ b/key/keyboard-add-gui.py @@ -6,7 +6,12 @@ sys.path.append(f"{programPath}/..") import os import sys -import dbus +try: + import dbus +except: + os.system("python3 -m pip install --upgrade dbus-python --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple --break-system-packages") + os.system("python3 -m pip install --upgrade dbus-python --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple") + import dbus import json import threading import traceback diff --git a/mainwindow.py b/mainwindow.py index a54ccf2..0000f39 100755 --- a/mainwindow.py +++ b/mainwindow.py @@ -2395,11 +2395,12 @@ def CheckWine(): except: traceback.print_exc() try: - for i in os.listdir(f"{get_home()}/.deepinwine/"): - for j in wine7zUse: - if os.path.exists(f"{get_home()}/.deepinwine/{i}/bin/{j}"): - wine[f"{get_home()}/.deepinwine/{i}/bin/{j}"] = f"{get_home()}/.deepinwine/{i}/bin/{j}" - canUseWine.append(f"{get_home()}/.deepinwine/{i}/bin/{j}") + if os.path.exists(f"{get_home()}/.deepinwine/"): + for i in os.listdir(f"{get_home()}/.deepinwine/"): + for j in wine7zUse: + if os.path.exists(f"{get_home()}/.deepinwine/{i}/bin/{j}"): + wine[f"{get_home()}/.deepinwine/{i}/bin/{j}"] = f"{get_home()}/.deepinwine/{i}/bin/{j}" + canUseWine.append(f"{get_home()}/.deepinwine/{i}/bin/{j}") except: traceback.print_exc() diff --git a/wine/installwine b/wine/installwine index d0bcb58..705f05d 100755 --- a/wine/installwine +++ b/wine/installwine @@ -208,6 +208,8 @@ class GetInfo(): is32kPageSize = (pageSize == "32384") is64kPageSize = (pageSize == "64768") isLoongarch = (arch == "loong64") or (arch == "loongarch64") + isProot = os.path.exists("/storage") + isAndroid = os.path.exists("/data") glibcVersion = "2.28" def __init__(self): @@ -315,6 +317,10 @@ class GetInfo(): result = True if (data == "loong64-kernel-64k-pagesize" and self.isLoongarch and self.is64kPageSize): result = True + if (data == "proot" and self.isProot): + result = True + if (data == "android" and self.isAndroid): + result = True if (self.compareVersion(self.glibcVersion, data) == 1): result = True if (os.path.exists(data)):