mirror of
https://gitee.com/gfdgd-xi/deep-wine-runner
synced 2026-08-08 22:13:56 +08:00
Compare commits
15
Commits
3.9.0
..
ae119a7d1a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ae119a7d1a | ||
|
|
f5a65ec92f | ||
|
|
fc9f2f05d2 | ||
|
|
c55ba35827 | ||
|
|
5aca3fb038 | ||
|
|
0ca24b773c | ||
|
|
f43ffa0fac | ||
|
|
5736dd0bfa | ||
|
|
d0071a9e5d | ||
|
|
dbb7a6f9b2 | ||
|
|
8870ec6764 | ||
|
|
006b8ae773 | ||
|
|
3cd38c0032 | ||
|
|
d19453bb22 | ||
|
|
cca44603c2 |
@@ -4,3 +4,4 @@ __pycache__
|
|||||||
VM-source/Makefile
|
VM-source/Makefile
|
||||||
*.rpm
|
*.rpm
|
||||||
*.pro.user
|
*.pro.user
|
||||||
|
.vscode
|
||||||
|
|||||||
@@ -1,18 +1,22 @@
|
|||||||
<p width=100px align="center"><img src="https://storage.deepin.org/thread/202208031419283599_deepin-wine-runner.png"></p>
|
<p width=100px align="center"><img src="https://storage.deepin.org/thread/202208031419283599_deepin-wine-runner.png"></p>
|
||||||
<h1 align="center">Wine 运行器 3.8.1</h1>
|
<h1 align="center">Wine 运行器 3.9.1</h1>
|
||||||
<hr>
|
<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/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>
|
<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 安装器、微型应用商店、各种Wine工具、自制的Wine程序打包器、运行库安装工具等。
|
Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程序。原版的 Wine 只能使用命令操作,且安装过程较为繁琐,对小白不友好。于是该运行器为了解决该痛点,内置了对Wine图形化的支持、Wine 安装器、微型应用商店、各种Wine工具、自制的Wine程序打包器、运行库安装工具等。
|
||||||
它同时还内置了基于Qemu/VirtualBox制作的、专供小白使用的Windows虚拟机安装工具,可以做到只需下载系统镜像并点击安装即可,无需考虑虚拟机的安装、创建、分区等操作,也能在非 X86 架构安装 X86 架构的 Windows 操作系统(但是效率较低,可以运行些老系统)。
|
它同时还内置了基于Qemu/VirtualBox制作的、专供小白使用的Windows虚拟机安装工具,可以做到只需下载系统镜像并点击安装即可,无需考虑虚拟机的安装、创建、分区等操作,也能在非 X86 架构安装 X86 架构的 Windows 操作系统(但是效率较低,可以运行些老系统)。
|
||||||
|
|
||||||
而且对于部分 Wine 应用适配者来说,提供了图形化的打包工具,以及提供了一些常用工具以及运行库的安装方式,以及能安装多种不同的 Wine 以测试效果,能极大提升适配效率。
|
而且对于部分 Wine 应用适配者来说,提供了图形化的打包工具,以及提供了一些常用工具以及运行库的安装方式,以及能安装多种不同的 Wine 以测试效果,能极大提升适配效率。
|
||||||
且对于 Deepin23 用户做了特别优化,以便能在缺少 i386 运行库的情况下运行 Wine32。同时也为非 X86 架构用户提供了 Box86/64、Qemu User 的安装方式
|
且对于 Deepin23 用户做了特别优化,以便能在缺少 i386 运行库的情况下运行 Wine32。同时也为非 X86 架构用户提供了 Box86/64、Qemu User 的安装方式
|
||||||
|
|
||||||
注:
|
注:
|
||||||
**在使用运行器时不要随便动 .deepinwine 下的容器,否则会导致安装的 wine 应用无法正常打开**
|
**在使用运行器时不要随便动 .deepinwine 下的容器,否则会导致安装的 wine 应用无法正常打开**
|
||||||
**除非你有把握不会损坏容器**
|
**除非你有把握不会损坏容器**
|
||||||
|
|
||||||
|
|
||||||
|
Wine Runner is a program that allows Linux users to run Windows applications more conveniently. It has built-in support for Wine graphics, various Wine tools, self-made Wine program packager and runtime installation tools. It also has a built-in Windows virtual machine installation tool based on VirtualBox, which is specially used by Xiaobai. You can download the system image and click Install without considering the installation, creation and partitioning of virtual machines.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -23,6 +27,16 @@ Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程
|
|||||||
Wine 运行器 QQ 交流群:762985460
|
Wine 运行器 QQ 交流群:762985460
|
||||||
Wine 运行器离线包下载地址:https://www.123pan.com/s/pDSKVv-pAJWv.html
|
Wine 运行器离线包下载地址:https://www.123pan.com/s/pDSKVv-pAJWv.html
|
||||||
|
|
||||||
|
### 如何手动下载 Wine?
|
||||||
|
下载链接: http://ctfile.gfdgdxi.top/d/31540479-61624693-080e74?p=2061 (访问密码: 2061)
|
||||||
|
|
||||||
|
### 如果使用更新版本的 Qemu?
|
||||||
|
后续版本将支持调用以下链接 deb 包安装的 Qemu
|
||||||
|
Wine运行器Qemu: http://ctfile.gfdgdxi.top/d/31540479-61635610-54327c?p=2061 (访问密码: 2061)
|
||||||
|
https://sourceforge.net/projects/deep-wine-runner/files/Wine%20Runner%20Qemu%20Extra/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Debian sid 依赖
|
### Debian sid 依赖
|
||||||
https://gfdgdxi.lanzouw.com/b0plly5cj
|
https://gfdgdxi.lanzouw.com/b0plly5cj
|
||||||
密码:b346
|
密码:b346
|
||||||
@@ -143,6 +157,10 @@ desktop文件中StartupWMClass字段。用于让桌面组件将窗口类名与de
|
|||||||

|

