Skip to content

Commit

Permalink
Upgrade deepin base package to 3.2.1.154deepin13 and use aur package …
Browse files Browse the repository at this point in the history
…'deepin-wine6-stable' instead of wine.

Signed-off-by: Codist <countstarlight@gmail.com>
  • Loading branch information
vufa committed Aug 25, 2021
1 parent 120d2de commit 972f0d0
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 131 deletions.
13 changes: 6 additions & 7 deletions .SRCINFO
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
pkgbase = deepin-wine-wechat
pkgdesc = Tencent WeChat on Deepin Wine(com.qq.weixin.deepin) For Archlinux
pkgver = 3.3.5.42
pkgrel = 1
pkgrel = 2
url = https://weixin.qq.com/
install = deepin-wine-wechat.install
arch = x86_64
license = custom
depends = p7zip
depends = wine
depends = wine-mono
depends = wine-gecko
depends = deepin-wine6-stable
depends = deepin-wine-helper
depends = xorg-xwininfo
depends = wqy-microhei
depends = lib32-alsa-lib
Expand All @@ -19,13 +18,13 @@ pkgbase = deepin-wine-wechat
depends = lib32-mpg123
depends = lib32-libldap
conflicts = deepin-wechat
source = https://com-store-packages.uniontech.com/appstore/pool/appstore/c/com.qq.weixin.deepin/com.qq.weixin.deepin_3.2.1.154deepin8_i386.deb
source = https://com-store-packages.uniontech.com/appstore/pool/appstore/c/com.qq.weixin.deepin/com.qq.weixin.deepin_3.2.1.154deepin13_i386.deb
source = WeChatSetup-3.3.5.42.exe::https://dldir1.qq.com/weixin/Windows/WeChatSetup.exe
source = run.sh
source = reg.patch
md5sums = 3246f43cdfd2a4de9597d7018cb21753
md5sums = 1cc7cfc9f77f60147f476121bd9e7542
md5sums = 4204a40f3b9f4123c5347365a453473e
md5sums = fe6d9165926762788de03e9c67038c0a
md5sums = 27b3ff80e6d8cc058bbd0aa1be5348c6
md5sums = f3257f8fc9e73ea88b3a46372634f82f

