From 5be7974b856ddde5451670eba281c37ea876fa31 Mon Sep 17 00:00:00 2001 From: msojocs Date: Thu, 7 Apr 2022 13:43:45 +0800 Subject: [PATCH] Squashed commit of the following: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit 28e7e834f793b3c9ce05c47d41e15f8a1f49d30b Author: msojocs Date: Thu Apr 7 13:22:57 2022 +0800 fix: 7z commit 15f29ca887a51d7ecc783f8fddabf4e9cd3b5d21 Author: msojocs Date: Thu Apr 7 13:12:07 2022 +0800 update: flatpak commit 6f048bf662c2e2f64addd58d9039310a189af441 Author: msojocs Date: Thu Apr 7 12:26:45 2022 +0800 update commit 039de9c1b3dd53960dd7cb7fbdea6bf147481536 Author: msojocs Date: Thu Apr 7 12:16:18 2022 +0800 update: flatpak commit da0a56a89256a5b9792edd625666d06949ede55c Author: msojocs Date: Thu Apr 7 12:16:02 2022 +0800 fix: 可能的vscode-ripgrep/bin/rg 不存在问题 commit 9f7fd4ed39cc335966a095c9ab05931246282e3e Author: msojocs Date: Wed Apr 6 23:34:18 2022 +0800 update: flatpak commit b00dfb3ef7d46f0423fa916078c6de6506ad525f Author: msojocs Date: Wed Apr 6 23:20:48 2022 +0800 feat: nodegit compiler in parallel commit 4ff58b2fb854a874de86a5ec2be1846d8bb00f2c Author: msojocs Date: Wed Apr 6 13:54:21 2022 +0800 update: mirror commit 76aac0f6a5ecae98c28b77ffc016a79d530584b1 Author: msojocs Date: Sun Apr 3 23:05:16 2022 +0800 fix: build commit 3099858f56eab1db82c9965a60c323869898e37f Author: msojocs Date: Sun Apr 3 22:11:24 2022 +0800 update commit 150a944c026f14e6e4157ed84243560565a89818 Author: msojocs Date: Sat Mar 26 20:22:43 2022 +0800 test commit 6fa17ebca20f2980f08774c56a48dfa1b5ea6381 Author: msojocs Date: Sat Mar 26 19:05:35 2022 +0800 fix: deepin build commit 3c373a8f6fa765741c3a974d72833b3e240adb2a Author: msojocs Date: Sat Mar 26 18:06:43 2022 +0800 update: deepin build commit f29fa16289132b40ef1d85992600770cfd2ba298 Author: msojocs Date: Fri Mar 25 22:42:45 2022 +0800 使用debuild commit 324d866482c77a9b7bb4715eebed9c149af7b1d8 Author: msojocs Date: Wed Mar 23 09:35:12 2022 +0800 fix: krb5 commit e463415599a04fae282cb36e8a5d3ee2ebae2239 Author: msojocs Date: Tue Mar 22 22:58:52 2022 +0800 feat: flatpak commit 83677cba04e9d84a1ef12cfdeacb0f1e779b4e8c Merge: 7ff73e1 41ad887 Author: msojocs Date: Tue Mar 22 13:27:06 2022 +0800 Merge branch 'master' into flatpak commit 7ff73e13c795ef1e84b6a6f09fb9347de3600947 Author: msojocs Date: Fri Mar 11 22:44:35 2022 +0800 test --- .github/workflows/flatpak-verify.yml | 46 +++++++ .gitignore | 5 +- conf/node_info | 2 +- docker/Dockerfile | 2 +- docs/Nodegit.MD | 2 +- io.github.msojocs.wechat-devtools.yml | 183 ++++++++++++++++++++++++++ res/aur/PKGBUILD | 4 +- res/flatpak/startup.sh | 4 + tools/build-flatpak.sh | 2 +- tools/rebuild-node-modules.sh | 9 +- tools/setup-wechat-devtools-bash | 20 +-- 11 files changed, 258 insertions(+), 21 deletions(-) create mode 100644 .github/workflows/flatpak-verify.yml create mode 100644 io.github.msojocs.wechat-devtools.yml create mode 100644 res/flatpak/startup.sh diff --git a/.github/workflows/flatpak-verify.yml b/.github/workflows/flatpak-verify.yml new file mode 100644 index 0000000..8a53795 --- /dev/null +++ b/.github/workflows/flatpak-verify.yml @@ -0,0 +1,46 @@ +# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: Flatpak Verify + +on: + release: + types: [published] + push: + tags: + - v* + branches: [ master, dev] + pull_request: + branches: [ master ] + # # Allows you to run this workflow manually from the Actions tab + # workflow_dispatch: + +jobs: + flatpak: + name: "Flatpak" + runs-on: ubuntu-latest + container: + image: bilelmoussaoui/flatpak-github-actions:freedesktop-21.08 + options: --privileged + strategy: + matrix: + arch: [x86_64] + # Don't fail the whole workflow if one architecture fails + fail-fast: false + steps: + - uses: actions/checkout@v2 + - name: Test + run: | + cat /etc/issue + yum install -y p7zip p7zip-plugins + 7z + # Docker is required by the docker/setup-qemu-action which enables emulation + - name: Install deps + run: | + dnf -y install docker + - uses: bilelmoussaoui/flatpak-github-actions/flatpak-builder@v4 + with: + bundle: wechat-devtools.flatpak + manifest-path: io.github.msojocs.wechat-devtools.yml + cache-key: flatpak-builder-${{ github.sha }} + arch: ${{ matrix.arch }} \ No newline at end of file diff --git a/.gitignore b/.gitignore index de3505e..12a3af6 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,7 @@ build appimage-builder-cache wcc.bin wcsc.bin -temp.sh \ No newline at end of file +temp.sh +# flatpak +.flatpak-builder +build-dir \ No newline at end of file diff --git a/conf/node_info b/conf/node_info index a970451..7abe10d 100644 --- a/conf/node_info +++ b/conf/node_info @@ -2,5 +2,5 @@ if [ -z $NODE_VERSION ];then NODE_VERSION=16.1.0 fi -NODE_URL_CN=https://npm.taobao.org/mirrors/node/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz +NODE_URL_CN=https://npmmirror.com/mirrors/node/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz NODE_URL_GLOBAL=https://nodejs.org/download/release/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz diff --git a/docker/Dockerfile b/docker/Dockerfile index 996680f..d594a5e 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -14,7 +14,7 @@ RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list && \ apt-get install -y aptitude &&\ aptitude -y install gcc make zlib1g-dev libffi-dev libssl-dev &&\ mkdir -p test && cd test &&\ - wget http://npm.taobao.org/mirrors/python/3.6.5/Python-3.6.5.tgz &&\ + wget http://npmmirror.com/mirrors/python/3.6.5/Python-3.6.5.tgz &&\ tar -xvf Python-3.6.5.tgz &&\ chmod -R +x Python-3.6.5 &&\ cd Python-3.6.5/ &&\ diff --git a/docs/Nodegit.MD b/docs/Nodegit.MD index 6bf8a25..883cd22 100644 --- a/docs/Nodegit.MD +++ b/docs/Nodegit.MD @@ -23,7 +23,7 @@ apt update apt-get install -y python2 python3 libkrb5-dev gcc openssl libssh2-1-dev g++ make echo "start" -npm install nodegit --registry=https://registry.npm.taobao.org +npm install nodegit --registry=http://registry.npmmirror.com/ npm uninstall nodegit ``` \ No newline at end of file diff --git a/io.github.msojocs.wechat-devtools.yml b/io.github.msojocs.wechat-devtools.yml new file mode 100644 index 0000000..0ed7a13 --- /dev/null +++ b/io.github.msojocs.wechat-devtools.yml @@ -0,0 +1,183 @@ +app-id: io.github.msojocs.wechat-devtools +runtime: org.freedesktop.Platform +runtime-version: '21.08' +sdk: org.freedesktop.Sdk +sdk-extensions: + - org.freedesktop.Sdk.Extension.node12 +command: startup +finish-args: + # X11 + XShm access + - --share=ipc + - --socket=x11 + # Wayland access + - --socket=wayland + # Needs to talk to the network: + - --share=network + # Needs to save files locally + - --filesystem=host + - --metadata=X-DConf=migrate-path=/io/github/msojocs/wechat-devtools +modules: + - name: nwjs + buildsystem: simple + sources: + - type: archive + url: http://npmmirror.com/mirrors/nwjs/v0.53.1/nwjs-sdk-v0.53.1-linux-x64.tar.gz + md5: b6f49803c51d0abacca2d1e566c7fe19 + build-commands: + - ls -l + - mkdir -p /app/opt/nwjs + - mv * /app/opt/nwjs + + - name: package.nw + buildsystem: simple + sources: + - type: archive + url: https://servicewechat.com/wxa-dev-logic/download_redirect?type=x64&from=mpwiki&download_version=1052203070&version_type=1 + md5: 2785d569b88d72a8e238d438d92faf44 + archive-type: 7z + path: code + strip-components: 0 + dest-filename: wechat_devtools.7z + build-commands: + - ls -l + - mv code/package.nw /app/opt/package.nw + + - name: nodejs + buildsystem: simple + build-options: + prepend-path: /app/opt/nodejs/bin + build-args: + - --share=network + sources: + - type: archive + url: https://npmmirror.com/mirrors/node/v16.1.0/node-v16.1.0-linux-x64.tar.gz + md5: 2280bfbbf29981fd5adce334f40146ff + build-commands: + - ls -l + - mkdir -p /app/opt/nodejs + - mv * /app/opt/nodejs + - npm config set registry https://registry.npmmirror.com # 注册模块镜像 + - npm config set disturl https://npmmirror.com/dist # node-gyp 编译依赖的 node 源码镜像 + - npm install -g npm@8.6.0 + - npm --version + - npm -g install nw-gyp node-gyp + + - name: library + buildsystem: simple + build-commands: + - for file in *.deb; do ar p $file data.tar.xz | tar -xJ; done; + post-install: + - rm -rf usr/share/{doc,man} + - cp -dr usr/* $FLATPAK_DEST/ + # - cp -dr lib/* $FLATPAK_DEST/lib + # - cp -dr opt/* $FLATPAK_DEST/ + sources: + - type: file + url: http://ftp.cn.debian.org/debian/pool/main/k/krb5/libkrb5-dev_1.18.3-6+deb11u1_amd64.deb + sha256: d3a4a4705329c51d7a9843a72f87421938eeeef8548b3f2d46ce83f0862f9311 + - type: file + url: http://ftp.cn.debian.org/debian/pool/main/k/krb5/krb5-multidev_1.18.3-6+deb11u1_amd64.deb + sha256: b8bbee0879e6041ebbf58f62e1a526cc25225d67c140d5593b1341cc31388351 + - type: file + url: http://ftp.cn.debian.org/debian/pool/main/k/krb5/libkrb5-3_1.18.3-6+deb11u1_amd64.deb + sha256: afb9dced3fcbdbc439a166eaa217dbfd485585842f12ce4587123009618e8bfe + - type: file + url: http://ftp.cn.debian.org/debian/pool/main/k/krb5/libk5crypto3_1.18.3-6+deb11u1_amd64.deb + sha256: 4a010fc69322b6be9e141a76593f46e6588c968ee3b7cf79a3b8b7efda9aeeba + - type: file + url: http://ftp.cn.debian.org/debian/pool/main/k/krb5/libgssapi-krb5-2_1.18.3-6+deb11u1_amd64.deb + sha256: 2ab853cbd0494c06fa694906c6eeea4df79720f461c76d080eb21a3e98f44115 + + - name: build + buildsystem: simple + build-options: + ldflags: -L/app/lib/x86_64-linux-gnu + prepend-path: /app/opt/nodejs/bin:/usr/lib/sdk/node12/bin + build-args: + - --share=network + prepend-ld-library-path: /app/lib/x86_64-linux-gnu + env: + - NO_WINE=true + sources: + # - type: git + # branch: dev + # url: https://github.com/msojocs/wechat-web-devtools-linux.git + - type: dir + path: tools + dest: tools + - type: dir + path: compiler + dest: compiler + build-commands: + # - ln -s /app/opt/package.nw package.nw + - cp -r /app/opt/package.nw . + - cd package.nw && ls -l + - python --version + - python3 --version + - python2 --version + - node --version + - tools/fix-package-name.js + - tools/fix-selection-copy-node + - tools/fix-cli.sh + - tools/fix-core.sh + - tools/fix-menu.sh + - tools/fix-other.sh + - tools/rebuild-node-modules.sh 0.53.1 + # - ls -l + post-install: + - rm -rf /app/opt/package.nw + - cp -r package.nw /app/opt + + - name: library + buildsystem: simple + build-commands: + - for file in *.deb; do ar p $file data.tar.xz | tar -xJ; done; + post-install: + - rm -rf usr/share/{doc,man} + - cp -dr usr/* $FLATPAK_DEST/ + - cp -dr lib/* $FLATPAK_DEST/lib + # - cp -dr opt/* $FLATPAK_DEST/ + sources: + - type: file + url: http://ftp.cn.debian.org/debian/pool/main/k/krb5/libgssapi-krb5-2_1.18.3-6+deb11u1_amd64.deb + sha256: 2ab853cbd0494c06fa694906c6eeea4df79720f461c76d080eb21a3e98f44115 + - type: file + url: http://ftp.cn.debian.org/debian/pool/main/k/krb5/libkrb5-3_1.18.3-6+deb11u1_amd64.deb + sha256: afb9dced3fcbdbc439a166eaa217dbfd485585842f12ce4587123009618e8bfe + - type: file + url: http://ftp.cn.debian.org/debian/pool/main/k/krb5/libk5crypto3_1.18.3-6+deb11u1_amd64.deb + sha256: 4a010fc69322b6be9e141a76593f46e6588c968ee3b7cf79a3b8b7efda9aeeba + - type: file + url: http://ftp.cn.debian.org/debian/pool/main/k/krb5/libkrb5support0_1.18.3-6+deb11u1_amd64.deb + sha256: 1f19908dbd37bd2ba9b3b3c9eb6ab8bee9a72f72745e6887f5366bb5fece654b + - type: file + url: http://ftp.cn.debian.org/debian/pool/main/k/keyutils/libkeyutils1_1.6.1-2_amd64.deb + sha256: f01060b434d8cad3c58d5811d2082389f11b3db8152657d6c22c1d298953f2a5 + + - name: clean + buildsystem: simple + build-commands: + - cp /app/opt/nodejs/bin/node /app/opt/nwjs + - cd /app/opt/nwjs && ln -s node node.exe + - rm -rf /app/opt/nodejs + + - name: startup + buildsystem: simple + build-commands: + - sed -i 's/Icon=dir\/res\/icons\/wechat-devtools.svg/Icon=io.github.msojocs.wechat_devtools/' template.desktop + - sed -i 's/Exec=dir\/bin\/wechat-devtools/Exec=startup/' template.desktop + post-install: + - install -Dm755 wechat-devtools /app/opt/bin/wechat-devtools + - install -Dm755 startup.sh /app/bin/startup + - install -Dm644 template.desktop /app/share/applications/io.github.msojocs.wechat-devtools.desktop + - install -Dm644 wechat-devtools.svg /app/share/icons/hicolor/scalable/apps/io.github.msojocs.wechat-devtools.svg + sources: + - type: file + path: bin/wechat-devtools + - type: file + path: res/flatpak/startup.sh + - type: file + path: res/template.desktop + - type: file + path: res/icons/wechat-devtools.svg + \ No newline at end of file diff --git a/res/aur/PKGBUILD b/res/aur/PKGBUILD index 801bae7..87ce0b1 100644 --- a/res/aur/PKGBUILD +++ b/res/aur/PKGBUILD @@ -29,9 +29,9 @@ license=('unknown') depends=('gconf' 'libxkbfile') makedepends=('p7zip' 'python2' 'openssl' 'gcc' 'make' 'libssh2' 'krb5') # compiler 用于可视化,以及编译 -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" +source=("nwjs-v${_nwjs_ver}.tar.gz::http://npmmirror.com/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::https://npm.taobao.org/mirrors/node/v${_node_version}/node-v${_node_version}-linux-x64.tar.gz" + "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" "wechat-devtools.desktop" "logo.svg" diff --git a/res/flatpak/startup.sh b/res/flatpak/startup.sh new file mode 100644 index 0000000..92803f4 --- /dev/null +++ b/res/flatpak/startup.sh @@ -0,0 +1,4 @@ +#!/bin/sh +export PATH="/var/run/host/usr/bin:$PATH" +export LD_LIBRARY_PATH="/app/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH" +exec /app/opt/bin/wechat-devtools \ No newline at end of file diff --git a/tools/build-flatpak.sh b/tools/build-flatpak.sh index 9c8527e..2b78e43 100755 --- a/tools/build-flatpak.sh +++ b/tools/build-flatpak.sh @@ -68,6 +68,6 @@ EOF # flatpak-builder build-dir io.github.msojocs.wechat-devtools.yml --force-clean -flatpak-builder build-dir io.github.msojocs.wechat-devtools.yml --install --force-clean --user +flatpak-builder build-dir io.github.msojocs.wechat-devtools.yml --force-clean --install --user flatpak run io.github.msojocs.wechat-devtools \ No newline at end of file diff --git a/tools/rebuild-node-modules.sh b/tools/rebuild-node-modules.sh index 2759ca6..952c3b5 100755 --- a/tools/rebuild-node-modules.sh +++ b/tools/rebuild-node-modules.sh @@ -69,6 +69,8 @@ rm -fr "${package_dir}/node_modules_tmp/node_modules/vscode-ripgrep" rm -fr "${package_dir}/node_modules_tmp/node_modules/spdlog" rm -fr "${package_dir}/node_modules_tmp/node_modules/spdlog-node" +max_thread=$(cat /proc/cpuinfo| grep "processor"| wc -l) +export JOBS=$max_thread (cd "${package_dir}/node_modules_tmp" && npm install \ extract-file-icon \ native-keymap \ @@ -80,7 +82,8 @@ rm -fr "${package_dir}/node_modules_tmp/node_modules/spdlog-node" vscode-oniguruma \ vscode-ripgrep \ nodegit \ - --nodegit_binary_host_mirror=https://npm.taobao.org/mirrors/nodegit/v0.27.0/) # reinstall modules + --registry=http://registry.npmmirror.com \ + --nodegit_binary_host_mirror=http://npmmirror.com/mirrors/nodegit/v0.27.0/) # reinstall modules # rebuild cd "$package_dir/node_modules_tmp/node_modules/node-pty" && nw-gyp rebuild --arch=x64 "--target=$NW_VERSION" --dist-url=https://registry.npmmirror.com/-/binary/nwjs @@ -101,11 +104,9 @@ cp -fr "${package_dir}/node_modules_tmp/node_modules/nodegit" "${package_dir}/no (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/{}) +cd "${package_dir}/node_modules_tmp/node_modules/vscode-ripgrep" && npm run postinstall mkdir -p "${package_dir}/node_modules/vscode-ripgrep/bin" \cp -fr "${package_dir}/node_modules_tmp/node_modules/vscode-ripgrep/bin/rg" "${package_dir}/node_modules/vscode-ripgrep/bin/rg" (cd "${package_dir}/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 && find -name "*Makefile" -delete && find -name "*gyp*" -delete) rm -rf "${package_dir}/node_modules_tmp" - -# 移除旧配置 -# rm -fr ~/.config/wechat_devtools diff --git a/tools/setup-wechat-devtools-bash b/tools/setup-wechat-devtools-bash index 9822af9..47f62cc 100755 --- a/tools/setup-wechat-devtools-bash +++ b/tools/setup-wechat-devtools-bash @@ -39,17 +39,17 @@ fi export PATH="$root_dir/node/bin":$PATH if [ $ACTION_MODE!='true' ]; then notice "非ACTION模式, 设置镜像源" - npm set registry https://r.npm.taobao.org # 注册模块镜像 - npm set disturl https://npm.taobao.org/dist # node-gyp 编译依赖的 node 源码镜像 + npm config set registry http://registry.npmmirror.com/ # 注册模块镜像 + npm config set disturl http://npmmirror.com/dist # node-gyp 编译依赖的 node 源码镜像 ## 以下选择添加 - npm set sass_binary_site https://npm.taobao.org/mirrors/node-sass # node-sass 二进制包镜像 - npm set electron_mirror https://npm.taobao.org/mirrors/electron/ # electron 二进制包镜像 - npm set puppeteer_download_host https://npm.taobao.org/mirrors # puppeteer 二进制包镜像 - npm set chromedriver_cdnurl https://npm.taobao.org/mirrors/chromedriver # chromedriver 二进制包镜像 - npm set operadriver_cdnurl https://npm.taobao.org/mirrors/operadriver # operadriver 二进制包镜像 - npm set phantomjs_cdnurl https://npm.taobao.org/mirrors/phantomjs # phantomjs 二进制包镜像 - npm set selenium_cdnurl https://npm.taobao.org/mirrors/selenium # selenium 二进制包镜像 - npm set node_inspector_cdnurl https://npm.taobao.org/mirrors/node-inspector # node-inspector 二进制包镜像 + npm config set sass_binary_site http://npmmirror.com/mirrors/node-sass # node-sass 二进制包镜像 + npm config set electron_mirror http://npmmirror.com/mirrors/electron/ # electron 二进制包镜像 + npm config set puppeteer_download_host http://npmmirror.com/mirrors # puppeteer 二进制包镜像 + npm config set chromedriver_cdnurl http://npmmirror.com/mirrors/chromedriver # chromedriver 二进制包镜像 + npm config set operadriver_cdnurl http://npmmirror.com/mirrors/operadriver # operadriver 二进制包镜像 + npm config set phantomjs_cdnurl http://npmmirror.com/mirrors/phantomjs # phantomjs 二进制包镜像 + npm config set selenium_cdnurl http://npmmirror.com/mirrors/selenium # selenium 二进制包镜像 + npm config set node_inspector_cdnurl http://npmmirror.com/mirrors/node-inspector # node-inspector 二进制包镜像 # npm cache clean --force # 清空缓存 fi echo "=====安装node-gyp nw-gyp===="