|
||||||
|
|
||||||
## 更新日志
|
## 更新日志
|
||||||
|
### 3.9.1(2024/06/07)
|
||||||
|
**※1、修复 Windows 虚拟机安装工具安装程序在 Mips 架构无法正确启动虚拟机的问题**
|
||||||
|
**※2、优化打包器依赖**
|
||||||
|
|
||||||
### 3.9.0(2024年06月01日)
|
### 3.9.0(2024年06月01日)
|
||||||
**※1、UOS Mips64(如 3a4000)用户无需手动降级 Qemu 即可正常开启使用虚拟机**
|
**※1、UOS Mips64(如 3a4000)用户无需手动降级 Qemu 即可正常开启使用虚拟机**
|
||||||
**※2、修复开启部分 exe 提示参数有误的问题**
|
**※2、修复开启部分 exe 提示参数有误的问题**
|
||||||
@@ -173,6 +191,16 @@ desktop文件中StartupWMClass字段。用于让桌面组件将窗口类名与de
|
|||||||
8、修复问题 https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I9B4L0
|
8、修复问题 https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I9B4L0
|
||||||
9、针对 Loongarch ACE 做特别优化
|
9、针对 Loongarch ACE 做特别优化
|
||||||
|
|
||||||
|
**※1. Repair system/application library download failed problem**
|
||||||
|
**※2. Support building loong64, loongarch64, armhf and amd64 architecture deb with packager**
|
||||||
|
**※3. Update Geek Uninstaller version**
|
||||||
|
**※4. Enable English translation by default**
|
||||||
|
**※5. Update dxvk version**
|
||||||
|
**※6. Repair virtual machine running problem with newer Qemu**
|
||||||
|
**※7. Support adding space with Qemu virtual disk**
|
||||||
|
8. Fixed an issue related to https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I9B4L0
|
||||||
|
9. Added support for Loongarch ACE
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
@@ -718,8 +746,8 @@ Sourceforge:https://sourceforge.com/projects/deep-wine-runner
|
|||||||
(屏蔽微信在Wine中运行时产生的水印/黑块?可以参考:https://12101111.github.io/block-wine-wechat-black-window/ 和 https://blog.csdn.net/ericden/article/details/122118443 )
|
(屏蔽微信在Wine中运行时产生的水印/黑块?可以参考:https://12101111.github.io/block-wine-wechat-black-window/ 和 https://blog.csdn.net/ericden/article/details/122118443 )
|
||||||
### 拉取
|
### 拉取
|
||||||
***(需要先安装 Docker 后再输入以下命令)***
|
***(需要先安装 Docker 后再输入以下命令)***
|
||||||
|
Docker 镜像下载链接:
|
||||||
```bash
|
```bash
|
||||||
wget https://code.gitlink.org.cn/gfdgd_xi/wine-building-docker/raw/branch/master/wine-latest-debian10.tar.gz
|
|
||||||
sudo docker load -i wine-latest-debian10.tar.gz
|
sudo docker load -i wine-latest-debian10.tar.gz
|
||||||
```
|
```
|
||||||
### 启用
|
### 启用
|
||||||
|
|||||||
+50
@@ -0,0 +1,50 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
def Replace(path):
|
||||||
|
"spark-dwine-helper | store.spark-app.spark-dwine-helper"
|
||||||
|
"deepin-wine-helper (>= 5.1.30-1)"
|
||||||
|
"com.wine-helper.deepin"
|
||||||
|
with open(f"{path}/DEBIAN/control", "r") as file:
|
||||||
|
data = file.read()
|
||||||
|
|
||||||
|
isReplace = False
|
||||||
|
isSparkHelper = False
|
||||||
|
# 替换 Wine 包名
|
||||||
|
data = data.replace("deepin-wine6-stable,", "deepin-wine6-stable | com.deepin-wine6-stable.deepin,")
|
||||||
|
data = data.replace("deepin-wine6-stable | deepin-wine6-stable-bcm | deepin-wine6-stable-dcm,", "deepin-wine6-stable | deepin-wine6-stable-bcm | deepin-wine6-stable-dcm | com.deepin-wine6-stable.deepin,")
|
||||||
|
if "spark-dwine-helper | store.spark-app.spark-dwine-helper" in data and not isReplace:
|
||||||
|
isReplace = True
|
||||||
|
isSparkHelper = True
|
||||||
|
data = data.replace("spark-dwine-helper | store.spark-app.spark-dwine-helper", "deepin-wine-helper | com.wine-helper.deepin")
|
||||||
|
|
||||||
|
if "deepin-wine-helper (>= 5.1.30-1)" in data and not isReplace:
|
||||||
|
isReplace = True
|
||||||
|
data = data.replace("deepin-wine-helper (>= 5.1.30-1)", "deepin-wine-helper | com.wine-helper.deepin")
|
||||||
|
with open(f"{path}/DEBIAN/control", "w") as file:
|
||||||
|
file.write(data)
|
||||||
|
if isSparkHelper:
|
||||||
|
ReplaceSparkHelper(path)
|
||||||
|
|
||||||
|
def ReplaceSparkHelper(path):
|
||||||
|
name = os.listdir(f"{path}/opt/apps/")[0]
|
||||||
|
with open(f"{path}/opt/apps/{name}/files/run.sh", "r") as file:
|
||||||
|
data = file.read().replace("/opt/deepinwine/tools/spark_run_v4.sh", "/opt/deepinwine/tools/run_v4.sh")
|
||||||
|
with open(f"{path}/opt/apps/{name}/files/run.sh", "w") as file:
|
||||||
|
file.write(data)
|
||||||
|
|
||||||
|
if len(sys.argv) <= 1:
|
||||||
|
print(f"请加参数,命令示例: {sys.argv[0]} xxx.deb")
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
tempPath = "/tmp/turn-deb"
|
||||||
|
for i in sys.argv[1:]:
|
||||||
|
os.system(f"rm -rf '{tempPath}'")
|
||||||
|
os.system(f"dpkg -x '{i}' '{tempPath}'")
|
||||||
|
os.system(f"dpkg -e '{i}' '{tempPath}/DEBIAN'")
|
||||||
|
fileName = os.path.splitext(i)[0]
|
||||||
|
# 修改 control 文件
|
||||||
|
Replace(tempPath)
|
||||||
|
|
||||||
|
os.system(f"dpkg-deb -Z xz -z 0 -b '{tempPath}' '{fileName}-new.deb'")
|
||||||
+26
-8
@@ -22,8 +22,12 @@ qemu::qemu(QString name, QString managerPath)
|
|||||||
}
|
}
|
||||||
this->managerPath = managerPath;
|
this->managerPath = managerPath;
|
||||||
//Command command = Command();
|
//Command command = Command();
|
||||||
|
QString qemuPath = "qemu-system-i386";
|
||||||
this->vboxVersion = Command().GetCommand("'" + managerPath + "qemu-system-i386' --version");
|
if(QFile::exists("/opt/apps/deepin-wine-runner-qemu-system-extra/files/run.sh")) {
|
||||||
|
// 如果存在拓展 Qemu,则调用此
|
||||||
|
qemuPath = "/opt/apps/deepin-wine-runner-qemu-system-extra/files/run.sh qemu-system-i386";
|
||||||
|
}
|
||||||
|
this->vboxVersion = Command().GetCommand(qemuPath + " --version");
|
||||||
}
|
}
|
||||||
|
|
||||||
int qemu::Create(QString type)
|
int qemu::Create(QString type)
|
||||||
@@ -108,15 +112,21 @@ int qemu::MountMainDisk(QString diskPath)
|
|||||||
int qemu::StartArmhf()
|
int qemu::StartArmhf()
|
||||||
{
|
{
|
||||||
qDebug() << commandOption;
|
qDebug() << commandOption;
|
||||||
if(Command().GetCommand("arch").replace("\n", "").replace(" ", "") == "aarch64" && !system((QCoreApplication::applicationDirPath() + "/kvm-ok").toUtf8())){
|
QString qemuPath = "qemu-system-arm";
|
||||||
return system(("qemu-system-arm --boot 'splash=" + GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display vnc=:5 -display gtk --enable-kvm -cpu host -M virt " + commandOption + " -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 &").toLatin1());
|
if(QFile::exists("/opt/apps/deepin-wine-runner-qemu-system-extra/files/run.sh")) {
|
||||||
|
// 如果存在拓展 Qemu,则调用此
|
||||||
|
qemuPath = "/opt/apps/deepin-wine-runner-qemu-system-extra/files/run.sh qemu-system-arm";
|
||||||
}
|
}
|
||||||
return system(("qemu-system-arm --boot 'splash=" + GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display vnc=:5 -display gtk -cpu max -M virt " + commandOption + " -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 &").toLatin1());
|
if(Command().GetCommand("arch").replace("\n", "").replace(" ", "") == "aarch64" && !system((QCoreApplication::applicationDirPath() + "/kvm-ok").toUtf8())){
|
||||||
|
return system((qemuPath + " --boot 'splash=" + GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display vnc=:5 -display gtk --enable-kvm -cpu host -M virt " + commandOption + " -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 &").toLatin1());
|
||||||
|
}
|
||||||
|
return system((qemuPath + " --boot 'splash=" + GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display vnc=:5 -display gtk -cpu max -M virt " + commandOption + " -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 &").toLatin1());
|
||||||
}
|
}
|
||||||
|
|
||||||
int qemu::StartAarch64()
|
int qemu::StartAarch64()
|
||||||
{
|
{
|
||||||
QString bootScreenLogo = "";
|
QString bootScreenLogo = "";
|
||||||
|
QString qemuPath = "qemu-system-aarch64";
|
||||||
// 判断 boot 文件是否存在
|
// 判断 boot 文件是否存在
|
||||||
if(QFile::exists(QCoreApplication::applicationDirPath() + "/boot.jpg")) {
|
if(QFile::exists(QCoreApplication::applicationDirPath() + "/boot.jpg")) {
|
||||||
bootScreenLogo = QCoreApplication::applicationDirPath() + "/boot.jpg";
|
bootScreenLogo = QCoreApplication::applicationDirPath() + "/boot.jpg";
|
||||||
@@ -126,11 +136,15 @@ int qemu::StartAarch64()
|
|||||||
QFile::copy(":/boot.jpg", "/tmp/deep-wine-runner-boot.jpg");
|
QFile::copy(":/boot.jpg", "/tmp/deep-wine-runner-boot.jpg");
|
||||||
bootScreenLogo = "/tmp/deep-wine-runner-boot.jpg";
|
bootScreenLogo = "/tmp/deep-wine-runner-boot.jpg";
|
||||||
}
|
}
|
||||||
|
if(QFile::exists("/opt/apps/deepin-wine-runner-qemu-system-extra/files/run.sh")) {
|
||||||
|
// 如果存在拓展 Qemu,则调用此
|
||||||
|
qemuPath = "/opt/apps/deepin-wine-runner-qemu-system-extra/files/run.sh qemu-system-aarch64";
|
||||||
|
}
|
||||||
qDebug() << commandOption;
|
qDebug() << commandOption;
|
||||||
if(Command().GetCommand("arch").replace("\n", "").replace(" ", "") == "aarch64" && !system((QCoreApplication::applicationDirPath() + "/kvm-ok").toUtf8())){
|
if(Command().GetCommand("arch").replace("\n", "").replace(" ", "") == "aarch64" && !system((QCoreApplication::applicationDirPath() + "/kvm-ok").toUtf8())){
|
||||||
return system(("qemu-system-aarch64 --boot 'splash=" + GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display vnc=:5 -display gtk --enable-kvm -cpu host -M virt " + commandOption + " -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 &").toLatin1());
|
return system((qemuPath + " --boot 'splash=" + GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display vnc=:5 -display gtk --enable-kvm -cpu host -M virt " + commandOption + " -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 &").toLatin1());
|
||||||
}
|
}
|
||||||
return system(("qemu-system-aarch64 --boot 'splash=" + GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display vnc=:5 -display gtk -cpu max -M virt " + commandOption + " -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 &").toLatin1());
|
return system((qemuPath + " --boot 'splash=" + GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display vnc=:5 -display gtk -cpu max -M virt " + commandOption + " -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 &").toLatin1());
|
||||||
}
|
}
|
||||||
|
|
||||||
int qemu::StartLoong64()
|
int qemu::StartLoong64()
|
||||||
@@ -158,6 +172,10 @@ int qemu::Start(bool unShown)
|
|||||||
qemuPath = "bwrap --dev-bind / / --bind '" + QCoreApplication::applicationDirPath() + "/MipsQemu/usr/lib/mips64el-linux-gnuabi64/qemu/ui-gtk.so' /usr/lib/mips64el-linux-gnuabi64/qemu/ui-gtk.so '" + QCoreApplication::applicationDirPath() + "/MipsQemu/usr/bin/qemu-system-x86_64' ";
|
qemuPath = "bwrap --dev-bind / / --bind '" + QCoreApplication::applicationDirPath() + "/MipsQemu/usr/lib/mips64el-linux-gnuabi64/qemu/ui-gtk.so' /usr/lib/mips64el-linux-gnuabi64/qemu/ui-gtk.so '" + QCoreApplication::applicationDirPath() + "/MipsQemu/usr/bin/qemu-system-x86_64' ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(QFile::exists("/opt/apps/deepin-wine-runner-qemu-system-extra/files/run.sh")) {
|
||||||
|
// 如果存在拓展 Qemu,则调用此
|
||||||
|
qemuPath = "/opt/apps/deepin-wine-runner-qemu-system-extra/files/run.sh qemu-system-x86_64";
|
||||||
|
}
|
||||||
qDebug() << commandOption;
|
qDebug() << commandOption;
|
||||||
if(Command().GetCommand("arch").replace("\n", "").replace(" ", "") == "x86_64" && !system((QCoreApplication::applicationDirPath() + "/kvm-ok").toUtf8())){
|
if(Command().GetCommand("arch").replace("\n", "").replace(" ", "") == "x86_64" && !system((QCoreApplication::applicationDirPath() + "/kvm-ok").toUtf8())){
|
||||||
return system((qemuPath + " --boot 'splash=" + GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display vnc=:5 -display gtk --enable-kvm -cpu host " + newCommandOption + " > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
|
return system((qemuPath + " --boot 'splash=" + GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display vnc=:5 -display gtk --enable-kvm -cpu host " + newCommandOption + " > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
|
||||||
@@ -331,7 +349,7 @@ QString qemu::GetArch()
|
|||||||
process.start("uname", QStringList() << "-m");
|
process.start("uname", QStringList() << "-m");
|
||||||
process.waitForStarted();
|
process.waitForStarted();
|
||||||
process.waitForFinished();
|
process.waitForFinished();
|
||||||
QString data = process.readAllStandardError();
|
QString data = process.readAllStandardOutput();
|
||||||
process.close();
|
process.close();
|
||||||
return data.replace("\n", "").replace(" ", "");
|
return data.replace("\n", "").replace(" ", "");
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
+2
-2
@@ -8,8 +8,8 @@ Certainty: possible
|
|||||||
Check: binaries
|
Check: binaries
|
||||||
Type: binary, udeb
|
Type: binary, udeb
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Depends: python3, python3-pil, python3-pil.imagetk, python3-pyquery, aria2, curl, unrar | unrar-free , unzip, python3-requests, python3-pyqt5, python3-psutil, xfce4-terminal | deepin-terminal | mate-terminal | gnome-terminal, python3-dbus, python3-pip, p7zip-full (<< 16.02+transitional.1) | p7zip-legacy (>= 16.02+dfsg-8+Mejituu-2024022216), sudo, python3-pyperclip, bubblewrap, zenity, tree, dpkg, fakeroot
|
Depends: python3, python3-pil, python3-pil.imagetk, python3-pyquery, aria2, curl, unrar | unrar-free , unzip, python3-requests, python3-pyqt5, python3-psutil, xfce4-terminal | deepin-terminal | mate-terminal | gnome-terminal, python3-dbus, python3-pip, p7zip-full | p7zip-legacy, sudo, python3-pyperclip, bubblewrap, zenity, tree, dpkg, fakeroot
|
||||||
Recommends: winbind, wimtools, python3-pyqt5.qtwebengine, binfmt-support, libc6:i386, libc6:armhf, libwine, qemu-system, qemu-full, alien
|
Recommends: winbind, wimtools, python3-pyqt5.qtwebengine, binfmt-support, libc6:i386, libc6:armhf, libwine, qemu-system, qemu-full, alien, spark-deepin-wine-runner-qemu-system-extra, deepin-wine8-stable | spark-wine | spark-wine9 | spark-wine9-wow | spark-wine8 | spark-wine8-wow | spark-wine7-devel | deepin-wine6-stable | deepin-wine5-stable | deepin-wine5 | deepin-wine | wine
|
||||||
Section: utils
|
Section: utils
|
||||||
Conflicts: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer, spark-deepin-wine-runner-52
|
Conflicts: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer, spark-deepin-wine-runner-52
|
||||||
Replaces: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer, spark-deepin-wine-runner-52
|
Replaces: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer, spark-deepin-wine-runner-52
|
||||||
|
|||||||
@@ -210,7 +210,6 @@ Get_Dist_Name()
|
|||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
####获得发行版名称
|
####获得发行版名称
|
||||||
|
|
||||||
#########################预设值段
|
#########################预设值段
|
||||||
@@ -221,9 +220,15 @@ BOTTLENAME="@@@Package@@@"
|
|||||||
APPVER="@@@Version@@@"
|
APPVER="@@@Version@@@"
|
||||||
EXEC_PATH="@@@EXEC_PATH@@@"
|
EXEC_PATH="@@@EXEC_PATH@@@"
|
||||||
##### 软件在wine中的启动路径
|
##### 软件在wine中的启动路径
|
||||||
START_SHELL_PATH="/opt/deepinwine/tools/spark_run_v4.sh"
|
if [ -e "/opt/deepinwine/tools/spark_run_v4.sh"] ;then
|
||||||
|
START_SHELL_PATH="/opt/deepinwine/tools/spark_run_v4.sh"
|
||||||
|
else
|
||||||
|
START_SHELL_PATH="/opt/deepinwine/tools/run_v4.sh"
|
||||||
|
fi
|
||||||
ENABLE_DOT_NET=""
|
ENABLE_DOT_NET=""
|
||||||
####若使用spark-wine时需要用到.net,则请把ENABLE_DOT_NET设为true,同时在依赖中写spark-wine7-mono
|
####若使用spark-wine时需要用到.net,则请把ENABLE_DOT_NET设为true,同时在依赖中写spark-wine7-mono
|
||||||
|
#export BOX86_EMU_CMD="/opt/spark-box86/box86"
|
||||||
|
####仅在Arm且不可使用exagear时可用,作用是强制使用box86而不是deepin-box86.如果你想要这样做,请取消注释
|
||||||
export MIME_TYPE=""
|
export MIME_TYPE=""
|
||||||
|
|
||||||
export DEB_PACKAGE_NAME="@@@Package@@@"
|
export DEB_PACKAGE_NAME="@@@Package@@@"
|
||||||
@@ -264,7 +269,7 @@ fi
|
|||||||
##默认屏蔽mono和gecko安装器
|
##默认屏蔽mono和gecko安装器
|
||||||
if [ "$APPRUN_CMD" = "spark-wine7-devel" ] || [ "$APPRUN_CMD" = "spark-wine" ]|| [ "$APPRUN_CMD" = "spark-wine8" ] && [ -z "$ENABLE_DOT_NET" ];then
|
if [ "$APPRUN_CMD" = "spark-wine7-devel" ] || [ "$APPRUN_CMD" = "spark-wine" ]|| [ "$APPRUN_CMD" = "spark-wine8" ] && [ -z "$ENABLE_DOT_NET" ];then
|
||||||
|
|
||||||
export WINEDLLOVERRIDES="mscoree=d,mshtml=d"
|
#export WINEDLLOVERRIDES="mscoree=d,mshtml=d,control.exe=d"
|
||||||
export WINEDLLOVERRIDES="control.exe=d"
|
export WINEDLLOVERRIDES="control.exe=d"
|
||||||
#### "为了降低打包体积,默认关闭gecko和momo,如有需要,注释此行(仅对spark-wine7-devel有效)"
|
#### "为了降低打包体积,默认关闭gecko和momo,如有需要,注释此行(仅对spark-wine7-devel有效)"
|
||||||
|
|
||||||
@@ -293,6 +298,9 @@ if [ -n "$EXEC_PATH" ];then
|
|||||||
else
|
else
|
||||||
$START_SHELL_PATH $BOTTLENAME $APPVER "uninstaller.exe" "$@"
|
$START_SHELL_PATH $BOTTLENAME $APPVER "uninstaller.exe" "$@"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
'''
|
'''
|
||||||
|
|
||||||
desktopFile = f'''#!/usr/bin/env xdg-open
|
desktopFile = f'''#!/usr/bin/env xdg-open
|
||||||
@@ -549,7 +557,7 @@ class RunThread(QtCore.QThread):
|
|||||||
self.RunCommand(f"cp -rv '{folderExePath}' '{bottlePath}/drive_c/Program Files'")
|
self.RunCommand(f"cp -rv '{folderExePath}' '{bottlePath}/drive_c/Program Files'")
|
||||||
debPackageVersion = self.GetEXEVersion(exePath.text(), bottlePath)
|
debPackageVersion = self.GetEXEVersion(exePath.text(), bottlePath)
|
||||||
debDescription = f"{exeName} By Build By Wine Runner Easy Packager"
|
debDescription = f"{exeName} By Build By Wine Runner Easy Packager"
|
||||||
debDepends = f"{chooseWine} | {chooseWine}-bcm | {chooseWine}-dcm, spark-dwine-helper | store.spark-app.spark-dwine-helper, fonts-wqy-microhei, fonts-wqy-zenhei"
|
debDepends = f"{chooseWine} | {chooseWine}-bcm | {chooseWine}-dcm | com.{chooseWine}.deepin, spark-dwine-helper | store.spark-app.spark-dwine-helper | deepin-wine-helper | com.wine-helper.deepin, fonts-wqy-microhei, fonts-wqy-zenhei"
|
||||||
self.RunCommand(f"mkdir -pv '{debBuildPath}/DEBIAN'")
|
self.RunCommand(f"mkdir -pv '{debBuildPath}/DEBIAN'")
|
||||||
self.RunCommand(f"mkdir -pv '{debBuildPath}/opt/apps/{debPackageName}/files'")
|
self.RunCommand(f"mkdir -pv '{debBuildPath}/opt/apps/{debPackageName}/files'")
|
||||||
self.RunCommand(f"mkdir -pv '{debBuildPath}/opt/apps/{debPackageName}/entries/applications'")
|
self.RunCommand(f"mkdir -pv '{debBuildPath}/opt/apps/{debPackageName}/entries/applications'")
|
||||||
|
|||||||
+117
-64
@@ -409,8 +409,8 @@ class make_deb_threading(QtCore.QThread):
|
|||||||
"Wine": wine[wineVersion.currentText()],
|
"Wine": wine[wineVersion.currentText()],
|
||||||
"Architecture": debFirstArch.currentText(),
|
"Architecture": debFirstArch.currentText(),
|
||||||
"Depends": [
|
"Depends": [
|
||||||
f"{wine[wineVersion.currentText()]}, deepin-wine-helper (>= 5.1.30-1), fonts-wqy-microhei, fonts-wqy-zenhei",
|
f"{wine[wineVersion.currentText()]}, deepin-wine-helper | com.wine-helper.deepin, fonts-wqy-microhei, fonts-wqy-zenhei",
|
||||||
f"{wine[wineVersion.currentText()]}, spark-dwine-helper | store.spark-app.spark-dwine-helper, fonts-wqy-microhei, fonts-wqy-zenhei"
|
f"{wine[wineVersion.currentText()]}, spark-dwine-helper | store.spark-app.spark-dwine-helper | deepin-wine-helper | com.wine-helper.deepin, fonts-wqy-microhei, fonts-wqy-zenhei"
|
||||||
][int(chooseWineHelperValue.isChecked())],
|
][int(chooseWineHelperValue.isChecked())],
|
||||||
"postinst": ['', f'''#!/bin/bash
|
"postinst": ['', f'''#!/bin/bash
|
||||||
PACKAGE_NAME="{e1_text.text()}"
|
PACKAGE_NAME="{e1_text.text()}"
|
||||||
@@ -527,7 +527,6 @@ Get_Dist_Name()
|
|||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
####获得发行版名称
|
####获得发行版名称
|
||||||
|
|
||||||
#########################预设值段
|
#########################预设值段
|
||||||
@@ -538,12 +537,17 @@ BOTTLENAME="@@@BOTTLENAME@@@"
|
|||||||
APPVER="@@@APPVER@@@"
|
APPVER="@@@APPVER@@@"
|
||||||
EXEC_PATH="@@@EXEC_PATH@@@"
|
EXEC_PATH="@@@EXEC_PATH@@@"
|
||||||
##### 软件在wine中的启动路径
|
##### 软件在wine中的启动路径
|
||||||
START_SHELL_PATH="/opt/deepinwine/tools/spark_run_v4.sh"
|
if [ -e "/opt/deepinwine/tools/spark_run_v4.sh"] ;then
|
||||||
{['''ENABLE_DOT_NET=true''', 'ENABLE_DOT_NET=""'][int(disabledMono.isChecked())]}
|
START_SHELL_PATH="/opt/deepinwine/tools/spark_run_v4.sh"
|
||||||
|
else
|
||||||
|
START_SHELL_PATH="/opt/deepinwine/tools/run_v4.sh"
|
||||||
|
fi
|
||||||
|
ENABLE_DOT_NET=""
|
||||||
####若使用spark-wine时需要用到.net,则请把ENABLE_DOT_NET设为true,同时在依赖中写spark-wine7-mono
|
####若使用spark-wine时需要用到.net,则请把ENABLE_DOT_NET设为true,同时在依赖中写spark-wine7-mono
|
||||||
|
#export BOX86_EMU_CMD="/opt/spark-box86/box86"
|
||||||
|
####仅在Arm且不可使用exagear时可用,作用是强制使用box86而不是deepin-box86.如果你想要这样做,请取消注释
|
||||||
export MIME_TYPE=""
|
export MIME_TYPE=""
|
||||||
|
|
||||||
|
|
||||||
export DEB_PACKAGE_NAME="@@@DEB_PACKAGE_NAME@@@"
|
export DEB_PACKAGE_NAME="@@@DEB_PACKAGE_NAME@@@"
|
||||||
####这里写包名才能在启动的时候正确找到files.7z,似乎也和杀残留进程有关
|
####这里写包名才能在启动的时候正确找到files.7z,似乎也和杀残留进程有关
|
||||||
export APPRUN_CMD="@@@APPRUN_CMD@@@"
|
export APPRUN_CMD="@@@APPRUN_CMD@@@"
|
||||||
@@ -582,7 +586,7 @@ fi
|
|||||||
##默认屏蔽mono和gecko安装器
|
##默认屏蔽mono和gecko安装器
|
||||||
if [ "$APPRUN_CMD" = "spark-wine7-devel" ] || [ "$APPRUN_CMD" = "spark-wine" ]|| [ "$APPRUN_CMD" = "spark-wine8" ] && [ -z "$ENABLE_DOT_NET" ];then
|
if [ "$APPRUN_CMD" = "spark-wine7-devel" ] || [ "$APPRUN_CMD" = "spark-wine" ]|| [ "$APPRUN_CMD" = "spark-wine8" ] && [ -z "$ENABLE_DOT_NET" ];then
|
||||||
|
|
||||||
export WINEDLLOVERRIDES="mscoree=d,mshtml=d"
|
#export WINEDLLOVERRIDES="mscoree=d,mshtml=d,control.exe=d"
|
||||||
export WINEDLLOVERRIDES="control.exe=d"
|
export WINEDLLOVERRIDES="control.exe=d"
|
||||||
#### "为了降低打包体积,默认关闭gecko和momo,如有需要,注释此行(仅对spark-wine7-devel有效)"
|
#### "为了降低打包体积,默认关闭gecko和momo,如有需要,注释此行(仅对spark-wine7-devel有效)"
|
||||||
|
|
||||||
@@ -611,6 +615,9 @@ if [ -n "$EXEC_PATH" ];then
|
|||||||
else
|
else
|
||||||
$START_SHELL_PATH $BOTTLENAME $APPVER "uninstaller.exe" "$@"
|
$START_SHELL_PATH $BOTTLENAME $APPVER "uninstaller.exe" "$@"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
][chooseWineHelperValue.isChecked()],
|
][chooseWineHelperValue.isChecked()],
|
||||||
"info": f'''{{
|
"info": f'''{{
|
||||||
@@ -1003,52 +1010,110 @@ echo "非卸载,跳过清理"
|
|||||||
fi
|
fi
|
||||||
"""][int(rmBash.isChecked())],
|
"""][int(rmBash.isChecked())],
|
||||||
|
|
||||||
# 又又又改
|
|
||||||
"run.sh": f"""#!/bin/bash
|
"run.sh": f"""
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
# Copyright (C) 2016 Deepin, Inc.
|
# Copyright (C) 2016 Deepin, Inc.
|
||||||
#
|
#
|
||||||
# Author: Li LongYu <lilongyu@linuxdeepin.com>
|
# Author: Li LongYu <lilongyu@linuxdeepin.com>
|
||||||
# Peng Hao <penghao@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'
|
||||||
|
elif grep -Eqi "UOS" /etc/issue || grep -Eq "UOS" /etc/*-release; then
|
||||||
|
DISTRO='UniontechOS'
|
||||||
|
else
|
||||||
|
DISTRO='OtherOS'
|
||||||
|
fi
|
||||||
|
}}
|
||||||
|
|
||||||
|
|
||||||
|
####获得发行版名称
|
||||||
|
|
||||||
|
#########################预设值段
|
||||||
|
|
||||||
version_gt() {{ test "$(echo "$@" | tr " " "\n" | sort -V | head -n 1)" != "$1"; }}
|
version_gt() {{ test "$(echo "$@" | tr " " "\n" | sort -V | head -n 1)" != "$1"; }}
|
||||||
|
####用于比较版本?未实装
|
||||||
ACTIVEX_NAME=""
|
|
||||||
BOTTLENAME="@@@BOTTLENAME@@@"
|
BOTTLENAME="@@@BOTTLENAME@@@"
|
||||||
APPVER="@@@APPVER@@@"
|
APPVER="@@@APPVER@@@"
|
||||||
EXEC_PATH="@@@EXEC_PATH@@@"
|
EXEC_PATH="@@@EXEC_PATH@@@"
|
||||||
START_SHELL_PATH="{['/opt/deepinwine/tools/run_v4.sh', '/opt/deepinwine/tools/spark_run_v4.sh'][chooseWineHelperValue.isChecked()]}"
|
##### 软件在wine中的启动路径
|
||||||
|
if [ -e "/opt/deepinwine/tools/spark_run_v4.sh"] ;then
|
||||||
|
START_SHELL_PATH="/opt/deepinwine/tools/spark_run_v4.sh"
|
||||||
|
else
|
||||||
|
START_SHELL_PATH="/opt/deepinwine/tools/run_v4.sh"
|
||||||
|
fi
|
||||||
|
ENABLE_DOT_NET=""
|
||||||
|
####若使用spark-wine时需要用到.net,则请把ENABLE_DOT_NET设为true,同时在依赖中写spark-wine7-mono
|
||||||
|
#export BOX86_EMU_CMD="/opt/spark-box86/box86"
|
||||||
|
####仅在Arm且不可使用exagear时可用,作用是强制使用box86而不是deepin-box86.如果你想要这样做,请取消注释
|
||||||
export MIME_TYPE=""
|
export MIME_TYPE=""
|
||||||
export MIME_EXEC=""
|
|
||||||
export DEB_PACKAGE_NAME="{e1_text.text()}"
|
export DEB_PACKAGE_NAME="{e1_text.text()}"
|
||||||
export APPRUN_CMD="deepin-wine6-stable"
|
####这里写包名才能在启动的时候正确找到files.7z,似乎也和杀残留进程有关
|
||||||
DISABLE_ATTACH_FILE_DIALOG=""
|
export APPRUN_CMD="@@@APPRUN_CMD@@@"
|
||||||
EXPORT_ENVS=""
|
#####wine启动指令,建议
|
||||||
EXEC_NAME="@@@EXEC_NAME@@@"
|
#EXPORT_ENVS="wine的动态链接库路径"
|
||||||
INSTALL_SETUP=""
|
##例如我的wine应用是使用的dwine6的32位容器,那么我要填LD_LIBRARY_PATH=$LD_LIBRARY;/opt/deepin-wine6-stable/lib
|
||||||
export BOX86_EMU_CMD="/opt/deepin-box86/stable/box86"
|
## 如果用不到就不填,不要删除前面的注释用的#
|
||||||
|
|
||||||
export SPECIFY_SHELL_DIR=`dirname $START_SHELL_PATH`
|
export SPECIFY_SHELL_DIR=`dirname $START_SHELL_PATH`
|
||||||
|
|
||||||
ARCHIVE_FILE_DIR="/opt/apps/$DEB_PACKAGE_NAME/files"
|
ARCHIVE_FILE_DIR="/opt/apps/$DEB_PACKAGE_NAME/files"
|
||||||
|
|
||||||
if [ -z "$APPRUN_CMD" ];then
|
export WINEDLLPATH=/opt/$APPRUN_CMD/lib:/opt/$APPRUN_CMD/lib64
|
||||||
export APPRUN_CMD="/opt/deepin-wine6-stable/bin/wine"
|
|
||||||
fi
|
|
||||||
if [ -f "$APPRUN_CMD" ];then
|
|
||||||
wine_path=$(dirname $APPRUN_CMD)
|
|
||||||
wine_path=$(realpath "$wine_path/../")
|
|
||||||
export WINEDLLPATH=$wine_path/lib:$wine_path/lib64
|
|
||||||
else
|
|
||||||
export WINEDLLPATH=/opt/$APPRUN_CMD/lib:/opt/$APPRUN_CMD/lib64
|
|
||||||
fi
|
|
||||||
|
|
||||||
export WINEPREDLL="$ARCHIVE_FILE_DIR/dlls"
|
export WINEPREDLL="$ARCHIVE_FILE_DIR/dlls"
|
||||||
|
|
||||||
_SetRegistryValue()
|
DISABLE_ATTACH_FILE_DIALOG=""
|
||||||
{{
|
##默认为空。若为1,则不使用系统自带的文件选择,而是使用wine的
|
||||||
env WINEPREFIX="$BOTTLEPATH" $APPRUN_CMD reg ADD "$1" /v "$2" /t "$3" /d "$4" /f
|
##对于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" ] || [ "$APPRUN_CMD" = "spark-wine" ]|| [ "$APPRUN_CMD" = "spark-wine8" ] && [ -z "$ENABLE_DOT_NET" ];then
|
||||||
|
|
||||||
|
#export WINEDLLOVERRIDES="mscoree=d,mshtml=d,control.exe=d"
|
||||||
|
export WINEDLLOVERRIDES="control.exe=d"
|
||||||
|
#### "为了降低打包体积,默认关闭gecko和momo,如有需要,注释此行(仅对spark-wine7-devel有效)"
|
||||||
|
|
||||||
|
fi
|
||||||
|
##############>>>>>>>>>屏蔽mono和gecko安装器结束
|
||||||
|
|
||||||
|
#########################执行段
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if [ -z "$DISABLE_ATTACH_FILE_DIALOG" ];then
|
if [ -z "$DISABLE_ATTACH_FILE_DIALOG" ];then
|
||||||
export ATTACH_FILE_DIALOG=1
|
export ATTACH_FILE_DIALOG=1
|
||||||
@@ -1058,38 +1123,18 @@ if [ -n "$EXPORT_ENVS" ];then
|
|||||||
export $EXPORT_ENVS
|
export $EXPORT_ENVS
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 打包安装程序的情况
|
|
||||||
if [[ -z "$EXEC_PATH" ]] && [[ -n "$INSTALL_SETUP" ]];then
|
|
||||||
$START_SHELL_PATH $BOTTLENAME $APPVER "$EXEC_PATH" -c
|
|
||||||
BOTTLEPATH="$HOME/.deepinwine/$BOTTLENAME"
|
|
||||||
EXEC_PATH=$(find "$BOTTLEPATH" -name $EXEC_NAME | head -1)
|
|
||||||
if [ -z "$EXEC_PATH" ];then
|
|
||||||
_SetRegistryValue "HKCU\\Software\\Wine\\DllOverrides" winemenubuilder.exe REG_SZ
|
|
||||||
WINEPREFIX="$BOTTLEPATH" $APPRUN_CMD "$ARCHIVE_FILE_DIR/$INSTALL_SETUP"
|
|
||||||
EXEC_PATH=$(find "$BOTTLEPATH" -name $EXEC_NAME | head -1)
|
|
||||||
|
|
||||||
cp "$ARCHIVE_FILE_DIR/setup.md5sum" "$BOTTLEPATH"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$EXEC_PATH" ];then
|
|
||||||
echo "安装失败退出"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "$EXEC_PATH" ];then
|
if [ -n "$EXEC_PATH" ];then
|
||||||
if [ -z "${{EXEC_PATH##*.lnk*}}" ];then
|
if [ -z "${{EXEC_PATH##*.lnk*}}" ];then
|
||||||
$START_SHELL_PATH $BOTTLENAME $APPVER "C:/windows/command/start.exe" "/Unix" "$EXEC_PATH" "$@"
|
$START_SHELL_PATH $BOTTLENAME $APPVER "C:/windows/command/start.exe" "/Unix" "$EXEC_PATH" "$@"
|
||||||
elif [ -z "${{EXEC_PATH##*.bat}}" ];then
|
|
||||||
$START_SHELL_PATH $BOTTLENAME $APPVER "cmd" -f /c "$EXEC_PATH" "${{@:2}}"
|
|
||||||
else
|
else
|
||||||
$START_SHELL_PATH $BOTTLENAME $APPVER "$EXEC_PATH" "$@"
|
$START_SHELL_PATH $BOTTLENAME $APPVER "C:/windows/command/start.exe" "/Unix" "$EXEC_PATH" "$@"
|
||||||
fi
|
fi
|
||||||
elif [ -n "$ACTIVEX_NAME" ] && [ $# -gt 1 ];then
|
|
||||||
$START_SHELL_PATH $BOTTLENAME $APPVER "$1" -f "${{@:2}}"
|
|
||||||
else
|
else
|
||||||
$START_SHELL_PATH $BOTTLENAME $APPVER "uninstaller.exe" "$@"
|
$START_SHELL_PATH $BOTTLENAME $APPVER "uninstaller.exe" "$@"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
""",
|
""",
|
||||||
"info": f'''{{
|
"info": f'''{{
|
||||||
"appid": "{e1_text.text()}",
|
"appid": "{e1_text.text()}",
|
||||||
@@ -1295,8 +1340,8 @@ true
|
|||||||
]
|
]
|
||||||
print("c")
|
print("c")
|
||||||
if os.path.exists(wine[wineVersion.currentText()]):
|
if os.path.exists(wine[wineVersion.currentText()]):
|
||||||
debInformation[0]["Depends"] = ["deepin-wine-helper (>= 5.1.30-1)",
|
debInformation[0]["Depends"] = ["deepin-wine-helper | com.wine-helper.deepin",
|
||||||
"spark-dwine-helper | store.spark-app.spark-dwine-helper"
|
"spark-dwine-helper | store.spark-app.spark-dwine-helper | deepin-wine-helper | com.wine-helper.deepin"
|
||||||
][int(chooseWineHelperValue.isChecked())] #+ ["", "libasound2 (>= 1.0.16), libc6 (>= 2.28), libglib2.0-0 (>= 2.12.0), libgphoto2-6 (>= 2.5.10), libgphoto2-port12 (>= 2.5.10), libgstreamer-plugins-base1.0-0 (>= 1.0.0), libgstreamer1.0-0 (>= 1.4.0), liblcms2-2 (>= 2.2+git20110628), libldap-2.4-2 (>= 2.4.7), libmpg123-0 (>= 1.13.7), libopenal1 (>= 1.14), libpcap0.8 (>= 0.9.8), libpulse0 (>= 0.99.1), libudev1 (>= 183), libvkd3d1 (>= 1.0), libx11-6, libxext6, libxml2 (>= 2.9.0), ocl-icd-libopencl1 | libopencl1, udis86, zlib1g (>= 1:1.1.4), libasound2-plugins, libncurses6 | libncurses5 | libncurses, deepin-wine-plugin-virtual\nRecommends: libcapi20-3, libcups2, libdbus-1-3, libfontconfig1, libfreetype6, libglu1-mesa | libglu1, libgnutls30 | libgnutls28 | libgnutls26, libgsm1, libgssapi-krb5-2, libjpeg62-turbo | libjpeg8, libkrb5-3, libodbc1, libosmesa6, libpng16-16 | libpng12-0, libsane | libsane1, libsdl2-2.0-0, libtiff5, libv4l-0, libxcomposite1, libxcursor1, libxfixes3, libxi6, libxinerama1, libxrandr2, libxrender1, libxslt1.1, libxxf86vm1"][]
|
][int(chooseWineHelperValue.isChecked())] #+ ["", "libasound2 (>= 1.0.16), libc6 (>= 2.28), libglib2.0-0 (>= 2.12.0), libgphoto2-6 (>= 2.5.10), libgphoto2-port12 (>= 2.5.10), libgstreamer-plugins-base1.0-0 (>= 1.0.0), libgstreamer1.0-0 (>= 1.4.0), liblcms2-2 (>= 2.2+git20110628), libldap-2.4-2 (>= 2.4.7), libmpg123-0 (>= 1.13.7), libopenal1 (>= 1.14), libpcap0.8 (>= 0.9.8), libpulse0 (>= 0.99.1), libudev1 (>= 183), libvkd3d1 (>= 1.0), libx11-6, libxext6, libxml2 (>= 2.9.0), ocl-icd-libopencl1 | libopencl1, udis86, zlib1g (>= 1:1.1.4), libasound2-plugins, libncurses6 | libncurses5 | libncurses, deepin-wine-plugin-virtual\nRecommends: libcapi20-3, libcups2, libdbus-1-3, libfontconfig1, libfreetype6, libglu1-mesa | libglu1, libgnutls30 | libgnutls28 | libgnutls26, libgsm1, libgssapi-krb5-2, libjpeg62-turbo | libjpeg8, libkrb5-3, libodbc1, libosmesa6, libpng16-16 | libpng12-0, libsane | libsane1, libsdl2-2.0-0, libtiff5, libv4l-0, libxcomposite1, libxcursor1, libxfixes3, libxi6, libxinerama1, libxrandr2, libxrender1, libxslt1.1, libxxf86vm1"][]
|
||||||
print("d")
|
print("d")
|
||||||
debInformation[0]["run.sh"] = f'''#!/bin/sh
|
debInformation[0]["run.sh"] = f'''#!/bin/sh
|
||||||
@@ -1846,15 +1891,15 @@ def BrowserHelperConfigPathText():
|
|||||||
|
|
||||||
def ChangeWine():
|
def ChangeWine():
|
||||||
useInstallWineArch.setEnabled(os.path.exists(wine[wineVersion.currentText()]))
|
useInstallWineArch.setEnabled(os.path.exists(wine[wineVersion.currentText()]))
|
||||||
debDepends.setText([f"{wine[wineVersion.currentText()]} | {wine[wineVersion.currentText()]}-bcm | {wine[wineVersion.currentText()]}-dcm, deepin-wine-helper (>= 5.1.30-1), fonts-wqy-microhei, fonts-wqy-zenhei",
|
debDepends.setText([f"{wine[wineVersion.currentText()]} | {wine[wineVersion.currentText()]}-bcm | {wine[wineVersion.currentText()]}-dcm | com.{wine[wineVersion.currentText()]}.deepin, deepin-wine-helper | com.wine-helper.deepin, fonts-wqy-microhei, fonts-wqy-zenhei",
|
||||||
f"{wine[wineVersion.currentText()]} | {wine[wineVersion.currentText()]}-bcm | {wine[wineVersion.currentText()]}-dcm, spark-dwine-helper | store.spark-app.spark-dwine-helper, fonts-wqy-microhei, fonts-wqy-zenhei"
|
f"{wine[wineVersion.currentText()]} | {wine[wineVersion.currentText()]}-bcm | {wine[wineVersion.currentText()]}-dcm | com.{wine[wineVersion.currentText()]}.deepin, spark-dwine-helper | store.spark-app.spark-dwine-helper | deepin-wine-helper | com.wine-helper.deepin, fonts-wqy-microhei, fonts-wqy-zenhei"
|
||||||
][int(chooseWineHelperValue.isChecked())])
|
][int(chooseWineHelperValue.isChecked())])
|
||||||
debRecommend.setText("")
|
debRecommend.setText("")
|
||||||
helperConfigPathText.setEnabled(chooseWineHelperValue.isChecked())
|
helperConfigPathText.setEnabled(chooseWineHelperValue.isChecked())
|
||||||
helperConfigPathButton.setEnabled(chooseWineHelperValue.isChecked())
|
helperConfigPathButton.setEnabled(chooseWineHelperValue.isChecked())
|
||||||
if os.path.exists(wine[wineVersion.currentText()]):
|
if os.path.exists(wine[wineVersion.currentText()]):
|
||||||
debDepends.setText(["deepin-wine-helper (>= 5.1.30-1)",
|
debDepends.setText(["deepin-wine-helper | com.wine-helper.deepin",
|
||||||
"spark-dwine-helper | store.spark-app.spark-dwine-helper"
|
"spark-dwine-helper | store.spark-app.spark-dwine-helper | deepin-wine-helper | com.wine-helper.deepin"
|
||||||
][int(chooseWineHelperValue.isChecked())])
|
][int(chooseWineHelperValue.isChecked())])
|
||||||
#if "deepin-wine5-stable" in wine[wineVersion.currentText()]:
|
#if "deepin-wine5-stable" in wine[wineVersion.currentText()]:
|
||||||
# debDepends.setText("libasound2 (>= 1.0.16), libc6 (>= 2.28), libglib2.0-0 (>= 2.12.0), libgphoto2-6 (>= 2.5.10), libgphoto2-port12 (>= 2.5.10), libgstreamer-plugins-base1.0-0 (>= 1.0.0), libgstreamer1.0-0 (>= 1.4.0), liblcms2-2 (>= 2.2+git20110628), libldap-2.4-2 (>= 2.4.7), libmpg123-0 (>= 1.13.7), libopenal1 (>= 1.14), libpcap0.8 (>= 0.9.8), libpulse0 (>= 0.99.1), libudev1 (>= 183), libvkd3d1 (>= 1.0), libx11-6, libxext6, libxml2 (>= 2.9.0), ocl-icd-libopencl1 | libopencl1, udis86, zlib1g (>= 1:1.1.4), libasound2-plugins, libncurses6 | libncurses5 | libncurses, deepin-wine-plugin-virtual")
|
# debDepends.setText("libasound2 (>= 1.0.16), libc6 (>= 2.28), libglib2.0-0 (>= 2.12.0), libgphoto2-6 (>= 2.5.10), libgphoto2-port12 (>= 2.5.10), libgstreamer-plugins-base1.0-0 (>= 1.0.0), libgstreamer1.0-0 (>= 1.4.0), liblcms2-2 (>= 2.2+git20110628), libldap-2.4-2 (>= 2.4.7), libmpg123-0 (>= 1.13.7), libopenal1 (>= 1.14), libpcap0.8 (>= 0.9.8), libpulse0 (>= 0.99.1), libudev1 (>= 183), libvkd3d1 (>= 1.0), libx11-6, libxext6, libxml2 (>= 2.9.0), ocl-icd-libopencl1 | libopencl1, udis86, zlib1g (>= 1:1.1.4), libasound2-plugins, libncurses6 | libncurses5 | libncurses, deepin-wine-plugin-virtual")
|
||||||
@@ -2202,7 +2247,14 @@ def DelTab():
|
|||||||
def ChangeBottleName():
|
def ChangeBottleName():
|
||||||
global bottleNameLock
|
global bottleNameLock
|
||||||
global bottleNameChangeLock
|
global bottleNameChangeLock
|
||||||
e1_text.setText(e1_text.text().replace(" ", ""))
|
replaceForum = [e1_text, e2_text]
|
||||||
|
for i in replaceForum:
|
||||||
|
if " " in i.text():
|
||||||
|
i.setText(i.text().replace(" ", ""))
|
||||||
|
# 进行版本号限制
|
||||||
|
if len(e2_text.text()) > 0:
|
||||||
|
if ord(e2_text.text()[0]) < 48 or ord(e2_text.text()[0]) > 57:
|
||||||
|
e2_text.setText(e2_text.text()[1:])
|
||||||
if bottleNameLock:
|
if bottleNameLock:
|
||||||
return
|
return
|
||||||
if os.path.basename(e6_text.text()) == ".wine" or e6_text.text() == "":
|
if os.path.basename(e6_text.text()) == ".wine" or e6_text.text() == "":
|
||||||
@@ -2364,6 +2416,7 @@ build7z.clicked.connect(Build7zButton_Clicked)
|
|||||||
installDeb.clicked.connect(InstallDeb)
|
installDeb.clicked.connect(InstallDeb)
|
||||||
wineFrame.addWidget(wineVersion)
|
wineFrame.addWidget(wineVersion)
|
||||||
e1_text.textChanged.connect(ChangeBottleName)
|
e1_text.textChanged.connect(ChangeBottleName)
|
||||||
|
e2_text.textChanged.connect(ChangeBottleName)
|
||||||
e5_text.textChanged.connect(LockBottleName)
|
e5_text.textChanged.connect(LockBottleName)
|
||||||
e6_text.textChanged.connect(ChangeBottleName)
|
e6_text.textChanged.connect(ChangeBottleName)
|
||||||
e7_text.textChanged.connect(ChangeTapTitle)
|
e7_text.textChanged.connect(ChangeTapTitle)
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"Version": "3.9.0",
|
"Version": "3.9.1",
|
||||||
"Time": "未知",
|
"Time": "未知",
|
||||||
"Thank": [
|
"Thank": [
|
||||||
"感谢 @ёжезийлёзйз 进行 Loongarch 架构的测试(旧世界,远程)",
|
"感谢 @ёжезийлёзйз 进行 Loongarch 架构的测试(旧世界,远程)",
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"Version": "3.9.0",
|
"Version": "3.9.1",
|
||||||
"Time": "未知",
|
"Time": "未知",
|
||||||
"Thank": [
|
"Thank": [
|
||||||
"感谢 @ёжезийлёзйз 进行 Loongarch 架构的测试(旧世界,远程)",
|
"感谢 @ёжезийлёзйз 进行 Loongarch 架构的测试(旧世界,远程)",
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ export deb_version_string="{versionName.text()}"
|
|||||||
#读取和最终解压的包名
|
#读取和最终解压的包名
|
||||||
export bottle_name="{bottonName.text()}"
|
export bottle_name="{bottonName.text()}"
|
||||||
|
|
||||||
export package_depends="deepin-wine6-stable | deepin-wine6-stable-bcm | deepin-wine6-stable-dcm, spark-dwine-helper | store.spark-app.spark-dwine-helper"
|
export package_depends="deepin-wine6-stable | deepin-wine6-stable-bcm | deepin-wine6-stable-dcm, deepin-wine-helper | com.wine-helper.deepin"
|
||||||
export apprun_cmd="deepin-wine6-stable"
|
export apprun_cmd="deepin-wine6-stable"
|
||||||
#export package_depends="deepin-wine5-stable | deepin-wine5-stable-bcm | deepin-wine5-stable-dcm, spark-dwine-helper | store.spark-app.spark-dwine-helper"
|
#export package_depends="deepin-wine5-stable | deepin-wine5-stable-bcm | deepin-wine5-stable-dcm, spark-dwine-helper | store.spark-app.spark-dwine-helper"
|
||||||
#export apprun_cmd="deepin-wine5-stable"
|
#export apprun_cmd="deepin-wine5-stable"
|
||||||
|
|||||||
@@ -272,6 +272,8 @@ class DownloadThread(QtCore.QThread):
|
|||||||
except:
|
except:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
self.MessageBoxError.emit(traceback.format_exc())
|
self.MessageBoxError.emit(traceback.format_exc())
|
||||||
|
self.ChangeDialog.emit(self.dialog, 100, 100, 100)
|
||||||
|
self.Finish.emit()
|
||||||
|
|
||||||
def MessageBoxInfo(info):
|
def MessageBoxInfo(info):
|
||||||
QtWidgets.QMessageBox.information(window, "提示", info)
|
QtWidgets.QMessageBox.information(window, "提示", info)
|
||||||
|
|||||||
Reference in New Issue
Block a user