pkgname = deepin-wine-wechat
15 changes: 8 additions & 7 deletions PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,24 @@
pkgname=deepin-wine-wechat
pkgver=3.3.5.42
wechat_installer=WeChatSetup
deepinwechatver=3.2.1.154deepin8
deepinwechatver=3.2.1.154deepin13
debpkgname="com.qq.weixin.deepin"
pkgrel=1
pkgrel=2
pkgdesc="Tencent WeChat on Deepin Wine(${debpkgname}) For Archlinux"
arch=("x86_64")
url="https://weixin.qq.com/"
license=('custom')
depends=('p7zip' 'wine' 'wine-mono' 'wine-gecko' 'xorg-xwininfo' 'wqy-microhei' 'lib32-alsa-lib' 'lib32-alsa-plugins' 'lib32-libpulse' 'lib32-openal' 'lib32-mpg123' 'lib32-libldap')
depends=('p7zip' 'deepin-wine6-stable' 'deepin-wine-helper' 'xorg-xwininfo' 'wqy-microhei' 'lib32-alsa-lib' 'lib32-alsa-plugins' 'lib32-libpulse' 'lib32-openal' 'lib32-mpg123' 'lib32-libldap')
conflicts=('deepin-wechat')
install="deepin-wine-wechat.install"
_mirror="https://com-store-packages.uniontech.com"
source=("$_mirror/appstore/pool/appstore/c/${debpkgname}/${debpkgname}_${deepinwechatver}_i386.deb"
"${wechat_installer}-${pkgver}.exe::https://dldir1.qq.com/weixin/Windows/${wechat_installer}.exe"
"run.sh"
"reg.patch")
md5sums=('3246f43cdfd2a4de9597d7018cb21753'
md5sums=('1cc7cfc9f77f60147f476121bd9e7542'
'4204a40f3b9f4123c5347365a453473e'
'fe6d9165926762788de03e9c67038c0a'
'27b3ff80e6d8cc058bbd0aa1be5348c6'
'f3257f8fc9e73ea88b3a46372634f82f')

build() {
Expand Down Expand Up @@ -52,9 +52,10 @@ package() {
cp -r "${srcdir}/dpkgdir/opt/apps/${debpkgname}/entries/icons/" "${pkgdir}/usr/share/"
msg "Copying deepin files ..."
install -d "${pkgdir}/opt/apps/${debpkgname}/files"
cp -r "${srcdir}/dpkgdir/opt/apps/${debpkgname}/files/dlls" "${pkgdir}/opt/apps/${debpkgname}/files/"
install -m644 "${srcdir}/files.7z" "${pkgdir}/opt/apps/${debpkgname}/files/"
cp ${srcdir}/dpkgdir/opt/apps/${debpkgname}/files/helper_archive* "${pkgdir}/opt/apps/${debpkgname}/files/"
install -m755 "${srcdir}/dpkgdir/opt/apps/${debpkgname}/files/gtkGetFileNameDlg" "${pkgdir}/opt/apps/${debpkgname}/files/"
# cp ${srcdir}/dpkgdir/opt/apps/${debpkgname}/files/helper_archive* "${pkgdir}/opt/apps/${debpkgname}/files/"
# install -m755 "${srcdir}/dpkgdir/opt/apps/${debpkgname}/files/gtkGetFileNameDlg" "${pkgdir}/opt/apps/${debpkgname}/files/"
md5sum "${srcdir}/files.7z" | awk '{ print $1 }' > "${pkgdir}/opt/apps/${debpkgname}/files/files.md5sum"
install -m755 "${srcdir}/run.sh" "${pkgdir}/opt/apps/${debpkgname}/files/"
}
49 changes: 18 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@
</a>
</p>

Deepin打包的微信容器(`com.qq.weixin.deepin`)移植到Archlinux,不依赖`deepin-wine`,包含定制的运行脚本,微信安装包替换为官方最新
Deepin打包的微信容器(`com.qq.weixin.deepin`)移植到Archlinux,包含定制的运行脚本,微信安装包替换为官方最新

:warning: `deepin-wine-wechat``v3.3.5.42` 开始,默认使用AUR仓库 [deepin-wine6-stable](https://aur.archlinux.org/packages/deepin-wine6-stable/),不再依赖 `wine`,可以进行一些清理操作来保持系统整洁,具体参照: [`wine`/`deepin-wine 2.x`/`deepin-wine5` 迁移](#从-winedeepin-wine-2xdeepin-wine5-迁移)

<!-- TOC -->

Expand All @@ -31,7 +33,7 @@ Deepin打包的微信容器(`com.qq.weixin.deepin`)移植到Archlinux,不依
- [兼容性记录](#兼容性记录)
- [切换到 `deepin-wine`](#切换到-deepin-wine)
- [自动切换(推荐)](#自动切换推荐)
- [`deepin-wine 2.x` 迁移](#从-deepin-wine-2x-迁移)
- [`wine`/`deepin-wine 2.x`/`deepin-wine5` 迁移](#从-winedeepin-wine-2xdeepin-wine5-迁移)
- [卸载](#卸载)
- [常见问题及解决](#常见问题及解决)
- [不能截图](#不能截图)
Expand Down Expand Up @@ -149,45 +151,29 @@ dpi,系统版本,目录映射等可以在 `winecfg` 进行设置,打开 `w

## 切换到 `deepin-wine`

> 根据 [deepin-wine-wechat-arch#15](https://github.com/countstarlight/deepin-wine-wechat-arch/issues/15#issuecomment-515455845)[deepin-wine-wechat-arch#27](https://github.com/countstarlight/deepin-wine-wechat-arch/issues/27),由 [@feileb](https://github.com/feileb), [@violetbobo](https://github.com/violetbobo), [@HE7086](https://github.com/HE7086)提供的方法
`deepin-wine-wechat` 默认使用官方仓库中的 `wine`,原版 `wine`[DDE(Deepin Desktop Environment)](https://www.deepin.org/dde/) 上,有托盘图标无法响应鼠标事件([deepin-wine-tim-arch#21](https://github.com/countstarlight/deepin-wine-tim-arch/issues/21))的问题,截图功能也不可用,可以选择切换到 `deepin-wine`

:warning: **注意:切换前先确保 `deepin-wine` 支持**
:warning: `deepin-wine-wechat``v3.3.5.42-2` 开始,默认使用AUR仓库 [deepin-wine6-stable](https://aur.archlinux.org/packages/deepin-wine6-stable/),无需再进行任何切换操作,对于之前的版本,可以查看[旧版README](https://github.com/countstarlight/deepin-wine-wechat-arch/blob/120d2dedd5dd9d018a14e8ff832f34fe2fcc57a3/README.md)

### 自动切换(推荐)

```bash
/opt/apps/com.qq.weixin.deepin/files/run.sh -d
```

这会安装需要的依赖,移除已安装的微信目录并回退对注册表文件的修改

> `v3.0.0.57-2` 开始,该命令会切换到 AUR 仓库:[deepin-wine5](https://aur.archlinux.org/packages/deepin-wine5)
对于之前的版本,可以查看[旧版README](https://github.com/countstarlight/deepin-wine-wechat-arch/blob/120d2dedd5dd9d018a14e8ff832f34fe2fcc57a3/README.md)

### `wine`/`deepin-wine 2.x`/`deepin-wine5` 迁移

如果想切换回原版 `wine` 并卸载为 `deepin-wine` 自动安装的依赖:
更新到 `deepin-wine-wechat v3.3.5.42-2` 及之后的版本后,依赖变更为 `deepin-wine6-stable`

```bash
rm $HOME/.deepinwine/Deepin-WeChat/deepin
sudo pacman -Rns deepin-wine5
```

### `deepin-wine 2.x` 迁移

若之前使用的是 `deepin-wine 2.x`,更新到 `deepin-wine-wechat v3.0.0.57-2` 及之后的版本会自动切换回 `wine`,运行命令:
如果此时没有其他应用在使用 `wine` 和旧版 `deepin-wine`,就可以放心的卸载旧版 `wine`, `deepin-wine` 及其依赖:

```bash
/opt/apps/com.qq.weixin.deepin/files/run.sh -d
sudo pacman -S lib32-freetype2 #用原版替换lib32-freetype2-infinality-ultimate
sudo pacman -Rns deepin-wine xsettingsd # 卸载 deepin-wine 2.x (如果有)
sudo pacman -Rns deepin-wine5 # 卸载 deepin-wine5 (如果有)
sudo pacman -Rns wine wine-mono wine-gecko # 卸载 wine 及其依赖(如果有)
```

就会自动安装并切换到 `deepin-wine5`

若此时没有其他应用在使用旧版 `deepin-wine`,就可以放心的卸载旧版 `deepin-wine` 及其依赖:
同时,由于 deepin 的打包中不再包含 `deepin-wine-helper`,现改为使用AUR仓库[deepin-wine-helper](https://aur.archlinux.org/packages/deepin-wine-helper),可以删除之前的 `deepin-wine-helper`

```bash
sudo pacman -S lib32-freetype2 #用原版替换lib32-freetype2-infinality-ultimate
sudo pacman -Rns deepin-wine xsettingsd
rm -rf $HOME/.deepinwine/deepin-wine-helper
```

## 卸载
Expand All @@ -206,7 +192,7 @@ sudo pacman -Rns deepin-wine-wechat

### 不能截图

参照[切换到 `deepin-wine`](#切换到-deepin-wine) 解决
对于之前的版本,可以查看[旧版README](https://github.com/countstarlight/deepin-wine-wechat-arch/blob/120d2dedd5dd9d018a14e8ff832f34fe2fcc57a3/README.md)

### 高分辨率屏幕支持

Expand All @@ -220,7 +206,7 @@ sudo pacman -Rns deepin-wine-wechat

### 消除阴影边框

微信窗口不在最上方时,在其他窗口上会显示一个阴影边框,参照[切换到 `deepin-wine`](#切换到-deepin-wine) 解决
对于之前的版本,可以查看[旧版README](https://github.com/countstarlight/deepin-wine-wechat-arch/blob/120d2dedd5dd9d018a14e8ff832f34fe2fcc57a3/README.md)

### 唤出已运行的WeChat窗口

Expand All @@ -243,6 +229,7 @@ bash $HOME/.deepinwine/deepin-wine-helper/sendkeys.sh w wechat 4
<details open>
<summary>2021</summary>

* 2021-08-25 WeChat-3.3.5.42 3.2.1.154deepin13
* 2021-08-13 WeChat-3.3.5.42
* 2021-08-08 WeChat-3.3.5.34
* 2021-07-05 WeChat-3.3.0.115
Expand Down
101 changes: 15 additions & 86 deletions run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,108 +9,52 @@

version_gt() { test "$(echo "$@" | tr " " "\n" | sort -V | head -n 1)" != "$1"; }

extract_archive()
{
archive=$1
version_file=$2
dest_dir=$3
if [ -f "$archive" ] && [ -n "$dest_dir" ] && [ "$dest_dir" != "." ];then
archive_version=`cat $version_file`
if [ -d "$dest_dir" ];then
if [ -f "$dest_dir/VERSION" ];then
dest_version=`cat $dest_dir/VERSION`
if version_gt "$archive_version" "$dest_version" || [ -z "$dest_version" ];then
7z x "$archive" -o/"$dest_dir" -aoa
echo "$archive_version" > "$dest_dir/VERSION"
fi
fi
else
mkdir -p $dest_dir
7z x "$archive" -o/"$dest_dir" -aoa
echo "$archive_version" > "$dest_dir/VERSION"
fi
fi
}

BOTTLENAME="Deepin-WeChat"
APPVER="3.2.1.154deepin8"
APPVER="3.2.1.154deepin13"
WINEPREFIX="$HOME/.deepinwine/$BOTTLENAME"
WECHAT_VER="3.3.5.42"
EXEC_PATH="c:/Program Files/Tencent/WeChat/WeChat.exe"
START_SHELL_PATH="$HOME/.deepinwine/deepin-wine-helper/run_v3.sh"
START_SHELL_PATH="/opt/deepinwine/tools/run_v4.sh"
WECHAT_INSTALLER="WeChatSetup"
WECHAT_INSTALLER_PATH="c:/Program Files/Tencent/$WECHAT_INSTALLER-$WECHAT_VER.exe"
export MIME_TYPE=""
export DEB_PACKAGE_NAME="com.qq.weixin.deepin"
#export APPRUN_CMD="wine"
export PATCH_LOADER_ENV=""
export FILEDLG_PLUGIN="/opt/apps/$DEB_PACKAGE_NAME/files/gtkGetFileNameDlg"
export APPRUN_CMD="deepin-wine6-stable"
DISABLE_ATTACH_FILE_DIALOG=""

export SPECIFY_SHELL_DIR=`dirname $START_SHELL_PATH`

ARCHIVE_FILE_DIR="/opt/apps/$DEB_PACKAGE_NAME/files"

msg()
{
ECHO_LEVEL=("\033[1;32m==> " "\033[1;31m==> ERROR: ")
echo -e "${ECHO_LEVEL[$1]}\033[1;37m$2\033[0m"
}
export WINEDLLPATH=/opt/$APPRUN_CMD/lib:/opt/$APPRUN_CMD/lib64

SwitchToDeepinWine()
{
PACKAGE_MANAGER="yay"
DEEPIN_WINE_DEPENDS="deepin-wine5"
if ! [ -x "$(command -v yay)" ]; then
if ! [ -x "$(command -v yaourt)" ]; then
msg 1 "Need to install 'yay' or 'yaourt' first." >&2
exit 1
else
PACKAGE_MANAGER="yaourt"
fi
fi
for p in ${DEEPIN_WINE_DEPENDS}; do
if pacman -Qs $p > /dev/null ; then
msg 0 "$p is installed, skip ..."
else
msg 0 "Installing dependency: $p ..."
$PACKAGE_MANAGER -S $p
fi
done
msg 0 "Redeploying app ..."
extract_archive "$ARCHIVE_FILE_DIR/helper_archive.7z" "$ARCHIVE_FILE_DIR/helper_archive.md5sum" "$SPECIFY_SHELL_DIR"
$START_SHELL_PATH $BOTTLENAME $APPVER "$EXEC_PATH" -r
echo "5" > $WINEPREFIX/deepin
rm -f $WINEPREFIX/reinstalled
msg 0 "Done."
exit 0
}
export WINEPREDLL="$ARCHIVE_FILE_DIR/dlls"

OpenWinecfg()
{
if [ -f "$WINEPREFIX/deepin" ]; then
env WINEPREFIX=$WINEPREFIX deepin-wine5 winecfg
else
env WINEPREFIX=$WINEPREFIX winecfg
fi
env WINEPREFIX=$WINEPREFIX $APPRUN_CMD winecfg
}

Run()
{
extract_archive "$ARCHIVE_FILE_DIR/helper_archive.7z" "$ARCHIVE_FILE_DIR/helper_archive.md5sum" "$SPECIFY_SHELL_DIR"

if [ -n "$PATCH_LOADER_ENV" ] && [ -n "$EXEC_PATH" ];then
export $PATCH_LOADER_ENV
if [ -z "$DISABLE_ATTACH_FILE_DIALOG" ];then
export ATTACH_FILE_DIALOG=1
fi

if [ -n "$EXEC_PATH" ];then
if [ ! -f "$WINEPREFIX/reinstalled" ];then
# run installer
touch $WINEPREFIX/reinstalled
env WINEDLLOVERRIDES="winemenubuilder.exe=d" $START_SHELL_PATH $BOTTLENAME $APPVER "$WECHAT_INSTALLER_PATH" "$@"
if [ $APPRUN_CMD = "deepin-wine5" ]; then
echo "5" > $WINEPREFIX/deepin
fi
else
$START_SHELL_PATH $BOTTLENAME $APPVER "$EXEC_PATH" "$@"
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 "$EXEC_PATH" "$@"
fi
fi
else
$START_SHELL_PATH $BOTTLENAME $APPVER "uninstaller.exe" "$@"
Expand All @@ -121,21 +65,9 @@ HelpApp()
{
echo " Extra Commands:"
echo " winecfg Open winecfg"
echo " -d/--deepin Switch to 'deepin-wine'"
echo " -h/--help Show program help info"
}

if [ -f "$WINEPREFIX/deepin" ]; then
if [ "$(cat $WINEPREFIX/deepin)" = "5" ]; then
export APPRUN_CMD="deepin-wine5"
else
rm $WINEPREFIX/deepin
export APPRUN_CMD="wine"
fi
else
export APPRUN_CMD="wine"
fi

if [ -z $1 ]; then
Run "$@"
exit 0
Expand All @@ -144,9 +76,6 @@ case $1 in
"winecfg")
OpenWinecfg
;;
"-d" | "--deepin")
SwitchToDeepinWine
;;
"-h" | "--help")
HelpApp
;;
Expand Down

0 comments on commit 972f0d0

Please sign in to comment.