Compare commits
391 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2d829f4243 | |||
| 9c3707b419 | |||
| 3b8e8566bc | |||
| 37082fe085 | |||
| 15c28a4820 | |||
| 7e4620f4c3 | |||
| b0e62a888c | |||
| 586b6efb59 | |||
| c82897fc7b | |||
| b6e510eb26 | |||
| ca5edef486 | |||
| 44c7d4fe3b | |||
| 1092c2ac2c | |||
| a0bc9059de | |||
| c0781b4f3a | |||
| de06de7637 | |||
| e0b2aca8ef | |||
| ff41344e97 | |||
| 0ec98cffcb | |||
| d27c31ae6f | |||
| 5e325a873e | |||
| 71917c5451 | |||
| 9cff5358fe | |||
| c8786b59bf | |||
| c46aa8fbea | |||
| 4f29c5debc | |||
| d9c52d4aa1 | |||
| c77a9b3290 | |||
| fcdd8e7622 | |||
| 9ce7c8a7d0 | |||
| eab5e11e8b | |||
| d57d53a659 | |||
| 78de66961e | |||
| b7b798d491 | |||
| 8351dc2838 | |||
| e0717e4fc5 | |||
| 99539c58f7 | |||
| 88bec61044 | |||
| 05549090fe | |||
| dc3477eae2 | |||
| 59064fb1c6 | |||
| 4669c756c4 | |||
| 0ae06f118c | |||
| 0c9da25093 | |||
| a4e8b17ac5 | |||
| 800c523935 | |||
| ab7a5c18c5 | |||
| c34708cbc5 | |||
| 0231e1d461 | |||
| 1ba1ee6b75 | |||
| dc7a301a45 | |||
| f6efb8e448 | |||
| fd410549c3 | |||
| 269c800341 | |||
| 1390ca65aa | |||
| 194f086b58 | |||
| e12ca11b08 | |||
| 506c33085f | |||
| f7a683ebf0 | |||
| 6d6aa30557 | |||
| c0aaf54ea4 | |||
| 4a47d95cd6 | |||
| 6be5b433ca | |||
| 08e7d2997d | |||
| a991d7de04 | |||
| d0dc90b95d | |||
| 10b2d8c72b | |||
| 5d819b3c8e | |||
| c7166d9330 | |||
| 053f32e5f2 | |||
| 07db3bf724 | |||
| 949fd1a07f | |||
| 1f5cc8f6c6 | |||
| 4fc20d94aa | |||
| eb049f8560 | |||
| 0173dae3e2 | |||
| e60b7fbbd0 | |||
| bdcae751c7 | |||
| c7eb70780e | |||
| b30be9ff48 | |||
| 6ee9e2a85f | |||
| 02c882c33c | |||
| e811970e08 | |||
| 7436ae72a5 | |||
| f1498a376b | |||
| 516a854f84 | |||
| d019d0d223 | |||
| be57235f02 | |||
| fd9d08b328 | |||
| a8c5acfae2 | |||
| 81ac91b180 | |||
| e477b94cda | |||
| 57db5a2630 | |||
| 4812a9a872 | |||
| ff15b60e4c | |||
| 9b82a3818b | |||
| 275379e4ba | |||
| 9e7ad17ea2 | |||
| 03942892fd | |||
| 370bde5e63 | |||
| c6e722de60 | |||
| de76733f3f | |||
| 37ad313a66 | |||
| d62ec78926 | |||
| 7d1d121c01 | |||
| f20565af53 | |||
| 8b0d0f1018 | |||
| e7cbbc62b9 | |||
| 844f709480 | |||
| 7571a6aafc | |||
| 47bdde1eb3 | |||
| f5b2a3fd93 | |||
| bc0c9039fd | |||
| 3f6c4a47ff | |||
| bab6115348 | |||
| 5f8387e14e | |||
| 1a786145fb | |||
| 0c2f37c187 | |||
| 134fff9f17 | |||
| 4853cafb67 | |||
| 0300f8e599 | |||
| 97b761067b | |||
| d93e7475ff | |||
| b031667887 | |||
| 3fde8e01bc | |||
| 09a95ebac4 | |||
| 2dc251fcb5 | |||
| b873d3e8ab | |||
| 61ea114669 | |||
| 96f02440ca | |||
| 6a2bb2e9ca | |||
| e617c24bd1 | |||
| 858617a3ae | |||
| 30e4c9d8bb | |||
| 361f3cf859 | |||
| 368a9d218a | |||
| dc7cb37d7f | |||
| 036639d830 | |||
| 07f56b820d | |||
| 0bef686aa6 | |||
| 982521b0c3 | |||
| 87a54b8d72 | |||
| ac12c24afd | |||
| 0f96e1d91a | |||
| 6689a5edb1 | |||
| b4ef46ee38 | |||
| a83e0bb2b6 | |||
| 9fdc39446e | |||
| 9892ff71a2 | |||
| 2bfa809caf | |||
| e54a424f81 | |||
| fbe795b6f8 | |||
| aa756b218c | |||
| e625bf97ad | |||
| 83f49a8c7e | |||
| dcabe5b2cf | |||
| 37c0cbf252 | |||
| 98f2beb994 | |||
| 3515e3f44f | |||
| cb0cd776a4 | |||
| ef8c115df2 | |||
| 5fb2bdf5f9 | |||
| a1b2915e3a | |||
| a2424e08ba | |||
| 2cf1266190 | |||
| 8a709ce7e2 | |||
| 82b13b585d | |||
| db622c93ba | |||
| e642d17828 | |||
| f2d766d0f9 | |||
| 01fe3ed3ab | |||
| c05371b856 | |||
| afefb854b6 | |||
| acff44eb2d | |||
| 8699f74087 | |||
| 1a78a98d8e | |||
| 7794df8170 | |||
| 226db3dfd6 | |||
| 0124c4a304 | |||
| bbf47b8120 | |||
| 1942299850 | |||
| 47cffa0637 | |||
| 96fa417b3b | |||
| 3fd2b14a2a | |||
| 8bdb45a87f | |||
| fd36c84d74 | |||
| 34a5ae629e | |||
| 0dda0870c0 | |||
| 2689bc1cfb | |||
| 8607de0fb0 | |||
| 0d2e59b9fe | |||
| 8ba8953aef | |||
| b665842e89 | |||
| ddd65bbf5f | |||
|
|
6768cf9e7b | ||
| 0de3547af0 | |||
| 6fb473f5d1 | |||
| c5e63f3699 | |||
| 878e7f6b2a | |||
| caa73c3bde | |||
| 3c6bb5042f | |||
| 881ff84efd | |||
| 38fed35de8 | |||
| 60836b448f | |||
| 89627200ad | |||
| 40de39fd19 | |||
| 16386b8557 | |||
| c1dc157c71 | |||
| 851105e7bd | |||
| 45594618f8 | |||
|
|
0960218c64 | ||
| 6d4dc4d7d9 | |||
| 995aad5273 | |||
| 851bf9fcc6 | |||
| 00da7fc010 | |||
| 9fd8f5144f | |||
| b31c4bf134 | |||
| 66ace92775 | |||
| 74e82aca00 | |||
| e175a80e57 | |||
| 27cd65a48f | |||
| a5cb1f81f8 | |||
| 2fb32f84d7 | |||
| 6c6b5ff67e | |||
| d3790780dd | |||
| 00245232bf | |||
| 5cb05e9956 | |||
| 72208fd378 | |||
| f63cdff0aa | |||
| 6c43ce51b4 | |||
| a85a7aeb0c | |||
| 70014b29ef | |||
| 808471c330 | |||
| cf0be8a2f1 | |||
| fffb56c098 | |||
| 2dab9ef7ce | |||
|
|
1964dfc866 | ||
|
|
efd22ba3a6 | ||
|
|
2a9ece428a | ||
| adf35abfc7 | |||
| 6ef513d6f5 | |||
| 550827f97c | |||
| 29f42c95b4 | |||
| ee68f6e26a | |||
| aff9996515 | |||
| 075478029d | |||
| f766e8577c | |||
| 08191c17ed | |||
| 7665dbe6d9 | |||
| 7711c186fd | |||
| 93d41ac3e2 | |||
| 59ec3d5822 | |||
| a5d1a04573 | |||
| e434aa9116 | |||
| dc789132d3 | |||
| 9b5beadbcc | |||
| 635171998d | |||
| b757d09901 | |||
| 84f0eefc27 | |||
| f9cac7619c | |||
| 8ae5efe50c | |||
| 58798dd0c6 | |||
| fdced1f2c3 | |||
| aaa5b724e4 | |||
| bbff9aa85f | |||
| 4a469f2a82 | |||
| 58400ed5ff | |||
| 2de9de6633 | |||
| eba3d9f728 | |||
| d8dce3b62c | |||
| 81f49ae83c | |||
| 160d2ecf9d | |||
| d31be64151 | |||
| 77ec7ff2bf | |||
| 6201ec2ed6 | |||
| ed344e7a6c | |||
| ed61089844 | |||
| e3435ad29a | |||
| 0e705a955a | |||
| 77d91f31b2 | |||
| c0b7c99c43 | |||
| cfbffc1a68 | |||
| 490b6ce28d | |||
| 75ae205cbf | |||
| ee49a4aec1 | |||
| 364983ac5b | |||
| ef375f32b9 | |||
| 4ff2d0815d | |||
| 8df919cadb | |||
| 89b812e6a6 | |||
| 803eb09b5a | |||
| 6397130bb2 | |||
| 8a4a5f4ee3 | |||
| 3529dc1503 | |||
| 09eb12d750 | |||
| bf95889b93 | |||
| 76d3fd556e | |||
| 45befa142f | |||
| 9785ad98fc | |||
| 201328afea | |||
| 4d10470776 | |||
| 85895b5ae2 | |||
| b785779d8a | |||
| b1b07d482b | |||
| 137193c993 | |||
| 9e9f2e2732 | |||
| 95ddbb7246 | |||
| b1142664ac | |||
| 97f85bc640 | |||
| 7d80d24ff6 | |||
| 64e1c56c8e | |||
| e9d8bc1ee3 | |||
| d10beed003 | |||
| 1f4e209f6c | |||
|
|
f54e589e3d | ||
| 6dd18d9e8f | |||
| 0360eaf5e0 | |||
| d00baaf2ce | |||
| e0a977b7ea | |||
| 787de003e3 | |||
| b7dfe86710 | |||
| ee16593767 | |||
| c64b5670d9 | |||
| 1bfb04e588 | |||
| 03dbe8d6ef | |||
| 1d2f8a46f2 | |||
| d554a8c5da | |||
| cbb81c6261 | |||
| 95e7d42a52 | |||
| 07f0c4eb2d | |||
| 466a7c5596 | |||
| 5443654791 | |||
| 0d3e798644 | |||
| 73551e9a12 | |||
| e755cea8f1 | |||
| fb653fe6ec | |||
| 044bc860ef | |||
| fd8e74d05f | |||
| d2929f83c6 | |||
| 53836dac4d | |||
| 321a840b7d | |||
| aaf7ccb793 | |||
| 81ae9751cd | |||
| 4a693831d1 | |||
| 4a438a2732 | |||
| 2105f6f9fc | |||
| bddd39ae7b | |||
| f913cde28e | |||
| c0eb6410ee | |||
| 20fc7f75f2 | |||
| 603d7a3827 | |||
| 620cea5136 | |||
| db5cee1345 | |||
| 9132acc0f6 | |||
| 03bcb9cb4e | |||
| 25f399b5cc | |||
| b1d4710ddd | |||
| eb72ed46a2 | |||
| 8ede908e73 | |||
| 9f61096967 | |||
| df96b2fd7f | |||
| 6a44167c9a | |||
| 125aa730c2 | |||
| c61607de13 | |||
| 0a643cb808 | |||
| afb0754795 | |||
| 2157a4df0d | |||
| 2320317961 | |||
| 3b8d32aa69 | |||
| f170dd093f | |||
| fc06f42161 | |||
| a471fe43d2 | |||
| 33d115c836 | |||
| 78d359a3db | |||
| b7c3ebf024 | |||
| a1d61c2b65 | |||
| fa8a2a0685 | |||
| 3d6067d4c4 | |||
| 266bd65372 | |||
| a615098594 | |||
| 0caecc9181 | |||
| baf3fbefdd | |||
| fd78edd2f7 | |||
| 002a6e309d | |||
| 8a061efa2b | |||
| cc9298f6af | |||
| 05c297647e | |||
| ba91aae7e1 | |||
| c3062915f4 | |||
| 542668311d | |||
| 8dc9db1f59 |
69
.github/ISSUE_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
---
|
||||
name: 程序bug
|
||||
about: 反馈程序的故障
|
||||
---
|
||||
需要把下面的替换成自己的信息,下面为例子
|
||||
|
||||
# 故障表现(最好带图、日志)
|
||||
按右上角叉叉可以关闭运行器
|
||||

|
||||
## 日志(终端输入 `deepin-wine-runner` 输出的内容)
|
||||
```
|
||||
gfdgd_xi@gfdgdxi-PC:~$ deepin-wine-runner
|
||||
/usr/bin/deepin-terminal
|
||||
/usr/bin/deepin-wine6-stable
|
||||
/usr/bin/deepin-wine
|
||||
/usr/bin/qemu-i386-static
|
||||
/usr/bin/qemu-i386
|
||||
/usr/bin/qemu-x86_64
|
||||
['', '']
|
||||
/usr/bin/qemu-i386
|
||||
/usr/bin/qemu-x86_64
|
||||
['', '']
|
||||
{'基于 UOS box86 的 deepin-wine6-stable': "WINEPREDLL='/opt/apps/deepin-wine-runner/dlls-arm' WINEDLLPATH=/opt/deepin-wine6-stable/lib BOX86_NOSIGSEGV=1 /opt/deepin-box86/box86 /opt/deepin-wine6-stable/bin/wine ", '基于 UOS exagear 的 deepin-wine6-stable': "WINEPREDLL='/opt/apps/deepin-wine-runner/dlls-arm' WINEDLLPATH=/opt/deepin-wine6-stable/lib /opt/exagear/bin/ubt_x64a64_al --path-prefix /home/gfdgd_xi/.deepinwine/debian-buster --utmp-paths-list /home/gfdgd_xi/.deepinwine/debian-buster/.exagear/utmp-list --vpaths-list /home/gfdgd_xi/.deepinwine/debian-buster/.exagear/vpaths-list --opaths-list /home/gfdgd_xi/.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 ", '使用 Flatpak 安装的 Wine': 'flatpak run org.winehq.Wine', 'deepin-wine6 stable': 'deepin-wine6-stable', 'deepin-wine5 stable': 'deepin-wine5-stable', 'spark-wine': 'spark-wine', 'spark-wine7-devel': 'spark-wine7-devel', 'spark-wine8': 'spark-wine8', 'deepin-wine': 'deepin-wine', 'deepin-wine5': 'deepin-wine5', 'wine': 'wine', 'wine64': 'wine64', 'ukylin-wine': 'ukylin-wine', 'mono(这不是 wine,但可以实现初步调用运行 .net 应用)': 'mono', '基于 linglong 的 deepin-wine6-stable(不推荐)': "ll-cli run '' --exec '/bin/deepin-wine6-stable'", '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-amd64/bin/wine': '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-amd64/bin/wine', '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-amd64/bin/wine-aarch64': '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-amd64/bin/wine-aarch64', '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine': '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine', '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine-i386': '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine-i386', '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine-aarch64': '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine-aarch64', '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine-x86_64': '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine-x86_64', '/home/gfdgd_xi/.deepinwine/wine-ce-8.13-amd64/bin/wine': '/home/gfdgd_xi/.deepinwine/wine-ce-8.13-amd64/bin/wine'}
|
||||
[['cmd', 'cmd'], ['cmd', 'cmd.exe'], ['cmd', 'wineBottonPath/drive_c/windows/system32/cmd.exe'], ['Internet Explorer', 'iexplore'], ['Internet Explorer', 'iexplore.exe'], ['Internet Explorer', 'wineBottonPath/drive_c/Program Files/Internet Explorer/iexplore.exe'], ['Internet Explorer', 'wineBottonPath/drive_c/Program Files (x86)/Internet Explorer/iexplore.exe'], ['微信', 'wineBottonPath/drive_c/Program Files/Tencent/WeChat/WeChat.exe'], ['微信', 'wineBottonPath/drive_c/Program Files (x86)/Tencent/WeChat/WeChat.exe'], ['UltraISO', 'wineBottonPath/drive_c/Program Files/UltraISO/UltraISO.exe'], ['UltraISO', 'wineBottonPath/drive_c/Program Files (x86)/UltraISO/UltraISO.exe'], ['迅雷', 'wineBottonPath/drive_c/Program Files/Thunder Network/MiniThunder/Bin/ThunderMini.exe'], ['迅雷', 'wineBottonPath/drive_c/Program Files (x86)/Thunder Network/MiniThunder/Bin/ThunderMini.exe'], ['Microsoft Office Word', 'wineBottonPath/drive_c/Program Files/Microsoft Office/Office12/WINWORD.EXE'], ['Microsoft Office Word', 'wineBottonPath/drive_c/Program Files (x86)/Microsoft Office/Office12/WINWORD.EXE'], ['腾讯会议', 'wineBottonPath/drive_c/Program Files/Tencent/WeMeet/wemeetapp.exe'], ['腾讯会议', 'wineBottonPath/drive_c/Program Files (x86)/Tencent/WeMeet/wemeetapp.exe'], ['腾讯课堂', 'wineBottonPath/drive_c/Program Files/Tencent/EDU/bin/TXEDU.exe'], ['腾讯课堂', 'wineBottonPath/drive_c/Program Files (x86)/Tencent/EDU/bin/TXEDU.exe'], ['QQ', 'wineBottonPath/drive_c/Program Files/Tencent/QQ/Bin/QQ.exe'], ['QQ', 'wineBottonPath/drive_c/Program Files (x86)/Tencent/QQ/Bin/QQ.exe'], ['TIM', 'wineBottonPath/drive_c/Program Files/Tencent/TIM/Bin/TIM.exe'], ['TIM', 'wineBottonPath/drive_c/Program Files (x86)/Tencent/TIM/Bin/TIM.exe']]
|
||||
lock
|
||||
libpng warning: iCCP: known incorrect sRGB profile
|
||||
libpng warning: iCCP: known incorrect sRGB profile
|
||||
libpng warning: iCCP: known incorrect sRGB profile
|
||||
libpng warning: iCCP: known incorrect sRGB profile
|
||||
libpng warning: iCCP: known incorrect sRGB profile
|
||||
libpng warning: iCCP: known incorrect sRGB profile
|
||||
libpng warning: iCCP: known incorrect sRGB profile
|
||||
libpng warning: iCCP: known incorrect sRGB profile
|
||||
create icon [font] engine failed.[theme:bloom-dark] nonCache[theme].size[0] (No such file or directory)
|
||||
create icon [floppy_unmount] engine failed.[theme:bloom-dark] nonCache[theme].size[1] (No such file or directory)
|
||||
create icon [3floppy_unmount] engine failed.[theme:bloom-dark] nonCache[theme].size[2] (No such file or directory)
|
||||
检测到库 riscv64
|
||||
检测到库 arm64
|
||||
检测到库 armhf
|
||||
检测到库 i386
|
||||
检测到库 s390x
|
||||
检测到库 mips64el
|
||||
检测到库 ppc64el
|
||||
检测到库 amd64
|
||||
版本号为:3.4.0
|
||||
普通版本
|
||||
qt.qpa.xcb: QXcbConnection: XCB error: 5 (BadAtom), sequence: 390, resource id: 0, major code: 20 (GetProperty), minor code: 0
|
||||
```
|
||||
|
||||
# 系统版本
|
||||
- 系统:Deepin 23
|
||||
- 硬件:
|
||||

|
||||
- 其他补充信息
|
||||
|
||||
# 之前做过什么操作
|
||||
在终端里输入了内容
|
||||
```bash
|
||||
sudo apt upgrade
|
||||
```
|
||||
更新了系统
|
||||
|
||||
# 复现步骤
|
||||
1. 打开运行器,然后点击右上角叉叉可以关闭
|
||||
|
||||
# 推测故障原因(可选)
|
||||
Qt 默认有一套配置好的退出事件
|
||||
|
||||
# 联系方式(可选)
|
||||
68
.github/ISSUE_TEMPLATE/ISSCUE_BUG.md
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
---
|
||||
name: 程序bug
|
||||
about: 反馈程序的故障
|
||||
---
|
||||
需要把下面的替换成自己的信息,下面为例子
|
||||
|
||||
# 故障表现(最好带图、日志)
|
||||
按右上角叉叉可以关闭运行器
|
||||

|
||||
## 日志(终端输入 `deepin-wine-runner` 输出的内容)
|
||||
```
|
||||
gfdgd_xi@gfdgdxi-PC:~$ deepin-wine-runner
|
||||
/usr/bin/deepin-terminal
|
||||
/usr/bin/deepin-wine6-stable
|
||||
/usr/bin/deepin-wine
|
||||
/usr/bin/qemu-i386-static
|
||||
/usr/bin/qemu-i386
|
||||
/usr/bin/qemu-x86_64
|
||||
['', '']
|
||||
/usr/bin/qemu-i386
|
||||
/usr/bin/qemu-x86_64
|
||||
['', '']
|
||||
{'基于 UOS box86 的 deepin-wine6-stable': "WINEPREDLL='/opt/apps/deepin-wine-runner/dlls-arm' WINEDLLPATH=/opt/deepin-wine6-stable/lib BOX86_NOSIGSEGV=1 /opt/deepin-box86/box86 /opt/deepin-wine6-stable/bin/wine ", '基于 UOS exagear 的 deepin-wine6-stable': "WINEPREDLL='/opt/apps/deepin-wine-runner/dlls-arm' WINEDLLPATH=/opt/deepin-wine6-stable/lib /opt/exagear/bin/ubt_x64a64_al --path-prefix /home/gfdgd_xi/.deepinwine/debian-buster --utmp-paths-list /home/gfdgd_xi/.deepinwine/debian-buster/.exagear/utmp-list --vpaths-list /home/gfdgd_xi/.deepinwine/debian-buster/.exagear/vpaths-list --opaths-list /home/gfdgd_xi/.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 ", '使用 Flatpak 安装的 Wine': 'flatpak run org.winehq.Wine', 'deepin-wine6 stable': 'deepin-wine6-stable', 'deepin-wine5 stable': 'deepin-wine5-stable', 'spark-wine': 'spark-wine', 'spark-wine7-devel': 'spark-wine7-devel', 'spark-wine8': 'spark-wine8', 'deepin-wine': 'deepin-wine', 'deepin-wine5': 'deepin-wine5', 'wine': 'wine', 'wine64': 'wine64', 'ukylin-wine': 'ukylin-wine', 'mono(这不是 wine,但可以实现初步调用运行 .net 应用)': 'mono', '基于 linglong 的 deepin-wine6-stable(不推荐)': "ll-cli run '' --exec '/bin/deepin-wine6-stable'", '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-amd64/bin/wine': '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-amd64/bin/wine', '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-amd64/bin/wine-aarch64': '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-amd64/bin/wine-aarch64', '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine': '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine', '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine-i386': '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine-i386', '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine-aarch64': '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine-aarch64', '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine-x86_64': '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine-x86_64', '/home/gfdgd_xi/.deepinwine/wine-ce-8.13-amd64/bin/wine': '/home/gfdgd_xi/.deepinwine/wine-ce-8.13-amd64/bin/wine'}
|
||||
[['cmd', 'cmd'], ['cmd', 'cmd.exe'], ['cmd', 'wineBottonPath/drive_c/windows/system32/cmd.exe'], ['Internet Explorer', 'iexplore'], ['Internet Explorer', 'iexplore.exe'], ['Internet Explorer', 'wineBottonPath/drive_c/Program Files/Internet Explorer/iexplore.exe'], ['Internet Explorer', 'wineBottonPath/drive_c/Program Files (x86)/Internet Explorer/iexplore.exe'], ['微信', 'wineBottonPath/drive_c/Program Files/Tencent/WeChat/WeChat.exe'], ['微信', 'wineBottonPath/drive_c/Program Files (x86)/Tencent/WeChat/WeChat.exe'], ['UltraISO', 'wineBottonPath/drive_c/Program Files/UltraISO/UltraISO.exe'], ['UltraISO', 'wineBottonPath/drive_c/Program Files (x86)/UltraISO/UltraISO.exe'], ['迅雷', 'wineBottonPath/drive_c/Program Files/Thunder Network/MiniThunder/Bin/ThunderMini.exe'], ['迅雷', 'wineBottonPath/drive_c/Program Files (x86)/Thunder Network/MiniThunder/Bin/ThunderMini.exe'], ['Microsoft Office Word', 'wineBottonPath/drive_c/Program Files/Microsoft Office/Office12/WINWORD.EXE'], ['Microsoft Office Word', 'wineBottonPath/drive_c/Program Files (x86)/Microsoft Office/Office12/WINWORD.EXE'], ['腾讯会议', 'wineBottonPath/drive_c/Program Files/Tencent/WeMeet/wemeetapp.exe'], ['腾讯会议', 'wineBottonPath/drive_c/Program Files (x86)/Tencent/WeMeet/wemeetapp.exe'], ['腾讯课堂', 'wineBottonPath/drive_c/Program Files/Tencent/EDU/bin/TXEDU.exe'], ['腾讯课堂', 'wineBottonPath/drive_c/Program Files (x86)/Tencent/EDU/bin/TXEDU.exe'], ['QQ', 'wineBottonPath/drive_c/Program Files/Tencent/QQ/Bin/QQ.exe'], ['QQ', 'wineBottonPath/drive_c/Program Files (x86)/Tencent/QQ/Bin/QQ.exe'], ['TIM', 'wineBottonPath/drive_c/Program Files/Tencent/TIM/Bin/TIM.exe'], ['TIM', 'wineBottonPath/drive_c/Program Files (x86)/Tencent/TIM/Bin/TIM.exe']]
|
||||
lock
|
||||
libpng warning: iCCP: known incorrect sRGB profile
|
||||
libpng warning: iCCP: known incorrect sRGB profile
|
||||
libpng warning: iCCP: known incorrect sRGB profile
|
||||
libpng warning: iCCP: known incorrect sRGB profile
|
||||
libpng warning: iCCP: known incorrect sRGB profile
|
||||
libpng warning: iCCP: known incorrect sRGB profile
|
||||
libpng warning: iCCP: known incorrect sRGB profile
|
||||
libpng warning: iCCP: known incorrect sRGB profile
|
||||
create icon [font] engine failed.[theme:bloom-dark] nonCache[theme].size[0] (No such file or directory)
|
||||
create icon [floppy_unmount] engine failed.[theme:bloom-dark] nonCache[theme].size[1] (No such file or directory)
|
||||
create icon [3floppy_unmount] engine failed.[theme:bloom-dark] nonCache[theme].size[2] (No such file or directory)
|
||||
检测到库 riscv64
|
||||
检测到库 arm64
|
||||
检测到库 armhf
|
||||
检测到库 i386
|
||||
检测到库 s390x
|
||||
检测到库 mips64el
|
||||
检测到库 ppc64el
|
||||
检测到库 amd64
|
||||
版本号为:3.4.0
|
||||
普通版本
|
||||
qt.qpa.xcb: QXcbConnection: XCB error: 5 (BadAtom), sequence: 390, resource id: 0, major code: 20 (GetProperty), minor code: 0
|
||||
```
|
||||
|
||||
# 系统版本
|
||||
- 系统:Deepin 23
|
||||
- 硬件:
|
||||

