mirror of
https://gitee.com/gfdgd-xi/deep-wine-runner
synced 2025-12-17 04:21:37 +08:00
Compare commits
4 Commits
a76191da3a
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3179772d05 | ||
| 2bc597ce84 | |||
| d929107117 | |||
| 6d56abbb28 |
@@ -12,6 +12,7 @@
|
|||||||
#################
|
#################
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
import requests
|
||||||
import updatekiller
|
import updatekiller
|
||||||
import traceback
|
import traceback
|
||||||
try:
|
try:
|
||||||
@@ -56,10 +57,16 @@ try:
|
|||||||
exitInputShow = int(os.getenv("ENTERNOTSHOW"))
|
exitInputShow = int(os.getenv("ENTERNOTSHOW"))
|
||||||
except:
|
except:
|
||||||
exitInputShow = True
|
exitInputShow = True
|
||||||
|
|
||||||
|
headers = {
|
||||||
|
'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 Edg/130.0.0.0"
|
||||||
|
}
|
||||||
try:
|
try:
|
||||||
# 获取最新版本的版本号
|
# 获取最新版本的版本号
|
||||||
programVersionList = pyquery.PyQuery(url=f"http://mirrors.ustc.edu.cn/wine/wine/wine-{sys.argv[3]}/")
|
data = requests.get(f"http://mirrors.ustc.edu.cn/wine/wine/wine-{sys.argv[3]}/", headers=headers)
|
||||||
|
programVersionList = pyquery.PyQuery(data.text)
|
||||||
except:
|
except:
|
||||||
|
traceback.print_exc()
|
||||||
print("无法连接下载服务器,将使用本地缓存")
|
print("无法连接下载服务器,将使用本地缓存")
|
||||||
if not os.path.exists(f"{homePath}/.cache/deepin-wine-runner/{sys.argv[3]}/install.msi") or not os.path.exists(f"{homePath}/.cache/deepin-wine-runner/{sys.argv[3]}/information.txt"):
|
if not os.path.exists(f"{homePath}/.cache/deepin-wine-runner/{sys.argv[3]}/install.msi") or not os.path.exists(f"{homePath}/.cache/deepin-wine-runner/{sys.argv[3]}/information.txt"):
|
||||||
print("无本地缓存数据,无法进行、结束")
|
print("无本地缓存数据,无法进行、结束")
|
||||||
@@ -75,7 +82,8 @@ except:
|
|||||||
exit()
|
exit()
|
||||||
programVersion = programVersionList("a:last-child").attr.href
|
programVersion = programVersionList("a:last-child").attr.href
|
||||||
# 获取最新版本安装包的URL
|
# 获取最新版本安装包的URL
|
||||||
programUrl = pyquery.PyQuery(url=f"http://mirrors.ustc.edu.cn/wine/wine/wine-{sys.argv[3]}/{programVersion}")
|
data = requests.get(f"http://mirrors.ustc.edu.cn/wine/wine/wine-{sys.argv[3]}/{programVersion}", headers=headers)
|
||||||
|
programUrl = pyquery.PyQuery(data.text)
|
||||||
programDownloadUrl = ""
|
programDownloadUrl = ""
|
||||||
programFileName = ""
|
programFileName = ""
|
||||||
for i in programUrl("a").items():
|
for i in programUrl("a").items():
|
||||||
|
|||||||
10
StartVM.sh
10
StartVM.sh
@@ -68,7 +68,7 @@ if [[ $? == 0 ]] && [[ -f "$HOME/Qemu/Windows/Windows.qcow2" ]]; then
|
|||||||
./VM/kvm-ok
|
./VM/kvm-ok
|
||||||
if [[ $? == 0 ]] && [[ `arch` == "x86_64" ]]; then
|
if [[ $? == 0 ]] && [[ `arch` == "x86_64" ]]; then
|
||||||
echo X86 架构,使用 kvm 加速
|
echo X86 架构,使用 kvm 加速
|
||||||
$qemuMore qemu-system-x86_64 --enable-kvm -cpu host --hda "$HOME/Qemu/Windows/Windows.qcow2" \
|
$qemuMore qemu-system-x86_64 --enable-kvm -name Wine运行器虚拟机工具 -cpu host --hda "$HOME/Qemu/Windows/Windows.qcow2" \
|
||||||
-smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) \
|
-smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) \
|
||||||
-m ${use}G -display gtk -nic model=rtl8139 $qemuUEFI \
|
-m ${use}G -display gtk -nic model=rtl8139 $qemuUEFI \
|
||||||
-device AC97 -device ES1370 -device intel-hda -device hda-duplex \
|
-device AC97 -device ES1370 -device intel-hda -device hda-duplex \
|
||||||
@@ -120,7 +120,7 @@ if [[ $? == 0 ]] && [[ -f "$HOME/Qemu/Windows/Windows.qcow2" ]]; then
|
|||||||
echo $qemuUEFI
|
echo $qemuUEFI
|
||||||
./VM/kvm-ok
|
./VM/kvm-ok
|
||||||
if [[ $? == 0 ]] && [[ `arch` == "aarch64" ]]; then
|
if [[ $? == 0 ]] && [[ `arch` == "aarch64" ]]; then
|
||||||
$qemuMore qemu-system-arm --enable-kvm --hda "$HOME/Qemu/Windows/Windows.qcow2" \
|
$qemuMore qemu-system-arm --enable-kvm -name Wine运行器虚拟机工具 --hda "$HOME/Qemu/Windows/Windows.qcow2" \
|
||||||
-smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) \
|
-smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) \
|
||||||
-m ${use}G -display gtk -usb -nic model=rtl8139 $qemuUEFI \
|
-m ${use}G -display gtk -usb -nic model=rtl8139 $qemuUEFI \
|
||||||
-cpu max -M virt -device virtio-gpu-pci \
|
-cpu max -M virt -device virtio-gpu-pci \
|
||||||
@@ -132,7 +132,7 @@ if [[ $? == 0 ]] && [[ -f "$HOME/Qemu/Windows/Windows.qcow2" ]]; then
|
|||||||
> $TMPDIR/tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 # 最新的 qemu 已经移除参数 -soundhw all
|
> $TMPDIR/tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 # 最新的 qemu 已经移除参数 -soundhw all
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
$qemuMore qemu-system-arm --hda "$HOME/Qemu/Windows/Windows.qcow2" \
|
$qemuMore qemu-system-arm -name Wine运行器虚拟机工具 --hda "$HOME/Qemu/Windows/Windows.qcow2" \
|
||||||
-smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) \
|
-smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) \
|
||||||
-m ${use}G -display gtk -usb -nic model=rtl8139 $qemuUEFI \
|
-m ${use}G -display gtk -usb -nic model=rtl8139 $qemuUEFI \
|
||||||
-cpu max -M virt -device virtio-gpu-pci \
|
-cpu max -M virt -device virtio-gpu-pci \
|
||||||
@@ -158,7 +158,7 @@ if [[ $? == 0 ]] && [[ -f "$HOME/Qemu/Windows/Windows.qcow2" ]]; then
|
|||||||
echo $qemuUEFI
|
echo $qemuUEFI
|
||||||
./VM/kvm-ok
|
./VM/kvm-ok
|
||||||
if [[ $? == 0 ]] && [[ `arch` == "aarch64" ]]; then
|
if [[ $? == 0 ]] && [[ `arch` == "aarch64" ]]; then
|
||||||
$qemuMore qemu-system-aarch64 --enable-kvm --hda "$HOME/Qemu/Windows/Windows.qcow2" \
|
$qemuMore qemu-system-aarch64 --enable-kvm -name Wine运行器虚拟机工具 --hda "$HOME/Qemu/Windows/Windows.qcow2" \
|
||||||
-smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) \
|
-smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) \
|
||||||
-m ${use}G -display gtk -usb -nic model=rtl8139 $qemuUEFI \
|
-m ${use}G -display gtk -usb -nic model=rtl8139 $qemuUEFI \
|
||||||
-cpu max -M virt \
|
-cpu max -M virt \
|
||||||
@@ -171,7 +171,7 @@ if [[ $? == 0 ]] && [[ -f "$HOME/Qemu/Windows/Windows.qcow2" ]]; then
|
|||||||
> $TMPDIR/tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 # 最新的 qemu 已经移除参数 -soundhw all
|
> $TMPDIR/tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 # 最新的 qemu 已经移除参数 -soundhw all
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
$qemuMore qemu-system-aarch64 --hda "$HOME/Qemu/Windows/Windows.qcow2" \
|
$qemuMore qemu-system-aarch64 -name Wine运行器虚拟机工具 --hda "$HOME/Qemu/Windows/Windows.qcow2" \
|
||||||
-smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) \
|
-smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) \
|
||||||
-m ${use}G -display gtk -usb -nic model=rtl8139 $qemuUEFI \
|
-m ${use}G -display gtk -usb -nic model=rtl8139 $qemuUEFI \
|
||||||
-cpu max -M virt \
|
-cpu max -M virt \
|
||||||
|
|||||||
10
VM/qemu.py
10
VM/qemu.py
@@ -89,9 +89,9 @@ class qemu:
|
|||||||
# 如果存在拓展 Qemu,则调用此
|
# 如果存在拓展 Qemu,则调用此
|
||||||
qemuPath = "/opt/apps/deepin-wine-runner-qemu-system-extra/files/run.sh qemu-system-arm"
|
qemuPath = "/opt/apps/deepin-wine-runner-qemu-system-extra/files/run.sh qemu-system-arm"
|
||||||
if(subprocess.getoutput("arch").replace("\n", "").replace(" ", "") == "aarch64" and not os.system((self.applicationDirPath() + "/kvm-ok"))):
|
if(subprocess.getoutput("arch").replace("\n", "").replace(" ", "") == "aarch64" and not os.system((self.applicationDirPath() + "/kvm-ok"))):
|
||||||
return os.system((qemuPath + " --boot 'splash=" + self.GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display gtk --enable-kvm -cpu host -M virt " + self.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 &"))
|
return os.system((qemuPath + " -name Wine运行器虚拟机工具 --boot 'splash=" + self.GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display gtk --enable-kvm -cpu host -M virt " + self.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 &"))
|
||||||
|
|
||||||
return os.system((qemuPath + " --boot 'splash=" + self.GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display gtk -cpu max -M virt " + self.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 &"))
|
return os.system((qemuPath + " -name Wine运行器虚拟机工具 --boot 'splash=" + self.GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display gtk -cpu max -M virt " + self.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 &"))
|
||||||
|
|
||||||
def StartAarch64(self):
|
def StartAarch64(self):
|
||||||
bootScreenLogo = ""
|
bootScreenLogo = ""
|
||||||
@@ -112,7 +112,7 @@ class qemu:
|
|||||||
if(subprocess.getoutput("arch").replace("\n", "").replace(" ", "") == "aarch64" and not os.system((self.applicationDirPath() + "/kvm-ok"))):
|
if(subprocess.getoutput("arch").replace("\n", "").replace(" ", "") == "aarch64" and not os.system((self.applicationDirPath() + "/kvm-ok"))):
|
||||||
return os.system((qemuPath + " --boot 'splash=" + self.GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display gtk --enable-kvm -cpu host -M virt " + self.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 &"))
|
return os.system((qemuPath + " --boot 'splash=" + self.GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display gtk --enable-kvm -cpu host -M virt " + self.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 &"))
|
||||||
|
|
||||||
return os.system((qemuPath + " --boot 'splash=" + self.GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display gtk -cpu max -M virt " + self.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 &"))
|
return os.system((qemuPath + " -name Wine运行器虚拟机工具 --boot 'splash=" + self.GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display gtk -cpu max -M virt " + self.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 &"))
|
||||||
|
|
||||||
def StartLoong64(self):
|
def StartLoong64(self):
|
||||||
return 1
|
return 1
|
||||||
@@ -137,8 +137,8 @@ class qemu:
|
|||||||
qemuPath = "/opt/apps/deepin-wine-runner-qemu-system-extra/files/run.sh qemu-system-x86_64"
|
qemuPath = "/opt/apps/deepin-wine-runner-qemu-system-extra/files/run.sh qemu-system-x86_64"
|
||||||
print(self.commandOption)
|
print(self.commandOption)
|
||||||
if(subprocess.getoutput("arch").replace("\n", "").replace(" ", "") == "x86_64" and not os.system((self.applicationDirPath() + "/kvm-ok"))):
|
if(subprocess.getoutput("arch").replace("\n", "").replace(" ", "") == "x86_64" and not os.system((self.applicationDirPath() + "/kvm-ok"))):
|
||||||
return os.system((qemuPath + " --boot 'splash=" + self.GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display gtk --enable-kvm -cpu host " + newCommandOption + " > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &"))
|
return os.system((qemuPath + " -name Wine运行器虚拟机工具 --boot 'splash=" + self.GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display gtk --enable-kvm -cpu host " + newCommandOption + " > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &"))
|
||||||
return os.system((qemuPath + " --boot 'splash=" + self.GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display gtk -nic model=rtl8139 " + newCommandOption + " > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &"))
|
return os.system((qemuPath + " -name Wine运行器虚拟机工具 --boot 'splash=" + self.GetBootLogoPath() + ",order=d,menu=on,splash-time=2000' -display gtk -nic model=rtl8139 " + newCommandOption + " > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &"))
|
||||||
|
|
||||||
def Stop(self):
|
def Stop(self):
|
||||||
os.system("killall qemu-system-x86_64 -9")
|
os.system("killall qemu-system-x86_64 -9")
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"Version": "4.1.5",
|
"Version": "4.1.6",
|
||||||
"Time": "未知",
|
"Time": "未知",
|
||||||
"Thank": [
|
"Thank": [
|
||||||
"感谢 @り哥拽的冇气质° 和 @杨 提供了 3a5000(新世界的测试机器)",
|
"感谢 @り哥拽的冇气质° 和 @杨 提供了 3a5000(新世界的测试机器)",
|
||||||
|
|||||||
@@ -1984,7 +1984,7 @@ def getFileFolderSize(fileOrFolderPath):
|
|||||||
|
|
||||||
# 获取当前语言
|
# 获取当前语言
|
||||||
def get_now_lang()->"获取当前语言":
|
def get_now_lang()->"获取当前语言":
|
||||||
return os.getenv('LANG')
|
return os.getenv('LANG') or 'C'
|
||||||
|
|
||||||
# 又需要修复多线程导致的控件问题
|
# 又需要修复多线程导致的控件问题
|
||||||
def AddDockerMenu():
|
def AddDockerMenu():
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"Version": "4.1.5",
|
"Version": "4.1.6",
|
||||||
"Time": "未知",
|
"Time": "未知",
|
||||||
"Thank": [
|
"Thank": [
|
||||||
"感谢 @り哥拽的冇气质° 和 @杨 提供了 3a5000(新世界的测试机器)",
|
"感谢 @り哥拽的冇气质° 和 @杨 提供了 3a5000(新世界的测试机器)",
|
||||||
|
|||||||
Reference in New Issue
Block a user