mirror of
https://gitee.com/gfdgd-xi/deep-wine-runner
synced 2025-12-16 03:52:04 +08:00
Compare commits
14 Commits
0a485769ed
...
4.1.6
| Author | SHA1 | Date | |
|---|---|---|---|
| d929107117 | |||
| 6d56abbb28 | |||
| a76191da3a | |||
| 3fd7b7532f | |||
| 22f4430a27 | |||
| 40938dc131 | |||
| a7bf65f407 | |||
| 3272c825c6 | |||
| acfb32d51f | |||
| 4629bb495b | |||
| 76347629d1 | |||
| 197c5706dd | |||
| 4d318701ac | |||
| 34e2062f83 |
29
.github/workflows/building-off-line-package.yml
vendored
29
.github/workflows/building-off-line-package.yml
vendored
@@ -62,6 +62,8 @@ jobs:
|
||||
sudo rm -rf package/bin/wine*
|
||||
# 修复 which 命令的问题导致无法正常识别终端的问题
|
||||
sudo cp package/bin/which.debianutils package/bin/which -rv
|
||||
# 内置 winehq
|
||||
sudo cp debian/opt/wine-devel package/runner/wine -rv
|
||||
cp deep-wine-runner/off-line-shell/run.sh package -rv
|
||||
cp deep-wine-runner/off-line-shell/run-system-bwrap.sh package -rv
|
||||
cp deep-wine-runner/off-line-shell/bwrap_amd64 package/bwrap -rv
|
||||
@@ -133,7 +135,6 @@ jobs:
|
||||
sudo rm -rf package/runner/Icon
|
||||
sudo rm -rf package/runner/RegShot.exe
|
||||
sudo rm -rf package/runner/novnc
|
||||
sudo rm -rf package/bin/wine*
|
||||
# 修复 which 命令的问题导致无法正常识别终端的问题
|
||||
sudo cp package/bin/which.debianutils package/bin/which -rv
|
||||
cp deep-wine-runner/off-line-shell/run.sh package -rv
|
||||
@@ -163,21 +164,26 @@ jobs:
|
||||
cpu=$(cat /proc/cpuinfo | grep processor | wc -l)
|
||||
# 配置环境
|
||||
sudo apt update
|
||||
sudo apt install python3-requests debootstrap xz-utils qemu-user-static git -y
|
||||
sudo apt install python3-requests debootstrap xz-utils qemu-user-static git aria2 squashfs-tools -y
|
||||
sudo apt install binfmt-support qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools psmisc wget -y
|
||||
git clone https://github.com/gfdgd-xi/deep-wine-runner --depth=1
|
||||
sudo cp deep-wine-runner/.github/workflows/DaoXiangHu-stable /usr/share/debootstrap/scripts/
|
||||
git clone https://gitee.com/michael0066/qemu-loongarch64-static
|
||||
git clone https://gitee.com/loongarch-kvm/qemu-loongarch64-static
|
||||
cd qemu-loongarch64-static
|
||||
sudo cp qemu-loongarch64 /var/lib/binfmts
|
||||
sudo cp qemu-loongarch64-static /usr/bin
|
||||
#sudo /etc/init.d/binfmt-support restart
|
||||
sudo bash -c 'echo ":qemu-loongarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02\x01:\xff\xff\xff\xff\xff\xfe\xfe\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-loongarch64-static:" > /proc/sys/fs/binfmt_misc/register'
|
||||
#cat /proc/sys/fs/binfmt_misc/qemu-loongarch64-static
|
||||
tar -xvf qemu-loongarch64-static.tar.gz
|
||||
cd qemu-loongarch64-static
|
||||
sudo bash qemu-binfmt-conf.sh
|
||||
sudo cp qemu-loongarch64 /usr/local/bin/
|
||||
cd ~
|
||||
mkdir package
|
||||
# 部署 chroot 环境
|
||||
sudo debootstrap --no-check-gpg --arch=loongarch64 DaoXiangHu-stable debian https://pkg.loongnix.cn/loongnix/20
|
||||
#sudo debootstrap --no-check-gpg --arch=loongarch64 DaoXiangHu-stable debian https://pkg.loongnix.cn/loongnix/20
|
||||
aria2c -x 16 -s 16 https://sourceforge.net/projects/deep-wine-runner-wine-download/files/loongnix/filesystem.squashfs/download
|
||||
sudo unsquashfs filesystem.squashfs
|
||||
sudo mv squashfs-root debian
|
||||
sudo cp /usr/local/bin/qemu-loongarch64 debian/usr/local/bin/qemu-loongarch64 -rv
|
||||
# 写入 DNS
|
||||
echo "nameserver 8.8.8.8" | sudo tee debian/etc/resolv.conf
|
||||
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
|
||||
@@ -199,15 +205,16 @@ jobs:
|
||||
mv deep-wine-runner/spark-deepin-wine-runner.deb debian/tmp/wine-runner.deb
|
||||
## 安装
|
||||
sudo chroot debian apt install locales /tmp/wine-runner.deb fcitx xfce4-terminal qtwayland5 xwayland thunar -y
|
||||
sudo chroot debian apt install libxenmisc4.17 libxenstore4 libxenforeignmemory1 -y
|
||||
# 构建软件包
|
||||
mkdir package/runner -p
|
||||
sudo cp debian/usr/local/bin package -rv
|
||||
sudo cp debian/usr/bin package -rv
|
||||
sudo cp debian/usr/lib package -rv
|
||||
sudo cp debian/usr/share package -rv
|
||||
sudo cp debian/usr/gnemul package -rv
|
||||
#sudo cp debian/usr/lib64 package -rv
|
||||
sudo cp debian/opt/apps/deepin-wine-runner/* package/runner -rv
|
||||
sudo cp debian/opt/wine-6.0 package/runner/wine -rv
|
||||
# 精简运行器体积
|
||||
sudo rm -rf package/runner/2048
|
||||
sudo rm -rf package/runner/geek.exe
|
||||
@@ -215,9 +222,7 @@ jobs:
|
||||
sudo rm -rf package/runner/Icon
|
||||
sudo rm -rf package/runner/RegShot.exe
|
||||
sudo rm -rf package/runner/novnc
|
||||
sudo rm -rf package/bin/wine*
|
||||
# 修复 which 命令的问题导致无法正常识别终端的问题
|
||||
sudo cp package/bin/which.debianutils package/bin/which -rv
|
||||
cp deep-wine-runner/off-line-shell/run.sh package -rv
|
||||
cp deep-wine-runner/off-line-shell/run-system-bwrap.sh package -rv
|
||||
cp deep-wine-runner/off-line-shell/bwrap_loongarch64 package/bwrap -rv
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#################
|
||||
import os
|
||||
import sys
|
||||
import requests
|
||||
import updatekiller
|
||||
import traceback
|
||||
try:
|
||||
@@ -56,10 +57,16 @@ try:
|
||||
exitInputShow = int(os.getenv("ENTERNOTSHOW"))
|
||||
except:
|
||||
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:
|
||||
# 获取最新版本的版本号
|
||||
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:
|
||||
traceback.print_exc()
|
||||
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"):
|
||||
print("无本地缓存数据,无法进行、结束")
|
||||
@@ -75,7 +82,8 @@ except:
|
||||
exit()
|
||||
programVersion = programVersionList("a:last-child").attr.href
|
||||
# 获取最新版本安装包的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 = ""
|
||||
programFileName = ""
|
||||
for i in programUrl("a").items():
|
||||
|
||||
@@ -28,8 +28,11 @@ class qemu:
|
||||
self.vboxVersion = subprocess.getoutput(self.qemuPath + " --version")
|
||||
|
||||
def Create(self, type = "Windows7"):
|
||||
if(not os.path.exists(self.name)):
|
||||
os.makedirs(self.name)
|
||||
try:
|
||||
if(not os.path.exists(self.name)):
|
||||
os.makedirs(self.name)
|
||||
except:
|
||||
pass
|
||||
return 0
|
||||
|
||||
def CreateDisk(self, path: str, size: int):
|
||||
|
||||
@@ -28,7 +28,8 @@ Depends: python3,
|
||||
tree,
|
||||
dpkg,
|
||||
fakeroot,
|
||||
bash
|
||||
bash,
|
||||
xdg-utils
|
||||
Recommends: winbind,
|
||||
wimtools | wimlib,
|
||||
python3-pyquery,
|
||||
|
||||
@@ -711,7 +711,23 @@ wineChooserList = [
|
||||
"使用 Spark Wine 打包应用"
|
||||
]
|
||||
wineChooserIndex = 2
|
||||
wineList = ["deepin-wine-staging", "deepin-wine8-stable", "spark-wine9-wow", "spark-wine9", "spark-wine8", "spark-wine7-devel", "deepin-wine6-stable", "deepin-wine6-vannila", "spark-wine8-wow", "deepin-wine5-stable", "deepin-wine5", "deepin-wine", "spark-wine"]
|
||||
wineList = [
|
||||
"deepin-wine-staging",
|
||||
"deepin-wine8-stable",
|
||||
"spark-wine10-wow",
|
||||
"spark-wine10",
|
||||
"spark-wine9-wow",
|
||||
"spark-wine9",
|
||||
"spark-wine8",
|
||||
"spark-wine7-devel",
|
||||
"deepin-wine6-stable",
|
||||
"deepin-wine6-vannila",
|
||||
"spark-wine8-wow",
|
||||
"deepin-wine5-stable",
|
||||
"deepin-wine5",
|
||||
"deepin-wine",
|
||||
"spark-wine"
|
||||
]
|
||||
for i in range(len(wineList)):
|
||||
if not os.system(f"which '{wineList[i]}'"):
|
||||
wineChooserIndex = i
|
||||
|
||||
@@ -1332,8 +1332,28 @@ bottleNameLock = False
|
||||
###############
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
# 如果要添加其他 wine,请在字典添加其名称和执行路径
|
||||
wine = {"deepin-wine": "deepin-wine", "deepin-wine5": "deepin-wine5", "wine": "wine", "wine64": "wine64", "deepin-wine5 stable": "deepin-wine5-stable", "deepin-wine6 stable": "deepin-wine6-stable", "spark-wine7-devel": "spark-wine7-devel", "ukylin-wine": "ukylin-wine", "okylin-wine": "okylin-wine", "spark-wine8": "spark-wine8", "spark-wine8-wow": "spark-wine8-wow", "deepin-wine6-vannila": "deepin-wine6-vannila", "deepin-wine8-stable": "deepin-wine8-stable", "spark-wine9": "spark-wine9", "spark-wine9-wow": "spark-wine9-wow", "spark-wine": "spark-wine", "deepin-wine-staging": "deepin-wine-staging"}
|
||||
wineValue = {"deepin-wine": "deepin-wine", "deepin-wine5": "deepin-wine5", "wine": "wine", "wine64": "wine64", "deepin-wine5-stable": "deepin-wine5 stable", "deepin-wine6-stable": "deepin-wine6 stable", "spark-wine7-devel": "spark-wine7-devel", "ukylin-wine": "ukylin-wine", "okylin-wine": "okylin-wine", "spark-wine8": "spark-wine8", "spark-wine8-wow": "spark-wine8-wow", "deepin-wine6-vannila": "deepin-wine6-vannila", "deepin-wine8-stable": "deepin-wine8-stable", "spark-wine": "spark-wine", "deepin-wine-staging": "deepin-wine-staging"}
|
||||
wine = {
|
||||
"deepin-wine": "deepin-wine",
|
||||
"deepin-wine5": "deepin-wine5",
|
||||
"wine": "wine",
|
||||
"wine64": "wine64",
|
||||
"deepin-wine5 stable": "deepin-wine5-stable",
|
||||
"deepin-wine6 stable": "deepin-wine6-stable",
|
||||
"spark-wine7-devel": "spark-wine7-devel",
|
||||
"ukylin-wine": "ukylin-wine",
|
||||
"okylin-wine": "okylin-wine",
|
||||
"spark-wine8": "spark-wine8",
|
||||
"spark-wine8-wow": "spark-wine8-wow",
|
||||
"deepin-wine6-vannila": "deepin-wine6-vannila",
|
||||
"deepin-wine8-stable": "deepin-wine8-stable",
|
||||
"spark-wine9": "spark-wine9",
|
||||
"spark-wine9-wow": "spark-wine9-wow",
|
||||
"spark-wine10": "spark-wine10",
|
||||
"spark-wine10-wow": "spark-wine10-wow",
|
||||
"spark-wine": "spark-wine",
|
||||
"deepin-wine-staging": "deepin-wine-staging"
|
||||
}
|
||||
wineValue = wine
|
||||
# 读取 wine 本地列表
|
||||
try:
|
||||
for i in os.listdir("/opt"):
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "4.1.4",
|
||||
"Version": "4.1.6",
|
||||
"Time": "未知",
|
||||
"Thank": [
|
||||
"感谢 @り哥拽的冇气质° 和 @杨 提供了 3a5000(新世界的测试机器)",
|
||||
|
||||
@@ -2230,6 +2230,8 @@ def CheckWine():
|
||||
"spark-wine8-wow": "spark-wine8-wow",
|
||||
"spark-wine9": "spark-wine9",
|
||||
"spark-wine9-wow": "spark-wine9-wow",
|
||||
"spark-wine10": "spark-wine10",
|
||||
"spark-wine10-wow": "spark-wine10-wow",
|
||||
"deepin-wine": "deepin-wine",
|
||||
"deepin-wine5": "deepin-wine5",
|
||||
"wine": "wine",
|
||||
@@ -2498,13 +2500,14 @@ exe路径\' 参数 \'
|
||||
5、wine 容器如果没有指定,则会默认为 ~/.wine;
|
||||
6、如果可执行文件比较大的话,会出现点击“获取该程序运行情况”出现假死的情况,因为正在后台读取 SHA1,只需要等一下即可(读取速度依照您电脑处理速度、读写速度、可执行文件大小等有关);
|
||||
7、如果非 X86 的用户的 UOS 专业版用户想要使用的话,只需要在应用商店安装一个 Wine 版本微信即可在本程序选择正确的 Wine 运行程序;''')
|
||||
updateThingsString = QtCore.QCoreApplication.translate("U", '''※1、修复安全问题
|
||||
※2、更新 dxvk 版本至 2.5
|
||||
※3、修复打包器生成的 deb 包参数问题
|
||||
updateThingsString = QtCore.QCoreApplication.translate("U", '''※1、修复虚拟机安装工具磁盘创建问题
|
||||
※2、更新 dxvk 版本至 2.6.1
|
||||
※3、更新 winetricks 版本
|
||||
※4、适配 spark-wine10
|
||||
''')
|
||||
for i in information["Thank"]:
|
||||
thankText += f"{i}\n"
|
||||
updateTime = "2024年09月15日"
|
||||
updateTime = "2025年04月19日"
|
||||
aboutProgram = QtCore.QCoreApplication.translate("U", """<p>Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程序。原版的 Wine 只能使用命令操作,且安装过程较为繁琐,对小白不友好。于是该运行器为了解决该痛点,内置了对Wine图形化的支持、Wine 安装器、微型应用商店、各种Wine工具、自制的Wine程序打包器、运行库安装工具等。</p>
|
||||
<p>它同时还内置了基于Qemu/VirtualBox制作的、专供小白使用的Windows虚拟机安装工具,可以做到只需下载系统镜像并点击安装即可,无需考虑虚拟机的安装、创建、分区等操作,也能在非 X86 架构安装 X86 架构的 Windows 操作系统(但是效率较低,可以运行些老系统)。</p>
|
||||
<p>而且对于部分 Wine 应用适配者来说,提供了图形化的打包工具,以及提供了一些常用工具以及运行库的安装方式,以及能安装多种不同的 Wine 以测试效果,能极大提升适配效率。</p>
|
||||
|
||||
@@ -11,9 +11,22 @@ if [[ -d /usr/lib64 ]] && [[ -d $SHELL_FOLDER/lib64 ]]; then
|
||||
option="$option --dev-bind $SHELL_FOLDER/lib64 /usr/lib64 "
|
||||
fi
|
||||
|
||||
if [[ -d /usr/share/fonts ]]; then
|
||||
option="$option --dev-bind /usr/share/fonts /usr/share/fonts "
|
||||
fi
|
||||
|
||||
if [[ -d $SHELL_FOLDER/gnemul ]]; then
|
||||
if [[ ! -d /usr/gnemul ]]; then
|
||||
pkexec mkdir -p /usr/gnemul
|
||||
fi
|
||||
option="$option --dev-bind $SHELL_FOLDER/gnemul /usr/gnemul "
|
||||
fi
|
||||
|
||||
bwrap --dev-bind / / \
|
||||
--dev-bind "$SHELL_FOLDER/bin" /usr/bin \
|
||||
--dev-bind "$SHELL_FOLDER/bin" /bin \
|
||||
--dev-bind "$SHELL_FOLDER/lib" /usr/lib \
|
||||
--dev-bind "$SHELL_FOLDER/lib" /lib \
|
||||
--dev-bind /usr/lib/locale /usr/lib/locale \
|
||||
--dev-bind "$SHELL_FOLDER/share" /usr/share \
|
||||
$option \
|
||||
|
||||
@@ -15,6 +15,13 @@ if [[ -d /usr/share/fonts ]]; then
|
||||
option="$option --dev-bind /usr/share/fonts /usr/share/fonts "
|
||||
fi
|
||||
|
||||
if [[ -d $SHELL_FOLDER/gnemul ]]; then
|
||||
if [[ ! -d /usr/gnemul ]]; then
|
||||
pkexec mkdir -p /usr/gnemul
|
||||
fi
|
||||
option="$option --dev-bind $SHELL_FOLDER/gnemul /usr/gnemul "
|
||||
fi
|
||||
|
||||
"$SHELL_FOLDER/bwrap" --dev-bind / / \
|
||||
--dev-bind "$SHELL_FOLDER/bin" /usr/bin \
|
||||
--dev-bind "$SHELL_FOLDER/bin" /bin \
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "4.1.4",
|
||||
"Version": "4.1.5",
|
||||
"Time": "未知",
|
||||
"Thank": [
|
||||
"感谢 @り哥拽的冇气质° 和 @杨 提供了 3a5000(新世界的测试机器)",
|
||||
|
||||
2048
winetricks
2048
winetricks
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user