update: aur 构建跟进

fix: 修复可能出现扩展宿主意外终止的问题
This commit is contained in:
msojocs 2022-04-11 13:27:50 +08:00
parent 66f5a28669
commit 5df3050ee7
9 changed files with 38 additions and 113 deletions

View File

@ -16,7 +16,7 @@ APP_NAME=${APP_NAME//\",\"main/}
export WECHAT_DEVTOOLS_DIR="$root_dir/nwjs"
export APPDATA="$DATA_DIR/$APP_NAME"
export PATH="$root_dir/wine:$root_dir/node/bin:$root_dir/nwjs:$PATH"
export PATH="$root_dir/node/bin:$root_dir/nwjs:$PATH"
export USERPROFILE=$DATA_DIR
clean_cache() {

View File

@ -1,7 +1,9 @@
# 1.05.2203070-8 / 2022-04-10
- fix: 国内网络vscode-ripgrep安装失败的问题
- fix: 内部的更新检查界面无法正常使用(这个更新用处不大,仅用于让维护者知道存在更新)
- fix: 修复可能出现扩展宿主意外终止的问题
- feat: 主题深浅跟随系统变化感谢icepie的参与
- update: 更新nwjs与nodejs
# 1.05.2203070-7 / 2022-03-19
- fix: cli

View File

@ -14,13 +14,13 @@ _wechat_devtools_url="https://servicewechat.com/wxa-dev-logic/download_redirect?
_wechat_devtools_md5="2785d569b88d72a8e238d438d92faf44"
_wechat_devtools_exe="wechat_devtools_${_wechat_devtools_ver}_x64.exe"
_nwjs_ver="0.53.1"
_nwjs_ver="0.55.0"
_install_dir="/opt/wechat-devtools"
_node_version="16.1.0"
_node_version="16.4.2"
pkgname=wechat-devtools
pkgver="${_wechat_devtools_ver}" # 主版本号
pkgrel=3 # 修订版本号release
pkgrel=8 # 修订版本号release
epoch=2 # 大版本迭代强制更新(维护者变更,尽量不用)
pkgdesc="WeChat Devtools For Linux. "
arch=("x86_64")
@ -29,12 +29,13 @@ license=('unknown')
depends=('gconf' 'libxkbfile')
makedepends=('p7zip' 'python2' 'openssl' 'gcc' 'make' 'libssh2' 'krb5')
# compiler 用于可视化,以及编译
source=("nwjs-v${_nwjs_ver}.tar.gz::http://npmmirror.com/mirrors/nwjs/v${_nwjs_ver}/nwjs-sdk-v${_nwjs_ver}-linux-x64.tar.gz"
source=("nwjs-v${_nwjs_ver}.tar.gz::https://npm.taobao.org/mirrors/nwjs/v${_nwjs_ver}/nwjs-sdk-v${_nwjs_ver}-linux-x64.tar.gz"
"${_wechat_devtools_exe}::${_wechat_devtools_url}"
"node-v${_node_version}.tar.gz::http://npmmirror.com/mirrors/node/v${_node_version}/node-v${_node_version}-linux-x64.tar.gz"
"compiler.tar.gz::https://github.rc1844.workers.dev/msojocs/wechat-web-devtools-linux/releases/download/v1.05.2203070-3/compiler.tar.gz"
"node-v${_node_version}.tar.gz::https://npm.taobao.org/mirrors/node/v${_node_version}/node-v${_node_version}-linux-x64.tar.gz"
"compiler.tar.gz::https://github.rc1844.workers.dev/msojocs/wechat-web-devtools-linux/releases/download/v1.05.2203070-6/compiler.tar.gz"
"wechat-devtools.desktop"
"logo.svg"
"wechat-devtools"
"fix-cli.sh"
"fix-menu.sh"
"fix-core.sh"
@ -43,11 +44,11 @@ source=("nwjs-v${_nwjs_ver}.tar.gz::http://npmmirror.com/mirrors/nwjs/v${_nwjs_v
"wxvpkg_pack.js"
"wxvpkg_unpack.js"
"fix-other.sh")
md5sums=(b6f49803c51d0abacca2d1e566c7fe19 # nwjs
md5sums=(ac7680788544c457daee11aaf69798fe # nwjs
"${_wechat_devtools_md5}"
2280bfbbf29981fd5adce334f40146ff # nodejs
9650f811d5c4d2ca124dcfa6d0b32c4c # compiler
01ea705bfe43f5f9683f0dbefb3f1574 # desktop
4d14589085ebbf79ce504dc27330d33b # nodejs
7d78f10d04fff0b525df493d95847b37 # compiler
4d3f5273be80a74741c841fcfa4185d3 # desktop
0f4353664123320280ea4d6bb295dce2 # svg
"SKIP"
"SKIP"
@ -56,6 +57,7 @@ md5sums=(b6f49803c51d0abacca2d1e566c7fe19 # nwjs
"SKIP"
"SKIP"
"SKIP"
"SKIP"
"SKIP")
options=('!strip')
@ -91,8 +93,8 @@ build() {
cp "$(which node)" "${srcdir}/node.${_node_version}"
# run fix scripts
export NW_PACKAGE_DIR="${srcdir}/package.nw"
export NW_VERSION=$_nwjs_ver
# fix-package-name.js使用
export srcdir=$srcdir
export NO_WINE=true
@ -108,14 +110,16 @@ build() {
package() {
mkdir -p "${pkgdir}${_install_dir}"
cd "${pkgdir}${_install_dir}"
mkdir -p bin
cp -r "${srcdir}/nwjs/"* ./
cp -r "${srcdir}/package.nw" ./package.nw
cp -r "${srcdir}/nwjs" .
cp -r "${srcdir}/package.nw" .
find ./package.nw -type d | xargs -I {} chmod -R a+rx {}
cp ${srcdir}/node.${_node_version} node
ln -s node node.exe
cp ${srcdir}/node.${_node_version} nwjs/node
cd nwjs && ln -s node node.exe
install -Dm755 "${srcdir}/wechat-devtools" "${pkgdir}${_install_dir}/bin/wechat-devtools"
install -Dm644 "${srcdir}/wechat-devtools.desktop" "${pkgdir}/usr/share/applications/wechat-devtools.desktop"
install -Dm644 "${srcdir}/logo.svg" "${pkgdir}/usr/share/icons/hicolor/scalable/apps/wechat-devtools.svg"
}

View File

@ -3,7 +3,7 @@ Name=WeChat Devtools
Name[zh_CN]=web
Comment=The development tools for wechat web develop
Categories=Development;WebDevelopment;IDE;
Exec=env APPDATA=~/.config/wechat_devtools USERPROFILE=~ bash -c ' export PATH="/opt/wechat-devtools:$PATH"; clean_cache(){ echo ""; rm -rf "$APPDATA/WeappCache"; rm -rf "$APPDATA/WeappVendor";}; if [[ -f "$APPDATA/.build_time" ]];then diff "$APPDATA/.build_time" "/opt/wechat-devtools/package.nw/.build_time" >/dev/null; if [ ! "$?" == "0" ];then \cp -f "/opt/wechat-devtools/package.nw/.build_time" "$APPDATA/.build_time";clean_cache; fi; else \cp -f "/opt/wechat-devtools/package.nw/.build_time" "$APPDATA/.build_time"; clean_cache; fi; /opt/wechat-devtools/nw --load-extension=~/.config/wechat_devtools/WeappPlugin --custom-devtools-frontend=file:///opt/wechat-devtools/package.nw/js/ideplugin/inspector %U'
Exec=/opt/wechat-devtools/bin/wechat-devtools %U
Path=/opt/wechat-devtools
Icon=wechat-devtools
Type=Application

7
test/fix-spdlog Normal file → Executable file
View File

@ -3,9 +3,10 @@
root_dir=$(cd `dirname $0`/.. && pwd -P)
export PATH="$root_dir/node/bin:$PATH"
module="spdlog"
cd "$root_dir/tmp"
mkdir -p node_test/node_modules
cd node_test
npm install spdlog --save
rm -rf "$root_dir/package.nw/node_modules/spdlog"
cp -rf "$root_dir/tmp/node_test/node_modules/spdlog" "$root_dir/package.nw/node_modules"
npm install $module --save
rm -rf "$root_dir/package.nw/node_modules/$module"
cp -rf "$root_dir/tmp/node_test/node_modules/$module" "$root_dir/package.nw/node_modules"

9
test/nw-gyp-rebuild Executable file
View File

@ -0,0 +1,9 @@
#!/bin/bash
root_dir=$(cd `dirname $0`/.. && pwd -P)
export PATH="$root_dir/node/bin:$PATH"
ln -s "$( which python2 )" "$root_dir/node/bin/python"
cd "$root_dir/tmp/node_test/node_modules/spdlog"
# node-gyp rebuild
nw-gyp rebuild --arch=x64 "--target=0.55.0" --dist-url=https://registry.npmmirror.com/-/binary/nwjs

View File

@ -55,6 +55,7 @@ COMPILER_MD5=$( md5sum tmp/compiler.tar.gz | cut -d ' ' -f1 )
rm -rf $build_dir
mkdir -p $build_dir
cp "$root_dir/bin/wechat-devtools" "$build_dir"
cp "$root_dir/tools"/*.sh "$build_dir"
cp "$root_dir/tools"/*.js "$build_dir"
cp "$root_dir/res/aur"/* "$build_dir"

View File

@ -1,93 +0,0 @@
#!/bin/bash
set -e
notice() {
echo -e "\033[36m $1 \033[0m "
}
fail() {
echo -e "\033[41;37m 失败 \033[0m $1"
}
root_dir=$(cd `dirname $0`/.. && pwd -P)
DEVTOOLS_VERSION=$( cat "$root_dir/package.nw/package.json" | grep -m 1 -Eo "\"[0-9]{1}\.[0-9]{2}\.[0-9]+" )
DEVTOOLS_VERSION="${DEVTOOLS_VERSION//\"/}"
echo $BUILD_VERSION
if [ -n "$1" ];then
export BUILD_VERSION=$1
fi
if [ -z "$BUILD_VERSION" ];then
export BUILD_VERSION='continuous'
fi
if [ "$BUILD_VERSION" == "continuous" ];then
export BUILD_VERSION="v${DEVTOOLS_VERSION}-continuous"
fi
notice "检查版本号 -> $BUILD_VERSION"
INPUT_VERSION=$( echo $BUILD_VERSION | sed 's/v//' | sed 's/-.*//' )
if [[ "$INPUT_VERSION" != "$DEVTOOLS_VERSION" ]];then
fail "传入版本号与实际版本号不一致!"
exit 1
fi
############ 准备构建deb包所需的文件及结构 ################
package_name="io.github.msojocs.wechat-devtools"
if [[ $NO_WINE == 'true' ]];then
BUILD_MARK='no_wine'
package_name="${package_name}-no-wine"
else
BUILD_MARK='wine'
NAME_SUFFIX=" (wine)"
package_name="${package_name}-wine"
fi
echo "root_dir: $root_dir"
tmp_dir="$root_dir/tmp"
build_dir="$root_dir/tmp/$package_name"
base_dir="$build_dir/opt/apps/$package_name"
# Remove any previous build
rm -rf $build_dir
# Make usr and icons dirs
notice "Make Dirs"
mkdir -p $base_dir/{entries,files}
mkdir -p $base_dir/entries/{applications,icons/hicolor/scalable/apps/,mime,plugins,services}
mkdir -p $base_dir/files/{bin/bin,doc,lib}
notice "COPY Files"
cp -r "$root_dir/res/deepin"/* $build_dir
mv "$build_dir/opt/apps/io.github.msojocs.wechat-devtools"/* $base_dir
rm -r "$build_dir/opt/apps/io.github.msojocs.wechat-devtools"
sed -i "s/BUILD_VERSION/${BUILD_VERSION//v/}/" "$build_dir/debian/control" "$base_dir/info"
sed -i "s/io.github.msojocs.wechat-devtools/$package_name/g" "$base_dir/info" "$build_dir/debian/control"
\cp -rf "$root_dir/bin/wechat-devtools" "$base_dir/files/bin/bin/wechat-devtools"
# desktop
\cp -rf "$root_dir/res/template.desktop" "$base_dir/entries/applications/$package_name.desktop"
sed -i "s#Icon=dir/res/icons/wechat-devtools.svg#Icon=$package_name#" "$base_dir/entries/applications/$package_name.desktop"
sed -i "s#dir#/opt/apps/$package_name/files/bin#" "$base_dir/entries/applications/$package_name.desktop"
sed -i "s/WeChat Dev Tools/WeChat Dev Tools$NAME_SUFFIX/g" "$base_dir/info" "$base_dir/entries/applications/$package_name.desktop"
sed -i "s/微信开发者工具/微信开发者工具$NAME_SUFFIX/g" "$base_dir/entries/applications/$package_name.desktop"
\cp -rf "$root_dir/res/icons/wechat-devtools.svg" "$base_dir/entries/icons/hicolor/scalable/apps/$package_name.svg"
# 主体文件
cp -r "$root_dir/package.nw" "$base_dir/files/bin/package.nw"
cp -r "$root_dir/nwjs" "$base_dir/files/bin/nwjs"
if [ -f "$root_dir/node/bin/node" ];then
rm -rf "$base_dir/files/bin/nwjs"/{node,node.exe}
cp "$root_dir/node/bin/node" "$base_dir/files/bin/nwjs/node"
cd "$base_dir/files/bin/nwjs/" && ln -s "node" "node.exe"
fi
# chown -R root:root "$base_dir"
notice "BUILD DEB Package"
cd "$build_dir"
ls -l "$build_dir"
mkdir -p "$root_dir/tmp/build"
if [[ ! $NO_WINE -eq 'true' ]];then
echo "Depends: wine, wine-binfmt" >> "$build_dir/debian/control"
fi
# dpkg-deb -b . "$root_dir/tmp/build/WeChat_Dev_Tools_${BUILD_VERSION}_amd64_${BUILD_MARK}_deepin.deb"
debuild

View File

@ -100,6 +100,7 @@ cp -fr "${package_dir}/node_modules_tmp/node_modules/nodegit" "${package_dir}/no
(cp -fr "${package_dir}/node_modules_tmp/node_modules/oniguruma" "${package_dir}/node_modules_tmp/node_modules/oniguruma-node")
(cp -fr "${package_dir}/node_modules_tmp/node_modules/spdlog" "${package_dir}/node_modules_tmp/node_modules/spdlog-node")
cd "$package_dir/node_modules_tmp/node_modules/spdlog" && nw-gyp rebuild --arch=x64 "--target=$NW_VERSION" --dist-url=https://registry.npmmirror.com/-/binary/nwjs
(cd "${package_dir}/node_modules_tmp/node_modules" && find -name ".deps" | xargs -I{} rm -rf {} && find -name "obj.target" | xargs -I{} rm -rf {} && find -name "*.a" -delete && find -name "*.lib" -delete && find -name "*.mk" -delete)
(cd "${package_dir}/node_modules_tmp/node_modules" && find -name "*.node" | xargs -I{} \cp -rf {} ${package_dir}/node_modules/{})