From 19cd835b00ac2150b070f46ceadbd38f269eb5b9 Mon Sep 17 00:00:00 2001 From: gfdgd_xi <3025613752@qq.com> Date: Fri, 5 Aug 2022 17:46:41 +0800 Subject: [PATCH] =?UTF-8?q?1.9.0=E5=88=9D=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 + deb/DEBIAN/control | 4 +- .../deepin-wine-packager.py | 8 +- .../deepin-wine-runner/deepin-wine-runner | 96 +++++++++++------- .../apps/deepin-wine-runner/information.json | 7 +- .../deepin-wine-runner/package-script.zip | Bin 299994 -> 300002 bytes deepin-wine-packager.py | 8 +- information.json | 7 +- mainwindow.py | 96 +++++++++++------- package-script.zip | Bin 299994 -> 300002 bytes package-script/debian/control | 2 +- package-script/information.json | 4 +- 12 files changed, 141 insertions(+), 95 deletions(-) diff --git a/README.md b/README.md index 700818f..5ca4ffa 100755 --- a/README.md +++ b/README.md @@ -297,4 +297,8 @@ Gitlink:https://www.gitlink.org.cn/gfdgd_xi/deep-wine-runner + https://github.com/gfdgd-xi/deep-wine-runner + https://www.gitlink.org.cn/gfdgd_xi/deep-wine-runner +## Star 一下吧 +开发不易,原创艰难,给一个 Star 吧,你的 Star 是我继续开发的动力 +[![star](https://gitee.com/gfdgd-xi/deep-wine-runner/badge/star.svg?theme=dark)](https://gitee.com/gfdgd-xi/deep-wine-runner/stargazers) + # ©2020-Now \ No newline at end of file diff --git a/deb/DEBIAN/control b/deb/DEBIAN/control index df6cb19..ba55a5a 100755 --- a/deb/DEBIAN/control +++ b/deb/DEBIAN/control @@ -1,5 +1,5 @@ Package: spark-deepin-wine-runner -Version: 1.8.0 +Version: 1.9.0Alpha1 Maintainer: gfdgd xi <3025613752@qq.com>, 为什么您不喜欢熊出没和阿布呢 Homepage: https://gitee.com/gfdgd-xi/deep-wine-runner Architecture: all @@ -7,7 +7,7 @@ Priority: optional Depends: python3, python3-pil, python3-pil.imagetk, python3-pyquery, deepin-terminal, aria2, curl, unrar, unzip, python3-requests, fakeroot, bash, python3-pyqt5 Conflicts: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer Replaces: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer -Description: gfdgd xi 制作的 wine 运行器 +Description: gfdgd xi、为什么您不喜欢熊出没和阿布呢 制作的 wine 运行器 更新内容: ※1、界面大改造,从使用 Tkinter 改为 Qt,参考了 @134******28 和 @sgb76 提供的设计方案和代码 ※2、添加了基于 UOS 生态适配活动打包脚本的打包器,以及基于 Virtualbox 的简易 Windows 镜像安装工具 diff --git a/deb/opt/apps/deepin-wine-runner/deepin-wine-packager.py b/deb/opt/apps/deepin-wine-runner/deepin-wine-packager.py index af9ee81..876f4a9 100755 --- a/deb/opt/apps/deepin-wine-runner/deepin-wine-packager.py +++ b/deb/opt/apps/deepin-wine-runner/deepin-wine-packager.py @@ -219,7 +219,7 @@ Section: non-free/otherosfs Priority: optional Multi-Arch: foreign Description: {} -'''.format(e1_text.text(), e2_text.text(), e4_text.text(), wineVersion.currentText(), e3_text.text())) +'''.format(e1_text.text(), e2_text.text(), e4_text.text(), wine[wineVersion.currentText()], e3_text.text())) else: write_txt("{}/DEBIAN/control".format(debPackagePath), '''Package: {} Version: {} @@ -230,7 +230,7 @@ Section: non-free/otherosfs Priority: optional Multi-Arch: foreign Description: {} -'''.format(e1_text.text(), e2_text.text(), e4_text.text(), wineVersion.currentText(), e3_text.text())) +'''.format(e1_text.text(), e2_text.text(), e4_text.text(), wine[wineVersion.currentText()], e3_text.text())) if rmBash.isChecked(): write_txt("{}/DEBIAN/postrm".format(debPackagePath, e1_text.text()), f'''#!/bin/bash @@ -295,7 +295,7 @@ if [ -n "$EXEC_PATH" ];then else $START_SHELL_PATH $BOTTLENAME $APPVER "uninstaller.exe" "$@" fi -'''.format(e5_text.text(), e2_text.text(), e7_text.text(), e1_text.text(), wineVersion.currentText())) +'''.format(e5_text.text(), e2_text.text(), e7_text.text(), e1_text.text(), wine[wineVersion.currentText()])) else: write_txt("{}/opt/apps/{}/files/run.sh".format(debPackagePath, e1_text.text()), '''#!/bin/sh @@ -404,7 +404,7 @@ if [ -n "$EXEC_PATH" ];then else $START_SHELL_PATH $BOTTLENAME $APPVER "uninstaller.exe" "$@" fi -'''.format(e5_text.text(), e2_text.text(), e7_text.text(), e1_text.text(), wineVersion.currentText())) +'''.format(e5_text.text(), e2_text.text(), e7_text.text(), e1_text.text(), wine[wineVersion.currentText()])) write_txt("{}/opt/apps/{}/info".format(debPackagePath, e1_text.text()), '{\n "appid": "' + e1_text.text() + '",\n "name": "' + e8_text.text() + '",\n "version": "' + e2_text.text() + '",\n "arch": ["i386"],\n "permissions": {\n "autostart": false,\n "notification": false,\n "trayicon": true,\n "clipboard": true,\n "account": false,\n "bluetooth": false,\n "camera": false,\n "audio_record": false,\n "installed_apps": false\n }\n}') ################ # 修改文件权限 diff --git a/deb/opt/apps/deepin-wine-runner/deepin-wine-runner b/deb/opt/apps/deepin-wine-runner/deepin-wine-runner index 9c47432..61a9f45 100755 --- a/deb/opt/apps/deepin-wine-runner/deepin-wine-runner +++ b/deb/opt/apps/deepin-wine-runner/deepin-wine-runner @@ -85,7 +85,7 @@ run = None def runexebutton(self): global run DisableButton(True) - if not CheckProgramIsInstall(wine[o1.currentText()]) and o1.currentText() != "基于 linglong 的 deepin-wine6-stable(不推荐)": + if not CheckProgramIsInstall(wine[o1.currentText()]) and o1.currentText() != "基于 linglong 的 deepin-wine6-stable(不推荐)" and o1.currentText() != "基于 exagear 的 deepin-wine6-stable" and o1.currentText() != "基于 box86 的 deepin-wine6-stable": if QtWidgets.QMessageBox.question(widget, "提示", "检查到您未安装这个 wine,是否继续使用这个 wine 运行?") == QtWidgets.QMessageBox.No: DisableButton(False) return @@ -158,10 +158,12 @@ class Runexebutton_threading(QtCore.QThread): text = "" self.signal.emit(text) print(text) - findExeHistory.append(wineBottonPath) # 将记录写进数组 - wineBottonHistory.append(e2.currentText()) # 将记录写进数组 - write_txt(get_home() + "/.config/deepin-wine-runner/FindExeHistory.json", str(json.dumps(ListToDictionary(findExeHistory)))) # 将历史记录的数组转换为字典并写入 - write_txt(get_home() + "/.config/deepin-wine-runner/WineBottonHistory.json", str(json.dumps(ListToDictionary(wineBottonHistory)))) # 将历史记录的数组转换为字典并写入 + if len(findExeHistory) == 0 or findExeHistory[-1] != wineBottonPath: + findExeHistory.append(wineBottonPath) # 将记录写进数组 + write_txt(get_home() + "/.config/deepin-wine-runner/FindExeHistory.json", str(json.dumps(ListToDictionary(findExeHistory)))) # 将历史记录的数组转换为字典并写入 + if len(wineBottonHistory) == 0 or wineBottonHistory[-1] != e2.currentText(): + wineBottonHistory.append(e2.currentText()) # 将记录写进数组 + write_txt(get_home() + "/.config/deepin-wine-runner/WineBottonHistory.json", str(json.dumps(ListToDictionary(wineBottonHistory)))) # 将历史记录的数组转换为字典并写入 self.showHistory.emit("") DisableButton(False) @@ -229,10 +231,11 @@ Exec=env WINEPREFIX='{wineBottonPath}' {option} {wine[o1.currentText()]} '{e2.cu Icon={iconPath} Type=Application StartupNotify=true''') # 写入文本文档 - shellHistory.append(combobox1.currentText()) # 将记录写进数组 - write_txt(get_home() + "/.config/deepin-wine-runner/ShellHistory.json", str(json.dumps(ListToDictionary(shellHistory)))) # 将历史记录的数组转换为字典并写入 - combobox1.clear() - combobox1.addItems(shellHistory) + if len(shellHistory) == 0 or shellHistory[-1] != combobox1.currentText(): + shellHistory.append(combobox1.currentText()) # 将记录写进数组 + write_txt(get_home() + "/.config/deepin-wine-runner/ShellHistory.json", str(json.dumps(ListToDictionary(shellHistory)))) # 将历史记录的数组转换为字典并写入 + combobox1.clear() + combobox1.addItems(shellHistory) QtWidgets.QMessageBox.information(widget, "提示", "生成完成!") # 显示完成对话框 except: traceback.print_exc() @@ -274,10 +277,11 @@ Exec=env WINEPREFIX='{wineBottonPath}' {option} {wine[o1.currentText()]} '{e2.cu Icon={iconPath} Type=Application StartupNotify=true''') # 写入文本文档 - shellHistory.append(combobox1.currentText()) # 将记录写进数组 - write_txt(get_home() + "/.config/deepin-wine-runner/ShellHistory.json", str(json.dumps(ListToDictionary(shellHistory)))) # 将历史记录的数组转换为字典并写入 - combobox1.clear() - combobox1.addItems(shellHistory) + if len(shellHistory) == 0 or shellHistory[-1] != combobox1.currentText(): + shellHistory.append(combobox1.currentText()) # 将记录写进数组 + write_txt(get_home() + "/.config/deepin-wine-runner/ShellHistory.json", str(json.dumps(ListToDictionary(shellHistory)))) # 将历史记录的数组转换为字典并写入 + combobox1.clear() + combobox1.addItems(shellHistory) QtWidgets.QMessageBox.information(widget, "提示", "生成完成!") # 显示完成对话框 except: traceback.print_exc() @@ -359,13 +363,13 @@ class RunWineProgramThread(QtCore.QThread): self.signal.emit(text) print(text) if self.history: - findExeHistory.append(wineBottonPath) # 将记录写进数组 - wineBottonHistory.append(e2.currentText()) # 将记录写进数组 - write_txt(get_home() + "/.config/deepin-wine-runner/FindExeHistory.json", str(json.dumps(ListToDictionary(findExeHistory)))) # 将历史记录的数组转换为字典并写入 - write_txt(get_home() + "/.config/deepin-wine-runner/WineBottonHistory.json", str(json.dumps(ListToDictionary(wineBottonHistory)))) # 将历史记录的数组转换为字典并写入 + if len(findExeHistory) == 0 or findExeHistory[-1] != wineBottonPath: + findExeHistory.append(wineBottonPath) # 将记录写进数组 + write_txt(get_home() + "/.config/deepin-wine-runner/FindExeHistory.json", str(json.dumps(ListToDictionary(findExeHistory)))) # 将历史记录的数组转换为字典并写入 + if len(wineBottonHistory) == 0 or wineBottonHistory[-1] != e2.currentText(): + wineBottonHistory.append(e2.currentText()) # 将记录写进数组 + write_txt(get_home() + "/.config/deepin-wine-runner/WineBottonHistory.json", str(json.dumps(ListToDictionary(wineBottonHistory)))) # 将历史记录的数组转换为字典并写入 self.showHistory.emit("") - #e1['value'] = findExeHistory - #e2['value'] = wineBottonHistory if self.Disbled: DisableButton(False) @@ -374,7 +378,7 @@ runProgram = None def RunWineProgram(wineProgram, history = False, Disbled = True): global runProgram DisableButton(True) - if not CheckProgramIsInstall(wine[o1.currentText()]): + if not CheckProgramIsInstall(wine[o1.currentText()]) and o1.currentText() != "基于 linglong 的 deepin-wine6-stable(不推荐)" and o1.currentText() != "基于 exagear 的 deepin-wine6-stable" and o1.currentText() != "基于 box86 的 deepin-wine6-stable": if QtWidgets.QMessageBox.question(widget, "提示", "检查到您未安装这个 wine,是否继续使用这个 wine 运行?") == QtWidgets.QMessageBox.No: DisableButton(False) return @@ -731,8 +735,9 @@ class GetDllFromWindowsISO: for i in os.listdir("/tmp/wine-runner-getdll/i386"): if found in i[:-1] + "l": findList.append(i[:-1] + "l") - isoPathFound.append(found) # 将记录写进数组 - write_txt(get_home() + "/.config/deepin-wine-runner/ISOPathFound.json", str(json.dumps(ListToDictionary(isoPathFound)))) # 将历史记录的数组转换为字典并写入 + if len(isoPath) == 0 or isoPathFound[-1] != found: + isoPathFound.append(found) # 将记录写进数组 + write_txt(get_home() + "/.config/deepin-wine-runner/ISOPathFound.json", str(json.dumps(ListToDictionary(isoPathFound)))) # 将历史记录的数组转换为字典并写入 GetDllFromWindowsISO.dllFound.clear() GetDllFromWindowsISO.dllFound.addItems(isoPathFound) GetDllFromWindowsISO.dllListModel.setStringList(findList) @@ -772,10 +777,11 @@ class GetDllFromWindowsISO: GetDllFromWindowsISO.DisbledDown(False) GetDllFromWindowsISO.DisbledUp(True) GetDllFromWindowsISO.mount = True - isoPath.append(GetDllFromWindowsISO.isoPath.currentText()) # 将记录写进数组 - write_txt(get_home() + "/.config/deepin-wine-runner/ISOPath.json", str(json.dumps(ListToDictionary(isoPath)))) # 将历史记录的数组转换为字典并写入 - GetDllFromWindowsISO.isoPath.clear() - GetDllFromWindowsISO.isoPath.addItems(isoPath) + if len(isoPath) == 0 or isoPath[-1] != GetDllFromWindowsISO.isoPath.currentText(): + isoPath.append(GetDllFromWindowsISO.isoPath.currentText()) # 将记录写进数组 + write_txt(get_home() + "/.config/deepin-wine-runner/ISOPath.json", str(json.dumps(ListToDictionary(isoPath)))) # 将历史记录的数组转换为字典并写入 + GetDllFromWindowsISO.isoPath.clear() + GetDllFromWindowsISO.isoPath.addItems(isoPath) #GetDllFromWindowsISO.isoPath['value'] = isoPath def UmountDisk(): @@ -909,7 +915,8 @@ defultProgramList = { "WineBottonDifferent": False, "CenterWindow": False, "Theme": "", - "MonoGeckoInstaller": True + "MonoGeckoInstaller": True, + "AutoWine": True } if not os.path.exists(get_home() + "/.config/deepin-wine-runner"): # 如果没有配置文件夹 os.mkdir(get_home() + "/.config/deepin-wine-runner") # 创建配置文件夹 @@ -938,6 +945,10 @@ if not os.path.exists(get_home() + "/.config/deepin-wine-runner/WineSetting.json # 如果要添加其他 wine,请在字典添加其名称和执行路径 try: wine = {"deepin-wine": "deepin-wine", "deepin-wine5": "deepin-wine5", "wine": "wine", "wine64": "wine64", "deepin-wine5 stable": "deepin-wine5-stable", "deepin-wine6 stable": "deepin-wine6-stable", "spark-wine7-devel": "spark-wine7-devel", "ukylin-wine": "ukylin-wine"} + canUseWine = [] + for i in wine.keys(): + if not os.system(f"which '{wine[i]}'"): + canUseWine.append(i) if os.path.exists("/persistent/linglong/layers/"): # 判断是否使用 linglong for i in os.listdir("/persistent/linglong/layers/"): try: @@ -945,9 +956,16 @@ try: arch = os.listdir(f"/persistent/linglong/layers/{i}/{dire}")[-1] if os.path.exists(f"/persistent/linglong/layers/{i}/{dire}/{arch}/runtime/bin/deepin-wine6-stable"): wine["基于 linglong 的 deepin-wine6-stable(不推荐)"] = f"ll-cli run {i} --exec '/bin/deepin-wine6-stable'" + canUseWine.append("基于 linglong 的 deepin-wine6-stable(不推荐)") break except: pass + if os.path.exists("/opt/deepin-box86/box86"): + wine["基于 box86 的 deepin-wine6-stable"] = f"/opt/deepin-box86/box86 /opt/deepin-wine6-stable/bin/wine --disable-gpu" + canUseWine.append("基于 box86 的 deepin-wine6-stable") + if os.path.exists("/opt/exagear/bin/ubt_x64a64_al"): + wine["基于 exagear 的 deepin-wine6-stable"] = f"/opt/exagear/bin/ubt_x64a64_al --path-prefix {get_home()}/.deepinwine/debian-buster --utmp-paths-list {get_home()}/.deepinwine/debian-buster/.exagear/utmp-list --vpaths-list {get_home()}/.deepinwine/debian-buster/.exagear/vpaths-list --opaths-list {get_home()}/.deepinwine/debian-buster/.exagear/opaths-list --smo-mode fbase --smo-severity smart --fd-limit 8192 --foreign-ubt-binary /opt/exagear/bin/ubt_x32a64_al -- /opt/deepin-wine6-stable/bin/wine --disable-gpu" + canUseWine.append("基于 exagear 的 deepin-wine6-stable") shellHistory = list(json.loads(readtxt(get_home() + "/.config/deepin-wine-runner/ShellHistory.json")).values()) findExeHistory = list(json.loads(readtxt(get_home() + "/.config/deepin-wine-runner/FindExeHistory.json")).values()) wineBottonHistory = list(json.loads(readtxt(get_home() + "/.config/deepin-wine-runner/WineBottonHistory.json")).values()) @@ -975,7 +993,7 @@ iconPath = "{}/deepin-wine-runner.svg".format(programPath) programUrl = "https://gitee.com/gfdgd-xi/deep-wine-runner\nhttps://github.com/gfdgd-xi/deep-wine-runner\nhttps://www.gitlink.org.cn/gfdgd_xi/deep-wine-runner" information = json.loads(readtxt(f"{programPath}/information.json")) version = information["Version"] -goodRunSystem = "常见 Linux" +goodRunSystem = "常见 Linux 发行版" thankText = "" tips = '''
N: 鉴于仓库 'https://community-packages.deepin.com/beige beige InRelease' 不支持 'i386' 体系结构,跳过配置文件 'main/binary-i386/Packages' 的获取。
'''
-updateThingsString = '''※1、修复了打包器(非基于活动脚本) control、postrm 写入文件颠倒的问题
-※2、内置一个微型的 Windows 应用商店(应用来源:腾讯软件管家)
-※3、初步支持 deepin 23(添加基于 linglong Wine 的运行方式,需要安装一个 linglong 包的 使用 Wine 应用<此方式运行限制较多,详细请见程序提示>;添加从 Deepin 20 源获取 Wine 的安装方式<不推荐>)
-4、更新了打包器(非基于活动脚本)调用星火 spark-wine-helper 的 run.sh 脚本格式
-5、修复了打包器(基于活动脚本)在 dde-top-panel 和 dde-globalmenu-service 下无法打开帮助提示的问题
-6、支持屏蔽 Wine 默认的 Mono、Gecko 安装器(屏蔽方法来自星火应用商店审核组和提供的新 run.sh 标准)
+updateThingsString = '''※1、修复了重复路径一直自动重复增加的问题
+※2、修复了两个打包器打包错误的问题(非基于生态活动脚本的为 wine 导入错误,基于生态活动脚本的为架构有误导致打包出的 deb 无法打包)
+※3、适配了部分非 i386、amd64 架构计算机的 UOS 系统使用的 wine
'''
for i in information["Thank"]:
thankText += f"{i}\n"
-updateTime = "2022年08月02日"
+updateTime = "2022年08月05日"
about = f'''一个基于 Python3 的 PyQt5 制作的 Wine 运行器 +一个能让Linux用户更加方便运行Windows应用的程序,内置了对wine图形话的支持和各种Wine工具和自制Wine程序打包器、运行库安装工具等等
+同时也内置了基于VirtualBox制作的小白Windows虚拟机安装工具,可以做到只需要用户下载系统镜像并点击安装即可,无需顾及虚拟机安装、创建、虚拟机的分区等等
+-一个图形化了以下命令的程序 +一个图形化了如下命令的程序(最简单格式)env WINEPREFIX=容器路径 wine(wine的路径) 可执行文件路径
让你可以简易方便的使用 wine @@ -1350,7 +1367,10 @@ app.setStyle(QtWidgets.QStyleFactory.create(setting["Theme"])) e1.addItems(findExeHistory) e2.addItems(wineBottonHistory) combobox1.addItems(shellHistory) -o1.addItems(wine.keys()) +if setting["AutoWine"]: + o1.addItems(canUseWine) +else: + o1.addItems(wine.keys()) o1.setCurrentText(setting["DefultWine"]) e1.setEditText(setting["DefultBotton"]) e2.setEditText("") diff --git a/deb/opt/apps/deepin-wine-runner/information.json b/deb/opt/apps/deepin-wine-runner/information.json index 27414bf..80ad2f8 100755 --- a/deb/opt/apps/deepin-wine-runner/information.json +++ b/deb/opt/apps/deepin-wine-runner/information.json @@ -1,5 +1,5 @@ { - "Version": "1.8.0", + "Version": "1.9.0Alpha1", "Thank": [ "感谢 @a2035274 @虚幻的早晨 https://bbs.deepin.org/post/238301", "感谢 @zhangs https://bbs.deepin.org/post/227948", @@ -10,10 +10,11 @@ "感谢 @GershonWang 在 https://github.com/gfdgd-xi/deep-wine-runner/issues/1 提供窗口居中的建议", "感谢 @134******28 和 @sgb76 提供的新程序 GUI 布局和实现代码", "感谢 @PossibleVing 提供的新版应用图标", - "感谢 @zhengjl 反馈的 1.7.0 中 .net framrwork 3.5 非离线版安装包的问题", + "感谢 @zhengjl 反馈的 1.7.0 中 .net framrwork 3.5 非离线版安装包的问题以及 1.8.0 重复路径一直自动重复增加的问题", + "感谢 @国川 @刘岐 提供的非 i386、amd64 运行 wine 使用 i386/amd64 可执行文件的教程和脚本", "感谢统信在 Wine 生态适配活动中提供的打包脚本", "", "可以从上面的各种解决方案更好的学习 Wine 生态适配,也可以看 deepin 论坛板块 https://bbs.deepin.org/module/detail/116 进行学习,最后也向各位有进行 Wine 生态适配的大佬进行由衷的感谢!", "如果上面有遗漏,请向我反馈补充" ] -} \ No newline at end of file +} diff --git a/deb/opt/apps/deepin-wine-runner/package-script.zip b/deb/opt/apps/deepin-wine-runner/package-script.zip index 9c7560cb533281c7a292303e4d8606dafebad263..c3db03df15a005c661b71809592335ac5f1eb550 100755 GIT binary patch delta 1522 zcmZWp3s4hR6y2Bi2oNAeP$MaZ$UyyIDgIC#N&;30&>%2S3sodo5Jj{Ql+;2gibTF9 zM7dg&YFn`uL{Vy53#hfN_!+BMKNYnDp&ccuHHrdB2fDjqWIElM-FweH_rASv_nvq6 zuv_n8H-2n1COnF{=2qGzYWY46e;Z6`Gy6Wa zJU@qmL&mh^rtz#0CPjCh_ky*ToX)dW 7(j|4}&qq!niduxVib=X(oZXAuzci*X zYiv?EQHVUm6vaNW 5+x|_x4xc zTItsO)xn#!p&8 X}{nrFtTVi!(wV{u9M~mLz{<&h{ir)gw{i3?=X2*R2s`Q59f9!S5{BZV{ z5Ax42_T+c3^iN@&Z4EQ@4KtA8Gzr;bv<(#;FrZL|)At#W*=3wyrVXNZ5I&HnXaSoM z{1hc~Sa0tDa%DYedV%Vg(BY^-gkDz9)aMT&9%cx2i52Nftelp(3HB9siIZ-1&7Ve3 zICFbJ&oFX_BsrdF-`- AWW->jq5(;@%4EnWHNI3 zkK_QhlZBYp8 (DB=S4vi+Wgu0PB($F~0=Q~G&d{zV zQd9*aYO)4BVvH|T>>yDb*#L~Hi4RzJ5E&==g$=ANBas}-7`RhLB9Ie^%Sj4KfueGf z%sDy)Pb!HQSjtHlhYZ_5$S~r;nhGN2tR9azz_khz!MQLNNwFX aZbc=?U0WN%8MI!K0D*}ZTc>pdWp0y=}JMDjyKuuweJ&Hb-sL|rtatty# z_U77An4SyUmtJ2@gt&obzL#T9I8;rfn2N*jx&jMew3 l7iE7F>J}jB3Q1a3r^E$ni6}!Ni7M(&Po<}fuM%w zrsj=t${HfWw>FKT+chK>3-ia2EFbfk^w&VB!h9Fou9%&T7Egp49SP(1Y$Y`O7kr{w A=>Px# delta 1388 zcmZWp3s6%>6n*=4$J9X52r7`G2%^RhHbtz+)cPGiO_2bJ6bC4YQV<73 rF|K(JUpl~R-dDg@-y4vJBX(hhy^Y1`@a&Ahkgo_F@%yL
#cdd9F2H||9G JS5^~d34J)QUvT+&Zd8{h zq_i;JDg3re?ZsOst`{wBit&`u0 =< zb~>m;Gxze|s^kxq5858}RjnMfU%fgtuPJUuFaOAss&hZp)@23#@=kX)oV}i&LX9dF zHK$T9i^F2`j9*J?&{B}l$a|e$Y#N>PLq _DPv2_5_gR$>~z=cvD{$BVx7_Z=B4F=;V%%Sz6*a>qnHYxB{0mofZ;UN*1D-(Af zw5H-&|7I@Ug%@+Guw7V$I24zLYhI$+8F)E|AR!YEaS1Cm*sRo$BYeVk8jNHUf6Vk6 zOgczr=p%%n$RQSxY6$_qJmL(~_Y*(h6%Y@2s3m-J@_yor1pnzMsL+xnm}w`@1w7Xh zF@07Da%O}#bIAsj2)lDhB94(zhCLE*;N_7OXd|r8Bayh=hQMM&-q6UBg^+xJ%!2s` z$SO3z;vHxm+&w^&=*Usn!Tw4;NY>NOUm4v8$y&q*Nj{08qa9!>AZ}2RPgc=YoZ$s@ z0pke6w*^E3Ni0^gcn4~N8HFT)p7{d23mK=?g=8JlLTnM44bzGkSr3bo=rv=k&&gmb zA`-9vRhM#SZ!3zqQ>gKM^I={wnZwrj _Y z)@lJ$2~lB@iX+`%fsVY76B(;Sg?*ty$4K~aUq@n4G%VMXSac4K>q#_Cc7ajP?5syA rv-l|xTS~UjH_~5n_ezNzxq#F_wqa)thPO0W3>OS!_JsCq!sPiE13p提示: 1、使用终端运行该程序,可以看到 wine 以及程序本身的提示和报错; @@ -992,20 +1010,19 @@ exe路径\' 参数 \' 千万不要中断后不删除源的情况下 apt upgrade !!!中断后只需重新打开脚本输入 repair 或者随意安装一个 Wine(会自动执行恢复操作)即可 以及此脚本安装的 Wine 无法保证 100% 能使用,以及副作用是会提示 N: 鉴于仓库 'https://community-packages.deepin.com/beige beige InRelease' 不支持 'i386' 体系结构,跳过配置文件 'main/binary-i386/Packages' 的获取。
''' -updateThingsString = '''※1、修复了打包器(非基于活动脚本) control、postrm 写入文件颠倒的问题 -※2、内置一个微型的 Windows 应用商店(应用来源:腾讯软件管家) -※3、初步支持 deepin 23(添加基于 linglong Wine 的运行方式,需要安装一个 linglong 包的 使用 Wine 应用<此方式运行限制较多,详细请见程序提示>;添加从 Deepin 20 源获取 Wine 的安装方式<不推荐>) -4、更新了打包器(非基于活动脚本)调用星火 spark-wine-helper 的 run.sh 脚本格式 -5、修复了打包器(基于活动脚本)在 dde-top-panel 和 dde-globalmenu-service 下无法打开帮助提示的问题 -6、支持屏蔽 Wine 默认的 Mono、Gecko 安装器(屏蔽方法来自星火应用商店审核组和提供的新 run.sh 标准) +updateThingsString = '''※1、修复了重复路径一直自动重复增加的问题 +※2、修复了两个打包器打包错误的问题(非基于生态活动脚本的为 wine 导入错误,基于生态活动脚本的为架构有误导致打包出的 deb 无法打包) +※3、适配了部分非 i386、amd64 架构计算机的 UOS 系统使用的 wine ''' for i in information["Thank"]: thankText += f"{i}\n" -updateTime = "2022年08月02日" +updateTime = "2022年08月05日" about = f'''关于
-一个基于 Python3 的 PyQt5 制作的 Wine 运行器 +一个能让Linux用户更加方便运行Windows应用的程序,内置了对wine图形话的支持和各种Wine工具和自制Wine程序打包器、运行库安装工具等等
+同时也内置了基于VirtualBox制作的小白Windows虚拟机安装工具,可以做到只需要用户下载系统镜像并点击安装即可,无需顾及虚拟机安装、创建、虚拟机的分区等等
+-一个图形化了以下命令的程序 +一个图形化了如下命令的程序(最简单格式)env WINEPREFIX=容器路径 wine(wine的路径) 可执行文件路径
让你可以简易方便的使用 wine @@ -1350,7 +1367,10 @@ app.setStyle(QtWidgets.QStyleFactory.create(setting["Theme"])) e1.addItems(findExeHistory) e2.addItems(wineBottonHistory) combobox1.addItems(shellHistory) -o1.addItems(wine.keys()) +if setting["AutoWine"]: + o1.addItems(canUseWine) +else: + o1.addItems(wine.keys()) o1.setCurrentText(setting["DefultWine"]) e1.setEditText(setting["DefultBotton"]) e2.setEditText("") diff --git a/package-script.zip b/package-script.zip index 9c7560cb533281c7a292303e4d8606dafebad263..c3db03df15a005c661b71809592335ac5f1eb550 100755 GIT binary patch delta 1522 zcmZWp3s4hR6y2Bi2oNAeP$MaZ$UyyIDgIC#N&;30&>%2S3sodo5Jj{Ql+;2gibTF9 zM7dg&YFn`uL{Vy53#hfN_!+BMKNYnDp&ccuHHrdB2fDjqWIElM-FweH_rASv_nvq6 zuv_n8H-2n1COnF{=2qGzYWY46e;Z6`Gy6Wa zJU@qmL&mh^rtz#0CPjCh_ky*ToX)dW 7(j|4}&qq!niduxVib=X(oZXAuzci*X zYiv?EQHVUm6vaNW 5+x|_x4xc zTItsO)xn#!p&8 X}{nrFtTVi!(wV{u9M~mLz{<&h{ir)gw{i3?=X2*R2s`Q59f9!S5{BZV{ z5Ax42_T+c3^iN@&Z4EQ@4KtA8Gzr;bv<(#;FrZL|)At#W*=3wyrVXNZ5I&HnXaSoM z{1hc~Sa0tDa%DYedV%Vg(BY^-gkDz9)aMT&9%cx2i52Nftelp(3HB9siIZ-1&7Ve3 zICFbJ&oFX_BsrdF-`- AWW->jq5(;@%4EnWHNI3 zkK_QhlZBYp8 (DB=S4vi+Wgu0PB($F~0=Q~G&d{zV zQd9*aYO)4BVvH|T>>yDb*#L~Hi4RzJ5E&==g$=ANBas}-7`RhLB9Ie^%Sj4KfueGf z%sDy)Pb!HQSjtHlhYZ_5$S~r;nhGN2tR9azz_khz!MQLNNwFX aZbc=?U0WN%8MI!K0D*}ZTc>pdWp0y=}JMDjyKuuweJ&Hb-sL|rtatty# z_U77An4SyUmtJ2@gt&obzL#T9I8;rfn2N*jx&jMew3 l7iE7F>J}jB3Q1a3r^E$ni6}!Ni7M(&Po<}fuM%w zrsj=t${HfWw>FKT+chK>3-ia2EFbfk^w&VB!h9Fou9%&T7Egp49SP(1Y$Y`O7kr{w A=>Px# delta 1388 zcmZWp3s6%>6n*=4$J9X52r7`G2%^RhHbtz+)cPGiO_2bJ6bC4YQV<73 rF|K(JUpl~R-dDg@-y4vJBX(hhy^Y1`@a&Ahkgo_F@%yL
#cdd9F2H||9G JS5^~d34J)QUvT+&Zd8{h zq_i;JDg3re?ZsOst`{wBit&`u0 =< zb~>m;Gxze|s^kxq5858}RjnMfU%fgtuPJUuFaOAss&hZp)@23#@=kX)oV}i&LX9dF zHK$T9i^F2`j9*J?&{B}l$a|e$Y#N>PLq _DPv2_5_gR$>~z=cvD{$BVx7_Z=B4F=;V%%Sz6*a>qnHYxB{0mofZ;UN*1D-(Af zw5H-&|7I@Ug%@+Guw7V$I24zLYhI$+8F)E|AR!YEaS1Cm*sRo$BYeVk8jNHUf6Vk6 zOgczr=p%%n$RQSxY6$_qJmL(~_Y*(h6%Y@2s3m-J@_yor1pnzMsL+xnm}w`@1w7Xh zF@07Da%O}#bIAsj2)lDhB94(zhCLE*;N_7OXd|r8Bayh=hQMM&-q6UBg^+xJ%!2s` z$SO3z;vHxm+&w^&=*Usn!Tw4;NY>NOUm4v8$y&q*Nj{08qa9!>AZ}2RPgc=YoZ$s@ z0pke6w*^E3Ni0^gcn4~N8HFT)p7{d23mK=?g=8JlLTnM44bzGkSr3bo=rv=k&&gmb zA`-9vRhM#SZ!3zqQ>gKM^I={wnZwrj _Y z)@lJ$2~lB@iX+`%fsVY76B(;Sg?*ty$4K~aUq@n4G%VMXSac4K>q#_Cc7ajP?5syA rv-l|xTS~UjH_~5n_ezNzxq#F_wqa)thPO0W3>OS!_JsCq!sPiE13p= 3.0), fakeroot Standards-Version: 3.7.3.0 Package: @deb_package_name@ Depends: @package_depends@ +Architecture: i386 Recommends: libcapi20-3, libcups2, libdbus-1-3, libfontconfig1, libfreetype6, libglu1-mesa | libglu1, libgnutls30 | libgnutls28 | libgnutls26, libgsm1, libgssapi-krb5-2, libjpeg62-turbo | libjpeg8, libkrb5-3, libodbc1, libosmesa6, libpng16-16 | libpng12-0, libsane | libsane1, libsdl2-2.0-0, libtiff5, libv4l-0, libxcomposite1, libxcursor1, libxfixes3, libxi6, libxinerama1, libxrandr2, libxrender1, libxslt1.1, libxxf86vm1 Replaces: @old_package@ Provides: @old_package@ Conflicts: @old_package@ -Architecture: @Arch@ Multi-Arch: foreign Description: @app_description@ Version:@deb_version_string@ diff --git a/package-script/information.json b/package-script/information.json index e4aff10..9f5cf38 100755 --- a/package-script/information.json +++ b/package-script/information.json @@ -1,3 +1,3 @@ { - "Version": "1.8.0" -} \ No newline at end of file + "Version": "1.9.0Alpha1" +}