|
||||
- 其他补充信息
|
||||
|
||||
# 之前做过什么操作
|
||||
在终端里输入了内容
|
||||
```bash
|
||||
sudo apt upgrade
|
||||
```
|
||||
更新了系统
|
||||
|
||||
# 复现步骤
|
||||
1. 打开运行器,然后点击右上角叉叉可以关闭
|
||||
|
||||
# 推测故障原因(可选)
|
||||
Qt 默认有一套配置好的退出事件
|
||||
|
||||
29
.github/workflows/auto-building-rpm.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
name: Auto Building Wine Runner(rpm)
|
||||
run-name: ${{ github.actor }} Auto Building Wine Runner(rpm) 🚀
|
||||
on:
|
||||
push:
|
||||
workflow_dispatch:
|
||||
jobs:
|
||||
Explore-GitHub-Actions:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Building RPM
|
||||
env:
|
||||
GUSER: ${{ secrets.GUSER }}
|
||||
PASSWORD: ${{ secrets.PASSWORD }}
|
||||
UPLOADURL: ${{ secrets.UPLOADURL }}
|
||||
run: |
|
||||
# 配置环境
|
||||
sudo apt update
|
||||
sudo apt install git dpkg-dev qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools qt5-qmake rpm -y
|
||||
git clone https://github.com/gfdgd-xi/deep-wine-runner
|
||||
cd deep-wine-runner
|
||||
make package-rpm
|
||||
mv spark-deepin-wine-runner*.rpm /home/runner/spark-deepin-wine-runner.rpm
|
||||
- name: upload result
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: spark-deepin-wine-runner.rpm
|
||||
path: /home/runner/spark-deepin-wine-runner.rpm
|
||||
|
||||
|
||||
35
.github/workflows/auto-building.yml
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
name: Auto Building Wine Runner(deb)
|
||||
run-name: ${{ github.actor }} Auto Building Wine Runner(deb) 🚀
|
||||
on:
|
||||
push:
|
||||
workflow_dispatch:
|
||||
jobs:
|
||||
Explore-GitHub-Actions:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Building DEB
|
||||
env:
|
||||
GUSER: ${{ secrets.GUSER }}
|
||||
PASSWORD: ${{ secrets.PASSWORD }}
|
||||
UPLOADURL: ${{ secrets.UPLOADURL }}
|
||||
run: |
|
||||
# 配置环境
|
||||
sudo apt update
|
||||
sudo apt install git dpkg-dev qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools qt5-qmake -y
|
||||
git clone https://github.com/gfdgd-xi/deep-wine-runner
|
||||
cd deep-wine-runner
|
||||
make package-deb
|
||||
mv spark-deepin-wine-runner.deb ~
|
||||
mv spark-deepin-wine-runner-ace.deb ~
|
||||
- name: upload result
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: spark-deepin-wine-runner.deb
|
||||
path: /home/runner/spark-deepin-wine-runner.deb
|
||||
- name: upload result
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: spark-deepin-wine-runner-ace.deb
|
||||
path: /home/runner/spark-deepin-wine-runner-ace.deb
|
||||
|
||||
|
||||
78
.github/workflows/building-off-line-package.yml
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
name: Building Wine Runner Off-line Pages(amd64)
|
||||
run-name: ${{ github.actor }} Building Wine Runner Off-line Pages(amd64) 🚀
|
||||
on:
|
||||
workflow_dispatch:
|
||||
jobs:
|
||||
Explore-GitHub-Actions:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Building DEB
|
||||
env:
|
||||
GUSER: ${{ secrets.GUSER }}
|
||||
PASSWORD: ${{ secrets.PASSWORD }}
|
||||
UPLOADURL: ${{ secrets.UPLOADURL }}
|
||||
run: |
|
||||
# 获取所需数据
|
||||
cpu=$(cat /proc/cpuinfo | grep processor | wc -l)
|
||||
# 配置环境
|
||||
sudo apt update
|
||||
sudo apt install python3-requests debootstrap xz-utils -y
|
||||
sudo apt install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools psmisc -y
|
||||
cd ~
|
||||
mkdir package
|
||||
# 部署 chroot 环境
|
||||
sudo debootstrap bookworm debian
|
||||
wget https://github.com/gfdgd-xi/deep-wine-runner/raw/main/pardus-chroot
|
||||
sudo cp pardus-chroot /usr/bin
|
||||
sudo chmod 777 /usr/bin/pardus-chroot
|
||||
sudo pardus-chroot debian
|
||||
### 配置容器
|
||||
## 加入 wine 源
|
||||
sudo chroot debian dpkg --add-architecture i386
|
||||
sudo chroot debian apt update
|
||||
sudo chroot debian apt install wget -y
|
||||
sudo chroot debian wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
|
||||
sudo chroot debian wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/bookworm/winehq-bookworm.sources
|
||||
sudo chroot debian apt update
|
||||
## 获取 Wine 运行器安装包
|
||||
git clone https://github.com/gfdgd-xi/deep-wine-runner --depth=1
|
||||
cd deep-wine-runner
|
||||
make package-deb
|
||||
cd ..
|
||||
url=`python3 deep-wine-runner/off-line-shell/GetNewestDebUrl.py`
|
||||
#wget $url
|
||||
mv deep-wine-runner/spark-deepin-wine-runner.deb debian/tmp/wine-runner.deb
|
||||
## 安装
|
||||
sudo chroot debian apt install locales /tmp/wine-runner.deb winehq-devel fcitx xfce4-terminal -y
|
||||
# 构建软件包
|
||||
mkdir package/opt -p
|
||||
mkdir package/runner -p
|
||||
sudo cp debian/opt/wine-devel package/opt -rv
|
||||
sudo cp debian/usr/bin package -rv
|
||||
sudo cp debian/usr/lib package -rv
|
||||
sudo cp debian/usr/lib32 package -rv
|
||||
sudo cp debian/usr/lib64 package -rv
|
||||
sudo cp debian/opt/apps/deepin-wine-runner/* package/runner -rv
|
||||
cp deep-wine-runner/off-line-shell/run.sh package -rv
|
||||
cp deep-wine-runner/off-line-shell/bwrap_amd64 package/bwrap -rv
|
||||
sudo chmod 777 -Rv package ; true
|
||||
cd package
|
||||
# 添加 Wine 运行器离线模式标识
|
||||
touch runner/off-line.lock
|
||||
tar -cvf ../spark-deepin-wine-runner-off-line.tar *
|
||||
cd ..
|
||||
xz -T $cpu spark-deepin-wine-runner-off-line.tar
|
||||
cp deep-wine-runner/off-line-shell/compression-packager.sh spark-deepin-wine-runner-off-line.sh
|
||||
cat spark-deepin-wine-runner-off-line.tar.xz >> spark-deepin-wine-runner-off-line.sh
|
||||
- name: upload result
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: spark-deepin-wine-runner-off-line.tar.xz
|
||||
path: /home/runner/spark-deepin-wine-runner-off-line.tar.xz
|
||||
- name: upload result
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: spark-deepin-wine-runner-off-line.sh
|
||||
path: /home/runner/spark-deepin-wine-runner-off-line.sh
|
||||
|
||||
|
||||
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
*.user*
|
||||
__pycache__
|
||||
3
.idea/.gitignore
generated
vendored
@@ -1,3 +0,0 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
8
.idea/deepin-wine-run.iml
generated
@@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="PYTHON_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="jdk" jdkName="Python 3.10" jdkType="Python SDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
6
.idea/inspectionProfiles/profiles_settings.xml
generated
@@ -1,6 +0,0 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<settings>
|
||||
<option name="USE_PROJECT_PROFILE" value="false" />
|
||||
<version value="1.0" />
|
||||
</settings>
|
||||
</component>
|
||||
4
.idea/misc.xml
generated
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10" project-jdk-type="Python SDK" />
|
||||
</project>
|
||||
8
.idea/modules.xml
generated
@@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/deepin-wine-run.iml" filepath="$PROJECT_DIR$/.idea/deepin-wine-run.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
6
.idea/vcs.xml
generated
@@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -1,52 +0,0 @@
|
||||
version: '1.0'
|
||||
name: branch-pipeline
|
||||
displayName: BranchPipeline
|
||||
stages:
|
||||
- stage:
|
||||
name: compile
|
||||
displayName: 编译
|
||||
steps:
|
||||
- step: build@python
|
||||
name: build_python
|
||||
displayName: Python 构建
|
||||
pythonVersion: '3.9'
|
||||
# 非必填字段,开启后表示将构建产物暂存,但不会上传到制品库中,7天后自动清除
|
||||
artifacts:
|
||||
# 构建产物名字,作为产物的唯一标识可向下传递,支持自定义,默认为BUILD_ARTIFACT。在下游可以通过${BUILD_ARTIFACT}方式引用来获取构建物地址
|
||||
- name: BUILD_ARTIFACT
|
||||
# 构建产物获取路径,是指代码编译完毕之后构建物的所在路径
|
||||
path:
|
||||
- ./
|
||||
commands:
|
||||
- python3 -m pip install --upgrade pip
|
||||
- pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
|
||||
- pip3 install -r requirements.txt
|
||||
- python3 ./main.py
|
||||
- step: publish@general_artifacts
|
||||
name: publish_general_artifacts
|
||||
displayName: 上传制品
|
||||
# 上游构建任务定义的产物名,默认BUILD_ARTIFACT
|
||||
dependArtifact: BUILD_ARTIFACT
|
||||
# 上传到制品库时的制品命名,默认output
|
||||
artifactName: output
|
||||
dependsOn: build_python
|
||||
- stage:
|
||||
name: release
|
||||
displayName: 发布
|
||||
steps:
|
||||
- step: publish@release_artifacts
|
||||
name: publish_release_artifacts
|
||||
displayName: '发布'
|
||||
# 上游上传制品任务的产出
|
||||
dependArtifact: output
|
||||
# 发布制品版本号
|
||||
version: '1.0.0.0'
|
||||
# 是否开启版本号自增,默认开启
|
||||
autoIncrement: true
|
||||
triggers:
|
||||
push:
|
||||
branches:
|
||||
exclude:
|
||||
- master
|
||||
include:
|
||||
- .*
|
||||
@@ -1,50 +0,0 @@
|
||||
version: '1.0'
|
||||
name: master-pipeline
|
||||
displayName: MasterPipeline
|
||||
stages:
|
||||
- stage:
|
||||
name: compile
|
||||
displayName: 编译
|
||||
steps:
|
||||
- step: build@python
|
||||
name: build_python
|
||||
displayName: Python 构建
|
||||
pythonVersion: '3.9'
|
||||
# 非必填字段,开启后表示将构建产物暂存,但不会上传到制品库中,7天后自动清除
|
||||
artifacts:
|
||||
# 构建产物名字,作为产物的唯一标识可向下传递,支持自定义,默认为BUILD_ARTIFACT。在下游可以通过${BUILD_ARTIFACT}方式引用来获取构建物地址
|
||||
- name: BUILD_ARTIFACT
|
||||
# 构建产物获取路径,是指代码编译完毕之后构建物的所在路径
|
||||
path:
|
||||
- ./
|
||||
commands:
|
||||
- python3 -m pip install --upgrade pip
|
||||
- pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
|
||||
- pip3 install -r requirements.txt
|
||||
- python3 ./main.py
|
||||
- step: publish@general_artifacts
|
||||
name: publish_general_artifacts
|
||||
displayName: 上传制品
|
||||
# 上游构建任务定义的产物名,默认BUILD_ARTIFACT
|
||||
dependArtifact: BUILD_ARTIFACT
|
||||
# 上传到制品库时的制品命名,默认output
|
||||
artifactName: output
|
||||
dependsOn: build_python
|
||||
- stage:
|
||||
name: release
|
||||
displayName: 发布
|
||||
steps:
|
||||
- step: publish@release_artifacts
|
||||
name: publish_release_artifacts
|
||||
displayName: '发布'
|
||||
# 上游上传制品任务的产出
|
||||
dependArtifact: output
|
||||
# 发布制品版本号
|
||||
version: '1.0.0.0'
|
||||
# 是否开启版本号自增,默认开启
|
||||
autoIncrement: true
|
||||
triggers:
|
||||
push:
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
@@ -1,37 +0,0 @@
|
||||
version: '1.0'
|
||||
name: pr-pipeline
|
||||
displayName: PRPipeline
|
||||
stages:
|
||||
- stage:
|
||||
name: compile
|
||||
displayName: 编译
|
||||
steps:
|
||||
- step: build@python
|
||||
name: build_python
|
||||
displayName: Python 构建
|
||||
pythonVersion: '3.9'
|
||||
# 非必填字段,开启后表示将构建产物暂存,但不会上传到制品库中,7天后自动清除
|
||||
artifacts:
|
||||
# 构建产物名字,作为产物的唯一标识可向下传递,支持自定义,默认为BUILD_ARTIFACT。在下游可以通过${BUILD_ARTIFACT}方式引用来获取构建物地址
|
||||
- name: BUILD_ARTIFACT
|
||||
# 构建产物获取路径,是指代码编译完毕之后构建物的所在路径
|
||||
path:
|
||||
- ./
|
||||
commands:
|
||||
- python3 -m pip install --upgrade pip
|
||||
- pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
|
||||
- pip3 install -r requirements.txt
|
||||
- python3 ./main.py
|
||||
- step: publish@general_artifacts
|
||||
name: publish_general_artifacts
|
||||
displayName: 上传制品
|
||||
# 上游构建任务定义的产物名,默认BUILD_ARTIFACT
|
||||
dependArtifact: BUILD_ARTIFACT
|
||||
# 上传到制品库时的制品命名,默认output
|
||||
artifactName: output
|
||||
dependsOn: build_python
|
||||
triggers:
|
||||
pr:
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 作者:gfdgd xi
|
||||
# 版本:2.4.0
|
||||
# 更新时间:2022年10月15日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
|
||||
21
AddWineDebMirrorForDeepin20.sh
Executable file
@@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
echo 网址:http://deb.wine.wine-runner.gfdgdxi.top/
|
||||
if [[ ! -f /etc/apt/sources.list.d/gfdgdxi-list-winehq.list ]]; then
|
||||
echo 未添加源,现在开始添加!
|
||||
sudo apt update
|
||||
sudo apt install wget gpg
|
||||
if [[ -f /tmp/github.sh ]]; then
|
||||
rm -v /tmp/github.sh
|
||||
fi
|
||||
cd /tmp
|
||||
wget http://deb.wine.wine-runner.gfdgdxi.top/sources/github.sh
|
||||
bash github.sh
|
||||
rm github.sh
|
||||
echo 添加完成,现在安装 Wine!
|
||||
else
|
||||
echo 已添加源,忽略,现在安装 Wine!
|
||||
sudo apt update
|
||||
fi
|
||||
sudo apt install winehq-devel -y
|
||||
echo 安装完成,按回车键退出!
|
||||
read
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 作者:gfdgd xi
|
||||
# 版本:2.1.0
|
||||
# 更新时间:2022年08月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
@@ -11,6 +11,7 @@
|
||||
# 引入所需的库
|
||||
#################
|
||||
import os
|
||||
import updatekiller
|
||||
|
||||
def AddSparkStoreSource():
|
||||
# Download and install key
|
||||
@@ -37,6 +38,11 @@ def InstallSparkWine(wine):
|
||||
else:
|
||||
os.system(f"sudo apt install \"{wine}\" -y")
|
||||
|
||||
def InstallWineWithYay(wine):
|
||||
if os.system("which yay > /dev/null"):
|
||||
os.system("sudo pacman -S yay --noconfirm")
|
||||
os.system(f"yay -S \"{wine}\"")
|
||||
|
||||
###################
|
||||
# 程序功能
|
||||
###################
|
||||
@@ -52,6 +58,40 @@ m m "
|
||||
print("请保证你能有 root 权限以便安装")
|
||||
print("如果有请按回车,否则按 [Ctrl+C] 退出", end=' ')
|
||||
input()
|
||||
# 如果是 Fedora,则
|
||||
if os.path.exists("/etc/fedora-release"):
|
||||
os.system("sudo pacman -Syu")
|
||||
print("请问是否要安装原版 wine(wine64)?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
os.system("sudo yum install wine")
|
||||
print("全部完成!")
|
||||
exit()
|
||||
# 判断系统版本,如果是 Arch Linux,则另外处理
|
||||
if os.path.exists("/etc/arch-release"):
|
||||
os.system("sudo pacman -Syu")
|
||||
print("请问是否要安装原版 wine(wine64)?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
os.system("sudo pacman -S wine")
|
||||
if os.system("which deepin-wine5-stable > /dev/null"):
|
||||
print("请问是否要安装 deepin-wine5-stable?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
InstallWineWithYay("deepin-wine5-stable")
|
||||
if os.system("which deepin-wine6-stable > /dev/null"):
|
||||
print("请问是否要安装 deepin-wine6-stable?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
InstallWineWithYay("deepin-wine6-stable")
|
||||
if os.system("which deepin-wine8-stable > /dev/null"):
|
||||
print("请问是否要安装 deepin-wine8-stable?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
InstallWineWithYay("deepin-wine8-stable")
|
||||
print("全部完成!")
|
||||
exit()
|
||||
|
||||
os.system("sudo apt update")
|
||||
print("请问是否要更新操作系统?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
@@ -80,6 +120,11 @@ if os.system("which deepin-wine6-stable > /dev/null"):
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
os.system("sudo apt install deepin-wine6-stable -y")
|
||||
if os.system("which deepin-wine8-stable > /dev/null"):
|
||||
print("请问是否要安装 deepin-wine8-stable?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
os.system("sudo apt install deepin-wine6-stable -y")
|
||||
if os.system("which spark-wine7-devel > /dev/null"):
|
||||
print("请问是否要安装 spark-wine7-devel(需要安装最新版星火应用商店)?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 作者:gfdgd xi
|
||||
# 版本:1.8.0
|
||||
# 更新时间:2022年08月01日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
@@ -14,6 +14,7 @@ import os
|
||||
import sys
|
||||
import json
|
||||
import pyquery
|
||||
import updatekiller
|
||||
import req as requests
|
||||
import urllib.parse as parse
|
||||
|
||||
@@ -34,7 +35,7 @@ def CleanTerminal():
|
||||
|
||||
if __name__ == "__main__":
|
||||
if "--help" in sys.argv:
|
||||
print("作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("作者:gfdgd xi")
|
||||
print("版本:1.0.0")
|
||||
print("本程序可以更方便的在 wine 容器中安装指定应用")
|
||||
sys.exit()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 作者:gfdgd xi
|
||||
# 版本:2.4.0
|
||||
# 更新时间:2022年10月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
@@ -15,6 +15,7 @@ import sys
|
||||
import base64
|
||||
import json
|
||||
import traceback
|
||||
import updatekiller
|
||||
import urllib.request
|
||||
import req as requests
|
||||
import PyQt5.QtWidgets as QtWidgets
|
||||
@@ -28,9 +29,9 @@ except:
|
||||
webeng = False
|
||||
|
||||
urlSourcesList = [
|
||||
"https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/auto", # Gitlink 源
|
||||
"http://www.gfdgdxi.top/deep-wine-runner-auto-configuration-script/", # Github 源
|
||||
"https://gitee.com/gfdgd-xi/deep-wine-runner-auto-configuration-script/raw/master/", # Gitee 源
|
||||
"https://gfdgd-xi.github.io/deep-wine-runner-auto-configuration-script/", # Github 源
|
||||
"https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/auto", # Gitlink 源
|
||||
"http://gfdgdxi.msns.cn/wine-runner-list/auto/", # 备用源1,纯 IPv6 源
|
||||
"http://gfdgdxi.free.idcfengye.com/deep-wine-runner-auto-configuration-script/", # 备用源2
|
||||
"http://gfdgdxi.free.idcfengye.com/wine-runner-list/auto/", # 备用源 3
|
||||
@@ -138,7 +139,7 @@ class InformationWindow():
|
||||
about = f"<h1>关于“{choose}”的介绍</h1>\n<p>暂无此程序的介绍</p>"
|
||||
try:
|
||||
import requests as r
|
||||
fenlists = requests.get(base64.b64decode("aHR0cHM6Ly9jb2RlLmdpdGxpbmsub3JnLmNuL2dmZGdkLXhpLW9yZy93aW5lLXJ1bm5lci1kb3dubG9hZHMtb2YtcnVubmVyL3Jhdy9icmFuY2gvbWFzdGVyL0Jhc2hBcHBGZW4v").decode("utf-8") + urllib.request.quote(fileName) + base64.b64decode("L2FsbC5qc29u").decode("utf-8"), timeout=1000).json()
|
||||
fenlists = requests.get("http://data.download.gfdgdxi.top/BashAppFen/" + urllib.request.quote(fileName) + base64.b64decode("L2FsbC5qc29u").decode("utf-8"), timeout=1000).json()
|
||||
tipsInfo = ""
|
||||
except:
|
||||
fenlists = [0, 0, 0, 0, 0]
|
||||
@@ -158,19 +159,19 @@ class InformationWindow():
|
||||
if maxHead > 5:
|
||||
for i in range(end):
|
||||
if webeng:
|
||||
starHtml += f"<img src='https://code.gitlink.org.cn/gfdgd_xi/deep-wine-runner/raw/branch/main/Icon/BadStar.svg' width=50>\n"
|
||||
starHtml += f"<img src='http://wine-runner.gfdgdxi.top/BadStar.svg' width=50>\n"
|
||||
else:
|
||||
starHtml += f"<img src='{programPath}/Icon/BadStar.svg' width=50>\n"
|
||||
else:
|
||||
for i in range(maxHead):
|
||||
if webeng:
|
||||
starHtml += f"<img src='https://code.gitlink.org.cn/gfdgd_xi/deep-wine-runner/raw/branch/main/Icon/Star.svg' width=50>\n"
|
||||
starHtml += f"<img src='http://wine-runner.gfdgdxi.top/Star.svg' width=50>\n"
|
||||
else:
|
||||
starHtml += f"<img src='{programPath}/Icon/Star.svg' width=50>\n"
|
||||
head = maxHead
|
||||
for i in range(head, end):
|
||||
if webeng:
|
||||
starHtml += f"<img src='https://code.gitlink.org.cn/gfdgd_xi/deep-wine-runner/raw/branch/main/Icon/UnStar.svg' width=50>"
|
||||
starHtml += f"<img src='http://wine-runner.gfdgdxi.top/UnStar.svg' width=50>"
|
||||
else:
|
||||
starHtml += f"<img src='{programPath}/Icon/UnStar.svg' width=50>"
|
||||
about += f"\n<hr/><h1>评分情况</h1>\n<p align='center'>{starHtml}</p>\n<p align='center'>{tipsInfo}</p>"
|
||||
@@ -252,7 +253,7 @@ class ProgramRunStatusShow():
|
||||
fileName = i[1]
|
||||
break
|
||||
try:
|
||||
fenlists = requests.get(base64.b64decode("aHR0cHM6Ly9jb2RlLmdpdGxpbmsub3JnLmNuL2dmZGdkLXhpLW9yZy93aW5lLXJ1bm5lci1kb3dubG9hZHMtb2YtcnVubmVyL3Jhdy9icmFuY2gvbWFzdGVyL0Jhc2hBcHBGZW4v").decode("utf-8") + urllib.request.quote(fileName) + base64.b64decode("L2FsbC5qc29u").decode("utf-8")).json()
|
||||
fenlists = requests.get("http://data.download.gfdgdxi.top/BashAppFen/" + urllib.request.quote(fileName) + base64.b64decode("L2FsbC5qc29u").decode("utf-8")).json()
|
||||
tipsInfo = ""
|
||||
except:
|
||||
#traceback.print_exc()
|
||||
@@ -310,7 +311,7 @@ class ProgramRunStatusShow():
|
||||
else:
|
||||
# 显示最新的3条评论
|
||||
try:
|
||||
all = int(requests.get(f"{base64.b64decode('aHR0cHM6Ly9jb2RlLmdpdGxpbmsub3JnLmNuL2dmZGdkLXhpLW9yZy9iYXNocGlubHVuL3Jhdy9icmFuY2gvbWFzdGVyLw==').decode('utf-8')}{urllib.request.quote(fileName)}/data.txt").text)
|
||||
all = int(requests.get(f"http://bashpinlun.gfdgdxi.top/{urllib.request.quote(fileName)}/data.txt").text)
|
||||
now = all - 3
|
||||
print(all)
|
||||
if all < 3:
|
||||
@@ -321,7 +322,7 @@ class ProgramRunStatusShow():
|
||||
uploadList = []
|
||||
for i in range(all - 1, start - 1, -1):
|
||||
print(f"第 {i + 1} 条评论:")
|
||||
info = requests.get(f"{base64.b64decode('aHR0cHM6Ly9jb2RlLmdpdGxpbmsub3JnLmNuL2dmZGdkLXhpLW9yZy9iYXNocGlubHVuL3Jhdy9icmFuY2gvbWFzdGVyLw==').decode('utf-8')}{urllib.request.quote(fileName)}/pf-{i}.txt").text.strip()
|
||||
info = requests.get(f"http://bashpinlun.gfdgdxi.top/{urllib.request.quote(fileName)}/pf-{i}.txt").text.strip()
|
||||
print(info)
|
||||
uploadList.append([f"用户{i + 1}", i + 1, info])
|
||||
Add(uploadList)
|
||||
@@ -378,7 +379,7 @@ def UpdateFen():
|
||||
uploadList = []
|
||||
for i in range(now + 2, now - 1, -1):
|
||||
print(f"第 {i + 1} 条评论:")
|
||||
info = requests.get(f"https://code.gitlink.org.cn/gfdgd-xi/bashpinlun/raw/branch/master/{urllib.request.quote(fileName)}/pf-{i}.txt").text.strip()
|
||||
info = requests.get(f"http://bashpinlun.gfdgdxi.top/{urllib.request.quote(fileName)}/pf-{i}.txt").text.strip()
|
||||
print(info)
|
||||
uploadList.append([f"用户{i + 1}", i + 1, info])
|
||||
#ProgramRunStatusShow.pingLunLayout.removeItem(ProgramRunStatusShow.pingLunLayout.itemAt(2))
|
||||
@@ -515,7 +516,7 @@ def readtxt(path):
|
||||
|
||||
def ChangeSources():
|
||||
global urlSources
|
||||
sources = [ui.actionGitlink, ui.actionGitee, ui.actionGithub, ui.action_IPv6, ui.action_2, ui.action_3, ui.action]
|
||||
sources = [ui.actionGitee, ui.actionGithub, ui.actionGitlink, ui.action_IPv6, ui.action_2, ui.action_3, ui.action]
|
||||
for i in range(0, len(sources)):
|
||||
if sources[i].isChecked():
|
||||
urlSources = urlSourcesList[i]
|
||||
@@ -556,9 +557,10 @@ if __name__ == "__main__":
|
||||
window.show()
|
||||
#ui.actionGitlink.setExclusive(True)
|
||||
sourcesGroup = QtWidgets.QActionGroup(window)
|
||||
sourcesGroup.addAction(ui.actionGitlink)
|
||||
|
||||
sourcesGroup.addAction(ui.actionGitee)
|
||||
sourcesGroup.addAction(ui.actionGithub)
|
||||
sourcesGroup.addAction(ui.actionGitlink)
|
||||
sourcesGroup.addAction(ui.action_IPv6)
|
||||
sourcesGroup.addAction(ui.action_2)
|
||||
sourcesGroup.addAction(ui.action_3)
|
||||
|
||||
@@ -24,8 +24,8 @@ programEnv = [
|
||||
["PROGRAMPATH", programPath],
|
||||
["VERSION", version],
|
||||
["THANK", thankText.replace("\n", "\\n")],
|
||||
["MAKER", "gfdgd xi、为什么您不喜欢熊出没和阿布呢"],
|
||||
["COPYRIGHT", f"©2020~{time.strftime('%Y')} gfdgd xi、为什么您不喜欢熊出没和阿布呢"],
|
||||
["MAKER", "gfdgd xi"],
|
||||
["COPYRIGHT", f"©2020~{time.strftime('%Y')} gfdgd xi"],
|
||||
["PLATFORM", platform.system()],
|
||||
["DEBUG", str(int("--debug" in sys.argv))]
|
||||
]
|
||||
@@ -37,8 +37,8 @@ programEnv = [
|
||||
["($PROGRAMPATH)", programPath],
|
||||
["($VERSION)", version],
|
||||
["($THANK)", thankText],
|
||||
["($MAKER)", "gfdgd xi、为什么您不喜欢熊出没和阿布呢"],
|
||||
["($COPYRIGHT)", f"©2020~{time.strftime('%Y')} gfdgd xi、为什么您不喜欢熊出没和阿布呢"],
|
||||
["($MAKER)", "gfdgd xi"],
|
||||
["($COPYRIGHT)", f"©2020~{time.strftime('%Y')} gfdgd xi"],
|
||||
["?", "0"],
|
||||
["PLATFORM)", platform.system()],
|
||||
["DEBUG)", str(int("--debug" in sys.argv))]
|
||||
@@ -61,7 +61,7 @@ commandEnv += f"PATH=\"{programPath}/command:$PATH\" "
|
||||
if len(sys.argv) - optionAll < 2:
|
||||
print("Wine 运行器自动配置文件解析器交互环境(基于 Bash)")
|
||||
print(f"版本:{version}")
|
||||
print(f"©2020~{time.strftime('%Y')} gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print(f"©2020~{time.strftime('%Y')} gfdgd xi")
|
||||
print("--------------------------------------------------------------")
|
||||
os.system(f"{commandEnv} bash ")
|
||||
exit()
|
||||
@@ -70,6 +70,6 @@ for i in sys.argv[1:]:
|
||||
command += f"\"{i}\" "
|
||||
print("Wine 运行器自动配置文件解析器(基于 Bash)")
|
||||
print(f"版本:{version}")
|
||||
print(f"©2020~{time.strftime('%Y')} gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print(f"©2020~{time.strftime('%Y')} gfdgd xi")
|
||||
print("--------------------------------------------------------------")
|
||||
os.system(f"{commandEnv} bash {command}")
|
||||
87
BuildDemoConfigFile/com.7zip.demo_23.01spark0_all.json
Normal file
@@ -0,0 +1,87 @@
|
||||
{
|
||||
"Package": [
|
||||
"L",
|
||||
"com.7zip.demo"
|
||||
],
|
||||
"Version": [
|
||||
"L",
|
||||
"23.01spark0"
|
||||
],
|
||||
"Description": [
|
||||
"L",
|
||||
"7Zip For Deepin Wine6 Stable"
|
||||
],
|
||||
"Maintainer": [
|
||||
"L",
|
||||
"gfdgd xi<3025613752@qq.com>"
|
||||
],
|
||||
"BottleName": [
|
||||
"L",
|
||||
"Spark-7zip"
|
||||
],
|
||||
"BottlePath": [
|
||||
"L",
|
||||
"/home/gfdgd_xi/.deepinwine/Spark-7zip"
|
||||
],
|
||||
"WineVersion": [
|
||||
"Co",
|
||||
5
|
||||
],
|
||||
"DebSavePath": [
|
||||
"L",
|
||||
"/home/gfdgd_xi/Desktop/com.7zip.demo_23.01spark0_all.deb"
|
||||
],
|
||||
"Desktop": [
|
||||
"List-Desktop",
|
||||
[
|
||||
[
|
||||
"c:/Program Files/7-Zip/7zFM.exe",
|
||||
11,
|
||||
"",
|
||||
"7Zip",
|
||||
"/home/gfdgd_xi/Desktop/Icon_0001.png",
|
||||
""
|
||||
]
|
||||
]
|
||||
],
|
||||
"UseInstallWineArch": [
|
||||
"Co",
|
||||
0
|
||||
],
|
||||
"RemoveBash": [
|
||||
"Ch",
|
||||
true
|
||||
],
|
||||
"CleanBottleByUOS": [
|
||||
"Ch",
|
||||
true
|
||||
],
|
||||
"ChooseWineHelperValue": [
|
||||
"Ch",
|
||||
true
|
||||
],
|
||||
"DisabledMono": [
|
||||
"Ch",
|
||||
true
|
||||
],
|
||||
"DebDepends": [
|
||||
"L",
|
||||
"deepin-wine6-stable | deepin-wine6-stable-bcm | deepin-wine6-stable-dcm, spark-dwine-helper | store.spark-app.spark-dwine-helper, fonts-wqy-microhei, fonts-wqy-zenhei"
|
||||
],
|
||||
"DebRecommend": [
|
||||
"L",
|
||||
""
|
||||
],
|
||||
"DebFirstArch": [
|
||||
"Co",
|
||||
0
|
||||
],
|
||||
"DebArch": [
|
||||
"Co",
|
||||
0
|
||||
],
|
||||
"SparkHelperConfigPath": [
|
||||
"Str-SparkHelperConfigPath",
|
||||
null
|
||||
]
|
||||
}
|
||||
@@ -13,6 +13,7 @@
|
||||
import os
|
||||
import sys
|
||||
import traceback
|
||||
import updatekiller
|
||||
import PyQt5.QtGui as QtGui
|
||||
import PyQt5.QtCore as QtCore
|
||||
import PyQt5.QtWidgets as QtWidgets
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
#################################################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 作者:gfdgd xi
|
||||
# 版本:2.5.0
|
||||
# 更新时间:2022年11月18日
|
||||
# 感谢:感谢 wine、deepin-wine 以及星火团队,提供了 wine、deepin-wine、spark-wine-devel 给大家使用,让我能做这个程序
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env deepin-wine-runner-auto-install-bash
|
||||
# 使用 Wine 运行器的语言解析器
|
||||
##########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 作者:gfdgd xi
|
||||
# 更新时间:2022年11月19日
|
||||
##########################################################################################
|
||||
# 用于判断是否为 bash 解释器
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env deepin-wine-runner-auto-install-bash
|
||||
# 使用 Wine 运行器的语言解析器
|
||||
##########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 作者:gfdgd xi
|
||||
# 更新时间:2022年11月03日
|
||||
##########################################################################################
|
||||
# 用于判断是否为 bash 解释器
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env deepin-wine-runner-auto-install-bash
|
||||
# 使用 Wine 运行器的语言解析器
|
||||
##########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 作者:gfdgd xi
|
||||
# 更新时间:2022年11月19日
|
||||
##########################################################################################
|
||||
# 用于判断是否为 bash 解释器
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 作者:gfdgd xi
|
||||
# 版本:3.0.1
|
||||
# 更新时间:2022年10月05日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
@@ -12,6 +12,7 @@ import sys
|
||||
import time
|
||||
import json
|
||||
import random
|
||||
import updatekiller
|
||||
# 阉割 Android 应用安装功能
|
||||
#import uengineapi
|
||||
import platform
|
||||
@@ -42,8 +43,8 @@ programEnv = [
|
||||
["($PROGRAMPATH)", programPath],
|
||||
["($VERSION)", version],
|
||||
["($THANK)", thankText],
|
||||
["($MAKER)", "RacoonGX 团队,By gfdgd xi、为什么您不喜欢熊出没和阿布呢"],
|
||||
["($COPYRIGHT)", f"©2020~{time.strftime('%Y')} RacoonGX 团队,By gfdgd xi、为什么您不喜欢熊出没和阿布呢"],
|
||||
["($MAKER)", "gfdgd xi"],
|
||||
["($COPYRIGHT)", f"©2020~{time.strftime('%Y')} gfdgd xi"],
|
||||
["($?)", "0"],
|
||||
["($PLATFORM)", platform.system()],
|
||||
["($DEBUG)", "1"]
|
||||
@@ -300,7 +301,7 @@ class Command():
|
||||
|
||||
def Version(self):
|
||||
print(f"版本:{version}")
|
||||
print(f"©2020~{time.strftime('%Y')} RacoonGX 团队,By gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print(f"©2020~{time.strftime('%Y')} gfdgd xi")
|
||||
return 0
|
||||
|
||||
def Pause(self) -> int:
|
||||
@@ -649,7 +650,7 @@ if __name__ == "__main__":
|
||||
if len(sys.argv) - optionAll < 2:
|
||||
print("Wine 运行器自动配置文件解析器交互环境")
|
||||
print(f"版本:{version}")
|
||||
print(f"©2020~{time.strftime('%Y')} RacoonGX 团队,By gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print(f"©2020~{time.strftime('%Y')} By gfdgd xi")
|
||||
print("--------------------------------------------------------------")
|
||||
while True:
|
||||
commandLine = input(">")
|
||||
@@ -668,7 +669,7 @@ if __name__ == "__main__":
|
||||
sys.exit(1)
|
||||
print("Wine 运行器自动配置文件解析器")
|
||||
print(f"版本:{version}")
|
||||
print(f"©2020~{time.strftime('%Y')} gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print(f"©2020~{time.strftime('%Y')} gfdgd xi")
|
||||
print("--------------------------------------------------------------")
|
||||
com.Run(com.GetCommandList(), programEnv[0][1], programEnv[1][1])
|
||||
sys.exit(int(programEnv[9][1]))
|
||||
424
DefaultSetting.py
Normal file
@@ -0,0 +1,424 @@
|
||||
#!/usr/bin/env python3
|
||||
# 读取设置单独用一个 py 文件
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import base64
|
||||
import shutil
|
||||
import getpass
|
||||
import datetime
|
||||
import traceback
|
||||
import subprocess
|
||||
import webbrowser
|
||||
import configparser
|
||||
import PyQt5.QtGui as QtGui
|
||||
import PyQt5.QtCore as QtCore
|
||||
import PyQt5.QtWidgets as QtWidgets
|
||||
|
||||
# 获取用户主目录
|
||||
def get_home():
|
||||
return os.path.expanduser('~')
|
||||
|
||||
# 读取文本文档
|
||||
def readtxt(path):
|
||||
f = open(path, "r") # 设置文件对象
|
||||
str = f.read() # 获取内容
|
||||
f.close() # 关闭文本对象
|
||||
return str # 返回结果
|
||||
|
||||
defultProgramList = {
|
||||
"Architecture": "Auto",
|
||||
"Debug": True,
|
||||
"DefultWine": "deepin-wine8-stable",
|
||||
"DefultBotton" : get_home() + "/.wine",
|
||||
"TerminalOpen": False,
|
||||
"WineOption": "",
|
||||
"WineBottonDifferent": False,
|
||||
"CenterWindow": False,
|
||||
"Theme": "",
|
||||
"MonoGeckoInstaller": False,
|
||||
"AutoWine": True,
|
||||
"RuntimeCache": True,
|
||||
"MustRead": False,
|
||||
"BuildByBottleName": False,
|
||||
"AutoPath": False,
|
||||
"QemuUnMountHome": False,
|
||||
"Chinese": True,
|
||||
"FontSize": 1
|
||||
}
|
||||
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
iconPath = "{}/deepin-wine-runner.svg".format(programPath)
|
||||
try:
|
||||
information = json.loads(readtxt(f"{programPath}/information.json"))
|
||||
setting = json.loads(readtxt(get_home() + "/.config/deepin-wine-runner/WineSetting.json"))
|
||||
except:
|
||||
traceback.print_exc()
|
||||
setting = defultProgramList
|
||||
|
||||
def SetFont(app):
|
||||
defaultFont = app.font()
|
||||
size = setting["FontSize"]
|
||||
font = QtGui.QFont(defaultFont)
|
||||
if size == 1:
|
||||
app.setFont(defaultFont)
|
||||
return
|
||||
font.setPixelSize(int(defaultFont.pixelSize() / size))
|
||||
font.setPointSize(int(defaultFont.pointSize() / size))
|
||||
app.setFont(font)
|
||||
|
||||
def getFileFolderSize(fileOrFolderPath):
|
||||
"""get size for file or folder"""
|
||||
totalSize = 0
|
||||
try:
|
||||
if not os.path.exists(fileOrFolderPath):
|
||||
return totalSize
|
||||
if os.path.isfile(fileOrFolderPath):
|
||||
totalSize = os.path.getsize(fileOrFolderPath) # 5041481
|
||||
return totalSize
|
||||
if os.path.islink(fileOrFolderPath):
|
||||
return 0
|
||||
if os.path.isdir(fileOrFolderPath):
|
||||
with os.scandir(fileOrFolderPath) as dirEntryList:
|
||||
for curSubEntry in dirEntryList:
|
||||
curSubEntryFullPath = os.path.join(fileOrFolderPath, curSubEntry.name)
|
||||
if curSubEntry.is_dir():
|
||||
curSubFolderSize = getFileFolderSize(curSubEntryFullPath) # 5800007
|
||||
totalSize += curSubFolderSize
|
||||
elif curSubEntry.is_file():
|
||||
curSubFileSize = os.path.getsize(curSubEntryFullPath) # 1891
|
||||
totalSize += curSubFileSize
|
||||
return totalSize
|
||||
except:
|
||||
return totalSize
|
||||
|
||||
def FileToBase64(filePath):
|
||||
src = ""
|
||||
with open(filePath, "rb") as f:
|
||||
base64Byte = base64.b64encode(f.read())
|
||||
src += base64Byte.decode("utf-8")
|
||||
return src
|
||||
|
||||
def SaveLogWindow():
|
||||
pass
|
||||
|
||||
def OpenUrl(url):
|
||||
print(url.url())
|
||||
# 判断是否可以使用小窗打开
|
||||
webbrowser.open_new_tab(url.url())
|
||||
|
||||
def Appreciate():
|
||||
global messageAppreciate
|
||||
messageAppreciate = QtWidgets.QTextBrowser()
|
||||
messageAppreciate.setHtml(f"""<h3>请作者喝杯茶</h3>
|
||||
<p>如果您觉得 Wine 运行器对你有帮助,可以请作者喝杯茶 </p>
|
||||
<p>
|
||||
<img src="{programPath}/Icon/QR/Wechat.png" width="250" />
|
||||
<img src="{programPath}/Icon/QR/Alipay.jpg" width="250" />
|
||||
<img src="{programPath}/Icon/QR/QQ.png" width="250" >
|
||||
</p>
|
||||
<hr/>
|
||||
<h3>广告</h3>
|
||||
<p>支付宝官方活动,扫描获得支付红包!</p>
|
||||
<p><img src="{programPath}/Icon/QR/advertisement0.jpg" width="250" ></p>""")
|
||||
messageAppreciate.resize(int(messageAppreciate.frameGeometry().width() * 1.5), int(messageAppreciate.frameGeometry().height() * 1.2))
|
||||
messageAppreciate.setWindowTitle("赞赏作者/请作者喝杯茶")
|
||||
messageAppreciate.show()
|
||||
|
||||
# 显示“关于这个程序”窗口
|
||||
def about_this_program()->"显示“关于这个程序”窗口":
|
||||
global about
|
||||
global title
|
||||
global iconPath
|
||||
global clickIconTime
|
||||
clickIconTime = 0
|
||||
QT.message = QtWidgets.QMainWindow()
|
||||
QT.message.setWindowIcon(QtGui.QIcon(iconPath))
|
||||
messageWidget = QtWidgets.QWidget()
|
||||
messageWidget.setObjectName("messageWidget")
|
||||
messageWidget.setStyleSheet(f"QWidget#messageWidget {{background: url({programPath}/Icon/Program/about-background.png) no-repeat;background-position: left bottom;}}")
|
||||
QT.message.setWindowTitle(f"关于 {title}")
|
||||
messageLayout = QtWidgets.QGridLayout()
|
||||
iconShow = QtWidgets.QLabel(f"<a href='https://www.gfdgdxi.top'><img width=256 src='{iconPath}'></a>")
|
||||
def ChangeIcon():
|
||||
global clickIconTime
|
||||
if clickIconTime >= 0:
|
||||
clickIconTime = clickIconTime + 1
|
||||
if clickIconTime > 0:
|
||||
clickIconTime = -1
|
||||
for k in ["", "Function", "Program"]:
|
||||
try:
|
||||
for i in os.listdir(f"{programPath}/Icon/{k}"):
|
||||
if i[-4:] == ".svg" or i[-4:] == ".png":
|
||||
iconPathList.append(f"{programPath}/Icon/{k}/{i}")
|
||||
except:
|
||||
traceback.print_exec()
|
||||
randomNumber = random.randint(0, len(iconPathList) - 1)
|
||||
iconShow.setText(f"<a href='https://www.gfdgdxi.top'><img width=256 src='{iconPathList[randomNumber]}'></a><p align='center'>{randomNumber + 1}/{len(iconPathList)}</p>")
|
||||
iconShow.linkActivated.connect(ChangeIcon)
|
||||
messageLayout.addWidget(iconShow, 0, 0, 1, 1, QtCore.Qt.AlignTop)
|
||||
aboutInfo = QtWidgets.QTextBrowser(messageWidget)
|
||||
aboutInfo.setFocusPolicy(QtCore.Qt.NoFocus)
|
||||
#aboutInfo.copyAvailable.connect(lambda: print("b"))
|
||||
aboutInfo.anchorClicked.connect(OpenUrl)
|
||||
aboutInfo.setOpenLinks(False)
|
||||
aboutInfo.setHtml(about)
|
||||
aboutInfo.setOpenExternalLinks(False)
|
||||
messageLayout.addWidget(aboutInfo, 0, 1, 1, 1)
|
||||
ok = QtWidgets.QPushButton(QtCore.QCoreApplication.translate("U", "确定"))
|
||||
ok.clicked.connect(QT.message.close)
|
||||
messageLayout.addWidget(ok, 1, 1, 1, 1, QtCore.Qt.AlignBottom | QtCore.Qt.AlignRight)
|
||||
messageWidget.setLayout(messageLayout)
|
||||
|
||||
QT.message.setCentralWidget(messageWidget)
|
||||
QT.message.resize(int(messageWidget.frameGeometry().width() * 1.5), int(messageWidget.frameGeometry().height() * 1.5))
|
||||
QT.message.show()
|
||||
|
||||
class SaveLogReport():
|
||||
userName = getpass.getuser()
|
||||
time = datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S")
|
||||
kernelVersion = subprocess.getoutput("uname -a")
|
||||
wineRunnerVersion = information["Version"]
|
||||
architecture = subprocess.getoutput("arch")
|
||||
cpuInfo = subprocess.getoutput("lscpu")
|
||||
lsmod = subprocess.getoutput("lsmod")
|
||||
lshw = subprocess.getoutput("lshw")
|
||||
cpu = subprocess.getoutput("cat /proc/cpuinfo | grep 'model name' | head -n 1 | awk -F: '{print $2}'")
|
||||
gpu = subprocess.getoutput("lspci | grep -i 'VGA\|3D\|2D'")
|
||||
|
||||
def __init__(self, chooseWineName, chooseWineCommand, runCommand, binPath, logOut, description="无", imgPath=[]) -> None:
|
||||
self.chooseWineName = chooseWineName
|
||||
self.chooseWineCommand = chooseWineCommand
|
||||
self.runCommand = runCommand
|
||||
self.binPath = binPath
|
||||
self.logOut = logOut
|
||||
self.description = description
|
||||
self.imgPath = imgPath
|
||||
# 读取可执行文件信息
|
||||
if os.path.exists(binPath):
|
||||
try:
|
||||
self.binSize = f"{str(int(getFileFolderSize(binPath) / 1024 / 1024))}MB"
|
||||
except:
|
||||
self.binSize = "Error"
|
||||
traceback.print_exc()
|
||||
os.system(f"'{programPath}/wrestool' '{binPath}' -x -t 14 > '/tmp/wine-runner-log-icon.png'")
|
||||
# 如果提取成功
|
||||
if os.path.exists("/tmp/wine-runner-log-icon.png"):
|
||||
# 转换成 base64 编码
|
||||
self.binIcon = "data:image/jpg;base64," + FileToBase64("/tmp/wine-runner-log-icon.png")
|
||||
self.binIconPath = "/tmp/wine-runner-log-icon.png"
|
||||
else:
|
||||
self.binIcon = "Not Found"
|
||||
self.binIconPath = "Not Found"
|
||||
else:
|
||||
self.binSize = "Not Found"
|
||||
self.binIcon = "Not Found"
|
||||
self.binIconPath = "Not Found"
|
||||
try:
|
||||
self.memoryInfo = readtxt("/proc/meminfo")
|
||||
except:
|
||||
traceback.print_exc()
|
||||
self.memoryInfo = traceback.format_exc()
|
||||
# 读取系统信息
|
||||
try:
|
||||
with open("/etc/os-release", "r") as file:
|
||||
text = "[Default]\n" + file.read()
|
||||
conf = configparser.ConfigParser()
|
||||
conf.read_string(text)
|
||||
self.systemVersion = conf.get("Default", "PRETTY_NAME")
|
||||
except:
|
||||
traceback.print_exc()
|
||||
self.systemVersion = subprocess.getoutput("lsb_release -a")
|
||||
|
||||
def SetWindow(self):
|
||||
def AddImageToListClicked():
|
||||
choose = QtWidgets.QFileDialog.getOpenFileNames(messagebox, "选择图像", get_home(), "图片文件(*.png *.jpg *.bmp *.gif *.svg);;所有文件(*.*)")
|
||||
print(choose)
|
||||
for i in choose[0]:
|
||||
if i in imageList:
|
||||
continue
|
||||
imageList.append(i)
|
||||
nmodel = QtGui.QStandardItemModel(messagebox)
|
||||
for i in imageList:
|
||||
item = QtGui.QStandardItem(i)
|
||||
nmodel.appendRow(item)
|
||||
imageListView.setModel(nmodel)
|
||||
|
||||
def DeleteImageToListClicked():
|
||||
index = imageListView.currentIndex().row()
|
||||
if index < 0:
|
||||
QtWidgets.QMessageBox.information(messagebox, "提示", "您未选择任何项")
|
||||
return
|
||||
del imageList[index]
|
||||
nmodel = QtGui.QStandardItemModel(messagebox)
|
||||
for i in imageList:
|
||||
item = QtGui.QStandardItem(i)
|
||||
nmodel.appendRow(item)
|
||||
imageListView.setModel(nmodel)
|
||||
# 选择第一项
|
||||
imageListView.setCurrentIndex(nmodel.index(0, 0))
|
||||
|
||||
def OkClicked():
|
||||
self.description = description.toPlainText()
|
||||
self.imgPath = imageList
|
||||
path = QtWidgets.QFileDialog.getSaveFileName(messagebox, "保存日志报告", get_home(), "7z 文件(*.7z);;所有文件(*.*)")
|
||||
print(path)
|
||||
if path[0] != "":
|
||||
try:
|
||||
self.To7z(path[0])
|
||||
except:
|
||||
traceback.print_exc()
|
||||
QtWidgets.QMessageBox.critical(messagebox, "错误", traceback.format_exc())
|
||||
return
|
||||
messagebox.close()
|
||||
QtWidgets.QMessageBox.information(messagebox, "提示", "生成完成!\n建议将报告与可执行文件一并提交以便排除错误")
|
||||
|
||||
def CancelClicked():
|
||||
messagebox.close()
|
||||
|
||||
# 权重
|
||||
size = QtWidgets.QSizePolicy()
|
||||
size.setHorizontalPolicy(0)
|
||||
imageList = []
|
||||
messagebox = QtWidgets.QDialog()
|
||||
layout = QtWidgets.QGridLayout()
|
||||
description = QtWidgets.QTextEdit()
|
||||
imageListView = QtWidgets.QListView()
|
||||
addImageToList = QtWidgets.QPushButton("+")
|
||||
deleteImageToList = QtWidgets.QPushButton("-")
|
||||
controlLayout = QtWidgets.QHBoxLayout()
|
||||
ok = QtWidgets.QPushButton("保存")
|
||||
cancel = QtWidgets.QPushButton("取消")
|
||||
description.setPlaceholderText("可以填写故障的现象、复现步骤以及其他有关的信息,同时也可以填写联系方式")
|
||||
addImageToList.clicked.connect(AddImageToListClicked)
|
||||
deleteImageToList.clicked.connect(DeleteImageToListClicked)
|
||||
ok.clicked.connect(OkClicked)
|
||||
cancel.clicked.connect(CancelClicked)
|
||||
addImageToList.setSizePolicy(size)
|
||||
deleteImageToList.setSizePolicy(size)
|
||||
ok.setSizePolicy(size)
|
||||
cancel.setSizePolicy(size)
|
||||
layout.addWidget(QtWidgets.QLabel("<h2>描述(建议填写)</h2>"), 0, 0)
|
||||
layout.addWidget(description, 1, 0, 1, 3)
|
||||
layout.addWidget(QtWidgets.QLabel("<hr>"), 2, 0, 1, 4)
|
||||
layout.addWidget(QtWidgets.QLabel("<h2>截图(建议选择)</h2>"), 3, 0)
|
||||
layout.addWidget(imageListView, 4, 0, 4, 3)
|
||||
layout.addWidget(addImageToList, 5, 3)
|
||||
layout.addWidget(deleteImageToList, 6, 3)
|
||||
layout.addLayout(controlLayout, 8, 2, 1, 2)
|
||||
controlLayout.addWidget(cancel)
|
||||
controlLayout.addWidget(ok)
|
||||
messagebox.setLayout(layout)
|
||||
messagebox.exec_()
|
||||
|
||||
def To7z(self, savePath):
|
||||
os.system("rm -rfv /tmp/wine-runner-log")
|
||||
os.system("mkdir -v /tmp/wine-runner-log")
|
||||
self.ToHtml("/tmp/wine-runner-log/index.html", toZip=True)
|
||||
if os.path.exists(self.binIconPath):
|
||||
shutil.copy(self.binIconPath, f"/tmp/wine-runner-log/{os.path.basename(self.binIconPath)}")
|
||||
lists = ["wine-runner-log-icon.png", "index.html"]
|
||||
for i in self.imgPath:
|
||||
name = os.path.basename(i)
|
||||
if os.path.basename(i) in lists:
|
||||
while name in lists:
|
||||
name = os.path.splitext(name)[0] + "-copy" + os.path.splitext(name)[1]
|
||||
lists.append(name)
|
||||
else:
|
||||
lists.append(name)
|
||||
shutil.copy(i, f"/tmp/wine-runner-log/{name}")
|
||||
os.system(f"7z a '{savePath}' /tmp/wine-runner-log")
|
||||
|
||||
|
||||
def ToHtml(self, savePath, toZip=False):
|
||||
print(self.userName, self.time)
|
||||
# 对文本进行处理
|
||||
description = ""
|
||||
logOut = ""
|
||||
cpuInfo = ""
|
||||
memoryInfo = ""
|
||||
imgPath = ""
|
||||
lsmod = ""
|
||||
lshw = ""
|
||||
charReplaceMap = {
|
||||
"<": "<",
|
||||
">": ">",
|
||||
"&": "&",
|
||||
'"': """
|
||||
}
|
||||
for i in self.description.splitlines():
|
||||
for k in charReplaceMap:
|
||||
i = i.replace(k, charReplaceMap[k])
|
||||
description += f'<span class="line code">{i}</span>\n'
|
||||
for i in self.logOut.splitlines():
|
||||
for k in charReplaceMap:
|
||||
i = i.replace(k, charReplaceMap[k])
|
||||
logOut += f'<span class="line code">{i}</span>\n'
|
||||
for i in self.cpuInfo.splitlines():
|
||||
for k in charReplaceMap:
|
||||
i = i.replace(k, charReplaceMap[k])
|
||||
cpuInfo += f'<span class="line code">{i}</span>\n'
|
||||
for i in self.memoryInfo.splitlines():
|
||||
for k in charReplaceMap:
|
||||
i = i.replace(k, charReplaceMap[k])
|
||||
memoryInfo += f'<span class="line code">{i}</span>\n'
|
||||
for i in self.lsmod.splitlines():
|
||||
for k in charReplaceMap:
|
||||
i = i.replace(k, charReplaceMap[k])
|
||||
lsmod += f'<span class="line code">{i}</span>\n'
|
||||
for i in self.lshw.splitlines():
|
||||
for k in charReplaceMap:
|
||||
i = i.replace(k, charReplaceMap[k])
|
||||
lshw += f'<span class="line code">{i}</span>\n'
|
||||
text = readtxt(f"{programPath}/Resources/LogTemplate/template.html")
|
||||
if toZip:
|
||||
binIcon = os.path.basename(self.binIconPath)
|
||||
# 重名排除
|
||||
lists = ["wine-runner-log-icon.png", "index.html"]
|
||||
for i in self.imgPath:
|
||||
name = os.path.basename(i)
|
||||
if os.path.basename(i) in lists:
|
||||
while name in lists:
|
||||
name = os.path.splitext(name)[0] + "-copy" + os.path.splitext(name)[1]
|
||||
lists.append(name)
|
||||
else:
|
||||
lists.append(name)
|
||||
imgPath += f'<p align="center"><img src="{name}" class="imgShow"></p>\n'
|
||||
else:
|
||||
binIcon = self.binIcon
|
||||
for i in self.imgPath:
|
||||
try:
|
||||
path = "data:image/jpg;base64," + FileToBase64(i)
|
||||
except:
|
||||
traceback.print_exc()
|
||||
path = "Error"
|
||||
imgPath += f' <p align="center"><img src="{path}" class="imgShow"></p>\n'
|
||||
|
||||
replaceMap = {
|
||||
"%UserName%": self.userName,
|
||||
"%Time%": self.time,
|
||||
"%KernelVersion": self.kernelVersion,
|
||||
"%ChooseWineName%": self.chooseWineName,
|
||||
"%ChooseWineCommand%": self.chooseWineCommand,
|
||||
"%RunCommand%": self.runCommand,
|
||||
"%BinPath%": self.binPath,
|
||||
"%WineRunnerVersion%": self.wineRunnerVersion,
|
||||
"%BinSize%": self.binSize,
|
||||
"%BinIcon%": binIcon,
|
||||
"%CPUInfo%": cpuInfo,
|
||||
"%Architecture%": self.architecture,
|
||||
"%MemoryInfo%": memoryInfo,
|
||||
"%LogOut%": logOut,
|
||||
"%Description%": description,
|
||||
"%ImgPath%": imgPath,
|
||||
"%Lsmod%": lsmod,
|
||||
"%Lshw%": lshw,
|
||||
"%CPU%": self.cpu,
|
||||
"%GPU%": self.gpu,
|
||||
"%SystemVersion%": self.systemVersion
|
||||
}
|
||||
for i in replaceMap.keys():
|
||||
text = text.replace(i, replaceMap[i])
|
||||
with open(savePath, "w") as file:
|
||||
file.write(text)
|
||||
|
||||
12
DesktopIcon/spark-deepin-wine-packager-easy-builder.desktop
Normal file
@@ -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;
|
||||
@@ -1,5 +1,11 @@
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import base64
|
||||
import requests
|
||||
print(requests.get(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0L3NwYXJrLWRlZXBpbi13aW5lLXJ1bm5lci9JbnN0YWxsLnBocD9WZXJzaW9uPQ==").decode("utf-8") + sys.argv[1]).text)
|
||||
# 读取版本号
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
with open(f"{programPath}/information.json") as file:
|
||||
version = json.loads(file.read())["Version"]
|
||||
print(requests.get(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0L3NwYXJrLWRlZXBpbi13aW5lLXJ1bm5lci9JbnN0YWxsLnBocD9WZXJzaW9uPQ==").decode("utf-8") + version).text)
|
||||
10
GetProgramVersion.py
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env python3
|
||||
# 读取程序版本号
|
||||
import os
|
||||
import json
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
try:
|
||||
with open(f"{programPath}/information.json") as file:
|
||||
print(json.loads(file.read())["Version"])
|
||||
except:
|
||||
print("1.0.0")
|
||||
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
BIN
Icon/Program/AboutIcon1.png
Executable file
|
After Width: | Height: | Size: 126 KiB |
BIN
Icon/Program/about-background.png
Executable file
|
After Width: | Height: | Size: 9.9 KiB |
BIN
Icon/QR/Alipay.jpg
Normal file
|
After Width: | Height: | Size: 270 KiB |
BIN
Icon/QR/QQ.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
Icon/QR/Wechat.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
Icon/QR/advertisement0.jpg
Normal file
|
After Width: | Height: | Size: 338 KiB |
BIN
Icon/doge.png
Executable file
|
After Width: | Height: | Size: 11 KiB |
48
InstallBox86-cn.sh
Executable file
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
if [[ `whoami` != root ]]; then
|
||||
echo 请以 root 权限运行
|
||||
echo 按任意键退出
|
||||
read
|
||||
exit 1
|
||||
fi
|
||||
PCArch=`dpkg --print-architecture`
|
||||
if [[ $PCArch != "aarch64" ]] && [[ $PCArch != "arm64" ]]; then
|
||||
echo 非 ARM 架构,无法继续
|
||||
echo 按任意键退出
|
||||
read
|
||||
exit 1
|
||||
fi
|
||||
which box86
|
||||
if [[ $? == 0 ]]; then
|
||||
echo 已安装,结束
|
||||
echo 按回车键退出
|
||||
read
|
||||
exit 1
|
||||
fi
|
||||
echo 使用国内源
|
||||
#sudo wget https://ryanfortner.github.io/box86-debs/box86.list -O /etc/apt/sources.list.d/box86.list
|
||||
sudo bash -c "echo deb http://gfdgdxi.v5.idcfengye.com/spark-deepin-wine-runner/data/box86-debs/debian ./ > /etc/apt/sources.list.d/box86.list"
|
||||
wget -qO- http://gfdgdxi.v5.idcfengye.com/spark-deepin-wine-runner/data/box86-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box86-debs-archive-keyring.gpg
|
||||
echo "adding key..."
|
||||
installBox=box86-generic-arm
|
||||
if [[ $PCArch == "arm64" ]]; then
|
||||
sudo bash -c "echo deb http://gfdgdxi.v5.idcfengye.com/spark-deepin-wine-runner/data/box64-debs/debian ./ > /etc/apt/sources.list.d/box64.list"
|
||||
wget -qO- http://gfdgdxi.v5.idcfengye.com/spark-deepin-wine-runner/data/box64-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box64-debs-archive-keyring.gpg
|
||||
installBox="box86-generic-arm box64-generic-arm"
|
||||
sudo dpkg --add-architecture armhf
|
||||
fi
|
||||
echo " + sudo apt update"
|
||||
sudo apt update
|
||||
sudo apt install binfmt-support -y
|
||||
sudo apt install libc6:armhf -y
|
||||
echo apt 源添加完毕!按回车键继续安装 Box86/Box64,若想要停止安装,则请按 Ctrl+C 或按终端右上角 ×(叉叉)退出
|
||||
echo 按回车键后将会自动安装包名为 box86-generic-arm、box64-generic-arm(box64 要在 aarch64 系统才可安装)的 Box86/Box64 包(适用于通用 ARM 系统)
|
||||
echo 其他特殊版本及其包名可见如下链接(如适用于 rk3399 的版本):
|
||||
echo " - Box64:https://github.com/ryanfortner/box64-debs/"
|
||||
echo " - Box86:https://github.com/ryanfortner/box86-debs/"
|
||||
echo " - Box64(国内镜像):http://gfdgdxi.v5.idcfengye.com/spark-deepin-wine-runner/data/box64-debs"
|
||||
echo " - Box64(国内镜像):http://gfdgdxi.v5.idcfengye.com/spark-deepin-wine-runner/data/box86-debs"
|
||||
read
|
||||
sudo apt install -y $installBox
|
||||
echo 安装完成!按回车键退出
|
||||
read
|
||||
31
InstallBox86-own.sh
Executable file
@@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
if [[ `whoami` != root ]]; then
|
||||
echo 请以 root 权限运行
|
||||
echo 按任意键退出
|
||||
read
|
||||
exit 1
|
||||
fi
|
||||
PCArch=`dpkg --print-architecture`
|
||||
echo 使用国内源
|
||||
#sudo wget https://ryanfortner.github.io/box86-debs/box86.list -O /etc/apt/sources.list.d/box86.list
|
||||
#sudo bash -c "echo deb http://seafile.jyx2048.com:2345/spark-deepin-wine-runner/data/box86-debs/debian ./ > /etc/apt/sources.list.d/box86.list"
|
||||
#wget -qO- http://seafile.jyx2048.com:2345/spark-deepin-wine-runner/data/box86-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box86-debs-archive-keyring.gpg
|
||||
#echo "adding key..."
|
||||
#installBox=box86-generic-arm
|
||||
#if [[ $PCArch == "arm64" ]]; then
|
||||
# sudo bash -c "echo deb http://seafile.jyx2048.com:2345/spark-deepin-wine-runner/data/box64-debs/debian ./ > /etc/apt/sources.list.d/box64.list"
|
||||
# wget -qO- http://seafile.jyx2048.com:2345/spark-deepin-wine-runner/data/box64-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box64-debs-archive-keyring.gpg
|
||||
# installBox="box86-generic-arm box64-generic-arm"
|
||||
# sudo dpkg --add-architecture armhf
|
||||
#fi
|
||||
wget http://deb.box86.wine-runner.gfdgdxi.top/sources/github.sh
|
||||
bash github.sh
|
||||
rm github.sh
|
||||
echo " + sudo apt update"
|
||||
sudo apt update
|
||||
sudo apt install binfmt-support -y
|
||||
sudo apt install libc6:armhf -y
|
||||
sudo apt install -y box86
|
||||
sudo apt install -y box64
|
||||
echo 安装完成!按回车键退出
|
||||
read
|
||||
@@ -19,17 +19,29 @@ if [[ $? == 0 ]]; then
|
||||
read
|
||||
exit 1
|
||||
fi
|
||||
#sudo wget https://itai-nelken.github.io/weekly-box86-debs/debian/box86.list -O /etc/apt/sources.list.d/box86.list
|
||||
echo deb https://code.gitlink.org.cn/gfdgd_xi/weekly-box86-debs/raw/branch/main/debian / > /etc/apt/sources.list.d/box86.list
|
||||
echo 使用 Github 源
|
||||
#sudo wget https://ryanfortner.github.io/box86-debs/box86.list -O /etc/apt/sources.list.d/box86.list
|
||||
sudo wget https://ryanfortner.github.io/box86-debs/box86.list -O /etc/apt/sources.list.d/box86.list
|
||||
wget -qO- https://ryanfortner.github.io/box86-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box86-debs-archive-keyring.gpg
|
||||
echo "adding key..."
|
||||
wget -qO- https://code.gitlink.org.cn/gfdgd_xi/weekly-box86-debs/raw/branch/main/debian/KEY.gpg | sudo apt-key add -
|
||||
installBox=box86
|
||||
installBox=box86-generic-arm
|
||||
if [[ $PCArch == "arm64" ]]; then
|
||||
installBox="box86 box64"
|
||||
sudo wget https://ryanfortner.github.io/box64-debs/box64.list -O /etc/apt/sources.list.d/box64.list
|
||||
wget -qO- https://ryanfortner.github.io/box64-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box64-debs-archive-keyring.gpg
|
||||
installBox="box86-generic-arm box64-generic-arm"
|
||||
sudo dpkg --add-architecture armhf
|
||||
fi
|
||||
echo " + sudo apt update"
|
||||
sudo apt update
|
||||
sudo apt install binfmt-support -y
|
||||
echo apt 源添加完毕!按回车键继续安装 Box86/Box64,若想要停止安装,则请按 Ctrl+C 或按终端右上角 ×(叉叉)退出
|
||||
echo 按回车键后将会自动安装包名为 box86-generic-arm、box64-generic-arm(box64 要在 aarch64 系统才可安装)的 Box86/Box64 包(适用于通用 ARM 系统)
|
||||
echo 其他特殊版本及其包名可见如下链接(如适用于 rk3399 的版本):
|
||||
echo " - Box64:https://github.com/ryanfortner/box64-debs/"
|
||||
echo " - Box86:https://github.com/ryanfortner/box86-debs/"
|
||||
echo " - Box64(国内镜像):https://jihulab.com/gfdgd-xi/box64-debs"
|
||||
echo " - Box64(国内镜像):https://jihulab.com/gfdgd-xi/box86-debs"
|
||||
read
|
||||
sudo apt install -y $installBox
|
||||
echo 安装完成!按回车键退出
|
||||
read
|
||||
4
InstallDeepinWine6OnUbuntu.sh
Normal file
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
wget -O- https://deepin-wine.i-m.dev/setup.sh | sh
|
||||
echo 安装完成,按回车键后退出
|
||||
read
|
||||
14
InstallDeepinWineOnUbuntu.sh
Normal file
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
which git > /dev/null
|
||||
if [[ $? != 0 ]]; then
|
||||
sudo apt install git -y
|
||||
fi
|
||||
cd /tmp
|
||||
if [ -d /tmp/deepin-wine-for-ubuntu ]; then
|
||||
rm -rf /tmp/deepin-wine-for-ubuntu
|
||||
fi
|
||||
git clone https://gitee.com/wszqkzqk/deepin-wine-for-ubuntu.git
|
||||
cd deepin-wine-for-ubuntu
|
||||
bash install.sh
|
||||
echo 安装完成,按回车键退出
|
||||
read
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 作者:gfdgd xi
|
||||
# 版本:2.1.0
|
||||
# 更新时间:2022年08月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
@@ -13,6 +13,7 @@
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import updatekiller
|
||||
import traceback
|
||||
import req as requests
|
||||
def exit():
|
||||
@@ -22,6 +23,7 @@ def exit():
|
||||
sys.exit()
|
||||
# 获取云列表
|
||||
sourcesList = [
|
||||
"http://dll.wine-runner.gfdgdxi.top",
|
||||
"https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/dlls",
|
||||
"http://gfdgdxi.msns.cn/wine-runner-list/dlls"
|
||||
]
|
||||
@@ -30,7 +32,8 @@ print("获取列表中……", end="")
|
||||
try:
|
||||
lists = json.loads(requests.get(f"{url}/list.json").text)
|
||||
except:
|
||||
print("\r列表获取失败!")
|
||||
print("\r列表获取失败!按回车键退出")
|
||||
input()
|
||||
exit()
|
||||
print("\r列表获取成功!")
|
||||
|
||||
@@ -62,7 +65,7 @@ def exit():
|
||||
|
||||
if __name__ == "__main__":
|
||||
if "--help" in sys.argv:
|
||||
print("作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("作者:gfdgd xi")
|
||||
print("版本:1.0.0")
|
||||
print("本程序可以更方便的在 wine 容器中安装指定应用")
|
||||
sys.exit()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 作者:gfdgd xi
|
||||
# 版本:2.1.0
|
||||
# 更新时间:2022年08月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
@@ -14,29 +14,70 @@ import os
|
||||
import sys
|
||||
import json
|
||||
import shutil
|
||||
import updatekiller
|
||||
import req as requests
|
||||
homePath = os.path.expanduser('~')
|
||||
try:
|
||||
sources = [
|
||||
"https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/fonts/list.json",
|
||||
"http://gfdgdxi.msns.cn/wine-runner-list/fonts/list.json"
|
||||
sourcesList = [
|
||||
"http://fonts.wine-runner.gfdgdxi.top/list.json",
|
||||
"https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/fonts/list.json"
|
||||
]
|
||||
fontList = json.loads(requests.get(sources[0]).text)
|
||||
change = False
|
||||
for i in sourcesList:
|
||||
try:
|
||||
fontList = json.loads(requests.get(i).text)
|
||||
change = True
|
||||
break
|
||||
except:
|
||||
pass
|
||||
if not change:
|
||||
fontList = json.loads(requests.get(sourcesList[0]).text)
|
||||
except:
|
||||
print("使用离线列表")
|
||||
fontList = [
|
||||
["fake_simsun.ttc", "https://gitlink.org.cn/api/attachments/392168", "simsun.ttc", "fake_simsun.ttc(会替换容器内的宋体,且与 deepin 有问题)"],
|
||||
["simsun.ttc", "https://gitlink.org.cn/api/attachments/392181", "simsun.ttc", "simsun.ttc"],
|
||||
["simsunb.ttf", "https://gitlink.org.cn/api/attachments/392180", "simsunb.ttf", "simsunb.ttf"],
|
||||
["msyh.ttc", "https://gitlink.org.cn/api/attachments/392182", "msyh.ttc", "msyh.ttc"],
|
||||
["msyhl.ttc", "https://gitlink.org.cn/api/attachments/392184", "msyhl.ttc", "msyhl.ttc"],
|
||||
["msyhbd.ttc", "https://gitlink.org.cn/api/attachments/392183", "msyhbd.ttc", "msyhbd.ttc"]
|
||||
[
|
||||
"fake_simsun.ttc",
|
||||
"http://fonts.wine-runner.gfdgdxi.top/fake_simsun.ttc",
|
||||
"simsun.ttc",
|
||||
"fake_simsun.ttc(会替换容器内的宋体)"
|
||||
],
|
||||
[
|
||||
"simsun.ttc",
|
||||
"http://fonts.wine-runner.gfdgdxi.top/simsun.ttc",
|
||||
"simsun.ttc",
|
||||
"simsun.ttc"
|
||||
],
|
||||
[
|
||||
"simsunb.ttf",
|
||||
"http://fonts.wine-runner.gfdgdxi.top/simsunb.ttf",
|
||||
"simsunb.ttf",
|
||||
"simsunb.ttf"
|
||||
],
|
||||
[
|
||||
"msyh.ttc",
|
||||
"http://fonts.wine-runner.gfdgdxi.top/msyh.ttc",
|
||||
"msyh.ttc",
|
||||
"msyh.ttc"
|
||||
],
|
||||
[
|
||||
"msyhl.ttc",
|
||||
"http://fonts.wine-runner.gfdgdxi.top/msyhl.ttc",
|
||||
"msyhl.ttc",
|
||||
"msyhl.ttc"
|
||||
],
|
||||
[
|
||||
"msyhbd.ttc",
|
||||
"http://fonts.wine-runner.gfdgdxi.top/msyhbd.ttc",
|
||||
"msyhbd.ttc",
|
||||
"msyhbd.ttc"
|
||||
]
|
||||
]
|
||||
def Download(wineBotton: str, id: int) -> int:
|
||||
return os.system(f"aria2c -x 16 -s 16 -d '{wineBotton}/drive_c/windows/Fonts/' -o '{fontList[id][0]}' \"{fontList[id][1]}\"")
|
||||
|
||||
if __name__ == "__main__":
|
||||
if "--help" in sys.argv:
|
||||
print("作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("作者:gfdgd xi")
|
||||
print("版本:1.0.0")
|
||||
print("本程序可以更方便的在 wine 容器中安装指定应用")
|
||||
sys.exit()
|
||||
|
||||
105
InstallFoxpro.py
Executable file
@@ -0,0 +1,105 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi
|
||||
# 版本:2.1.0
|
||||
# 更新时间:2022年08月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 构建
|
||||
###########################################################################################
|
||||
#################
|
||||
# 引入所需的库
|
||||
#################
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import updatekiller
|
||||
import req as requests
|
||||
try:
|
||||
sourcesList = [
|
||||
"http://foxpro.wine-runner.gfdgdxi.top/list.json",
|
||||
"https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/Visual FoxPro/list.json"
|
||||
]
|
||||
change = False
|
||||
for i in sourcesList:
|
||||
try:
|
||||
netList = json.loads(requests.get(i).text)
|
||||
change = True
|
||||
break
|
||||
except:
|
||||
pass
|
||||
if not change:
|
||||
netList = json.loads(requests.get(sourcesList[0]).text)
|
||||
except:
|
||||
print("使用离线列表")
|
||||
netList = [
|
||||
["3.0 Runtime Service Pack 1", "http://foxpro.wine-runner.gfdgdxi.top/VFP3SP1RT.EXE", "VFP3SP1RT.EXE"],
|
||||
["5.0 Runtime Service Pack 1", "http://foxpro.wine-runner.gfdgdxi.top/VFP5SP1RT.EXE", "VFP5SP1RT.EXE"],
|
||||
["6.0 Runtime Service Pack 5", "http://foxpro.wine-runner.gfdgdxi.top/VFP6SP5RT.EXE", "VFP6SP5RT.EXE"],
|
||||
["7.0 Runtime Service Pack 0", "http://foxpro.wine-runner.gfdgdxi.top/VFP7SP0RT.EXE", "VFP7SP0RT.EXE"],
|
||||
["7.0 Runtime Service Pack 1", "http://foxpro.wine-runner.gfdgdxi.top/VFP7SP1RT.EXE", "VFP7SP1RT.EXE"],
|
||||
["8.0 Runtime Service Pack 0", "http://foxpro.wine-runner.gfdgdxi.top/VFP8SP0RT.EXE", "VFP8SP0RT.EXE"],
|
||||
["8.0 Runtime Service Pack 1", "http://foxpro.wine-runner.gfdgdxi.top/VFP8SP1RT.EXE", "VFP8SP1RT.EXE"],
|
||||
["9.0 Runtime Service Pack 1", "http://foxpro.wine-runner.gfdgdxi.top/VFP9SP1RT.EXE", "VFP9SP1RT.EXE"],
|
||||
["9.0 Runtime Service Pack 2 with Hotfixes", "http://foxpro.wine-runner.gfdgdxi.top/VFP9SP2RT.EXE", "VFP9SP2RT.EXE"]
|
||||
]
|
||||
def Download(wineBotton: str, id: int, wine: str) -> int:
|
||||
try:
|
||||
os.remove(f"/tmp/deepin-wine-runner-FoxPro/{netList[id][2]}")
|
||||
except:
|
||||
pass
|
||||
os.system(f"aria2c -x 16 -s 16 -d '/tmp/deepin-wine-runner-FoxPro' -o '{netList[id][2]}' \"{netList[id][1]}\"")
|
||||
return os.system(f"WINEPREFIX='{wineBotton}' {wine} '/tmp/deepin-wine-runner-FoxPro/{netList[id][2]}'")
|
||||
|
||||
if __name__ == "__main__":
|
||||
if "--help" in sys.argv:
|
||||
print("作者:gfdgd xi")
|
||||
print("版本:1.0.0")
|
||||
print("本程序可以更方便的在 wine 容器中安装 Visual FoxPro")
|
||||
sys.exit()
|
||||
if len(sys.argv) <= 2 or sys.argv[1] == "" or sys.argv[2] == "":
|
||||
print("您未指定需要安装 Visual FoxPro 的容器和使用的 wine,无法继续")
|
||||
print("参数:")
|
||||
print("XXX 参数一 参数二 参数三(可略)")
|
||||
print("参数一为需要安装的容器,参数二为需要使用的wine,参数三为是否缓存(可略),三个参数位置不能颠倒")
|
||||
sys.exit()
|
||||
|
||||
homePath = os.path.expanduser('~')
|
||||
print('''
|
||||
mmmmmm mmmmm
|
||||
# mmm m m # "# m mm mmm
|
||||
#mmmmm #" "# #m# #mmm#" #" " #" "#
|
||||
# # # m#m # # # #
|
||||
# "#m#" m" "m # # "#m#"
|
||||
|
||||
|
||||
''')
|
||||
|
||||
print("请选择以下的 Visual FoxPro 进行安装(不保证能正常安装运行)")
|
||||
for i in range(0, len(netList)):
|
||||
print(f"{i} Visual FoxPro {netList[i][0]}")
|
||||
while True:
|
||||
try:
|
||||
choose = input("请输入要选择的 Visual FoxPro 版本(输入“exit”退出):").lower()
|
||||
if choose == "exit":
|
||||
break
|
||||
choose = int(choose)
|
||||
except:
|
||||
print("输入错误,请重新输入")
|
||||
continue
|
||||
if 0 <= choose and choose < len(netList):
|
||||
break
|
||||
if choose == "exit":
|
||||
exit()
|
||||
print(f"您选择了 Visual FoxPro {netList[choose][0]}")
|
||||
if os.path.exists(f"{homePath}/.cache/deepin-wine-runner/vcpp/{netList[choose][2]}"):
|
||||
print("已经缓存,使用本地版本")
|
||||
os.system(f"WINEPREFIX='{sys.argv[1]}' {sys.argv[2]} '{homePath}/.cache/deepin-wine-runner/vcpp/{netList[choose][2]}'")
|
||||
input("安装结束,按回车键退出")
|
||||
exit()
|
||||
print("开始下载")
|
||||
os.system(f"rm -rf '{homePath}/.cache/deepin-wine-runner/vcpp/{netList[choose][2]}'")
|
||||
os.system(f"mkdir -p '{homePath}/.cache/deepin-wine-runner/vcpp'")
|
||||
os.system(f"aria2c -x 16 -s 16 -d '{homePath}/.cache/deepin-wine-runner/vcpp' -o '{netList[choose][2]}' \"{netList[choose][1]}\"")
|
||||
os.system(f"WINEPREFIX='{sys.argv[1]}' {sys.argv[2]} '{homePath}/.cache/deepin-wine-runner/vcpp/{netList[choose][2]}'")
|
||||
input("安装结束,按回车键退出")
|
||||
6
InstallLat.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
echo lat只能在loongarch架构安装
|
||||
sudo apt update
|
||||
sudo apt install lat
|
||||
echo 按回车键退出
|
||||
read
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 作者:gfdgd xi
|
||||
# 版本:2.1.0
|
||||
# 更新时间:2022年08月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
@@ -12,11 +12,12 @@
|
||||
#################
|
||||
import os
|
||||
import sys
|
||||
import updatekiller
|
||||
import traceback
|
||||
import pyquery
|
||||
|
||||
if "--help" in sys.argv:
|
||||
print("作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("作者:gfdgd xi")
|
||||
print("版本:1.0.0")
|
||||
print("本程序可以更方便的在 wine 容器中安装 mono、gecko")
|
||||
sys.exit()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 作者:gfdgd xi
|
||||
# 版本:2.1.0
|
||||
# 更新时间:2022年08月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
@@ -13,27 +13,40 @@
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import updatekiller
|
||||
import req as requests
|
||||
try:
|
||||
sourcesList = [
|
||||
"https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/msxml/list.json",
|
||||
"http://gfdgdxi.msns.cn/wine-runner-list/msxml/list.json"
|
||||
"http://msxml.wine-runner.gfdgdxi.top/list.json",
|
||||
"https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/msxml/list.json"
|
||||
]
|
||||
msxmlList = json.loads(requests.get(sourcesList[0]).text)
|
||||
change = False
|
||||
for i in sourcesList:
|
||||
try:
|
||||
msxmlList = json.loads(requests.get(i).text)
|
||||
change = True
|
||||
break
|
||||
except:
|
||||
pass
|
||||
if not change:
|
||||
msxmlList = json.loads(requests.get(sourcesList[0]).text)
|
||||
except:
|
||||
print("使用离线列表")
|
||||
msxmlList = [
|
||||
["MSXML 4.0 SP2", "https://www.gitlink.org.cn/api/attachments/390679?gfdgd_xi", "msxml6.0.msi"],
|
||||
["MSXML 4.0 SP3", "https://www.gitlink.org.cn/api/attachments/390678?gfdgd_xi", "msxml4.0SP3.msi"],
|
||||
["MSXML 6.0", "https://www.gitlink.org.cn/api/attachments/390681?gfdgd_xi", "msxml6_x64.msi"]
|
||||
["MSXML 4.0 SP2", "http://msxml.wine-runner.gfdgdxi.top/msxml6.0.msi", "msxml6.0.msi"],
|
||||
["MSXML 4.0 SP3", "http://msxml.wine-runner.gfdgdxi.top/msxml4.0SP3.msi", "msxml4.0SP3.msi"],
|
||||
["MSXML 6.0", "http://msxml.wine-runner.gfdgdxi.top/msxml6_x64.msi", "msxml6_x64.msi"],
|
||||
["MSXML 3.0", "http://msxml.wine-runner.gfdgdxi.top/msxml3.msi", "msxml3.msi"]
|
||||
]
|
||||
|
||||
|
||||
def Download(wineBotton: str, id: int, wine: str):
|
||||
os.system(f"aria2c -x 16 -s 16 -d \"/tmp/deepin-wine-runner-msxml/\" -o \"{msxmlList[id][2]}\" \"{msxmlList[id][1]}\"")
|
||||
return os.system(f"WINEPREFIX='{wineBotton}' {wine} msiexec /i \"/tmp/deepin-wine-runner-msxml/{msxmlList[id][2]}\"")
|
||||
|
||||
if __name__ == "__main__":
|
||||
if "--help" in sys.argv:
|
||||
print("作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("作者:gfdgd xi")
|
||||
print("版本:1.0.0")
|
||||
print("本程序可以更方便的在 wine 容器中安装 MSXML")
|
||||
sys.exit()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 作者:gfdgd xi
|
||||
# 版本:2.1.0
|
||||
# 更新时间:2022年08月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
@@ -13,14 +13,26 @@
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import updatekiller
|
||||
import req as requests
|
||||
try:
|
||||
sourcesList = [
|
||||
"https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/net/list.json",
|
||||
"http://net.wine-runner.gfdgdxi.top/list.json",
|
||||
"http://gfdgdxi.msns.cn/wine-runner-list/net/list.json"
|
||||
]
|
||||
netList = json.loads(requests.get(sourcesList[0]).text)
|
||||
change = False
|
||||
for i in sourcesList:
|
||||
try:
|
||||
netList = json.loads(requests.get(i).text)
|
||||
change = True
|
||||
break
|
||||
except:
|
||||
pass
|
||||
if not change:
|
||||
netList = json.loads(requests.get(sourcesList[0]).text)
|
||||
except:
|
||||
print("使用离线列表")
|
||||
netList = [
|
||||
["Microsoft® .NET Framework 1.1 版可转散发套件", "https://download.microsoft.com/download/8/2/7/827bb1ef-f5e1-4464-9788-40ef682930fd/dotnetfx.exe"],
|
||||
["Microsoft .NET Framework 2.0 Service Pack 1 (x86)", "https://download.microsoft.com/download/0/8/c/08c19fa4-4c4f-4ffb-9d6c-150906578c9e/NetFx20SP1_x86.exe"],
|
||||
@@ -56,7 +68,7 @@ def Download(wineBotton: str, id: int, wine: str):
|
||||
|
||||
if __name__ == "__main__":
|
||||
if "--help" in sys.argv:
|
||||
print("作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("作者:gfdgd xi")
|
||||
print("版本:1.0.0")
|
||||
print("本程序可以更方便的在 wine 容器中安装 .net framework")
|
||||
sys.exit()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
# 使用系统默认的 bash 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 作者:gfdgd xi
|
||||
# 版本:2.2.0
|
||||
# 更新时间:2022年09月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
@@ -17,7 +17,9 @@ echo '" #"# # # #" # #" # #mmmm# # #'
|
||||
echo ' ## ##" # # # #"""" # # # #'
|
||||
echo ' # # mm#mm # # "#mm" # # #mm#"'
|
||||
echo ' # '
|
||||
|
||||
echo
|
||||
echo "WineHQ 官网:https://wiki.winehq.org/"
|
||||
echo 当前使用国内镜像源:https://mirrors-i.tuna.tsinghua.edu.cn/help/wine-builds/
|
||||
|
||||
ubuntuSource=(
|
||||
"echo deb [arch=amd64,i386 signed-by=/usr/share/keyrings/winehq-archive.key] https://mirrors.tuna.tsinghua.edu.cn/wine-builds/ubuntu/ jammy main | sudo tee /etc/apt/sources.list.d/winehq.list"
|
||||
@@ -28,11 +30,11 @@ ubuntuSource=(
|
||||
debianSource=(
|
||||
"echo deb [arch=amd64,i386 signed-by=/usr/share/keyrings/winehq-archive.key] https://mirrors.tuna.tsinghua.edu.cn/wine-builds/debian/ buster main | sudo tee /etc/apt/sources.list.d/winehq.list"
|
||||
"echo deb [arch=amd64,i386 signed-by=/usr/share/keyrings/winehq-archive.key] https://mirrors.tuna.tsinghua.edu.cn/wine-builds/debian/ bullseye main | sudo tee /etc/apt/sources.list.d/winehq.list"
|
||||
"sudo wget -nc -P /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/bookworm/winehq-bookworm.sources"
|
||||
"echo deb [arch=amd64,i386 signed-by=/usr/share/keyrings/winehq-archive.key] https://mirrors.tuna.tsinghua.edu.cn/wine-builds/debian/ bookworm main | sudo tee /etc/apt/sources.list.d/winehq.list"
|
||||
)
|
||||
# 选择发行版
|
||||
echo "WineHQ 官网:https://wiki.winehq.org/"
|
||||
echo "国内镜像源:https://mirrors-i.tuna.tsinghua.edu.cn/help/wine-builds/"
|
||||
#echo "WineHQ 官网:https://wiki.winehq.org/"
|
||||
#echo "国内镜像源:https://mirrors-i.tuna.tsinghua.edu.cn/help/wine-builds/"
|
||||
echo
|
||||
echo "选择发行版:"
|
||||
echo "0. Debian"
|
||||
@@ -43,7 +45,7 @@ echo "选择系统版本"
|
||||
if [ $system = "0" ]; then
|
||||
echo "0. Debian 10 (Buster)"
|
||||
echo "1. Debian 11 (Bullseye)"
|
||||
echo "2. Debian Testing (Bookworm)"
|
||||
echo "2. Debian 12 (Bookworm)"
|
||||
fi
|
||||
if [ $system = "1" ]; then
|
||||
echo "0. Ubuntu 22.04"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
# 使用系统默认的 bash 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 作者:gfdgd xi
|
||||
# 版本:2.2.0
|
||||
# 更新时间:2022年09月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
@@ -17,17 +17,19 @@ echo '" #"# # # #" # #" # #mmmm# # #'
|
||||
echo ' ## ##" # # # #"""" # # # #'
|
||||
echo ' # # mm#mm # # "#mm" # # #mm#"'
|
||||
echo ' # '
|
||||
|
||||
echo
|
||||
echo "WineHQ 官网:https://wiki.winehq.org/"
|
||||
echo 当前不使用国内镜像源
|
||||
|
||||
ubuntuSource=(
|
||||
"echo deb [arch=amd64,i386 signed-by=/usr/share/keyrings/winehq-archive.key] https://mirrors.tuna.tsinghua.edu.cn/wine-builds/ubuntu/ jammy main | sudo tee /etc/apt/sources.list.d/winehq.list"
|
||||
"sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources"
|
||||
"sudo wget -nc -P /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/impish/winehq-impish.sources"
|
||||
"echo deb [arch=amd64,i386 signed-by=/usr/share/keyrings/winehq-archive.key] https://mirrors.tuna.tsinghua.edu.cn/wine-builds/ubuntu/ focal main | sudo tee /etc/apt/sources.list.d/winehq.list"
|
||||
"echo deb [arch=amd64,i386 signed-by=/usr/share/keyrings/winehq-archive.key] https://mirrors.tuna.tsinghua.edu.cn/wine-builds/ubuntu/ bionic main | sudo tee /etc/apt/sources.list.d/winehq.list"
|
||||
"sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/focal/winehq-focal.sources"
|
||||
"sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/bionic/winehq-bionic.sources"
|
||||
)
|
||||
debianSource=(
|
||||
"echo deb [arch=amd64,i386 signed-by=/usr/share/keyrings/winehq-archive.key] https://mirrors.tuna.tsinghua.edu.cn/wine-builds/debian/ buster main | sudo tee /etc/apt/sources.list.d/winehq.list"
|
||||
"echo deb [arch=amd64,i386 signed-by=/usr/share/keyrings/winehq-archive.key] https://mirrors.tuna.tsinghua.edu.cn/wine-builds/debian/ bullseye main | sudo tee /etc/apt/sources.list.d/winehq.list"
|
||||
"sudo wget -nc -P /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/buster/winehq-buster.sources"
|
||||
"sudo wget -nc -P /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/bullseye/winehq-bullseye.sources"
|
||||
"sudo wget -nc -P /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/bookworm/winehq-bookworm.sources"
|
||||
)
|
||||
# 选择发行版
|
||||
@@ -43,7 +45,7 @@ echo "选择系统版本"
|
||||
if [ $system = "0" ]; then
|
||||
echo "0. Debian 10 (Buster)"
|
||||
echo "1. Debian 11 (Bullseye)"
|
||||
echo "2. Debian Testing (Bookworm)"
|
||||
echo "2. Debian 12 (Bookworm)"
|
||||
fi
|
||||
if [ $system = "1" ]; then
|
||||
echo "0. Ubuntu 22.04"
|
||||
@@ -61,7 +63,9 @@ read programVersion
|
||||
# 初步配置
|
||||
sudo apt-key del "D43F 6401 4536 9C51 D786 DDEA 76F1 A20F F987 672F"
|
||||
sudo dpkg --add-architecture i386
|
||||
sudo wget -nc -O /usr/share/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
|
||||
#sudo wget -nc -O /usr/share/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
|
||||
sudo mkdir -pm755 /etc/apt/keyrings
|
||||
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
|
||||
# 检测 apt-fast 或 ss-apt-fast 是否存在
|
||||
apt="apt"
|
||||
which apt-fast > /dev/null
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 作者:gfdgd xi
|
||||
# 版本:2.1.0
|
||||
# 更新时间:2022年08月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
@@ -13,14 +13,26 @@
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import updatekiller
|
||||
import req as requests
|
||||
try:
|
||||
sourcesList = [
|
||||
"http://other.wine-runner.gfdgdxi.top/list.json",
|
||||
"https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/other/list.json",
|
||||
"http://gfdgdxi.msns.cn/wine-runner-list/other/list.json"
|
||||
]
|
||||
msxmlList = json.loads(requests.get(sourcesList[0]).text)
|
||||
change = False
|
||||
for i in sourcesList:
|
||||
try:
|
||||
msxmlList = json.loads(requests.get(i).text)
|
||||
change = True
|
||||
break
|
||||
except:
|
||||
pass
|
||||
if not change:
|
||||
msxmlList = json.loads(requests.get(sourcesList[0]).text)
|
||||
except:
|
||||
print("使用离线列表")
|
||||
msxmlList = [
|
||||
["Windows Script 5.7 for Windows XP", "https://download.microsoft.com/download/f/f/e/ffea3abf-b55f-4924-b5a5-bde0805ad67c/scripten.exe", "exe", "scripten.exe"],
|
||||
["Windows Management Instrumentation 1.50.1131", "https://www.gitlink.org.cn/api/attachments/390680", "exe", "WMITools.exe"]
|
||||
@@ -38,7 +50,7 @@ def Download(wineBotton: str, id: int, wine: str) -> int:
|
||||
return os.system(f"WINEPREFIX='{wineBotton}' {wine} msiexec /i '/tmp/deepin-wine-runner-other/{msxmlList[id][3]}'")
|
||||
if __name__ == "__main__":
|
||||
if "--help" in sys.argv:
|
||||
print("作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("作者:gfdgd xi")
|
||||
print("版本:1.0.0")
|
||||
print("本程序可以更方便的在 wine 容器中安装运行库")
|
||||
sys.exit()
|
||||
@@ -65,6 +77,8 @@ if __name__ == "__main__":
|
||||
while True:
|
||||
try:
|
||||
choose = input("请输入要选择要安装的应用(输入“exit”退出):").lower()
|
||||
if choose == "exit":
|
||||
break
|
||||
choose = int(choose)
|
||||
except:
|
||||
print("输入错误,请重新输入")
|
||||
|
||||
@@ -1,12 +1,28 @@
|
||||
#!/bin/bash
|
||||
# 判断是否有安装 Qemu User
|
||||
which qemu-i386 > /dev/null
|
||||
if [[ !$? ]]; then
|
||||
if [[ $? == 0 ]]; then
|
||||
echo 您已安装过 Qemu User,按回车键后退出
|
||||
read
|
||||
exit 1
|
||||
fi
|
||||
# 判断是不是 Fedora
|
||||
if [[ -f /etc/fedora-release ]]; then
|
||||
sudo yum update -y
|
||||
sudo yum install qemu-user qemu-user-static -y
|
||||
echo 安装完成,按回车键后退出
|
||||
read
|
||||
exit
|
||||
fi
|
||||
# 判断是不是 Arch Linux
|
||||
if [[ -f /etc/arch-release ]]; then
|
||||
sudo pacman -Syu
|
||||
sudo pacman -S qemu-user qemu-user-static --noconfirm
|
||||
echo 安装完成,按回车键后退出
|
||||
read
|
||||
exit
|
||||
fi
|
||||
sudo apt update
|
||||
sudo apt install binfmt-support qemu-user qemu-user-static -y
|
||||
echo 安装完成,按回车键后退出
|
||||
read
|
||||
read
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#!/bin/bash
|
||||
arch=amd64
|
||||
libPath=/usr/lib/x86_64-linux-gnu/
|
||||
version=1.0.0
|
||||
url="https://code.gitlink.org.cn/gfdgd_xi/runtime-for-qemu/raw/branch/master/$arch-runtime-for-qemu_${version}_all.deb"
|
||||
version=1.0.1
|
||||
url="https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/$arch-runtime-for-qemu_${version}_all.deb"
|
||||
fileName=`basename $url`
|
||||
|
||||
if [[ -d $libPath ]]; then
|
||||
@@ -16,5 +16,6 @@ fi
|
||||
aria2c -x 16 -s 16 -c $url -d /tmp -o $fileName
|
||||
sudo apt update
|
||||
sudo dpkg -i /tmp/$fileName
|
||||
sudo apt install qemu-user qemu-user-static binfmt-support -y
|
||||
echo 安装完成,按回车键退出
|
||||
read
|
||||
read
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
arch=arm64
|
||||
libPath=/usr/lib/aarch64-linux-gnu
|
||||
version=1.0.0
|
||||
url="https://code.gitlink.org.cn/gfdgd_xi/runtime-for-qemu/raw/branch/master/$arch-runtime-for-qemu_${version}_all.deb"
|
||||
url="https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/$arch-runtime-for-qemu_${version}_all.deb"
|
||||
fileName=`basename $url`
|
||||
|
||||
if [[ -d $libPath ]]; then
|
||||
@@ -15,6 +15,7 @@ if [[ -f /tmp/$fileName ]]; then
|
||||
fi
|
||||
aria2c -x 16 -s 16 -c $url -d /tmp -o $fileName
|
||||
sudo apt update
|
||||
sudo apt install qemu-user qemu-user-static binfmt-support -y
|
||||
sudo dpkg -i /tmp/$fileName
|
||||
echo 安装完成,按回车键退出
|
||||
read
|
||||
read
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
arch=armhf
|
||||
libPath=/usr/lib/arm-linux-gnueabihf/
|
||||
version=1.0.0
|
||||
url="https://code.gitlink.org.cn/gfdgd_xi/runtime-for-qemu/raw/branch/master/$arch-runtime-for-qemu_${version}_all.deb"
|
||||
url="https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/$arch-runtime-for-qemu_${version}_all.deb"
|
||||
fileName=`basename $url`
|
||||
|
||||
if [[ -d $libPath ]]; then
|
||||
@@ -15,6 +15,7 @@ if [[ -f /tmp/$fileName ]]; then
|
||||
fi
|
||||
aria2c -x 16 -s 16 -c $url -d /tmp -o $fileName
|
||||
sudo apt update
|
||||
sudo apt install qemu-user qemu-user-static binfmt-support -y
|
||||
sudo dpkg -i /tmp/$fileName
|
||||
echo 安装完成,按回车键退出
|
||||
read
|
||||
read
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
arch=i386
|
||||
libPath=/usr/lib/i386-linux-gnu/
|
||||
version=1.0.0
|
||||
url="https://code.gitlink.org.cn/gfdgd_xi/runtime-for-qemu/raw/branch/master/$arch-runtime-for-qemu_${version}_all.deb"
|
||||
url="https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/$arch-runtime-for-qemu_${version}_all.deb"
|
||||
fileName=`basename $url`
|
||||
|
||||
if [[ -d $libPath ]]; then
|
||||
@@ -15,6 +15,7 @@ if [[ -f /tmp/$fileName ]]; then
|
||||
fi
|
||||
aria2c -x 16 -s 16 -c $url -d /tmp -o $fileName
|
||||
sudo apt update
|
||||
sudo apt install qemu-user qemu-user-static binfmt-support -y
|
||||
sudo dpkg -i /tmp/$fileName
|
||||
echo 安装完成,按回车键退出
|
||||
read
|
||||
read
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
arch=mips64el
|
||||
libPath=/usr/lib/mips64el-linux-gnuabi64
|
||||
version=1.0.0
|
||||
url="https://code.gitlink.org.cn/gfdgd_xi/runtime-for-qemu/raw/branch/master/$arch-runtime-for-qemu_${version}_all.deb"
|
||||
url="https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/$arch-runtime-for-qemu_${version}_all.deb"
|
||||
fileName=`basename $url`
|
||||
|
||||
if [[ -d $libPath ]]; then
|
||||
@@ -15,6 +15,7 @@ if [[ -f /tmp/$fileName ]]; then
|
||||
fi
|
||||
aria2c -x 16 -s 16 -c $url -d /tmp -o $fileName
|
||||
sudo apt update
|
||||
sudo apt install qemu-user qemu-user-static binfmt-support -y
|
||||
sudo dpkg -i /tmp/$fileName
|
||||
echo 安装完成,按回车键退出
|
||||
read
|
||||
read
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
arch=ppc64el
|
||||
libPath=/usr/lib/powerpc64le-linux-gnu/
|
||||
version=1.0.0
|
||||
url="https://code.gitlink.org.cn/gfdgd_xi/runtime-for-qemu/raw/branch/master/$arch-runtime-for-qemu_${version}_all.deb"
|
||||
url="https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/$arch-runtime-for-qemu_${version}_all.deb"
|
||||
fileName=`basename $url`
|
||||
|
||||
if [[ -d $libPath ]]; then
|
||||
@@ -15,6 +15,7 @@ if [[ -f /tmp/$fileName ]]; then
|
||||
fi
|
||||
aria2c -x 16 -s 16 -c $url -d /tmp -o $fileName
|
||||
sudo apt update
|
||||
sudo apt install qemu-user qemu-user-static binfmt-support -y
|
||||
sudo dpkg -i /tmp/$fileName
|
||||
echo 安装完成,按回车键退出
|
||||
read
|
||||
read
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
arch=riscv64
|
||||
libPath=/usr/lib/riscv64-linux-gnu/
|
||||
version=1.0.0
|
||||
url="https://code.gitlink.org.cn/gfdgd_xi/runtime-for-qemu/raw/branch/master/$arch-runtime-for-qemu_${version}_all.deb"
|
||||
url="https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/$arch-runtime-for-qemu_${version}_all.deb"
|
||||
fileName=`basename $url`
|
||||
|
||||
if [[ -d $libPath ]]; then
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
arch=s390x
|
||||
libPath=/usr/lib/s390x-linux-gnu/
|
||||
version=1.0.0
|
||||
url="https://code.gitlink.org.cn/gfdgd_xi/runtime-for-qemu/raw/branch/master/$arch-runtime-for-qemu_${version}_all.deb"
|
||||
url="https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/$arch-runtime-for-qemu_${version}_all.deb"
|
||||
fileName=`basename $url`
|
||||
|
||||
if [[ -d $libPath ]]; then
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 作者:gfdgd xi
|
||||
# 版本:2.1.0
|
||||
# 更新时间:2022年10月05日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
@@ -13,20 +13,31 @@
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import updatekiller
|
||||
import req as requests
|
||||
try:
|
||||
sourcesList = [
|
||||
"https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/vb/list.json",
|
||||
"http://gfdgdxi.msns.cn/wine-runner-list/vb/list.json"
|
||||
"http://vb.wine-runner.gfdgdxi.top/list.json",
|
||||
"https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/vb/list.json"
|
||||
]
|
||||
netList = json.loads(requests.get().text)
|
||||
change = False
|
||||
for i in sourcesList:
|
||||
try:
|
||||
netList = json.loads(requests.get(i).text)
|
||||
change = True
|
||||
break
|
||||
except:
|
||||
pass
|
||||
if not change:
|
||||
netList = json.loads(requests.get(sourcesList[0]).text)
|
||||
except:
|
||||
print("使用离线列表")
|
||||
netList = [
|
||||
["Visual Basic 1(DOS application)", "https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/vb/vbrun100.exe", "vbrun100.exe"],
|
||||
["Visual Basic 2(DOS application)", "https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/vb/vbrun200.exe", "vbrun200.exe"],
|
||||
["Visual Basic 3", "https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/vb/vb3run.exe", "vb3run.exe"],
|
||||
["Visual Basic 4", "https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/vb/vb4run.exe", "vb4run.exe"],
|
||||
["Visual Basic 6", "https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/vb/vbrun60sp4.exe", "vbrun60sp4.exe"]
|
||||
["Visual Basic 1", "http://vb.wine-runner.gfdgdxi.top/vbrun100.exe", "vbrun100.exe"],
|
||||
["Visual Basic 2", "http://vb.wine-runner.gfdgdxi.top/vbrun200.exe", "vbrun200.exe"],
|
||||
["Visual Basic 3", "http://vb.wine-runner.gfdgdxi.top/vb3run.exe", "vb3run.exe"],
|
||||
["Visual Basic 4", "http://vb.wine-runner.gfdgdxi.top/vb4run.exe", "vb4run.exe"],
|
||||
["Visual Basic 6", "http://vb.wine-runner.gfdgdxi.top/vbrun60sp4.exe", "vbrun60sp4.exe"]
|
||||
]
|
||||
def Download(wineBotton: str, id: int, wine: str) -> int:
|
||||
try:
|
||||
@@ -38,7 +49,7 @@ def Download(wineBotton: str, id: int, wine: str) -> int:
|
||||
|
||||
if __name__ == "__main__":
|
||||
if "--help" in sys.argv:
|
||||
print("作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("作者:gfdgd xi")
|
||||
print("版本:1.0.0")
|
||||
print("本程序可以更方便的在 wine 容器中安装 Visual Basic Runtime")
|
||||
sys.exit()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 作者:gfdgd xi
|
||||
# 版本:2.1.0
|
||||
# 更新时间:2022年08月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
@@ -13,16 +13,27 @@
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import updatekiller
|
||||
import req as requests
|
||||
try:
|
||||
sourcesList = [
|
||||
"https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/vscpp/list.json",
|
||||
"http://gfdgdxi.msns.cn/wine-runner-list/vscpp/list.json"
|
||||
"http://vcpp.wine-runner.gfdgdxi.top/list.json",
|
||||
"https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/vscpp/list.json"
|
||||
]
|
||||
netList = json.loads(requests.get(sourcesList[0]).text)
|
||||
change = False
|
||||
for i in sourcesList:
|
||||
try:
|
||||
netList = json.loads(requests.get(i).text)
|
||||
change = True
|
||||
break
|
||||
except:
|
||||
pass
|
||||
if not change:
|
||||
netList = json.loads(requests.get(sourcesList[0]).text)
|
||||
except:
|
||||
print("使用离线列表")
|
||||
netList = [
|
||||
["VC6 运行库", "https://code.gitlink.org.cn/gfdgd_xi/wine-runner-list/raw/branch/master/vscpp/VC6RedistSetup_deu.exe", "VC6RedistSetup_deu.exe"],
|
||||
["VC6 运行库", "http://vcpp.wine-runner.gfdgdxi.top/VC6RedistSetup_deu.exe", "VC6RedistSetup_deu.exe"],
|
||||
["2005 Service Pack 1 Redistributable Package MFC 安全更新", "https://download.microsoft.com/download/4/A/2/4A22001F-FA3B-4C13-BF4E-42EC249D51C4/vcredist_x86.EXE", "vcredist05_x86.exe"],
|
||||
["2008 (VC++ 9.0) SP1 (不再支持) X86", "https://download.microsoft.com/download/5/D/8/5D8C65CB-C849-4025-8E95-C3966CAFD8AE/vcredist_x86.exe", "vcredist08_x86.exe"],
|
||||
["2008 (VC++ 9.0) SP1 (不再支持) X64", "https://download.microsoft.com/download/5/D/8/5D8C65CB-C849-4025-8E95-C3966CAFD8AE/vcredist_x64.exe", "vcredist08_x86.exe"],
|
||||
@@ -46,7 +57,7 @@ def Download(wineBotton: str, id: int, wine: str) -> int:
|
||||
|
||||
if __name__ == "__main__":
|
||||
if "--help" in sys.argv:
|
||||
print("作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("作者:gfdgd xi")
|
||||
print("版本:1.0.0")
|
||||
print("本程序可以更方便的在 wine 容器中安装 Visual Studio C++")
|
||||
sys.exit()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 作者:gfdgd xi
|
||||
# 版本:2.1.0
|
||||
# 更新时间:2022年08月25日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
@@ -11,6 +11,7 @@
|
||||
# 引入所需的库
|
||||
#################
|
||||
import os
|
||||
import updatekiller
|
||||
|
||||
def InstallWithDeepinSource(program):
|
||||
os.system(f"sudo cp '{programPath}/deepin.list' /etc/apt/sources.list.d/deepin20-withwinerunner.list")
|
||||
@@ -68,7 +69,8 @@ m m "
|
||||
for i in [
|
||||
["原版 Wine(Wine64)", "wine"],
|
||||
["deepin-wine5-stable", "deepin-wine5-stable"],
|
||||
["deepin-wine6-stable", "deepin-wine6-stable"]
|
||||
["deepin-wine6-stable", "deepin-wine6-stable"],
|
||||
["deepin-wine8-stable", "deepin-wine8-stable"]
|
||||
]:
|
||||
if not os.system(f"which {i[1]} > /dev/null"):
|
||||
continue
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# 使用系统默认的 python3 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 作者:gfdgd xi
|
||||
# 版本:2.5.0
|
||||
# 更新时间:2022年11月15日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
@@ -12,6 +12,7 @@
|
||||
#################
|
||||
import os
|
||||
import webbrowser
|
||||
import updatekiller
|
||||
|
||||
def YesOrNo():
|
||||
if input().replace(" ", "").upper() == "N":
|
||||
|
||||
5
LANG/Makefile
Normal file
@@ -0,0 +1,5 @@
|
||||
build:
|
||||
lrelease deepin-wine-packager-en_US.ts -qm deepin-wine-packager-en_US.qm
|
||||
lrelease deepin-wine-runner-en_US.ts -qm deepin-wine-runner-en_US.qm
|
||||
lrelease installwine-en_US.ts -qm installwine-en_US.qm
|
||||
lrelease virtualmachine-en_US.ts -qm virtualmachine-en_US.qm
|
||||
76
Makefile
@@ -1,31 +1,69 @@
|
||||
build:
|
||||
make package -j$(nproc)
|
||||
make package-deb -j$(nproc)
|
||||
|
||||
replace:
|
||||
rm Icon/Program/*
|
||||
rm Icon/*.svg
|
||||
rm Icon/doge.png
|
||||
echo "[[], []]" > IconList.json
|
||||
|
||||
clean:
|
||||
python3 RemovePycacheFile.py
|
||||
rm *.deb -fv
|
||||
rm *.pkg.tar* -fv
|
||||
cd VM-source ; qmake . ; make clean
|
||||
rm VM-source/VirtualMachine -rfv
|
||||
rm -rfv VM-source/.qmake.stash
|
||||
|
||||
package:
|
||||
#package-rpm:
|
||||
|
||||
package-rpm:
|
||||
sudo rm -rf /root/rpmbuild/
|
||||
sudo rm -rf /tmp/deep-wine-runner-builder-source
|
||||
mkdir /tmp/deep-wine-runner-builder-source -pv
|
||||
cp * /tmp/deep-wine-runner-builder-source -rv
|
||||
cp rpm/spark-deepin-wine-runner.spec /tmp/spark-deepin-wine-runner.spec
|
||||
bash builddeb/ChangeDebVersion.sh
|
||||
sudo rpmbuild -bb /tmp/spark-deepin-wine-runner.spec --target noarch
|
||||
sudo bash -c 'cp /root/rpmbuild/RPMS/noarch/spark-deepin-wine-runner-*.rpm .'
|
||||
sudo rm -rf /root/rpmbuild/
|
||||
sudo rm -rf /tmp/deep-wine-runner-builder-source
|
||||
|
||||
package-pkg:
|
||||
#sudo debtap -u
|
||||
sudo debtap -Q spark-deepin-wine-runner.deb
|
||||
sudo debtap -Q spark-deepin-wine-runner-ace.deb
|
||||
|
||||
package-deb:
|
||||
#cd VM-source && qmake
|
||||
#cd VM-source && make
|
||||
#cd wine && make
|
||||
make clean -j$(nproc)
|
||||
mkdir deb/opt/apps/deepin-wine-runner/LANG -pv
|
||||
cp -rv helperset deb/opt/apps/deepin-wine-runner/
|
||||
cp -rv VM-source/VirtualMachine VM
|
||||
#cp -rv VM-source/VirtualMachine VM
|
||||
cp -rv VM-source/deepin-wine-runner.svg VM
|
||||
cp -rv VM-source/Windows7X64Auto.iso VM
|
||||
cp -rv VM-source/Windows7X86Auto.iso VM
|
||||
cp -rv VM-source/test.qcow2 VM
|
||||
cp -rv VM-source/*.fd VM
|
||||
cp -rv wine/ deb/opt/apps/deepin-wine-runner/
|
||||
cp -rv Test/ deb/opt/apps/deepin-wine-runner/
|
||||
cp -rv information.json package-script
|
||||
zip -v -q -r package-script.zip package-script
|
||||
cp -rv InstallBox86-cn.sh deb/opt/apps/deepin-wine-runner/
|
||||
cp -rv VM deb/opt/apps/deepin-wine-runner
|
||||
cp -rv 2048 deb/opt/apps/deepin-wine-runner/
|
||||
cp -rv Download.py deb/opt/apps/deepin-wine-runner/
|
||||
cp -rv AllInstall.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv ShellList deb/opt/apps/deepin-wine-runner
|
||||
cp -rv QemuDownload.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv DefaultSetting.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv QemuRun.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv kill.sh deb/opt/apps/deepin-wine-runner
|
||||
cp -rv updatekiller.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv AddWineDebMirrorForDeepin20.sh deb/opt/apps/deepin-wine-runner
|
||||
cp -rv InstallNewWineHQOrg.sh deb/opt/apps/deepin-wine-runner
|
||||
cp -rv InstallWineOnDeepin23Alpha.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv wrestool deb/opt/apps/deepin-wine-runner
|
||||
cp -rv Mount.sh deb/opt/apps/deepin-wine-runner
|
||||
@@ -35,16 +73,22 @@ package:
|
||||
cp -rv IconList.json deb/opt/apps/deepin-wine-runner
|
||||
cp -rv GetEXEVersion.exe deb/opt/apps/deepin-wine-runner
|
||||
cp -rv MountWithoutHome.sh deb/opt/apps/deepin-wine-runner
|
||||
cp -rv RunCommandWithTerminal.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv QemuSystemInstall.sh deb/opt/apps/deepin-wine-runner
|
||||
echo "[]" > deb/opt/apps/deepin-wine-runner/wine/winelist.json
|
||||
rm -rfv deb/opt/apps/deepin-wine-runner/wine/winelist.json
|
||||
cp -rv req deb/opt/apps/deepin-wine-runner
|
||||
cp -rv pardus-chroot deb/opt/apps/deepin-wine-runner
|
||||
cp -rv winetricks deb/opt/apps/deepin-wine-runner
|
||||
cp -rv WineLib deb/opt/apps/deepin-wine-runner
|
||||
cp -rv InstallFoxpro.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv BuildDesktop.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv ChangePassword.sh deb/opt/apps/deepin-wine-runner
|
||||
cp -rv trans deb/opt/apps/deepin-wine-runner
|
||||
cp -rv RegShot deb/opt/apps/deepin-wine-runner
|
||||
cp -rv BeCyIconGrabber.exe deb/opt/apps/deepin-wine-runner
|
||||
cp -rv AutoShell deb/opt/apps/deepin-wine-runner
|
||||
cp -rv Resources deb/opt/apps/deepin-wine-runner
|
||||
cp -rv deepin-wine-packager-with-script.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv deepin-wine-packager.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv deepin-wine-runner-update-bug deb/opt/apps/deepin-wine-runner
|
||||
@@ -100,8 +144,18 @@ package:
|
||||
cp -rv Model deb/opt/apps/deepin-wine-runner
|
||||
cp -rv API deb/opt/apps/deepin-wine-runner
|
||||
cp -rv key deb/opt/apps/deepin-wine-runner
|
||||
cp -rv InstallQemuUser.sh deb/opt/apps/deepin-wine-runner
|
||||
cp -rv RemoveQemuUser.sh deb/opt/apps/deepin-wine-runner
|
||||
cp -rv InstallBox86.sh deb/opt/apps/deepin-wine-runner
|
||||
cp -rv InstallRuntime deb/opt/apps/deepin-wine-runner
|
||||
mkdir -pv deb/opt/apps/deepin-wine-runner/entries/
|
||||
cp -rv deb/usr/share/applications deb/opt/apps/deepin-wine-runner/entries/applications
|
||||
python3 UpdateTime.py
|
||||
python3 RemovePycacheFile.py
|
||||
sudo rm -rfv /tmp/spark-deepin-wine-runner-builder/
|
||||
cp -rv deb /tmp/spark-deepin-wine-runner-builder
|
||||
rm -rfv deb/opt/apps/deepin-wine-runner/*
|
||||
rm -rfv package-script.zip
|
||||
mkdir -pv /tmp/spark-deepin-wine-runner-builder/usr/bin
|
||||
ln -s /opt/apps/deepin-wine-runner/deepin-wine-packager.py /tmp/spark-deepin-wine-runner-builder/usr/bin/deepin-wine-package-builder
|
||||
ln -s /opt/apps/deepin-wine-runner/deepin-wine-easy-packager.py /tmp/spark-deepin-wine-runner-builder/usr/bin/deepin-wine-packager-easy-builder
|
||||
@@ -122,21 +176,29 @@ package:
|
||||
ln -s /opt/apps/deepin-wine-runner/InstallNetFramework.py /tmp/spark-deepin-wine-runner-builder/usr/bin/deepin-wine-runner-wine-netframework-installer
|
||||
ln -s /opt/apps/deepin-wine-runner/InstallVisualCPlusPlus.py /tmp/spark-deepin-wine-runner-builder/usr/bin/deepin-wine-runner-wine-vscppruntime-installer
|
||||
ln -s /opt/apps/deepin-wine-runner/deepin-wine-venturi-setter.py /tmp/spark-deepin-wine-runner-builder/usr/bin/deepin-wine-venturi-setter
|
||||
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
|
||||
sudo rm -rfv /tmp/spark-deepin-wine-runner-builder
|
||||
# 构建 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 -b /tmp/spark-deepin-wine-runner-builder spark-deepin-wine-runner.deb
|
||||
dpkg-deb -Z xz -z 9 -b /tmp/spark-deepin-wine-runner-builder spark-deepin-wine-runner-ace.deb
|
||||
sudo rm -rfv /tmp/spark-deepin-wine-runner-builder
|
||||
|
||||
|
||||
install:
|
||||
make build -j$(nproc)
|
||||
sudo apt update ; true
|
||||
#sudo dpkg -i spark-deepin-wine-runner.deb
|
||||
sudo apt reinstall ./spark-deepin-wine-runner.deb -y --allow-downgrades
|
||||
rm spark-deepin-wine-runner.deb -vf
|
||||
|
||||
remove:
|
||||
sudo apt purge spark-deepin-wine-runner
|
||||
sudo apt purge spark-deepin-wine-runner -y
|
||||
|
||||
run:
|
||||
python3 mainwindow.py
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
import sys
|
||||
import PyQt5.QtWidgets as QtWidgets
|
||||
@@ -35,3 +36,21 @@ if terminal == "":
|
||||
app = QtWidgets.QApplication(sys.argv)
|
||||
QtWidgets.QMessageBox.critical(None, "错误", "无法识别到以下的任意一个终端\n" + " ".join(terminalList))
|
||||
exit()
|
||||
|
||||
# 转包
|
||||
class TurnDeb():
|
||||
debPath = ""
|
||||
def __init__(self, debPath):
|
||||
self.debPath = debPath
|
||||
|
||||
def ToRpm(self):
|
||||
if os.system("which alien"):
|
||||
raise NameError("无法找到 alien 命令,请先安装 alien")
|
||||
if os.system("which fakeroot"):
|
||||
raise NameError("无法找到 fakeroot 命令,请先安装 fakeroot")
|
||||
os.system(f"fakeroot alien -r '{self.debPath}' -c")
|
||||
|
||||
def ToTarZst(self):
|
||||
if os.system("debtap"):
|
||||
raise NameError("无法找到 debtap 命令,请先安装 debtap")
|
||||
os.system(f"debtap -Q '{self.debPath}'")
|
||||
10
PackageConfig/0/DEBIAN/control
Normal file
@@ -0,0 +1,10 @@
|
||||
Package: @@PACKAGE@@
|
||||
Version: @@VERSION@@
|
||||
Architecture: @@ARCH@@
|
||||
Maintainer: @@MAKER@@
|
||||
Depends: @@DEPENDS@@
|
||||
Section: non-free/otherosfs
|
||||
Priority: optional
|
||||
Multi-Arch: foreign
|
||||
Installed-Size: @@SIZE@@
|
||||
Description: @@DESCRIPTION@@
|
||||
@@ -0,0 +1,14 @@
|
||||
[Desktop Entry]
|
||||
Categories=;
|
||||
Comment=@@NAME@@
|
||||
Encoding=UTF-8
|
||||
Exec="/opt/apps/@@PACKAGE@@/files/run.sh" --uri
|
||||
GenericName=@@NAME@@
|
||||
Icon=@@ICONLIST@@
|
||||
MimeType=@@MIMETYPE@@
|
||||
Name=@@NAME@@.desktop
|
||||
StartupNotify=false
|
||||
Terminal=false
|
||||
Type=Application
|
||||
X-Created-By=
|
||||
X-Deepin-Vendor=user-custom
|
||||
113
PackageConfig/0/opt/apps/@@PACKAGE@@/files/run.sh
Normal file
@@ -0,0 +1,113 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2016 Deepin, Inc.
|
||||
#
|
||||
# Author: Li LongYu <lilongyu@linuxdeepin.com>
|
||||
# Peng Hao <penghao@linuxdeepin.com>
|
||||
#
|
||||
#
|
||||
# Copyright (C) 2022 The Spark Project
|
||||
#
|
||||
#
|
||||
# Modifier shenmo <shenmo@spark-app.store>
|
||||
#
|
||||
#
|
||||
#
|
||||
|
||||
#######################函数段。下文调用的额外功能会在此处声明
|
||||
|
||||
Get_Dist_Name()
|
||||
{{
|
||||
if grep -Eqii "Deepin" /etc/issue || grep -Eq "Deepin" /etc/*-release; then
|
||||
DISTRO='Deepin'
|
||||
elif grep -Eqi "UnionTech" /etc/issue || grep -Eq "UnionTech" /etc/*-release; then
|
||||
DISTRO='UniontechOS'
|
||||
else
|
||||
DISTRO='OtherOS'
|
||||
fi
|
||||
}}
|
||||
|
||||
|
||||
####获得发行版名称
|
||||
|
||||
#########################预设值段
|
||||
|
||||
version_gt() { test "$(echo "$@" | tr " " "
|
||||
" | sort -V | head -n 1)" != "$1"; }
|
||||
####用于比较版本?未实装
|
||||
BOTTLENAME="@@@BOTTLENAME@@@"
|
||||
APPVER="@@@APPVER@@@"
|
||||
EXEC_PATH="@@@EXEC_PATH@@@"
|
||||
##### 软件在wine中的启动路径
|
||||
START_SHELL_PATH="/opt/deepinwine/tools/spark_run_v4.sh"
|
||||
export MIME_TYPE=""
|
||||
#####没什么用
|
||||
export DEB_PACKAGE_NAME="@@@DEB_PACKAGE_NAME@@@"
|
||||
####这里写包名才能在启动的时候正确找到files.7z,似乎也和杀残留进程有关
|
||||
export APPRUN_CMD="@@@APPRUN_CMD@@@"
|
||||
#####wine启动指令,建议
|
||||
EXPORT_ENVS=""
|
||||
|
||||
export SPECIFY_SHELL_DIR=`dirname $START_SHELL_PATH`
|
||||
|
||||
ARCHIVE_FILE_DIR="/opt/apps/$DEB_PACKAGE_NAME/files"
|
||||
|
||||
export WINEDLLPATH=/opt/$APPRUN_CMD/lib:/opt/$APPRUN_CMD/lib64
|
||||
|
||||
export WINEPREDLL="$ARCHIVE_FILE_DIR/dlls"
|
||||
|
||||
DISABLE_ATTACH_FILE_DIALOG=""
|
||||
##默认为空。若为1,则不使用系统自带的文件选择,而是使用wine的
|
||||
##对于deepin/UOS,大部分的应用都不需要使用wine的,如果有需求(比如wine应用选择的限定种类文件系统的文管不支持)
|
||||
##请填1。
|
||||
##注意:因为非DDE的环境不确定,所以默认会在非Deepin/UOS发行版上禁用这个功能。如果你确认在适配的发行版上可以正常启动,请注释或者删除下面这段
|
||||
|
||||
##############<<<<<<<<<禁用文件选择工具开始
|
||||
Get_Dist_Name
|
||||
#此功能实现参见结尾函数段
|
||||
if [ "$DISTRO" != "Deepin" ] && [ "$DISTRO" != "UniontechOS" ];then
|
||||
DISABLE_ATTACH_FILE_DIALOG="1"
|
||||
echo "非deepin/UOS,默认关闭系统自带的文件选择工具,使用Wine的"
|
||||
echo "如果你想改变这个行为,请到/opt/apps/$DEB_PACKAGE_NAME/files/$0处修改"
|
||||
echo "To打包者:如果你要打开自带请注意在适配的发行版上进行测试"
|
||||
echo "To用户:打包者没有打开这个功能,这证明启用这个功能可能造成运行问题。如果你要修改这个行为,请确保你有一定的动手能力"
|
||||
fi
|
||||
##############>>>>>>>>>禁用文件选择工具结束
|
||||
|
||||
##############<<<<<<<<<屏蔽mono和gecko安装器开始
|
||||
##默认屏蔽mono和gecko安装器
|
||||
{['''#if [ "$APPRUN_CMD" = "spark-wine7-devel" ];then
|
||||
|
||||
#export WINEDLLOVERRIDES="mscoree,mshtml="
|
||||
#echo "为了降低打包体积,默认关闭gecko和momo,如有需要,注释此行(仅对spark-wine7-devel有效)"
|
||||
|
||||
#fi''', '''if [ "$APPRUN_CMD" = "spark-wine7-devel" ];then
|
||||
|
||||
export WINEDLLOVERRIDES="mscoree,mshtml="
|
||||
echo "为了降低打包体积,默认关闭gecko和momo,如有需要,注释此行(仅对spark-wine7-devel有效)"
|
||||
|
||||
fi'''][int(disabledMono.isChecked())]}
|
||||
##############>>>>>>>>>屏蔽mono和gecko安装器结束
|
||||
|
||||
#########################执行段
|
||||
|
||||
|
||||
|
||||
|
||||
if [ -z "$DISABLE_ATTACH_FILE_DIALOG" ];then
|
||||
export ATTACH_FILE_DIALOG=1
|
||||
fi
|
||||
|
||||
if [ -n "$EXPORT_ENVS" ];then
|
||||
export $EXPORT_ENVS
|
||||
fi
|
||||
|
||||
if [ -n "$EXEC_PATH" ];then
|
||||
if [ -z "${{EXEC_PATH##*.lnk*}}" ];then
|
||||
$START_SHELL_PATH $BOTTLENAME $APPVER "C:/windows/command/start.exe" "/Unix" "$EXEC_PATH" "$@"
|
||||
else
|
||||
$START_SHELL_PATH $BOTTLENAME $APPVER "$EXEC_PATH" "$@"
|
||||
fi
|
||||
else
|
||||
$START_SHELL_PATH $BOTTLENAME $APPVER "uninstaller.exe" "$@"
|
||||
fi
|
||||
13
PackageConfig/list.json
Normal file
@@ -0,0 +1,13 @@
|
||||
[
|
||||
"@@PACKAGE@@",
|
||||
"@@VERSION@@",
|
||||
"@@ARCH@@",
|
||||
"@@MAKER@@",
|
||||
"@@DEPENDS@@",
|
||||
"@@SIZE@@",
|
||||
"@@DESCRIPTION@@"
|
||||
"@@ICONLIST@@",
|
||||
"@@NAME@@",
|
||||
"@@MIMETYPE@@",
|
||||
"@@CATEGORIES@@"
|
||||
]
|
||||
@@ -3,6 +3,7 @@ import os
|
||||
import sys
|
||||
import base64
|
||||
import traceback
|
||||
import updatekiller
|
||||
import req as requests
|
||||
import PyQt5.QtGui as QtGui
|
||||
import PyQt5.QtCore as QtCore
|
||||
@@ -14,7 +15,7 @@ class ProgramRunStatusShow():
|
||||
try:
|
||||
fenlists = []
|
||||
for i in range(6):
|
||||
fenlists.append(int(requests.get(base64.b64decode("aHR0cHM6Ly9jb2RlLmdpdGxpbmsub3JnLmNuL2dmZGdkLXhpLW9yZy93aW5lLXJ1bm5lci1kb3dubG9hZHMtb2YtcnVubmVyL3Jhdy9icmFuY2gvbWFzdGVyL0Zlbi9GZW4=").decode("utf-8") + f"{i}.txt").text))
|
||||
fenlists.append(int(requests.get("http://data.download.gfdgdxi.top/Fen/Fen" + f"{i}.txt").text))
|
||||
tipsInfo = ""
|
||||
except:
|
||||
traceback.print_exc()
|
||||
|
||||
@@ -13,6 +13,7 @@ import os
|
||||
import shutil
|
||||
import random
|
||||
import sys
|
||||
import updatekiller
|
||||
import json
|
||||
import traceback
|
||||
import requests
|
||||
@@ -91,7 +92,7 @@ class Ui_MainWindow(object):
|
||||
|
||||
self.menu = MainWindow.menuBar()
|
||||
self.changeSources = self.menu.addMenu(_translate("MainWindow", "更换源"))
|
||||
self.gitlinkAction = QtWidgets.QAction(_translate("MainWindow", "Gitlink 源(推荐)"))
|
||||
self.gitlinkAction = QtWidgets.QAction(_translate("MainWindow", "Github 源(推荐)"))
|
||||
self.ipv6Action = QtWidgets.QAction(_translate("MainWindow", "备用源(只支持 IPv6 用户)"))
|
||||
self.localAction = QtWidgets.QAction(_translate("MainWindow", "本地测试源(127.0.0.1)"))
|
||||
self.changeSources.addAction(self.gitlinkAction)
|
||||
@@ -323,7 +324,10 @@ def on_addButton_clicked():
|
||||
# ui.deleteZip.setChecked(False)
|
||||
# ui.unzip.setChecked(False)
|
||||
arch = internetJsonList[choose][2]
|
||||
downloadUrl = f"{internetWineSource}/{arch}/{downloadName}"
|
||||
if "://" in downloadName:
|
||||
downloadUrl = downloadName
|
||||
else:
|
||||
downloadUrl = f"{internetWineSource}/{arch}/{downloadName}"
|
||||
dialog = QtWidgets.QProgressDialog()
|
||||
cancel = QtWidgets.QPushButton("取消")
|
||||
cancel.setDisabled(True)
|
||||
@@ -392,7 +396,7 @@ if __name__ == "__main__":
|
||||
localJsonList = []
|
||||
internetJsonList = []
|
||||
internetWineSourceList = [
|
||||
"https://code.gitlink.org.cn/gfdgd_xi/deepin-wine-runner-ubuntu-image/raw/branch/master/Sandbox",
|
||||
"http://chroot.gfdgdxi.top",
|
||||
"http://gfdgdxi.msns.cn/deepin-wine-runner-ubuntu-image/Sandbox", # 备用源,纯 IPv6 源
|
||||
"http://127.0.0.1/deepin-wine-runner-ubuntu-image/Sandbox/" # 本地测试源
|
||||
]
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
import os
|
||||
import sys
|
||||
import getpass
|
||||
import updatekiller
|
||||
import PyQt5.QtWidgets as QtWidgets
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
22
QemuSystemInstall.sh
Executable file
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
# 如果是 Fedora
|
||||
if [[-f /etc/fedora-release ]]; then
|
||||
sudo yum update -y
|
||||
sudo yum install qemu
|
||||
echo 安装完成!按回车键退出
|
||||
read
|
||||
exit
|
||||
fi
|
||||
# 如果是 Arch Linux
|
||||
if [[-f /etc/arch-release ]]; then
|
||||
sudo pacman -Syu
|
||||
sudo pacman -S qemu-user qemu-user-static qemu-full --noconfirm
|
||||
echo 安装完成!按回车键退出
|
||||
read
|
||||
exit
|
||||
fi
|
||||
sudo apt update
|
||||
sudo apt install qemu-system qemu-user qemu-efi qemu-efi-aarch64 qemu-efi-arm -y
|
||||
sudo apt install qemu-user-static binfmt-support qemu-system-gui -y
|
||||
echo 安装完成!按回车键退出
|
||||
read
|
||||
341
README.md
@@ -1,54 +1,56 @@
|
||||
<p width=100px align="center"><img src="https://storage.deepin.org/thread/202208031419283599_deepin-wine-runner.png"></p>
|
||||
<h1 align="center">Wine 运行器 3.2.0</h1>
|
||||
<h1 align="center">Wine 运行器 3.7.0</h1>
|
||||
<hr>
|
||||
<a href='https://gitee.com/gfdgd-xi/deep-wine-runner/stargazers'><img src='https://gitee.com/gfdgd-xi/deep-wine-runner/badge/star.svg?theme=dark' alt='star'></img></a>
|
||||
<a href='https://gitee.com/gfdgd-xi/deep-wine-runner/members'><img src='https://gitee.com/gfdgd-xi/deep-wine-runner/badge/fork.svg?theme=dark' alt='fork'></img></a>
|
||||
|
||||
## 介绍
|
||||
Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程序,内置了对Wine图形化的支持、各种Wine工具、自制的Wine程序打包器和运行库安装工具等。
|
||||
它同时还内置了基于VirtualBox制作的、专供小白使用的Windows虚拟机安装工具,可以做到只需下载系统镜像并点击安装即可,无需考虑虚拟机的安装、创建、分区等操作。
|
||||
此外,它还简化了如下命令,让你可以更简便地使用Wine:
|
||||
```bash
|
||||
env WINEPREFIX=容器路径 wine(wine的路径) 可执行文件路径
|
||||
```
|
||||
让你可以简易方便的使用 wine
|
||||
是使用 Python3 的 PyQt5 构建的
|
||||
(测试平台:deepin 20.8;UOS 家庭版 21.3.1;Ubuntu 22.04;Ubuntu 20.04;UOS 专业版 1050;openkylin)
|
||||

|
||||
而打包器可以方便的把您的 wine 容器打包成 deb 包供他人使用,程序创建的 deb 构建临时文件夹目录树如下:
|
||||
```bash
|
||||
/XXX
|
||||
├── DEBIAN
|
||||
│ └── control
|
||||
│ └── postrm(可选)
|
||||
└── opt
|
||||
└── apps
|
||||
└── XXX
|
||||
├── entries
|
||||
│ ├── applications
|
||||
│ │ └── XXX.desktop
|
||||
│ └── icons
|
||||
│ └── hicolor
|
||||
│ └── scalable
|
||||
│ └── apps
|
||||
│ └── XXX.png(XXX.svg)
|
||||
├── files
|
||||
│ ├── files.7z
|
||||
│ └── run.sh
|
||||
└── info
|
||||
Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程序。原版的 Wine 只能使用命令操作,且安装过程较为繁琐,对小白不友好。于是该运行器为了解决该痛点,内置了对Wine图形化的支持、Wine 安装器、微型应用商店、各种Wine工具、自制的Wine程序打包器、运行库安装工具等。
|
||||
它同时还内置了基于Qemu/VirtualBox制作的、专供小白使用的Windows虚拟机安装工具,可以做到只需下载系统镜像并点击安装即可,无需考虑虚拟机的安装、创建、分区等操作,也能在非 X86 架构安装 X86 架构的 Windows 操作系统(但是效率较低,可以运行些老系统)。
|
||||
而且对于部分 Wine 应用适配者来说,提供了图形化的打包工具,以及提供了一些常用工具以及运行库的安装方式,以及能安装多种不同的 Wine 以测试效果,能极大提升适配效率。
|
||||
且对于 Deepin23 用户做了特别优化,以便能在缺少 i386 运行库的情况下运行 Wine32。同时也为非 X86 架构用户提供了 Box86/64、Qemu User 的安装方式
|
||||
|
||||
11 directories, 6 files
|
||||
```
|
||||
[](https://gitee.com/gfdgd-xi/deep-wine-runner/stargazers)
|
||||
最后感谢 [@鹤舞白沙](https://bbs.deepin.org/user/227203) 编写的《Wine运行器和Wine打包器傻瓜式使用教程(小白专用)》,链接:https://bbs.deepin.org/post/246837
|
||||
注:
|
||||
**在使用运行器时不要随便动 .deepinwine 下的容器,否则会导致安装的 wine 应用无法正常打开**
|
||||
**除非你有把握不会损坏容器**
|
||||
|
||||

|
||||
|
||||
[](https://gitee.com/gfdgd-xi/deep-wine-runner/stargazers)
|
||||
最后感谢 [@鹤舞白沙](https://bbs.deepin.org/user/227203) 编写的《Wine运行器和Wine打包器傻瓜式使用教程(小白专用)》,链接:https://bbs.deepin.org/post/246837
|
||||
|
||||
打包器视频教程:https://www.bilibili.com/video/BV1Bh4y1Q7nT/
|
||||
Wine 运行器 QQ 交流群:762985460
|
||||
Wine运行器 QQ 频道:https://pd.qq.com/s/edqkgeydx
|
||||
Wine 运行器离线包下载地址:https://www.123pan.com/s/pDSKVv-pAJWv.html
|
||||
|
||||
|
||||
### 注
|
||||
spark-deepin-wine-runner 是普通包,spark-deepin-wine-runner-ace 是使用 ace 兼容环境运行的运行器
|
||||
|
||||
## Wine 运行器离线包
|
||||
### X86
|
||||
123pan:https://www.123pan.com/s/pDSKVv-pAJWv.html
|
||||
百度网盘:https://pan.baidu.com/s/1klBw63tw2_ZQLzmi11dDBw?pwd=7bu5 提取码: 7bu5
|
||||
诚通网盘:http://ctfile.gfdgdxi.top/d/31540479-59254792-909739?p=2061 (访问密码: 2061)
|
||||
Github:https://github.com/gfdgd-xi/deep-wine-runner/releases/
|
||||
Sourceforge:https://sourceforge.net/projects/deep-wine-runner/files/
|
||||
更多需求需要私聊作者定制(有偿服务)
|
||||
### ARM
|
||||
需要私聊作者定制(有偿服务)
|
||||
|
||||
## 软件架构
|
||||
理论上支持全架构,如果 Python 能运行的话
|
||||
非 X86 架构会利用到 `box86`、`exagear`、`qemu` 等技术
|
||||
非 X86 架构会利用到 `box86`/`box64`、`exagear`、`qemu` 等技术
|
||||
|
||||
## Wine 运行器自动构建(Newest)
|
||||
此只供尝鲜,不保证能用:https://github.com/gfdgd-xi/deep-wine-runner/actions/workflows/auto-building.yml
|
||||
|
||||
## 目前实现功能(部分)
|
||||
1. 用 Wine 运行 EXE
|
||||
2. 支持下载/安装 Wine
|
||||
3. 支持下载定制好的 Chroot 容器并使用 Qemu 调用运行
|
||||
4. 支持**半自动**安装 Windows 7 镜像至 VirtualBox(只限 x86_64)
|
||||
4. 支持**半自动**安装 Windows 7 镜像至 VirtualBox/Qemu
|
||||
5. 支持打包 Wine 应用(简易打包器/基于生态适配脚本的打包器/高级打包器)
|
||||
6. 检测容器缺失 DLL 并下载
|
||||
7. 支持在线/本地拉取 Wine 容器配置方案并部署(初步应用商店)
|
||||
@@ -61,6 +63,20 @@ env WINEPREFIX=容器路径 wine(wine的路径) 可执行文件路径
|
||||
14. 支持下载适配常用字体
|
||||
15. 支持终止指定容器运行的所有程序
|
||||
|
||||
## 上架到的应用商店
|
||||
> 可以从下列应用商店获取 Wine 运行器
|
||||
### Deepin/UOS 应用商店
|
||||

|
||||
|
||||
### 星火应用商店
|
||||

|
||||
|
||||
### 龙芯应用合作社
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## 分支介绍
|
||||
### main 分支
|
||||
主分支,稳定分支
|
||||
@@ -119,6 +135,154 @@ desktop文件中StartupWMClass字段。用于让桌面组件将窗口类名与de
|
||||

|
||||
|
||||
## 更新日志
|
||||
### 3.7.0(2023年02月02日)
|
||||
**※1、修复简易打包器在 Deepin/UOS 上无法正常启动的问题**
|
||||
**※2、打包器生成的 deb 修复在非 Deepin/UOS 且未安装星火应用商店的系统中启动器无程序图标的问题**
|
||||
**※3、修复 Box86/64 国内源源失效的问题**
|
||||
**※4、适配 Arch Linux**
|
||||
**※5、适配 Fedora**
|
||||
**※6、打包器支持将 deb 包转换为其它格式**
|
||||
**※7、适配 deepin 23 beta3**
|
||||
8、新增公告和新版本提示功能
|
||||
9、修复公告的链接在部分机器无法正常打开的问题
|
||||
10、新增赞赏入口
|
||||
11、支持识别 spark-wine9、spark-wine9-wow
|
||||
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
### 3.6.1(2023年12月25日)
|
||||
**※1、修复应用无法打开的问题**
|
||||
**※2、修改错别字**
|
||||
|
||||
### 3.6.0(2023年12月24日)
|
||||
**※1、修复高级打包器选择软件适配脚本后无法打包的问题 https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I8I110**
|
||||
**※2、支持调用 Deepin Wine8 Stable**
|
||||
**※3、移除过时的 Wine 安装程序入口**
|
||||
**※4、Wine 安装器支持根据地区自动选择国内源以及国际源**
|
||||
**※5、Wine 安装器新增 Sourceforge 源**
|
||||
**※6、新增 Wine 运行报告生成功能**
|
||||
**※7、初步英语翻译**
|
||||
**※8、新增离线安装包(只支持 amd64)**
|
||||
**※9、支持识别 /opt 文件夹下的 Wine**
|
||||
10、新增 Wine 运行器视频教程的 Youtube 入口
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
### 3.5.0(2023年11月17日)
|
||||
**※1、虚拟机工具支持 kvm 检测**
|
||||
**※2、修改虚拟机工具提示文本,新增对 UOS 3a4000 用户无法正常使用 Qemu 的解决方案**
|
||||
**※3、在主界面点击“安装”按钮后自动切换至帮助页面**
|
||||
**※4、新增虚拟机日志输出和读取功能**
|
||||
**※5、新增Qemu测试测试功能**
|
||||
**※6、虚拟机工具支持安装/运行 arm32、arm64 架构的系统**
|
||||
**※7、修复虚拟机工具在系统版本选择第 5 项及以后出现不会挂载 ISO 的问题(使用 Qemu 的情况下)**
|
||||
**※8、修复简易打包器无法打开的问题 https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I85F9M**
|
||||
**※9、生态适配脚本打包器支持正确根据打包结果显示打包成功/失败 https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I7D83Z**
|
||||
10、生态适配脚本打包器设置使用 xz 格式打包 deb
|
||||
11、新增 ace 包
|
||||
12、虚拟机工具支持强制关闭 VirtualBox/Qemu,并增加了对 Windows 7 安装脚本的检测
|
||||
13、新增 lat 翻译器安装选项
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
### 3.4.1(2023年09月30日)
|
||||
**※1、支持识别 spark-wine8-wow 且打包时可以使用该 wine**
|
||||
**※2、替换安装 Box86 的 pkexec 为 sudo**
|
||||
**※3、Wine 下载工具新增更多 Wine**
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
### 3.4.0.1(2023年08月18日)
|
||||
**※1、修复部分高性能机器打包器提示“无效的压缩参数”:https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I7SMTJ**
|
||||
**※2、支持设置程序字体大小:https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I7SAYE**
|
||||
|
||||
### 3.4.0(2023年08月11日)
|
||||
**※1、修复简易打包器无法打开的问题以及 Wine 识别错误的问题**
|
||||
**※2、高级打包器支持多 .desktop 分别设置不同的 MimeType**
|
||||
**※3、修复运行器在 Ubuntu 23 的安装问题**
|
||||
**※4、高级打包器支持导出/导入填写信息**
|
||||
**※5、Deepin 23 支持使用 Winetricks**
|
||||
**※6、新增视频教程**
|
||||
**※7、修复虚拟机工具在检测到 Qemu 磁盘但没有安装 Qemu 时无法启动的问题**
|
||||
**※8、修复虚拟机工具的一些问题并调整部分设置**
|
||||
**※9、虚拟机工具支持设置 UEFI 启动**
|
||||
**※10、虚拟机安装工具提供 LoongArch 新世界版本**
|
||||
11、高级打包器支持隐藏输入框以及使用小字体
|
||||
12、打包器提供 bcm 和 dcm wine 支持
|
||||
13、修复星火 wine 配置错误问题
|
||||
14、打包器支持多线程打包
|
||||
15、修复升级工具问题:https://gitee.com/gfdgd-xi/uengine-runner/issues/I6ZRZX
|
||||
16、跟进打包器 run.sh 模板
|
||||
17、云沙箱新增 cloud.vdnel.cn
|
||||
18、打包器新增分类 Game、System、AudioVideo
|
||||
19、修复安装 Box64 时源里没有 libc6:armhf 导致无法安装的问题
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
### 3.3.0.1(2023年07月25日)
|
||||
**※1、修复运行器打开主界面不进行任何操作但 CPU 占用率过高的问题**
|
||||
**※2、修复运行器运行器(局部)无法正常移除的问题**
|
||||
|
||||
### 3.3.0(2023年07月12日)
|
||||
**※1、简易打包器支持选择 Wine 版本以及修改打包生成的 deb 包的架构为 all;**
|
||||
**※2、修改容器自动配置脚本的 Gitlink 源为 Gitee 源**
|
||||
**※3、在安装更多 Wine 处安装 Wine 后主窗口 Wine 版本下拉框自动更新**
|
||||
**※4、设置打包器在 Ubuntu 依旧打包 xz 格式的 deb 包**
|
||||
**※5、修复 Wine 简易打包器 control 文件 Installed-Size 格式不规范的问题**
|
||||
**※6、更换 Box86 源并支持安装 Box64(如果为 aarch64 架构)**
|
||||
**※7、新增 Wine 自建源(支持 Debian10、Deepin20)**
|
||||
**※8、修改 WineHQ 安装器使其支持选择国内清华大学镜像源或 WineHQ 官方源**
|
||||
**※9、新增 Visual FoxPro 安装器**
|
||||
**※10、新增安装局部运行库以解决部分低版本系统运行高版本 Wine 的问题且不与其他运行库和兼容层冲突**
|
||||
**※11、支持调用原版的 Exagear 以及 Qemu User(i386、x86_64) 运行 Wine**
|
||||
12、新增自动构建:https://github.com/gfdgd-xi/deep-wine-runner/actions/workflows/auto-building.yml(只供尝鲜)
|
||||
13、新增 Wine 日构建(在“安装更多 Wine”处可以获取,目前有 i386、amd64、i386+amd64、amd64+wow64 mode、aarch64)
|
||||
14、优化容器清理脚本
|
||||
15、修复部分组件没完全换源的问题,部分组件支持自动换可用源
|
||||

|
||||

|
||||
|
||||
### 3.2.2(2023年05月12日)
|
||||
**※1. 修改源地址(迁出 Gitlink);**
|
||||
**※2. 修复非 X86 架构运行器主页面虚拟机工具禁用的问题;**
|
||||
3、部分组件支持选择最优源。
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
### 3.2.1(2023年04月29日)
|
||||
**※1、Windows 虚拟机安装工具支持非 X86 架构;**
|
||||
**※2、应用打包器可以与星火应用商店配合构建 arm/all 全架构的 Wine 包;**
|
||||
**※3、Windows 虚拟机安装工具支持调用 Qemu;**
|
||||
**※4、新增 Qemu User 运行 Wine 的帮助入口;**
|
||||
**※5、修复 Windows 虚拟机的自动配置镜像缺少 aria2c.exe 的故障;**
|
||||
**※6、支持在更新程序版本时自动关闭程序进程;**
|
||||
7、运行器和打包器支持调用 spark-wine8;
|
||||
8、修改作者信息;
|
||||
9、新增安装包构建时间;
|
||||
10、优化 Wine 运行器更新策略。
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
### 3.2.0(2023年03月19日)
|
||||
**※1、Windows 应用适配工具新增系统资源显示;**
|
||||
**※2、Windows 应用适配工具使用 C++ 重写;**
|
||||
@@ -450,40 +614,18 @@ desktop文件中StartupWMClass字段。用于让桌面组件将窗口类名与de
|
||||
### 1.0.0(2021年01月29日)
|
||||
1. 实现内容
|
||||
|
||||
## 源码安装教程
|
||||
1. 安装需要的依赖
|
||||
## 构建安装包
|
||||
### deb
|
||||
```bash
|
||||
sudo apt install git make
|
||||
make package-deb -j4
|
||||
```
|
||||
2. 下载仓库
|
||||
### pkg
|
||||
```bash
|
||||
git clone https://gitee.com/gfdgd-xi/deep-wine-runner.git
|
||||
cd deep-wine-runner
|
||||
```
|
||||
3. 从源码运行程序(如果是从源码安装请跳过这一步)
|
||||
```bash
|
||||
make depend
|
||||
make run
|
||||
```
|
||||
4. 从源码安装程序
|
||||
```bash
|
||||
make install
|
||||
make package-deb -j4
|
||||
make package-pkg -j4
|
||||
```
|
||||
## Openkylin 如何安装这个 Wine 运行器?
|
||||
首先添加作者的源:
|
||||
Gitlink 源(国内推荐):
|
||||
```bash
|
||||
wget https://code.gitlink.org.cn/gfdgd_xi/gfdgd-xi-apt-mirrors/raw/branch/master/sources/gitlink.sh && bash gitlink.sh && rm gitlink.sh
|
||||
```
|
||||
Github 源(国外推荐):
|
||||
```bash
|
||||
wget https://gfdgd-xi.github.io/gfdgd-xi-apt-mirrors/sources/github.sh && bash github.sh && rm github.sh
|
||||
```
|
||||
上面二选一,添加完后执行
|
||||
```bash
|
||||
sudo apt install spark-deepin-wine-runner
|
||||
```
|
||||
即可自动补全依赖安装(说实话 openkylin 缺的依赖好多)
|
||||
现在可以直接安装了
|
||||
|
||||
## 对于 Deepin/UOS(AMD64 平台)小白如何使用该程序?
|
||||
下面是送给小白的 wine 运行器简单使用方法,先声明,wine 并***不能完美的运行所有 exe 文件***,利用此 wine 运行器简易安装可执行文件的方法如下:
|
||||
@@ -497,42 +639,10 @@ sudo apt install spark-deepin-wine-runner
|
||||

|
||||
|
||||
|
||||
## 稍微讲一下目前 deepin 23 Preview 运行自定义 exe 的方法(Wine 运行器均已支持)
|
||||
|
||||
### 方法一
|
||||
|
||||
随便安装一个 linglong 格式包的 wine 程序(要记住包名),然后在终端输入
|
||||
|
||||
```bash
|
||||
ll-cli run 包名 --exec '/bin/deepin-wine6-stable'
|
||||
```
|
||||
|
||||
即可,缺陷可看运行器上方小提示第 6 点
|
||||
|
||||
### 方法二(容易翻车)
|
||||
|
||||
添加 Deepin 20 的**官方源和商店源**,然后输入如下的命令:**切记不能sudo apt upgrade**,会出现的问题可以看运行器的小提示第 7 点,以及无法保证所有 Wine 均可运行
|
||||
|
||||
```bash
|
||||
sudo dpkg --add-architecture i386
|
||||
sudo apt update
|
||||
# 安装普通的 Wine
|
||||
sudo apt install wine
|
||||
# 安装 deepin-wine5-stable(本机测试 X64 的 Wine 跑不了)
|
||||
sudo apt install deepin-wine5-stable
|
||||
# 安装 deepin-wine6-stable
|
||||
sudo apt install deepin-wine6-stable
|
||||
```
|
||||
**使用完后最好删除掉 Deepin 20 的官方源和商店源,防止出问题**
|
||||
可以看 [@ThinkYoung](user/18570) 写的 https://bbs.deepin.org/post/241148,可以参考借鉴
|
||||
|
||||
### 方法三
|
||||
我不知道了,希望能有大佬提供更好的解决方案
|
||||
|
||||
## 下载链接
|
||||
Gitee:https://gitee.com/gfdgd-xi/deep-wine-runner
|
||||
Github:https://github.com/gfdgd-xi/deep-wine-runner
|
||||
Gitlink:https://www.gitlink.org.cn/gfdgd_xi/deep-wine-runner
|
||||
Sourceforge:https://sourceforge.com/projects/deep-wine-runner
|
||||
蓝奏云:https://gfdgdxi.lanzouj.com/b01nz7y3e,密码:7oii
|
||||
星火应用商店:spk://store/tools/spark-deepin-wine-runner
|
||||
|
||||
@@ -552,18 +662,19 @@ Gitlink:https://www.gitlink.org.cn/gfdgd_xi/deep-wine-runner
|
||||
## 运行库下载
|
||||
| 架构 | 运行库下载 |
|
||||
|-|-|
|
||||
| i386 | https://code.gitlink.org.cn/gfdgd_xi/runtime-for-qemu/raw/branch/master/i386-runtime-for-qemu_1.0.0_all.deb |
|
||||
| amd64 | https://code.gitlink.org.cn/gfdgd_xi/runtime-for-qemu/raw/branch/master/amd64-runtime-for-qemu_1.0.0_all.deb |
|
||||
| armhf | https://code.gitlink.org.cn/gfdgd_xi/runtime-for-qemu/raw/branch/master/armhf-runtime-for-qemu_1.0.0_all.deb |
|
||||
| arm64 | https://code.gitlink.org.cn/gfdgd_xi/runtime-for-qemu/raw/branch/master/arm64-runtime-for-qemu_1.0.0_all.deb |
|
||||
| mips64el | https://code.gitlink.org.cn/gfdgd_xi/runtime-for-qemu/raw/branch/master/mips64el-runtime-for-qemu_1.0.0_all.deb |
|
||||
| ppc64el | https://code.gitlink.org.cn/gfdgd_xi/runtime-for-qemu/raw/branch/master/ppc64el-runtime-for-qemu_1.0.0_all.deb |
|
||||
| riscv64 | https://code.gitlink.org.cn/gfdgd_xi/runtime-for-qemu/raw/branch/master/riscv64-runtime-for-qemu_1.0.0_all.deb |
|
||||
| s390x | https://code.gitlink.org.cn/gfdgd_xi/runtime-for-qemu/raw/branch/master/s390x-runtime-for-qemu_1.0.0_all.deb |
|
||||
| i386 | https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/i386-runtime-for-qemu_1.0.0_all.deb |
|
||||
| amd64 | https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/amd64-runtime-for-qemu_1.0.0_all.deb |
|
||||
| armhf | https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/armhf-runtime-for-qemu_1.0.0_all.deb |
|
||||
| arm64 | https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/arm64-runtime-for-qemu_1.0.0_all.deb |
|
||||
| mips64el | https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/mips64el-runtime-for-qemu_1.0.0_all.deb |
|
||||
| ppc64el | https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/ppc64el-runtime-for-qemu_1.0.0_all.deb |
|
||||
| riscv64 | https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/riscv64-runtime-for-qemu_1.0.0_all.deb |
|
||||
| s390x | https://jihulab.com/gfdgd-xi/qemu-runtime/-/raw/main/s390x-runtime-for-qemu_1.0.0_all.deb |
|
||||
|
||||
## 附:用于编译 Wine 的 Docker 容器(Debian10)
|
||||
内安装了编译 Wine 所需要的依赖,Wine 编译教程:https://wiki.winehq.org/Building_Wine
|
||||
当然也可以到 http://wine.wine-runner.racoongx.cn/ 或 Wine 运行器内下载已经编译好的 Wine
|
||||
当然也可以到 http://wine.wine-runner.gfdgdxi.top/ 或 Wine 运行器内下载已经编译好的 Wine
|
||||
(屏蔽微信在Wine中运行时产生的水印/黑块?可以参考:https://12101111.github.io/block-wine-wechat-black-window/ 和 https://blog.csdn.net/ericden/article/details/122118443 )
|
||||
### 拉取
|
||||
***(需要先安装 Docker 后再输入以下命令)***
|
||||
```bash
|
||||
@@ -617,4 +728,14 @@ make install -j4
|
||||
|
||||
```
|
||||
|
||||
# ©2020-Now gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
## 请作者喝杯茶
|
||||
如果您觉得 Wine 运行器对你有帮助,可以请作者喝杯茶
|
||||
<img src="Icon/QR/Wechat.png" width="250" />
|
||||
<img src="Icon/QR/Alipay.jpg" width="250" />
|
||||
<img src="Icon/QR/QQ.png" width="250" >
|
||||
|
||||
### 广告
|
||||
支付宝官方活动,扫描获得支付红包!
|
||||
<p><img src="Icon/QR/advertisement0.jpg" width="250" ></p>
|
||||
|
||||
# ©2020-Now gfdgd xi
|
||||
65
README_en.md
Normal file
@@ -0,0 +1,65 @@
|
||||
<p width=100px align="center"><img src="https://storage.deepin.org/thread/202208031419283599_deepin-wine-runner.png"></p>
|
||||
<h1 align="center">Wine Runner 3.4.0.1</h1>
|
||||
<hr>
|
||||
<a href='https://gitee.com/gfdgd-xi/deep-wine-runner/stargazers'><img src='https://gitee.com/gfdgd-xi/deep-wine-runner/badge/star.svg?theme=dark' alt='star'></img></a>
|
||||
<a href='https://gitee.com/gfdgd-xi/deep-wine-runner/members'><img src='https://gitee.com/gfdgd-xi/deep-wine-runner/badge/fork.svg?theme=dark' alt='fork'></img></a>
|
||||
|
||||
## Introduce
|
||||
Wine Runner is a program that help Linux user to run Windows program. However,
|
||||
|
||||

|
||||
|
||||
[](https://gitee.com/gfdgd-xi/deep-wine-runner/stargazers)
|
||||
最后感谢 [@鹤舞白沙](https://bbs.deepin.org/user/227203) 编写的《Wine运行器和Wine打包器傻瓜式使用教程(小白专用)》,链接:https://bbs.deepin.org/post/246837
|
||||
|
||||
Wine Runner Packager Video tutorial: https://www.bilibili.com/video/BV1Bh4y1Q7nT/
|
||||
Wine Runner QQ communication group:762985460
|
||||
|
||||
## Program Support Architecture
|
||||
Runner is able to run for common architecture if these system can run Python.
|
||||
Non-x86 system will use `box86/box64`, `exagear`, `qemu` and so on.
|
||||
|
||||
## Wine Runner Auto Builder(Newest Version)
|
||||
This version can't sure what bug will happen when you are using.
|
||||
Download Website: https://github.com/gfdgd-xi/deep-wine-runner/actions/workflows/auto-building.yml
|
||||
|
||||
## Which App Store You Can Download Wine Runner
|
||||
### Deepin/UOS App Store
|
||||

|
||||
|
||||
### Spark Store
|
||||

|
||||
### Loongson App Store
|
||||

|
||||
|
||||
## Git Branch Introduce
|
||||
### main
|
||||
The main branch
|
||||
|
||||
## Different Of Version(It No longer Distinguishing From 3.1.0)
|
||||
### Normal
|
||||
Normal Version(It usually from Gitee, Github, Gitlink, etc)
|
||||
### `-spark` In Version
|
||||
Install runner from Spark Store
|
||||
### `-uos` In Version
|
||||
Install runner from Deepin/UOS App Store, and you can install without open the develop mode.
|
||||
### `-52` In Version
|
||||
It only release for 52pojie, and some function was removed such as updater, bug uploader and so on.
|
||||

|
||||
Nobody want to see this error when you are using.
|
||||
|
||||
## Program Tips
|
||||
I don't want to write, it's too long and too old.
|
||||
|
||||
## Update Log
|
||||
### 3.4.0.1(August 18th, 2023)
|
||||
1. **Repair some machine tips `无效的压缩参数` when you are packing program in Wine Runner Packager, you also can see this isscue: https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I7SMTJ**
|
||||
2. **Runner support to set program font size, you also can see this isscue: https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I7SAYE**
|
||||
### 3.4.0(August 11th, 2023)
|
||||
1. **Repair Easy Packager can't open and check wine error problem.**
|
||||
2. **Professional Packager support to set different mimetype value for different .desktop file**
|
||||
3. **Repair install runner problem in Ubuntu 23.04**
|
||||
4. **Professional Packager support to save pack info what you are inputing**
|
||||
5. **Deepin23 support run Winetricks with runner**
|
||||
6. **Add video help website**
|
||||
7. and so on
|
||||
169
Resources/LogTemplate/icon.svg
Normal file
|
After Width: | Height: | Size: 14 KiB |
155
Resources/LogTemplate/template.html
Normal file
10
RunCommandWithTerminal.py
Normal file
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env python3
|
||||
import sys
|
||||
from Model import *
|
||||
if len(sys.argv) < 2:
|
||||
print("请加入需要的命令")
|
||||
sys.exit(1)
|
||||
o = ""
|
||||
for i in sys.argv[1:]:
|
||||
o += f"'{i}' "
|
||||
OpenTerminal(o)
|
||||
15
RunVM.sh
@@ -1,17 +1,18 @@
|
||||
#!/bin/bash
|
||||
# 使用系统默认的 bash 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 作者:gfdgd xi
|
||||
# 版本:2.4.1
|
||||
# 更新时间:2022年11月06日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 的 tkinter 构建
|
||||
###########################################################################################
|
||||
cd `dirname $0`
|
||||
which VBoxManage
|
||||
if test $? == 0 ; then
|
||||
VM/VirtualMachine
|
||||
exit
|
||||
fi
|
||||
zenity --info --no-wrap --text="未安装 VirtualBox,请自行安装 VirtualBox 并重新运行"
|
||||
#which VBoxManage
|
||||
#if test $? == 0 ; then
|
||||
# VM/VirtualMachine
|
||||
# exit
|
||||
#fi
|
||||
#zenity --info --no-wrap --text="未安装 VirtualBox,请自行安装 VirtualBox 并重新运行"
|
||||
#./launch.sh deepin-terminal -C "pkexec apt install virtualbox-6.1 -y && zenity --info --text=\"安装完毕,关闭此对话框和安装终端重新运行程序即可\" --no-wrap" --keep-open
|
||||
VM/VirtualMachine
|
||||
108
StartVM.sh
@@ -1,22 +1,118 @@
|
||||
#!/bin/bash
|
||||
# 使用系统默认的 bash 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 作者:gfdgd xi
|
||||
# 版本:1.7.0
|
||||
# 更新时间:2022年07月15日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 的 tkinter 构建
|
||||
###########################################################################################
|
||||
cd `dirname $0`
|
||||
VBoxManage showvminfo Windows
|
||||
if test 0 == $?; then
|
||||
if [[ 0 == $? ]]; then
|
||||
# 检测到虚拟机存在,启动虚拟机
|
||||
VBoxManage startvm Windows
|
||||
VBoxManage startvm Windows > /tmp/windows-virtual-machine-installer-for-wine-runner-run.log 2>&1
|
||||
exit
|
||||
fi
|
||||
# 检查是否有 QEMU
|
||||
which qemu-system-x86_64
|
||||
if [[ $? == 0 ]] && [[ -f "$HOME/Qemu/Windows/Windows.qcow2" ]]; then
|
||||
if [[ -f "$HOME/.config/deepin-wine-runner/QemuSetting.json" ]]; then
|
||||
echo 有设置文件,读设置文件
|
||||
cd `dirname $0`
|
||||
python3 ./VM/StartQemu.py
|
||||
exit
|
||||
fi
|
||||
# 查看CPU个数
|
||||
CpuSocketNum=`cat /proc/cpuinfo | grep "cpu cores" | uniq | wc -l`
|
||||
# 查看CPU核心数
|
||||
CpuCoreNum=`grep 'core id' /proc/cpuinfo | sort -u | wc -l`
|
||||
# 查看逻辑CPU的个数
|
||||
CpuCount=`cat /proc/cpuinfo| grep "processor"| wc -l`
|
||||
# 判断是否检测异常,如果异常则使用默认值
|
||||
if [[ $CpuSocketNum == 0 ]]; then
|
||||
CpuSocketNum=1
|
||||
fi
|
||||
if [[ $CpuCoreNum == 0 ]]; then
|
||||
CpuCoreNum=1
|
||||
fi
|
||||
if [[ $CpuCount == 0 ]]; then
|
||||
CpuCount=2
|
||||
fi
|
||||
# 总内存大小GB
|
||||
MemTotal=`awk '($1 == "MemTotal:"){printf "%.2f\n",$2/1024/1024}' /proc/meminfo`
|
||||
use=$(echo "scale=4; $MemTotal / 3" | bc)
|
||||
|
||||
cat ~/.config/deepin-wine-runner/QEMU-ARCH | grep amd64
|
||||
if [[ $? == 0 ]] || [[ ! -e ~/.config/deepin-wine-runner/QEMU-ARCH ]]; then
|
||||
# amd64 架构
|
||||
if [[ -f $HOME/.config/deepin-wine-runner/QEMU-EFI ]]; then
|
||||
echo 使用 UEFI 启动
|
||||
if [[ -f /usr/share/qemu/OVMF.fd ]]; then
|
||||
qemuUEFI="--bios /usr/share/qemu/OVMF.fd"
|
||||
else
|
||||
if [[ -f `dirname $0`/VM/OVMF.fd ]]; then
|
||||
qemuUEFI="--bios `dirname $0`/VM/OVMF.fd"
|
||||
fi
|
||||
fi
|
||||
echo $qemuUEFI
|
||||
fi
|
||||
./VM/kvm-ok
|
||||
if [[ $? == 0 ]] && [[ `arch` == "x86_64" ]]; then
|
||||
echo X86 架构,使用 kvm 加速
|
||||
qemu-system-x86_64 --enable-kvm -cpu host --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI > /tmp/windows-virtual-machine-installer-for-wine-runner-run.log 2>&1
|
||||
exit
|
||||
fi
|
||||
echo 不使用 kvm 加速
|
||||
qemu-system-x86_64 --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI > /tmp/windows-virtual-machine-installer-for-wine-runner-run.log 2>&1
|
||||
exit
|
||||
fi
|
||||
cat ~/.config/deepin-wine-runner/QEMU-ARCH | grep armhf
|
||||
if [[ $? == 0 ]]; then
|
||||
# armhf 架构
|
||||
# 寻找 UEFI 固件
|
||||
if [[ -f /usr/share/AAVMF/AAVMF32_CODE.fd ]]; then
|
||||
qemuUEFI="--bios /usr/share/AAVMF/AAVMF32_CODE.fd"
|
||||
else
|
||||
if [[ -f ./VM/AAVMF32_CODE.fd ]]; then
|
||||
qemuUEFI="--bios ./VM/AAVMF32_CODE.fd"
|
||||
fi
|
||||
fi
|
||||
echo $qemuUEFI
|
||||
./VM/kvm-ok
|
||||
if [[ $? == 0 ]] && [[ `arch` == "aarch64" ]]; then
|
||||
qemu-system-arm --enable-kvm --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI -cpu max -M virt -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1
|
||||
exit
|
||||
fi
|
||||
qemu-system-arm --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI -cpu max -M virt -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1
|
||||
exit
|
||||
fi
|
||||
cat ~/.config/deepin-wine-runner/QEMU-ARCH | grep aarch64
|
||||
if [[ $? == 0 ]]; then
|
||||
# aarch64 架构
|
||||
# 寻找 UEFI 固件
|
||||
if [[ -f /usr/share/qemu-efi-aarch64/QEMU_EFI.fd ]]; then
|
||||
qemuUEFI="--bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd"
|
||||
else
|
||||
if [[ -f ./VM/QEMU_AARCH64_EFI.fd ]]; then
|
||||
qemuUEFI="--bios ./VM/QEMU_AARCH64_EFI.fd"
|
||||
fi
|
||||
fi
|
||||
echo $qemuUEFI
|
||||
./VM/kvm-ok
|
||||
if [[ $? == 0 ]] && [[ `arch` == "aarch64" ]]; then
|
||||
qemu-system-aarch64 --enable-kvm --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI -cpu max -M virt -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1
|
||||
exit
|
||||
fi
|
||||
qemu-system-aarch64 --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI -cpu max -M virt -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1
|
||||
exit
|
||||
fi
|
||||
|
||||
fi
|
||||
zenity --question --no-wrap --text="检查到您未创建所指定的虚拟机,是否创建虚拟机并继续?\n如果不创建将无法使用"
|
||||
if test 1 == $?; then
|
||||
if [[ 1 == $? ]]; then
|
||||
# 用户不想创建虚拟机,结束
|
||||
exit
|
||||
fi
|
||||
cd `dirname $0`
|
||||
./VM/VirtualMachine
|
||||
|
||||
./VM/VirtualMachine
|
||||
|
||||
@@ -64,13 +64,14 @@ class Ui_MainWindow(object):
|
||||
self.openFile.setObjectName("openFile")
|
||||
self.actionGitlink = QtWidgets.QAction(MainWindow)
|
||||
self.actionGitlink.setCheckable(True)
|
||||
self.actionGitlink.setChecked(True)
|
||||
#self.actionGitlink.setChecked(True)
|
||||
self.actionGitlink.setObjectName("actionGitlink")
|
||||
self.actionGitee = QtWidgets.QAction(MainWindow)
|
||||
self.actionGitee.setCheckable(True)
|
||||
self.actionGitee.setObjectName("actionGitee")
|
||||
self.actionGithub = QtWidgets.QAction(MainWindow)
|
||||
self.actionGithub.setCheckable(True)
|
||||
self.actionGithub.setChecked(True)
|
||||
self.actionGithub.setObjectName("actionGithub")
|
||||
self.action_IPv6 = QtWidgets.QAction(MainWindow)
|
||||
self.action_IPv6.setCheckable(True)
|
||||
@@ -88,9 +89,11 @@ class Ui_MainWindow(object):
|
||||
self.menu.addAction(self.openFile)
|
||||
self.menu.addSeparator()
|
||||
self.menu.addAction(self.exitProgram)
|
||||
self.menu_2.addAction(self.actionGitlink)
|
||||
self.menu_2.addAction(self.actionGitee)
|
||||
self.menu_2.addAction(self.actionGithub)
|
||||
self.menu_2.addAction(self.actionGitlink)
|
||||
|
||||
|
||||
self.menu_2.addAction(self.action_IPv6)
|
||||
self.menu_2.addAction(self.action_2)
|
||||
self.menu_2.addAction(self.action_3)
|
||||
|
||||
12
UpdateTime.py
Normal file
@@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env python3
|
||||
# 更新构建时间
|
||||
import os
|
||||
import json
|
||||
import platform
|
||||
import datetime
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
with open(f"{programPath}/deb/opt/apps/deepin-wine-runner/information.json", "r") as file:
|
||||
info = json.loads(file.read())
|
||||
info["Time"] = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") + " " + platform.platform()
|
||||
with open(f"{programPath}/deb/opt/apps/deepin-wine-runner/information.json", "w") as file:
|
||||
file.write(json.dumps(info, ensure_ascii=False, indent=4))
|
||||
1
VM-source/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.user*
|
||||
@@ -1,24 +0,0 @@
|
||||
QMAKE_CXX.QT_COMPILER_STDCXX = 201402L
|
||||
QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 8
|
||||
QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3
|
||||
QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0
|
||||
QMAKE_CXX.COMPILER_MACROS = \
|
||||
QT_COMPILER_STDCXX \
|
||||
QMAKE_GCC_MAJOR_VERSION \
|
||||
QMAKE_GCC_MINOR_VERSION \
|
||||
QMAKE_GCC_PATCH_VERSION
|
||||
QMAKE_CXX.INCDIRS = \
|
||||
/usr/include/c++/8 \
|
||||
/usr/include/x86_64-linux-gnu/c++/8 \
|
||||
/usr/include/c++/8/backward \
|
||||
/usr/lib/gcc/x86_64-linux-gnu/8/include \
|
||||
/usr/local/include \
|
||||
/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed \
|
||||
/usr/include/x86_64-linux-gnu \
|
||||
/usr/include
|
||||
QMAKE_CXX.LIBDIRS = \
|
||||
/usr/lib/gcc/x86_64-linux-gnu/8 \
|
||||
/usr/lib/x86_64-linux-gnu \
|
||||
/usr/lib \
|
||||
/lib/x86_64-linux-gnu \
|
||||
/lib
|
||||