Compare commits

...

51 Commits

Author SHA1 Message Date
2bc597ce84 修改虚拟机标题名称 2025-05-17 20:33:43 +08:00
d929107117 4.1.6 2025-05-05 16:05:44 +08:00
6d56abbb28 修复Mono/Gecko安装器无法正常下载Mono/Gecko的问题 2025-05-05 16:04:09 +08:00
a76191da3a 补个更新日志 2025-04-19 21:22:13 +08:00
3fd7b7532f 4.1.5 2025-04-19 21:18:26 +08:00
22f4430a27 更新dxvk至2.6.1 2025-04-19 21:17:49 +08:00
40938dc131 更新winetricks版本 2025-04-19 21:16:07 +08:00
a7bf65f407 适配spark-wine10 2025-04-19 21:07:15 +08:00
3272c825c6 更新dxvk至dxvk2.6 2025-03-16 08:54:12 +08:00
acfb32d51f 修复run-system-bwrap问题 2025-02-06 17:53:28 +08:00
4629bb495b 补充缺失依赖 2025-02-06 17:43:22 +08:00
76347629d1 拷贝wine 2025-02-06 12:48:45 +08:00
197c5706dd 没拷贝lat的文件 2025-02-06 12:42:30 +08:00
4d318701ac 写入dns 2025-02-06 11:38:23 +08:00
34e2062f83 更换注册方式 2025-02-06 10:01:04 +08:00
0a485769ed 调整依赖 2025-02-05 17:54:42 +08:00
ef7737f0d9 调整 2025-02-05 13:10:39 +08:00
1c13377979 调整binfmt注册方式 2025-02-05 13:06:54 +08:00
931fd3114a 调整 2025-02-05 12:51:58 +08:00
2c8e83c2d4 整合action 2025-02-05 12:50:07 +08:00
9f591340b0 使用actions/upload-artifact@v4 2025-02-05 12:43:17 +08:00
878ce96a50 尝试loongarch64架构离线包 2025-02-05 12:39:46 +08:00
6c0549afe6 支持调用deepin-wine-staging 2025-01-02 22:25:53 +08:00
4d30f1c04d 调整makefile 2024-12-21 15:51:34 +08:00
b481f01609 4.1.3 2024-12-21 15:38:55 +08:00
864be06001
feat: 支持spark-wine9的自动屏蔽安装器
Merge pull request  from shenmo/N/A
2024-12-16 13:58:15 +00:00
189d7a1ba1
feat: 支持spark-wine9的自动屏蔽安装器
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-12-13 11:13:26 +00:00
c2e598c670 4.1.2 2024-11-17 15:48:39 +08:00
15c15dc5f8 更新dxvk版本至2.5 2024-11-17 15:45:08 +08:00
676d52c964 修复安全问题 2024-11-17 15:43:17 +08:00
7138c6fbb9
【轻量级 PR】:Fix: Change %u to %F to avoid low wine version can't resolve file:// protocol
Merge pull request  from shenmo/N/A
2024-11-07 14:23:49 +00:00
979c573768
Fix: Change %u to %F to avoid low wine version can't resolve file:// protocol
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-11-07 05:46:22 +00:00
9ea5e297b6 修复自动构建问题 2024-11-06 22:08:25 +08:00
624b4c8b3a
fix: Can not pass args that starts with -- && feat: Now add --uri %u as default
Merge pull request  from shenmo/main
2024-11-05 13:27:29 +00:00
0c4e736b12 fix: GXDE Deb Installer will install xfce-terminal when installing deb 2024-11-04 12:51:01 +08:00
0d0438bddd
bump version to 4112
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-11-04 04:44:46 +00:00
3fe1ff8a61 fix: i18n fail on GXDE 2024-11-04 08:26:29 +08:00
1fe4ed75f4 fix: Can not pass args to exe without --uri
Chore: Bump version to 4.1.1.1
2024-11-04 08:19:01 +08:00
ebf9474bc6 feat: Now we pass %u as default config 2024-11-04 07:55:46 +08:00
d7e131c778 fix: Can not pass '--xxx' options to wine progs 2024-11-04 07:51:41 +08:00
9184f42677 补充更新内容 2024-11-02 21:47:52 +08:00
674eff5f10 调整版本号 2024-11-02 21:45:34 +08:00
910404b54d 修复虚拟机因无法创建磁盘导致崩溃的问题 2024-11-02 21:45:08 +08:00
ab60ec15b0
fix:i18n failed
Merge pull request  from shenmo/N/A
2024-10-27 08:33:25 +00:00
535dccb183
fix:i18n failed
Signed-off-by: shenmo <jifengshenmo@outlook.com>
2024-10-20 12:47:31 +00:00
a515570ee3 漏改了地方 2024-10-16 22:25:53 +08:00
c73e32fa39 调整版本号 2024-10-16 22:10:07 +08:00
ca88d5f62c run.sh适配GXDE OS(https://gitee.com/gfdgd-xi/deep-wine-runner/issues/IAW3W3) 2024-10-16 21:56:08 +08:00
df561d3d03 修复APPRUN_CMD值错误的问题(https://gitee.com/gfdgd-xi/deep-wine-runner/issues/IAXE1T) 2024-10-16 21:52:07 +08:00
744d2aa262 修复bug(https://gitee.com/gfdgd-xi/deep-wine-runner/issues/IASRHG) 2024-09-22 11:09:48 +08:00
7fb1f60aae 修复没有dxvk的问题 2024-09-17 12:21:42 +08:00
44 changed files with 1066 additions and 1819 deletions

17
.github/workflows/DaoXiangHu-stable vendored Normal file

@ -0,0 +1,17 @@
mirror_style release
download_style apt
finddebs_style from-indices
variants - buildd fakechroot minbase
keyring /usr/share/keyrings/debian-archive-keyring.gpg
default_mirror https://pkg.loongnix.cn/loongnix/20
# include common settings
if [ -e "$DEBOOTSTRAP_DIR/scripts/debian-common" ]; then
. "$DEBOOTSTRAP_DIR/scripts/debian-common"
elif [ -e /debootstrap/debian-common ]; then
. /debootstrap/debian-common
elif [ -e "$DEBOOTSTRAP_DIR/debian-common" ]; then
. "$DEBOOTSTRAP_DIR/debian-common"
else
error 1 NOCOMMON "File not found: debian-common"
fi

@ -1,33 +0,0 @@
name: Auto Building Wine Runnerpkg
run-name: ${{ github.actor }} Auto Building Wine Runnerpkg 🚀
on:
workflow_dispatch:
jobs:
Explore-GitHub-Actions:
runs-on: ubuntu-latest
container: archlinux
steps:
- name: Building PKG
env:
GUSER: ${{ secrets.GUSER }}
PASSWORD: ${{ secrets.PASSWORD }}
UPLOADURL: ${{ secrets.UPLOADURL }}
run: |
# 配置环境
pacman -Sy
pacman -S yay git sudo
pacman -S dpkg qt5-base -y
yay install
git clone https://github.com/gfdgd-xi/deep-wine-runner
cd deep-wine-runner
make package-deb -j4
make package-pkg -j4
cd ..
mv spark-deepin-wine-runner*.pkg.tar.zst ../spark-deepin-wine-runner.pkg.tar.zst
- name: upload result
uses: actions/upload-artifact@v3
with:
name: spark-deepin-wine-runner.pkg.tar.zst
path: spark-deepin-wine-runner.pkg.tar.zst

@ -1,29 +0,0 @@
name: Auto Building Wine Runnerrpm
run-name: ${{ github.actor }} Auto Building Wine Runnerrpm 🚀
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

@ -1,10 +1,10 @@
name: Auto Building Wine Runnerdeb
run-name: ${{ github.actor }} Auto Building Wine Runnerdeb 🚀
name: Auto Building Wine Runner
run-name: ${{ github.actor }} Auto Building Wine Runner 🚀
on:
push:
workflow_dispatch:
jobs:
Explore-GitHub-Actions:
deb:
runs-on: ubuntu-latest
steps:
- name: Building DEB
@ -18,24 +18,73 @@ jobs:
mv spark-deepin-wine-runner.deb ~
mv spark-deepin-wine-runner-ace.deb ~
- name: upload result
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: spark-deepin-wine-runner.deb
path: /home/runner/spark-deepin-wine-runner.deb
- name: upload result
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: spark-deepin-wine-runner-ace.deb
path: /home/runner/spark-deepin-wine-runner-ace.deb
- name: Building DEB (termux)
run: |
cd deep-wine-runner
make package-deb-termux -j4
make package-termux-deb -j4
mv spark-deepin-wine-runner-termux.deb ~
- name: upload result
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: spark-deepin-wine-runner-termux.deb
path: /home/runner/spark-deepin-wine-runner-termux.deb
rpm:
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@v4
with:
name: spark-deepin-wine-runner.rpm
path: /home/runner/spark-deepin-wine-runner.rpm
pkg:
runs-on: ubuntu-latest
container: archlinux
steps:
- name: Building PKG
env:
GUSER: ${{ secrets.GUSER }}
PASSWORD: ${{ secrets.PASSWORD }}
UPLOADURL: ${{ secrets.UPLOADURL }}
run: |
# 配置环境
pacman -Sy
pacman -S yay git sudo
pacman -S dpkg qt5-base -y
yay install
git clone https://github.com/gfdgd-xi/deep-wine-runner
cd deep-wine-runner
make package-deb -j4
make package-pkg -j4
cd ..
mv spark-deepin-wine-runner*.pkg.tar.zst ../spark-deepin-wine-runner.pkg.tar.zst
- name: upload result
uses: actions/upload-artifact@v4
with:
name: spark-deepin-wine-runner.pkg.tar.zst
path: spark-deepin-wine-runner.pkg.tar.zst

@ -1,79 +0,0 @@
name: Building Wine Runner Off-line Pages(arm64)
run-name: ${{ github.actor }} Building Wine Runner Off-line Pages(arm64) 🚀
on:
push:
workflow_dispatch:
jobs:
Explore-GitHub-Actions:
runs-on: ubuntu-latest
steps:
- name: Building DEB
run: |
# 获取所需数据
cpu=$(cat /proc/cpuinfo | grep processor | wc -l)
# 配置环境
sudo apt update
sudo apt install python3-requests debootstrap xz-utils qemu-user-static -y
sudo apt install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools psmisc -y
cd ~
mkdir package
# 部署 chroot 环境
sudo debootstrap --arch=arm64 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 apt update
sudo chroot debian apt install sudo gpg wget -y
sudo chroot debian wget https://ryanfortner.github.io/box64-debs/box64.list -O /etc/apt/sources.list.d/box64.list
sudo chroot debian bash -c "wget -qO- https://ryanfortner.github.io/box64-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box64-debs-archive-keyring.gpg"
sudo chroot debian apt update
sudo chroot debian apt install box64 wine -y
## 获取 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 fcitx xfce4-terminal -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/lib64 package -rv
sudo cp debian/opt/apps/deepin-wine-runner/* package/runner -rv
# 精简运行器体积
sudo rm -rf package/runner/2048
sudo rm -rf package/runner/geek.exe
sudo rm -rf package/runner/BeCyIconGrabber.exe
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_arm64 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
- 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

@ -1,10 +1,10 @@
name: Building Wine Runner Off-line Pages(amd64)
run-name: ${{ github.actor }} Building Wine Runner Off-line Pages(amd64) 🚀
name: Building Wine Runner Off-line Pages
run-name: ${{ github.actor }} Building Wine Runner Off-line Pages 🚀
on:
push:
workflow_dispatch:
jobs:
Explore-GitHub-Actions:
amd64:
runs-on: ubuntu-latest
steps:
- name: Building DEB
@ -30,6 +30,8 @@ jobs:
sudo chroot debian apt install sudo gpg 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 bash -c "echo 'deb [trusted=true] https://repo.gxde.top/gxde-os/bixie ./' | sudo tee /etc/apt/sources.list.d/gxde-stable.list"
sudo chroot debian bash -c "echo 'deb [trusted=true] https://repo.gxde.top/gxde-os/tianlu ./' | sudo tee /etc/apt/sources.list.d/gxde-testing.list"
sudo chroot debian apt update
## 获取 Wine 运行器安装包
git clone https://github.com/gfdgd-xi/deep-wine-runner --depth=1
@ -41,6 +43,7 @@ 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 winehq-devel fcitx xfce4-terminal -y
sudo chroot debian apt install locales qtwayland5 xwayland thunar -y
sudo chroot debian apt install libxenmisc4.17 libxenstore4 libxenforeignmemory1 -y
# 构建软件包
mkdir package/runner -p
@ -59,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
@ -70,9 +75,168 @@ jobs:
cd ..
xz -T $cpu spark-deepin-wine-runner-off-line.tar
- name: upload result
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: spark-deepin-wine-runner-off-line.tar.xz
name: spark-deepin-wine-runner-off-line-amd64.tar.xz
path: /home/runner/spark-deepin-wine-runner-off-line.tar.xz
arm64:
runs-on: ubuntu-latest
steps:
- name: Building DEB
run: |
# 获取所需数据
cpu=$(cat /proc/cpuinfo | grep processor | wc -l)
# 配置环境
sudo apt update
sudo apt install python3-requests debootstrap xz-utils qemu-user-static -y
sudo apt install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools psmisc -y
cd ~
mkdir package
# 部署 chroot 环境
sudo debootstrap --arch=arm64 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 apt update
sudo chroot debian apt install sudo gpg wget -y
sudo chroot debian wget https://ryanfortner.github.io/box64-debs/box64.list -O /etc/apt/sources.list.d/box64.list
sudo chroot debian bash -c "wget -qO- https://ryanfortner.github.io/box64-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box64-debs-archive-keyring.gpg"
sudo chroot debian bash -c "echo 'deb [trusted=true] https://repo.gxde.top/gxde-os/bixie ./' | sudo tee /etc/apt/sources.list.d/gxde-stable.list"
sudo chroot debian bash -c "echo 'deb [trusted=true] https://repo.gxde.top/gxde-os/tianlu ./' | sudo tee /etc/apt/sources.list.d/gxde-testing.list"
sudo chroot debian apt update
sudo chroot debian apt install box64 hangover-wine -y
## 获取 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 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/lib64 package -rv
sudo cp debian/opt/apps/deepin-wine-runner/* package/runner -rv
# 精简运行器体积
sudo rm -rf package/runner/2048
sudo rm -rf package/runner/geek.exe
sudo rm -rf package/runner/BeCyIconGrabber.exe
sudo rm -rf package/runner/Icon
sudo rm -rf package/runner/RegShot.exe
sudo rm -rf package/runner/novnc
# 修复 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_arm64 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
- name: upload result
uses: actions/upload-artifact@v4
with:
name: spark-deepin-wine-runner-off-line-arm64.tar.xz
path: /home/runner/spark-deepin-wine-runner-off-line.tar.xz
loongarch64:
runs-on: ubuntu-20.04
steps:
- name: Building DEB
run: |
# 获取所需数据
cpu=$(cat /proc/cpuinfo | grep processor | wc -l)
# 配置环境
sudo apt update
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/loongarch-kvm/qemu-loongarch64-static
cd 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
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
sudo pardus-chroot debian
### 配置容器
## 加入 wine 源
sudo chroot debian apt update
sudo chroot debian apt install sudo gpg wget -y
sudo chroot debian apt update
sudo chroot debian apt install -y lat i386-runtime-base i386-runtime-extra
sudo chroot debian apt install -y wine
## 获取 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 fcitx xfce4-terminal qtwayland5 xwayland thunar -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
sudo rm -rf package/runner/BeCyIconGrabber.exe
sudo rm -rf package/runner/Icon
sudo rm -rf package/runner/RegShot.exe
sudo rm -rf package/runner/novnc
# 修复 which 命令的问题导致无法正常识别终端的问题
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
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
- name: upload result
uses: actions/upload-artifact@v4
with:
name: spark-deepin-wine-runner-off-line-loongarch64.tar.xz
path: /home/runner/spark-deepin-wine-runner-off-line.tar.xz

@ -4,7 +4,7 @@ X-Categories=System;Wine;
Exec=/usr/bin/deepin-wine-runner %F
Icon=/opt/apps/deepin-wine-runner/deepin-wine-runner.svg
Name=Wine Runner
Name[zh]=Wine
Name[zh_CN]=Wine
Terminal=false
StartupNotify=true
Keywords=exe;scr;

@ -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():

@ -177,8 +177,63 @@ copy-files:
remove-copy-files:
sudo rm -rfv /tmp/spark-deepin-wine-runner-builder
package-deb-to-amd64:
rm -rfv /tmp/wine-runner-package
dpkg -x spark-deepin-wine-runner.deb /tmp/wine-runner-package
dpkg -e spark-deepin-wine-runner.deb /tmp/wine-runner-package/DEBIAN
sudo chown -R root:root /tmp/wine-runner-package/opt
sudo chown -R root:root /tmp/wine-runner-package/usr
sed -i "s/Architecture: all/Architecture: amd64/g" /tmp/wine-runner-package/DEBIAN/control
dpkg-deb -Z xz -z 0 -b /tmp/wine-runner-package spark-deepin-wine-runner-amd64.deb
package-deb-to-arm64:
rm -rfv /tmp/wine-runner-package
dpkg -x spark-deepin-wine-runner.deb /tmp/wine-runner-package
dpkg -e spark-deepin-wine-runner.deb /tmp/wine-runner-package/DEBIAN
sudo chown -R root:root /tmp/wine-runner-package/opt
sudo chown -R root:root /tmp/wine-runner-package/usr
sed -i "s/Architecture: all/Architecture: arm64/g" /tmp/wine-runner-package/DEBIAN/control
dpkg-deb -Z xz -z 0 -b /tmp/wine-runner-package spark-deepin-wine-runner-arm64.deb
package-deb-to-mips64el:
rm -rfv /tmp/wine-runner-package
dpkg -x spark-deepin-wine-runner.deb /tmp/wine-runner-package
dpkg -e spark-deepin-wine-runner.deb /tmp/wine-runner-package/DEBIAN
sudo chown -R root:root /tmp/wine-runner-package/opt
sudo chown -R root:root /tmp/wine-runner-package/usr
sed -i "s/Architecture: all/Architecture: mips64el/g" /tmp/wine-runner-package/DEBIAN/control
dpkg-deb -Z xz -z 0 -b /tmp/wine-runner-package spark-deepin-wine-runner-mips64el.deb
package-deb-to-loongarch64:
rm -rfv /tmp/wine-runner-package
dpkg -x spark-deepin-wine-runner.deb /tmp/wine-runner-package
dpkg -e spark-deepin-wine-runner.deb /tmp/wine-runner-package/DEBIAN
sudo chown -R root:root /tmp/wine-runner-package/opt
sudo chown -R root:root /tmp/wine-runner-package/usr
sed -i "s/Architecture: all/Architecture: loongarch64/g" /tmp/wine-runner-package/DEBIAN/control
dpkg-deb -Z xz -z 0 -b /tmp/wine-runner-package spark-deepin-wine-runner-loongarch64.deb
package-deb-to-loong64:
rm -rfv /tmp/wine-runner-package
dpkg -x spark-deepin-wine-runner.deb /tmp/wine-runner-package
dpkg -e spark-deepin-wine-runner.deb /tmp/wine-runner-package/DEBIAN
sudo chown -R root:root /tmp/wine-runner-package/opt
sudo chown -R root:root /tmp/wine-runner-package/usr
sed -i "s/Architecture: all/Architecture: loong64/g" /tmp/wine-runner-package/DEBIAN/control
dpkg-deb -Z xz -z 0 -b /tmp/wine-runner-package spark-deepin-wine-runner-loong64.deb
package-deb-to-riscv64:
rm -rfv /tmp/wine-runner-package
dpkg -x spark-deepin-wine-runner.deb /tmp/wine-runner-package
dpkg -e spark-deepin-wine-runner.deb /tmp/wine-runner-package/DEBIAN
sudo chown -R root:root /tmp/wine-runner-package/opt
sudo chown -R root:root /tmp/wine-runner-package/usr
sed -i "s/Architecture: all/Architecture: riscv64/g" /tmp/wine-runner-package/DEBIAN/control
dpkg-deb -Z xz -z 0 -b /tmp/wine-runner-package spark-deepin-wine-runner-riscv64.deb
package-deb:
make copy-files -j$(nproc)
sudo chown -R root:root /tmp/spark-deepin-wine-runner-builder
dpkg-deb -Z xz -z 9 -b /tmp/spark-deepin-wine-runner-builder spark-deepin-wine-runner.deb
make remove-copy-files -j$(nproc)
# 构建 ace 包

@ -13,15 +13,15 @@ programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
# 优先为深度终端
terminal = ""
terminalList = [
"deepin-terminal",
"gxde-terminal",
"deepin-terminal",
"mate-terminal",
"gnome-terminal",
"xfce4-terminal"
]
terminalEnd = {
f"{programPath}/../launch.sh\" \"deepin-terminal": ["-e", 0],
f"{programPath}/../launch.sh\" \"gxde-terminal": ["-e", 0],
"gxde-terminal": ["-e", 0],
"mate-terminal": ["-e", 1],
"gnome-terminal": ["--", 0],
"xfce4-terminal": ["-e", 1]

120
ShellList/turn-amd64-to-all.sh Executable file

@ -0,0 +1,120 @@
#!/bin/bash
# A simple loongarch64 => loong64 .deb converter to help traverse the worlds.
#
# Mingcong Bai <jeffbai@aosc.io>, 2024
_display_usage() {
printf "\
Usage:
loong64-it [PACKAGE1] [PACKAGE2] ...
- PACKAGE{1..N}: Path to the old-world .deb package to convert.
"
}
# Autobuild-like echo functions.
abwarn() { echo -e "[\e[33mWARN\e[0m]: \e[1m$*\e[0m"; }
aberr() { echo -e "[\e[31mERROR\e[0m]: \e[1m$*\e[0m"; exit 1; }
abinfo() { echo -e "[\e[96mINFO\e[0m]: \e[1m$*\e[0m"; }
abdbg() { echo -e "[\e[32mDEBUG\e[0m]: \e[1m$*\e[0m"; }
_convert_loong64() {
PKG_PATH=$(realpath $1)
PKG_NAME=$(dpkg-deb -f "$PKG_PATH" Package)
VERSION=$(dpkg-deb -f "$PKG_PATH" Version)
BASEDIR=$(dirname $PKG_PATH)
abinfo "Examining package information: $1 ..."
dpkg -I "$PKG_PATH" || \
aberr "Invalid dpkg package: control (metadata) archive not found: $?"
CONTROL_EXT="$(ar t "$PKG_PATH" | grep control.tar* | cut -f3 -d'.')"
case "${CONTROL_EXT}" in
gz)
TAR_COMP_FLAG="z"
;;
xz)
TAR_COMP_FLAG="J"
;;
bz2)
TAR_COMP_FLAG="j"
;;
"")
TAR_COMP_FLAG=""
;;
*)
aberr "Invalid control archive extension ${CONTROL_EXT}!"
;;
esac
abinfo "Unpacking: $1 ..."
cd $(mktemp -d) || \
aberr "Failed to create temporary directory to unpack $1: $?."
DEBDIR="$(pwd)"
ar xv "$PKG_PATH" || \
aberr "Failed to unpack $1: $?."
abinfo "Unpacking metadata archive: $1 ..."
mkdir "$DEBDIR"/metadata || \
aberr "Failed to create temporary directory for extracting the metdata archive from $1: $?."
tar -C "$DEBDIR"/metadata -xvf control.tar."${CONTROL_EXT}" || \
aberr "Failed to unpack metadata archive from $1: $?."
abinfo "Converting dpkg Architecture key: $1 ..."
#if ! egrep '^Architecture: loongarch64$' "$DEBDIR"/metadata/control; then
# aberr "Failed to detect a \"loongarch64\" architecture signature in control file - this is not a valid old-world LoongArch package!"
#fi
sed -e 's|^Architecture: amd64$|Architecture: all|g' \
-i "$DEBDIR"/metadata/control
abinfo "Building metadata archive (control.tar.${CONTROL_EXT}): $1 ..."
cd "$DEBDIR"/metadata
tar cvf${TAR_COMP_FLAG} "$DEBDIR"/control.tar."${CONTROL_EXT}" * || \
aberr "Failed to build metadata archive (control.tar.${CONTROL_EXT}) for $1: $?."
cd "$DEBDIR"
abinfo "Rebuilding dpkg package $1"
ar rv "$PKG_PATH" control.tar.${CONTROL_EXT} || \
aberr "Failed to rebuild dpkg package $1: $?."
#abinfo "Cleaning up: $1 ..."
#rm -r "$DEBDIR"
mv $1 ${BASEDIR}/${PKG_NAME}_${VERSION}_loong64.deb
abinfo """Your requested package:
$1
Has been successfully converted as a loong64 package and renamed as ${PKG_NAME}_${VERSION}_loong64.deb
However, you may still need to install libLoL for old-world applications to
work properly. Please refer to the libLoL home page:
https://liblol.aosc.io
For details on how to install and configure libLoL.
"""
}
# Display usage info if `-h' or `--help' is specified.
if [[ "$1" == "-h" || "$1" == "--help" ]]; then
_display_usage
exit 0
fi
# Display usage info with directions if no option is specified.
if [ -z "$1" ]; then
abwarn "Please specify package(s) to convert.\n"
_display_usage
exit 1
fi
# Record working directory.
SRCDIR="$(pwd)"
# Rebuilding all requested packages.
for i in "$@"; do
_convert_loong64 $i
done

@ -68,7 +68,7 @@ if [[ $? == 0 ]] && [[ -f "$HOME/Qemu/Windows/Windows.qcow2" ]]; then
./VM/kvm-ok
if [[ $? == 0 ]] && [[ `arch` == "x86_64" ]]; then
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)) \
-m ${use}G -display gtk -nic model=rtl8139 $qemuUEFI \
-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
./VM/kvm-ok
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)) \
-m ${use}G -display gtk -usb -nic model=rtl8139 $qemuUEFI \
-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
exit
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)) \
-m ${use}G -display gtk -usb -nic model=rtl8139 $qemuUEFI \
-cpu max -M virt -device virtio-gpu-pci \
@ -158,7 +158,7 @@ if [[ $? == 0 ]] && [[ -f "$HOME/Qemu/Windows/Windows.qcow2" ]]; then
echo $qemuUEFI
./VM/kvm-ok
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)) \
-m ${use}G -display gtk -usb -nic model=rtl8139 $qemuUEFI \
-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
exit
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)) \
-m ${use}G -display gtk -usb -nic model=rtl8139 $qemuUEFI \
-cpu max -M virt \

@ -119,7 +119,7 @@ class buildvbox:
#vm.MountDisk(self.homePath() + "/Qemu/Windows/Windows.qcow2")
vm.MountMainDisk(self.homePath() + "/Qemu/Windows/Windows.qcow2")
if(os.system("/opt/apps/deepin-wine-runner-qemu-system-extra/files/resources/virtio-win.iso")):
if(os.path.exists("/opt/apps/deepin-wine-runner-qemu-system-extra/files/resources/virtio-win.iso")):
vm.MountISO("/opt/apps/deepin-wine-runner-qemu-system-extra/files/resources/virtio-win.iso", "storage_controller_2", 1, 3)
if(not setISOAlready):
vm.MountISO(isoPath, "storage_controller_1", 0, 1)

@ -148,7 +148,7 @@ def on_install_clicked():
QMessageBox.warning(this, ("提示"), ("VirtualBox 不支持该选项!"))
return
archFile.open(QIODevice.WriteOnly)
archFile.write("aarch64")
#archFile.write("aarch64")
archFile.close()
else:
if(ui.vmChooser.currentIndex() == 0 and QFile.exists(QDir.homePath() + "/.config/deepin-wine-runner/QEMU-EFI")):
@ -330,4 +330,4 @@ if (subprocess.getoutput("arch") != "x86_64"):
i.setVisible(False)
window.show()
if (__name__ == "__main__"):
sys.exit(app.exec_())
sys.exit(app.exec_())

@ -24,18 +24,21 @@ class qemu:
self.qemuPath = "qemu-system-i386"
if (os.path.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"
self.vboxVersion = subprocess.getoutput(qemuPath + " --version")
self.qemuPath = "/opt/apps/deepin-wine-runner-qemu-system-extra/files/run.sh qemu-system-i386"
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):
if(os.path.exists(path)):
return 0
return os.system(("qemu-img create -f qcow2 '" + self.path + "' " + str(size) + "M"))
return os.system(("qemu-img create -f qcow2 '" + path + "' " + str(size) + "M"))
def CreateDiskControl(self, controlName = "storage_controller_1"):
return 0
@ -86,9 +89,9 @@ class qemu:
# 如果存在拓展 Qemu则调用此
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"))):
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):
bootScreenLogo = ""
@ -109,7 +112,7 @@ class qemu:
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 -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):
return 1
@ -134,8 +137,8 @@ class qemu:
qemuPath = "/opt/apps/deepin-wine-runner-qemu-system-extra/files/run.sh qemu-system-x86_64"
print(self.commandOption)
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 + " --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 --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 -nic model=rtl8139 " + newCommandOption + " > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &"))
def Stop(self):
os.system("killall qemu-system-x86_64 -9")

@ -18,7 +18,7 @@ Depends: python3,
python3-requests,
python3-pyqt5 | pyqt5,
python3-psutil | pypsutil,
xfce4-terminal | gxde-terminal | deepin-terminal | mate-terminal | gnome-terminal,
gxde-terminal |xfce4-terminal | deepin-terminal | mate-terminal | gnome-terminal,
python3-dbus,
python3-pip | pip, p7zip-full | p7zip-legacy | p7zip,
sudo,
@ -28,7 +28,8 @@ Depends: python3,
tree,
dpkg,
fakeroot,
bash
bash,
xdg-utils
Recommends: winbind,
wimtools | wimlib,
python3-pyquery,
@ -36,13 +37,12 @@ Recommends: winbind,
binfmt-support,
libc6:i386,
libc6:armhf,
libwine,
qemu-system,
qemu-full,
qemu,
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,
deepin-wine-staging | deepin-wine8-stable | hangover-wine | 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 | libwine,
spark-dwine-helper | store.spark-app.spark-dwine-helper | deepin-wine-helper | com.wine-helper.deepin
Section: utils
Conflicts: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer, spark-deepin-wine-runner-52, spark-deepin-wine-runner-termux, termux-exec

@ -19,12 +19,14 @@ python3 -m pip install --upgrade xpinyin --trusted-host https://repo.huaweicloud
python3 -m pip install --upgrade pynput --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple > /dev/null 2>&1 | true
python3 -m pip install --upgrade xpinyin --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple > /dev/null 2>&1 | true
# 修改 box86/64 国内源错误数据
if [ -f /etc/apt/sources.list.d/box64.list ]; then
sed -i 's/http:\/\/seafile.jyx2048.com:2345/http:\/\/gfdgdxi.v5.idcfengye.com/g' /etc/apt/sources.list.d/box64.list
fi
if [ -f /etc/apt/sources.list.d/box86.list ]; then
sed -i 's/http:\/\/seafile.jyx2048.com:2345/http:\/\/gfdgdxi.v5.idcfengye.com/g' /etc/apt/sources.list.d/box86.list
fi
sudo rm /etc/apt/sources.list.d/box64.list -rfv
sudo rm /etc/apt/sources.list.d/box86.list -rfv
#if [ -f /etc/apt/sources.list.d/box64.list ]; then
# sed -i 's/http:\/\/seafile.jyx2048.com:2345/http:\/\/gfdgdxi.v5.idcfengye.com/g' /etc/apt/sources.list.d/box64.list
#fi
#if [ -f /etc/apt/sources.list.d/box86.list ]; then
# sed -i 's/http:\/\/seafile.jyx2048.com:2345/http:\/\/gfdgdxi.v5.idcfengye.com/g' /etc/apt/sources.list.d/box86.list
#fi
echo 执行完成
echo 移除旧组件
if [ -d /opt/apps/deepin-wine-runner/arm-package ]; then
@ -36,9 +38,6 @@ fi
if [ -d /opt/apps/deepin-wine-runner/exa ]; then
rm -rf /opt/apps/deepin-wine-runner/exa
fi
if [ -d /opt/apps/deepin-wine-runner/dxvk ]; then
rm -rf /opt/apps/deepin-wine-runner/dxvk
fi
echo 移除完成
# 如果为非 X86 PC可以删除掉一些无用组件主要是用不了
if [[ `arch` != "x86_64" ]]; then
@ -63,6 +62,6 @@ if [[ `arch` != "x86_64" ]]; then
rm -rf /opt/apps/deepin-wine-runner/InstallNewWineHQ.sh
fi
# 设置目录权限,让用户可读可写,方便后续删除组件
chmod 777 -R /opt/apps/deepin-wine-runner > /dev/null 2>&1 | true
#chmod 777 -R /opt/apps/deepin-wine-runner > /dev/null 2>&1 | true
# 向服务器返回安装数加1不显示内容且忽略错误
python3 /opt/apps/deepin-wine-runner/Download.py $version > /dev/null 2>&1 | true

@ -4,7 +4,7 @@ X-Categories=System;Wine;
Exec=/usr/bin/deepin-wine-package-builder "~/.wine" %F
Icon=/opt/apps/deepin-wine-runner/deepin-wine-runner.svg
Name=Wine Package Builder
Name[zh]=Wine
Name[zh_CN]=Wine
Terminal=false
StartupNotify=true
NoDisplay=true

@ -4,7 +4,7 @@ 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
Name[zh_CN]=Wine
Terminal=false
StartupNotify=true
NoDisplay=true

@ -5,6 +5,6 @@ Exec=/usr/bin/deepin-wine-packager-with-script
Icon=/opt/apps/deepin-wine-runner/deepin-wine-runner.svg
Name=Wine Package Builder For UOS
NoDisplay=true
Name[zh]=Wine ()
Name[zh_CN]=Wine ()
Terminal=false
StartupNotify=true

@ -4,7 +4,7 @@ X-Categories=System;Wine;
Exec=/opt/apps/deepin-wine-runner/RunVM.sh %F
Icon=/opt/apps/deepin-wine-runner/deepin-wine-runner.svg
Name=Setting VirtualMachine
Name[zh]= Windows
Name[zh_CN]= Windows
NoDisplay=true
Terminal=false
StartupNotify=true

@ -4,6 +4,6 @@ X-Categories=System;
Exec=/opt/apps/deepin-wine-runner/StartVM.sh %F
Icon=/opt/apps/deepin-wine-runner/deepin-wine-runner.svg
Name=Start Windows VirtualMachine
Name[zh]= Windows
Name[zh_CN]= Windows
Terminal=false
StartupNotify=true

@ -4,7 +4,7 @@ X-Categories=System;Wine;
Exec=/usr/bin/deepin-wine-runner %F
Icon=/opt/apps/deepin-wine-runner/deepin-wine-runner.svg
Name=Wine Runner
Name[zh]=Wine
Name[zh_CN]=Wine
Terminal=false
StartupNotify=true
Keywords=exe;scr;

@ -204,6 +204,8 @@ Get_Dist_Name()
DISTRO='Deepin'
elif grep -Eqi "UnionTech" /etc/issue || grep -Eq "UnionTech" /etc/*-release; then
DISTRO='UniontechOS'
elif grep -Eqi "GXDE" /etc/issue || grep -Eq "GXDE" /etc/*-release; then
DISTRO='GXDE'
elif grep -Eqi "UOS" /etc/issue || grep -Eq "UOS" /etc/*-release; then
DISTRO='UniontechOS'
else
@ -266,7 +268,7 @@ DISABLE_ATTACH_FILE_DIALOG=""
##############<<<<<<<<<禁用文件选择工具开始
Get_Dist_Name
#此功能实现参见开头函数段
if [ "$DISTRO" != "Deepin" ] && [ "$DISTRO" != "UniontechOS" ];then
if [ "$DISTRO" != "Deepin" ] && [ "$DISTRO" != "UniontechOS" ] && [ "$DISTRO" != "GXDE" ];then
DISABLE_ATTACH_FILE_DIALOG="1"
echo "非deepin/UOS默认关闭系统自带的文件选择工具使用Wine的"
echo "如果你想改变这个行为,请到/opt/apps/$DEB_PACKAGE_NAME/files/$0处修改"
@ -303,7 +305,7 @@ 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 "C:/windows/command/start.exe" "/Unix" "$EXEC_PATH" "$@"
$START_SHELL_PATH $BOTTLENAME $APPVER "$EXEC_PATH" "$@"
fi
else
$START_SHELL_PATH $BOTTLENAME $APPVER "uninstaller.exe" "$@"
@ -319,7 +321,7 @@ Encoding=UTF-8
Type=Application
X-Created-By=@@@Maintainer@@@
Icon=@@@Icon@@@
Exec="/opt/apps/@@@Package@@@/files/run.sh"
Exec="/opt/apps/@@@Package@@@/files/run.sh --uri %F"
Name=@@@Name@@@
Comment=@@@Description@@@
MimeType=
@ -696,6 +698,7 @@ logText.setStyleSheet("""
color: white;
""")
wineChooserList = [
"使用 Deepin Wine Staging 打包应用",
"使用 Deepin Wine8 Stable 打包应用",
"使用 Spark Wine9 wow 打包应用",
"使用 Spark Wine9 打包应用",
@ -708,7 +711,23 @@ wineChooserList = [
"使用 Spark Wine 打包应用"
]
wineChooserIndex = 2
wineList = ["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

@ -620,7 +620,7 @@ Description: {e3_text.text()}
if iconUiList[0][2].text().replace(" ", "") == "":
command = f"--uri {iconUiList[0][2].text()}"
else:
command = iconUiList[0][2].text()
command = f"--uri {iconUiList[0][2].text()}" # 若要传参进入wine容器必须--uri否则是传给run.sh的
replaceMap = [
["@@@BOTTLENAME@@@", e5_text.text()],
["@@@APPVER@@@", e2_text.text()],
@ -629,14 +629,14 @@ Description: {e3_text.text()}
["@@@APPRUN_CMD@@@", [
wine[wineVersion.currentText()],
f"/opt/apps/{e1_text.text()}/files/wine/bin/wine"
][os.path.exists(f'{debPackagePath}/opt/apps/{e1_text.text()}/files/')]],
][os.path.exists(f'{debPackagePath}/opt/apps/{e1_text.text()}/files/wine/')]],
["@@@EXEC_NAME@@@", os.path.basename(e7_text.text().replace("\\", "/"))],
["@@@ARCH@@@", debFirstArch.currentText()],
["@@@APP_NAME@@@", e8_text.text()],
["@@@MAINTAINER@@@", e4_text.text()],
["@@@DESCRIPTION@@@", e3_text.text()],
["@@@DESKTOP_EXEC@@@",
f'''"/opt/apps/{e1_text.text()}/files/run.sh" {command}'''],
f'''"/opt/apps/{e1_text.text()}/files/run.sh" {command} %F'''],
["@@@DESKTOP_NAME@@@", iconUiList[0][3].text()],
["@@@DESKTOP_MIMETYPE@@@", iconUiList[0][5].text()],
["@@@DESKTOP_CATEGORIES@@@", iconUiList[0][1].currentText()]
@ -676,7 +676,7 @@ Description: {e3_text.text()}
["@@@APPRUN_CMD@@@", [
wine[wineVersion.currentText()],
f"/opt/apps/{e1_text.text()}/files/wine/bin/wine"
][os.path.exists(f'{debPackagePath}/opt/apps/{e1_text.text()}/files/')]],
][os.path.exists(f'{debPackagePath}/opt/apps/{e1_text.text()}/files/wine/')]],
["@@@EXEC_NAME@@@", os.path.basename(i[0].text().replace("\\", "/"))],
["@@@ARCH@@@", debFirstArch.currentText()],
["@@@APP_NAME@@@", i[3].text()],
@ -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"}
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"}
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"):
@ -1356,6 +1376,15 @@ try:
wine[f"{programPath}/wine/{i}"] = f"{programPath}/wine/{i}"
except:
pass
try:
for i in json.loads(readtxt(f"{get_home()}/.deepwinerunner/wine/winelist.json")):
if os.path.exists(f"{get_home()}/.deepwinerunner/wine/{i}.7z"):
wine[f"{get_home()}/.deepwinerunner/wine/{i}.7z"] = f"{get_home()}/.deepwinerunner/wine/{i}.7z"
continue
if os.path.exists(f"{get_home()}/.deepwinerunner/wine/{i}"):
wine[f"{get_home()}/.deepwinerunner/wine/{i}"] = f"{get_home()}/.deepwinerunner/wine/{i}"
except:
pass
os.chdir("/")
iconUiList = []
helperConfigPath = None

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.0.0",
"Version": "4.1.6",
"Time": "未知",
"Thank": [
"感谢 @り哥拽的冇气质° 和 @杨 提供了 3a5000新世界的测试机器",

@ -2162,6 +2162,20 @@ def TransLog():
# 加载配置
###########################
if not os.path.exists(get_home() + "/.deepwinerunner/wine/"): # 如果没有配置文件夹
os.makedirs(get_home() + "/.deepwinerunner/wine/") # 创建配置文件夹
try:
shutil.copy(f"{programPath}/wine/installwine.py", get_home() + "/.deepwinerunner/wine/installwine.py")
shutil.copy(f"{programPath}/globalenv.py", get_home() + "/.deepwinerunner/globalenv.py")
shutil.copy(f"{programPath}/launch.sh", get_home() + "/.deepwinerunner/launch.sh")
if os.path.exists(get_home() + "/.deepwinerunner/Model"):
shutil.rmtree(get_home() + "/.deepwinerunner/Model")
shutil.copytree(f"{programPath}/Model", get_home() + "/.deepwinerunner/Model")
os.system(f"chmod 777 -Rv '{get_home()}/.deepwinerunner/launch.sh'")
except:
traceback.print_exc()
exit()
if not os.path.exists(get_home() + "/.config/"): # 如果没有配置文件夹
os.mkdir(get_home() + "/.config/") # 创建配置文件夹
if not os.path.exists(get_home() + "/.config/deepin-wine-runner"): # 如果没有配置文件夹
@ -2205,6 +2219,7 @@ def CheckWine():
"基于 UOS box86 的 deepin-wine6-stable": f"WINEPREDLL='{programPath}/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": f"WINEPREDLL='{programPath}/dlls-arm' WINEDLLPATH=/opt/deepin-wine6-stable/lib /opt/exagear/bin/ubt_x64a64_al --path-prefix {get_home()}/.deepinwine/debian-buster --utmp-paths-list {get_home()}/.deepinwine/debian-buster/.exagear/utmp-list --vpaths-list {get_home()}/.deepinwine/debian-buster/.exagear/vpaths-list --opaths-list {get_home()}/.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-wine-staging": "deepin-wine-staging",
"deepin-wine8-stable": "deepin-wine8-stable",
"deepin-wine6 stable": "deepin-wine6-stable",
"deepin-wine6-vannila": "deepin-wine6-vannila",
@ -2215,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",
@ -2304,9 +2321,10 @@ def CheckWine():
traceback.print_exc()
# 不再从列表读取,直接读目录
for i in os.listdir(f"{programPath}/wine/"):
for i in os.listdir(f"{programPath}/wine/") + os.listdir(f"{get_home()}/.deepwinerunner/wine/"):
#for i in json.loads(readtxt(f"{programPath}/wine/winelist.json")):
if os.path.exists(f"{programPath}/wine/{i}") and os.path.isdir(f"{programPath}/wine/{i}"):
if ((os.path.exists(f"{programPath}/wine/{i}") and os.path.isdir(f"{programPath}/wine/{i}")) or
(os.path.exists(f"{get_home()}/.deepwinerunner/wine/{i}") and os.path.isdir(f"{get_home()}/.deepwinerunner/wine/{i}"))):
name = ""
qemuInstall = False
nameValue = [["", ""]]
@ -2394,6 +2412,10 @@ def CheckWine():
wine[f"{k[0]}{chrootProgramPath}/wine/{i}/bin/{j}"] = f"{k[1]}{chrootProgramPath}/wine/{i}/bin/{j}"
canUseWine.append(f"{k[0]}{chrootProgramPath}/wine/{i}/bin/{j}")
untipsWine.append(f"{k[0]}{chrootProgramPath}/wine/{i}/bin/{j}")
if os.path.exists(f"{get_home()}/.deepwinerunner/wine/{i}/bin/{j}"):
wine[f"{k[0]}{get_home()}/.deepwinerunner/wine/{i}/bin/{j}"] = f"{k[1]}{get_home()}/.deepwinerunner/wine/{i}/bin/{j}"
canUseWine.append(f"{k[0]}{get_home()}/.deepwinerunner/wine/{i}/bin/{j}")
untipsWine.append(f"{k[0]}{get_home()}/.deepwinerunner/wine/{i}/bin/{j}")
except:
traceback.print_exc()
@ -2478,23 +2500,14 @@ exe路径\' 参数 \'
5wine 容器如果没有指定则会默认为 ~/.wine
6如果可执行文件比较大的话会出现点击获取该程序运行情况出现假死的情况因为正在后台读取 SHA1只需要等一下即可读取速度依照您电脑处理速度读写速度可执行文件大小等有关
7如果非 X86 的用户的 UOS 专业版用户想要使用的话只需要在应用商店安装一个 Wine 版本微信即可在本程序选择正确的 Wine 运行程序''')
updateThingsString = QtCore.QCoreApplication.translate("U", '''※1、修复在 GXDE OS 下无法正常调用 gxde-terminal 的问题
2修复部分机器无法打开应用的问题
3修改打包器 wine 集成封装 机制以便可以被 uos 商店正确签名
4打包器支持内置 spark dwine helper
5重构虚拟机安装模块以支持更多机器
6修复打包器设置依赖无法生效的问题
7补充图标
8修复 deb 安装过程中可能出现 dpkg 卡死的问题
9优化 Wine 安装器检测机制
10删除部分废弃组件
11修复 AOSCTermux 无法正常打开 Wine 运行器的问题
12修改文案
13修复其它 bug 若干
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>
@ -2822,7 +2835,7 @@ programmenu.addAction(installWineHQ)
programmenu.addAction(installWineHQOrg)
programmenu.addAction(installMoreWine)
programmenu.addAction(downloadChrootBottle)
programmenu.addAction(installBox86CN)
#programmenu.addAction(installBox86CN)
programmenu.addAction(installBox86)
programmenu.addAction(installLat)
programmenu.addSeparator()
@ -2843,7 +2856,7 @@ installWineHQ.triggered.connect(InstallWineHQ)
installWineHQOrg.triggered.connect(lambda: threading.Thread(target=OpenTerminal, args=[f"{programPath}/InstallNewWineHQOrg.sh"]).start())
installLat.triggered.connect(lambda: threading.Thread(target=OpenTerminal, args=[f"{programPath}/InstallLat.sh"]).start())
def InstallMoreWine():
os.system(f"'{programPath}/wine/installwine'")
os.system(get_home() + "/.deepwinerunner/wine/installwine.py")
# 更新 Wine 列表
CheckWine()
o1.clear()

BIN
off-line-shell/bwrap_loongarch64 Executable file

Binary file not shown.

@ -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 \

@ -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
"$SHELL_FOLDER/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 \

@ -1,5 +1,5 @@
{
"Version": "4.1.0.0",
"Version": "4.1.6",
"Time": "未知",
"Thank": [
"感谢 @り哥拽的冇气质° 和 @杨 提供了 3a5000新世界的测试机器",

@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# Copyright (C) 2016 Deepin, Inc.
#
@ -24,6 +24,8 @@ Get_Dist_Name()
DISTRO='UniontechOS'
elif grep -Eqi "UOS" /etc/issue || grep -Eq "UOS" /etc/*-release; then
DISTRO='UniontechOS'
elif grep -Eqi "GXDE" /etc/issue || grep -Eq "GXDE" /etc/*-release; then
DISTRO='GXDE'
else
DISTRO='OtherOS'
fi
@ -70,7 +72,7 @@ DISABLE_ATTACH_FILE_DIALOG=""
##############<<<<<<<<<禁用文件选择工具开始
Get_Dist_Name
#此功能实现参见开头函数段
if [ "$DISTRO" != "Deepin" ] && [ "$DISTRO" != "UniontechOS" ];then
if [ "$DISTRO" != "Deepin" ] && [ "$DISTRO" != "UniontechOS" ] && [ "$DISTRO" != "GXDE" ];then
DISABLE_ATTACH_FILE_DIALOG="1"
echo "非deepin/UOS默认关闭系统自带的文件选择工具使用Wine的"
echo "如果你想改变这个行为,请到/opt/apps/$DEB_PACKAGE_NAME/files/$0处修改"
@ -81,7 +83,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-wine9" ] || [ "$APPRUN_CMD" = "spark-wine" ]|| [ "$APPRUN_CMD" = "spark-wine8" ] && [ -z "$ENABLE_DOT_NET" ];then
export WINEDLLOVERRIDES="mscoree=d,mshtml=d"
export WINEDLLOVERRIDES="control.exe=d"
@ -107,7 +109,7 @@ 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 "C:/windows/command/start.exe" "/Unix" "$EXEC_PATH" "$@"
$START_SHELL_PATH $BOTTLENAME $APPVER "$EXEC_PATH" "$@"
fi
else
$START_SHELL_PATH $BOTTLENAME $APPVER "uninstaller.exe" "$@"

@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# Copyright (C) 2016 Deepin, Inc.
#
@ -48,6 +48,8 @@ Get_Dist_Name()
DISTRO='Deepin'
elif grep -Eqi "UnionTech" /etc/issue || grep -Eq "UnionTech" /etc/*-release; then
DISTRO='UniontechOS'
elif grep -Eqi "GXDE" /etc/issue || grep -Eq "GXDE" /etc/*-release; then
DISTRO='GXDE'
elif grep -Eqi "UOS" /etc/issue || grep -Eq "UOS" /etc/*-release; then
DISTRO='UniontechOS'
else
@ -109,7 +111,7 @@ DISABLE_ATTACH_FILE_DIALOG=""
##############<<<<<<<<<禁用文件选择工具开始
Get_Dist_Name
#此功能实现参见开头函数段
if [ "$DISTRO" != "Deepin" ] && [ "$DISTRO" != "UniontechOS" ];then
if [ "$DISTRO" != "Deepin" ] && [ "$DISTRO" != "UniontechOS" ] && [ "$DISTRO" != "GXDE" ];then
DISABLE_ATTACH_FILE_DIALOG="1"
echo "非deepin/UOS默认关闭系统自带的文件选择工具使用Wine的"
echo "如果你想改变这个行为,请到/opt/apps/$DEB_PACKAGE_NAME/files/$0处修改"
@ -120,7 +122,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-wine9" ] || [ "$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"
@ -154,7 +156,7 @@ 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 "C:/windows/command/start.exe" "/Unix" "$EXEC_PATH" "$@"
$START_SHELL_PATH $BOTTLENAME $APPVER "$EXEC_PATH" "$@"
fi
else
$START_SHELL_PATH $BOTTLENAME $APPVER "uninstaller.exe" "$@"

2048
winetricks

File diff suppressed because it is too large Load Diff