mirror of
https://gitee.com/gfdgd-xi/deep-wine-runner
synced 2025-06-15 11:26:00 +08:00
Compare commits
51 Commits
Author | SHA1 | Date | |
---|---|---|---|
2bc597ce84 | |||
d929107117 | |||
6d56abbb28 | |||
a76191da3a | |||
3fd7b7532f | |||
22f4430a27 | |||
40938dc131 | |||
a7bf65f407 | |||
3272c825c6 | |||
acfb32d51f | |||
4629bb495b | |||
76347629d1 | |||
197c5706dd | |||
4d318701ac | |||
34e2062f83 | |||
0a485769ed | |||
ef7737f0d9 | |||
1c13377979 | |||
931fd3114a | |||
2c8e83c2d4 | |||
9f591340b0 | |||
878ce96a50 | |||
6c0549afe6 | |||
4d30f1c04d | |||
b481f01609 | |||
864be06001 | |||
189d7a1ba1 | |||
c2e598c670 | |||
15c15dc5f8 | |||
676d52c964 | |||
7138c6fbb9 | |||
979c573768 | |||
9ea5e297b6 | |||
624b4c8b3a | |||
0c4e736b12 | |||
0d0438bddd | |||
3fe1ff8a61 | |||
1fe4ed75f4 | |||
ebf9474bc6 | |||
d7e131c778 | |||
9184f42677 | |||
674eff5f10 | |||
910404b54d | |||
ab60ec15b0 | |||
535dccb183 | |||
a515570ee3 | |||
c73e32fa39 | |||
ca88d5f62c | |||
df561d3d03 | |||
744d2aa262 | |||
7fb1f60aae |
.github/workflows
DaoXiangHu-stableauto-building-pkg.ymlauto-building-rpm.ymlauto-building.ymlbuilding-off-line-package-arm.ymlbuilding-off-line-package.yml
DesktopIcon
InstallMono.pyMakefileModel
ShellList
StartVM.shVM
deb
DEBIAN
usr/share/applications
dxvk
information.jsonmainwindow.pyoff-line-shell
package-script
packager-config
winetricks
17
.github/workflows/DaoXiangHu-stable
vendored
Normal file
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
|
33
.github/workflows/auto-building-pkg.yml
vendored
33
.github/workflows/auto-building-pkg.yml
vendored
@ -1,33 +0,0 @@
|
||||
name: Auto Building Wine Runner(pkg)
|
||||
run-name: ${{ github.actor }} Auto Building Wine Runner(pkg) 🚀
|
||||
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
|
||||
|
||||
|
29
.github/workflows/auto-building-rpm.yml
vendored
29
.github/workflows/auto-building-rpm.yml
vendored
@ -1,29 +0,0 @@
|
||||
name: Auto Building Wine Runner(rpm)
|
||||
run-name: ${{ github.actor }} Auto Building Wine Runner(rpm) 🚀
|
||||
on:
|
||||
push:
|
||||
workflow_dispatch:
|
||||
jobs:
|
||||
Explore-GitHub-Actions:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Building RPM
|
||||
env:
|
||||
GUSER: ${{ secrets.GUSER }}
|
||||
PASSWORD: ${{ secrets.PASSWORD }}
|
||||
UPLOADURL: ${{ secrets.UPLOADURL }}
|
||||
run: |
|
||||
# 配置环境
|
||||
sudo apt update
|
||||
sudo apt install git dpkg-dev qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools qt5-qmake rpm -y
|
||||
git clone https://github.com/gfdgd-xi/deep-wine-runner
|
||||
cd deep-wine-runner
|
||||
make package-rpm
|
||||
mv spark-deepin-wine-runner*.rpm /home/runner/spark-deepin-wine-runner.rpm
|
||||
- name: upload result
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: spark-deepin-wine-runner.rpm
|
||||
path: /home/runner/spark-deepin-wine-runner.rpm
|
||||
|
||||
|
65
.github/workflows/auto-building.yml
vendored
65
.github/workflows/auto-building.yml
vendored
@ -1,10 +1,10 @@
|
||||
name: Auto Building Wine Runner(deb)
|
||||
run-name: ${{ github.actor }} Auto Building Wine Runner(deb) 🚀
|
||||
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
|
||||
|
||||
|
176
.github/workflows/building-off-line-package.yml
vendored
176
.github/workflows/building-off-line-package.yml
vendored
@ -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():
|
||||
|
55
Makefile
55
Makefile
@ -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
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
|
10
StartVM.sh
10
StartVM.sh
@ -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_())
|
||||
|
23
VM/qemu.py
23
VM/qemu.py
@ -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路径\' 参数 \'
|
||||
5、wine 容器如果没有指定,则会默认为 ~/.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、修复 AOSC、Termux 无法正常打开 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
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
2048
winetricks
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user