From c0ea459daec78a9a5b8b10cd403bef84d020fc74 Mon Sep 17 00:00:00 2001 From: gfdgd_xi <3025613752@qq.com> Date: Fri, 25 Nov 2022 09:40:24 +0800 Subject: [PATCH] 2.5.0 done --- README.md | 18 ++++- deb/DEBIAN/control | 30 ++++---- .../deepin-wine-runner/deepin-wine-runner | 76 +++++++++++++++++-- .../apps/deepin-wine-runner/information.json | 3 +- information.json | 3 +- mainwindow.py | 65 ++++++++++++---- wine/winelist.json | 1 + 7 files changed, 156 insertions(+), 40 deletions(-) create mode 100644 wine/winelist.json diff --git a/README.md b/README.md index 7754ac2..4e9724c 100755 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

-

Wine 运行器 2.4.1.1

+

Wine 运行器 2.5.0


## 介绍 @@ -104,6 +104,22 @@ desktop文件中StartupWMClass字段。用于让桌面组件将窗口类名与de ![image.png](https://storage.deepin.org/thread/202207190822204627_image.png) ## 更新日志 +### 2.5.0(2022年11月25日) +**※1、容器自动配置脚本 GUI 查看介绍使用 QWebEngineWidget,支持图片(非强制依赖,只做推荐);** +**※2、不基于生态适配活动脚本打包器跟进 arm 架构 2022年11月11日的 Wine 微信打包方式;** +**※3、支持多图标的程序打包;** +**※4、修复了安装更多 Wine 换源换了个寂寞的问题;** +**※5、修复安装更多 Wine 重新安装后列表丢失的问题;** +**※6、新增了对 Deepin 23 Alpha 优化的 Wine 安装器;** +**※7、新增 Dll 名称查询功能,可以查询对应 Dll 的作用;** +**※8、支持静态获取可执行文件可以调用的 Dll 并提供解决方案;** +**※9、支持移除指定的 .desktop 快捷方式;** +**※10、新增日志分析功能以及导出、上传日志功能;** +11、修复了不基于生态适配活动脚本打包器在选择 arm 打包架构下容器自动删除脚本取消勾选无用的问题; +12、优化文案、新增友链; +13、提供了部分组件的测试功能。 +![image.png](https://storage.deepin.org/thread/202211250932168081_image.png) + ### 2.4.1.1(2022年11月21日) **※1、修复已知问题** diff --git a/deb/DEBIAN/control b/deb/DEBIAN/control index 7f12e7a..f2b79f5 100755 --- a/deb/DEBIAN/control +++ b/deb/DEBIAN/control @@ -1,5 +1,5 @@ Package: spark-deepin-wine-runner -Version: 2.5.0~alpha2 +Version: 2.5.0 Maintainer: gfdgd xi <3025613752@qq.com>, 为什么您不喜欢熊出没和阿布呢 Homepage: https://gitee.com/gfdgd-xi/deep-wine-runner, https://github.com/gfdgd-xi/deep-wine-runner, https://gitlink.org.cn/gfdgd_xi/deep-wine-runner Architecture: all @@ -11,17 +11,19 @@ Conflicts: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer Replaces: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer Installed-Size: 21844 Description: gfdgd xi、为什么您不喜欢熊出没和阿布呢 制作的 wine 运行器 - 2.4.1 更新内容: - ※1、不基于生态适配活动脚本的打包器支持只生成制作容器的 7z 包 - ※2、两个打包器的容器自动删除脚本添加 kill.sh - ※3、Wine 运行器支持杀死对应容器进程 - ※4、容器自动配置脚本和 Wine 安装器支持切换源 - 5、非生态适配脚本打包器追加运行参数改为 --uri XXX 而非直接 XXX - 6、两个打包器新增星火应用商店投稿入口 - 7、优化开启 Windows 虚拟机功能在未安装 VirtualBox 时的提示 - 8、Reg Shot 版本从 1.8.3-beta1V5 升级到 1.9.0 - 9、Geek Uninstaller 版本从 1.5.1.161 升级到 1.5.1.163 - 10、容器自动配置脚本添加 installother 命令、修复返回值传递问题 - 11、不显示 pip 安装库的提示信息(因为不是很核心的库) - 更新时间:2022年11月06日 + 2.5.0 更新内容: + ※1、容器自动配置脚本 GUI 查看介绍使用 QWebEngineWidget,支持图片(非强制依赖,只做推荐); + ※2、不基于生态适配活动脚本打包器跟进 arm 架构 2022年11月11日的 Wine 微信打包方式; + ※3、支持多图标的程序打包; + ※4、修复了安装更多 Wine 换源换了个寂寞的问题; + ※5、修复安装更多 Wine 重新安装后列表丢失的问题; + ※6、新增了对 Deepin 23 Alpha 优化的 Wine 安装器; + ※7、新增 Dll 名称查询功能,可以查询对应 Dll 的作用; + ※8、支持静态获取可执行文件可以调用的 Dll 并提供解决方案; + ※9、支持移除指定的 .desktop 快捷方式; + ※10、新增日志分析功能以及导出、上传日志功能; + 11、修复了不基于生态适配活动脚本打包器在选择 arm 打包架构下容器自动删除脚本取消勾选无用的问题; + 12、优化文案、新增友链; + 13、提供了部分组件的测试功能。 + 更新时间:2022年11月25日 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢 diff --git a/deb/opt/apps/deepin-wine-runner/deepin-wine-runner b/deb/opt/apps/deepin-wine-runner/deepin-wine-runner index a7412d7..0f3da67 100755 --- a/deb/opt/apps/deepin-wine-runner/deepin-wine-runner +++ b/deb/opt/apps/deepin-wine-runner/deepin-wine-runner @@ -166,9 +166,15 @@ class LogChecking(): index = questionList.currentIndex().row() lists = questionMap[index] print(f"{programPath}/CheckDLL/bash/{lists[1].lower()}.sh") - if os.path.exists(f"{programPath}/CheckDLL/bash/{lists[1].lower()}.sh"): + if lists[0] == 1 and os.path.exists(f"{programPath}/CheckDLL/bash/{lists[1].lower()}.sh"): OpenTerminal(f"'{programPath}/AutoShell/main.py' '{programPath}/CheckDLL/bash/{lists[1].lower()}.sh'") return + if lists[0] == 2: + QtWidgets.QMessageBox.information(logWindow, "修复方法", "切换其它 Wine") + return + if lists[0] == 4: + QtWidgets.QMessageBox.information(logWindow, "修复方法", "如是 Deepin Wine 可以尝试切换 WineHQ,\n并且取消勾选运行器主页面菜单栏“程序”=>“设置Wine”,取消勾选“屏蔽 Wine 默认 Mono 和 Gecko 安装器”\n然后尝试在菜单栏的“Wine”=>“在指定 Wine、容器安装组件”=>“在指定 Wine、容器安装 Gecko”来安装 Gecko") + return QtWidgets.QMessageBox.critical(logWindow, "错误", "无法修复该问题") def Show(lists): @@ -177,15 +183,21 @@ class LogChecking(): disbledButton = False print(lists) if not len(lists): - nmodel.appendRow(QtGui.QStandardItem(f"无法分析到错误")) + nmodel.appendRow(QtGui.QStandardItem(f"√ 无法分析到错误")) disbledButton = True for i in lists: if i[0] == 0: - nmodel.appendRow(QtGui.QStandardItem(f"无法分析到错误")) + nmodel.appendRow(QtGui.QStandardItem(f"√ 无法分析到错误")) disbledButton = True break if i[0] == 1: - nmodel.appendRow(QtGui.QStandardItem(f"无法调用 Dll:{i[1]}")) + nmodel.appendRow(QtGui.QStandardItem(f"× 无法调用 Dll:{i[1]}")) + if i[0] == 2: + nmodel.appendRow(QtGui.QStandardItem(f"× 尝试用 Mono 运行非 .net 应用 {i[1]}?")) + if i[0] == 3: + nmodel.appendRow(QtGui.QStandardItem(f"! 无法加载 Gecko,是被禁用或未安装?")) + if i[0] == 4: + nmodel.appendRow(QtGui.QStandardItem(f"× 无法更新 Wine 容器版本,是否还有 Wine 程序运行?")) questionMap = lists[:] repairButton.setDisabled(disbledButton) questionList.setModel(nmodel) @@ -211,6 +223,14 @@ class LogThreading(QtCore.QThread): # Lose Dll repairList.append([1, i[i.index("_ilonly") + 8: i.index("not")].strip()]) continue + if "Cannot open assembly".lower() in checkingText and ": File does not contain a valid CIL image.".lower() in checkingText: + # Mono + repairList.append([2, i.replace(": File does not contain a valid CIL image.", "").replace("Cannot open assembly", "").strip()[1: -1]]) + if "Could not load wine-gecko. HTML rendering will be disabled.".lower() in checkingText and "Could not find Wine Gecko. HTML rendering will be disabled.".lower() in checkingText: + # Disbled Gecko + repairList.append([3, ""]) + if "Your wineserver binary was not upgraded correctly".lower() in checkingText: + repairList.append([4, ""]) self.done.emit(repairList) @@ -1770,6 +1790,39 @@ class ValueCheck(): def ChangePath(): e1.setCurrentText(f'{setting["DefultBotton"]}/{os.path.splitext(os.path.basename(e2.currentText()))[0]}') +def UploadLog(): + if QtWidgets.QMessageBox.question(window, "提示", "您确定要上传吗?上传内容将不会公开,将用于加强日志分析功能") == QtWidgets.QMessageBox.Yes: + text = QtWidgets.QInputDialog.getMultiLineText(window, "输入内容", "输入描述信息") + try: + returnList = requests.post(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0OjMwMjUwL2xvZw==").decode("utf-8"), { + "Log": returnText.toPlainText(), + "Wine": wine[o1.currentText()], + "Tips": text + }).json + if returnList["ExitCode"] == 0: + QtWidgets.QMessageBox.information(window, "提示", "上传成功!") + else: + print(returnList) + QtWidgets.QMessageBox.critical(window, "错误", "上传失败!") + except: + traceback.print_exc() + QtWidgets.QMessageBox.critical(window, "错误", "上传失败!") + +def SaveLog(): + path = QtWidgets.QFileDialog.getSaveFileName(window, "保存日志", get_home(), "txt文件(*.txt);;html 文件(*.html);;所有文件(*.*))") + if not path[1]: + return + print(path) + try: + with open(path[0], "w") as file: + if path[1] == "html 文件(*.html)": + file.write(returnText.toHtml()) + else: + file.write(returnText.toPlainText()) + except: + traceback.print_exc() + QtWidgets.QMessageBox.critical(window, "错误", traceback.format_exc()) + ########################### # 加载配置 ########################### @@ -2079,13 +2132,14 @@ updateThingsString = '''※1、容器自动配置脚本 GUI 查看介绍使用 Q ※7、新增 Dll 名称查询功能,可以查询对应 Dll 的作用; ※8、支持静态获取可执行文件可以调用的 Dll 并提供解决方案; ※9、支持移除指定的 .desktop 快捷方式; -10、修复了不基于生态适配活动脚本打包器在选择 arm 打包架构下容器自动删除脚本取消勾选无用的问题; -11、优化文案、新增友链; -12、提供了部分组件的测试功能。 +※10、新增日志分析功能以及导出、上传日志功能; +11、修复了不基于生态适配活动脚本打包器在选择 arm 打包架构下容器自动删除脚本取消勾选无用的问题; +12、优化文案、新增友链; +13、提供了部分组件的测试功能。 ''' for i in information["Thank"]: thankText += f"{i}\n" -updateTime = "2022年11月23日" +updateTime = "2022年11月25日" about = f'''